diff --git a/.env b/.env index af8151e15..73412794c 100644 --- a/.env +++ b/.env @@ -33,6 +33,9 @@ PATH_TO_CANVAS_APP=./CanvasApp PATH_TO_FILES_COMPONENT=./Files-Component/src PATH_TO_WEB_SERVER=./WebServer/ +APP_SCHEMA_PATH=./ +WORKSPACE_PATH=./ + GATEWAY_ENDPOINT=https://demo-api-dev.superalgos.org/graphql diff --git a/AppSchema.json b/AppSchema.json index 4ce7b2ec6..5820d2cba 100644 --- a/AppSchema.json +++ b/AppSchema.json @@ -786,14 +786,6 @@ { "type": "Condition", "menuItems": [ - { - "action": "Edit Condition", - "label": "Edit Condition", - "iconPathOn": "html", - "iconPathOff": "html", - "dontShowAtFullscreen": true, - "actionFunction": "uiObject.conditionEditor.activate" - }, { "action": "Add UI Object", "disableIfPropertyIsDefined": true, @@ -1115,7 +1107,7 @@ "addLeftIcons": true, "level": 4, "chainAttachesTo": { - "compatibleTypes": "->Market->" + "compatibleTypes": "->Super Actions->Market->" }, "referenceAttachesTo": { "compatibleTypes": "->Master Script->" @@ -1147,6 +1139,7 @@ "addLeftIcons": true, "level": 1, "icon": "network", + "docURL": "https://docs.superalgos.org/suite-network-hierarchy.html#network", "properties": [ { "name": "networkNodes", @@ -1278,7 +1271,7 @@ "addLeftIcons": true, "level": 1, "chainAttachesTo": { - "compatibleTypes": "->Data Mining->Testing Environment->Production Environment->Template Structure->" + "compatibleTypes": "->Exchange Tasks->Template Structure->" }, "icon": "task-manager", "properties": [ @@ -1788,7 +1781,7 @@ "chainAttachesTo": { "compatibleTypes": "->Parameters->" }, - "icon": "loading", + "icon": "asset", "alternativeIcons": "Use Reference Grandparent", "title": [ "Use Reference Grandparent" @@ -1830,7 +1823,7 @@ "chainAttachesTo": { "compatibleTypes": "->Parameters->" }, - "icon": "loading", + "icon": "asset", "alternativeIcons": "Use Reference Grandparent", "title": [ "Use Reference Grandparent" @@ -1859,7 +1852,7 @@ "chainAttachesTo": { "compatibleTypes": "->Market->" }, - "icon": "loading", + "icon": "asset", "alternativeIcons": "Use Reference Parent", "title": [ "Use Reference Parent" @@ -1888,7 +1881,7 @@ "chainAttachesTo": { "compatibleTypes": "->Market->" }, - "icon": "loading", + "icon": "asset", "alternativeIcons": "Use Reference Parent", "title": [ "Use Reference Parent" @@ -2504,6 +2497,9 @@ }, "level": 2, "icon": "data-mine", + "initialValues": { + "code": "{ \n\"codeName\": \"Write here a name with no spaces or dashes.\"\n}" + }, "properties": [ { "name": "sensorBots", @@ -2770,6 +2766,11 @@ "editors": { "config": true }, + "isTitleAllwaysVisible": true, + "title": [ + "Use Reference Parent Parent Parent", + "Use Reference Parent Parent" + ], "level": 3, "referenceAttachesTo": { "compatibleTypes": "->Status Report->" @@ -3055,6 +3056,11 @@ "actionFunction": "payload.onMenuItemClick" } ], + "isTitleAllwaysVisible": true, + "title": [ + "Use Reference Parent Parent", + "Use Reference Parent" + ], "addLeftIcons": true, "level": 3, "referenceAttachesTo": { @@ -4426,12 +4432,18 @@ "menuItems": [ { "action": "Add UI Object", - "disableIfPropertyIsDefined": true, - "propertyToCheckFor": "cryptoExchanges", "label": "Add Crypto Exchanges", "relatedUiObject": "Crypto Exchanges", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "superActions", + "label": "Add Super Actions", + "relatedUiObject": "Super Actions", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, @@ -4449,8 +4461,48 @@ "properties": [ { "name": "cryptoExchanges", + "type": "array", + "childType": "Crypto Exchanges" + }, + { + "name": "superActions", "type": "node", - "childType": "Network Node" + "childType": "Super Actions" + } + ] + }, + { + "type": "Super Actions", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Super Action", + "relatedUiObject": "Super Action", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete Super Actions", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "propertyNameAtParent": "superActions", + "isTitleAllwaysVisible": false, + "addLeftIcons": true, + "level": 3, + "chainAttachesTo": { + "compatibleTypes": "->Crypto Ecosystem->" + }, + "icon": "super-action", + "properties": [ + { + "name": "superActions", + "type": "array", + "childType": "Super Action" } ] }, @@ -4463,6 +4515,15 @@ "relatedUiObject": "Crypto Exchange", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add Missing Crypto Exchanges", + "label": "Add Missing Exchanges", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Crypto Exchange", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, @@ -4473,6 +4534,7 @@ "actionFunction": "payload.onMenuItemClick" } ], + "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 1, "icon": "crypto-exchanges", @@ -4569,43 +4631,43 @@ ], "alternativeIcons": [ { - "codeName": "Bitfinex", + "codeName": "bitfinex", "iconName": "bitfinex" }, { - "codeName": "Binance", + "codeName": "binance", "iconName": "binance" }, { - "codeName": "Kucoin", + "codeName": "kucoin", "iconName": "kucoin" }, { - "codeName": "Bittrex", + "codeName": "bittrex", "iconName": "bittrex" }, { - "codeName": "Kraken", + "codeName": "kraken", "iconName": "kraken" }, { - "codeName": "Poloniex", + "codeName": "poloniex", "iconName": "poloniex" }, { - "codeName": "Upbit", + "codeName": "upbit", "iconName": "upbit" }, { - "codeName": "Bitmex", + "codeName": "bitmex", "iconName": "bitmex" }, { - "codeName": "Liquid", + "codeName": "liquid", "iconName": "liquid" }, { - "codeName": "HitBTC", + "codeName": "hitbtc", "iconName": "hitbtc" } ] @@ -4613,12 +4675,28 @@ { "type": "Exchange Assets", "menuItems": [ + { + "action": "Config Exchange Assets", + "actionFunction": "uiObject.configEditor.activate", + "label": "Config Exchange Assets", + "iconPathOn": "html", + "iconPathOff": "html" + }, { "action": "Add UI Object", "label": "Add Asset", "relatedUiObject": "Asset", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add Missing Assets", + "label": "Add Missing Assets", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Done", + "relatedUiObject": "Asset", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, @@ -4629,6 +4707,12 @@ "actionFunction": "payload.onMenuItemClick" } ], + "editors": { + "config": true + }, + "initialValues": { + "code": "{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}" + }, "addLeftIcons": true, "level": 3, "icon": "exchange-assets", @@ -4640,8 +4724,7 @@ { "name": "assets", "type": "array", - "childType": "Asset", - "autoAdd": true + "childType": "Asset" } ] }, @@ -4749,12 +4832,28 @@ { "type": "Exchange Markets", "menuItems": [ + { + "action": "Config Market", + "actionFunction": "uiObject.configEditor.activate", + "label": "Config Market", + "iconPathOn": "html", + "iconPathOff": "html" + }, { "action": "Add UI Object", "label": "Add Market", "relatedUiObject": "Market", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Add Missing Markets", + "label": "Add Missing Markets", + "askConfirmation": true, + "confirmationLabel": "Confirm to Proceed", + "workDoneLabel": "Request Sent", + "relatedUiObject": "Market", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, @@ -4765,6 +4864,12 @@ "actionFunction": "payload.onMenuItemClick" } ], + "editors": { + "config": true + }, + "initialValues": { + "code": "{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}" + }, "addLeftIcons": true, "level": 3, "icon": "exchange-markets", @@ -4776,14 +4881,20 @@ { "name": "markets", "type": "array", - "childType": "Market", - "autoAdd": true + "childType": "Market" } ] }, { "type": "Market", "menuItems": [ + { + "action": "Config Market", + "actionFunction": "uiObject.configEditor.activate", + "label": "Config Market", + "iconPathOn": "html", + "iconPathOff": "html" + }, { "action": "Add UI Object", "disableIfPropertyIsDefined": true, @@ -4806,13 +4917,6 @@ "relatedUiObject": "Super Action", "actionFunction": "payload.onMenuItemClick" }, - { - "action": "Config Market", - "actionFunction": "uiObject.configEditor.activate", - "label": "Config Market", - "iconPathOn": "html", - "iconPathOff": "html" - }, { "action": "Delete UI Object", "askConfirmation": true, @@ -4850,7 +4954,7 @@ "config": true }, "initialValues": { - "code": "{ \n\"codeName\": \"Write here the name of the market as it is defined at the CCXT library.\"\n}" + "code": "{ \n\"codeName\": \"Write here the name of the market.\"\n}" }, "chainAttachesTo": { "compatibleTypes": "->Exchange Markets->" @@ -4975,8 +5079,7 @@ { "name": "assets", "type": "array", - "childType": "Exchange Account Asset", - "autoAdd": true + "childType": "Exchange Account Asset" } ], "isPersonalData": true @@ -5151,6 +5254,7 @@ "actionFunction": "payload.onMenuItemClick" } ], + "isTitleAllwaysVisible": true, "addLeftIcons": true, "level": 1, "icon": "dashboard", @@ -5623,7 +5727,7 @@ ] }, { - "type": "Data Mining", + "type": "Exchange Tasks", "menuItems": [ { "action": "Run All Task Managers", @@ -5651,6 +5755,69 @@ "relatedUiObject": "Task Manager", "actionFunction": "payload.onMenuItemClick" }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete Exchange Tasks", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "addLeftIcons": true, + "level": 2, + "icon": "crypto-exchange", + "referenceAttachesTo": { + "compatibleTypes": "->Crypto Exchange->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Data Mining->Testing Environmnet->Production Environmnet->Template Structure->" + }, + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "propertyNameAtParent": "exchangeTasks", + "properties": [ + { + "name": "taskManagers", + "type": "array", + "childType": "Task Manager", + "monitorChildrenRunning": true + } + ] + }, + { + "type": "Data Mining", + "menuItems": [ + { + "action": "Run All Exchange Tasks", + "label": "Run All Exchange Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "paper-plane", + "iconPathOff": "paper-plane", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Stop All Exchange Tasks", + "label": "Stop All Exchange 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 Tasks", + "relatedUiObject": "Exchange Tasks", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Delete UI Object", "askConfirmation": true, @@ -5670,9 +5837,9 @@ "propertyNameAtParent": "dataMining", "properties": [ { - "name": "taskManagers", + "name": "exchangeTasks", "type": "array", - "childType": "Task Manager", + "childType": "Exchange Tasks", "autoAdd": true, "monitorChildrenRunning": true } @@ -5681,10 +5848,30 @@ { "type": "Testing Environment", "menuItems": [ + { + "action": "Run All Exchange Tasks", + "label": "Run All Exchange Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "paper-plane", + "iconPathOff": "paper-plane", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Stop All Exchange Tasks", + "label": "Stop All Exchange Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Add UI Object", - "label": "Add Task Manager", - "relatedUiObject": "Task Manager", + "label": "Add Exchange Tasks", + "relatedUiObject": "Exchange Tasks", "actionFunction": "payload.onMenuItemClick" }, { @@ -5710,16 +5897,43 @@ "type": "array", "childType": "Task Manager", "autoAdd": true + }, + { + "name": "exchangeTasks", + "type": "array", + "childType": "Exchange Tasks", + "autoAdd": true, + "monitorChildrenRunning": true } ] }, { "type": "Production Environment", "menuItems": [ + { + "action": "Run All Exchange Tasks", + "label": "Run All Exchange Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Run", + "workDoneLabel": "Run Request Sent", + "iconPathOn": "paper-plane", + "iconPathOff": "paper-plane", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Stop All Exchange Tasks", + "label": "Stop All Exchange Tasks", + "askConfirmation": true, + "confirmationLabel": "Confirm to Stop", + "workDoneLabel": "Stop Request Sent", + "iconPathOn": "stop", + "iconPathOff": "stop", + "actionFunction": "payload.onMenuItemClick" + }, { "action": "Add UI Object", - "label": "Add Task Manager", - "relatedUiObject": "Task Manager", + "label": "Add Exchange Tasks", + "relatedUiObject": "Exchange Tasks", "actionFunction": "payload.onMenuItemClick" }, { @@ -5745,6 +5959,55 @@ "type": "array", "childType": "Task Manager", "autoAdd": true + }, + { + "name": "exchangeTasks", + "type": "array", + "childType": "Exchange Tasks", + "autoAdd": true, + "monitorChildrenRunning": true + } + ] + }, + { + "type": "Exchange Data Products", + "menuItems": [ + { + "action": "Add UI Object", + "label": "Add Single Market Data", + "relatedUiObject": "Single Market Data", + "actionFunction": "payload.onMenuItemClick" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete Data Storage", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "addLeftIcons": true, + "level": 3, + "icon": "crypto-exchange", + "referenceAttachesTo": { + "compatibleTypes": "->Crypto Exchange->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Session Independent Data->" + }, + "propertyNameAtParent": "exchangeDataProducts", + "properties": [ + { + "name": "singleMarketData", + "type": "array", + "childType": "Single Market Data" } ] }, @@ -5753,8 +6016,8 @@ "menuItems": [ { "action": "Add UI Object", - "label": "Add Single Market Data", - "relatedUiObject": "Single Market Data", + "label": "Add Exchange", + "relatedUiObject": "Exchange Data Products", "actionFunction": "payload.onMenuItemClick" }, { @@ -5776,10 +6039,45 @@ "propertyNameAtParent": "sessionIndependentData", "properties": [ { - "name": "singleMarketData", + "name": "exchangeDataProducts", "type": "array", - "childType": "Single Market Data", - "autoAdd": true + "childType": "Exchange Data Products" + } + ] + }, + { + "type": "Exchange Sessions", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete Exchange Sessions", + "iconPathOn": "delete", + "iconPathOff": "delete", + "actionFunction": "payload.onMenuItemClick" + } + ], + "alternativeIcons": "Use Reference Parent", + "title": [ + "Use Reference Parent" + ], + "isTitleAllwaysVisible": true, + "addLeftIcons": true, + "level": 3, + "icon": "crypto-exchange", + "referenceAttachesTo": { + "compatibleTypes": "->Crypto Exchange->" + }, + "chainAttachesTo": { + "compatibleTypes": "->Data Storage->" + }, + "propertyNameAtParent": "exchangeSessions", + "properties": [ + { + "name": "sessionReferences", + "type": "array", + "childType": "Session Reference" } ] }, @@ -5788,8 +6086,8 @@ "menuItems": [ { "action": "Add UI Object", - "label": "Add Session Reference", - "relatedUiObject": "Session Reference", + "label": "Add Exchange Sessions", + "relatedUiObject": "Exchange Sessions", "actionFunction": "payload.onMenuItemClick" }, { @@ -5815,6 +6113,12 @@ "type": "array", "childType": "Session Reference", "autoAdd": true + }, + { + "name": "exchangeSessions", + "type": "array", + "childType": "Exchange Sessions", + "autoAdd": true } ] }, @@ -5852,7 +6156,7 @@ "compatibleTypes": "->Backtesting Session->Paper Trading Session->Fordward Testing Session->Live Trading Session->" }, "chainAttachesTo": { - "compatibleTypes": "->Session Based Data->Template Structure->" + "compatibleTypes": "->Exchange Sessions->Template Structure->" }, "propertyNameAtParent": "sessionReferences", "properties": [ @@ -5895,7 +6199,7 @@ "compatibleTypes": "->Market->" }, "chainAttachesTo": { - "compatibleTypes": "->Session Independent Data->Session Reference->Template Structure->" + "compatibleTypes": "->Exchange Data Products->Session Reference->Template Structure->" }, "propertyNameAtParent": "singleMarketData", "properties": [ diff --git a/CanvasApp/Animation.js b/CanvasApp/Animation.js index 41ec4c976..b06c4eb6d 100644 --- a/CanvasApp/Animation.js +++ b/CanvasApp/Animation.js @@ -61,11 +61,11 @@ function newAnimation () { try { if (window.canvasApp.visible === true) { /* We set the canvas to its normal width and height */ - browserCanvas.width = window.innerWidth - browserCanvas.height = window.innerHeight - CURRENT_TOP_MARGIN + // browserCanvas.width = window.innerWidth + // browserCanvas.height = window.innerHeight - CURRENT_TOP_MARGIN /* First thing is to clear the actual canvas */ - // clearBrowserCanvas() + clearBrowserCanvas() /* We loop through the callback functions collections and execute them all. */ let performanceMap = new Map() @@ -139,6 +139,7 @@ function newAnimation () { } /* Media Recording */ + videoRecorder.physics() if (areWeRecording === true) { videoRecorder.recordCanvas() } @@ -161,12 +162,7 @@ function newAnimation () { } function clearBrowserCanvas () { - browserCanvasContext.beginPath() - - browserCanvasContext.rect(0, 0, browserCanvas.width, browserCanvas.height) browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', 1)' - - browserCanvasContext.closePath() - browserCanvasContext.fill() + browserCanvasContext.clearRect(0, 0, browserCanvas.width, browserCanvas.height) } } diff --git a/CanvasApp/Canvas.js b/CanvasApp/Canvas.js index 7745830a2..70bda0737 100644 --- a/CanvasApp/Canvas.js +++ b/CanvasApp/Canvas.js @@ -252,6 +252,28 @@ function newCanvas () { checkMediaRecording(event) canvas.chartingSpace.onKeyPressed(event) + if (event.key === 'Escape' && canvas.floatingSpace.inMapMode === true) { + canvas.floatingSpace.exitMapMode() + } + + if (event.shiftKey === true && (event.ctrlKey === true || event.metaKey === true) && (event.key === 'M' || event.key === 'm')) { + canvas.floatingSpace.toggleMapMode() + event.preventDefault() + return + } + + if (event.shiftKey === true && (event.ctrlKey === true || event.metaKey === true) && (event.key === 'R' || event.key === 'r')) { + canvas.floatingSpace.toggleDrawReferenceLines() + event.preventDefault() + return + } + + if (event.shiftKey === true && (event.ctrlKey === true || event.metaKey === true) && (event.key === 'C' || event.key === 'c')) { + canvas.floatingSpace.toggleDrawChainLines() + event.preventDefault() + return + } + let nodeOnFocus = canvas.designSpace.workspace.getNodeThatIsOnFocus() if (nodeOnFocus !== undefined) { if (nodeOnFocus.payload.uiObject.codeEditor !== undefined) { @@ -378,7 +400,7 @@ function newCanvas () { if ((event.ctrlKey === true || event.metaKey === true) && event.altKey === true) { if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 65 && event.keyCode <= 90)) { - /* From here we prevent the default behaviour */ + /* From here we prevent the default behaviour. Putting it earlier prevents imput box and text area to receive keystrokes */ event.preventDefault() let nodeUsingThisKey = canvas.designSpace.workspace.getNodeByShortcutKey(event.key) @@ -594,6 +616,12 @@ function newCanvas () { containerDragStarted = true floatingObjectDragStarted = true containerBeingDragged.eventHandler.raiseEvent('onDragStarted', point) + + if (event.candelDragging === true) { + containerBeingDragged = undefined + containerDragStarted = false + floatingObjectDragStarted = false + } return } @@ -758,7 +786,7 @@ function newCanvas () { let container - /* We check if the mouse is over an element of the Strategy Space / */ + /* We check if the mouse is over an element of the Designe Space / */ if (thisObject.designSpace !== undefined) { container = thisObject.designSpace.getContainer(point) @@ -842,6 +870,9 @@ function newCanvas () { // cross-browser wheel delta var event = window.event || event // old IE support event.delta = Math.max(-1, Math.min(1, event.wheelDelta || -event.detail)) + if (IS_MAC) { + event.delta = event.delta / MAC_AMOUNT_FACTOR + } /* We try first with panels. */ @@ -907,7 +938,7 @@ function newCanvas () { floatingObjectDragStarted || viewPortBeingDragged ) { - ignoreNextClick = true + ignoreNextClick = false } /* Turn off all the possible things that can be dragged. */ diff --git a/CanvasApp/ChartingSpace/EdgeEditor.js b/CanvasApp/ChartingSpace/EdgeEditor.js index 402418a3c..43329b0c0 100644 --- a/CanvasApp/ChartingSpace/EdgeEditor.js +++ b/CanvasApp/ChartingSpace/EdgeEditor.js @@ -6,6 +6,7 @@ function newEdgeEditor () { fitFunction: undefined, isVisible: true, isMouseOver: undefined, + resetAspectRatio: resetAspectRatio, onKeyPressed: onKeyPressed, physics: physics, drawForeground: drawForeground, @@ -28,6 +29,7 @@ function newEdgeEditor () { let whereIsMouseOver = 'outside' let coordinateSystem + let coordinateSystemWhenDragStarted let onMouseOverEventSubscriptionId let onMouseNotOverEventSubscriptionId @@ -39,6 +41,25 @@ function newEdgeEditor () { y: 0 } } + + mouseWhenDragStarted = { + position: { + x: 0, + y: 0 + } + } + + parentFrameWhenDragStarted = { + position: { + x: 0, + y: 0 + }, + width: 0, + height: 0 + } + + let doubleClickCounter = 0 + return thisObject function finalize () { @@ -50,6 +71,16 @@ function newEdgeEditor () { thisObject.container = undefined thisObject.fitFunction = undefined mouse = undefined + mouseWhenDragStarted = undefined + parentFrameWhenDragStarted = undefined + + coordinateSystem = undefined + + if (coordinateSystemWhenDragStarted !== undefined) { + coordinateSystemWhenDragStarted.finalize() + } + + coordinateSystemWhenDragStarted = undefined } function initialize (pCoordinateSystem) { @@ -74,7 +105,68 @@ function newEdgeEditor () { thisObject.isMouseOver = false } + function resetAspectRatio () { + /* Resize the Time Machine to match the current screen aspect ration */ + + thisObject.container.parentContainer.frame.width = browserCanvas.width / TIME_MACHINE_WIDTH + thisObject.container.parentContainer.frame.height = (browserCanvas.height - TOP_SPACE_HEIGHT - COCKPIT_SPACE_HEIGHT) / TIME_MACHINE_HEIGHT + coordinateSystem.maxHeight = thisObject.container.parentContainer.frame.height + coordinateSystem.maxWidth = thisObject.container.parentContainer.frame.width + coordinateSystem.recalculateScale() + thisObject.container.parentContainer.eventHandler.raiseEvent('Dimmensions Changed', event) + } + + function onDoubleClick (event) { + doubleClickCounter = 0 + if (canvas.chartingSpace.viewport.zoomLevel === DOUBLE_CLICK_ZOOM_OUT_LEVEL) { + canvas.chartingSpace.viewport.displaceToContainer(thisObject.container.parentContainer) + canvas.chartingSpace.viewport.zoomAtCenter(DOUBLE_CLICK_ZOOM_IN_LEVEL) + return + } + if (canvas.chartingSpace.viewport.zoomLevel === DOUBLE_CLICK_ZOOM_IN_LEVEL) { + canvas.chartingSpace.viewport.zoomAtCenter(DOUBLE_CLICK_ZOOM_IN_IN_LEVEL) + return + } + } + function onDragStarted (event) { + if (doubleClickCounter > 0) { + onDoubleClick(event) + return + } else { + doubleClickCounter = 50 + } + + mouseWhenDragStarted = { + position: { + x: event.x, + y: event.y + } + } + + parentFrameWhenDragStarted = { + position: { + x: thisObject.container.parentContainer.frame.position.x, + y: thisObject.container.parentContainer.frame.position.y + }, + width: thisObject.container.parentContainer.frame.width, + height: thisObject.container.parentContainer.frame.height + } + + coordinateSystemWhenDragStarted = newCoordinateSystem() + + let minValue = { + x: coordinateSystem.min.x, + y: coordinateSystem.min.y + } + + let maxValue = { + x: coordinateSystem.max.x, + y: coordinateSystem.max.y + } + + coordinateSystemWhenDragStarted.initialize(minValue, maxValue, coordinateSystem.maxWidth, coordinateSystem.maxHeight) + switch (event.buttons) { case 1: { whatHappened = 'left mouse button' @@ -104,6 +196,23 @@ function newEdgeEditor () { whatHappened = 'left or right arrow key pressed' return } + + if (event.shiftKey === false && event.code === 'ArrowUp') { + thisObject.container.frame.position.y = thisObject.container.frame.position.y + STEP + whatHappened = 'up or down arrow key pressed' + return + } + + if (event.shiftKey === false && event.code === 'ArrowDown') { + thisObject.container.frame.position.y = thisObject.container.frame.position.y - STEP + whatHappened = 'up or down arrow key pressed' + return + } + + if (event.shiftKey === true && (event.ctrlKey === true || event.metaKey === true) && (event.key === 'A' || event.key === 'a')) { + resetAspectRatio() + return + } } function getContainer (event, purpose) { @@ -147,8 +256,28 @@ function newEdgeEditor () { } function physics () { + draggingPhysics() + doubleClickPhysics() + } + + function doubleClickPhysics () { + doubleClickCounter-- + if (doubleClickCounter < 0) { + doubleClickCounter = 0 + } + } + + function draggingPhysics () { if (thisObject.container.frame.position.x === 0 && thisObject.container.frame.position.y === 0) { return } + let mouseNoZoom = canvas.chartingSpace.viewport.unTransformThisPoint(mouse.position) + let mouseWhenDragStartedNoZoom = canvas.chartingSpace.viewport.unTransformThisPoint(mouseWhenDragStarted.position) + + let dragVectorWhenDragStarted = { + x: mouseNoZoom.x - mouseWhenDragStartedNoZoom.x, + y: mouseNoZoom.y - mouseWhenDragStartedNoZoom.y + } + let dragVector = { x: thisObject.container.frame.position.x, y: thisObject.container.frame.position.y @@ -157,28 +286,31 @@ function newEdgeEditor () { thisObject.container.frame.position.x = 0 thisObject.container.frame.position.y = 0 - const MIN_WIDTH = 100 - const MIN_HEIGHT = 50 + const MIN_WIDTH = 200 + const MIN_HEIGHT = 100 switch (whereIsMouseOver) { case 'center': { switch (whatHappened) { case 'left mouse button + SHIFT': { /* This is equivalent to drag the whole Time Machine, so we will apply the translation received onto the Time Machine container. */ - thisObject.container.parentContainer.frame.position.x = thisObject.container.parentContainer.frame.position.x + dragVector.x - thisObject.container.parentContainer.frame.position.y = thisObject.container.parentContainer.frame.position.y + dragVector.y + thisObject.container.parentContainer.frame.position.x = parentFrameWhenDragStarted.position.x + dragVectorWhenDragStarted.x + thisObject.container.parentContainer.frame.position.y = parentFrameWhenDragStarted.position.y + dragVectorWhenDragStarted.y + snapPointToGrid(thisObject.container.parentContainer.frame.position) thisObject.container.parentContainer.eventHandler.raiseEvent('onDisplace') break } case 'left mouse button': { let point = { - x: -dragVector.x, - y: -dragVector.y + x: (-dragVectorWhenDragStarted.x), + y: (-dragVectorWhenDragStarted.y) } - let newMinDate = getDateFromPointAtContainer(point, thisObject.container.parentContainer, coordinateSystem) - let newMaxRate = getRateFromPointAtContainer(point, thisObject.container.parentContainer, coordinateSystem) - let xDifferenceMaxMin = coordinateSystem.max.x - coordinateSystem.min.x - let yDifferenceMaxMin = coordinateSystem.max.y - coordinateSystem.min.y + + let newMinDate = getDateFromPointAtContainer(point, thisObject.container.parentContainer, coordinateSystemWhenDragStarted) + let newMaxRate = getRateFromPointAtContainer(point, thisObject.container.parentContainer, coordinateSystemWhenDragStarted) + + let xDifferenceMaxMin = coordinateSystemWhenDragStarted.max.x - coordinateSystemWhenDragStarted.min.x + let yDifferenceMaxMin = coordinateSystemWhenDragStarted.max.y - coordinateSystemWhenDragStarted.min.y coordinateSystem.min.x = newMinDate.valueOf() coordinateSystem.max.x = newMinDate.valueOf() + xDifferenceMaxMin coordinateSystem.min.y = newMaxRate - yDifferenceMaxMin @@ -189,11 +321,13 @@ function newEdgeEditor () { } coordinateSystem.recalculateScale(event) } + break case 'left or right arrow key pressed': { let point = { x: -dragVector.x, y: 0 } + let newMinDate = getDateFromPointAtContainer(point, thisObject.container.parentContainer, coordinateSystem) let xDifferenceMaxMin = coordinateSystem.max.x - coordinateSystem.min.x coordinateSystem.min.x = newMinDate.valueOf() @@ -204,23 +338,48 @@ function newEdgeEditor () { } coordinateSystem.recalculateScale(event) } + break + case 'up or down arrow key pressed': { + let point = { + x: 0, + y: -dragVector.y + } + + let newMaxRate = getRateFromPointAtContainer(point, thisObject.container.parentContainer, coordinateSystem) + let yDifferenceMaxMin = coordinateSystem.max.y - coordinateSystem.min.y + coordinateSystem.min.y = newMaxRate - yDifferenceMaxMin + coordinateSystem.max.y = newMaxRate + let event = { + type: 'center dragged', + dragVector: dragVector + } + coordinateSystem.recalculateScale(event) + } + break } thisObject.container.parentContainer.eventHandler.raiseEvent('onMouseOver', mouse.position) break } case 'top' : { - if (thisObject.container.parentContainer.frame.height - dragVector.y < MIN_HEIGHT && dragVector.y > 0) { - return + dragVectorWhenDragStarted.x = 0 + + let newHight = parentFrameWhenDragStarted.height - dragVectorWhenDragStarted.y + if (newHight < MIN_HEIGHT && dragVectorWhenDragStarted.y > 0) { + dragVectorWhenDragStarted.y = parentFrameWhenDragStarted.height - MIN_HEIGHT } + thisObject.container.parentContainer.frame.position.y = parentFrameWhenDragStarted.position.y + dragVectorWhenDragStarted.y + snapPointToGrid(thisObject.container.parentContainer.frame.position) + thisObject.container.parentContainer.frame.height = parentFrameWhenDragStarted.height + (parentFrameWhenDragStarted.position.y - thisObject.container.parentContainer.frame.position.y) + let point = { - x: dragVector.x, - y: dragVector.y + x: 0, + y: (thisObject.container.parentContainer.frame.position.y - parentFrameWhenDragStarted.position.y) } - let newMaxRate = getRateFromPointAtContainer(point, thisObject.container.parentContainer, coordinateSystem) - thisObject.container.parentContainer.frame.position.y = thisObject.container.parentContainer.frame.position.y + dragVector.y - thisObject.container.parentContainer.frame.height = thisObject.container.parentContainer.frame.height - dragVector.y + /* This is equivalent to getRateFromPointAtContainer, but as we do not have a container anymore because we already change it, we do it like this. */ + point = coordinateSystemWhenDragStarted.unInverseTransform(point, parentFrameWhenDragStarted.height) + let newMaxRate = point.y switch (whatHappened) { case 'left mouse button': { @@ -243,17 +402,25 @@ function newEdgeEditor () { break } case 'bottom' : { - if (thisObject.container.parentContainer.frame.height + dragVector.y < MIN_HEIGHT && dragVector.y < 0) { - return + dragVectorWhenDragStarted.x = 0 + + let newHight = dragVectorWhenDragStarted.y + parentFrameWhenDragStarted.height + if (newHight < MIN_HEIGHT && dragVectorWhenDragStarted.y < 0) { + dragVectorWhenDragStarted.y = MIN_HEIGHT - parentFrameWhenDragStarted.height } let point = { - x: dragVector.x, - y: dragVector.y + thisObject.container.frame.height + x: 0, + y: dragVectorWhenDragStarted.y + parentFrameWhenDragStarted.height + parentFrameWhenDragStarted.position.y } - let newMinRate = getRateFromPointAtContainer(point, thisObject.container.parentContainer, coordinateSystem) + snapPointToGrid(point) + point.y = point.y - parentFrameWhenDragStarted.position.y - thisObject.container.parentContainer.frame.height = thisObject.container.parentContainer.frame.height + dragVector.y + thisObject.container.parentContainer.frame.height = point.y + + /* This is equivalent to getRateFromPointAtContainer, but as we do not have a container anymore because we already change it, we do it like this. */ + point = coordinateSystemWhenDragStarted.unInverseTransform(point, parentFrameWhenDragStarted.height) + let newMinRate = point.y switch (whatHappened) { case 'left mouse button': { @@ -276,17 +443,25 @@ function newEdgeEditor () { break } case 'left' : { - if (thisObject.container.parentContainer.frame.width - dragVector.x < MIN_WIDTH && dragVector.x > 0) { - return - } - let point = { - x: dragVector.x, - y: dragVector.y - } - let newMinDate = getDateFromPointAtContainer(point, thisObject.container.parentContainer, coordinateSystem) + dragVectorWhenDragStarted.y = 0 - thisObject.container.parentContainer.frame.position.x = thisObject.container.parentContainer.frame.position.x + dragVector.x - thisObject.container.parentContainer.frame.width = thisObject.container.parentContainer.frame.width - dragVector.x + let newWidth = parentFrameWhenDragStarted.width - dragVectorWhenDragStarted.x + if (newWidth < MIN_WIDTH && dragVectorWhenDragStarted.x > 0) { + dragVectorWhenDragStarted.x = parentFrameWhenDragStarted.width - MIN_WIDTH + } + + thisObject.container.parentContainer.frame.position.x = parentFrameWhenDragStarted.position.x + dragVectorWhenDragStarted.x + snapPointToGrid(thisObject.container.parentContainer.frame.position) + thisObject.container.parentContainer.frame.width = parentFrameWhenDragStarted.width + (parentFrameWhenDragStarted.position.x - thisObject.container.parentContainer.frame.position.x) + + let point = { + x: (thisObject.container.parentContainer.frame.position.x - parentFrameWhenDragStarted.position.x), + y: 0 + } + + /* This is equivalent to getDateFromPointAtContainer, but as we do not have a container anymore because we already change it, we do it like this. */ + point = coordinateSystemWhenDragStarted.unInverseTransform(point, parentFrameWhenDragStarted.width) + let newMinDate = point.x switch (whatHappened) { case 'left mouse button': { @@ -305,17 +480,25 @@ function newEdgeEditor () { break } case 'right' : { - if (thisObject.container.parentContainer.frame.width + dragVector.x < MIN_WIDTH && dragVector.x < 0) { - return + dragVectorWhenDragStarted.y = 0 + + let newWidth = dragVectorWhenDragStarted.x + parentFrameWhenDragStarted.width + if (newWidth < MIN_WIDTH && dragVectorWhenDragStarted.x < 0) { + dragVectorWhenDragStarted.x = MIN_WIDTH - parentFrameWhenDragStarted.width } let point = { - x: dragVector.x + thisObject.container.frame.width, - y: dragVector.y + x: dragVectorWhenDragStarted.x + parentFrameWhenDragStarted.width + parentFrameWhenDragStarted.position.x, + y: 0 } - let newMaxDate = getDateFromPointAtContainer(point, thisObject.container.parentContainer, coordinateSystem) + snapPointToGrid(point) + point.x = point.x - parentFrameWhenDragStarted.position.x - thisObject.container.parentContainer.frame.width = thisObject.container.parentContainer.frame.width + dragVector.x + thisObject.container.parentContainer.frame.width = point.x + + /* This is equivalent to getRateFromPointAtContainer, but as we do not have a container anymore because we already change it, we do it like this. */ + point = coordinateSystemWhenDragStarted.unInverseTransform(point, parentFrameWhenDragStarted.width) + let newMaxDate = point.x switch (whatHappened) { case 'left mouse button': { @@ -334,6 +517,22 @@ function newEdgeEditor () { break } } + + function snapPointToGrid (point) { + point.x = snapScalarToGrid(point.x) + point.y = snapScalarToGrid(point.y) + } + + function snapScalarToGrid (scalar) { + let sign + if (scalar < 0) { + sign = -1 + } else { + sign = 1 + } + const GRID_SIZE = 10 + return Math.trunc(scalar / GRID_SIZE) * GRID_SIZE + GRID_SIZE / 2 * sign + } } function drawForeground () { @@ -342,7 +541,7 @@ function newEdgeEditor () { let lineWidth if (whereIsMouseOver === 'outside' || thisObject.isMouseOver === false) { - edgeSize = EDGE_SIZE / 2 + edgeSize = 2 lineWidth = 0.1 } else { edgeSize = EDGE_SIZE diff --git a/CanvasApp/ChartingSpace/PlottersManager.js b/CanvasApp/ChartingSpace/PlottersManager.js index 3b245cf99..848f5cf1a 100644 --- a/CanvasApp/ChartingSpace/PlottersManager.js +++ b/CanvasApp/ChartingSpace/PlottersManager.js @@ -301,9 +301,16 @@ function newPlottersManager () { function draw () { if (thisObject.connectors === undefined) { return } // We need to wait /* First the Product Plotters. */ + let maxElementsPlotted = 0 for (let i = 0; i < thisObject.connectors.length; i++) { let connector = thisObject.connectors[thisObject.connectors.length - i - 1] - connector.plotter.draw() + let elementsPlotted = connector.plotter.draw() + if (elementsPlotted !== undefined) { + if (elementsPlotted > maxElementsPlotted) { + maxElementsPlotted = elementsPlotted + } + } } + return maxElementsPlotted } } diff --git a/CanvasApp/ChartingSpace/TimeMachine.js b/CanvasApp/ChartingSpace/TimeMachine.js index 8bf908946..5a6c07b75 100644 --- a/CanvasApp/ChartingSpace/TimeMachine.js +++ b/CanvasApp/ChartingSpace/TimeMachine.js @@ -44,12 +44,14 @@ function newTimeMachine () { } } + let tabAnimation = 0 + let tabAnimationStatus = 'Close' + let tabAnimationCounter = 0 + let wasOnFocus = false let drawScales = false let syncWithDesignerLoop = 0 let timelineChartsMap = new Map() - let onViewportPositionChangedEventSuscriptionId - let onViewportZoomChangedEventSuscriptionId let onMouseOverEventSuscriptionId let onMouseNotOverEventSuscriptionId let timeScaleMouseOverEventSuscriptionId @@ -69,13 +71,11 @@ function newTimeMachine () { thisObject.container.insideViewport = true thisObject.container.detectMouseOver = true - thisObject.container.frame.width = TIME_MACHINE_WIDTH - thisObject.container.frame.height = TIME_MACHINE_HEIGHT + thisObject.container.frame.width = browserCanvas.width / TIME_MACHINE_WIDTH + thisObject.container.frame.height = (browserCanvas.height - TOP_SPACE_HEIGHT - COCKPIT_SPACE_HEIGHT) / TIME_MACHINE_HEIGHT } function finalize () { - canvas.chartingSpace.viewport.eventHandler.stopListening(onViewportPositionChangedEventSuscriptionId) - canvas.chartingSpace.viewport.eventHandler.stopListening(onViewportZoomChangedEventSuscriptionId) timeMachineCoordinateSystem.eventHandler.stopListening(onScaleChangedEventSubscriptionId) if (thisObject.timeScale !== undefined) { @@ -148,8 +148,6 @@ function newTimeMachine () { onMouseOverEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseOver', onMouseOver) onMouseNotOverEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseNotOver', onMouseNotOver) - onViewportPositionChangedEventSuscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent('Position Changed', onViewportPositionChanged) - onViewportZoomChangedEventSuscriptionId = canvas.chartingSpace.viewport.eventHandler.listenToEvent('Zoom Changed', onViewportZoomChanged) onScaleChangedEventSubscriptionId = timeMachineCoordinateSystem.eventHandler.listenToEvent('Scale Changed', onScaleChanged) thisObject.edgeEditor = newEdgeEditor() @@ -314,36 +312,17 @@ function newTimeMachine () { } } - function onViewportZoomChanged (event) { - if (thisObject.container.frame.isInViewPort()) { - recalculateCurrentDatetime() - } - } - - function onViewportPositionChanged () { - if (thisObject.container.frame.isInViewPort()) { - recalculateCurrentDatetime() - } - } - function onScaleChanged () { recalculateCurrentDatetime() } function recalculateCurrentDatetime () { - /* - The view port was moved or the view port zoom level was changed and the center of the screen points to a different datetime that we - must calculate. - */ let center = { - x: (canvas.chartingSpace.viewport.visibleArea.bottomRight.x - canvas.chartingSpace.viewport.visibleArea.bottomLeft.x) / 2, - y: (canvas.chartingSpace.viewport.visibleArea.bottomRight.y - canvas.chartingSpace.viewport.visibleArea.topRight.y) / 2 + x: thisObject.container.frame.width / 2, + y: thisObject.container.frame.height / 2 } - center = unTransformThisPoint(center, thisObject.container) - center = timeMachineCoordinateSystem.unInverseTransform(center, thisObject.container.frame.height) - - datetime = new Date(center.x) + datetime = new Date(getDateFromPointAtContainer(center, thisObject.container, timeMachineCoordinateSystem)) for (let i = 0; i < thisObject.timelineCharts.length; i++) { let timelineChart = thisObject.timelineCharts[i] @@ -398,9 +377,38 @@ function newTimeMachine () { } panelPhysics() onFocusPhysics() + tabAnimationPhysics() + } + + function tabAnimationPhysics () { + const MAX_COUNTER_VALUE = 40 + const STEP = 10 + + if (wasOnFocus === true && thisObject.onFocus === false) { + tabAnimationStatus = 'Closing' + } + if (wasOnFocus === false && thisObject.onFocus === true) { + tabAnimationStatus = 'Opening' + } + + if (tabAnimationStatus === 'Closing') { + tabAnimationCounter = tabAnimationCounter - STEP + if (tabAnimationCounter <= 0) { + tabAnimationCounter = 0 + tabAnimationStatus = 'Closed' + } + } + if (tabAnimationStatus === 'Opening') { + tabAnimationCounter = tabAnimationCounter + STEP + if (tabAnimationCounter >= MAX_COUNTER_VALUE) { + tabAnimationCounter = MAX_COUNTER_VALUE + tabAnimationStatus = 'Open' + } + } } function onFocusPhysics () { + wasOnFocus = thisObject.onFocus if (thisObject.edgeEditor.isMouseOver === true) { thisObject.onFocus = true } else { @@ -409,7 +417,18 @@ function newTimeMachine () { } function panelPhysics () { - if (thisObject.container.frame.isCenterInViewPort() && canvas.chartingSpace.viewport.zoomTargetLevel > ZOOM_OUT_THRESHOLD_FOR_HIDDING_PANELS) { + if ( + thisObject.container.frame.isInViewPort() && + canvas.chartingSpace.viewport.zoomLevel >= ZOOM_OUT_THRESHOLD_FOR_NOT_HIDDING_PANELS) { + canvas.panelsSpace.unHide(thisObject.payload.node.id, 'Layers Panel') + canvas.panelsSpace.unHide(thisObject.payload.node.id, 'Plotter Panel') + return + } + + if ( + thisObject.container.frame.isCenterInViewPort() && + canvas.chartingSpace.viewport.zoomLevel >= ZOOM_OUT_THRESHOLD_FOR_HIDDING_PANELS + ) { canvas.panelsSpace.unHide(thisObject.payload.node.id, 'Layers Panel') canvas.panelsSpace.unHide(thisObject.payload.node.id, 'Plotter Panel') } else { @@ -529,9 +548,23 @@ function newTimeMachine () { function drawBackground () { drawChartsBackground() if (thisObject.container.frame.isInViewPort()) { + if (drawScales === true) { + if (thisObject.timeScale !== undefined && thisObject.timeScale.isVisible === true) { thisObject.timeScale.drawBackground() } + if (thisObject.rateScale !== undefined && thisObject.rateScale.isVisible === true) { thisObject.rateScale.drawBackground() } + } + + let maxElementsPlotted = 0 for (let i = 0; i < thisObject.timelineCharts.length; i++) { let timelineChart = thisObject.timelineCharts[thisObject.timelineCharts.length - i - 1] - timelineChart.drawBackground() + let elementsPlotted = timelineChart.drawBackground() + if (elementsPlotted !== undefined) { + if (elementsPlotted > maxElementsPlotted) { + maxElementsPlotted = elementsPlotted + } + } + } + if (thisObject.timeFrameScale !== undefined) { + thisObject.timeFrameScale.adjustTimeFrame(maxElementsPlotted) } } } @@ -619,13 +652,13 @@ function newTimeMachine () { if (description !== undefined) { label = description } - printLabel(label, position.x + 15, position.y - 28, opacity, fontSize) + printLabel(label, position.x + 20, position.y - 10, opacity, fontSize) if (icon !== undefined) { if (icon.canDrawIcon === true) { browserCanvasContext.drawImage( - icon, position.x - 0, - position.y - 40, + icon, position.x + 5, + position.y - 22, imageSize, imageSize) } @@ -653,52 +686,118 @@ function newTimeMachine () { } } + drawTab(0, 0, exchangeMarkets.size * tabAnimationCounter, 90, thisObject.container) + const INTER_EXCHANGE_SPACE = 60 - const INTER_MARKET_SPACE = 90 + const INTER_MARKET_SPACE = -100 - exchangeMarkets.forEach((exchangeMarket, i) => { - icon = exchangeMarket.exchangeIcon + if (tabAnimationStatus === 'Open') { + drawMarketNames() + } - if (icon !== undefined) { - if (icon.canDrawIcon === true) { - browserCanvasContext.drawImage( - icon, position.x - 0, - position.y - 22, - imageSize, - imageSize) + function drawMarketNames () { + exchangeMarkets.forEach((exchangeMarket, i) => { + browserCanvasContext.save() + browserCanvasContext.translate(position.x, position.y) + browserCanvasContext.rotate(-Math.PI / 2) + + let xOffSet = -80 + + icon = exchangeMarket.exchangeIcon + + if (icon !== undefined) { + if (icon.canDrawIcon === true) { + browserCanvasContext.drawImage( + icon, + -20 + xOffSet, + -43, + imageSize, + imageSize) + } } + + printLabel(exchangeMarket.exchangeName, -5 + xOffSet, -30, opacity, fontSize, UI_COLOR.GREY) + + position.x = position.x + INTER_EXCHANGE_SPACE + + icon = exchangeMarket.baseAssetIcon + if (icon !== undefined) { + if (icon.canDrawIcon === true) { + browserCanvasContext.drawImage( + icon, + -20 + xOffSet, + -22, + imageSize, + imageSize) + } + } + + printLabel(exchangeMarket.marketName, -5 + xOffSet, -10, opacity, fontSize, UI_COLOR.GREY) + + icon = exchangeMarket.quotedAssetIcon + if (icon !== undefined) { + if (icon.canDrawIcon === true) { + browserCanvasContext.drawImage( + icon, + +50 + xOffSet, + -22, + imageSize, + imageSize) + } + } + + position.x = position.x + INTER_MARKET_SPACE + + browserCanvasContext.restore() + }) + } + + function drawTab (x, y, width, height, container) { + const GRADIENT = 0 + const X_OFFSET = -3 + const Y_OFFSET = 13 + const TAB_CORNERS_RADIUS = 5 + + let point = { + x: x, + y: y + } + point = transformThisPoint(point, container) + + let point1 = { + x: point.x + X_OFFSET, + y: point.y + Y_OFFSET } - printLabel(exchangeMarket.exchangeName, position.x + 15, position.y - 10, opacity, fontSize) - - position.x = position.x + INTER_EXCHANGE_SPACE - - icon = exchangeMarket.baseAssetIcon - if (icon !== undefined) { - if (icon.canDrawIcon === true) { - browserCanvasContext.drawImage( - icon, position.x - 0, - position.y - 22, - imageSize, - imageSize) - } + let point2 = { + x: point.x + X_OFFSET, + y: point.y + height + Y_OFFSET } - printLabel(exchangeMarket.marketName, position.x + 15, position.y - 10, opacity, fontSize) - - icon = exchangeMarket.quotedAssetIcon - if (icon !== undefined) { - if (icon.canDrawIcon === true) { - browserCanvasContext.drawImage( - icon, position.x + 70, - position.y - 22, - imageSize, - imageSize) - } + let point3 = { + x: point.x - width + X_OFFSET, + y: point.y + height - GRADIENT + Y_OFFSET } - position.x = position.x + INTER_MARKET_SPACE - }) + let point4 = { + x: point.x - width + X_OFFSET, + y: point.y + GRADIENT + Y_OFFSET + } + + browserCanvasContext.beginPath() + browserCanvasContext.moveTo(point1.x, point1.y) + browserCanvasContext.lineTo(point2.x, point2.y) + browserCanvasContext.lineTo(point3.x, point3.y) + browserCanvasContext.arc(point3.x, point3.y - TAB_CORNERS_RADIUS, TAB_CORNERS_RADIUS, 0.5 * Math.PI, 1.0 * Math.PI) + // browserCanvasContext.lineTo(point4.x, point4.y) + browserCanvasContext.arc(point4.x, point4.y + TAB_CORNERS_RADIUS, TAB_CORNERS_RADIUS, 1.0 * Math.PI, 1.5 * Math.PI) + browserCanvasContext.closePath() + browserCanvasContext.lineWidth = 1 + browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + '' + browserCanvasContext.stroke() + browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', ' + opacity + '' + browserCanvasContext.fill() + } } function recalculateCoordinateSystem () { @@ -720,4 +819,3 @@ function newTimeMachine () { ) } } - diff --git a/CanvasApp/ChartingSpace/TimelineChart.js b/CanvasApp/ChartingSpace/TimelineChart.js index ce9e7ede5..f827726c0 100644 --- a/CanvasApp/ChartingSpace/TimelineChart.js +++ b/CanvasApp/ChartingSpace/TimelineChart.js @@ -378,9 +378,17 @@ function newTimelineChart () { function drawBackground () { if (thisObject.container.frame.isInViewPort()) { + if (drawScales === true) { + if (thisObject.rateScale !== undefined && thisObject.rateScale.isVisible === true) { thisObject.rateScale.drawBackground() } + } drawChartsBackground() if (thisObject.plotterManager !== undefined) { - thisObject.plotterManager.draw() + let elementsPlotted = thisObject.plotterManager.draw() + if (thisObject.timeFrameScale !== undefined) { + thisObject.timeFrameScale.adjustTimeFrame(elementsPlotted) + } else { + return elementsPlotted + } } } } diff --git a/CanvasApp/ChartingSpace/Viewport.js b/CanvasApp/ChartingSpace/Viewport.js index 76b6c6528..27f59ef1c 100644 --- a/CanvasApp/ChartingSpace/Viewport.js +++ b/CanvasApp/ChartingSpace/Viewport.js @@ -30,6 +30,7 @@ function newViewport () { mousePosition: undefined, margins: MARGINS, payload: undefined, + zoomAtCenter: zoomAtCenter, changeZoom: changeZoom, onMouseWheel: onMouseWheel, transformThisPoint: transformThisPoint, @@ -39,6 +40,7 @@ function newViewport () { fitIntoVisibleArea: fitIntoVisibleArea, fitIntoViewport: fitIntoViewport, displace: displace, + displaceToContainer: displaceToContainer, physics: physics, raiseEvents: raiseEvents, resize: resize, @@ -50,14 +52,7 @@ function newViewport () { x: 0, y: 0 } - let targetPosition = { - x: 0, - y: 0 - } - let positionIncrement = { - x: 0, - y: 0 - } + thisObject.mousePosition = { x: 0, y: 0 @@ -69,6 +64,8 @@ function newViewport () { thisObject.zoomTargetLevel = MIN_ZOOM_LEVEL INITIAL_TIME_PERIOD = recalculatePeriod(thisObject.zoomLevel) + let overrideMousePositionCounter = 0 + return thisObject function finalize () { @@ -137,8 +134,36 @@ function newViewport () { thisObject.eventHandler.raiseEvent('Position Changed', event) } + function displaceToContainer (container) { + let targetPoint = { + x: -container.frame.position.x - container.frame.width / 2, + y: -container.frame.position.y - container.frame.height / 2 + } + position.x = targetPoint.x + browserCanvas.width / 2 + position.y = targetPoint.y + (browserCanvas.height - COCKPIT_SPACE_HEIGHT - TOP_SPACE_HEIGHT) / 2 + TOP_SPACE_HEIGHT + } + + function zoomAtCenter (level) { + thisObject.zoomTargetLevel = level + overrideMousePositionCounter = 50 + ANIMATION_INCREMENT = 0.5 + } + + function mousePositionPhysics () { + if (overrideMousePositionCounter > 0) { + thisObject.mousePosition.x = browserCanvas.width / 2 + thisObject.mousePosition.y = (browserCanvas.height - TOP_SPACE_HEIGHT - COCKPIT_SPACE_HEIGHT) / 2 + TOP_SPACE_HEIGHT + + overrideMousePositionCounter-- + if (overrideMousePositionCounter < 0) { + overrideMousePositionCounter = 0 + } + } + } + function physics () { if (thisObject.visible === false) { return } + mousePositionPhysics() animationPhysics() positioningPhysics() readObjectState() @@ -156,27 +181,19 @@ function newViewport () { function animationPhysics () { if (thisObject.zoomLevel < thisObject.zoomTargetLevel) { if (thisObject.zoomTargetLevel - thisObject.zoomLevel < ANIMATION_INCREMENT) { - ANIMATION_INCREMENT = Math.abs(thisObject.zoomTargetLevel - thisObject.zoomLevel) + ANIMATION_INCREMENT = Math.round(Math.abs(thisObject.zoomTargetLevel - thisObject.zoomLevel) * 100) / 100 } - thisObject.zoomLevel = thisObject.zoomLevel + ANIMATION_INCREMENT + thisObject.zoomLevel = Math.round((thisObject.zoomLevel + ANIMATION_INCREMENT) * 100) / 100 changeZoom(thisObject.zoomLevel - ANIMATION_INCREMENT, thisObject.zoomLevel) } if (thisObject.zoomLevel > thisObject.zoomTargetLevel) { if (thisObject.zoomLevel - thisObject.zoomTargetLevel < ANIMATION_INCREMENT) { - ANIMATION_INCREMENT = Math.abs(thisObject.zoomTargetLevel - thisObject.zoomLevel) + ANIMATION_INCREMENT = Math.round(Math.abs(thisObject.zoomTargetLevel - thisObject.zoomLevel) * 100) / 100 } - thisObject.zoomLevel = thisObject.zoomLevel - ANIMATION_INCREMENT + thisObject.zoomLevel = Math.round((thisObject.zoomLevel - ANIMATION_INCREMENT) * 100) / 100 changeZoom(thisObject.zoomLevel + ANIMATION_INCREMENT, thisObject.zoomLevel) } - - if (positionIncrement.y !== 0) { - if (Math.trunc(Math.abs(targetPosition.y - position.y) * 1000) >= Math.trunc(Math.abs(positionIncrement.y) * 1000)) { - position.y = position.y + positionIncrement.y - } else { - positionIncrement.y = 0 - } - } } function onMouseWheel (event) { @@ -186,8 +203,6 @@ function newViewport () { let amount = event.delta if (event.buttons === 4) { morePower = 2 } // Mouse wheel pressed. /* We adjust the sensitivity for Mac Users */ - let isMac = navigator.platform.toUpperCase().indexOf('MAC') >= 0 - if (isMac) { amount = amount / 5 } if (thisObject.zoomTargetLevel > 10) { amount = amount * 2 @@ -205,9 +220,9 @@ function newViewport () { if (thisObject.zoomTargetLevel + amount * morePower < MIN_ZOOM_LEVEL) { return false } - thisObject.zoomTargetLevel = thisObject.zoomTargetLevel + amount * morePower + thisObject.zoomTargetLevel = Math.round((thisObject.zoomTargetLevel + amount * morePower) * MAC_AMOUNT_FACTOR) / MAC_AMOUNT_FACTOR - ANIMATION_INCREMENT = Math.abs(thisObject.zoomTargetLevel - thisObject.zoomLevel) / ANIMATION_STEPS + ANIMATION_INCREMENT = Math.round(Math.abs(thisObject.zoomTargetLevel - thisObject.zoomLevel) / ANIMATION_STEPS * 100) / 100 let newEvent = { newLevel: thisObject.zoomTargetLevel, @@ -286,18 +301,8 @@ function newViewport () { position.x = position.x - newMouse.x + thisObject.mousePosition.x position.y = position.y - newMouse.y + thisObject.mousePosition.y - let testPoint = unTransformThisPoint(thisObject.mousePosition, newLevel) - saveObjectState() - targetPosition.x = position.x - targetPosition.y = position.y - - positionIncrement = { - x: 0, - y: 0 - } - thisObject.eventHandler.raiseEvent('Zoom Changed') } @@ -392,7 +397,7 @@ function newViewport () { } function newZoomLevel (level) { - thisObject.zoomLevel = level + thisObject.zoomLevel = Math.round(level) thisObject.zoomTargetLevel = level INITIAL_TIME_PERIOD = recalculatePeriod(level) saveObjectState() diff --git a/CanvasApp/CockpitSpace/AssetBalances.js b/CanvasApp/CockpitSpace/AssetBalances.js index 6cb267ef4..166a68880 100644 --- a/CanvasApp/CockpitSpace/AssetBalances.js +++ b/CanvasApp/CockpitSpace/AssetBalances.js @@ -1,5 +1,5 @@ -function newQuotedAssetalances () { +function newAssetalances () { const MODULE_NAME = 'Asset Balances' let thisObject = { @@ -38,6 +38,9 @@ function newQuotedAssetalances () { let speedometer = newSpeedometer() speedometer.initialize() + speedometer.container.connectToParent(thisObject.container) + speedometer.container.frame.position.x = thisObject.container.frame.width / 2 + speedometer.container.frame.position.y = thisObject.container.frame.height * (2 + i * 2) / 5 thisObject.speedometers.push(speedometer) } } diff --git a/CanvasApp/CockpitSpace/Speedometer.js b/CanvasApp/CockpitSpace/Speedometer.js index 7a2f0a857..12f8cc14e 100644 --- a/CanvasApp/CockpitSpace/Speedometer.js +++ b/CanvasApp/CockpitSpace/Speedometer.js @@ -56,12 +56,14 @@ function newSpeedometer () { const OPACITY = 1 let centerPoint = { - x: thisObject.params.LEFT_OFFSET, - y: COCKPIT_SPACE_POSITION - COCKPIT_SPACE_HEIGHT / 2 - 9 + x: 0, + y: 0 } + centerPoint = thisObject.container.frame.frameThisPoint(centerPoint) + browserCanvasContext.beginPath() - browserCanvasContext.arc(centerPoint.x, centerPoint.y, RADIUS + RED_LINE_HIGHT, 0.85 * Math.PI, 2.15 * Math.PI) + browserCanvasContext.arc(centerPoint.x, centerPoint.y, RADIUS + RED_LINE_HIGHT, 0 * Math.PI, 2.0 * Math.PI) browserCanvasContext.closePath() browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + OPACITY + ')' @@ -196,8 +198,8 @@ function newSpeedometer () { if (isNaN(label) === false) { label = Number(label) - label = Math.trunc(label * Math.pow(10, thisObject.params.DECIMALS)) / Math.pow(10, thisObject.params.DECIMALS) - if (label === 0) { label = label.toFixed(2) } else { label = label.toLocaleString() } + label = dynamicDecimals(label, 2) + if (label === 0) { label = label.toFixed(2) } } // label = label.substring(0, 6) diff --git a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/CCXTFunctions.js b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/CCXTFunctions.js new file mode 100644 index 000000000..ced087469 --- /dev/null +++ b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/CCXTFunctions.js @@ -0,0 +1,218 @@ +function newCCXTFunctions () { + thisObject = { + addMissingExchanges: addMissingExchanges, + addMissingAssets: addMissingAssets, + addMissingMarkets: addMissingMarkets + } + + return thisObject + + function addMissingExchanges (node, functionLibraryUiObjectsFromNodes) { + currentExchanges = new Map() + let parent = node.payload.parentNode + if (parent !== undefined) { + for (let i = 0; i < parent.cryptoExchanges.length; i++) { + let cryptoExchanges = parent.cryptoExchanges[i] + for (let j = 0; j < cryptoExchanges.exchanges.length; j++) { + let exchange = cryptoExchanges.exchanges[j] + let codeName = loadPropertyFromNodeConfig(exchange.payload, 'codeName') + currentExchanges.set(codeName, exchange) + } + } + } + + let params = { + method: 'listExchanges', + has: { + fetchOHLCV: true, + fetchMarkets: true + } + } + + callServer(JSON.stringify(params), 'CCXT', onResponse) + + function onResponse (err, data) { + if (err.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + node.payload.uiObject.setErrorMessage('Failed to Fetch Assets from the Exchange') + return + } + + let exchanges = JSON.parse(data) + for (let i = 0; i < exchanges.length; i++) { + let exchange = exchanges[i] + let existingExchange = currentExchanges.get(exchange.id) + if (existingExchange === undefined) { + let newExchange = functionLibraryUiObjectsFromNodes.addUIObject(node, 'Crypto Exchange') + newExchange.name = exchange.name + newExchange.code = '{ \n\"codeName\": \"' + exchange.id + '\"\n}' + newExchange.payload.floatingObject.collapseToggle() + newExchange.exchangeAssets.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180 + newExchange.exchangeMarkets.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180 + newExchange.exchangeAccounts.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180 + newExchange.exchangeAssets.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_050X + newExchange.exchangeMarkets.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_100X + newExchange.exchangeAccounts.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_025X + } + } + } + } + + function addMissingAssets (node, functionLibraryUiObjectsFromNodes) { + if (node.payload.parentNode === undefined) { return } + + let currentAssets = new Map() + for (let j = 0; j < node.assets.length; j++) { + let asset = node.assets[j] + let codeName = loadPropertyFromNodeConfig(asset.payload, 'codeName') + currentAssets.set(codeName, asset) + } + + let exchangeId = loadPropertyFromNodeConfig(node.payload.parentNode.payload, 'codeName') + + try { + let params = { + exchangeId: exchangeId, + method: 'fetchMarkets' + } + callServer(JSON.stringify(params), 'CCXT', onResponse) + + function onResponse (err, data) { + if (err.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + node.payload.uiObject.setErrorMessage('Failed to Fetch Assets from the Exchange') + return + } + let queryParams = loadPropertyFromNodeConfig(node.payload, 'addMissingAssets') + + let markets = JSON.parse(data) + for (let i = 0; i < markets.length; i++) { + let market = markets[i] + + if (queryParams !== undefined) { + if (queryParams.baseAsset !== undefined) { + if (market.base.indexOf(queryParams.baseAsset) >= 0) { + continue + } + } + if (queryParams.quotedAsset !== undefined) { + if (market.quote.indexOf(queryParams.quotedAsset) >= 0) { + continue + } + } + } + if (currentAssets.get(market.base) === undefined) { + addAsset(market.base) + currentAssets.set(market.base, market.base) + } + if (currentAssets.get(market.quote) === undefined) { + addAsset(market.quote) + currentAssets.set(market.quote, market.quote) + } + + function addAsset (name) { + let newAsseet = functionLibraryUiObjectsFromNodes.addUIObject(node, 'Asset') + newAsseet.name = name + newAsseet.code = '{ \n\"codeName\": \"' + name + '\"\n}' + newAsseet.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_360 + newAsseet.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_200X + } + } + } + } catch (err) { + node.payload.uiObject.setErrorMessage('Failed to Fetch Assets from the Exchange') + console.log(err.stack) + } + } + + function addMissingMarkets (node, functionLibraryUiObjectsFromNodes, functionLibraryNodeCloning) { + if (node.payload.parentNode === undefined) { return } + if (node.payload.parentNode.exchangeAssets === undefined) { return } + if (node.payload.parentNode.payload.parentNode === undefined) { return } + if (node.payload.parentNode.payload.parentNode.payload.parentNode === undefined) { return } + if (node.payload.parentNode.payload.parentNode.payload.parentNode.superActions === undefined) { return } + + let currentAssets = new Map() + let exchangeAssets = node.payload.parentNode.exchangeAssets + for (let j = 0; j < exchangeAssets.assets.length; j++) { + let asset = exchangeAssets.assets[j] + let codeName = loadPropertyFromNodeConfig(asset.payload, 'codeName') + currentAssets.set(codeName, asset) + } + + let currentMarkets = new Map() + let exchangeMarkets = node + for (let j = 0; j < exchangeMarkets.markets.length; j++) { + let asset = exchangeMarkets.markets[j] + let codeName = loadPropertyFromNodeConfig(asset.payload, 'codeName') + currentMarkets.set(codeName, asset) + } + + let exchangeId = loadPropertyFromNodeConfig(node.payload.parentNode.payload, 'codeName') + + try { + let params = { + exchangeId: exchangeId, + method: 'fetchMarkets' + } + callServer(JSON.stringify(params), 'CCXT', onResponse) + + function onResponse (err, data) { + if (err.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + node.payload.uiObject.setErrorMessage('Failed to Fetch Assets from the Exchange') + return + } + + let markets = JSON.parse(data) + for (let i = 0; i < markets.length; i++) { + let market = markets[i] + let baseAsset = currentAssets.get(market.base) + let quotedAsset = currentAssets.get(market.quote) + + if (baseAsset === undefined) { + continue + } + if (quotedAsset === undefined) { + continue + } + + if (currentMarkets.get(market.symbol) === undefined) { + addMarket(market.symbol, baseAsset, quotedAsset) + } + + function addMarket (name, baseAsset, quotedAsset) { + let newMarket = functionLibraryUiObjectsFromNodes.addUIObject(node, 'Market') + newMarket.name = name + newMarket.code = '{ \n\"codeName\": \"' + name + '\"\n}' + newMarket.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180 + newMarket.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_050X + newMarket.baseAsset.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_45 + newMarket.quotedAsset.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_45 + newMarket.baseAsset.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_100X + newMarket.quotedAsset.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_150X + newMarket.baseAsset.payload.referenceParent = baseAsset + newMarket.quotedAsset.payload.referenceParent = quotedAsset + + let superActions = node.payload.parentNode.payload.parentNode.payload.parentNode.superActions + + for (let j = 0; j < superActions.superActions.length; j++) { + let superAction = superActions.superActions[j] + let clone = functionLibraryNodeCloning.getNodeClone(superAction) + functionLibraryUiObjectsFromNodes.createUiObjectFromNode(clone, newMarket, newMarket) + newMarket.superActions.push(clone) + switch (j) { + case 0: + clone.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_025X + break + case 1: + clone.payload.floatingObject.distanceToParent = DISTANCE_TO_PARENT.PARENT_050X + break + } + } + } + } + } + } catch (err) { + node.payload.uiObject.setErrorMessage('Failed to Fetch Assets from the Exchange') + console.log(err.stack) + } + } +} diff --git a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/SessionFunctions.js b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/SessionFunctions.js index 5b967b29d..7257e42ba 100644 --- a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/SessionFunctions.js +++ b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/SessionFunctions.js @@ -33,7 +33,7 @@ function newSessionFunctions () { let lightingPath = '' + 'Trading System->' + 'Parameters->' + - 'Base Asset->Time Range->Time Frame->Slippage->Fee Structure->' + + 'Base Asset->Quoted Asset->Time Range->Time Frame->Slippage->Fee Structure->' + 'Exchange Account Asset->Asset->' + 'Strategy->' + 'Trigger Stage->Trigger On Event->Trigger Off Event->Take Position Event->' + @@ -53,7 +53,7 @@ function newSessionFunctions () { lightingPath = '' + 'Backtesting Session->Paper Trading Session->Fordward Testing Session->Live Trading Session->' + 'Parameters->' + - 'Base Asset->Time Range->Time Frame->Slippage->Fee Structure->' + + 'Base Asset->Quoted Asset->Time Range->Time Frame->Slippage->Fee Structure->' + 'Exchange Account Asset->Asset->' let session = functionLibraryProtocolNode.getProtocolNode(node, false, true, true, false, false, lightingPath) diff --git a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/SuperScripts.js b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/SuperScripts.js index 7103935ec..3965fe328 100644 --- a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/SuperScripts.js +++ b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/SuperScripts.js @@ -9,12 +9,42 @@ function newSuperScriptsFunctions () { try { let clone = functionLibraryNodeCloning.getNodeClone let executionResult = true + let superAction = node - function setup (templateClone, target) { + function setup (templateClone, target, exchange, exchangeNodeType, arrayPropertyName) { spawnPosition.x = target.payload.position.x spawnPosition.y = target.payload.position.y - functionLibraryUiObjectsFromNodes.createUiObjectFromNode(templateClone, target, target) + if (exchange === undefined) { + functionLibraryUiObjectsFromNodes.createUiObjectFromNode(templateClone, target, target) + } else { + let definition = APP_SCHEMA_MAP.get(target.type) + for (let i = 0; i < definition.properties.length; i++) { + let property = definition.properties[i] + if (property.childType === exchangeNodeType) { + let exchanges = target[property.name] + if (exchanges === undefined) { + exchanges = [] + } + let targetExchange + for (let j = 0; j < exchanges.length; j++) { + let thisExchange = exchanges[j] + if (thisExchange.payload.referenceParent !== undefined) { + if (thisExchange.payload.referenceParent.id === exchange.id) { + targetExchange = thisExchange + } + } + } + if (targetExchange === undefined) { + targetExchange = functionLibraryUiObjectsFromNodes.addUIObject(target, exchangeNodeType) + targetExchange.payload.referenceParent = exchange + } + let nodesArray = targetExchange[arrayPropertyName] + nodesArray.push(templateClone) + functionLibraryUiObjectsFromNodes.createUiObjectFromNode(templateClone, targetExchange, targetExchange) + } + } + } } function deleteNode (node) { @@ -35,7 +65,6 @@ function newSuperScriptsFunctions () { executionResult = false } - let superAction = node let masterScript = node.payload.referenceParent eval(masterScript.javascriptCode.code) diff --git a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js index 2927e88c1..330c6d668 100644 --- a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js +++ b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/TaskFunctions.js @@ -5,7 +5,9 @@ function newTaskFunctions () { runAllTasks: runAllTasks, stopAllTasks: stopAllTasks, runAllTaskManagers: runAllTaskManagers, - stopAllTaskManagers: stopAllTaskManagers + stopAllTaskManagers: stopAllTaskManagers, + runAllExchangeTasks: runAllExchangeTasks, + stopAllExchangeTasks: stopAllExchangeTasks } return thisObject @@ -79,9 +81,9 @@ function newTaskFunctions () { taskId: node.id, taskName: node.name } - systemEventHandler.raiseEvent('Task Manager', 'Stop Task', event) node.payload.uiObject.stop(callBackFunction) + systemEventHandler.raiseEvent('Task Manager', 'Stop Task', event) if (node.bot === undefined) { return } if (node.bot.processes.length === 0) { return } @@ -110,9 +112,9 @@ function newTaskFunctions () { } } - function runAllTaskManagers (dataMining, functionLibraryProtocolNode) { - for (let i = 0; i < dataMining.taskManagers.length; i++) { - let node = dataMining.taskManagers[i] + function runAllTaskManagers (parent, functionLibraryProtocolNode) { + for (let i = 0; i < parent.taskManagers.length; i++) { + let node = parent.taskManagers[i] let menu = node.payload.uiObject.menu menu.internalClick('Run All Tasks') @@ -120,13 +122,32 @@ function newTaskFunctions () { } } - function stopAllTaskManagers (dataMining, functionLibraryProtocolNode) { - for (let i = 0; i < dataMining.taskManagers.length; i++) { - let node = dataMining.taskManagers[i] + function stopAllTaskManagers (parent, functionLibraryProtocolNode) { + for (let i = 0; i < parent.taskManagers.length; i++) { + let node = parent.taskManagers[i] let menu = node.payload.uiObject.menu menu.internalClick('Stop All Tasks') menu.internalClick('Stop All Tasks') } } + function runAllExchangeTasks (parent, functionLibraryProtocolNode) { + for (let i = 0; i < parent.exchangeTasks.length; i++) { + let node = parent.exchangeTasks[i] + let menu = node.payload.uiObject.menu + + menu.internalClick('Run All Task Managers') + menu.internalClick('Run All Task Managers') + } + } + + function stopAllExchangeTasks (parent, functionLibraryProtocolNode) { + for (let i = 0; i < parent.exchangeTasks.length; i++) { + let node = parent.exchangeTasks[i] + let menu = node.payload.uiObject.menu + + menu.internalClick('Stop All Task Managers') + menu.internalClick('Stop All Task Managers') + } + } } diff --git a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js index 19f48fa43..772681f5c 100644 --- a/CanvasApp/DesignSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js +++ b/CanvasApp/DesignSpace/Workspace/FunctionLibraries/UiObjectsFromNodes.js @@ -159,112 +159,92 @@ function newUiObjectsFromNodes () { } let parentNodeDefinition = APP_SCHEMA_MAP.get(parentNode.type) - if (parentNodeDefinition !== undefined) { + if (parentNodeDefinition === undefined) { + console.log('Cannot addUIOBject from parent of ' + type + ' because that type it is not defined at the APP_SCHEMA.') + } /* Resolve Initial Values */ - let nodeDefinition = APP_SCHEMA_MAP.get(object.type) + let nodeDefinition = APP_SCHEMA_MAP.get(object.type) - if (nodeDefinition.isHierarchyHead === true) { - parentNode.rootNodes.push(object) - createUiObject(true, object.type, object.name, object, parentNode, undefined) - return object + if (nodeDefinition === undefined) { + console.log('Cannot addUIOBject of ' + type + ' because that type it is not defined at the APP_SCHEMA.') + } + + if (nodeDefinition.initialValues !== undefined) { + if (nodeDefinition.initialValues.code !== undefined) { + object.code = nodeDefinition.initialValues.code } + } + + if (nodeDefinition.isHierarchyHead === true) { + parentNode.rootNodes.push(object) + createUiObject(true, object.type, object.name, object, parentNode, undefined) + return object + } /* For the cases where an node is not chained to its parent but to the one at the parent before it at its collection */ - let chainParent = parentNode - if (nodeDefinition.chainedToSameType === true) { - if (parentNodeDefinition.properties !== undefined) { - for (let i = 0; i < parentNodeDefinition.properties.length; i++) { - let property = parentNodeDefinition.properties[i] - if (property.childType === type) { - if (property.type === 'array') { - if (parentNode[property.name] !== undefined) { - if (parentNode[property.name].length > 0) { - let nodeChildren = parentNode[property.name] - chainParent = nodeChildren[nodeChildren.length - 1] - } - } - } - } - } - } - } - - /* Create Empty Arrays for properties of type Array */ - if (nodeDefinition.properties !== undefined) { - for (let i = 0; i < nodeDefinition.properties.length; i++) { - let property = nodeDefinition.properties[i] - if (property.type === 'array') { - object[property.name] = [] - } - } - } - - if (nodeDefinition !== undefined) { - if (nodeDefinition.initialValues !== undefined) { - if (nodeDefinition.initialValues.code !== undefined) { - object.code = nodeDefinition.initialValues.code - } - } - } - - /* Connect to Parent */ + let chainParent = parentNode + if (nodeDefinition.chainedToSameType === true) { if (parentNodeDefinition.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 < parentNodeDefinition.properties.length; i++) { let property = parentNodeDefinition.properties[i] if (property.childType === type) { - switch (property.type) { - case 'node': { - if (property.name !== previousPropertyName) { - parentNode[property.name] = object - previousPropertyName = property.name + if (property.type === 'array') { + if (parentNode[property.name] !== undefined) { + if (parentNode[property.name].length > 0) { + let nodeChildren = parentNode[property.name] + chainParent = nodeChildren[nodeChildren.length - 1] } } - break - case 'array': { - if (parentNode[property.name] === undefined) { - parentNode[property.name] = [] - } - if (property.maxItems !== undefined) { - if (parentNode[property.name].length < property.maxItems) { - parentNode[property.name].push(object) - } else { - return // Object can not be created. - } - } else { - parentNode[property.name].push(object) - } - } - break } } } } + } - createUiObject(true, object.type, object.name, object, parentNode, chainParent) + /* Create Empty Arrays for properties of type Array */ + if (nodeDefinition.properties !== undefined) { + for (let i = 0; i < nodeDefinition.properties.length; i++) { + let property = nodeDefinition.properties[i] + if (property.type === 'array') { + object[property.name] = [] + } + } + } - /* Auto Add more Children */ - 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] + if (nodeDefinition !== undefined) { + if (nodeDefinition.initialValues !== undefined) { + if (nodeDefinition.initialValues.code !== undefined) { + object.code = nodeDefinition.initialValues.code + } + } + } + /* Connect to Parent */ + if (parentNodeDefinition.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 < parentNodeDefinition.properties.length; i++) { + let property = parentNodeDefinition.properties[i] + if (property.childType === type) { switch (property.type) { case 'node': { if (property.name !== previousPropertyName) { - if (property.autoAdd === true) { - addUIObject(object, property.childType) - previousPropertyName = property.name - } + parentNode[property.name] = object + previousPropertyName = property.name } } break case 'array': { - if (property.autoAdd === true) { - if (object[property.name] === undefined) { - object[property.name] = [] + if (parentNode[property.name] === undefined) { + parentNode[property.name] = [] + } + if (property.maxItems !== undefined) { + if (parentNode[property.name].length < property.maxItems) { + parentNode[property.name].push(object) + } else { + return // Object can not be created. } - addUIObject(object, property.childType) + } else { + parentNode[property.name].push(object) } } break @@ -272,6 +252,38 @@ function newUiObjectsFromNodes () { } } } + + createUiObject(true, object.type, object.name, object, parentNode, chainParent) + + /* Auto Add more Children */ + 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 (property.autoAdd === true) { + addUIObject(object, property.childType) + previousPropertyName = property.name + } + } + } + break + case 'array': { + if (property.autoAdd === true) { + if (object[property.name] === undefined) { + object[property.name] = [] + } + addUIObject(object, property.childType) + } + } + break + } + } + } + return object } @@ -399,6 +411,27 @@ function newUiObjectsFromNodes () { node.payload = payload node.type = uiObjectType + /* + Now we copy the possible frame saved to the payload where it can be used. A saved frame stores the position of a a chartingSpace object related to a node. + This will prevent that if those charting space objects never get activated, that the frame information is lost when the workspace is saved. + */ + if (node.savedPayload !== undefined) { + if (node.savedPayload.frame !== undefined) { + let frame = { + position: { + x: 0, + y: 0 + } + } + frame.position.x = node.savedPayload.frame.position.x + frame.position.y = node.savedPayload.frame.position.y + frame.width = node.savedPayload.frame.width + frame.height = node.savedPayload.frame.height + frame.radius = node.savedPayload.frame.radius + saveFrame(payload, frame) + } + } + /* Now we mount the floating object where the UIOBject will be laying on top of */ canvas.floatingSpace.uiObjectConstructor.createUiObject(userAddingNew, payload) @@ -407,7 +440,9 @@ function newUiObjectsFromNodes () { /* Check if there are tasks to run */ if (userAddingNew === false && uiObjectType === 'Task' && node.savedPayload !== undefined) { if (node.savedPayload.uiObject.isRunning === true) { - tasksToRun.push(node) + if (node.payload.parentNode !== undefined) { + tasksToRun.push(node) + } } } @@ -415,7 +450,9 @@ function newUiObjectsFromNodes () { if (userAddingNew === false && node.savedPayload !== undefined) { if (uiObjectType === 'Live Trading Session' || uiObjectType === 'Fordward Testing Session' || uiObjectType === 'Backtesting Session' || uiObjectType === 'Paper Trading Session') { if (node.savedPayload.uiObject.isRunning === true) { - sessionsToRun.push(node) + if (node.payload.parentNode !== undefined) { + sessionsToRun.push(node) + } } } } diff --git a/CanvasApp/DesignSpace/Workspace/Workspace.js b/CanvasApp/DesignSpace/Workspace/Workspace.js index a63c790d8..48e48b21c 100644 --- a/CanvasApp/DesignSpace/Workspace/Workspace.js +++ b/CanvasApp/DesignSpace/Workspace/Workspace.js @@ -11,6 +11,7 @@ function newWorkspace () { container: undefined, enabled: false, nodeChildren: undefined, + getHierarchyHeads: getHierarchyHeads, getNodeThatIsOnFocus: getNodeThatIsOnFocus, getNodeByShortcutKey: getNodeByShortcutKey, stopAllRunningTasks: stopAllRunningTasks, @@ -57,6 +58,7 @@ function newWorkspace () { let functionLibraryShortcutKeys = newShortcutKeys() let functionLibraryOnFocus = newOnFocus() let functionLibrarySuperScripts = newSuperScriptsFunctions() + let functionLibraryCCXTFunctions = newCCXTFunctions() thisObject.nodeChildren = newNodeChildren() @@ -88,7 +90,7 @@ function newWorkspace () { functionLibraryUiObjectsFromNodes.recreateWorkspace(thisObject.workspaceNode) thisObject.enabled = true - setInterval(saveWorkspace, 30000) + setInterval(saveWorkspace, 10000) } catch (err) { if (ERROR_LOG === true) { logger.write('[ERROR] initialize -> err = ' + err.stack) } } @@ -183,22 +185,16 @@ function newWorkspace () { for (let j = 0; j < rootNode.networkNodes.length; j++) { let networkNode = rootNode.networkNodes[j] if (networkNode.dataMining !== undefined) { - for (let i = 0; i < networkNode.dataMining.taskManagers.length; i++) { - let taskManager = networkNode.dataMining.taskManagers[i] - taskManager.payload.uiObject.menu.internalClick('Stop All Tasks') - } + networkNode.dataMining.payload.uiObject.menu.internalClick('Stop All Exchange Tasks') + networkNode.dataMining.payload.uiObject.menu.internalClick('Stop All Exchange Tasks') } if (networkNode.testingEnvironment !== undefined) { - for (let i = 0; i < networkNode.testingEnvironment.taskManagers.length; i++) { - let taskManager = networkNode.testingEnvironment.taskManagers[i] - taskManager.payload.uiObject.menu.internalClick('Stop All Tasks') - } + networkNode.testingEnvironment.payload.uiObject.menu.internalClick('Stop All Exchange Tasks') + networkNode.testingEnvironment.payload.uiObject.menu.internalClick('Stop All Exchange Tasks') } if (networkNode.productionEnvironment !== undefined) { - for (let i = 0; i < networkNode.productionEnvironment.taskManagers.length; i++) { - let taskManager = networkNode.productionEnvironment.taskManagers[i] - taskManager.payload.uiObject.menu.internalClick('Stop All Tasks') - } + networkNode.productionEnvironment.payload.uiObject.menu.internalClick('Stop All Exchange Tasks') + networkNode.productionEnvironment.payload.uiObject.menu.internalClick('Stop All Exchange Tasks') } } } @@ -222,6 +218,20 @@ function newWorkspace () { } } + function getHierarchyHeads () { + let nodes = [] + for (let i = 0; i < thisObject.workspaceNode.rootNodes.length; i++) { + let rootNode = thisObject.workspaceNode.rootNodes[i] + let nodeDefinition = APP_SCHEMA_MAP.get(rootNode.type) + if (nodeDefinition !== undefined) { + if (nodeDefinition.isHierarchyHead === true) { + nodes.push(rootNode) + } + } + } + return nodes + } + function spawn (nodeText, mousePointer) { try { let point = { @@ -366,6 +376,32 @@ function newWorkspace () { functionLibraryTaskFunctions.stopAllTaskManagers(payload.node, functionLibraryProtocolNode) } break + case 'Run All Exchange Tasks': + { + functionLibraryTaskFunctions.runAllExchangeTasks(payload.node, functionLibraryProtocolNode) + } + break + case 'Stop All Exchange Tasks': + { + functionLibraryTaskFunctions.stopAllExchangeTasks(payload.node, functionLibraryProtocolNode) + } + break + case 'Add Missing Crypto Exchanges': + { + functionLibraryCCXTFunctions.addMissingExchanges(payload.node, functionLibraryUiObjectsFromNodes) + } + break + case 'Add Missing Assets': + { + functionLibraryCCXTFunctions.addMissingAssets(payload.node, functionLibraryUiObjectsFromNodes) + } + break + case 'Add Missing Markets': + { + functionLibraryCCXTFunctions.addMissingMarkets(payload.node, functionLibraryUiObjectsFromNodes, functionLibraryNodeCloning) + } + break + case 'Run Session': { functionLibrarySessionFunctions.runSession(payload.node, functionLibraryProtocolNode, callBackFunction) @@ -391,6 +427,17 @@ function newWorkspace () { referenceDetachNode(payload.node) } break + case 'Open Documentation': + { + let definition = APP_SCHEMA_MAP.get(payload.node.type) + if (definition !== undefined) { + if (definition.docURL !== undefined) { + let newTab = window.open(definition.docURL, '_blank') + newTab.focus() + } + } + } + break } } } diff --git a/CanvasApp/FloatingSpace/CircularMenu.js b/CanvasApp/FloatingSpace/CircularMenu.js index 0e81863c4..93a940068 100644 --- a/CanvasApp/FloatingSpace/CircularMenu.js +++ b/CanvasApp/FloatingSpace/CircularMenu.js @@ -49,7 +49,7 @@ function newCircularMenu () { let iconAndTextArray = [] let iconOnlyArray - let ringsArray = [[], [], []] + let ringsArray = [[], [], [], []] for (let i = 0; i < menuItemsInitialValues.length; i++) { let menuItem = newCircularMenuItem() @@ -103,15 +103,18 @@ function newCircularMenu () { menuItems.push(menuItem) } - /* There are 3 possible rings of icons, we will go through each of them here. */ - let amplitudeArray = [80, 50, 40] - let initialAngleArray = [220, 205, 200] - for (let j = 1; j < 4; j++) { + /* There are 4 possible rings of icons, we will go through each of them here. */ + let amplitudeArray = [80, 50, 40, 80] + let initialAngleArray = [220, 205, 200, 180] + for (let j = 1; j < ringsArray.length + 1; j++) { let iconOnlyArray = ringsArray[j - 1] /* Here we calculate the angles for each menu item, and then apply it if it was not previously defined. */ let amplitude = amplitudeArray[j - 1] let initialAngle = initialAngleArray[j - 1] let step = amplitude / (iconOnlyArray.length - 1) + if (iconOnlyArray.length === 1) { + step = 0 + } for (let i = 0; i < iconOnlyArray.length; i++) { let menuItem = iconOnlyArray[i] diff --git a/CanvasApp/FloatingSpace/CircularMenuItem.js b/CanvasApp/FloatingSpace/CircularMenuItem.js index af5c83a95..ca2d77c7e 100644 --- a/CanvasApp/FloatingSpace/CircularMenuItem.js +++ b/CanvasApp/FloatingSpace/CircularMenuItem.js @@ -57,7 +57,7 @@ function newCircularMenuItem () { thisObject.container.frame.position.x = 0 thisObject.container.frame.position.y = 0 thisObject.container.frame.width = 0 - thisObject.container.frame.height = 30 + thisObject.container.frame.height = 40 let isMouseOver = false @@ -112,7 +112,7 @@ function newCircularMenuItem () { selfMouseNotOverEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseNotOver', onMouseNotOver) if (thisObject.type === 'Icon & Text') { - thisObject.container.frame.width = 150 + thisObject.container.frame.width = 220 } else { thisObject.container.frame.width = 50 } @@ -150,15 +150,19 @@ function newCircularMenuItem () { if (thisObject.type === 'Icon Only') { switch (thisObject.ring) { case 1: { - radiusGrowthFactor = 6 + radiusGrowthFactor = 6.5 break } case 2: { - radiusGrowthFactor = 4.5 + radiusGrowthFactor = 5.0 break } case 3: { - radiusGrowthFactor = 3 + radiusGrowthFactor = 3.5 + break + } + case 4: { + radiusGrowthFactor = 2.5 break } } @@ -371,13 +375,13 @@ function newCircularMenuItem () { backgroundColor = UI_COLOR.GREY } let params = { - cornerRadius: 3, + cornerRadius: 5, lineWidth: 0.1, container: thisObject.container, borderColor: UI_COLOR.DARK, backgroundColor: backgroundColor, castShadow: false, - xOffset: 40 + xOffset: 60 } if (isMouseOver === true) { @@ -418,13 +422,13 @@ function newCircularMenuItem () { if (thisObject.type === 'Icon & Text') { let labelPoint - let fontSize = 10 + let fontSize = 15 browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY if (thisObject.currentRadius >= thisObject.targetRadius) { labelPoint = { - x: menuPosition.x + thisObject.currentRadius + 20, + x: menuPosition.x + thisObject.currentRadius + 25, y: menuPosition.y + fontSize * FONT_ASPECT_RATIO } diff --git a/CanvasApp/FloatingSpace/CircularProgressBar.js b/CanvasApp/FloatingSpace/CircularProgressBar.js index 0e59f3cf5..5a9c64d8d 100644 --- a/CanvasApp/FloatingSpace/CircularProgressBar.js +++ b/CanvasApp/FloatingSpace/CircularProgressBar.js @@ -55,10 +55,21 @@ function newCircularProgressBar () { if (thisObject.payload === undefined) { return } if (thisObject.payload.uiObject === undefined) { return } opacityCounters[message.event.seconds] = 2000 - thisObject.payload.uiObject.setValue(message.event.processingDate) + if (message.event.processingDate !== undefined) { + thisObject.payload.uiObject.setValue(message.event.processingDate, 2000) + } + if (message.event.percentage !== undefined) { + thisObject.payload.uiObject.setPercentage(message.event.percentage, 2000) + } + if (message.event.status !== undefined) { + thisObject.payload.uiObject.setStatus(message.event.status, 200000) + } + + thisObject.payload.uiObject.heartBeat() } function getContainer (point) { + if (canvas.floatingSpace.inMapMode === true) { return } let container for (let i = 0; i < menuItems.length; i++) { @@ -83,6 +94,7 @@ function newCircularProgressBar () { } function drawBackground (pFloatingObject) { + if (canvas.floatingSpace.inMapMode === true) { return } const VISIBLE_RADIUS = thisObject.container.frame.radius * 2 let visiblePosition = { diff --git a/CanvasApp/FloatingSpace/CodeEditor.js b/CanvasApp/FloatingSpace/CodeEditor.js index 833c1d5c1..e88d72a87 100644 --- a/CanvasApp/FloatingSpace/CodeEditor.js +++ b/CanvasApp/FloatingSpace/CodeEditor.js @@ -129,8 +129,8 @@ function newCodeEditor () { thisObject.container.frame.position.x = 0 thisObject.container.frame.position.y = 0 - thisObject.container.frame.width = thisObject.container.frame.radius * 1.8 * 2 - thisObject.container.frame.height = thisObject.container.frame.radius * 1 * 2 + thisObject.container.frame.width = thisObject.container.frame.radius * 1.8 * 1.5 + thisObject.container.frame.height = thisObject.container.frame.radius * 1 * 1.4 let textAreaPosition = { x: 0 - thisObject.container.frame.width / 2, @@ -162,7 +162,7 @@ function newCodeEditor () { position = thisObject.container.frame.frameThisPoint(position) - let radius = thisObject.container.frame.radius * 2 + let radius = thisObject.container.frame.radius * 1.5 if (radius > 0.5) { browserCanvasContext.beginPath() diff --git a/CanvasApp/FloatingSpace/FloatingLayer.js b/CanvasApp/FloatingSpace/FloatingLayer.js index 621404fbb..8be7ec11f 100644 --- a/CanvasApp/FloatingSpace/FloatingLayer.js +++ b/CanvasApp/FloatingSpace/FloatingLayer.js @@ -24,7 +24,6 @@ function newFloatingLayer () { removeFloatingObject: removeFloatingObject, getFloatingObject: getFloatingObject, physics: physics, - changeTargetRepulsion: changeTargetRepulsion, draw: draw, getContainer: getContainer, initialize: initialize, @@ -200,10 +199,24 @@ function newFloatingLayer () { } } + function collapsePhysics (thisObject) { + let parent = thisObject.payload.chainParent + if (parent === undefined) { return } + if (parent.payload === undefined) { return } + if (parent.payload.floatingObject === undefined) { return } + + thisObject.isParentCollapsed = parent.payload.floatingObject.isCollapsed + if (thisObject.collapsedManually === false) { + thisObject.isCollapsed = parent.payload.floatingObject.isCollapsed + } + } + function makeVisible () { for (let i = 0; i < invisibleFloatingObjects.length; i++) { let floatingObject = invisibleFloatingObjects[i] + collapsePhysics(floatingObject) + if (floatingObject.isFrozen === false && floatingObject.isParentCollapsed === false) { visibleFloatingObjects.push(floatingObject) invisibleFloatingObjects.splice(i, 1) // Delete item from array. @@ -217,6 +230,8 @@ function newFloatingLayer () { for (let i = 0; i < visibleFloatingObjects.length; i++) { let floatingObject = visibleFloatingObjects[i] + collapsePhysics(floatingObject) + if (floatingObject.isFrozen === true || floatingObject.isParentCollapsed === true) { invisibleFloatingObjects.push(floatingObject) visibleFloatingObjects.splice(i, 1) // Delete item from array. @@ -256,10 +271,8 @@ function newFloatingLayer () { /* This function makes all the calculations to apply phisycs on all visible floatingObjects in this layer. */ try { - for (let i = 0; i < invisibleFloatingObjects.length; i++) { - let floatingObject = invisibleFloatingObjects[i] - floatingObject.physics() - } + DEBUG.variable1 = 'Invisible Floating Objets: ' + invisibleFloatingObjects.length + DEBUG.variable2 = 'Visible Floating Objets: ' + visibleFloatingObjects.length for (let i = 0; i < visibleFloatingObjects.length; i++) { let floatingObject = visibleFloatingObjects[i] @@ -605,24 +618,6 @@ function newFloatingLayer () { } } - function changeTargetRepulsion (pDelta) { - try { - if (pDelta > 0) { - pDelta = 1 - } else { - pDelta = -1 - } - - maxTargetRepulsionForce = maxTargetRepulsionForce + pDelta / 1000 - - if (maxTargetRepulsionForce < 0.0000000001) { - maxTargetRepulsionForce = 0.0000000001 - } - } catch (err) { - if (ERROR_LOG === true) { logger.write('[ERROR] changeTargetRepulsion -> err= ' + err.stack) } - } - } - function colliding (floatingObject1, floatingObject2) { try { /* This function detects weather 2 floatingObjects collide with each other. */ diff --git a/CanvasApp/FloatingSpace/FloatingObject.js b/CanvasApp/FloatingSpace/FloatingObject.js index 6e9ce5833..cd4f32a8f 100644 --- a/CanvasApp/FloatingSpace/FloatingObject.js +++ b/CanvasApp/FloatingSpace/FloatingObject.js @@ -45,6 +45,7 @@ function newFloatingObject () { initializeRadius: initializeRadius, initializeImageSize: initializeImageSize, initializeFontSize: initializeFontSize, + initializeHierarchyRing: initializeHierarchyRing, initializeCurrentPosition: initializeCurrentPosition, radomizeCurrentSpeed: radomizeCurrentSpeed, drawBackground: drawBackground, @@ -107,6 +108,7 @@ function newFloatingObject () { function getContainer (point) { if ((thisObject.isCollapsed === true && thisObject.collapsedManually === false) || thisObject.isParentCollapsed === true) { return } + if (canvas.floatingSpace.inMapMode === true) { return } let container container = thisObject.payload.uiObject.getContainer(point) @@ -219,12 +221,13 @@ function newFloatingObject () { } function physics () { - collapsePhysics() frozenPhysics() /* From here on, only if they are not too far. */ if (canvas.floatingSpace.isItFar(thisObject.payload)) { return } thisObjectPhysics() - thisObject.payload.uiObject.physics() + if (thisObject.payload.uiObject !== undefined) { + thisObject.payload.uiObject.physics() + } positionContraintsPhysics() } @@ -241,18 +244,6 @@ function newFloatingObject () { } } - function collapsePhysics () { - let parent = thisObject.payload.chainParent - if (parent === undefined) { return } - if (parent.payload === undefined) { return } - if (parent.payload.floatingObject === undefined) { return } - - thisObject.isParentCollapsed = parent.payload.floatingObject.isCollapsed - if (thisObject.collapsedManually === false) { - thisObject.isCollapsed = parent.payload.floatingObject.isCollapsed - } - } - function positionContraintsPhysics () { if (thisObject.angleToParent !== ANGLE_TO_PARENT.NOT_FIXED && thisObject.isOnFocus !== true) { let parent = thisObject.payload.chainParent @@ -330,7 +321,7 @@ function newFloatingObject () { thisObject.payload.distance = distanceToParent - if (distanceToParent > 2000 || thisObject.isPinned === true) { return } // this is introduced to avoid edges cases when importing workspaces. + if (distanceToParent > 3000 || thisObject.isPinned === true) { return } // this is introduced to avoid edges cases when importing workspaces. newPosition = { x: parent.payload.position.x + distanceToParent * Math.cos(toRadians(thisObject.payload.angle)), @@ -348,11 +339,11 @@ function newFloatingObject () { function thisObjectPhysics () { // The radius also have a target. - if (Math.abs(thisObject.container.frame.radius - thisObject.targetRadius) >= 15) { + if (Math.abs(thisObject.container.frame.radius - thisObject.targetRadius) >= 10) { if (thisObject.container.frame.radius < thisObject.targetRadius) { - thisObject.container.frame.radius = thisObject.container.frame.radius + 15 + thisObject.container.frame.radius = thisObject.container.frame.radius + 10 } else { - thisObject.container.frame.radius = thisObject.container.frame.radius - 15 + thisObject.container.frame.radius = thisObject.container.frame.radius - 10 } thisObject.container.eventHandler.raiseEvent('Dimmensions Changed', event) } @@ -377,6 +368,14 @@ function newFloatingObject () { } } + if (Math.abs(thisObject.currentHierarchyRing - thisObject.targetHierarchyRing) >= 10) { + if (thisObject.currentHierarchyRing < thisObject.targetHierarchyRing) { + thisObject.currentHierarchyRing = thisObject.currentHierarchyRing + 10 + } else { + thisObject.currentHierarchyRing = thisObject.currentHierarchyRing - 10 + } + } + /* Floating object position in screen coordinates */ thisObject.payload.position.x = thisObject.container.frame.position.x @@ -388,6 +387,7 @@ function newFloatingObject () { thisObject.targetRadius = thisObject.rawRadius * 6.0 thisObject.targetImageSize = thisObject.rawImageSize * 2.0 thisObject.targetFontSize = thisObject.rawFontSize * 2.0 + thisObject.targetHierarchyRing = thisObject.rawHierarchyRing * 8.0 thisObject.payload.uiObject.container.eventHandler.raiseEvent('onFocus', point) @@ -420,6 +420,7 @@ function newFloatingObject () { thisObject.targetRadius = thisObject.rawRadius * 1 thisObject.targetImageSize = thisObject.rawImageSize * 1 thisObject.targetFontSize = thisObject.rawFontSize * 1 + thisObject.targetHierarchyRing = thisObject.rawHierarchyRing * 1 thisObject.payload.uiObject.container.eventHandler.raiseEvent('onNotFocus') @@ -478,13 +479,13 @@ function newFloatingObject () { thisObject.rawRadius = radius thisObject.targetRadius = radius - thisObject.container.frame.radius = radius / 3 + thisObject.container.frame.radius = radius / 5 thisObject.container.eventHandler.raiseEvent('Dimmensions Changed', event) } function initializeImageSize (suggestedValue) { - var size = suggestedValue + let size = suggestedValue if (size < 2) { size = 2 } @@ -495,7 +496,7 @@ function newFloatingObject () { } function initializeFontSize (suggestedValue) { - var size = suggestedValue + let size = suggestedValue if (size < 3) { size = 3 } @@ -505,6 +506,17 @@ function newFloatingObject () { thisObject.currentFontSize = size / 3 } + function initializeHierarchyRing (suggestedValue) { + let radius = suggestedValue + if (radius < 3) { + radius = 3 + } + + thisObject.rawHierarchyRing = radius + thisObject.targetHierarchyRing = radius + thisObject.currentHierarchyRing = radius + } + function initializeCurrentPosition (arroundPoint) { let position = {} diff --git a/CanvasApp/FloatingSpace/UiObject.js b/CanvasApp/FloatingSpace/UiObject.js index 15cf760d1..67c1d812f 100644 --- a/CanvasApp/FloatingSpace/UiObject.js +++ b/CanvasApp/FloatingSpace/UiObject.js @@ -25,6 +25,7 @@ function newUiObject () { shortcutKey: undefined, run: run, stop: stop, + heartBeat: heartBeat, getReadyToChainAttach: getReadyToChainAttach, showAvailabilityToChainAttach: showAvailabilityToChainAttach, getReadyToReferenceAttach: getReadyToReferenceAttach, @@ -32,6 +33,8 @@ function newUiObject () { highlight: highlight, setErrorMessage: setErrorMessage, setValue: setValue, + setPercentage: setPercentage, + setStatus: setStatus, physics: physics, drawBackground: drawBackground, drawMiddleground: drawMiddleground, @@ -54,7 +57,7 @@ function newUiObject () { let executingIcon let selfFocusEventSubscriptionId - let selfNotFocuskEventSubscriptionId + let selfNotFocusEventSubscriptionId let selfDisplaceEventSubscriptionId let selfDragStartedEventSubscriptionId let selfDragFinishedEventSubscriptionId @@ -68,6 +71,12 @@ function newUiObject () { let hasValue let valueCounter = 0 + let hasPercentage + let percentageCounter = 0 + + let hasStatus + let statusCounter = 0 + let previousDistanceToChainParent let readyToChainAttachDisplayCounter = 5 let readyToChainAttachDisplayIncrement = 0.1 @@ -92,20 +101,29 @@ function newUiObject () { let errorMessage = '' let currentValue = 0 + let currentPercentage = '' + let currentStatus = '' let rightDragging = false - let eventSubscriptionIdHeartbeat + let eventSubscriptionIdOnRunning let eventSubscriptionIdOnStopped + let lastHeartBeat + let onRunningCallBackFunction + let onRunningCallBackFunctionWasCalled = false + + let newUiObjectCounter = 25 + let referenceLineCounter = 0 + let chainLineCounter = 0 return thisObject function finalize () { let key = thisObject.payload.node.name + '-' + thisObject.payload.node.type + '-' + thisObject.payload.node.id - systemEventHandler.stopListening(key, eventSubscriptionIdHeartbeat, 'UiObject') + systemEventHandler.stopListening(key, eventSubscriptionIdOnRunning, 'UiObject') systemEventHandler.stopListening(key, eventSubscriptionIdOnStopped, 'UiObject') thisObject.container.eventHandler.stopListening(selfFocusEventSubscriptionId) - thisObject.container.eventHandler.stopListening(selfNotFocuskEventSubscriptionId) + thisObject.container.eventHandler.stopListening(selfNotFocusEventSubscriptionId) thisObject.container.eventHandler.stopListening(selfDisplaceEventSubscriptionId) thisObject.container.eventHandler.stopListening(selfDragStartedEventSubscriptionId) thisObject.container.eventHandler.stopListening(selfDragFinishedEventSubscriptionId) @@ -143,6 +161,9 @@ function newUiObject () { icon = undefined chainAttachToNode = undefined referenceAttachToNode = undefined + lastHeartBeat = undefined + + onRunningCallBackFunction = undefined } function initialize (payload, menuItemsInitialValues) { @@ -166,7 +187,7 @@ function newUiObject () { iconPhysics() selfFocusEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onFocus', onFocus) - selfNotFocuskEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onNotFocus', onNotFocus) + selfNotFocusEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onNotFocus', onNotFocus) selfDisplaceEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onDisplace', onDisplace) selfDragStartedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onDragStarted', onDragStarted) selfDragFinishedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onDragFinished', onDragFinished) @@ -273,20 +294,62 @@ function newUiObject () { highlightPhisycs() errorMessagePhisycs() valuePhisycs() + percentagePhisycs() + statusPhisycs() chainDetachingPhysics() chainAttachingPhysics() referenceDetachingPhysics() referenceAttachingPhysics() childrenRunningPhysics() + newObjectPhysics() + referenceLinePhysics() + chainLinePhysics() + } + + function referenceLinePhysics () { + referenceLineCounter = referenceLineCounter + 2 + if (referenceLineCounter > 500) { + referenceLineCounter = 0 + } + } + + function chainLinePhysics () { + chainLineCounter = chainLineCounter - 5 + if (chainLineCounter < 0) { + chainLineCounter = 500 + } + } + + function newObjectPhysics () { + newUiObjectCounter-- + if (newUiObjectCounter < 0) { + newUiObjectCounter = 0 + } + } + + function heartBeatPhysics () { + if (lastHeartBeat !== undefined) { + const ONE_MIN = 60000 + nowTimestamp = (new Date()).valueOf() + if (nowTimestamp - lastHeartBeat.valueOf() > ONE_MIN) { + lastHeartBeat = undefined + thisObject.isRunning = false + valueCounter = 0 + } + } else { + thisObject.isRunning = false + } } function childrenRunningPhysics () { let nodeDefinition = APP_SCHEMA_MAP.get(thisObject.payload.node.type) if (nodeDefinition.properties === undefined) { return } + let monitorChildrenRunning = false for (let i = 0; i < nodeDefinition.properties.length; i++) { let property = nodeDefinition.properties[i] if (property.monitorChildrenRunning === true) { let children = thisObject.payload.node[property.name] + if (children === undefined) { continue } let totalRunning = 0 for (let j = 0; j < children.length; j++) { let child = children[j] @@ -299,11 +362,15 @@ function newUiObject () { thisObject.isRunning = true } else { thisObject.isRunning = false + valueCounter = 0 } - + monitorChildrenRunning = true return } } + if (monitorChildrenRunning === false) { + heartBeatPhysics() + } } function chainAttachingPhysics () { @@ -590,6 +657,22 @@ function newUiObject () { } } + function percentagePhisycs () { + percentageCounter-- + if (percentageCounter < 0) { + percentageCounter = 0 + hasPercentage = false + } + } + + function statusPhisycs () { + statusCounter-- + if (statusCounter < 0) { + statusCounter = 0 + hasStatus = false + } + } + function highlight () { isHighlighted = true highlightCounter = 30 @@ -604,11 +687,51 @@ function newUiObject () { } } - function setValue (value) { + function setValue (value, counter) { if (value !== undefined) { currentValue = value hasValue = true - valueCounter = 500 + if (counter !== undefined) { + valueCounter = counter + } else { + valueCounter = 100 + } + } + } + + function setPercentage (percentage, counter) { + if (percentage !== undefined) { + currentPercentage = percentage + hasPercentage = true + if (counter !== undefined) { + percentageCounter = counter + } else { + percentageCounter = 100 + } + } + } + + function setStatus (status, counter) { + if (status !== undefined) { + currentStatus = status + hasStatus = true + if (counter !== undefined) { + statusCounter = counter + } else { + statusCounter = 100 + } + } + } + + function heartBeat () { + lastHeartBeat = new Date() + thisObject.isRunning = true + + if (onRunningCallBackFunctionWasCalled === false) { + onRunningCallBackFunctionWasCalled = true + if (onRunningCallBackFunction !== undefined) { + onRunningCallBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) + } } } @@ -625,19 +748,25 @@ function newUiObject () { /* We will wait to hear the first onHeartBeat in order to confirm the execution was really started */ let key = thisObject.payload.node.name + '-' + thisObject.payload.node.type + '-' + thisObject.payload.node.id - systemEventHandler.listenToEvent(key, 'Heartbeat', undefined, 'UiObject', onResponse, onHeartBeat) + systemEventHandler.listenToEvent(key, 'Running', undefined, 'UiObject', onResponse, onRunning) + + onRunningCallBackFunction = callBackFunction function onResponse (message) { - eventSubscriptionIdHeartbeat = message.eventSubscriptionId + eventSubscriptionIdOnRunning = message.eventSubscriptionId } - function onHeartBeat () { + function onRunning () { if (thisObject.payload === undefined) { return } + let key = thisObject.payload.node.name + '-' + thisObject.payload.node.type + '-' + thisObject.payload.node.id - systemEventHandler.stopListening(key, eventSubscriptionIdHeartbeat, 'UiObject') + systemEventHandler.stopListening(key, eventSubscriptionIdOnRunning, 'UiObject') + + thisObject.isRunning = true if (callBackFunction !== undefined) { callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) + onRunningCallBackFunctionWasCalled = true } } @@ -656,8 +785,6 @@ function newUiObject () { type: 'Secondary Action Already Executed' } stop(callBackFunction, event) - - thisObject.isRunning = true } function stop (callBackFunction, event) { @@ -680,6 +807,10 @@ function newUiObject () { thisObject.circularProgressBar = undefined } thisObject.isRunning = false + hasValue = false + hasPercentage = false + hasStatus = false + lastHeartBeat = undefined } } @@ -695,8 +826,10 @@ function newUiObject () { } if (nodeDefinition.alternativeIcons === 'Use Reference Grandparent') { if (thisObject.payload.node.payload.referenceParent !== undefined) { - if (thisObject.payload.node.payload.referenceParent.payload.referenceParent !== undefined) { - nodeToUse = thisObject.payload.node.payload.referenceParent.payload.referenceParent + if (thisObject.payload.node.payload.referenceParent.payload !== undefined) { + if (thisObject.payload.node.payload.referenceParent.payload.referenceParent !== undefined) { + nodeToUse = thisObject.payload.node.payload.referenceParent.payload.referenceParent + } } } } @@ -805,6 +938,8 @@ function newUiObject () { function drawMiddleground () { if (thisObject.isOnFocus === false) { drawValue() + drawPercentage() + drawStatus() drawText() thisObject.uiObjectTitle.draw() } @@ -883,6 +1018,8 @@ function newUiObject () { drawErrorMessage() drawValue() + drawPercentage() + drawStatus() drawText() if (drawTitle === true) { @@ -892,6 +1029,7 @@ function newUiObject () { } function drawChainLine () { + if (canvas.floatingSpace.drawChainLines === false) { return } if (thisObject.payload.chainParent === undefined) { return } let targetPoint = { @@ -907,6 +1045,11 @@ function newUiObject () { targetPoint = canvas.floatingSpace.container.frame.frameThisPoint(targetPoint) position = thisObject.container.frame.frameThisPoint(position) + if (canvas.floatingSpace.inMapMode === true) { + targetPoint = canvas.floatingSpace.transformPointToMap(targetPoint) + position = canvas.floatingSpace.transformPointToMap(position) + } + if (thisObject.container.frame.radius > 1) { let LINE_STYLE = UI_COLOR.TITANIUM_YELLOW if (thisObject.payload.floatingObject.angleToParent !== ANGLE_TO_PARENT.NOT_FIXED) { @@ -915,6 +1058,18 @@ function newUiObject () { if (thisObject.payload.floatingObject.isFrozen === true) { LINE_STYLE = UI_COLOR.TURQUOISE } + if (newUiObjectCounter > 0) { + LINE_STYLE = UI_COLOR.GREY + } + + browserCanvasContext.beginPath() + browserCanvasContext.moveTo(position.x, position.y) + browserCanvasContext.lineTo(targetPoint.x, targetPoint.y) + browserCanvasContext.strokeStyle = 'rgba(' + LINE_STYLE + ', 1)' + browserCanvasContext.setLineDash([0, chainLineCounter, 2, 3, 0, 500 - chainLineCounter]) + browserCanvasContext.lineWidth = 2 + browserCanvasContext.stroke() + browserCanvasContext.setLineDash([0, 0]) browserCanvasContext.beginPath() browserCanvasContext.moveTo(position.x, position.y) @@ -947,6 +1102,7 @@ function newUiObject () { } function drawReferenceLine () { + if (canvas.floatingSpace.drawReferenceLines === false) { return } if (thisObject.payload.referenceParent === undefined) { return } if (thisObject.payload.referenceParent.payload === undefined) { return } if (thisObject.payload.referenceParent.payload.floatingObject === undefined) { return } @@ -965,6 +1121,11 @@ function newUiObject () { targetPoint = canvas.floatingSpace.container.frame.frameThisPoint(targetPoint) position = thisObject.container.frame.frameThisPoint(position) + if (canvas.floatingSpace.inMapMode === true) { + position = canvas.floatingSpace.transformPointToMap(position) + targetPoint = canvas.floatingSpace.transformPointToMap(targetPoint) + } + let LINE_STYLE = UI_COLOR.GREY if (thisObject.container.frame.radius > 1) { @@ -981,7 +1142,7 @@ function newUiObject () { browserCanvasContext.moveTo(position.x, position.y) browserCanvasContext.lineTo(targetPoint.x, targetPoint.y) browserCanvasContext.strokeStyle = 'rgba(' + LINE_STYLE + ', 1)' - browserCanvasContext.setLineDash([1, 9, 2, 8, 3, 7, 4, 6, 0, 500]) + browserCanvasContext.setLineDash([0, referenceLineCounter, 1, 9, 2, 8, 3, 7, 4, 6, 0, 500 - referenceLineCounter]) browserCanvasContext.lineWidth = 4 browserCanvasContext.stroke() browserCanvasContext.setLineDash([0, 0]) @@ -1007,6 +1168,10 @@ function newUiObject () { position = thisObject.container.frame.frameThisPoint(position) + if (canvas.floatingSpace.inMapMode === true) { + position = canvas.floatingSpace.transformPointToMap(position) + } + let radius = thisObject.container.frame.radius /* Label Text */ let labelPoint @@ -1029,6 +1194,16 @@ function newUiObject () { y: position.y + radius * 4 / 5 + fontSize * FONT_ASPECT_RATIO + 15 } + if (canvas.floatingSpace.inMapMode === true) { + labelPoint.y = labelPoint.y - 20 + let nodeDefinition = APP_SCHEMA_MAP.get(thisObject.payload.node.type) + if (nodeDefinition !== undefined) { + if (nodeDefinition.isHierarchyHead !== true) { + return + } + } + } + browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY browserCanvasContext.fillStyle = thisObject.payload.floatingObject.labelStrokeStyle browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y) @@ -1047,6 +1222,10 @@ function newUiObject () { position = thisObject.container.frame.frameThisPoint(position) + if (canvas.floatingSpace.inMapMode === true) { + position = canvas.floatingSpace.transformPointToMap(position) + } + let radius = thisObject.container.frame.radius * 3.5 /* Label Text */ let labelPoint @@ -1077,6 +1256,8 @@ function newUiObject () { function drawValue () { if (hasValue === false) { return } + if (canvas.floatingSpace.inMapMode === true) { return } + // if (currentValue === undefined || currentValue === '') { return } /* Text Follows */ let position = { @@ -1086,7 +1267,11 @@ function newUiObject () { position = thisObject.container.frame.frameThisPoint(position) - let radius = thisObject.container.frame.radius * 1.5 + if (canvas.floatingSpace.inMapMode === true) { + position = canvas.floatingSpace.transformPointToMap(position) + } + + let radius = thisObject.container.frame.radius * 1.35 /* Label Text */ let labelPoint let fontSize = thisObject.payload.floatingObject.currentFontSize * 6 / 4 @@ -1102,6 +1287,53 @@ function newUiObject () { } } + if (label !== undefined) { + if (label.length > MAX_LABEL_LENGTH) { + label = label.substring(0, MAX_LABEL_LENGTH) + '...' + } + + if (label.length > 30) { + fontSize = fontSize / 2 + } + + labelPoint = { + x: position.x - label.length / 2 * fontSize * FONT_ASPECT_RATIO - 10, + y: position.y + radius * 7 / 5 + fontSize * FONT_ASPECT_RATIO + 15 + } + + browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY + browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TURQUOISE + ', 1)' + browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y) + } + } + } + + function drawPercentage () { + if (hasPercentage === false) { return } + if (canvas.floatingSpace.inMapMode === true) { return } + + let position = { + x: 0, + y: 0 + } + + position = thisObject.container.frame.frameThisPoint(position) + + if (canvas.floatingSpace.inMapMode === true) { + position = canvas.floatingSpace.transformPointToMap(position) + } + + let radius = thisObject.container.frame.radius * 1.75 + /* Label Text */ + let labelPoint + let fontSize = thisObject.payload.floatingObject.currentFontSize * 6 / 4 + let label + + if (radius > 6) { + const MAX_LABEL_LENGTH = 65 + + label = Number(currentPercentage).toFixed(0) + '%' + if (label !== undefined) { if (label.length > MAX_LABEL_LENGTH) { label = label.substring(0, MAX_LABEL_LENGTH) + '...' @@ -1119,6 +1351,49 @@ function newUiObject () { } } + function drawStatus () { + if (hasStatus === false) { return } + if (canvas.floatingSpace.inMapMode === true) { return } + + let position = { + x: 0, + y: 0 + } + + position = thisObject.container.frame.frameThisPoint(position) + + if (canvas.floatingSpace.inMapMode === true) { + position = canvas.floatingSpace.transformPointToMap(position) + } + + let radius = thisObject.container.frame.radius * 1.4 + /* Label Text */ + let labelPoint + let fontSize = thisObject.payload.floatingObject.currentFontSize * 6 / 4 / 2 + let label + + if (radius > 6) { + const MAX_LABEL_LENGTH = 65 + + label = currentStatus + + if (label !== undefined) { + if (label.length > MAX_LABEL_LENGTH) { + label = label.substring(0, MAX_LABEL_LENGTH) + '...' + } + + labelPoint = { + x: position.x - label.length / 2 * fontSize * FONT_ASPECT_RATIO - 10, + y: position.y - radius * 7 / 5 + fontSize * FONT_ASPECT_RATIO + 15 + } + + browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY + browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', 1)' + browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y) + } + } + } + function addIndexNumber (label) { switch (thisObject.payload.node.type) { case 'Phase': { @@ -1189,6 +1464,10 @@ function newUiObject () { position = thisObject.container.frame.frameThisPoint(position) + if (canvas.floatingSpace.inMapMode === true) { + position = canvas.floatingSpace.transformPointToMap(position) + } + let radius = thisObject.container.frame.radius if (radius > 0.5) { @@ -1200,7 +1479,14 @@ function newUiObject () { } visiblePosition = thisObject.container.frame.frameThisPoint(visiblePosition) - visiblePosition = thisObject.fitFunction(visiblePosition) + + if (canvas.floatingSpace.inMapMode === true) { + visiblePosition = canvas.floatingSpace.transformPointToMap(visiblePosition) + radius = canvas.floatingSpace.transformRadiusToMap(radius) + VISIBLE_RADIUS = canvas.floatingSpace.transformRadiusToMap(VISIBLE_RADIUS) + } else { + visiblePosition = thisObject.fitFunction(visiblePosition) + } browserCanvasContext.beginPath() browserCanvasContext.arc(visiblePosition.x, visiblePosition.y, VISIBLE_RADIUS, 0, Math.PI * 2, true) @@ -1221,7 +1507,10 @@ function newUiObject () { let nodeDefinition = APP_SCHEMA_MAP.get(thisObject.payload.node.type) if (nodeDefinition !== undefined) { if (nodeDefinition.isHierarchyHead === true) { - VISIBLE_RADIUS = thisObject.container.frame.radius * 2 + VISIBLE_RADIUS = thisObject.payload.floatingObject.currentHierarchyRing * 2.8 + if (canvas.floatingSpace.inMapMode === true) { + VISIBLE_RADIUS = canvas.floatingSpace.transformRadiusToMap(VISIBLE_RADIUS) + } let OPACITY = 1 browserCanvasContext.beginPath() @@ -1391,7 +1680,15 @@ function newUiObject () { let additionalImageSize = 0 if (thisObject.isExecuting === true || isReadyToReferenceAttach === true || isReadyToChainAttach === true) { additionalImageSize = 20 } let totalImageSize = additionalImageSize + thisObject.payload.floatingObject.currentImageSize - + if (canvas.floatingSpace.inMapMode === true) { + totalImageSize = canvas.floatingSpace.transformImagesizeToMap(totalImageSize) + let nodeDefinition = APP_SCHEMA_MAP.get(thisObject.payload.node.type) + if (nodeDefinition !== undefined) { + if (nodeDefinition.isHierarchyHead !== true) { + totalImageSize = totalImageSize / 4 + } + } + } browserCanvasContext.drawImage( icon, position.x - totalImageSize / 2, position.y - totalImageSize / 2, @@ -1416,3 +1713,4 @@ function newUiObject () { } } } + diff --git a/CanvasApp/FloatingSpace/UiObjectConstructor.js b/CanvasApp/FloatingSpace/UiObjectConstructor.js index 9d6f5bb78..4fe03a6bd 100644 --- a/CanvasApp/FloatingSpace/UiObjectConstructor.js +++ b/CanvasApp/FloatingSpace/UiObjectConstructor.js @@ -84,7 +84,7 @@ function newUiObjectConstructor () { for (let j = 0; j < menuItems.length; j++) { let item = menuItems[j] item.angle = undefined - if (item.action.indexOf('Add ') >= 0 && item.action.indexOf('Missing') >= 0) { + if (item.action.indexOf('Add Missing Children') >= 0) { item.action = 'Add Missing Children' } if (item.action.indexOf('Delete ') >= 0) { @@ -134,7 +134,7 @@ function newUiObjectConstructor () { visible: true, iconPathOn: 'menu-fix-pinned', iconPathOff: 'menu-fix-unpinned', - rawRadius: 8, + rawRadius: 12, targetRadius: 0, currentRadius: 0, ring: 1 @@ -149,7 +149,7 @@ function newUiObjectConstructor () { label: undefined, visible: true, icons: ['angle-to-parent-000', 'angle-to-parent-360', 'angle-to-parent-180', 'angle-to-parent-090', 'angle-to-parent-045'], - rawRadius: 8, + rawRadius: 12, targetRadius: 0, currentRadius: 0, ring: 1 @@ -164,7 +164,7 @@ function newUiObjectConstructor () { label: undefined, visible: true, icons: ['distance-to-parent-000', 'distance-to-parent-025', 'distance-to-parent-050', 'distance-to-parent-100', 'distance-to-parent-150', 'distance-to-parent-200'], - rawRadius: 8, + rawRadius: 12, targetRadius: 0, currentRadius: 0, ring: 1 @@ -180,7 +180,7 @@ function newUiObjectConstructor () { visible: true, iconPathOn: 'menu-mobility-unfreeze', iconPathOff: 'menu-mobility-freeze', - rawRadius: 8, + rawRadius: 12, targetRadius: 0, currentRadius: 0, ring: 1 @@ -196,7 +196,7 @@ function newUiObjectConstructor () { visible: true, iconPathOn: 'menu-tree-plus', iconPathOff: 'menu-tree-minus', - rawRadius: 8, + rawRadius: 12, targetRadius: 0, currentRadius: 0, ring: 1 @@ -210,7 +210,7 @@ function newUiObjectConstructor () { visible: true, iconPathOn: 'menu-backup', iconPathOff: 'menu-backup', - rawRadius: 8, + rawRadius: 12, targetRadius: 0, currentRadius: 0, ring: 2 @@ -224,7 +224,7 @@ function newUiObjectConstructor () { visible: true, iconPathOn: 'clone', iconPathOff: 'clone', - rawRadius: 8, + rawRadius: 12, targetRadius: 0, currentRadius: 0, ring: 2 @@ -239,7 +239,7 @@ function newUiObjectConstructor () { visible: true, iconPathOn: 'menu-share', iconPathOff: 'menu-share', - rawRadius: 8, + rawRadius: 12, targetRadius: 0, currentRadius: 0, ring: 2 @@ -254,7 +254,7 @@ function newUiObjectConstructor () { visible: true, iconPathOn: 'detach', iconPathOff: 'detach', - rawRadius: 8, + rawRadius: 12, targetRadius: 0, currentRadius: 0, ring: 3 @@ -268,12 +268,27 @@ function newUiObjectConstructor () { visible: true, iconPathOn: 'delink', iconPathOff: 'delink', - rawRadius: 8, + rawRadius: 12, targetRadius: 0, currentRadius: 0, ring: 3 } ) + + menuItemsInitialValues.push( + { + action: 'Open Documentation', + actionFunction: floatingObject.payload.onMenuItemClick, + label: undefined, + visible: true, + iconPathOn: 'help', + iconPathOff: 'help', + rawRadius: 12, + targetRadius: 0, + currentRadius: 0, + ring: 4 + } + ) } function getMenuItemsInitialValues (uiObject, floatingObject, payload) { @@ -332,7 +347,7 @@ function newUiObjectConstructor () { } if (newMenuItem.rawRadius === undefined) { - newMenuItem.rawRadius = 8 + newMenuItem.rawRadius = 12 } if (newMenuItem.targetRadius === undefined) { @@ -355,7 +370,10 @@ function newUiObjectConstructor () { function setFloatingObjectBasicProperties (floatingObject, payload) { const FRICTION = 0.95 const INITIAL_FRICTION = 0.97 - const INITIAL_FONT_SIZE = 12 + const INITIAL_FONT_SIZE = 12 * 1.5 + const INITIAL_RADIOUS = 45 * 1.5 + const INITIAL_IMAGE_SIZE = 80 * 1.2 + const INITIAL_HIERARCHY_RING = 20 switch (payload.node.type) { case 'Workspace': { @@ -402,8 +420,9 @@ function newUiObjectConstructor () { floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(500) - floatingObject.initializeRadius(45) - floatingObject.initializeImageSize(80) + floatingObject.initializeRadius(INITIAL_RADIOUS) + floatingObject.initializeHierarchyRing(INITIAL_HIERARCHY_RING) + floatingObject.initializeImageSize(INITIAL_IMAGE_SIZE) floatingObject.initializeFontSize(INITIAL_FONT_SIZE) floatingObject.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', 1)' @@ -413,8 +432,9 @@ function newUiObjectConstructor () { floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(600) - floatingObject.initializeRadius(45) - floatingObject.initializeImageSize(80) + floatingObject.initializeRadius(INITIAL_RADIOUS) + floatingObject.initializeHierarchyRing(INITIAL_HIERARCHY_RING) + floatingObject.initializeImageSize(INITIAL_IMAGE_SIZE) floatingObject.initializeFontSize(INITIAL_FONT_SIZE) floatingObject.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', 1)' @@ -428,8 +448,9 @@ function newUiObjectConstructor () { floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(300) - floatingObject.initializeRadius(40) - floatingObject.initializeImageSize(70) + floatingObject.initializeRadius(INITIAL_RADIOUS - 5) + floatingObject.initializeHierarchyRing(INITIAL_HIERARCHY_RING) + floatingObject.initializeImageSize(INITIAL_IMAGE_SIZE - 10) floatingObject.initializeFontSize(INITIAL_FONT_SIZE) floatingObject.fillStyle = 'rgba(' + UI_COLOR.GREEN + ', 1)' @@ -443,8 +464,9 @@ function newUiObjectConstructor () { floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(150) - floatingObject.initializeRadius(35) - floatingObject.initializeImageSize(60) + floatingObject.initializeRadius(INITIAL_RADIOUS - 10) + floatingObject.initializeHierarchyRing(INITIAL_HIERARCHY_RING) + floatingObject.initializeImageSize(INITIAL_IMAGE_SIZE - 20) floatingObject.initializeFontSize(INITIAL_FONT_SIZE) floatingObject.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', 1)' @@ -458,8 +480,9 @@ function newUiObjectConstructor () { floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(75) - floatingObject.initializeRadius(30) - floatingObject.initializeImageSize(50) + floatingObject.initializeRadius(INITIAL_RADIOUS - 15) + floatingObject.initializeHierarchyRing(INITIAL_HIERARCHY_RING) + floatingObject.initializeImageSize(INITIAL_IMAGE_SIZE - 30) floatingObject.initializeFontSize(INITIAL_FONT_SIZE) floatingObject.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', 1)' @@ -473,8 +496,9 @@ function newUiObjectConstructor () { floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(50) - floatingObject.initializeRadius(25) - floatingObject.initializeImageSize(40) + floatingObject.initializeRadius(INITIAL_RADIOUS - 20) + floatingObject.initializeHierarchyRing(INITIAL_HIERARCHY_RING) + floatingObject.initializeImageSize(INITIAL_IMAGE_SIZE - 40) floatingObject.initializeFontSize(INITIAL_FONT_SIZE) floatingObject.fillStyle = 'rgba(' + UI_COLOR.RED + ', 1)' @@ -484,8 +508,9 @@ function newUiObjectConstructor () { floatingObject.friction = INITIAL_FRICTION floatingObject.initializeMass(25) - floatingObject.initializeRadius(20) - floatingObject.initializeImageSize(30) + floatingObject.initializeRadius(INITIAL_RADIOUS - 25) + floatingObject.initializeHierarchyRing(INITIAL_HIERARCHY_RING) + floatingObject.initializeImageSize(INITIAL_IMAGE_SIZE - 50) floatingObject.initializeFontSize(INITIAL_FONT_SIZE) floatingObject.fillStyle = 'rgba(' + UI_COLOR.RED + ', 1)' diff --git a/CanvasApp/FloatingSpace/UiObjectTitle.js b/CanvasApp/FloatingSpace/UiObjectTitle.js index 9ac05377c..cb723a0b0 100644 --- a/CanvasApp/FloatingSpace/UiObjectTitle.js +++ b/CanvasApp/FloatingSpace/UiObjectTitle.js @@ -136,6 +136,20 @@ function newUiObjectTitle () { } break } + case 'Use Reference Parent Parent Parent': { + let nodeToUse = thisObject.payload.node.payload.referenceParent + if (nodeToUse !== undefined && nodeToUse.payload !== undefined) { + nodeToUse = thisObject.payload.node.payload.referenceParent.payload.parentNode + if (nodeToUse !== undefined && nodeToUse.payload !== undefined) { + nodeToUse = thisObject.payload.node.payload.referenceParent.payload.parentNode.payload.parentNode + if (nodeToUse !== undefined && nodeToUse.payload !== undefined) { + thisObject.payload.title = thisObject.payload.title + separator + nodeToUse.payload.title + thisObject.payload.node.name = thisObject.payload.node.name + separator + nodeToUse.payload.node.name + } + } + } + break + } default: { if (titleReference.indexOf('Use Child @') === 0) { let propertyName = titleReference.substring(titleReference.indexOf('@') + 1, titleReference.length) @@ -215,6 +229,8 @@ function newUiObjectTitle () { thisObject.payload.node.name = input.value } } + let inputDiv = document.getElementById('inputDiv') + inputDiv.style = 'position:absolute; top:' + '-100' + 'px; left:' + '-100' + 'px; z-index:1; ' } function enterEditMode () { @@ -292,6 +308,19 @@ function newUiObjectTitle () { labelPoint = thisObject.container.frame.frameThisPoint(labelPoint) + if (canvas.floatingSpace.inMapMode === true) { + labelPoint = canvas.floatingSpace.transformPointToMap(labelPoint) + labelPoint.x = labelPoint.x - label.length / 2 * fontSize * FONT_ASPECT_RATIO + labelPoint.y = labelPoint.y - 35 + + let nodeDefinition = APP_SCHEMA_MAP.get(thisObject.payload.node.type) + if (nodeDefinition !== undefined) { + if (nodeDefinition.isHierarchyHead !== true) { + return + } + } + } + browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY browserCanvasContext.fillStyle = thisObject.payload.floatingObject.labelStrokeStyle browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y) @@ -309,3 +338,4 @@ function newUiObjectTitle () { return title } } + diff --git a/CanvasApp/Frame.js b/CanvasApp/Frame.js index 01ad949db..ea2b7ab12 100644 --- a/CanvasApp/Frame.js +++ b/CanvasApp/Frame.js @@ -81,13 +81,13 @@ function newFrame () { /* This function is usefull to know if the object who has this frame is currently appearing at least in part at the canvas.chartingSpace.viewport */ point1 = { - x: thisObject.width * 25 / 100, - y: thisObject.height * 25 / 100 + x: thisObject.width * 40 / 100, + y: thisObject.height * 40 / 100 } point3 = { - x: thisObject.width * 75 / 100, - y: thisObject.height * 75 / 100 + x: thisObject.width * 40 / 100, + y: thisObject.height * 40 / 100 } /* Now the transformations. */ @@ -209,7 +209,7 @@ function newFrame () { } /* Now we check if the resulting point is whin the current Frame. */ - + if (isNaN(checkPoint.x) || isNaN(checkPoint.y)) { return false } if (thisObject.type === 'Circle') { let distance = Math.sqrt(Math.pow(thisObject.position.x - point.x, 2) + Math.pow(thisObject.position.y - point.y, 2)) diff --git a/CanvasApp/Globals.js b/CanvasApp/Globals.js index 5b4aa5751..dfe29698b 100644 --- a/CanvasApp/Globals.js +++ b/CanvasApp/Globals.js @@ -3,20 +3,7 @@ const CANVAS_APP_NAME = 'Canvas App' -const SUPPORTED_EXCHANGES = ["Poloniex"]; -const SUPPORTED_MARKETS = [ - { - baseAsset: "USDT", - quotedAsset: "BTC", - } -]; -const DEFAULT_EXCHANGE = "Poloniex"; -const DEFAULT_MARKET = { - baseAsset: "USDT", - quotedAsset: "BTC", -}; - -UI_COLOR = { +const UI_COLOR = { DARK: "48, 48, 54", LIGHT: "234, 226, 222", GREY: "150, 150, 150", @@ -36,18 +23,26 @@ UI_COLOR = { /* User Interface Fonts */ -UI_FONT = { +const UI_FONT = { PRIMARY: "Saira Condensed", SECONDARY: "Source Code Pro" }; +const MAC_AMOUNT_FACTOR = 5 +const IS_MAC = navigator.platform.toUpperCase().indexOf('MAC') >= 0 + +const DOUBLE_CLICK_ZOOM_OUT_LEVEL = 0 +const DOUBLE_CLICK_ZOOM_IN_LEVEL = 6 +const DOUBLE_CLICK_ZOOM_IN_IN_LEVEL = 7 + const DEBUG = {} -const ZOOM_OUT_THRESHOLD_FOR_HIDDING_PANELS = 5 // This regulates some behavious changes that happens when the user zoom out below this level. -const ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME = 5 // This help regulate when to change the Time Frame base on the level of zoom out. +const ZOOM_OUT_THRESHOLD_FOR_NOT_HIDDING_PANELS = 12 +const ZOOM_OUT_THRESHOLD_FOR_HIDDING_PANELS = 7 +const ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME = 3 // This help regulate when to change the Time Frame base on the level of zoom out. const ZOOM_OUT_THRESHOLD_FOR_PACKING_OBJECTS_AT_THE_BOTTOM_OR_TOP_OF_VIEWPORT = 2 -const ZOOM_OUT_THRESHOLD_FOR_PLOTTING_IN_LOW_RESOLUTION = 3 -const ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_TIME_MACHINES_ICONIZED = 5 -const ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_SCALES = 3 +const ZOOM_OUT_THRESHOLD_FOR_PLOTTING_IN_LOW_RESOLUTION = 3 +const ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_TIME_MACHINES_ICONIZED = 5 +const ZOOM_OUT_THRESHOLD_FOR_DISPLAYING_SCALES = 3 let FONT_ASPECT_RATIO = 0.32; @@ -78,7 +73,7 @@ const DISTANCE_TO_PARENT = { /* User Interface Panels */ -UI_PANEL = { +const UI_PANEL = { WIDTH: { SMALL: 100, NORMAL: 150, @@ -124,7 +119,7 @@ let dailyFilePeriods = dailyFilePeriods = JSON.parse(dailyFilePeriods); -SHOW_ANIMATION_PERFORMACE = false; +let SHOW_ANIMATION_PERFORMACE = false; let testUser = window.localStorage.getItem("test_user") let LOGGED_IN_USER_LOCAL_STORAGE_KEY @@ -138,10 +133,6 @@ if (testUser !== null) { LOGGED_IN_ACCESS_TOKEN_LOCAL_STORAGE_KEY = "access_token" } -const DEFAULT_CONFIG_TEXT = '// Write your config here' -const DEFAULT_FORMULA_TEXT = '// Write your formula here' -const DEFAULT_CODE_TEXT = '// Write your code here' - const MAX_DEFAULT_RATE_SCALE_VALUE = 35000; // This is needed to know the scale of the market time line. const WIDHTER_VOLUME_BAR_BASE_FACTOR = 2.5; @@ -168,6 +159,8 @@ const _3_MINUTES_IN_MILISECONDS = 3 * 60 * 1000; const _2_MINUTES_IN_MILISECONDS = 2 * 60 * 1000; const _1_MINUTE_IN_MILISECONDS = 1 * 60 * 1000; + + let NEW_SESSION_INITIAL_DATE = new Date(); // This value will be overwritten at the canvas.chartingSpace.viewport.initialize if the user had a prevous session with this same browser. let INITIAL_ZOOM_LEVEL = -28.25 // This is the zoom level at the view port in which the APP starts. let INITIAL_TIME_PERIOD = ONE_DAY_IN_MILISECONDS // This value will be overwritten at the canvas.chartingSpace.viewport.initialize if the user had a prevous session with this same browser. @@ -213,8 +206,8 @@ const PERIOD_01_MIN = "01-min"; We define here the size of the chartingSpace. It has to bee enough big in order to accomodate all the charts we expect to display in this space. */ -const TIME_MACHINE_WIDTH = 320; -const TIME_MACHINE_HEIGHT = 120; +const TIME_MACHINE_WIDTH = 8; +const TIME_MACHINE_HEIGHT = 8; let mediaRecorder // to downloadText canvas animation as a mediaRecorder let areWeRecording = false diff --git a/CanvasApp/Panels/Layer.js b/CanvasApp/Panels/Layer.js index 3fde42d7e..5958076f0 100644 --- a/CanvasApp/Panels/Layer.js +++ b/CanvasApp/Panels/Layer.js @@ -20,6 +20,7 @@ function newLayer () { plotterTypeIcon: undefined, baseAssetIcon: undefined, quotedAssetIcon: undefined, + checkStatusAtShutDown: checkStatusAtShutDown, physics: physics, draw: draw, turnOff: turnOff, @@ -230,6 +231,17 @@ function newLayer () { } } + function checkStatusAtShutDown () { + /* Mechanism to recover a layer that was left loading the last time the browser was shut dowm. */ + let storedValue = loadPropertyFromNodeConfig(thisObject.payload, 'status') + if (storedValue !== undefined) { + if (storedValue === LAYER_STATUS.LOADING) { + resetProgressBars() + changeStatusTo(LAYER_STATUS.LOADING) + } + } + } + function getContainer (point) { if (panelsVisibleButton !== undefined) { let container = panelsVisibleButton.getContainer(point) diff --git a/CanvasApp/Panels/LayersPanel.js b/CanvasApp/Panels/LayersPanel.js index b5d89fbc7..b5bed93e9 100644 --- a/CanvasApp/Panels/LayersPanel.js +++ b/CanvasApp/Panels/LayersPanel.js @@ -6,7 +6,8 @@ function newLayersPanel () { layers: [], payload: undefined, isVisible: true, - panelTabButton: undefined, + upDownButton: undefined, + leftRightButton: undefined, physics: physics, draw: draw, getContainer: getContainer, @@ -21,7 +22,6 @@ function newLayersPanel () { thisObject.container.detectMouseOver = true let isInitialized = false - let isMouseOver = false let mouseOverCounter = 0 let layersMap = new Map() @@ -39,15 +39,23 @@ function newLayersPanel () { let posiblePanelHeight = (layerHeight + LAYER_SEPARATION) * posibleVisibleLayers + headerHeight + footerHeight let onMouseWheelEventSuscriptionId - let onMouseOverEventSuscriptionId + let onMouseOverEventSubscriptionId + let onMouseNotOverEventSubscriptionId + + let isMouseOver return thisObject function finalize () { thisObject.container.eventHandler.stopListening(onMouseWheelEventSuscriptionId) - thisObject.container.eventHandler.stopListening(onMouseOverEventSuscriptionId) + thisObject.container.eventHandler.stopListening(onMouseOverEventSubscriptionId) + thisObject.container.eventHandler.stopListening(onMouseNotOverEventSubscriptionId) + + thisObject.upDownButton.finalize() + thisObject.upDownButton = undefined + + thisObject.leftRightButton.finalize() + thisObject.leftRightButton = undefined - thisObject.panelTabButton.finalize() - thisObject.panelTabButton = undefined layersMap = undefined visibleLayers = undefined @@ -72,26 +80,45 @@ function newLayersPanel () { thisObject.container.frame.position = position loadFrame(thisObject.payload, thisObject.container.frame) - thisObject.panelTabButton = newPanelTabButton() - thisObject.panelTabButton.parentContainer = thisObject.container - thisObject.panelTabButton.container.frame.parentFrame = thisObject.container.frame - thisObject.panelTabButton.fitFunction = thisObject.fitFunction - thisObject.panelTabButton.initialize() + thisObject.upDownButton = newUpDownButton() + thisObject.upDownButton.parentContainer = thisObject.container + thisObject.upDownButton.container.frame.parentFrame = thisObject.container.frame + thisObject.upDownButton.fitFunction = thisObject.fitFunction + thisObject.upDownButton.initialize() + + thisObject.leftRightButton = newLeftRightButton() + thisObject.leftRightButton.parentContainer = thisObject.container + thisObject.leftRightButton.container.frame.parentFrame = thisObject.container.frame + thisObject.leftRightButton.fitFunction = thisObject.fitFunction + thisObject.leftRightButton.initialize() onMouseWheelEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseWheel', onMouseWheel) - onMouseOverEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseOver', onMouseOver) + onMouseOverEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseOver', onMouseOver) + onMouseNotOverEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseNotOver', onMouseNotOver) readObjectState() isInitialized = true } + function onMouseOver (event) { + isMouseOver = true + } + + function onMouseNotOver () { + isMouseOver = false + } + function saveObjectStateVisibleLayers () { savePropertyAtNodeConfig(thisObject.payload, 'visibleLayers', desiredVisibleLayers) } function saveObjectStatePanelLocation () { - savePropertyAtNodeConfig(thisObject.payload, 'panelLocation', thisObject.panelTabButton.status) + let panelLocation = { + upOrDown: thisObject.upDownButton.status, + leftOrRight: thisObject.leftRightButton.status + } + savePropertyAtNodeConfig(thisObject.payload, 'panelLocation', panelLocation) } function readObjectState () { @@ -123,11 +150,16 @@ function newLayersPanel () { saveObjectStatePanelLocation() // this overrides any invalid value at the config. return } else { - if (storedValue !== 'up' && storedValue !== 'down') { + if (storedValue.upOrDown !== 'up' && storedValue.upOrDown !== 'down') { saveObjectStatePanelLocation() // this overrides any invalid value at the config. return } - thisObject.panelTabButton.setStatus(storedValue) + if (storedValue.leftOrRight !== 'left' && storedValue.leftOrRight !== 'right') { + saveObjectStatePanelLocation() // this overrides any invalid value at the config. + return + } + thisObject.upDownButton.setStatus(storedValue.upOrDown) + thisObject.leftRightButton.setStatus(storedValue.leftOrRight) saveObjectStatePanelLocation() } } @@ -167,16 +199,13 @@ function newLayersPanel () { layer.onLayerStatusChangedEventSuscriptionId = layer.container.eventHandler.listenToEvent('Status Changed', onLayerStatusChanged) layer.onMouseWheelEventSuscriptionId = layer.container.eventHandler.listenToEvent('onMouseWheel', onMouseWheel) - return layer + layer.checkStatusAtShutDown() + + return } } } - function onMouseOver (event) { - isMouseOver = true - mouseOverCounter = 150 - } - function onMouseWheel (event) { delta = event.wheelDelta if (delta > 0) { @@ -254,8 +283,13 @@ function newLayersPanel () { if (isInitialized === false || thisObject.visible === false || thisObject.isHidden === true) { return } let container - container = thisObject.panelTabButton.getContainer(point) - if (container !== undefined) { return container } + if (isMouseOver === true && purpose !== GET_CONTAINER_PURPOSE.MOUSE_OVER) { + container = thisObject.upDownButton.getContainer(point) + if (container !== undefined) { return container } + + container = thisObject.leftRightButton.getContainer(point) + if (container !== undefined) { return container } + } /* First we check if thisObject point is inside thisObject space. */ if (thisObject.container.frame.isThisPointHere(point, true) === true) { @@ -304,19 +338,12 @@ function newLayersPanel () { readObjectState() } - function mouseOverPhysics () { - mouseOverCounter-- - if (mouseOverCounter < 0) { - mouseOverCounter = 0 - isMouseOver = false - } - } - function physics () { if (isInitialized === false) { return } + if (thisObject.payload.node === undefined) { return } - mouseOverPhysics() - thisObject.panelTabButton.physics() + thisObject.upDownButton.physics() + thisObject.leftRightButton.physics() saveFrame(thisObject.payload, thisObject.container.frame) syncWithConfigPhysics() @@ -344,6 +371,7 @@ function newLayersPanel () { calculateVisbleLayers() function syncWithDesignerLayers () { + if (thisObject.payload.node === undefined) { return } let layerManager = thisObject.payload.node for (let p = 0; p < layerManager.layers.length; p++) { let layerNode = layerManager.layers[p] @@ -392,7 +420,7 @@ function newLayersPanel () { } function draw () { - if (isInitialized === false || thisObject.visible === false || thisObject.isHidden === true || isMouseOver === false) { return } + if (isInitialized === false || thisObject.visible === false || thisObject.isHidden === true) { return } // thisObject.container.frame.draw(false, false, false, thisObject.fitFunction) @@ -401,10 +429,18 @@ function newLayersPanel () { visibleLayers[i].draw() } drawScrollBar() - thisObject.panelTabButton.draw() + if (isMouseOver === true) { + thisObject.upDownButton.draw() + thisObject.leftRightButton.draw() + } } function drawHeader () { + if (thisObject.payload === undefined) { return } + if (thisObject.payload.node === undefined) { return } + if (thisObject.payload.node.payload.parentNode === undefined) { return } + if (thisObject.payload.node.payload.parentNode.payload.parentNode === undefined) { return } + let label1 = thisObject.payload.node.payload.parentNode.payload.parentNode.name.substring(0, 18) let label2 = thisObject.payload.node.payload.parentNode.name.substring(0, 18) let label3 = '' diff --git a/CanvasApp/Panels/LeftRightButton.js b/CanvasApp/Panels/LeftRightButton.js new file mode 100644 index 000000000..cac7c7345 --- /dev/null +++ b/CanvasApp/Panels/LeftRightButton.js @@ -0,0 +1,244 @@ +function newLeftRightButton () { + let thisObject = { + container: undefined, + fitFunction: undefined, + parentContainer: undefined, + status: undefined, + setStatus: setStatus, + physics: physics, + draw: draw, + getContainer: getContainer, // returns the inner most container that holds the point received by parameter. + initialize: initialize, + finalize: finalize + } + + let isInitialized = false + /* Cointainer stuff */ + + thisObject.container = newContainer() + thisObject.container.name = 'Left Right Button' + thisObject.container.initialize() + thisObject.container.isClickeable = true + thisObject.container.isDraggeable = false + thisObject.container.frame.containerName = 'Left Right Button' + + thisObject.status = 'left' + let leftPosition = {} + let rightPosition = {} + let transitionPosition = {} + + let onMouseClickEventSuscriptionId + return thisObject + + function finalize () { + thisObject.container.eventHandler.stopListening(onMouseClickEventSuscriptionId) + thisObject.container.finalize() + thisObject.container = undefined + thisObject.fitFunction = undefined + thisObject.parentContainer = undefined + + thisObject.status = undefined + leftPosition = undefined + rightPosition = undefined + transitionPosition = undefined + } + + function initialize () { + thisObject.container.frame.width = 12 + thisObject.container.frame.height = 12 + + let position = { + x: thisObject.container.frame.parentFrame.width * 2.25 / 8 - thisObject.container.frame.width / 2, + y: 40 * 4 / 8 - thisObject.container.frame.height / 2 + } + + thisObject.container.frame.position = position + + leftPosition.x = thisObject.parentContainer.frame.position.x + leftPosition.y = thisObject.parentContainer.frame.position.y + + rightPosition.x = thisObject.parentContainer.frame.position.x + rightPosition.y = canvas.chartingSpace.viewport.visibleArea.bottomRight.y + + transitionPosition.x = leftPosition.x + transitionPosition.y = leftPosition.y + + /* Lets listen to our own events to react when we have a Mouse Click */ + onMouseClickEventSuscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseClick', onMouseClick) + + isInitialized = true + } + + function setStatus (value) { + if (value === 'left' && thisObject.status === 'right') { + thisObject.status = 'going left' + } + if (value === 'right' && thisObject.status === 'left') { + thisObject.status = 'going right' + } + } + + function onMouseClick (event) { + if (thisObject.status === 'left') { + transitionPosition.x = leftPosition.x + transitionPosition.y = leftPosition.y + + thisObject.status = 'going right' + } else { + transitionPosition.x = rightPosition.x + transitionPosition.y = rightPosition.y + + thisObject.status = 'going left' + } + } + + function physics () { + if (isInitialized === false) { return } + + leftPosition.x = canvas.chartingSpace.viewport.visibleArea.topLeft.x + leftPosition.y = thisObject.parentContainer.frame.position.y + + rightPosition.x = canvas.chartingSpace.viewport.visibleArea.bottomRight.x + rightPosition.y = thisObject.parentContainer.frame.position.y + + if (thisObject.status === 'going right') { + if (transitionPosition.x < rightPosition.x) { + transitionPosition.x = transitionPosition.x + 50 + thisObject.parentContainer.frame.position.x = transitionPosition.x + } else { + thisObject.parentContainer.frame.position.x = rightPosition.x + thisObject.status = 'right' + } + } + if (thisObject.status === 'going left') { + if (transitionPosition.x > leftPosition.x) { + transitionPosition.x = transitionPosition.x - 50 + thisObject.parentContainer.frame.position.x = transitionPosition.x + } else { + thisObject.parentContainer.frame.position.x = leftPosition.x + thisObject.status = 'left' + } + } + } + + function draw () { + if (isInitialized === false) { return } + + drawButton() + } + + function getContainer (point, purpose) { + let container + if (thisObject.container.frame.isThisPointHere(point, true) === true) { + return thisObject.container + } + } + + function drawButton () { + let point1 + let point2 + let point3 + + switch (thisObject.status) { + case 'left': { + point1 = { + x: 3, + y: 3 + } + + point2 = { + x: 3, + y: thisObject.container.frame.height - 3 + } + + point3 = { + x: thisObject.container.frame.width - 3, + y: thisObject.container.frame.height / 2 + } + break + } + + case 'going right': { + point1 = { + x: 4, + y: 4 + } + + point2 = { + x: 4, + y: thisObject.container.frame.height - 4 + } + + point3 = { + x: thisObject.container.frame.width - 4, + y: thisObject.container.frame.height / 2 + } + break + } + + case 'going left': { + point1 = { + x: thisObject.container.frame.width - 4, + y: 4 + } + + point2 = { + x: thisObject.container.frame.width - 4, + y: thisObject.container.frame.height - 4 + } + + point3 = { + x: 4, + y: thisObject.container.frame.height / 2 + } + break + } + + case 'right': { + point1 = { + x: thisObject.container.frame.width - 3, + y: 3 + } + + point2 = { + x: thisObject.container.frame.width - 3, + y: thisObject.container.frame.height - 3 + } + + point3 = { + x: 3, + y: thisObject.container.frame.height / 2 + } + break + } + } + + /* Now the transformations. */ + + point1 = thisObject.container.frame.frameThisPoint(point1) + point2 = thisObject.container.frame.frameThisPoint(point2) + point3 = thisObject.container.frame.frameThisPoint(point3) + + if (thisObject.fitFunction !== undefined) { + point1 = thisObject.fitFunction(point1) + point2 = thisObject.fitFunction(point2) + point3 = thisObject.fitFunction(point3) + } + + /* Lets start the drawing. */ + + 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.strokeStyle = 'rgba(250, 250, 250, 1)' + browserCanvasContext.lineWidth = 1 + browserCanvasContext.stroke() + + browserCanvasContext.fillStyle = 'rgba(250, 250, 250, 1)' + browserCanvasContext.fill() + } +} diff --git a/CanvasApp/Panels/PlotterPanel.js b/CanvasApp/Panels/PlotterPanel.js index 24ef4f91f..9dde50073 100644 --- a/CanvasApp/Panels/PlotterPanel.js +++ b/CanvasApp/Panels/PlotterPanel.js @@ -22,7 +22,7 @@ function newPlotterPanel () { let heightFactor = 1 let currentRecord - let panelTabButton + let upDownButton let panelNode return thisObject @@ -35,8 +35,8 @@ function newPlotterPanel () { heightFactor = undefined currentRecord = undefined - panelTabButton.finalize() - panelTabButton = undefined + upDownButton.finalize() + upDownButton = undefined panelNode = undefined } @@ -50,18 +50,18 @@ function newPlotterPanel () { thisObject.container.frame.position.x = canvas.chartingSpace.viewport.visibleArea.topRight.x - thisObject.container.frame.width - thisObject.container.frame.width * Math.random() * 8 thisObject.container.frame.position.y = canvas.chartingSpace.viewport.visibleArea.bottomLeft.y - thisObject.container.frame.height - thisObject.container.frame.height * Math.random() * 1.5 - panelTabButton = newPanelTabButton() - panelTabButton.parentContainer = thisObject.container - panelTabButton.container.frame.parentFrame = thisObject.container.frame - panelTabButton.fitFunction = thisObject.fitFunction - panelTabButton.initialize() + 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 = panelTabButton.getContainer(point) + container = upDownButton.getContainer(point) if (container !== undefined) { return container } if (thisObject.container.frame.isThisPointHere(point, true) === true) { @@ -87,7 +87,7 @@ function newPlotterPanel () { thisObject.container.frame.draw(false, false, true, thisObject.fitFunction) plotCurrentRecordData() - panelTabButton.draw() + upDownButton.draw() } function plotCurrentRecordData () { @@ -153,33 +153,8 @@ function newPlotterPanel () { valuePosition = panelData.code.valuePosition } - printLabel(labelText, X_AXIS, PANEL_HEIGHT * labelPosition / 100 / heightFactor, '1') - printLabel(value, X_AXIS, PANEL_HEIGHT * valuePosition / 100 / heightFactor, '0.50') + printLabel(labelText, X_AXIS, PANEL_HEIGHT * labelPosition / 100 / heightFactor, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction) + printLabel(value, X_AXIS, PANEL_HEIGHT * valuePosition / 100 / heightFactor, '1.00', 15, undefined, true, thisObject.container, thisObject.fitFunction) } - - function printLabel (labelToPrint, x, y, opacity) { - let labelPoint - let fontSize = 10 - - browserCanvasContext.font = fontSize + 'px ' + UI_FONT.SECONDARY - - let label = '' + labelToPrint - - 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/CanvasApp/Panels/PanelTabButton.js b/CanvasApp/Panels/UpDownButton.js similarity index 93% rename from CanvasApp/Panels/PanelTabButton.js rename to CanvasApp/Panels/UpDownButton.js index 38de1b23c..bb542d183 100644 --- a/CanvasApp/Panels/PanelTabButton.js +++ b/CanvasApp/Panels/UpDownButton.js @@ -1,4 +1,4 @@ -function newPanelTabButton () { +function newUpDownButton () { let thisObject = { container: undefined, fitFunction: undefined, @@ -16,13 +16,12 @@ function newPanelTabButton () { /* Cointainer stuff */ thisObject.container = newContainer() - thisObject.container.name = 'Panel Tab Button' + thisObject.container.name = 'Up Down Button' thisObject.container.initialize() thisObject.container.isClickeable = true thisObject.container.isDraggeable = false - thisObject.container.frame.containerName = 'Panel Tab Button' + thisObject.container.frame.containerName = 'Up Down Button' - /* Animation to hide the pannel */ thisObject.status = 'up' let upPosition = {} let downPosition = {} @@ -45,12 +44,12 @@ function newPanelTabButton () { } function initialize () { - thisObject.container.frame.width = 10 - thisObject.container.frame.height = 10 + thisObject.container.frame.width = 12 + thisObject.container.frame.height = 12 - var position = { - x: thisObject.parentContainer.frame.width - 14, - y: 1 + let position = { + x: thisObject.container.frame.parentFrame.width * 5.75 / 8 - thisObject.container.frame.width / 2, + y: 40 * 4 / 8 - thisObject.container.frame.height / 2 } thisObject.container.frame.position = position diff --git a/CanvasApp/Plotter.js b/CanvasApp/Plotter.js index e23e87dc3..fdd1cce45 100644 --- a/CanvasApp/Plotter.js +++ b/CanvasApp/Plotter.js @@ -24,7 +24,6 @@ function newPlotter () { thisObject.container = container let coordinateSystem - let plotterModuleConfig let slotHeight = (canvas.chartingSpace.viewport.visibleArea.bottomRight.y - canvas.chartingSpace.viewport.visibleArea.topLeft.y) / 10 // This is the amount of slots available let mustRecalculateDataPoints = false let atMousePositionFillStyles = new Map() @@ -82,7 +81,6 @@ function newPlotter () { finalizeCoordinateSystem() coordinateSystem = undefined - plotterModuleConfig = undefined slotHeight = undefined mustRecalculateDataPoints = undefined atMousePositionFillStyles = undefined @@ -498,6 +496,10 @@ function newPlotter () { for (let i = 0; i < records.length; i++) { let record = records[i] + /* + In the formulas to create plotters, we allos users to reference the previous record. + To enable that we need to link all records to the previous one in this way. + */ if (i == 0) { record.previous = record } else { @@ -555,7 +557,7 @@ function newPlotter () { if (logged === false) { logged = true } - /* Only calculate the datapoints for this record, if we have not calculate it before. */ + /* It seems we need to calculate the data points this time. */ for (let k = 0; k < productDefinition.referenceParent.shapes.chartPoints.length; k++) { let chartPoints = productDefinition.referenceParent.shapes.chartPoints[k] for (let j = 0; j < chartPoints.points.length; j++) { @@ -582,13 +584,6 @@ function newPlotter () { /* Store the data point at the local map */ dataPoints.set(point.id, dataPoint) - - if (plotterModuleConfig !== undefined) { - if (plotterModuleConfig.slot !== undefined) { - /* We reset the y coordinate since it will be transformed with another coordinate system to fit into a slot. */ - dataPoint.y = (-1) * y * coordinateSystem.scale.y + (plotterModuleConfig.slot.number - 1) * slotHeight + canvas.chartingSpace.viewport.visibleArea.topLeft.y - } - } } } } @@ -769,7 +764,7 @@ function newPlotter () { } } - if (coordinateSystem.autoMinYScale === true || coordinateSystem.autosMaxScale === true) { + if (coordinateSystem.autoMinYScale === true || coordinateSystem.autoMinYScale === true) { mustRecalculateDataPoints = true } else { mustRecalculateDataPoints = false diff --git a/CanvasApp/Scales/RateScale.js b/CanvasApp/Scales/RateScale.js index a532aea1f..8e208d9b3 100644 --- a/CanvasApp/Scales/RateScale.js +++ b/CanvasApp/Scales/RateScale.js @@ -14,6 +14,7 @@ function newRateScale () { onMouseOverSomeTimeMachineContainer: onMouseOverSomeTimeMachineContainer, physics: physics, draw: draw, + drawBackground: drawBackground, drawForeground: drawForeground, getContainer: getContainer, initialize: initialize, @@ -56,6 +57,10 @@ function newRateScale () { let scaleDisplayTimer = 0 let autoScaleButton + + let wheelDeltaDirection + let wheelDeltaCounter = 0 + return thisObject function finalize () { @@ -134,6 +139,42 @@ function newRateScale () { } function onMouseWheel (event) { + if (IS_MAC) { + let sensitivity + if (event.wheelDelta < 0) { + if (event.shiftKey === true) { + sensitivity = 20 + } else { + sensitivity = 5 + } + if (wheelDeltaDirection === -1) { + wheelDeltaCounter++ + if (wheelDeltaCounter < sensitivity) { + return + } else { + wheelDeltaCounter = 0 + } + } else { + wheelDeltaCounter = 0 + wheelDeltaDirection = -1 + return + } + } else { + if (wheelDeltaDirection === 1) { + wheelDeltaCounter++ + if (wheelDeltaCounter < sensitivity) { + return + } else { + wheelDeltaCounter = 0 + } + } else { + wheelDeltaCounter = 0 + wheelDeltaDirection = 1 + return + } + } + } + if (event.shiftKey === true) { autoScaleButton.container.eventHandler.raiseEvent('onMouseWheel', event) return @@ -391,13 +432,54 @@ function newRateScale () { } } + function drawBackground () { + drawScale() + } + + function drawScale () { + const SEPARATION = 50 + const NUMBER_OF_LABELS = Math.trunc(canvas.chartingSpace.viewport.height / SEPARATION) + const FONT_SIZE = 15 + + for (let i = 0; i <= NUMBER_OF_LABELS; i++) { + let ratePoint1 = { + x: 0, + y: TOP_SPACE_HEIGHT + SEPARATION * (i + 1) + } + let ratePoint2 = { + x: 0, + y: TOP_SPACE_HEIGHT + SEPARATION * (i + 0) + } + + let rate = getRateFromPointAtBrowserCanvas(ratePoint1, rateCalculationsContainer, coordinateSystem) + let labels = scaleLabels(rate) + let decimalsDisplace = labels[1].length * FONT_SIZE * FONT_ASPECT_RATIO + + let fitPoint1 = thisObject.fitFunction(ratePoint1) + let fitPoint2 = thisObject.fitFunction(ratePoint2) + + if (fitPoint1.y === ratePoint1.y && fitPoint2.y === ratePoint2.y) { + drawLabel(labels[1], 1 / 2, 0, 0, 0, FONT_SIZE, thisObject.container, UI_COLOR.GREY, undefined, ratePoint1.y) + drawLabel(labels[2], 1 / 2, 0, decimalsDisplace, -5, 9, thisObject.container, UI_COLOR.GREY, undefined, ratePoint1.y) + } + } + } + function drawScaleBox () { if (thisObject.rate === undefined) { return } if (thisObject.payload === undefined) { return } if (thisObject.payload.node === undefined) { return } - let rate = thisObject.rate + let icon1 = canvas.designSpace.iconByUiObjectType.get(thisObject.payload.node.payload.parentNode.type) + let icon2 = canvas.designSpace.iconByUiObjectType.get(thisObject.payload.node.type) + let backgroundColor = UI_COLOR.BLACK + let labels = scaleLabels(thisObject.rate) + + drawScaleDisplay(labels[0], labels[1], labels[2], 0, 0, 0, icon1, icon2, thisObject.container, backgroundColor) + } + + function scaleLabels (rate) { if (rate < coordinateSystem.min.y) { rate = coordinateSystem.min.y } @@ -405,23 +487,23 @@ function newRateScale () { rate = coordinateSystem.max.y } - let label = (rate - Math.trunc(rate)).toFixed(2) + let label = dynamicDecimals(rate) let labelArray = label.split('.') let label1 = thisObject.payload.node.payload.parentNode.name let label2 = (Math.trunc(rate)).toLocaleString() let label3 = labelArray[1] if (label3 === undefined) { label3 = '00' } - let icon1 = canvas.designSpace.iconByUiObjectType.get(thisObject.payload.node.payload.parentNode.type) - let icon2 = canvas.designSpace.iconByUiObjectType.get(thisObject.payload.node.type) - - let backgroundColor = UI_COLOR.BLACK + if (rate < 1) { + label2 = label + label3 = '' + } if (scaleDisplayTimer > 0) { label2 = (coordinateSystem.scale.y * 10000).toFixed(2) label3 = 'SCALE' } - drawScaleDisplay(label1, label2, label3, 0, 0, 0, icon1, icon2, thisObject.container, backgroundColor) + return [label1, label2, label3] } } diff --git a/CanvasApp/Scales/TimeFrameScale.js b/CanvasApp/Scales/TimeFrameScale.js index 05f6fbb38..9c718e28e 100644 --- a/CanvasApp/Scales/TimeFrameScale.js +++ b/CanvasApp/Scales/TimeFrameScale.js @@ -8,6 +8,7 @@ function newTimeFrameScale () { payload: undefined, isVisible: true, layersOn: undefined, + adjustTimeFrame: adjustTimeFrame, onMouseOverSomeTimeMachineContainer: onMouseOverSomeTimeMachineContainer, draw: draw, drawForeground: drawForeground, @@ -21,7 +22,7 @@ function newTimeFrameScale () { const TIME_PERIOD_DEFAULT_VALUE = 0 const MIN_HEIGHT = 50 - let previousIsVisible = true + let displayingRealTimeFrame = true let greyOutCoverLayer = false let isMouseOver @@ -44,6 +45,10 @@ function newTimeFrameScale () { } } setupContainer() + + let wheelDeltaDirection + let wheelDeltaCounter = 0 + return thisObject function setupContainer () { @@ -119,21 +124,28 @@ function newTimeFrameScale () { function physics () { readObjectState() positioningPhysics() - zoomOutPhysics() } - function zoomOutPhysics () { - if ((thisObject.isVisible === true && previousIsVisible === false) && (canvas.chartingSpace.viewport.zoomTargetLevel >= ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME)) { + function adjustTimeFrame (elementsPlotted) { + const ELEMENTS_PLOTTED_THREASHOLD = 500 + if ( + canvas.chartingSpace.viewport.zoomTargetLevel >= ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME && + displayingRealTimeFrame === false + ) { let event = {} event.timeFrame = thisObject.timeFrame thisObject.container.eventHandler.raiseEvent('Time Frame Value Changed', event) - previousIsVisible = true + displayingRealTimeFrame = true } - if ((thisObject.isVisible === false && previousIsVisible === true) || (canvas.chartingSpace.viewport.zoomTargetLevel < ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME)) { + if ( + elementsPlotted > ELEMENTS_PLOTTED_THREASHOLD && + canvas.chartingSpace.viewport.zoomTargetLevel < ZOOM_OUT_THRESHOLD_FOR_CHANGING_TIME_FRAME && + displayingRealTimeFrame === true + ) { let event = {} event.timeFrame = ONE_DAY_IN_MILISECONDS thisObject.container.eventHandler.raiseEvent('Time Frame Value Changed', event) - previousIsVisible = false + displayingRealTimeFrame = false } } @@ -241,7 +253,43 @@ function newTimeFrameScale () { } function onMouseWheel (event) { - delta = event.wheelDelta + if (IS_MAC) { + let sensitivity + if (event.wheelDelta < 0) { + if (event.shiftKey === true) { + sensitivity = 20 + } else { + sensitivity = 5 + } + if (wheelDeltaDirection === -1) { + wheelDeltaCounter++ + if (wheelDeltaCounter < sensitivity) { + return + } else { + wheelDeltaCounter = 0 + } + } else { + wheelDeltaCounter = 0 + wheelDeltaDirection = -1 + return + } + } else { + if (wheelDeltaDirection === 1) { + wheelDeltaCounter++ + if (wheelDeltaCounter < sensitivity) { + return + } else { + wheelDeltaCounter = 0 + } + } else { + wheelDeltaCounter = 0 + wheelDeltaDirection = 1 + return + } + } + } + + let delta = event.wheelDelta if (delta < 0) { timeFrameIndex-- if (timeFrameIndex < 0) { diff --git a/CanvasApp/Scales/TimeScale.js b/CanvasApp/Scales/TimeScale.js index 62a1220b3..5ceeb9492 100644 --- a/CanvasApp/Scales/TimeScale.js +++ b/CanvasApp/Scales/TimeScale.js @@ -12,6 +12,7 @@ function newTimeScale () { onMouseOverSomeTimeMachineContainer: onMouseOverSomeTimeMachineContainer, physics: physics, draw: draw, + drawBackground: drawBackground, drawForeground: drawForeground, getContainer: getContainer, initialize: initialize, @@ -48,6 +49,9 @@ function newTimeScale () { } } + let wheelDeltaDirection + let wheelDeltaCounter = 0 + return thisObject function finalize () { @@ -116,6 +120,42 @@ function newTimeScale () { } function onMouseWheel (event) { + if (IS_MAC) { + let sensitivity + if (event.wheelDelta < 0) { + if (event.shiftKey === true) { + sensitivity = 20 + } else { + sensitivity = 5 + } + if (wheelDeltaDirection === -1) { + wheelDeltaCounter++ + if (wheelDeltaCounter < sensitivity) { + return + } else { + wheelDeltaCounter = 0 + } + } else { + wheelDeltaCounter = 0 + wheelDeltaDirection = -1 + return + } + } else { + if (wheelDeltaDirection === 1) { + wheelDeltaCounter++ + if (wheelDeltaCounter < sensitivity) { + return + } else { + wheelDeltaCounter = 0 + } + } else { + wheelDeltaCounter = 0 + wheelDeltaDirection = 1 + return + } + } + } + if (event.shiftKey === true) { autoScaleButton.container.eventHandler.raiseEvent('onMouseWheel', event) return @@ -251,6 +291,44 @@ function newTimeScale () { } } + function drawBackground () { + drawScale() + } + + function drawScale () { + const SEPARATION = 150 + const NUMBER_OF_LABELS = Math.trunc(canvas.chartingSpace.viewport.width / SEPARATION) + const FONT_SIZE = 15 + + for (let i = 0; i <= NUMBER_OF_LABELS; i++) { + let timePoint = { + x: SEPARATION * (i + 1), + y: 0 + } + + let time = getDateFromPointAtBrowserCanvas(timePoint, limitingContainer, coordinateSystem) + let labels = scaleLabels(time, true) + let labelDisplace = labels[1].length * FONT_SIZE * FONT_ASPECT_RATIO + + let timePoint1 = { + x: SEPARATION * (i + 1) - labelDisplace, + y: 0 + } + let timePoint2 = { + x: SEPARATION * (i + 1) + labelDisplace, + y: 0 + } + + let fitPoint1 = thisObject.fitFunction(timePoint1) + let fitPoint2 = thisObject.fitFunction(timePoint2) + + if (fitPoint1.x === timePoint1.x && fitPoint2.x === timePoint2.x) { + drawLabel(labels[1], 1 / 2, 0, 18, 17, FONT_SIZE, thisObject.container, UI_COLOR.GREY, timePoint1.x, undefined) + drawLabel(labels[2], 1 / 2, 0, 18, 30, 12, thisObject.container, UI_COLOR.GREY, timePoint1.x, undefined) + } + } + } + function draw () { drawScaleBox() autoScaleButton.draw() @@ -269,17 +347,27 @@ function newTimeScale () { function drawScaleBox () { if (thisObject.date === undefined) { return } - let label = thisObject.date.toUTCString() + let icon1 = canvas.designSpace.iconByUiObjectType.get(thisObject.payload.node.payload.parentNode.type) + let icon2 = canvas.designSpace.iconByUiObjectType.get(thisObject.payload.node.type) + + let backgroundColor = UI_COLOR.BLACK + let labels = scaleLabels(thisObject.date) + + drawScaleDisplay(labels[0], labels[1], labels[2], 0, 0, 0, icon1, icon2, thisObject.container, backgroundColor) + } + + function scaleLabels (date, excludeYear) { + let label = date.toUTCString() let labelArray = label.split(' ') let label1 = thisObject.payload.node.payload.parentNode.name let label2 = labelArray[1] + ' ' + labelArray[2] + ' ' + labelArray[3] let label3 = labelArray[4] - let icon1 = canvas.designSpace.iconByUiObjectType.get(thisObject.payload.node.payload.parentNode.type) - let icon2 = canvas.designSpace.iconByUiObjectType.get(thisObject.payload.node.type) + if (excludeYear === true) { + label2 = labelArray[1] + ' ' + labelArray[2] + } - let backgroundColor = UI_COLOR.BLACK - - drawScaleDisplay(label1, label2, label3, 0, 0, 0, icon1, icon2, thisObject.container, backgroundColor) + return [label1, label2, label3] } } + diff --git a/CanvasApp/Spaces/ChartingSpace.js b/CanvasApp/Spaces/ChartingSpace.js index a9621a2c9..dba998962 100644 --- a/CanvasApp/Spaces/ChartingSpace.js +++ b/CanvasApp/Spaces/ChartingSpace.js @@ -332,8 +332,8 @@ function newChartingSpace () { timeMachine.payload.uiObject.setValue('Loading...') /* Setting up the new time machine. */ - timeMachine.container.frame.position.x = browserCanvas.width / 2 - TIME_MACHINE_WIDTH / 2 - timeMachine.container.frame.position.y = browserCanvas.height / 2 - TIME_MACHINE_HEIGHT / 2 + timeMachine.container.frame.position.x = browserCanvas.width / 2 - browserCanvas.width / TIME_MACHINE_WIDTH / 2 + timeMachine.container.frame.position.y = browserCanvas.height / 2 - (browserCanvas.height - TOP_SPACE_HEIGHT - COCKPIT_SPACE_HEIGHT) / TIME_MACHINE_HEIGHT / 2 timeMachine.initialize(onTimeMachineInitialized) function onTimeMachineInitialized () { diff --git a/CanvasApp/Spaces/CockpitSpace.js b/CanvasApp/Spaces/CockpitSpace.js index 01fea0e08..3291428ec 100644 --- a/CanvasApp/Spaces/CockpitSpace.js +++ b/CanvasApp/Spaces/CockpitSpace.js @@ -5,7 +5,6 @@ let thisObject = { container: undefined, status: 'BOTTOM', - assetBalances: undefined, fullscreen: undefined, toTop: toTop, toBottom: toBottom, @@ -40,7 +39,6 @@ thisObject.container.finalize() thisObject.container = undefined - thisObject.assetBalances = undefined thisObject.fullscreen = undefined } @@ -65,9 +63,6 @@ canvasBrowserResizedEventSubscriptionId = canvas.eventHandler.listenToEvent('Browser Resized', resize) selfMouseClickEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseClick', onMouseClick) - thisObject.assetBalances = newQuotedAssetalances() - thisObject.assetBalances.initialize() - thisObject.fullscreen = newFullScreen() thisObject.fullscreen.container.connectToParent(thisObject.container) thisObject.fullscreen.initialize() @@ -185,7 +180,6 @@ drawBackground() - thisObject.assetBalances.draw() // thisObject.fullscreen.draw() } diff --git a/CanvasApp/Spaces/DesignSpace.js b/CanvasApp/Spaces/DesignSpace.js index c727b5a7b..55b345426 100644 --- a/CanvasApp/Spaces/DesignSpace.js +++ b/CanvasApp/Spaces/DesignSpace.js @@ -1,6 +1,6 @@ function newDesignSpace () { - const MODULE_NAME = 'Strategy Space' + const MODULE_NAME = 'Designe Space' let thisObject = { sidePanel: undefined, container: undefined, @@ -274,7 +274,11 @@ function newDesignSpace () { 'template-structure', 'template-target', 'delink', - 'detach' + 'detach', + 'help', + 'key-a', + 'key-m', + 'key-r' ] for (let i = 0; i < iconsNames.length; i++) { diff --git a/CanvasApp/Spaces/FloatingSpace.js b/CanvasApp/Spaces/FloatingSpace.js index 36819e044..f04a22767 100644 --- a/CanvasApp/Spaces/FloatingSpace.js +++ b/CanvasApp/Spaces/FloatingSpace.js @@ -11,6 +11,17 @@ function newFloatingSpace () { floatingLayer: undefined, // This is the array of floatingObjects being displayed uiObjectConstructor: undefined, container: undefined, + inMapMode: false, + drawReferenceLines: false, + drawChainLines: true, + toggleDrawChainLines: toggleDrawChainLines, + toggleDrawReferenceLines: toggleDrawReferenceLines, + toggleMapMode: toggleMapMode, + enterMapMode: enterMapMode, + exitMapMode: exitMapMode, + transformPointToMap: transformPointToMap, + transformRadiusToMap: transformRadiusToMap, + transformImagesizeToMap: transformImagesizeToMap, oneScreenUp: oneScreenUp, oneScreenDown: oneScreenDown, oneScreenLeft: oneScreenLeft, @@ -34,6 +45,7 @@ function newFloatingSpace () { thisObject.container.isDraggeable = true thisObject.container.isWheelable = true thisObject.container.detectMouseOver = true + thisObject.container.isClickeable = false thisObject.container.frame.radius = 0 let devicePixelRatio = window.devicePixelRatio @@ -47,12 +59,12 @@ function newFloatingSpace () { let visible = false const PERCENTAGE_OF_SCREEN_FOR_DISPLACEMENT = 25 - let eventSubscriptionId + let onDragStartedEventSubscriptionId return thisObject function finalize () { - thisObject.container.eventHandler.stopListening(eventSubscriptionId) + thisObject.container.eventHandler.stopListening(onDragStartedEventSubscriptionId) thisObject.floatingLayer.finalize() thisObject.uiObjectConstructor.finalize() @@ -70,12 +82,111 @@ function newFloatingSpace () { thisObject.uiObjectConstructor = newUiObjectConstructor() thisObject.uiObjectConstructor.initialize(thisObject.floatingLayer) - eventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onMouseWheel', onMouseWheel) + onDragStartedEventSubscriptionId = thisObject.container.eventHandler.listenToEvent('onDragStarted', onDragStarted) + } + + function toggleDrawReferenceLines () { + if (thisObject.drawReferenceLines === true) { + thisObject.drawReferenceLines = false + } else { + thisObject.drawReferenceLines = true + } + } + + function toggleDrawChainLines () { + if (thisObject.drawChainLines === true) { + thisObject.drawChainLines = false + } else { + thisObject.drawChainLines = true + } + } + + function transformPointToMap (point) { + let returnPoint = { + x: point.x - thisObject.container.frame.position.x, + y: point.y - thisObject.container.frame.position.y + } + returnPoint.x = returnPoint.x / SPACE_SIZE * browserCanvas.width + returnPoint.y = returnPoint.y / SPACE_SIZE * browserCanvas.height + return returnPoint + } + + function transformRadiusToMap (radius) { + const RADIUS_REDUCTION_FACTOR = 2 + return radius / RADIUS_REDUCTION_FACTOR + } + + function transformImagesizeToMap (imageSize) { + const IMAGE_REDUCTION_FACTOR = 3 + return imageSize / IMAGE_REDUCTION_FACTOR + } + + function enterMapMode () { + thisObject.inMapMode = true + } + + function exitMapMode () { + thisObject.inMapMode = false + } + + function toggleMapMode () { + if (thisObject.inMapMode === false) { + enterMapMode() + } else { + exitMapMode() + } + } + + function onDragStarted (event) { + if (thisObject.inMapMode === false) { + if (event.buttons !== 2) { return } + event.candelDragging = true + enterMapMode() + } else { + if (event.buttons !== 1) { + event.candelDragging = true + return + } + + let mousePosition = { + x: event.x, + y: event.y + } + + let mouseAtSpace = { + x: mousePosition.x / browserCanvas.width * SPACE_SIZE, + y: mousePosition.y / browserCanvas.height * SPACE_SIZE + } + /* Let's see if we can snap to some of the root nodes that are isHierarchyHead */ + let snapCandidateNodes = canvas.designSpace.workspace.getHierarchyHeads() + for (let i = 0; i < snapCandidateNodes.length; i++) { + let node = snapCandidateNodes[i] + let nodePosition = { + x: node.payload.floatingObject.container.frame.position.x, + y: node.payload.floatingObject.container.frame.position.y + } + // nodePosition = node.payload.floatingObject.container.frame.frameThisPoint(nodePosition) + + let distance = Math.sqrt(Math.pow(mouseAtSpace.x - nodePosition.x, 2) + Math.pow(mouseAtSpace.y - nodePosition.y, 2)) + const SNAP_THREASHOLD = 1000 + if (distance < SNAP_THREASHOLD) { + mousePosition.x = nodePosition.x / SPACE_SIZE * browserCanvas.width + mousePosition.y = nodePosition.y / SPACE_SIZE * browserCanvas.height + } + } + + /* Movign the Floating Space to where the mouse is. */ + thisObject.container.frame.position.x = -mousePosition.x / browserCanvas.width * SPACE_SIZE + browserCanvas.width / 2 + thisObject.container.frame.position.y = -mousePosition.y / browserCanvas.height * SPACE_SIZE + browserCanvas.height / 2 + + exitMapMode() + } } function isItFar (payload, dontCheckParent) { /* If for any reason the paylaod is undefined we return false */ if (payload === undefined) { return false } + if (thisObject.inMapMode === true) { return false } let radarFactor = 2 // How big is the margin @@ -226,11 +337,6 @@ function newFloatingSpace () { return true } - function onMouseWheel (event) { - if (visible === false) { return } - thisObject.floatingLayer.changeTargetRepulsion(event.wheelDelta) - } - function makeVisible () { visible = true } diff --git a/CanvasApp/Spaces/PanelsSpace.js b/CanvasApp/Spaces/PanelsSpace.js index 831f8fa50..fbfb144f6 100644 --- a/CanvasApp/Spaces/PanelsSpace.js +++ b/CanvasApp/Spaces/PanelsSpace.js @@ -165,18 +165,34 @@ function newPanelsSpace () { let verticalLine = (canvas.chartingSpace.viewport.visibleArea.topRight.x - canvas.chartingSpace.viewport.visibleArea.topLeft.x) / 2 + canvas.chartingSpace.viewport.visibleArea.topLeft.x let horizontalLine = (canvas.chartingSpace.viewport.visibleArea.bottomRight.y - canvas.chartingSpace.viewport.visibleArea.topRight.y) / 2 + canvas.chartingSpace.viewport.visibleArea.topRight.y - if (panel.panelTabButton !== undefined) { - if (panel.panelTabButton.status === 'up') { - if (centerPoint.x < verticalLine) { - panel.gravitatesTowards = 'topLeft' + if (panel.upDownButton !== undefined) { + if (panel.upDownButton.status === 'up') { + if (panel.leftRightButton !== undefined) { + if (panel.leftRightButton.status === 'left') { + panel.gravitatesTowards = 'topLeft' + } else { + panel.gravitatesTowards = 'topRight' + } } else { - panel.gravitatesTowards = 'topRight' + if (centerPoint.x < verticalLine) { + panel.gravitatesTowards = 'topLeft' + } else { + panel.gravitatesTowards = 'topRight' + } } } else { - if (centerPoint.x < verticalLine) { - panel.gravitatesTowards = 'bottomLeft' + if (panel.leftRightButton !== undefined) { + if (panel.leftRightButton.status === 'left') { + panel.gravitatesTowards = 'bottomLeft' + } else { + panel.gravitatesTowards = 'bottomRight' + } } else { - panel.gravitatesTowards = 'bottomRight' + if (centerPoint.x < verticalLine) { + panel.gravitatesTowards = 'bottomLeft' + } else { + panel.gravitatesTowards = 'bottomRight' + } } } } else { @@ -197,6 +213,10 @@ function newPanelsSpace () { /* According to the quadrant we push the panels to the sides */ if (panel.gravitatesTowards === 'topLeft' || panel.gravitatesTowards === 'bottomLeft') { panel.container.frame.position.x = panel.container.frame.position.x - panel.container.speed.x + if (panel.leftRightButton !== undefined) { + if (panel.leftRightButton.status === 'left' || panel.leftRightButton.status === 'right') { // we avoid pushing other panels while in transition + } + } isOverlapping(i, panel.container) if (panel.container.frame.position.x < 0) { panel.container.frame.position.x = 0 @@ -246,6 +266,11 @@ function newPanelsSpace () { for (let i = 0; i < currentIndex; i++) { let panel = thisObject.panels[i] + if (panel.leftRightButton !== undefined) { + if (panel.leftRightButton.status !== 'left' && panel.leftRightButton.status !== 'right') { // we avoid pushing other panels while in transition + continue + } + } if (panel.isVisible === true && panel.isHidden === false) { if (isThisPointInsideThisFrame(corner1, panel.container.frame) === true) { pushOut(currentContainer, panel.container, panel.gravitatesTowards) diff --git a/CanvasApp/Utilities.js b/CanvasApp/Utilities.js index 2588156b9..48750b49b 100644 --- a/CanvasApp/Utilities.js +++ b/CanvasApp/Utilities.js @@ -22,6 +22,22 @@ function drawContainerBackground (container, color, opacity, fitFunction) { browserCanvasContext.fill() } +function dynamicDecimals (value, minDecimals) { + if (minDecimals === undefined) { + minDecimals = 0 + } + let decimals = 2 + if (value < 1) { decimals = 4 } + if (Math.abs(Math.trunc(value * 100)) < 1) { decimals = 6 } + if (Math.abs(Math.trunc(value * 10000)) < 1) { decimals = 8 } + if (Math.abs(Math.trunc(value * 1000000)) < 1) { decimals = 10 } + if (Math.abs(Math.trunc(value * 100000000)) < 1) { decimals = 12 } + if (Math.abs(Math.trunc(value * 10000000000)) < 1) { value = 0; decimals = 0 } + if (Math.trunc(value) === value) { decimals = minDecimals } + let returnValue = Number(value).toFixed(decimals) + return returnValue +} + function savePropertyAtNodeConfig (payload, propertyName, value) { try { let code = JSON.parse(payload.node.code) @@ -194,7 +210,7 @@ function getMilisecondsFromPoint (point, container, coordinateSystem) { return point.x } -function moveToUserPosition (container, currentDate, currentRate, coordinateSystem, ignoreX, ignoreY, mousePosition) { +function moveToUserPosition (container, currentDate, currentRate, coordinateSystem, ignoreX, ignoreY, mousePosition, fitFunction) { let targetPoint = { x: currentDate.valueOf(), y: currentRate @@ -228,15 +244,45 @@ function removeTime (datetime) { return dateOnly } -function printLabel (labelToPrint, x, y, opacity, fontSize, color) { +function printLabel (labelToPrint, x, y, opacity, fontSize, color, center, container, fitFunction, noDecimals) { let labelPoint if (color === undefined) { color = UI_COLOR.DARK } + if (fontSize === undefined) { fontSize = 10 }; browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY - let label = '' + labelToPrint + let label = labelToPrint + if (isNaN(label) === false && label !== '') { + label = dynamicDecimals(labelToPrint) + label = label.toLocaleString() + if (noDecimals === true) { + label = Math.trunc(label) + } + } + let xOffset = label.length / 2 * fontSize * FONT_ASPECT_RATIO + + if (center === true) { + labelPoint = { + x: x - xOffset, + y: y + } + } else { + labelPoint = { + x: x, + y: y + } + } + + if (container !== undefined) { + labelPoint = container.frame.frameThisPoint(labelPoint) + } + + if (fitFunction !== undefined) { + labelPoint = fitFunction(labelPoint) + } + browserCanvasContext.fillStyle = 'rgba(' + color + ', ' + opacity + ')' - browserCanvasContext.fillText(label, x, y) + browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y) } function newUniqueId () { diff --git a/CanvasApp/Utilities/RoundedCornersBackground.js b/CanvasApp/Utilities/RoundedCornersBackground.js index 7ce98884c..e21100bf3 100644 --- a/CanvasApp/Utilities/RoundedCornersBackground.js +++ b/CanvasApp/Utilities/RoundedCornersBackground.js @@ -105,8 +105,9 @@ function roundedCornersBackground (params) { browserCanvasContext.stroke() } -function drawLabel (label, xFactor, yFactor, xOffset, yOffset, fontSize, container) { +function drawLabel (label, xFactor, yFactor, xOffset, yOffset, fontSize, container, fontColor, noFrameX, noFrameY) { if (label === undefined) { return } + if (fontColor === undefined) { fontColor = UI_COLOR.WHITE } let fontOffset = label.length * fontSize * FONT_ASPECT_RATIO + 10 let labelPoint = { @@ -116,8 +117,16 @@ function drawLabel (label, xFactor, yFactor, xOffset, yOffset, fontSize, contain labelPoint = container.frame.frameThisPoint(labelPoint) + if (noFrameX !== undefined) { + labelPoint.x = noFrameX + xOffset + } + + if (noFrameY !== undefined) { + labelPoint.y = noFrameY + yOffset + } + browserCanvasContext.font = fontSize + 'px ' + UI_FONT.PRIMARY - browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.WHITE + ', 1)' + browserCanvasContext.fillStyle = 'rgba(' + fontColor + ', 1)' browserCanvasContext.fillText(label, labelPoint.x, labelPoint.y) } diff --git a/CanvasApp/VideoRecorder.js b/CanvasApp/VideoRecorder.js index e84336c95..f222a8358 100644 --- a/CanvasApp/VideoRecorder.js +++ b/CanvasApp/VideoRecorder.js @@ -1,10 +1,20 @@ function newVideoRecorder () { let thisObject = { - recordCanvas: recordCanvas + recordCanvas: recordCanvas, + physics: physics } let lastAction + let wheelAnimationCounter = 0 + let lastWheelPointerIcon return thisObject + function physics () { + wheelAnimationCounter-- + if (wheelAnimationCounter < 0) { + wheelAnimationCounter = 0 + } + } + function recordCanvas () { { const DISTANCE_BETWEEN_ICONS = 35 @@ -33,16 +43,52 @@ function newVideoRecorder () { break } case 'wheel': { + wheelAnimationCounter = 25 if (canvas.mouse.event.delta > 0) { pointerIcon = canvas.designSpace.iconCollection.get('mouse-wheel-up') + lastWheelPointerIcon = pointerIcon } else { pointerIcon = canvas.designSpace.iconCollection.get('mouse-wheel-down') + lastWheelPointerIcon = pointerIcon } break } case 'key down': { - pointerIcon = mousePointerIcon + if (wheelAnimationCounter > 0) { + pointerIcon = lastWheelPointerIcon + } else { + pointerIcon = mousePointerIcon + } + let key = canvas.mouse.event.key + if (key === undefined) { break } + switch (key.toLowerCase()) { + case 'Escape': + { + pointerIcon = canvas.designSpace.iconCollection.get('key-m') + break + } + case 'm': + { + pointerIcon = canvas.designSpace.iconCollection.get('key-m') + break + } + case 'a': + { + pointerIcon = canvas.designSpace.iconCollection.get('key-a') + break + } + case 'r': + { + pointerIcon = canvas.designSpace.iconCollection.get('key-r') + break + } + case 'c': + { + pointerIcon = canvas.designSpace.iconCollection.get('key-r') + break + } + } break } case 'key up': { @@ -170,4 +216,3 @@ function newVideoRecorder () { } } } - diff --git a/Files-Component/src/FileCloud.js b/Files-Component/src/FileCloud.js index 79caf7511..1b159317d 100644 --- a/Files-Component/src/FileCloud.js +++ b/Files-Component/src/FileCloud.js @@ -75,8 +75,8 @@ function newFileCloud () { } if (pMarket !== undefined) { - fileName = fileName.replace('@BaseAsset', pMarket.baseAsset) - fileName = fileName.replace('@QuotedAsset', pMarket.quotedAsset) + filePath = filePath.replace('@BaseAsset', pMarket.baseAsset) + filePath = filePath.replace('@QuotedAsset', pMarket.quotedAsset) } if (pDataMine !== undefined) { @@ -99,7 +99,7 @@ function newFileCloud () { } if (pExchange !== undefined) { - filePath = filePath.replace('@Exchange', pExchange.code.codeName) + filePath = filePath.replace('@Exchange', pExchange.name) } filePath = filePath.replace('@Period', pPeriodName) diff --git a/Files-Component/src/FileCursor.js b/Files-Component/src/FileCursor.js index 439ffe270..1608fc7c3 100644 --- a/Files-Component/src/FileCursor.js +++ b/Files-Component/src/FileCursor.js @@ -89,10 +89,10 @@ function newFileCursor () { beginDateRange = pBeginDateRange endDateRange = pEndDateRange - let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + '-' + exchange.name + '-' + market.baseAsset + '/' + market.quotedAsset systemEventHandler.listenToEvent(key, 'Dataset Updated', undefined, key + '-' + periodName, onResponseDataSet, updateFiles) - key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + pPeriodName + key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + exchange.name + '-' + market.baseAsset + '/' + market.quotedAsset systemEventHandler.listenToEvent(key, 'Data Range Updated', undefined, key, onResponseDataRange, updateDataRange) callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) diff --git a/Files-Component/src/FileSequence.js b/Files-Component/src/FileSequence.js index 3646cfcc1..759eab6d3 100644 --- a/Files-Component/src/FileSequence.js +++ b/Files-Component/src/FileSequence.js @@ -74,7 +74,7 @@ function newFileSequence () { callerId = newUniqueId() - let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + '-' + exchange.name + '-' + market.baseAsset + '/' + market.quotedAsset systemEventHandler.listenToEvent(key, 'Dataset Updated', undefined, callerId, onResponse, updateFiles) function onResponse (message) { diff --git a/Files-Component/src/MarketFiles.js b/Files-Component/src/MarketFiles.js index dedf776c6..7dcda95d0 100644 --- a/Files-Component/src/MarketFiles.js +++ b/Files-Component/src/MarketFiles.js @@ -36,13 +36,15 @@ function newMarketFiles () { let intervalHandle let finalized = false - let eventSubscriptionIdDatasetUpdated + let eventSubscriptionIdDatasetUpdated = [] return thisObject function finalize () { try { - systemEventHandler.stopListening('Dataset Updated', eventSubscriptionIdDatasetUpdated) + for (let i = 0; i < eventSubscriptionIdDatasetUpdated.length; i++) { + systemEventHandler.stopListening('Dataset Updated', eventSubscriptionIdDatasetUpdated[i]) + } thisObject.eventHandler.finalize() thisObject.eventHandler = undefined @@ -106,13 +108,13 @@ function newMarketFiles () { } if (filesLoaded + filesNotLoaded === marketFilesPeriods.length) { - let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + let key = dataMine.code.codeName + '-' + bot.code.codeName + '-' + product.code.codeName + '-' + dataset.code.codeName + '-' + exchange.name + '-' + market.baseAsset + '/' + market.quotedAsset systemEventHandler.listenToEvent(key, 'Dataset Updated', undefined, key + '-' + periodName, onResponse, updateFiles) callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, thisObject) function onResponse (message) { - eventSubscriptionIdDatasetUpdated = message.eventSubscriptionId + eventSubscriptionIdDatasetUpdated.push(message.eventSubscriptionId) } } } catch (err) { diff --git a/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/Commons.js b/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/Commons.js deleted file mode 100644 index 10d791988..000000000 --- a/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/Commons.js +++ /dev/null @@ -1,67 +0,0 @@ -exports.newCommons = function newCommons(bot, logger, UTILITIES) { - - const FULL_LOG = true; - const LOG_FILE_CONTENT = false; - - const MODULE_NAME = "Commons"; - - const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; - const GMT_SECONDS = ':00.000 GMT+0000'; - - let thisObject = { - initializeStorage: initializeStorage - }; - - let utilities = UTILITIES.newCloudUtilities(bot, logger); - - return thisObject; - - function initializeStorage(charlyStorage, bruceStorage, callBackFunction) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] initializeStorage -> Entering function."); } - - initializeBruceStorage(); - - function initializeBruceStorage() { - - bruceStorage.initialize(bot.dataMine, onBruceInizialized); - - function onBruceInizialized(err) { - - if (err.result === global.DEFAULT_OK_RESPONSE.result) { - - initializeCharlyStorage(); - - } else { - logger.write(MODULE_NAME, "[ERROR] initializeStorage -> initializeBruceStorage -> onBruceInizialized -> err = " + err.stack); - callBackFunction(err); - } - } - } - - function initializeCharlyStorage() { - - charlyStorage.initialize(bot.dataMine, onCharlyInizialized); - - function onCharlyInizialized(err) { - - if (err.result === global.DEFAULT_OK_RESPONSE.result) { - - callBackFunction(global.DEFAULT_OK_RESPONSE); - - } else { - logger.write(MODULE_NAME, "[ERROR] initializeStorage -> initializeCharlyStorage -> onCharlyInizialized -> err = " + err.stack); - callBackFunction(err); - } - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] initializeStorage -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - -}; \ No newline at end of file diff --git a/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/Single-Period-Daily/User.Bot.js b/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/Single-Period-Daily/User.Bot.js deleted file mode 100644 index a2f7345f1..000000000 --- a/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/Single-Period-Daily/User.Bot.js +++ /dev/null @@ -1,813 +0,0 @@ -exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileStorage) { - - const FULL_LOG = true; - const LOG_FILE_CONTENT = false; - - const GMT_SECONDS = ':00.000 GMT+0000'; - const GMT_MILI_SECONDS = '.000 GMT+0000'; - const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; - - const MODULE_NAME = "User Bot"; - - const TRADES_FOLDER_NAME = "Trades"; - - const CANDLES_FOLDER_NAME = "Candles"; - const CANDLES_ONE_MIN = "One-Min"; - - const VOLUMES_FOLDER_NAME = "Volumes"; - const VOLUMES_ONE_MIN = "One-Min"; - - thisObject = { - initialize: initialize, - start: start - }; - - let utilities = UTILITIES.newCloudUtilities(bot, logger); - - let statusDependencies; - - return thisObject; - - function initialize(pStatusDependencies, callBackFunction) { - - statusDependencies = pStatusDependencies; - - logger.fileName = MODULE_NAME - logger.initialize(); - - callBackFunction(global.DEFAULT_OK_RESPONSE); - - } - - /* - This process is going to do the following: - Read the trades from Charly's Output and pack them into daily files with candles of one minute. - */ - - function start(callBackFunction) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> Entering function."); } - - let processDate = new Date((new Date()).getUTCFullYear() + "-" + ((new Date()).getUTCMonth() + 1) + "-1 00:00:00.000 GMT+0000"); - - let thisDatetime = new Date(); - - let market = bot.market; - - let lastTradeFileProcessed; // Datetime of the last file certified by the Hole Fixing process as without permanent holes. - let firstTradeFile; // Datetime of the first trade file in the whole market history. - let lastTradeFileSaved; // Datetime of the last verified file without holes. - let lastCandleClose; // Value of the last candle close. - let lastTradeFile; // Datetime pointing to the last Trade File sucessfuly processed and included in the last file. - let beginingOfMarket - - getContextVariables(); - - function getContextVariables() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Entering function."); } - - let thisReport; - let reportKey; - - /* First Status Report */ - reportKey = "AAMasters" + "-" + "AACharly" + "-" + "Historic-Trades" + "-" + "dataSet.V1"; - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } - - if (statusDependencies.statusReports.get(reportKey).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 = statusDependencies.statusReports.get(reportKey).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."); - - 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; - } - - firstTradeFile = new Date(thisReport.beginingOfMarket.year + "-" + thisReport.beginingOfMarket.month + "-" + thisReport.beginingOfMarket.days + " " + thisReport.beginingOfMarket.hours + ":" + thisReport.beginingOfMarket.minutes + GMT_SECONDS); - lastTradeFileSaved = new Date(thisReport.lastFileSaved.year + "-" + thisReport.lastFileSaved.month + "-" + thisReport.lastFileSaved.days + " " + thisReport.lastFileSaved.hours + ":" + thisReport.lastFileSaved.minutes + GMT_SECONDS); - - /* Final Status Report */ - - reportKey = "AAMasters" + "-" + "AABruce" + "-" + "Single-Period-Daily" + "-" + "dataSet.V1" - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } - - if (statusDependencies.statusReports.get(reportKey).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 = statusDependencies.statusReports.get(reportKey).file; - - if (thisReport.lastFile === undefined) { // Means this is the first time ever this process runs. - logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Process Running for the very first time. -> reportKey = " + reportKey); - - lastCandleClose = 0; - lastTradeFileProcessed = new Date(firstTradeFile.valueOf() - ONE_DAY_IN_MILISECONDS) - beginingOfMarket = new Date(firstTradeFile.valueOf()) - - buildCandlesAndVolumes(); - - } else { - logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> Process Running not for the very first time. -> reportKey = " + reportKey); - - lastTradeFileProcessed = new Date(thisReport.lastTradeFile.year + "-" + thisReport.lastTradeFile.month + "-" + thisReport.lastTradeFile.days + " " + "00:00" + GMT_SECONDS); - lastCandleClose = thisReport.candleClose; - beginingOfMarket = new Date(thisReport.beginingOfMarket.year + "-" + thisReport.beginingOfMarket.month + "-" + thisReport.beginingOfMarket.days + " " + thisReport.beginingOfMarket.hours + ":" + thisReport.beginingOfMarket.minutes + GMT_SECONDS); - - if (beginingOfMarket.valueOf() !== firstTradeFile.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); - - beginingOfMarket = new Date(firstTradeFile.valueOf()) - lastTradeFileProcessed = new Date(firstTradeFile.valueOf() - ONE_DAY_IN_MILISECONDS) - lastCandleClose = 0 - buildCandlesAndVolumes() - return - } - - if (thisReport.fileComplete === true) { - buildCandlesAndVolumes(); - } else { - lastTradeFile = new Date(thisReport.lastTradeFile.year + "-" + thisReport.lastTradeFile.month + "-" + thisReport.lastTradeFile.days + " " + thisReport.lastTradeFile.hours + ":" + thisReport.lastTradeFile.minutes + GMT_SECONDS); - findPreviousContent(); - } - } - } 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 findPreviousContent() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> Entering function."); } - - let previousCandles; - let previousVolumes; - - getCandles(); - - function getCandles() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> getCandles -> Entering function."); } - - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - let dateForPath = lastTradeFileProcessed.getUTCFullYear() + '/' + utilities.pad(lastTradeFileProcessed.getUTCMonth() + 1, 2) + '/' + utilities.pad(lastTradeFileProcessed.getUTCDate(), 2); - let filePath = bot.filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + '/' + CANDLES_ONE_MIN + '/' + dateForPath; - filePath += '/' + fileName - - fileStorage.getTextFile(filePath, onFileReceived); - - logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> getCandles -> reading file at dateForPath = " + dateForPath); - - function onFileReceived(err, text) { - - let candlesFile; - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> getCandles -> onFileReceived -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> getCandles -> onFileReceived -> err = " + err.stack); - callBackFunction(err); - return; - } - - if (LOG_FILE_CONTENT === true) { - logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> getCandles -> onFileReceived -> text = " + text); - } - - candlesFile = JSON.parse(text); - previousCandles = candlesFile; - getVolumes(); - - } catch (err) { - - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> getCandles -> onFileReceived -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> getCandles -> onFileReceived -> filePath = " + filePath); - logger.write(MODULE_NAME, "[HINT] start -> findPreviousContent -> getCandles -> onFileReceived -> Empty or corrupt volume file found."); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> getCandles -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function getVolumes() { - - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> getVolumes -> Entering function."); } - - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - let dateForPath = lastTradeFileProcessed.getUTCFullYear() + '/' + utilities.pad(lastTradeFileProcessed.getUTCMonth() + 1, 2) + '/' + utilities.pad(lastTradeFileProcessed.getUTCDate(), 2); - let filePath = bot.filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + '/' + VOLUMES_ONE_MIN + '/' + dateForPath; - filePath += '/' + fileName - - fileStorage.getTextFile(filePath, onFileReceived); - - logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> getVolumes -> reading file at dateForPath = " + dateForPath); - - function onFileReceived(err, text) { - - let volumesFile; - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> getVolumes -> onFileReceived -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> getVolumes -> onFileReceived -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> getVolumes -> onFileReceived -> text = " + text); - callBackFunction(err); - return; - } - - if (LOG_FILE_CONTENT === true) { - logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> getVolumes -> onFileReceived -> text = " + text); - } - - volumesFile = JSON.parse(text); - previousVolumes = volumesFile; - lastTradeFileProcessed = new Date(lastTradeFileProcessed.valueOf() - ONE_DAY_IN_MILISECONDS); // We know that after the next call a new day will be added. - buildCandlesAndVolumes(previousCandles, previousVolumes); - - } catch (err) { - - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> getVolumes -> onFileReceived -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> getVolumes -> onFileReceived -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> getVolumes -> onFileReceived -> text = " + text); - logger.write(MODULE_NAME, "[HINT] start -> findPreviousContent -> getVolumes -> onFileReceived -> Empty or corrupt volume file found."); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> getVolumes -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> findPreviousContent -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function buildCandlesAndVolumes(previousCandles, previousVolumes) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> Entering function."); } - - /* - Here we are going to scan the trades files packing them in candles files every one day. - We need for this the last close value, bacause all candles that are empty of trades at the begining, they need to - have a valid open and close value. This was previously calculated before arriving to this function. - */ - - let canAddPrevious = true; - - try { - nextFile(); - - function nextFile() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> Entering function."); } - - lastTradeFileProcessed = new Date(lastTradeFileProcessed.valueOf() + ONE_DAY_IN_MILISECONDS); - - let date = new Date(lastTradeFileProcessed.valueOf() - 60 * 1000); - - if (date.valueOf() < firstTradeFile.valueOf()) { // At the special case where we are at the begining of the market, this might be true. - date = new Date(firstTradeFile.valueOf() - 60 * 1000); - } - - if (lastTradeFile !== undefined) { - date = new Date(lastTradeFile.valueOf()); - } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> date = " + date); } - - let candles = []; - let volumes = []; - - if (previousCandles !== undefined && canAddPrevious === true) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> Adding Previous Candles. "); } - - for (let i = 0; i < previousCandles.length; i++) { - - let candle = { - open: previousCandles[i][2], - close: previousCandles[i][3], - min: previousCandles[i][0], - max: previousCandles[i][1], - begin: previousCandles[i][4], - end: previousCandles[i][5] - }; - - candles.push(candle); - } - } - - if (previousVolumes !== undefined && canAddPrevious === true) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> Adding Previous Volumes. "); } - - for (let i = 0; i < previousVolumes.length; i++) { - - let volume = { - begin: previousVolumes[i][2], - end: previousVolumes[i][3], - buy: previousVolumes[i][0], - sell: previousVolumes[i][1] - }; - - volumes.push(volume); - } - } - - canAddPrevious = false; // We add them only onece. - - nextDate(); - - function nextDate() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> nextDate -> Entering function."); } - - date = new Date(date.valueOf() + 60 * 1000); - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> nextDate -> date = " + date); } - - /* Check if we are outside the current Day / File */ - - if (date.getUTCDate() !== lastTradeFileProcessed.getUTCDate()) { - - writeFiles(lastTradeFileProcessed, candles, volumes, true, onFilesWritten); - - return; - - function onFilesWritten() { - - nextFile(); - } - } - - /* Check if we have past the most recent hole fixed file */ - - if (date.valueOf() > lastTradeFileSaved.valueOf()) { - - writeFiles(lastTradeFileProcessed, candles, volumes, false, onFilesWritten); - return; - - function onFilesWritten() { - - if (FULL_LOG === true) { - logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> nextDate -> Head of the market reached for market " + market.baseAsset + '_' + market.quotedAsset + "."); - } - - callBackFunction(global.DEFAULT_OK_RESPONSE); - return; - } - } - - readTrades(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> buildCandlesAndVolumes -> nextFile -> nextDate -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function readTrades() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> nextDate -> readTrades -> Entering function."); } - - lastTradeFile = new Date(date.valueOf()); - - 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 fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - let filePathRoot = bot.dataMine + "/" + "AACharly" + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + TRADES_FOLDER_NAME + '/' + dateForPath; - filePath += '/' + fileName - - fileStorage.getTextFile(filePath, onFileReceived); - - logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> nextDate -> readTrades -> reading file at dateForPath = " + dateForPath); - - function onFileReceived(err, text) { - - let tradesFile; - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> readTrades -> onFileReceived -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> buildCandlesAndVolumes -> nextFile -> readTrades -> onFileReceived -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> buildCandlesAndVolumes -> nextFile -> readTrades -> onFileReceived -> text = " + text); - callBackFunction(err); - return; - } - - if (LOG_FILE_CONTENT === true) { - logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> readTrades -> onFileReceived -> text = " + text); - } - - let candle = { - open: lastCandleClose, - close: lastCandleClose, - min: lastCandleClose, - max: lastCandleClose, - begin: date.valueOf(), - end: date.valueOf() + 60 * 1000 - 1 - }; - - let volume = { - begin: date.valueOf(), - end: date.valueOf() + 60 * 1000 - 1, - buy: 0, - sell: 0 - }; - - tradesFile = JSON.parse(text); - - let tradesCount = utilities.pad(tradesFile.length, 5); - - logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> readTrades -> onFileReceived -> " + tradesCount + " trades found at " + filePath + " for market " + market.baseAsset + '_' + market.quotedAsset + ". "); - - if (tradesFile.length > 0) { - - /* Candle open and close Calculations */ - - candle.open = tradesFile[0][2]; - candle.close = tradesFile[tradesFile.length - 1][2]; - lastCandleClose = candle.close; - } - - for (let i = 0; i < tradesFile.length; i++) { - - let record = { - side: tradesFile[i][1], - price: tradesFile[i][2], - amount: tradesFile[i][3] - }; - - let trade = { - type: record.side, - rate: record.price, - amountA: record.amount, - amountB: record.amount * record.price - }; - - /* Candle min and max Calculations */ - - if (trade.rate < candle.min) { - candle.min = trade.rate; - } - - if (trade.rate > candle.max) { - candle.max = trade.rate; - } - - /* Volume Calculations */ - - if (trade.type === "sell") { - volume.sell = volume.sell + trade.amountA; - } else { - volume.buy = volume.buy + trade.amountA; - } - } - - candles.push(candle); - volumes.push(volume); - nextDate(); - - } catch (err) { - - logger.write(MODULE_NAME, "[ERROR] start -> buildCandlesAndVolumes -> nextFile -> readTrades -> onFileReceived -> err = " + err.stack); - logger.write(MODULE_NAME, "[ERROR] start -> buildCandlesAndVolumes -> nextFile -> readTrades -> onFileReceived -> filePath = " + filePath); - logger.write(MODULE_NAME, "[ERROR] start -> buildCandlesAndVolumes -> nextFile -> readTrades -> onFileReceived -> text = " + text); - logger.write(MODULE_NAME, "[HINT] start -> buildCandlesAndVolumes -> nextFile -> readTrades -> onFileReceived -> Empty or corrupt volume file found."); - - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> buildCandlesAndVolumes -> nextFile -> readTrades -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> buildCandlesAndVolumes -> nextFile -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> buildCandlesAndVolumes -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeFiles(date, candles, volumes, isFileComplete, callBack) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> Entering function."); } - - /* - Here we will write the contents of the Candles and Volumens files. If the File is declared as complete, we will also write the status report. - */ - - try { - - writeCandles(); - - function writeCandles() { - - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeCandles -> Entering function."); } - - let separator = ""; - let fileRecordCounter = 0; - - let fileContent = ""; - - for (i = 0; i < candles.length; i++) { - - fileContent = fileContent + separator + '[' + candles[i].min + "," + candles[i].max + "," + candles[i].open + "," + candles[i].close + "," + candles[i].begin + "," + candles[i].end + "]"; - if (separator === "") { separator = ","; } - fileRecordCounter++; - } - - fileContent = "[" + fileContent + "]"; - - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - let dateForPath = date.getUTCFullYear() + '/' + utilities.pad(date.getUTCMonth() + 1, 2) + '/' + utilities.pad(date.getUTCDate(), 2); - let filePath = bot.filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + '/' + CANDLES_ONE_MIN + '/' + dateForPath; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeCandles -> writing file at dateForPath = " + dateForPath); - - function onFileCreated(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeCandles -> onFileCreated -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeCandles -> onFileCreated -> err = " + err.stack); - callBackFunction(err); - return; - } - - if (LOG_FILE_CONTENT === true) { - logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeCandles -> onFileCreated -> fileContent = " + fileContent); - } - - logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeCandles -> onFileCreated -> Finished with File @ " + market.baseAsset + "_" + market.quotedAsset + ", " + fileRecordCounter + " records inserted into " + filePath + "/" + fileName + ""); - - writeVolumes(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeCandles -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeCandles -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeVolumes() { - - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeVolumes -> Entering function."); } - - let separator = ""; - let fileRecordCounter = 0; - - let fileContent = ""; - - for (i = 0; i < volumes.length; i++) { - - /* Validation trying to find a BUG that changes the dates of rubish data. */ - - if (volumes[i].begin < 1262304000000 | volumes[i].end < 1262304000000) { // If it is storing a number that represents a date before the year 2010... - - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeVolumes -> Invalid Date trying to be recorded on output file. "); - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeVolumes -> volumes[i].begin = " + volumes[i].begin); - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeVolumes -> volumes[i].end = " + volumes[i].end); - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeVolumes -> i = " + i); - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeVolumes -> volumes = " + JSON.stringify(volumes)); - - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - - fileContent = fileContent + separator + '[' + volumes[i].buy + "," + volumes[i].sell + "," + volumes[i].begin + "," + volumes[i].end + "]"; - if (separator === "") { separator = ","; } - fileRecordCounter++; - } - - fileContent = "[" + fileContent + "]"; - - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - let dateForPath = date.getUTCFullYear() + '/' + utilities.pad(date.getUTCMonth() + 1, 2) + '/' + utilities.pad(date.getUTCDate(), 2); - let filePath = bot.filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + '/' + VOLUMES_ONE_MIN + '/' + dateForPath; - filePath += '/' + fileName - - fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); - - logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeVolumes -> writing file at dateForPath = " + dateForPath); - - function onFileCreated(err) { - - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeVolumes -> onFileCreated -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeVolumes -> onFileCreated -> err = " + err.stack); - callBackFunction(err); - return; - } - - if (LOG_FILE_CONTENT === true) { - logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeVolumes -> onFileCreated -> fileContent = " + fileContent); - } - - logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeVolumes -> onFileCreated -> Finished with File @ " + market.baseAsset + "_" + market.quotedAsset + ", " + fileRecordCounter + " records inserted into " + filePath + "/" + fileName + ""); - - writeReport(); - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeVolumes -> onFileCreated -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeVolumes -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeReport() { - - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeReport -> Entering function."); } - - writeStatusReport(date, lastTradeFile, lastCandleClose, isFileComplete, false, onStatusReportWritten); - - function onStatusReportWritten(err) { - - try { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeFiles -> writeReport -> onStatusReportWritten -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> onStatusReportWritten -> err = " + err.stack); - callBackFunction(err); - return; - } - - callBack(); - return; - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeReport -> onStatusReportWritten -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> writeReport -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - } catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeFiles -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - - function writeStatusReport(lastFileDate, lastTradeFile, candleClose, isFileComplete, isMonthComplete, callBack) { - - 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); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeStatusReport -> lastTradeFile = " + lastTradeFile); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeStatusReport -> candleClose = " + candleClose); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeStatusReport -> isFileComplete = " + isFileComplete); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeStatusReport -> isMonthComplete = " + isMonthComplete); } - - try { - - if (lastTradeFile === undefined) { - - /* At the begining of a new month, it can happen for reasons not 100% clear that this variable gets undifined. - Probably it is because the instance that was waiting to execute in coma state, wakes up before than Charly - writting the trades of this new month. Anyway, when this happens, a different path in code is taken and this - variable gets undefined. A workaround for that without further investigation of the real cause of the problem - is to RETRY the execution until the normal conditions arise and everything continues working well. That is what - we are going to do for now. */ - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[WARN] start -> writeStatusReport -> Cannot write the status report."); } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[WARN] start -> writeStatusReport -> lastTradeFile = undefined."); } - - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - - return; - } - - let key = bot.dataMine + "-" + bot.codeName + "-" + bot.process + "-" + bot.dataSetVersion - let statusReport = statusDependencies.statusReports.get(key); - - statusReport.file = { - lastFile: { - year: lastFileDate.getUTCFullYear(), - month: (lastFileDate.getUTCMonth() + 1), - days: lastFileDate.getUTCDate() - }, - lastTradeFile: { - year: lastTradeFile.getUTCFullYear(), - month: (lastTradeFile.getUTCMonth() + 1), - days: lastTradeFile.getUTCDate(), - hours: lastTradeFile.getUTCHours(), - minutes: lastTradeFile.getUTCMinutes() - }, - beginingOfMarket: { - year: beginingOfMarket.getUTCFullYear(), - month: (beginingOfMarket.getUTCMonth() + 1), - days: beginingOfMarket.getUTCDate(), - hours: beginingOfMarket.getUTCHours(), - minutes: beginingOfMarket.getUTCMinutes() - }, - candleClose: candleClose, - fileComplete: isFileComplete - }; - - let fileContent = JSON.stringify(statusReport); - - statusReport.save(onSaved); - - function onSaved(err) { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeStatusReport -> onSaved -> Entering function."); } - - if (err.result !== global.DEFAULT_OK_RESPONSE.result) { - logger.write(MODULE_NAME, "[ERROR] start -> writeStatusReport -> onSaved -> err = " + err.stack); - callBackFunction(err); - return; - } - - callBack(global.DEFAULT_OK_RESPONSE); - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> writeStatusReport -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } - } - catch (err) { - logger.write(MODULE_NAME, "[ERROR] start -> err = " + err.stack); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - } - } -}; diff --git a/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/package.json b/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/package.json deleted file mode 100644 index 8aee0df58..000000000 --- a/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "AABruce", - "version": "1.0.0", - "description": "Processes that get the order books from Poloniex.", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "Luis-Fernando-Molina", - "license": "ISC", - "dependencies": { - } -} diff --git a/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/this.bot.config.json b/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/this.bot.config.json deleted file mode 100644 index 708d76f8b..000000000 --- a/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/this.bot.config.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "displayName": "Bruce", - "codeName": "AABruce", - "type": "Indicator Bot", - "version": { - "major": 1, - "minor": 0, - "patch": 0 - }, - "dataMine": "AAMasters", - "profilePicture": "Bruce.png", - "dataSetVersion": "dataSet.V1", - "processes": [ - { - "name": "Single-Period-Daily", - "description": "Produces two data-sets with candles and volumes.", - "startMode": { - "allMonths": { - "run": "true", - "minYear": "2019", - "maxYear": "2019" - }, - "oneMonth": { - "run": "false", - "year": "2018", - "month": "6" - }, - "noTime": { - "run": "false" - }, - "fixedInterval": { - "run": "false", - "interval": 0 - } - }, - "deadWaitTime": 0, - "normalWaitTime": 0, - "retryWaitTime": 10000, - "sleepWaitTime": 3600000, - "comaWaitTime": 86400000, - "statusDependencies": [ - { - "dataMine": "AAMasters", - "bot": "AACharly", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Historic-Trades", - "dataSetVersion": "dataSet.V1" - }, - { - "dataMine": "AAMasters", - "bot": "AACharly", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Hole-Fixing", - "dataSetVersion": "dataSet.V1", - "dataSetSection": "Month", - "waitUntilNextUpdate": true - }, - { - "dataMine": "AAMasters", - "bot": "AABruce", - "botVersion": { - "major": 1, - "minor": 0 - }, - "process": "Single-Period-Daily", - "dataSetVersion": "dataSet.V1", - "dataSetSection": "Month" - } - ] - } - ], - "products": [ - { - "codeName": "Candles", - "displayName": "Candles", - "description": "01 Min Candles.", - "storageAccount": "aamasters", - "dataSets": [ - { - "codeName": "One-Min", - "type": "Daily Files", - "validPeriods": [ "01-min" ], - "filePath": "AAMasters/AAOlivia.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candles/One-Min", - "fileName": "@AssetA_@AssetB.json" - } - ], - "exchangeList": [ - { - "name": "Poloniex" - }, - { - "name": "Coss" - } - ], - "plotter": { - "dataMine": "AAMasters", - "codeName": "PlottersCandlesVolumes", - "moduleName": "Candles" - } - }, - { - "codeName": "Volumes", - "displayName": "Buy and Sell Volumes", - "description": "01 Min Volumes.", - "storageAccount": "aamasters", - "dataSets": [ - { - "codeName": "One-Min", - "type": "Daily Files", - "validPeriods": [ "01-min" ], - "filePath": "AAMasters/AAOlivia.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volumes/One-Min", - "fileName": "@AssetA_@AssetB.json" - } - ], - "exchangeList": [ - { - "name": "Poloniex" - }, - { - "name": "Coss" - } - ], - "plotter": { - "dataMine": "AAMasters", - "codeName": "PlottersCandlesVolumes", - "moduleName": "Volumes" - } - } - ], - "storage": { - "sas": "?sv=2017-07-29&ss=b&srt=sco&sp=rl&se=2018-12-31T22:59:59Z&st=2018-04-01T12:59:54Z&spr=https&sig=Fre%2FUWrF9IAXNnJSOZ%2F5q5LUow9uno7dXg5pGZ3YDzo%3D", - "fileUri": "https://aamasters.blob.core.windows.net" - } -} - - - diff --git a/Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/Multi-Period-Daily/User.Bot.js b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Daily/User.Bot.js similarity index 94% rename from Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/Multi-Period-Daily/User.Bot.js rename to Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Daily/User.Bot.js index b773a7052..8c27945fd 100644 --- a/Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/Multi-Period-Daily/User.Bot.js +++ b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Daily/User.Bot.js @@ -1,4 +1,4 @@ -exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileStorage) { +exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_STORAGE) { const FULL_LOG = true; const INTENSIVE_LOG = false; @@ -21,6 +21,7 @@ }; let utilities = UTILITIES.newCloudUtilities(bot, logger); + let fileStorage = FILE_STORAGE.newFileStorage(logger); let statusDependencies; let beginingOfMarket @@ -50,7 +51,7 @@ This process is going to do the following: - Read the candles from Olivia and produce daily files with bollinger bands. + Read the candles from Candles Volumes and produce daily files with bollinger bands. */ @@ -85,9 +86,9 @@ let reportKey; let statusReport; - /* We look first for Charly in order to get when the market starts. */ + /* We look first for Exchange Raw Data in order to get when the market starts. */ - reportKey = "AAMasters" + "-" + "AACharly" + "-" + "Historic-Trades" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -121,9 +122,9 @@ contextVariables.firstTradeFile = new Date(thisReport.beginingOfMarket.year + "-" + thisReport.beginingOfMarket.month + "-" + thisReport.beginingOfMarket.days + " " + thisReport.beginingOfMarket.hours + ":" + thisReport.beginingOfMarket.minutes + GMT_SECONDS); - /* Second, we get the report from Olivia, to know when the marted ends. */ + /* Second, we get the report from Candles Volumes, to know when the marted ends. */ - reportKey = "AAMasters" + "-" + "AAOlivia" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -158,7 +159,7 @@ /* Finally we get our own Status Report. */ - reportKey = "AAMasters" + "-" + "AAChris" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Bollinger-Bands" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -246,6 +247,9 @@ let n; processDate = new Date(contextVariables.lastBandFile.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(processDate.valueOf()) + let lastDate = new Date() + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildBands -> processDate = " + processDate); } advanceTime(); @@ -254,8 +258,6 @@ try { - logger.newInternalLoop(bot.codeName, bot.process); - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildBands -> advanceTime -> Entering function."); } processDate = new Date(processDate.valueOf() + ONE_DAY_IN_MILISECONDS); @@ -276,6 +278,15 @@ } + /* Telling the world we are alive and doing well */ + let currentDateString = processDate.getUTCFullYear() + '-' + utilities.pad(processDate.getUTCMonth() + 1, 2) + '-' + utilities.pad(processDate.getUTCDate(), 2); + let currentDate = new Date(processDate) + 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); + } periodsLoop(); } catch (err) { @@ -328,9 +339,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildBands -> loopBody -> getPreviousDayFile -> Entering function."); } let dateForPath = previousDay.getUTCFullYear() + '/' + utilities.pad(previousDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(previousDay.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - - let filePathRoot = bot.dataMine + "/" + "AAOlivia" + "/" + bot.exchange; + let fileName = "Data.json" + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Candles-Volumes"; let filePath = filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + '/' + "Multi-Period-Daily" + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName @@ -368,9 +378,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildBands -> loopBody -> getProcessDayFile -> Entering function."); } let dateForPath = processDate.getUTCFullYear() + '/' + utilities.pad(processDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(processDate.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - - let filePathRoot = bot.dataMine + "/" + "AAOlivia" + "/" + bot.exchange; + let fileName = "Data.json" + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Candles-Volumes"; let filePath = filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + '/' + "Multi-Period-Daily" + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName @@ -598,10 +607,8 @@ fileContent = "[" + fileContent + "]"; let dateForPath = processDate.getUTCFullYear() + '/' + utilities.pad(processDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(processDate.getUTCDate(), 2); - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + BOLLINGER_BANDS_FOLDER_NAME + "/" + bot.process + "/" + timeFrame + "/" + dateForPath; + let fileName = 'Data.json'; + let filePath = bot.filePathRoot + "/Output/" + BOLLINGER_BANDS_FOLDER_NAME + "/" + bot.process + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -670,10 +677,8 @@ fileContent = "[" + fileContent + "]"; let dateForPath = processDate.getUTCFullYear() + '/' + utilities.pad(processDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(processDate.getUTCDate(), 2); - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + PERCENTAGE_BANDWIDTH_FOLDER_NAME + "/" + bot.process + "/" + timeFrame + "/" + dateForPath; + let fileName = 'Data.json'; + let filePath = bot.filePathRoot + "/Output/" + PERCENTAGE_BANDWIDTH_FOLDER_NAME + "/" + bot.process + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -826,7 +831,7 @@ let fileContent = JSON.stringify(dataRange); - let fileName = 'Data.Range.' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.Range.json'; let filePath = bot.filePathRoot + "/Output/" + pProductFolder + "/" + bot.process; filePath += '/' + fileName @@ -863,7 +868,7 @@ try { - let reportKey = "AAMasters" + "-" + "AAChris" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + let reportKey = "Masters" + "-" + "Bollinger-Bands" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; let thisReport = statusDependencies.statusReports.get(reportKey); thisReport.file.lastExecution = bot.processDatetime; diff --git a/Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/Multi-Period-Market/User.Bot.js b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Market/User.Bot.js similarity index 94% rename from Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/Multi-Period-Market/User.Bot.js rename to Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Market/User.Bot.js index 3f0742040..f5bd3cb5f 100644 --- a/Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/Multi-Period-Market/User.Bot.js +++ b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/Multi-Period-Market/User.Bot.js @@ -1,4 +1,4 @@ -exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileStorage) { +exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_STORAGE) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -17,6 +17,8 @@ }; let statusDependencies; + let utilities = UTILITIES.newCloudUtilities(bot, logger); + let fileStorage = FILE_STORAGE.newFileStorage(logger); return thisObject; @@ -43,7 +45,7 @@ This process is going to do the following: - Read the candles from Olivia and produce the bollinger bands out of them. + Read the candles from Candles Volumes and produce the bollinger bands out of them. */ @@ -107,9 +109,9 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildBands -> loopBody -> nextCandleFile -> Entering function."); } - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json"; + let fileName = "Data.json"; - let filePathRoot = bot.dataMine + "/" + "AAOlivia" + "/" + bot.exchange; + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Candles-Volumes"; let filePath = filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; filePath += '/' + fileName @@ -297,10 +299,8 @@ fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + BOLLINGER_BANDS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; + let fileName = 'Data.json'; + let filePath = bot.filePathRoot + "/Output/" + BOLLINGER_BANDS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; filePath += '/' + fileName fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -369,10 +369,8 @@ fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + PERCENTAGE_BANDWIDTH_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; + let fileName = 'Data.json'; + let filePath = bot.filePathRoot + "/Output/" + PERCENTAGE_BANDWIDTH_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; filePath += '/' + fileName fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -467,12 +465,21 @@ try { - let reportKey = "AAMasters" + "-" + "AAChris" + "-" + "Multi-Period-Market" + "-" + "dataSet.V1"; + let reportKey = "Masters" + "-" + "Bollinger-Bands" + "-" + "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)) } catch (err) { logger.write(MODULE_NAME, "[ERROR] start -> writeStatusReport -> err = " + err.stack); diff --git a/Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/package.json b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/package.json similarity index 100% rename from Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/package.json rename to Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/package.json diff --git a/Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/this.bot.config.json b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/this.bot.config.json similarity index 77% rename from Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/this.bot.config.json rename to Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/this.bot.config.json index 4252b243a..3b08b5895 100644 --- a/Legacy-Code/AAMasters/bots/AAChris-Indicator-Bot/this.bot.config.json +++ b/Legacy-Code/Masters/bots/Bollinger-Bands-Indicator-Bot/this.bot.config.json @@ -1,14 +1,14 @@ { - "displayName": "Chris", - "codeName": "AAChris", + "displayName": "Bollinger Bands", + "codeName": "Bollinger-Bands", "type": "Indicator Bot", "version": { "major": 1, "minor": 0, "patch": 0 }, - "dataMine": "AAMasters", - "profilePicture": "Chris.png", + "dataMine": "Masters", + "profilePicture": "Bollinger Bands.png", "dataSetVersion": "dataSet.V1", "processes": [ { @@ -50,8 +50,8 @@ ], "statusDependencies": [ { - "dataMine": "AAMasters", - "bot": "AAChris", + "dataMine": "Masters", + "bot": "Bollinger-Bands", "botVersion": { "major": 1, "minor": 0 @@ -60,8 +60,8 @@ "dataSetVersion": "dataSet.V1" }, { - "dataMine": "AAMasters", - "bot": "AAOlivia", + "dataMine": "Masters", + "bot": "Candles-Volumes", "botVersion": { "major": 1, "minor": 0 @@ -111,8 +111,8 @@ ], "statusDependencies": [ { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -121,8 +121,8 @@ "dataSetVersion": "dataSet.V1" }, { - "dataMine": "AAMasters", - "bot": "AAOlivia", + "dataMine": "Masters", + "bot": "Candles-Volumes", "botVersion": { "major": 1, "minor": 0 @@ -132,8 +132,8 @@ "waitUntilNextUpdate": true }, { - "dataMine": "AAMasters", - "bot": "AAChris", + "dataMine": "Masters", + "bot": "Bollinger-Bands", "botVersion": { "major": 1, "minor": 0 @@ -149,24 +149,24 @@ "codeName": "Bollinger-Bands", "displayName": "Bollinger Bands", "description": "Bollinger Bands", - "storageAccount": "aachris", + "storageAccount": "Bollinger-Bands", "shareWith": "Public", "dataSets": [ { "codeName": "Multi-Period-Market", "type": "Market Files", "validPeriods": [ "24-hs", "12-hs", "08-hs", "06-hs", "04-hs", "03-hs", "02-hs", "01-hs" ], - "filePath": "AAMasters/AAChris.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Bollinger-Bands/Multi-Period-Market/@Period", + "filePath": "Masters/Bollinger-Bands.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Bollinger-Bands/Multi-Period-Market/@Period", "fileName": "@AssetA_@AssetB.json" }, { "codeName": "Multi-Period-Daily", "type": "Daily Files", "validPeriods": [ "45-min", "40-min", "30-min", "20-min", "15-min", "10-min", "05-min", "04-min", "03-min", "02-min", "01-min" ], - "filePath": "AAMasters/AAChris.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Bollinger-Bands/Multi-Period-Daily/@Period/@Year/@Month/@Day", + "filePath": "Masters/Bollinger-Bands.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Bollinger-Bands/Multi-Period-Daily/@Period/@Year/@Month/@Day", "fileName": "@AssetA_@AssetB.json", "dataRange": { - "filePath": "AAMasters/AAChris.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Bollinger-Bands/Multi-Period-Daily", + "filePath": "Masters/Bollinger-Bands.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Bollinger-Bands/Multi-Period-Daily", "fileName": "Data.Range.@AssetA_@AssetB.json" } } @@ -180,7 +180,7 @@ } ], "plotter": { - "dataMine": "AAMasters", + "dataMine": "Masters", "codeName": "PlottersBollingerBands", "moduleName": "BollingerBands" } @@ -189,24 +189,24 @@ "codeName": "Percentage-Bandwidth", "displayName": "Percentage Bandwidth", "description": "Percentage Bandwidth", - "storageAccount": "aachris", + "storageAccount": "Bollinger-Bands", "shareWith": "Public", "dataSets": [ { "codeName": "Multi-Period-Market", "type": "Market Files", "validPeriods": [ "24-hs", "12-hs", "08-hs", "06-hs", "04-hs", "03-hs", "02-hs", "01-hs" ], - "filePath": "AAMasters/AAChris.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Percentage-Bandwidth/Multi-Period-Market/@Period", + "filePath": "Masters/Bollinger-Bands.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Percentage-Bandwidth/Multi-Period-Market/@Period", "fileName": "@AssetA_@AssetB.json" }, { "codeName": "Multi-Period-Daily", "type": "Daily Files", "validPeriods": [ "45-min", "40-min", "30-min", "20-min", "15-min", "10-min", "05-min", "04-min", "03-min", "02-min", "01-min" ], - "filePath": "AAMasters/AAChris.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Percentage-Bandwidth/Multi-Period-Daily/@Period/@Year/@Month/@Day", + "filePath": "Masters/Bollinger-Bands.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Percentage-Bandwidth/Multi-Period-Daily/@Period/@Year/@Month/@Day", "fileName": "@AssetA_@AssetB.json", "dataRange": { - "filePath": "AAMasters/AAChris.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Percentage-Bandwidth/Multi-Period-Daily", + "filePath": "Masters/Bollinger-Bands.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Percentage-Bandwidth/Multi-Period-Daily", "fileName": "Data.Range.@AssetA_@AssetB.json" } } @@ -220,7 +220,7 @@ } ], "plotter": { - "dataMine": "AAMasters", + "dataMine": "Masters", "codeName": "PlottersBollingerBands", "moduleName": "PercentageBandwidth" } diff --git a/Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/Multi-Period-Daily/User.Bot.js b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Daily/User.Bot.js similarity index 93% rename from Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/Multi-Period-Daily/User.Bot.js rename to Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Daily/User.Bot.js index 91fb01511..7329782c2 100644 --- a/Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/Multi-Period-Daily/User.Bot.js +++ b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Daily/User.Bot.js @@ -1,4 +1,4 @@ -exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileStorage) { +exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_STORAGE) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -23,6 +23,7 @@ }; let utilities = UTILITIES.newCloudUtilities(bot, logger); + let fileStorage = FILE_STORAGE.newFileStorage(logger); let statusDependencies; let beginingOfMarket @@ -52,7 +53,7 @@ This process is going to do the following: -Read the candles and volumes from Charly and produce a file for each day and for each period with candles and volumes. +Read the candles and volumes from Exchange Raw Data and produce a file for each day and for each period with candles and volumes. */ @@ -84,9 +85,9 @@ Read the candles and volumes from Charly and produce a file for each day and for let reportKey; let statusReport; - /* We look first for Charly in order to get when the market starts. */ + /* We look first for Exchange Raw Data in order to get when the market starts. */ - reportKey = "AAMasters" + "-" + "AACharly" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -120,9 +121,9 @@ Read the candles and volumes from Charly and produce a file for each day and for contextVariables.firstTradeFile = new Date(thisReport.beginingOfMarket.year + "-" + thisReport.beginingOfMarket.month + "-" + thisReport.beginingOfMarket.days + " " + thisReport.beginingOfMarket.hours + ":" + thisReport.beginingOfMarket.minutes + GMT_SECONDS); - /* Second, we get the report from Charly, to know when the marted ends. */ + /* Second, we get the report from Exchange Raw Data, to know when the marted ends. */ - reportKey = "AAMasters" + "-" + "AACharly" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1" + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -157,7 +158,7 @@ Read the candles and volumes from Charly and produce a file for each day and for /* Finally we get our own Status Report. */ - reportKey = "AAMasters" + "-" + "AAOlivia" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -228,7 +229,8 @@ Read the candles and volumes from Charly and produce a file for each day and for function buildCandles() { try { - + let fromDate = new Date(contextVariables.lastCandleFile.valueOf()) + let lastDate = new Date() if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandles -> Entering function."); } let outputCandles; @@ -254,6 +256,15 @@ Read the candles and volumes from Charly and produce a file for each day and for return; } + /* Telling the world we are alive and doing well */ + let currentDateString = contextVariables.lastCandleFile.getUTCFullYear() + '-' + utilities.pad(contextVariables.lastCandleFile.getUTCMonth() + 1, 2) + '-' + utilities.pad(contextVariables.lastCandleFile.getUTCDate(), 2); + let currentDate = new Date(contextVariables.lastCandleFile) + 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); + } /* We prepere the arrays that will accumulate all the information for each output file. @@ -303,8 +314,8 @@ Read the candles and volumes from Charly and produce a file for each day and for if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandles -> periodsLoop -> loopBody -> nextCandleFile -> Entering function."); } let dateForPath = contextVariables.lastCandleFile.getUTCFullYear() + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCMonth() + 1, 2) + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - let filePathRoot = bot.dataMine + "/" + "AACharly" + "/" + bot.exchange; + let fileName = "Data.json" + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Exchange-Raw-Data"; let filePath = filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + '/' + CANDLES_ONE_MIN + '/' + dateForPath; filePath += '/' + fileName @@ -429,8 +440,8 @@ Read the candles and volumes from Charly and produce a file for each day and for if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandles -> periodsLoop -> loopBody -> nextVolumeFile -> Entering function."); } let dateForPath = contextVariables.lastCandleFile.getUTCFullYear() + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCMonth() + 1, 2) + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - let filePathRoot = bot.dataMine + "/" + "AACharly" + "/" + bot.exchange; + let fileName = "Data.json" + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Exchange-Raw-Data"; let filePath = filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + '/' + VOLUMES_ONE_MIN + '/' + dateForPath; filePath += '/' + fileName @@ -592,7 +603,7 @@ Read the candles and volumes from Charly and produce a file for each day and for fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.json'; let dateForPath = contextVariables.lastCandleFile.getUTCFullYear() + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCMonth() + 1, 2) + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCDate(), 2); let filePath = bot.filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + "/" + bot.process + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName @@ -643,7 +654,7 @@ Read the candles and volumes from Charly and produce a file for each day and for fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.json'; let dateForPath = contextVariables.lastCandleFile.getUTCFullYear() + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCMonth() + 1, 2) + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCDate(), 2); let filePath = bot.filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + "/" + bot.process + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName @@ -732,7 +743,7 @@ Read the candles and volumes from Charly and produce a file for each day and for let fileContent = JSON.stringify(dataRange); - let fileName = 'Data.Range.' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.Range.json'; let filePath = bot.filePathRoot + "/Output/" + pProductFolder + "/" + bot.process; filePath += '/' + fileName @@ -752,6 +763,13 @@ Read the candles and volumes from Charly and produce a file for each day and for logger.write(MODULE_NAME, "[INFO] start -> writeDataRange -> onFileCreated -> Content written = " + fileContent); } + let key = bot.dataMine + "-" + bot.codeName + "-" + pProductFolder + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset + let event = { + dateRange: dataRange + } + + global.SYSTEM_EVENT_HANDLER.raiseEvent(key, 'Data Range Updated', event) + callBack(global.DEFAULT_OK_RESPONSE); } } @@ -768,7 +786,7 @@ Read the candles and volumes from Charly and produce a file for each day and for try { - let reportKey = "AAMasters" + "-" + "AAOlivia" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + let reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; let thisReport = statusDependencies.statusReports.get(reportKey); thisReport.file.lastExecution = bot.processDatetime; diff --git a/Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/Multi-Period-Market/User.Bot.js b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Market/User.bot.js similarity index 93% rename from Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/Multi-Period-Market/User.Bot.js rename to Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Market/User.bot.js index 303749876..b7664236e 100644 --- a/Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/Multi-Period-Market/User.Bot.js +++ b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/Multi-Period-Market/User.bot.js @@ -1,4 +1,4 @@ -exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileStorage) { +exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_STORAGE) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -23,6 +23,7 @@ }; let utilities = UTILITIES.newCloudUtilities(bot, logger); + let fileStorage = FILE_STORAGE.newFileStorage(logger); let statusDependencies; let beginingOfMarket @@ -50,16 +51,16 @@ This process is going to do the following: - Read the candles and volumes from Charly and produce a single Index File for Market Period. But this is the situation: + Read the candles and volumes from Exchange Raw Data and produce a single Index File for Market Period. But this is the situation: - Charly has a dataset organized with daily files with candles of 1 min. Olivia is writting in this process a single file for each timeFrame for the whole market. + Exchange Raw Data has a dataset organized with daily files with candles of 1 min. Candles Volumes is writting in this process a single file for each timeFrame for the whole market. Everytime this process run, must be able to resume its job and process everything pending until reaching the head of the market. So the tactic to do this is the following: 1. First we need to read the last file written by this process, and load all the information into in-memory arrays. We will then append to this arrays the new - information we will get from Charly. + information we will get from Exchange Raw Data. - 2. We know from out status report which was the last DAY we processed from Charly, but we must be carefull, because that day mightn not have been complete, if the + 2. We know from out status report which was the last DAY we processed from Exchange Raw Data, but we must be carefull, because that day mightn not have been complete, if the last run found the head of the market. That means that we have to be carefull not to append candles that are already there. To simplify what we do is to discard all candles of the last processed day, and then we can process that full day again adding all the candles. @@ -93,9 +94,9 @@ let reportKey; let statusReport; - /* We look first for Charly in order to get when the market starts. */ + /* We look first for Exchange Raw Data in order to get when the market starts. */ - reportKey = "AAMasters" + "-" + "AACharly" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -129,9 +130,9 @@ contextVariables.firstTradeFile = new Date(thisReport.beginingOfMarket.year + "-" + thisReport.beginingOfMarket.month + "-" + thisReport.beginingOfMarket.days + " " + thisReport.beginingOfMarket.hours + ":" + thisReport.beginingOfMarket.minutes + GMT_SECONDS); - /* Second, we get the report from Charly, to know when the marted ends. */ + /* Second, we get the report from Exchange Raw Data, to know when the marted ends. */ - reportKey = "AAMasters" + "-" + "AACharly" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1" + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1" if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -166,7 +167,7 @@ /* Finally we get our own Status Report. */ - reportKey = "AAMasters" + "-" + "AAOlivia" + "-" + "Multi-Period-Market" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Market" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -269,7 +270,7 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> loopBody -> getCandles -> Entering function."); } - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.json'; let filePath = bot.filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + "/" + bot.process + "/" + timeFrame; filePath += '/' + fileName @@ -308,7 +309,7 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> loopBody -> getVolumes -> Entering function."); } - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.json'; let filePath = bot.filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + "/" + bot.process + "/" + timeFrame; filePath += '/' + fileName @@ -377,6 +378,9 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandles -> Entering function."); } + let fromDate = new Date(contextVariables.lastCandleFile.valueOf()) + let lastDate = new Date() + /* Firstly we prepere the arrays that will accumulate all the information for each output file. */ @@ -403,9 +407,7 @@ contextVariables.lastCandleFile = new Date(contextVariables.lastCandleFile.valueOf() + ONE_DAY_IN_MILISECONDS); if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandles -> advanceTime -> New processing time @ " + contextVariables.lastCandleFile.getUTCFullYear() + "/" + (contextVariables.lastCandleFile.getUTCMonth() + 1) + "/" + contextVariables.lastCandleFile.getUTCDate() + "."); } - - logger.newInternalLoop(bot.codeName, bot.process, contextVariables.lastCandleFile); - + /* Validation that we are not going past the head of the market. */ if (contextVariables.lastCandleFile.valueOf() > contextVariables.maxCandleFile.valueOf()) { @@ -416,6 +418,16 @@ return; } + /* Telling the world we are alive and doing well */ + let currentDateString = contextVariables.lastCandleFile.getUTCFullYear() + '-' + utilities.pad(contextVariables.lastCandleFile.getUTCMonth() + 1, 2) + '-' + utilities.pad(contextVariables.lastCandleFile.getUTCDate(), 2); + let currentDate = new Date(contextVariables.lastCandleFile) + 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); + } + periodsLoop(); } @@ -452,12 +464,12 @@ const timeFrame = global.marketFilesPeriods[n][1]; /* - Here we are inside a Loop that is going to advance 1 day at the time, at each pass, will ready one of Charly's daily files and + Here we are inside a Loop that is going to advance 1 day at the time, at each pass, will ready one of Exchange Raw Data's daily files and add all its candles to our in memory arrays. At the first iteration of this loop, we will add the candles that we are carrying from our previous run, the ones we already have in-memory. You can see below how we discard from those candles the ones that are belonging to the first day we are processing at this run, that it is exactly the same as the last day processed the privious run. By discarding these candles, we are ready to run after that standard function that will just add ALL the candles found each - day at Charly. + day at Exchange Raw Data. */ if (previousCandles !== undefined) { @@ -507,7 +519,7 @@ } /* - From here on is where every iteration of the loop fully runs. Here is where we read Charly's files and add their content to whatever + From here on is where every iteration of the loop fully runs. Here is where we read Exchange Raw Data's files and add their content to whatever we already have in our arrays in-memory. In this way the process will run as many days needed and it should only stop when it reaches the head of the market. */ @@ -519,8 +531,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandles -> periodsLoop -> loopBody -> nextCandleFile -> Entering function."); } let dateForPath = contextVariables.lastCandleFile.getUTCFullYear() + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCMonth() + 1, 2) + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - let filePathRoot = bot.dataMine + "/" + "AACharly" + "/" + bot.exchange; + let fileName = "Data.json" + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Exchange-Raw-Data"; let filePath = filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + '/' + CANDLES_ONE_MIN + '/' + dateForPath; filePath += '/' + fileName @@ -570,8 +582,8 @@ let beginingOutputTime = contextVariables.lastCandleFile.valueOf(); /* - The algorithm that follows is going to agregate candles of 1 min timeFrame read from Charly, into candles of each timeFrame - that Olivia generates. For market files those timePediods goes from 1h to 24hs. + The algorithm that follows is going to agregate candles of 1 min timeFrame read from Exchange Raw Data, into candles of each timeFrame + that Candles Volumes generates. For market files those timePediods goes from 1h to 24hs. */ for (let i = 0; i < totalOutputCandles; i++) { @@ -650,8 +662,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandles -> periodsLoop -> loopBody -> nextVolumeFile -> Entering function."); } let dateForPath = contextVariables.lastCandleFile.getUTCFullYear() + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCMonth() + 1, 2) + '/' + utilities.pad(contextVariables.lastCandleFile.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - let filePathRoot = bot.dataMine + "/" + "AACharly" + "/" + bot.exchange; + let fileName = "Data.json" + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Exchange-Raw-Data"; let filePath = filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + '/' + VOLUMES_ONE_MIN + '/' + dateForPath; filePath += '/' + fileName @@ -797,7 +809,7 @@ fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.json'; let filePath = bot.filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + "/" + bot.process + "/" + timeFrame; filePath += '/' + fileName @@ -847,7 +859,7 @@ fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.json'; let filePath = bot.filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + "/" + bot.process + "/" + timeFrame; filePath += '/' + fileName @@ -888,7 +900,7 @@ try { - let reportKey = "AAMasters" + "-" + "AAOlivia" + "-" + "Multi-Period-Market" + "-" + "dataSet.V1"; + let reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Market" + "-" + "dataSet.V1"; let thisReport = statusDependencies.statusReports.get(reportKey); thisReport.file.lastExecution = bot.processDatetime; diff --git a/Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/package.json b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/package.json similarity index 100% rename from Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/package.json rename to Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/package.json diff --git a/Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/this.bot.config.json b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/this.bot.config.json similarity index 78% rename from Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/this.bot.config.json rename to Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/this.bot.config.json index 816a24ce6..b1cc979c9 100644 --- a/Legacy-Code/AAMasters/bots/AAOlivia-Indicator-Bot/this.bot.config.json +++ b/Legacy-Code/Masters/bots/Candles-Volumes-Indicator-Bot/this.bot.config.json @@ -1,14 +1,14 @@ { - "displayName": "Olivia", - "codeName": "AAOlivia", + "displayName": "Candles Volumes", + "codeName": "Candles-Volumes", "type": "Indicator Bot", "version": { "major": 1, "minor": 0, "patch": 0 }, - "dataMine": "AAMasters", - "profilePicture": "Olivia.png", + "dataMine": "Masters", + "profilePicture": "Candles Volumes.png", "dataSetVersion": "dataSet.V1", "processes": [ { @@ -50,8 +50,8 @@ ], "statusDependencies": [ { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -60,8 +60,8 @@ "dataSetVersion": "dataSet.V1" }, { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -72,8 +72,8 @@ "waitUntilNextUpdate": true }, { - "dataMine": "AAMasters", - "bot": "AAOlivia", + "dataMine": "Masters", + "bot": "Candles-Volumes", "botVersion": { "major": 1, "minor": 0 @@ -122,8 +122,8 @@ ], "statusDependencies": [ { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -132,8 +132,8 @@ "dataSetVersion": "dataSet.V1" }, { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -144,8 +144,8 @@ "waitUntilNextUpdate": true }, { - "dataMine": "AAMasters", - "bot": "AAOlivia", + "dataMine": "Masters", + "bot": "Candles-Volumes", "botVersion": { "major": 1, "minor": 0 @@ -161,24 +161,24 @@ "codeName": "Candles", "displayName": "Candles", "description": "Two sets of files per period that contains candles.", - "storageAccount": "aaolivia", + "storageAccount": "Candles-Volumes", "shareWith": "Public", "dataSets": [ { "codeName": "Multi-Period-Market", "type": "Market Files", "validPeriods": [ "24-hs", "12-hs", "08-hs", "06-hs", "04-hs", "03-hs", "02-hs", "01-hs" ], - "filePath": "AAMasters/AAOlivia.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candles/Multi-Period-Market/@Period", + "filePath": "Masters/Candles-Volumes.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candles/Multi-Period-Market/@Period", "fileName": "@AssetA_@AssetB.json" }, { "codeName": "Multi-Period-Daily", "type": "Daily Files", "validPeriods": [ "45-min", "40-min", "30-min", "20-min", "15-min", "10-min", "05-min", "04-min", "03-min", "02-min", "01-min" ], - "filePath": "AAMasters/AAOlivia.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candles/Multi-Period-Daily/@Period/@Year/@Month/@Day", + "filePath": "Masters/Candles-Volumes.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candles/Multi-Period-Daily/@Period/@Year/@Month/@Day", "fileName": "@AssetA_@AssetB.json", "dataRange": { - "filePath": "AAMasters/AAOlivia.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candles/Multi-Period-Daily", + "filePath": "Masters/Candles-Volumes.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candles/Multi-Period-Daily", "fileName": "Data.Range.@AssetA_@AssetB.json" } } @@ -192,7 +192,7 @@ } ], "plotter": { - "dataMine": "AAMasters", + "dataMine": "Masters", "codeName": "PlottersCandlesVolumes", "moduleName": "Candles" } @@ -201,24 +201,24 @@ "codeName": "Volumes", "displayName": "Buy and Sell Volumes", "description": "Two sets of files per period that contains buy and sell volumes.", - "storageAccount": "aaolivia", + "storageAccount": "Candles-Volumes", "shareWith": "Public", "dataSets": [ { "codeName": "Multi-Period-Market", "type": "Market Files", "validPeriods": [ "24-hs", "12-hs", "08-hs", "06-hs", "04-hs", "03-hs", "02-hs", "01-hs" ], - "filePath": "AAMasters/AAOlivia.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volumes/Multi-Period-Market/@Period", + "filePath": "Masters/Candles-Volumes.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volumes/Multi-Period-Market/@Period", "fileName": "@AssetA_@AssetB.json" }, { "codeName": "Multi-Period-Daily", "type": "Daily Files", "validPeriods": [ "45-min", "40-min", "30-min", "20-min", "15-min", "10-min", "05-min", "04-min", "03-min", "02-min", "01-min" ], - "filePath": "AAMasters/AAOlivia.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volumes/Multi-Period-Daily/@Period/@Year/@Month/@Day", + "filePath": "Masters/Candles-Volumes.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volumes/Multi-Period-Daily/@Period/@Year/@Month/@Day", "fileName": "@AssetA_@AssetB.json", "dataRange": { - "filePath": "AAMasters/AAOlivia.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volumes/Multi-Period-Daily", + "filePath": "Masters/Candles-Volumes.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volumes/Multi-Period-Daily", "fileName": "Data.Range.@AssetA_@AssetB.json" } } @@ -232,7 +232,7 @@ } ], "plotter": { - "dataMine": "AAMasters", + "dataMine": "Masters", "codeName": "PlottersCandlesVolumes", "moduleName": "Volumes" } diff --git a/Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/Commons.js b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Commons.js similarity index 100% rename from Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/Commons.js rename to Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Commons.js diff --git a/Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/Historic-OHLCVs/User.Bot.js b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js similarity index 76% rename from Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/Historic-OHLCVs/User.Bot.js rename to Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js index 59205f905..95ac24263 100644 --- a/Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/Historic-OHLCVs/User.Bot.js +++ b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-OHLCVs/User.Bot.js @@ -1,5 +1,5 @@  -exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileStorage, STATUS_REPORT, EXCHANGE_API) { +exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_STORAGE, STATUS_REPORT, EXCHANGE_API) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -15,15 +15,19 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt }; let utilities = UTILITIES.newCloudUtilities(bot, logger) + let fileStorage = FILE_STORAGE.newFileStorage(logger); let statusDependencies const ONE_MIN = 60000 const ONE_DAY = ONE_MIN * 60 * 24 - const MAX_OHLCVs_PER_EXECUTION = 500000 + const MAX_OHLCVs_PER_EXECUTION = 10000000 const symbol = bot.market.baseAsset + '/' + bot.market.quotedAsset const ccxt = require('ccxt') + let fetchType = "by Time" + let lastId + let firstId let allOHLCVs = [] let thisReport; let since @@ -32,12 +36,13 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt let lastFile let exchangeId let options = {} - let firstId let rateLimit = 500 let exchange let uiStartDate = new Date(bot.uiStartDate) let fisrtTimeThisProcessRun = false let limit = 1000 // This is the default value + let hostname + let lastCandleOfTheDay return thisObject; @@ -51,10 +56,10 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt exchangeId = bot.exchange.toLowerCase() - /* Applying the parameters defined by the user at the Exchange node */ + /* 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 === 'fetchOHLCVs') { + if (bot.exchangeNode.code.API[i].method === 'fetch_ohlcv') { if (bot.exchangeNode.code.API[i].class !== undefined) { exchangeId = bot.exchangeNode.code.API[i].class } @@ -69,6 +74,12 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt if (bot.exchangeNode.code.API[i].rateLimit !== undefined) { rateLimit = bot.exchangeNode.code.API[i].rateLimit } + if (bot.exchangeNode.code.API[i].hostname !== undefined) { + hostname = bot.exchangeNode.code.API[i].hostname + } + if (bot.exchangeNode.code.API[i].fetchType !== undefined) { + fetchType = bot.exchangeNode.code.API[i].fetchType + } } } } @@ -96,6 +107,9 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt if (rateLimit !== undefined) { exchangeConstructorParams.rateLimit = rateLimit } + if (hostname !== undefined) { + exchangeConstructorParams.hostname = hostname + } exchange = new exchangeClass(exchangeConstructorParams) @@ -110,22 +124,6 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt function start(callBackFunction) { try { - let lastCandle = { - begin: 0, - end: 0, - open: 0, - close: 0, - min: 0, - max: 0 - } - - let lastVolume = { - begin: 0, - end: 0, - buy: 0, - sell: 0 - } - if (global.STOP_TASK_GRACEFULLY === true) { callBackFunction(global.DEFAULT_OK_RESPONSE); return @@ -138,6 +136,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt getContextVariables() if (abort === true) { return } + await getFirstId() await getOHLCVs() if (abort === true) { return } if (global.STOP_TASK_GRACEFULLY === true) { @@ -152,7 +151,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt try { let reportKey; - reportKey = "AAMasters" + "-" + "AACharly" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } if (statusDependencies.statusReports.get(reportKey).status === "Status Report is corrupt.") { @@ -166,6 +165,8 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt if (thisReport.file.beginingOfMarket !== undefined) { // This means this is not the first time this process run. beginingOfMarket = new Date(thisReport.file.beginingOfMarket.year + "-" + thisReport.file.beginingOfMarket.month + "-" + thisReport.file.beginingOfMarket.days + " " + thisReport.file.beginingOfMarket.hours + ":" + thisReport.file.beginingOfMarket.minutes + GMT_SECONDS); lastFile = new Date(thisReport.file.lastFile.year + "-" + thisReport.file.lastFile.month + "-" + thisReport.file.lastFile.days + " " + thisReport.file.lastFile.hours + ":" + thisReport.file.lastFile.minutes + GMT_SECONDS); + lastId = thisReport.file.lastId + lastCandleOfTheDay = thisReport.file.lastCandleOfTheDay } else { // This means this is the first time this process run. fisrtTimeThisProcessRun = true beginingOfMarket = new Date(uiStartDate.valueOf()) @@ -206,20 +207,69 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt } } + async function getFirstId() { + try { + /* We need the first id only when we are going to fetch trades based on id and it is the first time the process runs*/ + if (fetchType !== "by Id") { return } + if (lastId !== undefined) { return } + lastId = 0 + + return + /* + const limit = 1 + const exchangeClass = ccxt[exchangeId] + const exchange = new exchangeClass({ + 'timeout': 30000, + 'enableRateLimit': true, + verbose: false + }) + + const OHLCVs = await exchange.fetchOHLCV(symbol, '1m', since, limit, undefined) + + let lastRecord = OHLCVs[OHLCVs.length - 1] + lastId = lastRecord.info[firstId] + */ + } catch (err) { + /* If something fails trying to get an id close to since, we just will continue without an id.*/ + } + } + async function getOHLCVs() { try { let lastOHLCVKey = '' let params = undefined let previousSince + let fromDate = new Date(since) + let lastDate = new Date() while (true) { /* Reporting we are doing well */ - let processingDate = new Date(since) - processingDate = processingDate.getUTCFullYear() + '-' + utilities.pad(processingDate.getUTCMonth() + 1, 2) + '-' + utilities.pad(processingDate.getUTCDate(), 2); - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getOHLCVs -> Fetching OHLCVs @ " + processingDate + "-> exchange = " + bot.exchange + " -> symbol = " + symbol + " -> since = " + since + " -> limit = " + limit) } - bot.processHeartBeat("Fetching " + allOHLCVs.length.toFixed(0) + " OHLCVs from " + bot.exchange + " " + symbol + " @ " + processingDate) // tell the world we are alive and doing well + function heartBeat() { + let processingDate = new Date(since) + processingDate = processingDate.getUTCFullYear() + '-' + utilities.pad(processingDate.getUTCMonth() + 1, 2) + '-' + utilities.pad(processingDate.getUTCDate(), 2); + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getOHLCVs -> Fetching OHLCVs @ " + processingDate + "-> exchange = " + bot.exchange + " -> symbol = " + symbol + " -> since = " + since + " -> limit = " + limit) } + let heartBeatText = "Fetching " + allOHLCVs.length.toFixed(0) + " OHLCVs from " + bot.exchange + " " + symbol + " @ " + processingDate + let currentDate = new Date(since) + let percentage = global.getPercentage(fromDate, currentDate, lastDate) + bot.processHeartBeat(heartBeatText, percentage) // tell the world we are alive and doing well + if (global.areEqualDates(currentDate, new Date()) === false) { + logger.newInternalLoop(bot.codeName, bot.process, currentDate, percentage); + } + } + + heartBeat() + + /* Defining if we will query the exchange by Date or Id */ + if (fetchType === "by Id") { + /* + params = { + 'fromId': lastId + } + */ + since = lastId + } /* Fetching the OHLCVs from the exchange.*/ await new Promise(resolve => setTimeout(resolve, rateLimit)) // rate limit @@ -253,7 +303,8 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt let OHLCV = OHLCVs[0] initialProcessTimestamp = OHLCV[0] // 'timestamp' - beginingOfMarket = new Date(Math.trunc (OHLCV[0] / ONE_DAY) * ONE_DAY) // 'timestamp' + beginingOfMarket = new Date(Math.trunc(OHLCV[0] / ONE_DAY) * ONE_DAY) // 'timestamp' + fromDate = new Date(beginingOfMarket.valueOf()) fisrtTimeThisProcessRun = false } } @@ -264,6 +315,9 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt if (since === previousSince) { since++ // this prevents requesting in a loop OHLCVs with the same timestamp, that can happen when all the records fetched comes with exactly the same timestamp. } + + + lastId = OHLCVs[OHLCVs.length - 1]['id'] for (let i = 0; i < OHLCVs.length; i++) { @@ -276,9 +330,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt lastOHLCVKey = OHLCVKey } - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getOHLCVs -> Fetching OHLCVs @ " + processingDate + "-> exchange = " + bot.exchange + " -> symbol = " + symbol + " -> since = " + since + " -> limit = " + limit) } - bot.processHeartBeat("Fetching " + allOHLCVs.length.toFixed(0) + " OHLCVs from " + bot.exchange + " " + symbol + " @ " + processingDate) // tell the world we are alive and doing well - + heartBeat() } if ( @@ -313,8 +365,30 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt let error let separator let heartBeatCounter = 0 + let headOfTheMarketReached = false + + let lastCandle = { + begin: 0, + end: 0, + open: 0, + close: 0, + min: 0, + max: 0 + } + + let lastVolume = { + begin: 0, + end: 0, + buy: 0, + sell: 0 + } let i = 0 + lastId = undefined + + if (lastCandleOfTheDay !== undefined) { + lastCandle = JSON.parse(JSON.stringify(lastCandleOfTheDay)) + } controlLoop() @@ -324,7 +398,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt let filesCreated = 0 /* Go through all possible 1 min candles of a day. */ - for (let j = 0; j < 60 * 24; j++) { + for (let j = 0; j < 60 * 24; j++) { let candle = { begin: currentDay * ONE_DAY + ONE_MIN * j, @@ -341,16 +415,43 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt sell: lastVolume.sell } - let record = allOHLCVs[i] - let OHLCV = { - timestamp: record[0], - open: record[1], - hight: record[2], - low: record[3], - close: record[4], - volume: record[5] + let processingDate = new Date(candle.begin) + processingDate = processingDate.getUTCFullYear() + '-' + utilities.pad(processingDate.getUTCMonth() + 1, 2) + '-' + utilities.pad(processingDate.getUTCDate(), 2); + + if (candle.begin > (new Date()).valueOf()) { + /* We stop when the current candle is pointing to a time in the future.*/ + headOfTheMarketReached = true + saveFile(currentDay) + + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> saveOHLCVs -> Saving OHLCVs @ " + processingDate + " -> i = " + i + " -> total = " + allOHLCVs.length) } + bot.processHeartBeat("Saving " + i.toFixed(0) + " / " + allOHLCVs.length + " OHLCVs from " + bot.exchange + " " + symbol + " @ " + processingDate) // tell the world we are alive and doing well + + /* We exit the loop and we aint comming back*/ + return } + let OHLCV = { // these values should be overrided unless there are no OHLVCs fetched from the exchange. + timestamp: (new Date()).valueOf() + ONE_MIN, + open: 0, + hight: 0, + low: 0, + close: 0, + volume: 0 + } + + let record = allOHLCVs[i] + + if (record !== undefined) { // can be undefined if there is no candle fetched from the exchange + OHLCV = { + timestamp: record[0], + open: record[1], + hight: record[2], + low: record[3], + close: record[4], + volume: record[5] + } + } + let candleMinute = Math.trunc(candle.begin / ONE_MIN) let OHLCVMinute @@ -365,6 +466,11 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt OHLCVMinute = Math.trunc(OHLCV.timestamp / ONE_MIN) if (OHLCVMinute < candleMinute) { + if (i >= allOHLCVs.length - 1) { + /* We run out of OHLCVs, we can not move to the next OHLCV, we leave this function. */ + return + } + i++ record = allOHLCVs[i] OHLCV = { @@ -373,16 +479,15 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt hight: record[2], low: record[3], close: record[4], - volume: record[5] + volume: record[5], + id: record[6] } checkOHLCVMinute() } } /* Reporting we are doing well */ - let processingDate = new Date(candle.begin) - processingDate = processingDate.getUTCFullYear() + '-' + utilities.pad(processingDate.getUTCMonth() + 1, 2) + '-' + utilities.pad(processingDate.getUTCDate(), 2); - heartBeatCounter-- + heartBeatCounter-- if (heartBeatCounter <= 0) { heartBeatCounter = 1440 if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> saveOHLCVs -> Saving OHLCVs @ " + processingDate + " -> i = " + i + " -> total = " + allOHLCVs.length) } @@ -397,7 +502,13 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt candle.max = OHLCV.hight volume.buy = OHLCV.volume / 2 volume.sell = OHLCV.volume / 2 - i++ + + if (i < allOHLCVs.length - 1) { + i++ + } + + lastId = OHLCV.id + } lastCandle = candle @@ -409,45 +520,29 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt } /* Add the candle to the file content.*/ - candlesFileContent = candlesFileContent + separator + '[' + candle.min + "," + candle.max + "," + candle.open + "," + candle.close + "," + candle.begin + "," + candle.end + "]"; volumesFileContent = volumesFileContent + separator + '[' + volume.buy + "," + volume.sell + "," + volume.begin + "," + volume.end + "]"; - if (i === allOHLCVs.length) { - /* This was the last OHLCV, so we save the file.*/ - saveFile(currentDay) - /* It might happen that there are several days after the last OHLCV without OHLCVs. We need to record empty files for them.*/ - if (allOHLCVs.length < MAX_OHLCVs_PER_EXECUTION) { - let currentTimeDay = Math.trunc((new Date()).valueOf() / ONE_DAY) - if (currentTimeDay - currentDay > 1) { - createMissingEmptyFiles(currentDay, currentTimeDay) - } - } - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> saveOHLCVs -> Saving OHLCVs @ " + processingDate + " -> i = " + i + " -> total = " + allOHLCVs.length) } - bot.processHeartBeat("Saving " + i.toFixed(0) + " / " + allOHLCVs.length + " OHLCVs from " + bot.exchange + " " + symbol + " @ " + processingDate) // tell the world we are alive and doing well - - return + /* We store the last candle of the day in order to have a previous candles during next execution. */ + if (j === 1440 - 1) { + lastCandleOfTheDay = JSON.parse(JSON.stringify(candle)) } } + previousDay = currentDay + if (i > 0) { // Only start saving at the day of the first candle. saveFile(currentDay) - } - - previousDay = currentDay - if (error) { - callBackFunction(error); - return; - } + return + } + + controlLoop() function saveFile(day) { candlesFileContent = candlesFileContent + ']' volumesFileContent = volumesFileContent + ']' - if (currentDay - previousDay > 1) { - createMissingEmptyFiles(previousDay, currentDay) - } - let fileName = bot.market.baseAsset + '_' + bot.market.quotedAsset + '.json' + + let fileName = 'Data.json' filesToCreate++ fileStorage.createTextFile(getFilePath(day * ONE_DAY, CANDLES_FOLDER_NAME) + '/' + fileName, candlesFileContent + '\n', onFileCreated); @@ -460,26 +555,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt needSeparator = false } - function createMissingEmptyFiles(begin, end) { - /* - If this range is too wide, we will consider this means that the begin is before the begining of this market at this exchange. - In that case we will change the begin and the beginingOfMarket - */ - - if ((end - begin) > 7) { - begin = end - beginingOfMarket = new Date(end * ONE_DAY) - } - - for (let j = begin + 1; j < end; j++) { - let fileName = bot.market.baseAsset + '_' + bot.market.quotedAsset + '.json' - filesToCreate++ - fileStorage.createTextFile(getFilePath(j * ONE_DAY, CANDLES_FOLDER_NAME) + '/' + fileName, "[]" + '\n', onFileCreated); - filesToCreate++ - fileStorage.createTextFile(getFilePath(j * ONE_DAY, VOLUMES_FOLDER_NAME) + '/' + fileName, "[]" + '\n', onFileCreated); - } - } function onFileCreated(err) { if (err.result !== global.DEFAULT_OK_RESPONSE.result) { logger.write(MODULE_NAME, "[ERROR] start -> OHLCVsReadyToBeSaved -> onFileBCreated -> err = " + JSON.stringify(err)); @@ -492,6 +568,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt controlLoop() } } + function getFilePath(timestamp, folderName) { let datetime = new Date(timestamp) let dateForPath = datetime.getUTCFullYear() + '/' + @@ -500,8 +577,6 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt let filePath = bot.filePathRoot + "/Output/" + folderName + '/' + dateForPath; return filePath } - - } function controlLoop() { @@ -510,8 +585,14 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt return } + if (error) { + callBackFunction(error); + return; + } + currentDay++ - if (i < allOHLCVs.length) { + + if (headOfTheMarketReached === false) { setImmediate(loop) } else { writeStatusReport() @@ -543,9 +624,14 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt hours: beginingOfMarket.getUTCHours(), minutes: beginingOfMarket.getUTCMinutes() }, - uiStartDate: uiStartDate.toUTCString() + uiStartDate: uiStartDate.toUTCString(), + lastCandleOfTheDay: lastCandleOfTheDay }; + if (fetchType === "by Id") { + thisReport.file.lastId = lastId + } + thisReport.save(onSaved); function onSaved(err) { diff --git a/Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/Historic-Trades/User.Bot.js b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-Trades/User.Bot.js similarity index 98% rename from Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/Historic-Trades/User.Bot.js rename to Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-Trades/User.Bot.js index 3e2470b0e..3b5ddff99 100644 --- a/Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/Historic-Trades/User.Bot.js +++ b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/Historic-Trades/User.Bot.js @@ -1,5 +1,5 @@  -exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileStorage, STATUS_REPORT, EXCHANGE_API) { +exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_STORAGE, STATUS_REPORT, EXCHANGE_API) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -14,6 +14,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt }; let utilities = UTILITIES.newCloudUtilities(bot, logger) + let fileStorage = FILE_STORAGE.newFileStorage(logger); let statusDependencies const ONE_MINUTE = 60000 @@ -135,7 +136,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt try { let reportKey; - reportKey = "AAMasters" + "-" + "AACharly" + "-" + "Historic-Trades" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-Trades" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } if (statusDependencies.statusReports.get(reportKey).status === "Status Report is corrupt.") { @@ -376,7 +377,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt if (currentRecordMinute - previousRecordMinute > 1) { createMissingEmptyFiles(previousRecordMinute, currentRecordMinute) } - let fileName = bot.market.baseAsset + '_' + bot.market.quotedAsset + '.json' + let fileName = 'Data.json' if (previousRecordMinute >= initialProcessTimestamp / ONE_MINUTE) { filesToCreate++ fileStorage.createTextFile(getFilePath(minute * ONE_MINUTE) + '/' + fileName, fileContent + '\n', onFileCreated); @@ -398,7 +399,7 @@ exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileSt } for (let j = begin + 1; j < end; j++) { - let fileName = bot.market.baseAsset + '_' + bot.market.quotedAsset + '.json' + let fileName = 'Data.json' filesToCreate++ fileStorage.createTextFile(getFilePath(j * ONE_MINUTE) + '/' + fileName, "[]" + '\n', onFileCreated); diff --git a/Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/package-lock.json b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/package-lock.json similarity index 100% rename from Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/package-lock.json rename to Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/package-lock.json diff --git a/Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/package.json b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/package.json similarity index 100% rename from Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/package.json rename to Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/package.json diff --git a/Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/this.bot.config.json b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/this.bot.config.json similarity index 85% rename from Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/this.bot.config.json rename to Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/this.bot.config.json index 88e4476c6..c2ca69340 100644 --- a/Legacy-Code/AAMasters/bots/AACharly-Sensor-Bot/this.bot.config.json +++ b/Legacy-Code/Masters/bots/Exchange-Raw-Data-Sensor-Bot/this.bot.config.json @@ -1,14 +1,14 @@ { - "displayName": "Charly", - "codeName": "AACharly", + "displayName": "Exchange Raw Data", + "codeName": "Exchange-Raw-Data", "type": "Sensor Bot", "version": { "major": 1, "minor": 0, "patch": 0 }, - "dataMine": "AAMasters", - "profilePicture": "Charly.png", + "dataMine": "Masters", + "profilePicture": "Exchange Raw Data.png", "dataSetVersion": "dataSet.V1", "processes": [ { @@ -40,8 +40,8 @@ "comaWaitTime": 86400000, "statusDependencies": [ { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -80,8 +80,8 @@ "comaWaitTime": 86400000, "statusDependencies": [ { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -90,8 +90,8 @@ "dataSetVersion": "dataSet.V1" }, { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -130,8 +130,8 @@ "comaWaitTime": 86400000, "statusDependencies": [ { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -141,8 +141,8 @@ "waitUntilNextUpdate": true }, { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -151,8 +151,8 @@ "dataSetVersion": "dataSet.V1" }, { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -162,8 +162,8 @@ "dataSetSection": "Month" }, { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 diff --git a/Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/Json.json b/Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/Json.json similarity index 100% rename from Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/Json.json rename to Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/Json.json diff --git a/Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/Multi-Period-Daily/User.Bot.js b/Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/Multi-Period-Daily/User.Bot.js similarity index 95% rename from Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/Multi-Period-Daily/User.Bot.js rename to Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/Multi-Period-Daily/User.Bot.js index 35f8ecf7b..7a19c75d4 100644 --- a/Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/Multi-Period-Daily/User.Bot.js +++ b/Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/Multi-Period-Daily/User.Bot.js @@ -1,4 +1,4 @@ -exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileStorage) { +exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_STORAGE) { const FULL_LOG = true; const INTENSIVE_LOG = false; @@ -24,6 +24,7 @@ }; let utilities = UTILITIES.newCloudUtilities(bot, logger); + let fileStorage = FILE_STORAGE.newFileStorage(logger); let statusDependencies; let beginingOfMarket @@ -52,7 +53,7 @@ This process is going to do the following: - Read the candles and volumes from Olivia and produce for each market two files with candles stairs and volumes stairs respectively. + Read the candles and volumes from Candles Volumes and produce for each market two files with candles stairs and volumes stairs respectively. */ @@ -92,9 +93,9 @@ let reportKey; let statusReport; - /* We look first for Charly in order to get when the market starts. */ + /* We look first for Exchange Raw Data in order to get when the market starts. */ - reportKey = "AAMasters" + "-" + "AACharly" + "-" + "Historic-Trades" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Exchange-Raw-Data" + "-" + "Historic-OHLCVs" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -128,9 +129,9 @@ contextVariables.firstTradeFile = new Date(thisReport.beginingOfMarket.year + "-" + thisReport.beginingOfMarket.month + "-" + thisReport.beginingOfMarket.days + " " + thisReport.beginingOfMarket.hours + ":" + thisReport.beginingOfMarket.minutes + GMT_SECONDS); - /* Second, we get the report from Olivia, to know when the marted ends. */ + /* Second, we get the report from Candles Volumes, to know when the marted ends. */ - reportKey = "AAMasters" + "-" + "AAOlivia" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Candles-Volumes" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -165,7 +166,7 @@ /* Finally we get our own Status Report. */ - reportKey = "AAMasters" + "-" + "AATom" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + reportKey = "Masters" + "-" + "Stairs-Patterns" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> getContextVariables -> reportKey = " + reportKey); } statusReport = statusDependencies.statusReports.get(reportKey); @@ -254,6 +255,8 @@ let n; processDate = new Date(contextVariables.lastCandleFile.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(processDate.valueOf()) + let lastDate = new Date() if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildStairs -> processDate = " + processDate); } advanceTime(); @@ -262,8 +265,6 @@ try { - logger.newInternalLoop(bot.codeName, bot.process); - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildStairs -> advanceTime -> Entering function."); } processDate = new Date(processDate.valueOf() + ONE_DAY_IN_MILISECONDS); @@ -284,6 +285,16 @@ } + /* Telling the world we are alive and doing well */ + let currentDateString = processDate.getUTCFullYear() + '-' + utilities.pad(processDate.getUTCMonth() + 1, 2) + '-' + utilities.pad(processDate.getUTCDate(), 2); + let currentDate = new Date(processDate) + 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); + } + periodsLoop(); } catch (err) { @@ -353,10 +364,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildStairs -> loopBody -> getEndOfLastCandleStair -> getCandleStairsFile -> Entering function."); } let dateForPath = fileDate.getUTCFullYear() + '/' + utilities.pad(fileDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(fileDate.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + CANDLE_STAIRS_FOLDER_NAME + '/' + "Multi-Period-Daily" + "/" + timeFrame + "/" + dateForPath; + let fileName = "Data.json" + let filePath = bot.filePathRoot + "/Output/" + CANDLE_STAIRS_FOLDER_NAME + '/' + "Multi-Period-Daily" + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName fileStorage.getTextFile(filePath, onFileReceived); @@ -430,10 +439,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildStairs -> loopBody -> getEndOfLastVolumeStair -> getCandleStairsFile -> Entering function."); } let dateForPath = fileDate.getUTCFullYear() + '/' + utilities.pad(fileDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(fileDate.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + VOLUME_STAIRS_FOLDER_NAME + '/' + "Multi-Period-Daily" + "/" + timeFrame + "/" + dateForPath; + let fileName = "Data.json" + let filePath = bot.filePathRoot + "/Output/" + VOLUME_STAIRS_FOLDER_NAME + '/' + "Multi-Period-Daily" + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName fileStorage.getTextFile(filePath, onFileReceived); @@ -533,9 +540,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildStairs -> loopBody -> processCandles -> getCandleStairsFile -> Entering function."); } let dateForPath = previousDay.getUTCFullYear() + '/' + utilities.pad(previousDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(previousDay.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - - let filePathRoot = bot.dataMine + "/" + "AAOlivia" + "/" + bot.exchange; + let fileName = "Data.json" + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Candles-Volumes"; let filePath = filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + '/' + "Multi-Period-Daily" + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName @@ -573,9 +579,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildStairs -> loopBody -> processCandles -> getProcessDayFile -> Entering function."); } let dateForPath = processDate.getUTCFullYear() + '/' + utilities.pad(processDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(processDate.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - - let filePathRoot = bot.dataMine + "/" + "AAOlivia" + "/" + bot.exchange; + let fileName = "Data.json" + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Candles-Volumes"; let filePath = filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + '/' + "Multi-Period-Daily" + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName @@ -653,9 +658,9 @@ candle.begin = candlesFile[i][4]; candle.end = candlesFile[i][5]; - if (candle.open > candle.close) { candle.direction = 'down'; } - if (candle.open < candle.close) { candle.direction = 'up'; } - if (candle.open === candle.close) { candle.direction = 'side'; } + if (candle.open > candle.close) { candle.direction = 'Down'; } + if (candle.open < candle.close) { candle.direction = 'Up'; } + if (candle.open === candle.close) { candle.direction = 'Side'; } candles.push(candle); } @@ -689,7 +694,7 @@ let currentCandle = candles[i]; let nextCandle = candles[i + 1]; - if (currentCandle.direction === nextCandle.direction && currentCandle.direction !== 'side') { + if (currentCandle.direction === nextCandle.direction && currentCandle.direction !== 'Side') { if (stairs === undefined) { @@ -720,7 +725,7 @@ if (currentCandle.min < nextCandle.min) { stairs.min = currentCandle.min; } else { stairs.min = nextCandle.min; } if (currentCandle.max > nextCandle.max) { stairs.max = currentCandle.max; } else { stairs.max = nextCandle.max; } - if (stairs.direction === 'up') { + if (stairs.direction === 'Up') { stairs.firstMin = currentCandle.open; stairs.firstMax = currentCandle.close; @@ -748,7 +753,7 @@ if (stairs.min < nextCandle.min) { stairs.min = currentCandle.min; } if (stairs.max > nextCandle.max) { stairs.max = currentCandle.max; } - if (stairs.direction === 'up') { + if (stairs.direction === 'Up') { stairs.lastMin = nextCandle.open; stairs.lastMax = nextCandle.close; @@ -871,10 +876,9 @@ fileContent = "[" + fileContent + "]"; let dateForPath = pDate.getUTCFullYear() + '/' + utilities.pad(pDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(pDate.getUTCDate(), 2); - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.json'; - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + CANDLE_STAIRS_FOLDER_NAME + "/" + bot.process + "/" + timeFrame + "/" + dateForPath; + let filePath = bot.filePathRoot + "/Output/" + CANDLE_STAIRS_FOLDER_NAME + "/" + bot.process + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -947,9 +951,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildStairs -> loopBody -> processVolumes -> getCandleStairsFile -> Entering function."); } let dateForPath = previousDay.getUTCFullYear() + '/' + utilities.pad(previousDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(previousDay.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - - let filePathRoot = bot.dataMine + "/" + "AAOlivia" + "/" + bot.exchange; + let fileName = "Data.json" + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Candles-Volumes"; let filePath = filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + '/' + "Multi-Period-Daily" + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName @@ -987,9 +990,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildStairs -> loopBody -> processVolumes -> getProcessDayFile -> Entering function."); } let dateForPath = processDate.getUTCFullYear() + '/' + utilities.pad(processDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(processDate.getUTCDate(), 2); - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" - - let filePathRoot = bot.dataMine + "/" + "AAOlivia" + "/" + bot.exchange; + let fileName = "Data.json" + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Candles-Volumes"; let filePath = filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + '/' + "Multi-Period-Daily" + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName @@ -1114,7 +1116,7 @@ }; buyUpStairs.type = 'buy'; - buyUpStairs.direction = 'up'; + buyUpStairs.direction = 'Up'; buyUpStairs.barsCount = 2; buyUpStairs.begin = currentVolume.begin; @@ -1161,7 +1163,7 @@ }; buyDownStairs.type = 'buy'; - buyDownStairs.direction = 'down'; + buyDownStairs.direction = 'Down'; buyDownStairs.barsCount = 2; buyDownStairs.begin = currentVolume.begin; @@ -1208,7 +1210,7 @@ }; sellUpStairs.type = 'sell'; - sellUpStairs.direction = 'up'; + sellUpStairs.direction = 'Up'; sellUpStairs.barsCount = 2; sellUpStairs.begin = currentVolume.begin; @@ -1255,7 +1257,7 @@ }; sellDownStairs.type = 'sell'; - sellDownStairs.direction = 'down'; + sellDownStairs.direction = 'Down'; sellDownStairs.barsCount = 2; sellDownStairs.begin = currentVolume.begin; @@ -1416,10 +1418,8 @@ fileContent = "[" + fileContent + "]"; let dateForPath = pDate.getUTCFullYear() + '/' + utilities.pad(pDate.getUTCMonth() + 1, 2) + '/' + utilities.pad(pDate.getUTCDate(), 2); - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + VOLUME_STAIRS_FOLDER_NAME + "/" + bot.process + "/" + timeFrame + "/" + dateForPath; + let fileName = 'Data.json'; + let filePath = bot.filePathRoot + "/Output/" + VOLUME_STAIRS_FOLDER_NAME + "/" + bot.process + "/" + timeFrame + "/" + dateForPath; filePath += '/' + fileName fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -1581,7 +1581,7 @@ let fileContent = JSON.stringify(dataRange); - let fileName = 'Data.Range.' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.Range.json'; let filePath = bot.filePathRoot + "/Output/" + pProductFolder + "/" + bot.process; filePath += '/' + fileName @@ -1601,6 +1601,13 @@ logger.write(MODULE_NAME, "[INFO] start -> writeDataRange -> onFileCreated -> Content written = " + fileContent); } + let key = bot.dataMine + "-" + bot.codeName + "-" + pProductFolder + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset + let event = { + dateRange: dataRange + } + + global.SYSTEM_EVENT_HANDLER.raiseEvent(key, 'Data Range Updated', event) + callBack(global.DEFAULT_OK_RESPONSE); } } @@ -1617,7 +1624,7 @@ try { - let reportKey = "AAMasters" + "-" + "AATom" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; + let reportKey = "Masters" + "-" + "Stairs-Patterns" + "-" + "Multi-Period-Daily" + "-" + "dataSet.V1"; let thisReport = statusDependencies.statusReports.get(reportKey); thisReport.file.lastExecution = bot.processDatetime; diff --git a/Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/Multi-Period-Market/User.Bot.js b/Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/Multi-Period-Market/User.Bot.js similarity index 95% rename from Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/Multi-Period-Market/User.Bot.js rename to Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/Multi-Period-Market/User.Bot.js index bc193bb89..3c79011eb 100644 --- a/Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/Multi-Period-Market/User.Bot.js +++ b/Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/Multi-Period-Market/User.Bot.js @@ -1,4 +1,4 @@ -exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, fileStorage) { +exports.newUserBot = function newUserBot(bot, logger, COMMONS, UTILITIES, FILE_STORAGE) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -23,6 +23,8 @@ }; let statusDependencies; + let utilities = UTILITIES.newCloudUtilities(bot, logger); + let fileStorage = FILE_STORAGE.newFileStorage(logger); return thisObject; @@ -48,7 +50,7 @@ This process is going to do the following: - Read the candles and volumes from Olivia and produce for each market two files with candles stairs and volumes stairs respectively. + Read the candles and volumes from Candles Volumes and produce for each market two files with candles stairs and volumes stairs respectively. */ @@ -112,9 +114,9 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildStairs -> loopBody -> nextCandleFile -> Entering function."); } - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json"; + let fileName = "Data.json"; - let filePathRoot = bot.dataMine + "/" + "AAOlivia" + "/" + bot.exchange; + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Candles-Volumes"; let filePath = filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; filePath += '/' + fileName @@ -169,9 +171,9 @@ candle.begin = marketFile[i][4]; candle.end = marketFile[i][5]; - if (candle.open > candle.close) { candle.direction = 'down'; } - if (candle.open < candle.close) { candle.direction = 'up'; } - if (candle.open === candle.close) { candle.direction = 'side'; } + if (candle.open > candle.close) { candle.direction = 'Down'; } + if (candle.open < candle.close) { candle.direction = 'Up'; } + if (candle.open === candle.close) { candle.direction = 'Side'; } candles.push(candle); @@ -201,7 +203,7 @@ let currentCandle = candles[i]; let nextCandle = candles[i + 1]; - if (currentCandle.direction === nextCandle.direction && currentCandle.direction !== 'side') { + if (currentCandle.direction === nextCandle.direction && currentCandle.direction !== 'Side') { if (stairs === undefined) { @@ -232,7 +234,7 @@ if (currentCandle.min < nextCandle.min) { stairs.min = currentCandle.min; } else { stairs.min = nextCandle.min; } if (currentCandle.max > nextCandle.max) { stairs.max = currentCandle.max; } else { stairs.max = nextCandle.max; } - if (stairs.direction === 'up') { + if (stairs.direction === 'Up') { stairs.firstMin = currentCandle.open; stairs.firstMax = currentCandle.close; @@ -260,7 +262,7 @@ if (stairs.min < nextCandle.min) { stairs.min = currentCandle.min; } if (stairs.max > nextCandle.max) { stairs.max = currentCandle.max; } - if (stairs.direction === 'up') { + if (stairs.direction === 'Up') { stairs.lastMin = nextCandle.open; stairs.lastMax = nextCandle.close; @@ -328,10 +330,8 @@ fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + CANDLE_STAIRS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; + let fileName = 'Data.json'; + let filePath = bot.filePathRoot + "/Output/" + CANDLE_STAIRS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; filePath += '/' + fileName fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -388,9 +388,9 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildStairs -> loopBody -> nextVolumeFile -> Entering function."); } - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json" + let fileName = "Data.json" - let filePathRoot = bot.dataMine + "/" + "AAOlivia" + "/" + bot.exchange; + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + bot.dataMine + "/" + "Candles-Volumes"; let filePath = filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; filePath += '/' + fileName @@ -486,7 +486,7 @@ }; buyUpStairs.type = 'buy'; - buyUpStairs.direction = 'up'; + buyUpStairs.direction = 'Up'; buyUpStairs.barsCount = 2; buyUpStairs.begin = currentVolume.begin; @@ -533,7 +533,7 @@ }; buyDownStairs.type = 'buy'; - buyDownStairs.direction = 'down'; + buyDownStairs.direction = 'Down'; buyDownStairs.barsCount = 2; buyDownStairs.begin = currentVolume.begin; @@ -580,7 +580,7 @@ }; sellUpStairs.type = 'sell'; - sellUpStairs.direction = 'up'; + sellUpStairs.direction = 'Up'; sellUpStairs.barsCount = 2; sellUpStairs.begin = currentVolume.begin; @@ -627,7 +627,7 @@ }; sellDownStairs.type = 'sell'; - sellDownStairs.direction = 'down'; + sellDownStairs.direction = 'Down'; sellDownStairs.barsCount = 2; sellDownStairs.begin = currentVolume.begin; @@ -698,10 +698,8 @@ fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + VOLUME_STAIRS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; + let fileName = 'Data.json'; + let filePath = bot.filePathRoot + "/Output/" + VOLUME_STAIRS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrame; filePath += '/' + fileName fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -790,12 +788,21 @@ try { - let reportKey = "AAMasters" + "-" + "AATom" + "-" + "Multi-Period-Market" + "-" + "dataSet.V1"; + let reportKey = "Masters" + "-" + "Stairs-Patterns" + "-" + "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)) } catch (err) { logger.write(MODULE_NAME, "[ERROR] start -> writeStatusReport -> err = " + err.stack); diff --git a/Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/package.json b/Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/package.json similarity index 88% rename from Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/package.json rename to Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/package.json index 11cc6a7f1..6a1cc344a 100644 --- a/Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/package.json +++ b/Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/package.json @@ -1,5 +1,5 @@ { - "name": "AAToma", + "name": "Stairs-Patternsa", "version": "1.0.0", "description": "", "main": "index.js", diff --git a/Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/this.bot.config.json b/Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/this.bot.config.json similarity index 78% rename from Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/this.bot.config.json rename to Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/this.bot.config.json index 2b9156602..064bff527 100644 --- a/Legacy-Code/AAMasters/bots/AATom-Indicator-Bot/this.bot.config.json +++ b/Legacy-Code/Masters/bots/Stairs-Patterns-Indicator-Bot/this.bot.config.json @@ -1,14 +1,14 @@ { - "displayName": "Tom", - "codeName": "AATom", + "displayName": "Stairs Patterns", + "codeName": "Stairs-Patterns", "type": "Indicator Bot", "version": { "major": 1, "minor": 0, "patch": 0 }, - "dataMine": "AAMasters", - "profilePicture": "Tom.png", + "dataMine": "Masters", + "profilePicture": "Stairs Patterns.png", "dataSetVersion": "dataSet.V1", "processes": [ { @@ -50,8 +50,8 @@ ], "statusDependencies": [ { - "dataMine": "AAMasters", - "bot": "AATom", + "dataMine": "Masters", + "bot": "Stairs-Patterns", "botVersion": { "major": 1, "minor": 0 @@ -60,8 +60,8 @@ "dataSetVersion": "dataSet.V1" }, { - "dataMine": "AAMasters", - "bot": "AAOlivia", + "dataMine": "Masters", + "bot": "Candles-Volumes", "botVersion": { "major": 1, "minor": 0 @@ -111,8 +111,8 @@ ], "statusDependencies": [ { - "dataMine": "AAMasters", - "bot": "AACharly", + "dataMine": "Masters", + "bot": "Exchange-Raw-Data", "botVersion": { "major": 1, "minor": 0 @@ -121,8 +121,8 @@ "dataSetVersion": "dataSet.V1" }, { - "dataMine": "AAMasters", - "bot": "AAOlivia", + "dataMine": "Masters", + "bot": "Candles-Volumes", "botVersion": { "major": 1, "minor": 0 @@ -132,8 +132,8 @@ "waitUntilNextUpdate": true }, { - "dataMine": "AAMasters", - "bot": "AATom", + "dataMine": "Masters", + "bot": "Stairs-Patterns", "botVersion": { "major": 1, "minor": 0 @@ -149,24 +149,24 @@ "codeName": "Candle-Stairs", "displayName": "Candle-Stairs Patters", "description": "Two sets of files per period that contains candle-stairs patterns.", - "storageAccount": "aatom", + "storageAccount": "Stairs-Patterns", "shareWith": "Public", "dataSets": [ { "codeName": "Multi-Period-Market", "type": "Market Files", "validPeriods": [ "24-hs", "12-hs", "08-hs", "06-hs", "04-hs", "03-hs", "02-hs", "01-hs" ], - "filePath": "AAMasters/AATom.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candle-Stairs/Multi-Period-Market/@Period", + "filePath": "Masters/Stairs-Patterns.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candle-Stairs/Multi-Period-Market/@Period", "fileName": "@AssetA_@AssetB.json" }, { "codeName": "Multi-Period-Daily", "type": "Daily Files", "validPeriods": [ "45-min", "40-min", "30-min", "20-min", "15-min", "10-min", "05-min", "04-min", "03-min", "02-min", "01-min" ], - "filePath": "AAMasters/AATom.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candle-Stairs/Multi-Period-Daily/@Period/@Year/@Month/@Day", + "filePath": "Masters/Stairs-Patterns.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candle-Stairs/Multi-Period-Daily/@Period/@Year/@Month/@Day", "fileName": "@AssetA_@AssetB.json", "dataRange": { - "filePath": "AAMasters/AATom.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candle-Stairs/Multi-Period-Daily", + "filePath": "Masters/Stairs-Patterns.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Candle-Stairs/Multi-Period-Daily", "fileName": "Data.Range.@AssetA_@AssetB.json" } } @@ -180,7 +180,7 @@ } ], "plotter": { - "dataMine": "AAMasters", + "dataMine": "Masters", "codeName": "PlottersStairsPatterns", "moduleName": "CandleStairs" } @@ -189,24 +189,24 @@ "codeName": "Volume-Stairs", "displayName": "Volume-Stairs Patters", "description": "Two sets of files per period that contains volume-stairs patterns.", - "storageAccount": "aatom", + "storageAccount": "Stairs-Patterns", "shareWith": "Public", "dataSets": [ { "codeName": "Multi-Period-Market", "type": "Market Files", "validPeriods": [ "24-hs", "12-hs", "08-hs", "06-hs", "04-hs", "03-hs", "02-hs", "01-hs" ], - "filePath": "AAMasters/AATom.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volume-Stairs/Multi-Period-Market/@Period", + "filePath": "Masters/Stairs-Patterns.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volume-Stairs/Multi-Period-Market/@Period", "fileName": "@AssetA_@AssetB.json" }, { "codeName": "Multi-Period-Daily", "type": "Daily Files", "validPeriods": [ "45-min", "40-min", "30-min", "20-min", "15-min", "10-min", "05-min", "04-min", "03-min", "02-min", "01-min" ], - "filePath": "AAMasters/AATom.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volume-Stairs/Multi-Period-Daily/@Period/@Year/@Month/@Day", + "filePath": "Masters/Stairs-Patterns.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volume-Stairs/Multi-Period-Daily/@Period/@Year/@Month/@Day", "fileName": "@AssetA_@AssetB.json", "dataRange": { - "filePath": "AAMasters/AATom.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volume-Stairs/Multi-Period-Daily", + "filePath": "Masters/Stairs-Patterns.1.0/AACloud.1.1/@Exchange/dataSet.V1/Output/Volume-Stairs/Multi-Period-Daily", "fileName": "Data.Range.@AssetA_@AssetB.json" } } @@ -220,7 +220,7 @@ } ], "plotter": { - "dataMine": "AAMasters", + "dataMine": "Masters", "codeName": "PlottersStairsPatterns", "moduleName": "VolumeStairs" } diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/BollingerBands.js b/Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/BollingerBands.js similarity index 99% rename from Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/BollingerBands.js rename to Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/BollingerBands.js index d626b8f29..684bd9688 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/BollingerBands.js +++ b/Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/BollingerBands.js @@ -1,4 +1,4 @@ -function newAAMastersPlottersBollingerBandsBollingerBands() { +function newMastersPlottersBollingerBandsBollingerBands() { const MODULE_NAME = "Bands Plotter"; const ERROR_LOG = true; diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/BollingerBandsPanel.js b/Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/BollingerBandsPanel.js similarity index 78% rename from Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/BollingerBandsPanel.js rename to Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/BollingerBandsPanel.js index 75c9543d3..cf23bada6 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/BollingerBandsPanel.js +++ b/Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/BollingerBandsPanel.js @@ -1,5 +1,5 @@  -function newAAMastersPlottersBollingerBandsBollingerBandsBollingerBandsPanel () { +function newMastersPlottersBollingerBandsBollingerBandsBollingerBandsPanel () { var thisObject = { fitFunction: undefined, @@ -17,7 +17,7 @@ function newAAMastersPlottersBollingerBandsBollingerBandsBollingerBandsPanel () thisObject.container.frame.containerName = "Bollinger Band"; let currentBand; - let panelTabButton + let upDownButton return thisObject; @@ -28,8 +28,8 @@ function newAAMastersPlottersBollingerBandsBollingerBandsBollingerBandsPanel () thisObject.isVisible = undefined currentBand = undefined - panelTabButton.finalize() - panelTabButton = undefined + upDownButton.finalize() + upDownButton = undefined } function initialize() { @@ -40,18 +40,18 @@ function newAAMastersPlottersBollingerBandsBollingerBandsBollingerBandsPanel () thisObject.container.frame.position.x = canvas.chartingSpace.viewport.visibleArea.topRight.x - thisObject.container.frame.width * 3; thisObject.container.frame.position.y = canvas.chartingSpace.viewport.visibleArea.bottomLeft.y - thisObject.container.frame.height; - panelTabButton = newPanelTabButton() - panelTabButton.parentContainer = thisObject.container - panelTabButton.container.frame.parentFrame = thisObject.container.frame - panelTabButton.fitFunction = thisObject.fitFunction - panelTabButton.initialize() + 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 = panelTabButton.getContainer(point) + container = upDownButton.getContainer(point) if (container !== undefined) { return container } if (thisObject.container.frame.isThisPointHere(point, true) === true) { @@ -83,7 +83,7 @@ function newAAMastersPlottersBollingerBandsBollingerBandsBollingerBandsPanel () plotCurrentBandInfo(); - panelTabButton.draw() + upDownButton.draw() } @@ -118,8 +118,6 @@ function newAAMastersPlottersBollingerBandsBollingerBandsBollingerBandsPanel () y: Y_AXIS - currentBand.rightBodyHeight / 2 + currentBand.bottomDelta / 4 }; - - /* Extra bounderies due to constrained space */ const upperLimit = frameTitleHeight + frameBodyHeight * 0.15; @@ -131,6 +129,15 @@ function newAAMastersPlottersBollingerBandsBollingerBandsBollingerBandsPanel () if (bandPoint2.y < upperLimit) { bandPoint2.y = upperLimit; } if (bandPoint3.y < upperLimit) { bandPoint3.y = upperLimit; } + const leftLimit = thisObject.container.frame.width * 0.40; + const rightLimit = thisObject.container.frame.width * 0.60; + + if (bandPoint1.x < leftLimit) { bandPoint1.x = leftLimit; } + if (bandPoint2.x < leftLimit) { bandPoint2.x = leftLimit; } + + if (bandPoint3.x > rightLimit) { bandPoint3.x = rightLimit; } + if (bandPoint4.x > rightLimit) { bandPoint4.x = rightLimit; } + bandPoint1 = thisObject.container.frame.frameThisPoint(bandPoint1); bandPoint2 = thisObject.container.frame.frameThisPoint(bandPoint2); bandPoint3 = thisObject.container.frame.frameThisPoint(bandPoint3); @@ -190,54 +197,16 @@ function newAAMastersPlottersBollingerBandsBollingerBandsBollingerBandsPanel () browserCanvasContext.lineWidth = 0.2; browserCanvasContext.stroke(); - - browserCanvasContext.beginPath(); - /* put the labels with the bands values */ - - - let y; - printLabel('Moving Average', X_AXIS, frameTitleHeight + frameBodyHeight * 0.05, '1'); - printLabel(currentBand.innerBand.movingAverage, X_AXIS, frameTitleHeight + frameBodyHeight * 0.10, '0.50'); + printLabel('Moving Average', X_AXIS, frameTitleHeight + frameBodyHeight * 0.05, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); + printLabel(currentBand.innerBand.movingAverage, X_AXIS, frameTitleHeight + frameBodyHeight * 0.10, '1.00', 15, undefined, true, thisObject.container, thisObject.fitFunction); - printLabel('Deviation', X_AXIS, frameTitleHeight + frameBodyHeight * 0.95, '1'); - printLabel(currentBand.innerBand.deviation, X_AXIS, frameTitleHeight + frameBodyHeight * 0.90, '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(); + printLabel('Deviation', X_AXIS, frameTitleHeight + frameBodyHeight * 0.95, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); + printLabel(currentBand.innerBand.deviation, X_AXIS, frameTitleHeight + frameBodyHeight * 0.90, '1.00', 15, undefined, true, thisObject.container, thisObject.fitFunction); } - - } diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/PercentageBandwidth.js b/Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/PercentageBandwidth.js similarity index 99% rename from Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/PercentageBandwidth.js rename to Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/PercentageBandwidth.js index c7eb5f186..0a0661c91 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/PercentageBandwidth.js +++ b/Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/PercentageBandwidth.js @@ -1,4 +1,4 @@ -function newAAMastersPlottersBollingerBandsPercentageBandwidth() { +function newMastersPlottersBollingerBandsPercentageBandwidth() { const MODULE_NAME = "Bands Plotter"; const ERROR_LOG = true; diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/this.plotter.config.json b/Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/this.plotter.config.json similarity index 96% rename from Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/this.plotter.config.json rename to Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/this.plotter.config.json index 19c0016e5..a0b3faf21 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Bollinger-Bands/this.plotter.config.json +++ b/Legacy-Code/Masters/plotters/Plotters-Bollinger-Bands/this.plotter.config.json @@ -1,7 +1,7 @@ { "displayName": "Plotters Bollinger Bands", "codeName": "PlottersBollingerBands", - "dataMine": "AAMasters", + "dataMine": "Masters", "modules": [ { "codeName": "BollingerBands", diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/CandlePanel.js b/Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/CandlePanel.js similarity index 76% rename from Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/CandlePanel.js rename to Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/CandlePanel.js index 4ee162d6d..e6c255403 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/CandlePanel.js +++ b/Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/CandlePanel.js @@ -1,5 +1,5 @@  -function newAAMastersPlottersCandlesVolumesCandlesCandlePanel() { +function newMastersPlottersCandlesVolumesCandlesCandlePanel() { let thisObject = { fitFunction: undefined, @@ -17,7 +17,7 @@ function newAAMastersPlottersCandlesVolumesCandlesCandlePanel() { thisObject.container.frame.containerName = "Candle"; let currentCandle; - let panelTabButton + let upDownButton return thisObject; @@ -28,8 +28,8 @@ function newAAMastersPlottersCandlesVolumesCandlesCandlePanel() { thisObject.isVisible = undefined currentCandle = undefined - panelTabButton.finalize() - panelTabButton = undefined + upDownButton.finalize() + upDownButton = undefined } function initialize() { @@ -40,18 +40,18 @@ function newAAMastersPlottersCandlesVolumesCandlesCandlePanel() { thisObject.container.frame.position.x = canvas.chartingSpace.viewport.visibleArea.topRight.x - thisObject.container.frame.width * 2; thisObject.container.frame.position.y = canvas.chartingSpace.viewport.visibleArea.bottomLeft.y - thisObject.container.frame.height; - panelTabButton = newPanelTabButton() - panelTabButton.parentContainer = thisObject.container - panelTabButton.container.frame.parentFrame = thisObject.container.frame - panelTabButton.fitFunction = thisObject.fitFunction - panelTabButton.initialize() + 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 = panelTabButton.getContainer(point) + container = upDownButton.getContainer(point) if (container !== undefined) { return container } if (thisObject.container.frame.isThisPointHere(point, true) === true) { @@ -83,7 +83,7 @@ function newAAMastersPlottersCandlesVolumesCandlesCandlePanel() { plotCurrentCandleInfo(); - panelTabButton.draw() + upDownButton.draw() } @@ -202,6 +202,65 @@ function newAAMastersPlottersCandlesVolumesCandlesCandlePanel() { } + const leftLimit = thisObject.container.frame.width * 0.42; + const rightLimit = thisObject.container.frame.width * 0.58; + + if (candlePoint1.x < leftLimit) { + + candlePoint1.x = leftLimit; + candlePoint4.x = leftLimit; + + } + + if (stickPoint1.x < leftLimit) { + + stickPoint1.x = leftLimit; + stickPoint4.x = leftLimit; + + } + + if (candlePoint4.x < leftLimit) { + + candlePoint4.x = leftLimit; + candlePoint1.x = leftLimit; + + } + + if (stickPoint4.x < leftLimit) { + + stickPoint4.x = leftLimit; + stickPoint1.x = leftLimit; + + } + + if (candlePoint2.x > rightLimit) { + + candlePoint2.x = rightLimit; + candlePoint3.x = rightLimit; + + } + + if (stickPoint2.x > rightLimit) { + + stickPoint2.x = rightLimit; + stickPoint3.x = rightLimit; + + } + + if (candlePoint3.x > rightLimit) { + + candlePoint3.x = rightLimit; + candlePoint2.x = rightLimit; + + } + + if (stickPoint3.x > rightLimit) { + + stickPoint3.x = rightLimit; + stickPoint2.x = rightLimit; + + } + candlePoint1 = thisObject.container.frame.frameThisPoint(candlePoint1); candlePoint2 = thisObject.container.frame.frameThisPoint(candlePoint2); @@ -261,73 +320,33 @@ function newAAMastersPlottersCandlesVolumesCandlesCandlePanel() { browserCanvasContext.lineWidth = 1; browserCanvasContext.stroke(); - - browserCanvasContext.beginPath(); - /* put the labels with the candles values */ - - - let y; - printLabel('Max', X_AXIS, frameTitleHeight + frameBodyHeight * 0.05, '1'); - printLabel(currentCandle.innerCandle.max, X_AXIS, frameTitleHeight + frameBodyHeight * 0.10, '0.50'); - - printLabel('Min', X_AXIS, frameTitleHeight + frameBodyHeight * 0.95, '1'); - printLabel(currentCandle.innerCandle.min, X_AXIS, frameTitleHeight + frameBodyHeight * 0.90, '0.50'); + printLabel('Max', X_AXIS, frameTitleHeight + frameBodyHeight * 0.05, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); + printLabel(currentCandle.innerCandle.max, X_AXIS, frameTitleHeight + frameBodyHeight * 0.10, '1.00', 15, undefined, true, thisObject.container, thisObject.fitFunction); + printLabel('Min', X_AXIS, frameTitleHeight + frameBodyHeight * 0.95, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); + printLabel(currentCandle.innerCandle.min, X_AXIS, frameTitleHeight + frameBodyHeight * 0.90, '1.00', 15, undefined, true, thisObject.container, thisObject.fitFunction); y = Y_AXIS - currentCandle.bodyHeight / 2; if (y < frameTitleHeight + frameBodyHeight * 0.15) { y = frameTitleHeight + frameBodyHeight * 0.15; } if (y > frameTitleHeight + frameBodyHeight * 0.80) { y = frameTitleHeight + frameBodyHeight * 0.80; } - printLabel('Open', X_AXIS * 1 / 2, y, '1'); - printLabel(currentCandle.innerCandle.open, X_AXIS * 1 / 2, y + frameBodyHeight * 0.05, '0.50'); + printLabel('Open', X_AXIS * 2 / 5, y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); + printLabel(currentCandle.innerCandle.open, X_AXIS * 2 / 5, y + frameBodyHeight * 0.05, '1.00', 15, undefined, true, thisObject.container, thisObject.fitFunction); y = Y_AXIS + currentCandle.bodyHeight / 2; if (y < frameTitleHeight + frameBodyHeight * 0.15) { y = frameTitleHeight + frameBodyHeight * 0.15; } if (y > frameTitleHeight + frameBodyHeight * 0.80) { y = frameTitleHeight + frameBodyHeight * 0.80; } - printLabel('Close', X_AXIS * 3 / 2, y, '1'); - printLabel(currentCandle.innerCandle.close, X_AXIS * 3 / 2, y + frameBodyHeight * 0.05, '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(); + printLabel('Close', X_AXIS * 7 / 5, y, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); + printLabel(currentCandle.innerCandle.close, X_AXIS * 7 / 5, y + frameBodyHeight * 0.05, '1.00', 15, undefined, true, thisObject.container, thisObject.fitFunction); } - - } diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/Candles.js b/Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/Candles.js similarity index 98% rename from Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/Candles.js rename to Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/Candles.js index 40c883bcd..0f9eea85d 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/Candles.js +++ b/Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/Candles.js @@ -1,4 +1,4 @@ -function newAAMastersPlottersCandlesVolumesCandles() { +function newMastersPlottersCandlesVolumesCandles() { const MODULE_NAME = "Candles Plotter"; const ERROR_LOG = true; @@ -263,7 +263,7 @@ thisObject.container.frame.draw(); - plotChart(); + return plotChart(); } catch (err) { @@ -469,7 +469,7 @@ function plotChart() { try { - + let elementsPlotted = 0 let lowResolution = false if (canvas.chartingSpace.viewport.zoomTargetLevel < ZOOM_OUT_THRESHOLD_FOR_PLOTTING_IN_LOW_RESOLUTION) { if (candles.length > 100) { @@ -602,6 +602,9 @@ candle = candles[i]; + /* Skip the first candle with zero at open */ + if (candle.open === 0) { continue } + if (candle.candlePoint2.x < canvas.chartingSpace.viewport.visibleArea.bottomLeft.x || candle.candlePoint1.x > canvas.chartingSpace.viewport.visibleArea.bottomRight.x) { continue } @@ -691,8 +694,10 @@ browserCanvasContext.lineTo(candle.candlePoint3.x, candle.candlePoint3.y); browserCanvasContext.lineTo(candle.candlePoint4.x, candle.candlePoint4.y); browserCanvasContext.lineTo(candle.candlePoint1.x, candle.candlePoint1.y); - } + elementsPlotted++ + } + browserCanvasContext.closePath(); if (lowResolution === false) { @@ -746,7 +751,7 @@ thisObject.container.eventHandler.raiseEvent("Current Record Changed", currentCandle); } } - + return elementsPlotted } catch (err) { if (ERROR_LOG === true) { logger.write("[ERROR] plotChart -> err = " + err.stack); } diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/VolumePanel.js b/Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/VolumePanel.js similarity index 74% rename from Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/VolumePanel.js rename to Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/VolumePanel.js index 0ac28e3f7..ff7672fa3 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/VolumePanel.js +++ b/Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/VolumePanel.js @@ -1,5 +1,5 @@  -function newAAMastersPlottersCandlesVolumesVolumesVolumePanel() { +function newMastersPlottersCandlesVolumesVolumesVolumePanel() { let thisObject = { fitFunction: undefined, @@ -17,7 +17,7 @@ function newAAMastersPlottersCandlesVolumesVolumesVolumePanel() { thisObject.container.frame.containerName = "Volume"; let currentVolume; - let panelTabButton + let upDownButton return thisObject; @@ -28,8 +28,8 @@ function newAAMastersPlottersCandlesVolumesVolumesVolumePanel() { thisObject.isVisible = undefined currentVolume = undefined - panelTabButton.finalize() - panelTabButton = undefined + upDownButton.finalize() + upDownButton = undefined } function initialize() { @@ -40,18 +40,18 @@ function newAAMastersPlottersCandlesVolumesVolumesVolumePanel() { thisObject.container.frame.position.x = canvas.chartingSpace.viewport.visibleArea.topRight.x - thisObject.container.frame.width; thisObject.container.frame.position.y = canvas.chartingSpace.viewport.visibleArea.bottomLeft.y - thisObject.container.frame.height; - panelTabButton = newPanelTabButton() - panelTabButton.parentContainer = thisObject.container - panelTabButton.container.frame.parentFrame = thisObject.container.frame - panelTabButton.fitFunction = thisObject.fitFunction - panelTabButton.initialize() + 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 = panelTabButton.getContainer(point) + container = upDownButton.getContainer(point) if (container !== undefined) { return container } if (thisObject.container.frame.isThisPointHere(point, true) === true) { @@ -83,7 +83,7 @@ function newAAMastersPlottersCandlesVolumesVolumesVolumePanel() { plotCurrentVolumeInfo(); - panelTabButton.draw() + upDownButton.draw() } function plotCurrentVolumeInfo() { @@ -118,6 +118,28 @@ function newAAMastersPlottersCandlesVolumesVolumesVolumePanel() { y: Y_AXIS_BUY }; + /* Extra bounderies due to constrained space */ + + const upperLimit = frameTitleHeight + frameBodyHeight * 0.15; + const downLimit = frameTitleHeight + frameBodyHeight * 0.85; + + const leftLimit = thisObject.container.frame.width * 0.40; + const rightLimit = thisObject.container.frame.width * 0.60; + + if (buyVolumePoint1.y < downLimit) { buyVolumePoint1.y = downLimit; } + if (buyVolumePoint4.y < downLimit) { buyVolumePoint4.y = downLimit; } + + if (buyVolumePoint2.y < upperLimit) { buyVolumePoint2.y = upperLimit; } + if (buyVolumePoint3.y < upperLimit) { buyVolumePoint3.y = upperLimit; } + + if (buyVolumePoint1.x < leftLimit) { buyVolumePoint1.x = leftLimit; } + if (buyVolumePoint2.x < leftLimit) { buyVolumePoint2.x = leftLimit; } + + if (buyVolumePoint3.x > rightLimit) { buyVolumePoint3.x = rightLimit; } + if (buyVolumePoint4.x > rightLimit) { buyVolumePoint4.x = rightLimit; } + + + buyVolumePoint1 = thisObject.container.frame.fitIntoFrame(buyVolumePoint1); buyVolumePoint2 = thisObject.container.frame.fitIntoFrame(buyVolumePoint2); buyVolumePoint3 = thisObject.container.frame.fitIntoFrame(buyVolumePoint3); @@ -153,6 +175,18 @@ function newAAMastersPlottersCandlesVolumesVolumesVolumePanel() { y: Y_AXIS_SELL }; + if (sellVolumePoint1.y < upperLimit) { sellVolumePoint1.y = upperLimit; } + if (sellVolumePoint4.y < upperLimit) { sellVolumePoint4.y = upperLimit; } + + if (sellVolumePoint2.y > downLimit) { sellVolumePoint2.y = downLimit; } + if (sellVolumePoint3.y > downLimit) { sellVolumePoint3.y = downLimit; } + + if (sellVolumePoint1.x < leftLimit) { sellVolumePoint1.x = leftLimit; } + if (sellVolumePoint2.x < leftLimit) { sellVolumePoint2.x = leftLimit; } + + if (sellVolumePoint3.x > rightLimit) { sellVolumePoint3.x = rightLimit; } + if (sellVolumePoint4.x > rightLimit) { sellVolumePoint4.x = rightLimit; } + sellVolumePoint1 = thisObject.container.frame.fitIntoFrame(sellVolumePoint1); sellVolumePoint2 = thisObject.container.frame.fitIntoFrame(sellVolumePoint2); sellVolumePoint3 = thisObject.container.frame.fitIntoFrame(sellVolumePoint3); @@ -168,6 +202,8 @@ function newAAMastersPlottersCandlesVolumesVolumesVolumePanel() { sellVolumePoint3 = thisObject.fitFunction(sellVolumePoint3) sellVolumePoint4 = thisObject.fitFunction(sellVolumePoint4) + + const OPACITY = '0.40'; browserCanvasContext.beginPath(); @@ -205,47 +241,13 @@ function newAAMastersPlottersCandlesVolumesVolumesVolumePanel() { browserCanvasContext.lineWidth = 1; browserCanvasContext.stroke(); - /* put the labels with the volumes values */ - browserCanvasContext.beginPath(); + printLabel('Buy Volume', X_AXIS, frameTitleHeight + frameBodyHeight * 0.95, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); + printLabel(currentVolume.innerVolumeBar.amountBuy, X_AXIS, frameTitleHeight + frameBodyHeight * 0.90, '1.00', 15, undefined, true, thisObject.container, thisObject.fitFunction); - printLabel('Buy Volume', X_AXIS, frameTitleHeight + frameBodyHeight * 0.95, '1'); - printLabel(currentVolume.innerVolumeBar.amountBuy, X_AXIS, frameTitleHeight + frameBodyHeight * 0.90, '0.50'); - - printLabel('Sell Volume', X_AXIS, frameTitleHeight + frameBodyHeight * 0.05, '1'); - printLabel(currentVolume.innerVolumeBar.amountSell, X_AXIS, frameTitleHeight + frameBodyHeight * 0.10, '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(); + printLabel('Sell Volume', X_AXIS, frameTitleHeight + frameBodyHeight * 0.05, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction); + printLabel(currentVolume.innerVolumeBar.amountSell, X_AXIS, frameTitleHeight + frameBodyHeight * 0.10, '1.00', 15, undefined, true, thisObject.container, thisObject.fitFunction); } diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/Volumes.js b/Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/Volumes.js similarity index 99% rename from Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/Volumes.js rename to Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/Volumes.js index bc187fced..1e2415327 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/Volumes.js +++ b/Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/Volumes.js @@ -1,4 +1,4 @@ -function newAAMastersPlottersCandlesVolumesVolumes() { +function newMastersPlottersCandlesVolumesVolumes() { const MODULE_NAME = "Volumes Plotter"; const ERROR_LOG = true; diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/this.plotter.config.json b/Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/this.plotter.config.json similarity index 96% rename from Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/this.plotter.config.json rename to Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/this.plotter.config.json index 1f777a5af..5ac90a9dc 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Candles-Volumes/this.plotter.config.json +++ b/Legacy-Code/Masters/plotters/Plotters-Candles-Volumes/this.plotter.config.json @@ -1,7 +1,7 @@ { "displayName": "Plotters Candles & Volumes", "codeName": "PlottersCandlesVolumes", - "dataMine": "AAMasters", + "dataMine": "Masters", "modules": [ { "codeName": "Candles", diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Stairs-Patterns/CandleStairs.js b/Legacy-Code/Masters/plotters/Plotters-Stairs-Patterns/CandleStairs.js similarity index 98% rename from Legacy-Code/AAMasters/plotters/Plotters-Stairs-Patterns/CandleStairs.js rename to Legacy-Code/Masters/plotters/Plotters-Stairs-Patterns/CandleStairs.js index 990f68f3b..b49e55a4b 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Stairs-Patterns/CandleStairs.js +++ b/Legacy-Code/Masters/plotters/Plotters-Stairs-Patterns/CandleStairs.js @@ -1,6 +1,6 @@ -function newAAMastersPlottersStairsPatternsCandleStairs() { +function newMastersPlottersStairsPatternsCandleStairs() { - const MODULE_NAME = "AAMasters Plotters Stairs Patterns Candle Stairs"; + const MODULE_NAME = "Masters Plotters Stairs Patterns Candle Stairs"; const ERROR_LOG = true; const INTENSIVE_LOG = false; const logger = newWebDebugLog(); @@ -517,7 +517,7 @@ let stairsPoint3; let stairsPoint4; - if (stairs.direction === 'up') { + if (stairs.direction === 'Up') { stairsPoint1 = { x: stairs.begin + timeFrame / 7 * 5.5, @@ -603,11 +603,11 @@ let opacity = '0.25'; - if (stairs.direction === 'up') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')'; } - if (stairs.direction === 'down') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')'; } + if (stairs.direction === 'Up') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')'; } + if (stairs.direction === 'Down') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')'; } - if (stairs.direction === 'up') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + opacity + ')'; } - if (stairs.direction === 'down') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')'; } + if (stairs.direction === 'Up') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + opacity + ')'; } + if (stairs.direction === 'Down') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')'; } if (userPositionDate >= stairs.begin && userPositionDate <= stairs.end) { /* highlight the current stairs */ diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Stairs-Patterns/VolumeStairs.js b/Legacy-Code/Masters/plotters/Plotters-Stairs-Patterns/VolumeStairs.js similarity index 99% rename from Legacy-Code/AAMasters/plotters/Plotters-Stairs-Patterns/VolumeStairs.js rename to Legacy-Code/Masters/plotters/Plotters-Stairs-Patterns/VolumeStairs.js index 01b747dee..a760eba44 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Stairs-Patterns/VolumeStairs.js +++ b/Legacy-Code/Masters/plotters/Plotters-Stairs-Patterns/VolumeStairs.js @@ -1,6 +1,6 @@ -function newAAMastersPlottersStairsPatternsVolumeStairs() { +function newMastersPlottersStairsPatternsVolumeStairs() { - const MODULE_NAME = "AAMasters Plotters Stairs Patterns Volume Stairs"; + const MODULE_NAME = "Masters Plotters Stairs Patterns Volume Stairs"; const ERROR_LOG = true; const INTENSIVE_LOG = false; const logger = newWebDebugLog(); diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Stairs-Patterns/this.plotter.config.json b/Legacy-Code/Masters/plotters/Plotters-Stairs-Patterns/this.plotter.config.json similarity index 94% rename from Legacy-Code/AAMasters/plotters/Plotters-Stairs-Patterns/this.plotter.config.json rename to Legacy-Code/Masters/plotters/Plotters-Stairs-Patterns/this.plotter.config.json index cf638f14e..af3f1f783 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Stairs-Patterns/this.plotter.config.json +++ b/Legacy-Code/Masters/plotters/Plotters-Stairs-Patterns/this.plotter.config.json @@ -1,7 +1,7 @@ { "displayName": "Plotters Stairs Patterns", "codeName": "PlottersStairsPatterns", - "dataMine": "AAMasters", + "dataMine": "Masters", "modules": [ { "codeName": "CandleStairs", diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/Conditions.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/Conditions.js similarity index 99% rename from Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/Conditions.js rename to Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/Conditions.js index 3cd2549f7..a4d62f3c9 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/Conditions.js +++ b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/Conditions.js @@ -1,4 +1,4 @@ -function newAAMastersPlottersTradingSimulationConditions() { +function newMastersPlottersTradingSimulationConditions() { const MODULE_NAME = "Conditions Plotter"; const INFO_LOG = false; diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/FinalResults.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/FinalResults.js similarity index 100% rename from Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/FinalResults.js rename to Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/FinalResults.js diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/FinalResultsPanel.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/FinalResultsPanel.js similarity index 100% rename from Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/FinalResultsPanel.js rename to Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/FinalResultsPanel.js diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/SimulationExecution.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/SimulationExecution.js similarity index 99% rename from Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/SimulationExecution.js rename to Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/SimulationExecution.js index 2717579d5..f1a7eb78f 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/SimulationExecution.js +++ b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/SimulationExecution.js @@ -1,4 +1,4 @@ -function newAAMastersPlottersTradingSimulationSimulationExecution() { +function newMastersPlottersTradingSimulationSimulationExecution() { const MODULE_NAME = "Simulation Execution Plotter"; const INTENSIVE_LOG = false; diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/SimulationExecutionPanel.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/SimulationExecutionPanel.js similarity index 96% rename from Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/SimulationExecutionPanel.js rename to Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/SimulationExecutionPanel.js index 24ee27d23..37a002b81 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/SimulationExecutionPanel.js +++ b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/SimulationExecutionPanel.js @@ -1,5 +1,5 @@  -function newAAMastersPlottersTradingSimulationSimulationExecutionSimulationExecutionPanel() { +function newMastersPlottersTradingSimulationSimulationExecutionSimulationExecutionPanel() { let thisObject = { @@ -20,7 +20,7 @@ function newAAMastersPlottersTradingSimulationSimulationExecutionSimulationExecu container.frame.containerName = "Trading Execution"; let currentRecord; - let panelTabButton + let upDownButton return thisObject; @@ -31,8 +31,8 @@ function newAAMastersPlottersTradingSimulationSimulationExecutionSimulationExecu thisObject.isVisible = undefined currentRecord = undefined - panelTabButton.finalize() - panelTabButton = undefined + upDownButton.finalize() + upDownButton = undefined } function initialize() { @@ -43,18 +43,18 @@ function newAAMastersPlottersTradingSimulationSimulationExecutionSimulationExecu 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; - panelTabButton = newPanelTabButton() - panelTabButton.parentContainer = thisObject.container - panelTabButton.container.frame.parentFrame = thisObject.container.frame - panelTabButton.fitFunction = thisObject.fitFunction - panelTabButton.initialize() + 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 = panelTabButton.getContainer(point) + container = upDownButton.getContainer(point) if (container !== undefined) { return container } if (thisObject.container.frame.isThisPointHere(point, true) === true) { @@ -86,7 +86,7 @@ function newAAMastersPlottersTradingSimulationSimulationExecutionSimulationExecu plot(); - panelTabButton.draw() + upDownButton.draw() } diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/Strategies.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/Strategies.js similarity index 93% rename from Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/Strategies.js rename to Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/Strategies.js index be159d9de..68ff6566d 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/Strategies.js +++ b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/Strategies.js @@ -1,4 +1,4 @@ -function newAAMastersPlottersTradingSimulationStrategies() { +function newMastersPlottersTradingSimulationStrategies() { const MODULE_NAME = "Strategies Plotter"; const INFO_LOG = false; @@ -542,26 +542,40 @@ let imageToDraw = strategyImages[record.number]; - /* Draw the line that represents the duration of closed strategy */ + /* Draw the line that represents the duration of closed strategy */ - browserCanvasContext.beginPath(); + browserCanvasContext.beginPath(); - browserCanvasContext.moveTo(recordPoint3.x + imageSize / 2, recordPoint3.y); - browserCanvasContext.lineTo(recordPoint4.x - imageSize / 2, recordPoint4.y); + browserCanvasContext.moveTo(recordPoint3.x + imageSize / 2, recordPoint3.y); + browserCanvasContext.lineTo(recordPoint4.x - imageSize / 2, recordPoint4.y); - browserCanvasContext.closePath(); + browserCanvasContext.closePath(); - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.MANGANESE_PURPLE + ', 1)'; - browserCanvasContext.lineWidth = 1 + 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() + 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(); + */ + /* Draw the Sticks */ drawStick(recordPoint1, recordPoint3); drawStick(recordPoint2, recordPoint4); diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/Trades.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/Trades.js similarity index 99% rename from Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/Trades.js rename to Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/Trades.js index d5bdcb9a1..9c5e16f88 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/Trades.js +++ b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/Trades.js @@ -1,4 +1,4 @@ -function newAAMastersPlottersTradingSimulationTrades() { +function newMastersPlottersTradingSimulationTrades() { const MODULE_NAME = "Trades Plotter"; const INFO_LOG = false; @@ -522,11 +522,11 @@ if (record.status === 1) { switch (record.exitType) { case 1: { - line1 = 'Exit: STOP'; + line1 = 'Stop Loss'; break; } case 2: { - line1 = 'Exit: TP'; + line1 = 'Take Profit'; break; } } diff --git a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/TradingSimulation.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulation.js similarity index 97% rename from Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/TradingSimulation.js rename to Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulation.js index b82eae6b0..6222e1fae 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/TradingSimulation.js +++ b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulation.js @@ -1,4 +1,4 @@ -function newAAMastersPlottersTradingSimulationTradingSimulation() { +function newMastersPlottersTradingSimulationTradingSimulation() { const MODULE_NAME = "Simulation Plotter"; const ERROR_LOG = true; @@ -384,8 +384,9 @@ record.minimunBalanceB = dailyFile[i][31]; record.maximunBalanceB = dailyFile[i][32]; record.baseAsset = dailyFile[i][33]; - record.positionPeriods = dailyFile[i][34]; - record.positionDays = dailyFile[i][35]; + record.quotedAsset = dailyFile[i][34]; + record.positionPeriods = dailyFile[i][35]; + record.positionDays = dailyFile[i][36]; if ( (record.begin >= farLeftDate.valueOf() && record.end <= farRightDate.valueOf()) && @@ -475,8 +476,9 @@ record.minimunBalanceB = marketFile[i][31]; record.maximunBalanceB = marketFile[i][32]; record.baseAsset = marketFile[i][33]; - record.positionPeriods = marketFile[i][34]; - record.positionDays = marketFile[i][35]; + record.quotedAsset = marketFile[i][34]; + record.positionPeriods = marketFile[i][35]; + record.positionDays = marketFile[i][36]; if ( (record.begin >= leftDate.valueOf() && record.end <= rightDate.valueOf()) && @@ -514,6 +516,14 @@ 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) { @@ -679,7 +689,7 @@ browserCanvasContext.save(); browserCanvasContext.translate(recordPoint3.x + labelOffset.x, recordPoint3.y + labelOffset.y); browserCanvasContext.rotate(-Math.PI / 2); - printLabel(recordLabel, 0, 0, '1', 8); + printLabel(recordLabel, 0, 0, '1', 8, undefined, undefined, undefined, undefined, true); browserCanvasContext.restore(); } diff --git a/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulationAssetBalancesPanel.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulationAssetBalancesPanel.js new file mode 100644 index 000000000..3ca0292ff --- /dev/null +++ b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulationAssetBalancesPanel.js @@ -0,0 +1,179 @@ + +function newMastersPlottersTradingSimulationTradingSimulationTradingSimulationAssetBalancesPanel() { + + 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() + + thisObject.assetBalances.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 + } + + 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 = 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 = 'Asset B' + 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) + + } +} diff --git a/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulationCurrentPositionPanel.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulationCurrentPositionPanel.js new file mode 100644 index 000000000..bf6190672 --- /dev/null +++ b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulationCurrentPositionPanel.js @@ -0,0 +1,178 @@ + + + +function newMastersPlottersTradingSimulationTradingSimulationTradingSimulationCurrentPositionPanel() { + + 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/Masters/plotters/Plotters-Trading-Simulation/TradingSimulationPartialResultsPanel.js b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulationPartialResultsPanel.js new file mode 100644 index 000000000..d68ee4dd0 --- /dev/null +++ b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/TradingSimulationPartialResultsPanel.js @@ -0,0 +1,177 @@ + +function newMastersPlottersTradingSimulationTradingSimulationTradingSimulationPartialResultsPanel() { + + 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/AAMasters/plotters/Plotters-Trading-Simulation/this.plotter.config.json b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/this.plotter.config.json similarity index 98% rename from Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/this.plotter.config.json rename to Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/this.plotter.config.json index d1c9d6830..d5ff7028d 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/this.plotter.config.json +++ b/Legacy-Code/Masters/plotters/Plotters-Trading-Simulation/this.plotter.config.json @@ -1,7 +1,7 @@ { "displayName": "Plotters Trading Simulation", "codeName": "PlottersTradingSimulation", - "dataMine": "AAMasters", + "dataMine": "Masters", "modules": [ { "codeName": "TradingSimulation", diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Conditions.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Conditions.js new file mode 100644 index 000000000..f65c5d9e6 --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Conditions.js @@ -0,0 +1,1040 @@ +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) + } + } + } + } + } + + 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) + } + } + } + } + } + } + + 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) + } + } + } + } + } + + 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) + } + } + } + } + } + } + + + 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 new file mode 100644 index 000000000..dcc9ce8d2 --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/FinalResults.js @@ -0,0 +1,348 @@ +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/AAMasters/plotters/Plotters-Trading-Simulation/TradingSimulationPanel.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/FinalResultsPanel.js similarity index 56% rename from Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/TradingSimulationPanel.js rename to Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/FinalResultsPanel.js index 5781fa645..0907ae991 100644 --- a/Legacy-Code/AAMasters/plotters/Plotters-Trading-Simulation/TradingSimulationPanel.js +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/FinalResultsPanel.js @@ -1,12 +1,10 @@  -function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulationPanel() { +function newAAMastersPlottersTradingSimulationTradingSimulationFinalResultsPanel() { let thisObject = { fitFunction: undefined, - onRecordChange: onRecordChange, + onEventRaised: onEventRaised, container: undefined, - session: undefined, - isVisible: true, draw: draw, getContainer: getContainer, initialize: initialize, @@ -17,7 +15,8 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation container.initialize(); thisObject.container = container; - container.frame.containerName = "Simulation"; + container.displacement.containerName = "Final Results"; + container.frame.containerName = "Final Results"; let currentRecord; let lastRecord; @@ -28,11 +27,11 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation function initialize() { - thisObject.container.frame.width = UI_PANEL.WIDTH.NORMAL * 1; + thisObject.container.frame.width = UI_PANEL.WIDTH.NORMAL * 2; thisObject.container.frame.height = UI_PANEL.HEIGHT.NORMAL * 2.5; - 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; + 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 @@ -43,21 +42,11 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation } function finalize() { - thisObject.session = undefined - thisObject.container.finalize() - thisObject.container = undefined - thisObject.fitFunction = undefined - thisObject.onRecordChange = undefined - thisObject.isVisible = undefined - - currentRecord = undefined - lastRecord = undefined - panelTabButton = undefined } function getContainer(point) { - if (thisObject.isVisible !== true) { return } + let container; container = panelTabButton.getContainer(point) @@ -79,7 +68,7 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation } - function onRecordChange(records) { + function onEventRaised(records) { currentRecord = records.currentRecord; lastRecord = records.lastRecord @@ -88,28 +77,19 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation function draw() { - if (thisObject.isVisible !== true) { return } + thisObject.container.frame.draw(false, false, true, thisObject.fitFunction); plotCurrentRecordInfo(); panelTabButton.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; } + if (lastRecord === undefined) { return; } const frameBodyHeight = thisObject.container.frame.getBodyHeight(); const frameTitleHeight = thisObject.container.frame.height - frameBodyHeight; @@ -173,54 +153,110 @@ function newAAMastersPlottersTradingSimulationTradingSimulationTradingSimulation 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 , frameTitleHeight + frameBodyHeight * y, '1', 14); + printLabel('Partial Results', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1', 14); y = y + increment; - printLabel('Profit / Loss', X_AXIS , frameTitleHeight + frameBodyHeight * y, '0.60'); + printLabel('Profit / Loss', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); y = y + increment; - printLabel(currentRecord.profit, X_AXIS , frameTitleHeight + frameBodyHeight * y, '1.00', 14); + printLabel(currentRecord.profit, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); y = y + increment; - printLabel('Trades', X_AXIS , frameTitleHeight + frameBodyHeight * y, '0.60'); + printLabel('Trades', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); y = y + increment; - printLabel(currentRecord.roundtrips, X_AXIS , frameTitleHeight + frameBodyHeight * y, '1.00', 14); + printLabel(currentRecord.roundtrips, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); y = y + increment; - printLabel('Hits', X_AXIS , frameTitleHeight + frameBodyHeight * y, '0.60'); + printLabel('Hits', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); y = y + increment; - printLabel(currentRecord.hits, X_AXIS , frameTitleHeight + frameBodyHeight * y, '1.00', 14); + printLabel(currentRecord.hits, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); y = y + increment; - printLabel('Fails', X_AXIS , frameTitleHeight + frameBodyHeight * y, '0.60'); + printLabel('Fails', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); y = y + increment; - printLabel(currentRecord.fails, X_AXIS , frameTitleHeight + frameBodyHeight * y, '1.00', 14); + printLabel(currentRecord.fails, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); y = y + increment; - printLabel('Hit Ratio', X_AXIS , frameTitleHeight + frameBodyHeight * y, '0.60'); + 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 , frameTitleHeight + frameBodyHeight * y, '1.00', 14); + 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 , frameTitleHeight + frameBodyHeight * y, '0.60'); + 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 , frameTitleHeight + frameBodyHeight * y, '1.00', 14); + 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 , frameTitleHeight + frameBodyHeight * y, '0.60'); + printLabel('Periods', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); y = y + increment; - printLabel(currentRecord.periods, X_AXIS , frameTitleHeight + frameBodyHeight * y, '1.00', 14); + printLabel(currentRecord.periods, X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '1.00', 14); y = y + increment; - printLabel('Days', X_AXIS , frameTitleHeight + frameBodyHeight * y, '0.60'); + printLabel('Days', X_AXIS - thisObject.container.frame.width / 4, frameTitleHeight + frameBodyHeight * y, '0.60'); y = y + increment; - printLabel(currentRecord.days, X_AXIS , frameTitleHeight + frameBodyHeight * y, '1.00', 14); + 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 , frameTitleHeight + frameBodyHeight * y, '0.60'); + 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 , frameTitleHeight + frameBodyHeight * y, '1.00', 14); + 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) { diff --git a/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/SimulationExecution.js b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/SimulationExecution.js new file mode 100644 index 000000000..9db58a633 --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/SimulationExecution.js @@ -0,0 +1,799 @@ +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 new file mode 100644 index 000000000..48410e698 --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/SimulationExecutionPanel.js @@ -0,0 +1,465 @@ + +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 new file mode 100644 index 000000000..3ca511d39 --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Strategies.js @@ -0,0 +1,700 @@ +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]; + + 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]; + + 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(); + */ + /* 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 new file mode 100644 index 000000000..24e64c7cd --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/Trades.js @@ -0,0 +1,683 @@ +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]; + + 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]; + + 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 line1 = ''; + let line2 = ''; + + 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 { + + + 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 new file mode 100644 index 000000000..624c489c2 --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulation.js @@ -0,0 +1,869 @@ +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.positionPeriods = dailyFile[i][35]; + record.positionDays = dailyFile[i][36]; + + 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.positionPeriods = marketFile[i][35]; + record.positionDays = marketFile[i][36]; + + 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 new file mode 100644 index 000000000..3cc23fa0e --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationAssetBalancesPanel.js @@ -0,0 +1,188 @@ + +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 + } + + 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 = 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 = 'Asset B' + 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 new file mode 100644 index 000000000..6fc1ab6f5 --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationCurrentPositionPanel.js @@ -0,0 +1,178 @@ + + + +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 new file mode 100644 index 000000000..bd07abf7d --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/TradingSimulationPartialResultsPanel.js @@ -0,0 +1,177 @@ + +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 new file mode 100644 index 000000000..d5ff7028d --- /dev/null +++ b/Legacy-Code/TradingEngines/plotters/Plotters-Trading-Simulation/this.plotter.config.json @@ -0,0 +1,56 @@ +{ + "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 8abeb8d97..a41cc99b4 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,10 @@ The current version opens up the door to working with multiple exchanges and mul | Bitfinex | ☑ | ☑ | Fully tested. Expect 1 year max of market history. | | Bitmex | ☑ | ☐ | We need to implement the concept of Contracts within the system in order to be able to test trading capabilities. | | HitBTC | ☐ | ☐ | Not tested yet. | -| Kraken | ☑ | ☐ | Live trading not tested yet. | +| Kraken | ☐ | ☐ | Historical data only accessed by id (not by date). Live trading not tested yet. | | Poloniex | ☐ | ☐ | At the moment we can not retrieve OHLCVs from Poloniex because we require 1 minute time frame while Poloniex only offers 5 minutes and above. | +| Bittrex | ☑ | ☐ | Only 6 Months of historical data is provided. Live trading not tested yet. | +| Gemini | ☑ | ☐ | Only a few hours of historical data is provided. Live trading not tested yet. | [*] The ability to fetch historic data for backtesting purposes has been verified. diff --git a/TaskServer/Commons.js b/TaskServer/Commons.js index 5ad2fb509..8bf6a01da 100644 --- a/TaskServer/Commons.js +++ b/TaskServer/Commons.js @@ -469,14 +469,14 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> writeFile -> Entering function."); } let market = bot.market; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = 'Data.json'; let dateForPath = '' if (processingDailyFiles === true) { dateForPath = "/" + currentDay.getUTCFullYear() + '/' + utilities.pad(currentDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(currentDay.getUTCDate(), 2); } - let filePathRoot = contextSummary.dataMine + "/" + contextSummary.bot + "/" + bot.exchange; + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + contextSummary.dataMine + "/" + contextSummary.bot; let filePath = filePathRoot + "/Output/" + contextSummary.product + "/" + contextSummary.dataset + "/" + timeFrameLabel + dateForPath; filePath += '/' + fileName diff --git a/TaskServer/DataSet.js b/TaskServer/DataSet.js index 4ecbbb6b3..ee04b4a21 100644 --- a/TaskServer/DataSet.js +++ b/TaskServer/DataSet.js @@ -104,7 +104,7 @@ exports.newDataSet = function newDataSet(BOT, logger) { if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] getTextFile -> Entering function."); } - let filePathRoot = dataDependencyNode.dataMine + "/" + dataDependencyNode.bot + "/" + bot.exchange; + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + dataDependencyNode.dataMine + "/" + dataDependencyNode.bot; let filePath = filePathRoot + "/Output/" + pFolderPath; filePath += '/' + pFileName @@ -146,7 +146,7 @@ exports.newDataSet = function newDataSet(BOT, logger) { return; } - let filePathRoot = dataDependencyNode.dataMine + "/" + dataDependencyNode.bot + "/" + bot.exchange; + let filePathRoot = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + dataDependencyNode.dataMine + "/" + dataDependencyNode.bot; let filePath = filePathRoot + "/Output/" + pFolderPath + '/' + pFileName; fileStorage.createTextFile(filePath, pFileContent, onFileCreated); diff --git a/TaskServer/DebugLog.js b/TaskServer/DebugLog.js index ba2c83788..123a45006 100644 --- a/TaskServer/DebugLog.js +++ b/TaskServer/DebugLog.js @@ -37,18 +37,25 @@ exports.newDebugLog = function newDebugLog() { } } - function newInternalLoop(pBot, pProcess, date) { + function newInternalLoop(pBot, pProcess, date, percentage) { + if (percentage === undefined) { + percentage = "" + } else { + percentage = percentage.toFixed(2) + " %" + } if (date === undefined) { date = thisObject.bot.processDatetime } + date = date.getUTCFullYear() + '-' + strPad(date.getUTCMonth() + 1, 2, "0") + '-' + strPad(date.getUTCDate(), 2, "0"); - console.log(new Date().toISOString() + " " + strPad(pBot, 20) + " " + strPad(pProcess, 30) + " " + strPad(thisObject.bot.exchange, 20) + " " + strPad(thisObject.bot.market.baseAsset + '/' + thisObject.bot.market.quotedAsset, 10) - + " Entered into Internal Loop # " + strPad(internalLoopCounter + 1, 8) + " " + strPad(date.toISOString(), 30)) + console.log(new Date().toISOString() + " " + strPad(thisObject.bot.exchange, 20) + " " + strPad(thisObject.bot.market.baseAsset + '/' + thisObject.bot.market.quotedAsset, 10) + " " + strPad(pBot, 20) + " " + strPad(pProcess, 30) + + " Internal Loop # " + strPad(internalLoopCounter + 1, 8) + " " + strPad(date, 30) + " " + strPad(percentage, 10)) persist(); - function strPad(str, max) { + function strPad(str, max, fill) { + if (fill === undefined) {fill = " "} str = str.toString(); - return str.length < max ? strPad(" " + str, max) : str; + return str.length < max ? strPad(fill + str, max) : str; } } diff --git a/TaskServer/FileStorage.js b/TaskServer/FileStorage.js index 8bca500eb..2ec8a47ec 100644 --- a/TaskServer/FileStorage.js +++ b/TaskServer/FileStorage.js @@ -5,9 +5,11 @@ exports.newFileStorage = function newFileStorage(logger) { const MODULE_NAME = 'FileStorage' const MAX_RETRY = 30 - const RETRY_TIME_IN_MILISECONDS = 250 + const FAST_RETRY_TIME_IN_MILISECONDS = 500 + const SLOW_RETRY_TIME_IN_MILISECONDS = 5000 let currentRetryGetTextFile = 0 let currentRetryWriteTextFile = 0 + let currentRetryDeleteTextFile = 0 if (logger === undefined) { // Dummy logger logger = {} @@ -48,7 +50,10 @@ exports.newFileStorage = function newFileStorage(logger) { fs.readFile(fileLocation, onFileRead) function onFileRead(err, text) { - + let retryTimeToUse = FAST_RETRY_TIME_IN_MILISECONDS + if (currentRetryGetTextFile > MAX_RETRY - 2) { + retryTimeToUse = SLOW_RETRY_TIME_IN_MILISECONDS + } if (err) { if (err.code === 'ENOENT') { // since files are deleted before being replaced, it can happen that it does not exist and after a retry it does. @@ -63,7 +68,7 @@ exports.newFileStorage = function newFileStorage(logger) { } else { fileDoesNotExist = true logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> File does not exist. Retrying. ') - setTimeout(retry, RETRY_TIME_IN_MILISECONDS) + setTimeout(retry, retryTimeToUse) return } } @@ -71,13 +76,13 @@ exports.newFileStorage = function newFileStorage(logger) { logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> Error reading file -> err = ' + err.stack) logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> Error reading file -> filePath = ' + filePath) logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> Error reading file -> err = ' + err.stack) - setTimeout(retry, RETRY_TIME_IN_MILISECONDS) + setTimeout(retry, retryTimeToUse) return } if (text.toString() === "") { logger.write(MODULE_NAME, '[WARN] FileStorage -> getTextFile -> onFileRead -> Read and Empty File -> filePath = ' + filePath) - setTimeout(retry, RETRY_TIME_IN_MILISECONDS) + setTimeout(retry, retryTimeToUse) return } @@ -91,6 +96,7 @@ exports.newFileStorage = function newFileStorage(logger) { } function retry() { + //console.log(new Date(), ' 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) @@ -144,10 +150,14 @@ exports.newFileStorage = function newFileStorage(logger) { fs.writeFile(fileLocation + '.tmp', fileContent, onFileWritenn) function onFileWritenn(err) { + let retryTimeToUse = FAST_RETRY_TIME_IN_MILISECONDS + if (currentRetryWriteTextFile > MAX_RETRY - 2) { + retryTimeToUse = SLOW_RETRY_TIME_IN_MILISECONDS + } if (err) { logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> Error writing file -> file = ' + fileLocation) logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> Error writing file -> err = ' + err.stack) - setTimeout(retry, RETRY_TIME_IN_MILISECONDS) + setTimeout(retry, retryTimeToUse) } else { const fs = require('fs') @@ -161,7 +171,7 @@ exports.newFileStorage = function newFileStorage(logger) { if (code !== '' && code !== 'ENOENT') { logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error renaming file -> file = ' + fileLocation) logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> Error renaming file -> err = ' + err.stack) - setTimeout(retry, RETRY_TIME_IN_MILISECONDS) + setTimeout(retry, retryTimeToUse) } else { const fs = require('fs') @@ -171,7 +181,7 @@ exports.newFileStorage = function newFileStorage(logger) { if (err) { logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onRenamed -> Error renaming file -> file = ' + fileLocation + '.tmp') logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> onFileWriten -> onUnlinked -> onRenamed -> Error renaming file -> err = ' + err.stack) - setTimeout(retry, RETRY_TIME_IN_MILISECONDS) + setTimeout(retry, retryTimeToUse) } else { callBackFunction(global.DEFAULT_OK_RESPONSE) @@ -242,14 +252,14 @@ exports.newFileStorage = function newFileStorage(logger) { } function retry() { - if (currentRetryWriteTextFile < MAX_RETRY) { - currentRetryWriteTextFile++ - logger.write(MODULE_NAME, '[WARN] FileStorage -> createTextFile -> retry -> Will try to write the file again -> Retry #: ' + currentRetryWriteTextFile) + if (currentRetryDeleteTextFile < MAX_RETRY) { + currentRetryDeleteTextFile++ + logger.write(MODULE_NAME, '[WARN] FileStorage -> deleteTextFile -> retry -> Will try to delete the file again -> Retry #: ' + currentRetryDeleteTextFile) createTextFile(filePath, fileContent, callBackFunction) } else { - currentRetryWriteTextFile = 0 - logger.write(MODULE_NAME, '[ERROR] FileStorage -> createTextFile -> retry -> Max retries reached writting a file. Giving up.') - logger.write(MODULE_NAME, '[ERROR] FileStorage -> createTextFile -> retry -> file = ' + fileLocation) + currentRetryDeleteTextFile = 0 + logger.write(MODULE_NAME, '[ERROR] FileStorage -> deleteTextFile -> retry -> Max retries reached deleting a file. Giving up.') + logger.write(MODULE_NAME, '[ERROR] FileStorage -> deleteTextFile -> retry -> file = ' + fileLocation) callBackFunction(global.DEFAULT_FAIL_RESPONSE) } } diff --git a/TaskServer/IndicatorBotProcessMainLoop.js b/TaskServer/IndicatorBotProcessMainLoop.js index aa2cd6ac2..a99c9e97b 100644 --- a/TaskServer/IndicatorBotProcessMainLoop.js +++ b/TaskServer/IndicatorBotProcessMainLoop.js @@ -145,12 +145,11 @@ /* High level log entry */ - console.log(new Date().toISOString() + " " + pad(bot.codeName, 20) + " " + pad(bot.process, 30) + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) - + " Entered into Main Loop # " + pad(Number(bot.loopCounter), 8)); + console.log(new Date().toISOString() + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) + " " + pad(bot.codeName, 20) + " " + 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 processOutput let processExecutionEvents let userBot; let processFramework; @@ -315,7 +314,7 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> Entering function."); } - statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES); + statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES, PROCESS_OUTPUT); statusDependencies.initialize(onInizialized); @@ -494,7 +493,7 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeUserBot -> Entering function."); } - usertBot = USER_BOT_MODULE.newUserBot(bot, logger, COMMONS_MODULE, UTILITIES, fileStorage); + usertBot = USER_BOT_MODULE.newUserBot(bot, logger, COMMONS_MODULE, UTILITIES, FILE_STORAGE); usertBot.initialize(statusDependencies, onInizialized); @@ -595,7 +594,7 @@ switch (err.result) { case global.DEFAULT_OK_RESPONSE.result: { logger.write(MODULE_NAME, "[INFO] run -> loop -> startUserBot -> onFinished -> Execution finished well."); - raiseEventsProcessOutput() + 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. @@ -785,7 +784,7 @@ switch (err.result) { case global.DEFAULT_OK_RESPONSE.result: { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessFramework -> onFinished -> Execution finished well."); - raiseEventsProcessOutput() + 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. @@ -868,81 +867,6 @@ } } - function raiseEventsProcessOutput() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> raiseEventsProcessOutput -> Entering function."); } - - processOutput = PROCESS_OUTPUT.newProcessOutput(bot, logger) - - processOutput.raiseEvents(statusDependencies, onFinished); - - function onFinished(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> raiseEventsProcessOutput -> onFinished -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - function finishProcessExecutionEvents() { try { @@ -1040,6 +964,7 @@ logger.persist(); } + processStopped() callBackFunction(global.DEFAULT_OK_RESPONSE); return; @@ -1058,6 +983,7 @@ 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(); } @@ -1069,18 +995,21 @@ 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; @@ -1152,10 +1081,12 @@ } } - function processHeartBeat(processingDate) { + function processHeartBeat(processingDate, percentage, status) { let event = { seconds: (new Date()).getSeconds(), - processingDate: processingDate + processingDate: processingDate, + percentage: percentage, + status: status } global.SYSTEM_EVENT_HANDLER.raiseEvent(bot.processKey, 'Heartbeat', event) } diff --git a/TaskServer/MultiPeriod.js b/TaskServer/MultiPeriod.js index 672b631ac..d9047fb3f 100644 --- a/TaskServer/MultiPeriod.js +++ b/TaskServer/MultiPeriod.js @@ -312,7 +312,7 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFramesMarketFiles -> periodsLoopBody -> dependencyLoopBody -> getFile -> Entering function."); } - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json"; + let fileName = "Data.json"; if (dependency.dataSet !== "Multi-Period-Market") { @@ -452,11 +452,7 @@ bot.multiPeriodProcessDatetime = new Date(bot.multiPeriodProcessDatetime.valueOf() + ONE_DAY_IN_MILISECONDS); previousDay = new Date(bot.multiPeriodProcessDatetime.valueOf() - ONE_DAY_IN_MILISECONDS); - - if (global.WRITE_LOGS_TO_FILES === 'true') { - logger.newInternalLoop(bot.codeName, bot.process, bot.multiPeriodProcessDatetime); - } - + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFramesDailyFiles -> advanceTime -> bot.multiPeriodProcessDatetime = " + bot.multiPeriodProcessDatetime); } if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFramesDailyFiles -> advanceTime -> previousDay = " + previousDay); } @@ -636,7 +632,7 @@ } else { filePath = dependency.product + '/' + dependency.dataSet + "/" + dateForPath; } - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json"; + let fileName = "Data.json"; dataset.getTextFile(filePath, fileName, onFileReceived); @@ -712,7 +708,7 @@ } else { filePath = dependency.product + '/' + dependency.dataSet + "/" + dateForPath; } - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json"; + let fileName = "Data.json"; dataset.getTextFile(filePath, fileName, onFileReceived); @@ -990,7 +986,7 @@ let fileContent = JSON.stringify(dataRange); - let fileName = '/Data.Range.' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = '/Data.Range.json'; let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + productCodeName + "/" + 'Multi-Period-Daily' + fileName; fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -1009,7 +1005,7 @@ logger.write(MODULE_NAME, "[INFO] start -> writeDataRange -> onFileCreated -> Content written = " + fileContent); } - let key = bot.dataMine + "-" + bot.codeName + "-" + productCodeName + "-" + currentOutputPeriodName + let key = bot.dataMine + "-" + bot.codeName + "-" + productCodeName + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset let event = { dateRange: dataRange } @@ -1061,6 +1057,7 @@ 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); diff --git a/TaskServer/MultiPeriodDaily.js b/TaskServer/MultiPeriodDaily.js index d80782859..516737d4c 100644 --- a/TaskServer/MultiPeriodDaily.js +++ b/TaskServer/MultiPeriodDaily.js @@ -307,6 +307,8 @@ let botNeverRan = true; 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() advanceTime(); @@ -318,11 +320,7 @@ bot.multiPeriodDailyProcessDatetime = new Date(bot.multiPeriodDailyProcessDatetime.valueOf() + ONE_DAY_IN_MILISECONDS); previousDay = new Date(bot.multiPeriodDailyProcessDatetime.valueOf() - ONE_DAY_IN_MILISECONDS); - - if (global.WRITE_LOGS_TO_FILES === 'true') { - logger.newInternalLoop(bot.codeName, bot.process, bot.multiPeriodDailyProcessDatetime); - } - + 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); } @@ -338,6 +336,16 @@ } + /* 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) { @@ -375,10 +383,6 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> processTimeFrames -> periodsLoop -> Entering function."); } - /* Telling the world we are alive and doing well */ - let processingDate = bot.multiPeriodDailyProcessDatetime.getUTCFullYear() + '-' + utilities.pad(bot.multiPeriodDailyProcessDatetime.getUTCMonth() + 1, 2) + '-' + utilities.pad(bot.multiPeriodDailyProcessDatetime.getUTCDate(), 2); - bot.processHeartBeat(processingDate) - /* We will iterate through all posible periods. @@ -455,7 +459,7 @@ } else { filePath = dependency.product + '/' + dependency.dataSet + "/" + dateForPath; } - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json"; + let fileName = "Data.json"; dataset.getTextFile(filePath, fileName, onFileReceived); @@ -525,7 +529,7 @@ } else { filePath = dependency.product + '/' + dependency.dataSet + "/" + dateForPath; } - let fileName = market.baseAsset + '_' + market.quotedAsset + ".json"; + let fileName = "Data.json"; dataset.getTextFile(filePath, fileName, onFileReceived); @@ -759,7 +763,7 @@ let fileContent = JSON.stringify(dataRange); - let fileName = '/Data.Range.' + market.baseAsset + '_' + market.quotedAsset + '.json'; + let fileName = '/Data.Range.json'; let filePath = bot.filePathRoot + "/Output/" + productCodeName + "/" + bot.process + fileName; fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -778,6 +782,13 @@ 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.SYSTEM_EVENT_HANDLER.raiseEvent(key, 'Data Range Updated', event) + callBack(global.DEFAULT_OK_RESPONSE); } } @@ -804,6 +815,7 @@ thisReport.save(callBack); bot.hasTheBotJustStarted = false; + } catch (err) { logger.write(MODULE_NAME, "[ERROR] start -> writeStatusReport -> err = "+ err.stack); diff --git a/TaskServer/MultiPeriodMarket.js b/TaskServer/MultiPeriodMarket.js index 9ba755bb1..4df897da6 100644 --- a/TaskServer/MultiPeriodMarket.js +++ b/TaskServer/MultiPeriodMarket.js @@ -173,7 +173,7 @@ 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 = market.baseAsset + '_' + market.quotedAsset + ".json"; + let fileName = "Data.json"; let filePath if (dependency.dataSet === "Multi-Period-Market") { @@ -338,6 +338,15 @@ 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)) } catch (err) { logger.write(MODULE_NAME, "[ERROR] start -> writeStatusReport -> err = "+ err.stack); diff --git a/TaskServer/ProcessExecutionEvents.js b/TaskServer/ProcessExecutionEvents.js index ed79e1be7..72741eba4 100644 --- a/TaskServer/ProcessExecutionEvents.js +++ b/TaskServer/ProcessExecutionEvents.js @@ -83,6 +83,8 @@ global.SYSTEM_EVENT_HANDLER.listenToEvent(key, 'Process Execution Finished', undefined, callerId, responseCallBack, eventsCallBack) + bot.processHeartBeat(undefined, undefined, "Waiting for " + processThisDependsOn.parentNode.parentNode.name + "->" + processThisDependsOn.parentNode.code.codeName + "->" + processThisDependsOn.code.codeName) + function responseCallBack(message) { if (message.result !== global.DEFAULT_OK_RESPONSE.result) { logger.write(MODULE_NAME, "[ERROR] start -> responseCallBack -> message = " + JSON.stringify(message)) @@ -110,6 +112,8 @@ global.SYSTEM_EVENT_HANDLER.createEventHandler(currentProcessKey, 'Process Execution Started') global.SYSTEM_EVENT_HANDLER.raiseEvent(currentProcessKey, 'Process Execution Started', event) + 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."); } } diff --git a/TaskServer/ProcessOutput.js b/TaskServer/ProcessOutput.js index 6a07bbc34..4d2369ece 100644 --- a/TaskServer/ProcessOutput.js +++ b/TaskServer/ProcessOutput.js @@ -14,7 +14,7 @@ return thisObject; - function raiseEvents(statusDependencies, callBackFunction) { + function raiseEvents(lastFile, callBackFunction) { try { if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] raiseEvents -> Entering function."); } @@ -81,11 +81,9 @@ let product = outputDataset.referenceParent.parentNode.code.codeName let dataset = outputDataset.referenceParent.code.codeName - let statusReport = statusDependencies.reportsByMainUtility.get("Self Reference") - - key = dataMine + "-" + botName + "-" + product + "-" + dataset + key = dataMine + "-" + botName + "-" + product + "-" + dataset + "-" + bot.exchange + "-" + bot.market.baseAsset + '/' + bot.market.quotedAsset let event = { - lastFile: statusReport.file.lastFile + lastFile: lastFile } global.SYSTEM_EVENT_HANDLER.createEventHandler(key, 'Dataset Updated') global.SYSTEM_EVENT_HANDLER.raiseEvent(key, 'Dataset Updated', event) diff --git a/TaskServer/Root.js b/TaskServer/Root.js index 1619c0a99..7ed96f1c7 100644 --- a/TaskServer/Root.js +++ b/TaskServer/Root.js @@ -205,7 +205,7 @@ /* 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.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.market = { baseAsset: global.TASK_NODE.bot.processes[processIndex].marketReference.referenceParent.baseAsset.referenceParent.code.codeName, @@ -225,7 +225,7 @@ botConfig.loopCounter = 0; /* File Path Root */ - botConfig.filePathRoot = botConfig.dataMine + "/" + botConfig.codeName + "/" + botConfig.exchange; + 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 @@ -387,7 +387,6 @@ 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); - console.log(logDisplace + "Root : [INFO] start -> bootingBot -> runSensorBot -> onInitializeReady -> whenStartFinishes -> Bot execution finished sucessfully."); logger.persist(); } else { @@ -452,8 +451,6 @@ logger.write(MODULE_NAME, "[INFO] start -> bootingBot -> runIndicatorBot -> onInitializeReady -> whenStartFinishes -> Bot execution finished sucessfully."); logger.write(MODULE_NAME, "[INFO] start -> bootingBot -> runIndicatorBot -> onInitializeReady -> whenStartFinishes -> Bot Id = " + botId); - - console.log(logDisplace + "Root : [INFO] start -> bootingBot -> runIndicatorBot -> onInitializeReady -> whenStartFinishes -> Bot execution finished sucessfully."); logger.persist(); } else { @@ -518,8 +515,6 @@ logger.write(MODULE_NAME, "[INFO] start -> bootingBot -> runTradingBot -> onInitializeReady -> whenStartFinishes -> Bot execution finished sucessfully."); logger.write(MODULE_NAME, "[INFO] start -> bootingBot -> runTradingBot -> onInitializeReady -> whenStartFinishes -> Bot Id = " + botId); - console.log(logDisplace + "Root : [INFO] start -> bootingBot -> runTradingBot -> onInitializeReady -> whenStartFinishes -> botId = " + botId); - console.log(logDisplace + "Root : [INFO] start -> bootingBot -> runTradingBot -> onInitializeReady -> whenStartFinishes -> Bot execution finished sucessfully."); logger.persist(); } else { @@ -558,7 +553,7 @@ function exitProcessInstance() { global.ENDED_PROCESSES_COUNTER++ - console.log("[INFO] Task Server -> " + global.TASK_NODE.name + " -> exitProcessInstance -> Process #" + global.ENDED_PROCESSES_COUNTER + " from " + global.TOTAL_PROCESS_INSTANCES_CREATED + " exiting."); + //console.log("[INFO] Task Server -> " + global.TASK_NODE.name + " -> exitProcessInstance -> Process #" + global.ENDED_PROCESSES_COUNTER + " from " + global.TOTAL_PROCESS_INSTANCES_CREATED + " exiting."); if (global.ENDED_PROCESSES_COUNTER === global.TOTAL_PROCESS_INSTANCES_CREATED) { global.EXIT_NODE_PROCESS() diff --git a/TaskServer/SensorBotProcessMainLoop.js b/TaskServer/SensorBotProcessMainLoop.js index b8e2c49fc..f73961f20 100644 --- a/TaskServer/SensorBotProcessMainLoop.js +++ b/TaskServer/SensorBotProcessMainLoop.js @@ -56,9 +56,7 @@ return; } USER_BOT_MODULE = {} - if (bot.process === "Hole-Fixing") { - //USER_BOT_MODULE.newUserBot = require(process.env.BOTS_PATH + '/aamasters/AAMasters/bots/AACharly-Sensor-Bot/Hole-Fixing/User.Bot').newUserBot - } + try { USER_BOT_MODULE.newUserBot = eval(text); // TODO This needs to be changed function } catch (err) { @@ -115,7 +113,7 @@ function loop() { try { - + processHeartBeat(undefined, undefined, "Running...") function pad(str, max) { str = str.toString(); return str.length < max ? pad(" " + str, max) : str; @@ -150,12 +148,11 @@ /* High level log entry */ - console.log(new Date().toISOString() + " " + pad(bot.codeName, 20) + " " + pad(bot.process, 30) + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) - + " Entered into Main Loop # " + pad(Number(bot.loopCounter), 8) ) + console.log(new Date().toISOString() + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) + " " + pad(bot.codeName, 20) + " " + 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 processOutput let processExecutionEvents let userBot; let statusDependencies; @@ -319,7 +316,7 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> Entering function."); } - statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES); + statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES, PROCESS_OUTPUT); statusDependencies.initialize(onInizialized); @@ -394,7 +391,7 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeUserBot -> Entering function."); } - usertBot = USER_BOT_MODULE.newUserBot(bot, logger, COMMONS_MODULE, UTILITIES, fileStorage, STATUS_REPORT, exchangeAPI); + usertBot = USER_BOT_MODULE.newUserBot(bot, logger, COMMONS_MODULE, UTILITIES, FILE_STORAGE, STATUS_REPORT, exchangeAPI); usertBot.initialize(statusDependencies, onInizialized); @@ -495,7 +492,7 @@ switch (err.result) { case global.DEFAULT_OK_RESPONSE.result: { logger.write(MODULE_NAME, "[INFO] run -> loop -> startUserBot -> onFinished > Execution finished well."); - raiseEventsProcessOutput() + 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. @@ -578,81 +575,6 @@ } } - function raiseEventsProcessOutput() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> raiseEventsProcessOutput -> Entering function."); } - - processOutput = PROCESS_OUTPUT.newProcessOutput(bot, logger) - - processOutput.raiseEvents(statusDependencies, onFinished); - - function onFinished(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> raiseEventsProcessOutput -> onFinished -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - function finishProcessExecutionEvents() { try { @@ -733,9 +655,6 @@ 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); @@ -754,6 +673,7 @@ clearTimeout(nextLoopTimeoutHandle); clearTimeout(checkLoopHealthHandle); bot.enableCheckLoopHealth = false; + processStopped() callBackFunction(global.DEFAULT_OK_RESPONSE); return; @@ -767,24 +687,14 @@ switch (nextWaitTime) { case 'Normal': { - if (bot.runAtFixedInterval === true) { - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> loopControl -> Fixed Interval Normal exit point reached."); } - if (processConfig.deadWaitTime > 0) { - checkLoopHealthHandle = setTimeout(checkLoopHealth, processConfig.deadWaitTime, bot.loopCounter); - } - if(global.WRITE_LOGS_TO_FILES === 'true'){ - logger.persist(); - } - return; - } else { - 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); - if(global.WRITE_LOGS_TO_FILES === 'true'){ - logger.persist(); - } + 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; @@ -794,6 +704,7 @@ 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.") logger.persist(); } break; @@ -805,6 +716,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.") logger.persist(); } } @@ -817,6 +729,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.") logger.persist(); } } @@ -890,10 +803,12 @@ } } - function processHeartBeat(processingDate) { + function processHeartBeat(processingDate, percentage, status) { let event = { seconds: (new Date()).getSeconds(), - processingDate: processingDate + processingDate: processingDate, + percentage: percentage, + status: status } global.SYSTEM_EVENT_HANDLER.raiseEvent(bot.processKey, 'Heartbeat', event) } diff --git a/TaskServer/Session.js b/TaskServer/Session.js index 3d61e42aa..872258aad 100644 --- a/TaskServer/Session.js +++ b/TaskServer/Session.js @@ -287,6 +287,22 @@ } } + /* Quoted Asset */ + { + if (tradingSystem.parameters.quotedAsset !== undefined) { + if (tradingSystem.parameters.quotedAsset.referenceParent !== undefined) { + if (tradingSystem.parameters.quotedAsset.referenceParent.referenceParent !== undefined) { + + let code = tradingSystem.parameters.quotedAsset.referenceParent.referenceParent.code + + if (code.codeName !== undefined) { + bot.VALUES_TO_USE.quotedAsset = code.codeName; + } + } + } + } + } + /* Time Frame */ if (tradingSystem.parameters.timeFrame !== undefined) { bot.VALUES_TO_USE.timeFrame = tradingSystem.parameters.timeFrame.code.value @@ -398,6 +414,22 @@ } } + /* 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 diff --git a/TaskServer/StatusDependencies.js b/TaskServer/StatusDependencies.js index 176188c16..19e7485ca 100644 --- a/TaskServer/StatusDependencies.js +++ b/TaskServer/StatusDependencies.js @@ -1,4 +1,4 @@ -exports.newStatusDependencies = function newStatusDependencies(BOT, logger, STATUS_REPORT, UTILITIES) { +exports.newStatusDependencies = function newStatusDependencies(BOT, logger, STATUS_REPORT, UTILITIES, PROCESS_OUTPUT) { const FULL_LOG = true; const LOG_FILE_CONTENT = false; @@ -53,7 +53,7 @@ for (let i = 0; i < dependenciesToProcess.length; i++) { - let statusReportModule = STATUS_REPORT.newStatusReport(BOT, logger, UTILITIES); + let statusReportModule = STATUS_REPORT.newStatusReport(BOT, logger, UTILITIES, PROCESS_OUTPUT); logger.write(MODULE_NAME, "[INFO] initialize -> onInitilized -> Initializing Status Report # " + (i + 1)); let statusDependency = dependenciesToProcess[i] diff --git a/TaskServer/StatusReport.js b/TaskServer/StatusReport.js index d6cd7210e..4e1eec387 100644 --- a/TaskServer/StatusReport.js +++ b/TaskServer/StatusReport.js @@ -1,4 +1,4 @@ -exports.newStatusReport = function newStatusReport(BOT, logger, UTILITIES) { +exports.newStatusReport = function newStatusReport(BOT, logger, UTILITIES, PROCESS_OUTPUT) { /* @@ -136,14 +136,16 @@ if (global.LOG_CONTROL[MODULE_NAME].logInfo === true) { logger.write(MODULE_NAME, "[INFO] load -> Entering function."); } - let fileName = "Status.Report." + bot.market.baseAsset + '_' + bot.market.quotedAsset + ".json"; + 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; if (ownerId !== botId) { - let rootPath = statusDependencyNode.dataMine + "/" + statusDependencyNode.bot + "/" + bot.exchange; + + let rootPath = bot.exchange + "/" + bot.market.baseAsset + "-" + bot.market.quotedAsset + "/" + statusDependencyNode.dataMine + "/" + statusDependencyNode.bot + filePath = rootPath + "/Reports/" + sessionPath + statusDependencyNode.process ; } else { filePath = bot.filePathRoot + "/Reports/" + sessionPath + statusDependencyNode.process ; @@ -233,7 +235,7 @@ return; } - let fileName = "Status.Report." + bot.market.baseAsset + '_' + bot.market.quotedAsset + ".json"; + let fileName = "Status.Report.json"; let filePath = bot.filePathRoot + "/Reports/" + sessionPath + statusDependencyNode.process; filePath += '/' + fileName @@ -255,7 +257,12 @@ logger.write(MODULE_NAME, "[INFO] save -> onFileCreated -> Content written = " + fileContent); } - callBackFunction(global.DEFAULT_OK_RESPONSE); + /* All good, lets emit the event that means data has been updated. */ + + let processOutput = PROCESS_OUTPUT.newProcessOutput(bot, logger) + + processOutput.raiseEvents(thisObject.file.lastFile, callBackFunction); + return; } diff --git a/TaskServer/TradingBot.js b/TaskServer/TradingBot.js index 3129df6d7..7dacf7836 100644 --- a/TaskServer/TradingBot.js +++ b/TaskServer/TradingBot.js @@ -103,7 +103,7 @@ } } - /* From here we have more or less the same we used to have at JASON */ + const TRADING_SIMULATION = require('./TradingSimulation.js'); let tradingSimulation = TRADING_SIMULATION.newTradingSimulation(bot, logger, UTILITIES); @@ -204,6 +204,7 @@ record.minimumBalanceB + "," + record.maximumBalanceB + "," + record.baseAsset + "," + + record.quotedAsset + "," + record.positionPeriods + "," + record.positionDays + "," + record.distanceToLastTriggerOn + "," + @@ -219,10 +220,8 @@ fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + SIMULATED_RECORDS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrameLabel; + 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); @@ -297,10 +296,9 @@ fileContent = "[" + fileContent + "]"; fileContent = "[" + JSON.stringify(tradingSystem) + "," + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + CONDITIONS_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrameLabel; + 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); @@ -367,10 +365,9 @@ } fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + STRATEGIES_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrameLabel; + 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); @@ -440,10 +437,9 @@ } fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + TRADES_FOLDER_NAME + "/" + "Multi-Period-Market" + "/" + timeFrameLabel; + 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); @@ -466,9 +462,6 @@ } - /* Emit event that signals that simulation files were updated */ - global.SYSTEM_EVENT_HANDLER.raiseEvent('Jason-Multi-Period', 'Simulation Files Updated') - callBackFunction(global.DEFAULT_OK_RESPONSE); } @@ -555,6 +548,7 @@ record.minimumBalanceB + "," + record.maximumBalanceB + "," + record.baseAsset + "," + + record.quotedAsset + "," + record.positionPeriods + "," + record.positionDays + "]"; @@ -566,10 +560,8 @@ fileContent = "[" + fileContent + "]"; - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + SIMULATED_RECORDS_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel; + let fileName = 'Data.json'; + let filePath = bot.filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + SIMULATED_RECORDS_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel; filePath += '/' + fileName fileStorage.createTextFile(filePath, fileContent + '\n', onFileCreated); @@ -661,6 +653,7 @@ record.minimumBalanceB + "," + record.maximumBalanceB + "," + record.baseAsset + "," + + record.quotedAsset + "," + record.positionPeriods + "," + record.positionDays + "]"; @@ -673,10 +666,8 @@ fileContent = "[" + fileContent + "]"; let dateForPath = currentDay.getUTCFullYear() + '/' + utilities.pad(currentDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(currentDay.getUTCDate(), 2); - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + SIMULATED_RECORDS_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel + "/" + dateForPath; + 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); @@ -761,10 +752,8 @@ fileContent = "[" + JSON.stringify(tradingSystem) + "," + fileContent + "]"; let dateForPath = currentDay.getUTCFullYear() + '/' + utilities.pad(currentDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(currentDay.getUTCDate(), 2); - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + CONDITIONS_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel + "/" + dateForPath; + 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); @@ -838,10 +827,8 @@ fileContent = "[" + fileContent + "]"; let dateForPath = currentDay.getUTCFullYear() + '/' + utilities.pad(currentDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(currentDay.getUTCDate(), 2); - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + STRATEGIES_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel + "/" + dateForPath; + 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); @@ -918,10 +905,8 @@ fileContent = "[" + fileContent + "]"; let dateForPath = currentDay.getUTCFullYear() + '/' + utilities.pad(currentDay.getUTCMonth() + 1, 2) + '/' + utilities.pad(currentDay.getUTCDate(), 2); - let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - - let filePathRoot = bot.dataMine + "/" + bot.codeName + "/" + bot.exchange; - let filePath = filePathRoot + "/Output/" + bot.SESSION.folderName + "/" + TRADES_FOLDER_NAME + "/" + "Multi-Period-Daily" + "/" + timeFrameLabel + "/" + dateForPath; + 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); @@ -944,9 +929,6 @@ } - /* Emit event that signals that simulation files were updated */ - global.SYSTEM_EVENT_HANDLER.raiseEvent('Jason-Multi-Period', 'Simulation Files Updated') - callBackFunction(global.DEFAULT_OK_RESPONSE); } diff --git a/TaskServer/TradingBotProcessMainLoop.js b/TaskServer/TradingBotProcessMainLoop.js index 85ae4182d..3820e6d33 100644 --- a/TaskServer/TradingBotProcessMainLoop.js +++ b/TaskServer/TradingBotProcessMainLoop.js @@ -69,7 +69,6 @@ } USER_BOT_MODULE = {} - //USER_BOT_MODULE.newUserBot = require(process.env.BOTS_PATH + '/aamasters/AAMasters/bots/AAJason-Trading-Engine-Bot/Multi-Period/User.Bot').newUserBot // Use this for a better debugging experience. You need to bring this js module to this folder in order to work. USER_BOT_MODULE.newUserBot = eval(text); // Use this for production filePath = bot.dataMine + "/" + "bots" + "/" + bot.repo; @@ -86,7 +85,6 @@ } USER_BOT_COMMONS = {} - //USER_BOT_COMMONS.newCommons = require(process.env.BOTS_PATH + '/aamasters/AAMasters/bots/AAJason-Trading-Engine-Bot/Commons').newCommons // Use this for a better debugging experience. You need to bring this js module to this folder in order to work. USER_BOT_COMMONS.newCommons = eval(text); // Use this for production session.initialize(onSessionInitialized) @@ -119,6 +117,7 @@ try { + processHeartBeat(undefined, undefined, "Running...") function pad(str, max) { str = str.toString(); return str.length < max ? pad(" " + str, max) : str; @@ -159,8 +158,8 @@ /* High level log entry */ - console.log(new Date().toISOString() + " " + pad(bot.codeName, 20) + " " + pad(bot.process, 30) + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) - + " Entered into Main Loop # " + pad(Number(bot.loopCounter), 8) + " " + bot.sessionKey ) + console.log(new Date().toISOString() + " " + pad(bot.exchange, 20) + " " + pad(bot.market.baseAsset + '/' + bot.market.quotedAsset, 10) + " " + pad(bot.codeName, 20) + " " + pad(bot.process, 30) + + " Main Loop # " + pad(Number(bot.loopCounter), 8) + " " + bot.sessionKey) /* Checking if we need to need to emit any event */ @@ -189,7 +188,6 @@ /* We will prepare first the infraestructure needed for the bot to run. There are 3 modules we need to sucessfullly initialize first. */ - let processOutput let processExecutionEvents let userBot; let processFramework; @@ -352,7 +350,7 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> initializeStatusDependencies -> Entering function."); } - statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES); + statusDependencies = STATUS_DEPENDENCIES.newStatusDependencies(bot, logger, STATUS_REPORT, UTILITIES, PROCESS_OUTPUT); statusDependencies.initialize(onInizialized); @@ -701,7 +699,7 @@ case global.DEFAULT_OK_RESPONSE.result: { logger.write(MODULE_NAME, "[INFO] run -> loop -> startProcessFramework -> onFinished -> Execution finished well."); nextWaitTime = 'Normal'; - raiseEventsProcessOutput() + 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. @@ -785,81 +783,6 @@ } } - function raiseEventsProcessOutput() { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> raiseEventsProcessOutput -> Entering function."); } - - processOutput = PROCESS_OUTPUT.newProcessOutput(bot, logger) - - processOutput.raiseEvents(statusDependencies, onFinished); - - function onFinished(err) { - - try { - - if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> raiseEventsProcessOutput -> onFinished -> Entering function."); } - - switch (err.result) { - case global.DEFAULT_OK_RESPONSE.result: { - logger.write(MODULE_NAME, "[INFO] run -> loop -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> onFinished -> Unhandled err.result received. -> err.result = " + err.result); - logger.write(MODULE_NAME, "[ERROR] run -> loop -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> 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 -> raiseEventsProcessOutput -> err = " + err.stack); - logger.persist(); - clearInterval(fixedTimeLoopIntervalHandle); - clearTimeout(nextLoopTimeoutHandle); - clearTimeout(checkLoopHealthHandle); - bot.enableCheckLoopHealth = false; - callBackFunction(err); - } - } - function finishProcessExecutionEvents() { try { @@ -958,6 +881,7 @@ } global.SYSTEM_EVENT_HANDLER.raiseEvent(bot.sessionKey, 'Stopped') + processStopped() callBackFunction(global.DEFAULT_OK_RESPONSE); return; @@ -983,6 +907,7 @@ checkLoopHealthHandle = setTimeout(checkLoopHealth, processConfig.deadWaitTime, bot.loopCounter); } nextLoopTimeoutHandle = setTimeout(loop, waitTime); + processHeartBeat(undefined, undefined, "Waiting " + waitTime / 1000 + " seconds for next execution.") if (global.WRITE_LOGS_TO_FILES === 'true') { logger.persist(); } @@ -994,18 +919,21 @@ 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; @@ -1078,10 +1006,12 @@ } } - function processHeartBeat(processingDate) { + function processHeartBeat(processingDate, percentage, status) { let event = { seconds: (new Date()).getSeconds(), - processingDate: processingDate + processingDate: processingDate, + percentage: percentage, + status: status } global.SYSTEM_EVENT_HANDLER.raiseEvent(bot.processKey, 'Heartbeat', event) } diff --git a/TaskServer/TradingSimulation.js b/TaskServer/TradingSimulation.js index 06c48ab4a..59413023f 100644 --- a/TaskServer/TradingSimulation.js +++ b/TaskServer/TradingSimulation.js @@ -2,9 +2,9 @@ const FULL_LOG = true; const LOG_FILE_CONTENT = false; - - const MODULE_NAME = "Trading Simulation -> " + bot.SESSION.name; 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 = { @@ -570,7 +570,7 @@ 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) } - console.log("Jason -> " + MODULE_NAME + " -> runSimulation -> loop -> Simulation " + bot.sessionKey + " Loop # " + currentCandleIndex + " @ " + processingDate) + console.log("Trading-Engine -> " + MODULE_NAME + " -> runSimulation -> loop -> Simulation " + bot.sessionKey + " Loop # " + currentCandleIndex + " @ " + processingDate) bot.sessionHeartBeat(processingDate) // tell the world we are alive and doing well } @@ -658,7 +658,7 @@ let key = j + '-' + 'triggerStage' + '-' + 'triggerOn' + '-' + k + '-' + m; if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode); + newCondition(key, condition.javascriptCode, chart); } } } @@ -676,7 +676,7 @@ let key = j + '-' + 'triggerStage' + '-' + 'triggerOff' + '-' + k + '-' + m; if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode); + newCondition(key, condition.javascriptCode, chart); } } } @@ -694,7 +694,7 @@ let key = j + '-' + 'triggerStage' + '-' + 'takePosition' + '-' + k + '-' + m; if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode); + newCondition(key, condition.javascriptCode, chart); } } } @@ -825,7 +825,7 @@ let key = j + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'stopLoss' + '-' + p + '-' + k + '-' + m; if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode); + newCondition(key, condition.javascriptCode, chart); } } } @@ -891,7 +891,7 @@ let key = j + '-' + 'openStage' + '-' + 'initialDefinition' + '-' + 'takeProfit' + '-' + p + '-' + k + '-' + m; if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode); + newCondition(key, condition.javascriptCode, chart); } } } @@ -967,7 +967,7 @@ let key = j + '-' + 'manageStage' + '-' + 'stopLoss' + '-' + p + '-' + k + '-' + m; if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode); + newCondition(key, condition.javascriptCode, chart); } } } @@ -1034,7 +1034,7 @@ let key = j + '-' + 'manageStage' + '-' + 'takeProfit' + '-' + p + '-' + k + '-' + m; if (condition.javascriptCode !== undefined) { - newCondition(key, condition.javascriptCode); + newCondition(key, condition.javascriptCode, chart); } } } @@ -1043,7 +1043,7 @@ } } - function newCondition(key, node) { + function newCondition(key, node, chart) { let condition; let error = '' @@ -1103,6 +1103,14 @@ maximumBalance = bot.VALUES_TO_USE.maximumBalanceB } + if (minimumBalance === undefined) { + minimumBalance = 0 + } + + if (maximumBalance === undefined) { + maximumBalance = 10000000000000000 + } + if (balance > minimumBalance && balance < maximumBalance) { /* @@ -2488,6 +2496,7 @@ } let quotedBaseAsset = '"' + bot.VALUES_TO_USE.baseAsset + '"' + let quotedQuotedAsset = '"' + bot.VALUES_TO_USE.quotedAsset + '"' simulationRecord = { begin: candle.begin, @@ -2524,6 +2533,7 @@ minimumBalanceB: bot.VALUES_TO_USE.minimumBalanceB, maximumBalanceB: bot.VALUES_TO_USE.maximumBalanceB, baseAsset: quotedBaseAsset, + quotedAsset: quotedQuotedAsset, positionPeriods: positionPeriods, positionDays: positionDays, distanceToLastTriggerOn: distanceToLast.triggerOn, diff --git a/TaskServer/server.js b/TaskServer/server.js index 8d5c2d432..947341e30 100644 --- a/TaskServer/server.js +++ b/TaskServer/server.js @@ -25,6 +25,8 @@ global.CUSTOM_FAIL_RESPONSE = { message: "Custom Message" }; +const ONE_DAY_IN_MILISECONDS = 24 * 60 * 60 * 1000; + /* Process Events */ process.on('uncaughtException', function (err) { @@ -177,7 +179,7 @@ function bootLoader() { } 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)); + 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); continue } @@ -260,3 +262,25 @@ 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 percentage = (currentDays - fromDays) * 100 / (lastDays - fromDays) + if ((lastDays - fromDays) === 0) { + percentage = 100 + } + 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) + + if (day1Days === day2Days) { + return true + } else { + return false + } +} + diff --git a/WebServer/.env b/WebServer/.env index 7402606ae..f7a8d4bc0 100644 --- a/WebServer/.env +++ b/WebServer/.env @@ -18,4 +18,6 @@ INTER_PROCESS_FILES_PATH=../Inter-Process-Files STORAGE_PATH=../Data-Storage PLOTTERS_PATH=../Legacy-Code PATH_TO_WEB_SERVER =./ +APP_SCHEMA_PATH=../ +WORKSPACE_PATH=../ diff --git a/WebServer/Images/Icons/style-01/help.png b/WebServer/Images/Icons/style-01/help.png new file mode 100644 index 000000000..373a0470f Binary files /dev/null and b/WebServer/Images/Icons/style-01/help.png differ diff --git a/WebServer/Images/Icons/style-01/key-a.png b/WebServer/Images/Icons/style-01/key-a.png new file mode 100644 index 000000000..8809841e7 Binary files /dev/null and b/WebServer/Images/Icons/style-01/key-a.png differ diff --git a/WebServer/Images/Icons/style-01/key-m.png b/WebServer/Images/Icons/style-01/key-m.png new file mode 100644 index 000000000..9415cb746 Binary files /dev/null and b/WebServer/Images/Icons/style-01/key-m.png differ diff --git a/WebServer/Images/Icons/style-01/key-r.png b/WebServer/Images/Icons/style-01/key-r.png new file mode 100644 index 000000000..3079372a7 Binary files /dev/null and b/WebServer/Images/Icons/style-01/key-r.png differ diff --git a/WebServer/Images/superalgos-platform.jpg b/WebServer/Images/superalgos-platform.jpg index dab376c25..7aecf4958 100644 Binary files a/WebServer/Images/superalgos-platform.jpg and b/WebServer/Images/superalgos-platform.jpg differ diff --git a/WebServer/Scripts/AppLoader.js b/WebServer/Scripts/AppLoader.js index f2d156069..9e86ba000 100644 --- a/WebServer/Scripts/AppLoader.js +++ b/WebServer/Scripts/AppLoader.js @@ -29,7 +29,6 @@ function newAppLoader() { 'AppSchema.js', 'Workspace.js', - 'MQService', 'ChartingSpace/EdgeEditor.js', 'ChartingSpace/ChartUtilities.js', @@ -51,11 +50,13 @@ function newAppLoader() { 'DesignSpace/Workspace/FunctionLibraries/ShortcutKeys.js', 'DesignSpace/Workspace/FunctionLibraries/OnFocus.js', 'DesignSpace/Workspace/FunctionLibraries/SuperScripts.js', - + 'DesignSpace/Workspace/FunctionLibraries/CCXTFunctions.js', + 'Utilities/RoundedCornersBackground.js', 'Panels/LayersPanel.js', - 'Panels/PanelTabButton.js', + 'Panels/UpDownButton.js', + 'Panels/LeftRightButton.js', 'Panels/Layer.js', 'Panels/PlotterPanel.js', 'Panels/PanelsVisibleButton.js', @@ -171,22 +172,24 @@ function newAppLoader() { function defaultPlotters() { return [ - 'Plotters/AAMasters/Plotters-Candles-Volumes/Candles.js', - 'Plotters/AAMasters/Plotters-Candles-Volumes/CandlePanel.js', - 'Plotters/AAMasters/Plotters-Candles-Volumes/Volumes.js', - 'Plotters/AAMasters/Plotters-Candles-Volumes/VolumePanel.js', - 'Plotters/AAMasters/Plotters-Stairs-Patterns/CandleStairs.js', - 'Plotters/AAMasters/Plotters-Stairs-Patterns/VolumeStairs.js', - 'Plotters/AAMasters/Plotters-Bollinger-Bands/BollingerBands.js', - 'Plotters/AAMasters/Plotters-Bollinger-Bands/BollingerBandsPanel.js', - 'Plotters/AAMasters/Plotters-Bollinger-Bands/PercentageBandwidth.js', - 'Plotters/AAMasters/Plotters-Trading-Simulation/TradingSimulation.js', - 'Plotters/AAMasters/Plotters-Trading-Simulation/TradingSimulationPanel.js', - 'Plotters/AAMasters/Plotters-Trading-Simulation/Conditions.js', - 'Plotters/AAMasters/Plotters-Trading-Simulation/Strategies.js', - 'Plotters/AAMasters/Plotters-Trading-Simulation/Trades.js', - 'Plotters/AAMasters/Plotters-Trading-Simulation/SimulationExecution.js', - 'Plotters/AAMasters/Plotters-Trading-Simulation/SimulationExecutionPanel.js' + '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-Stairs-Patterns/CandleStairs.js', + 'Plotters/Masters/Plotters-Stairs-Patterns/VolumeStairs.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' ] } diff --git a/WebServer/index.html b/WebServer/index.html index e0254bd0c..73c9bc299 100644 --- a/WebServer/index.html +++ b/WebServer/index.html @@ -5,7 +5,7 @@ Superalgos + content="Crypto Trading on an Industrial Scale"> @@ -19,7 +19,6 @@ - - - - - -
{{ "%+010d"|sprintf:-123 }}
-
{{ "%+010d"|vsprintf:[-123] }}
-
{{ "%+010d"|fmt:-123 }}
-
{{ "%+010d"|vfmt:[-123] }}
-
{{ "I've got %2$d apples and %1$d oranges."|fmt:4:2 }}
-
{{ "I've got %(apples)d apples and %(oranges)d oranges."|fmt:{apples: 2, oranges: 4} }}
- - - - diff --git a/WebServer/node_modules/sprintf-js/dist/angular-sprintf.min.js b/WebServer/node_modules/sprintf-js/dist/angular-sprintf.min.js deleted file mode 100644 index dbaf744d8..000000000 --- a/WebServer/node_modules/sprintf-js/dist/angular-sprintf.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! sprintf-js | Alexandru Marasteanu (http://alexei.ro/) | BSD-3-Clause */ - -angular.module("sprintf",[]).filter("sprintf",function(){return function(){return sprintf.apply(null,arguments)}}).filter("fmt",["$filter",function(a){return a("sprintf")}]).filter("vsprintf",function(){return function(a,b){return vsprintf(a,b)}}).filter("vfmt",["$filter",function(a){return a("vsprintf")}]); -//# sourceMappingURL=angular-sprintf.min.map \ No newline at end of file diff --git a/WebServer/node_modules/sprintf-js/dist/sprintf.min.js b/WebServer/node_modules/sprintf-js/dist/sprintf.min.js deleted file mode 100644 index dc61e51ad..000000000 --- a/WebServer/node_modules/sprintf-js/dist/sprintf.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! sprintf-js | Alexandru Marasteanu (http://alexei.ro/) | BSD-3-Clause */ - -!function(a){function b(){var a=arguments[0],c=b.cache;return c[a]&&c.hasOwnProperty(a)||(c[a]=b.parse(a)),b.format.call(null,c[a],arguments)}function c(a){return Object.prototype.toString.call(a).slice(8,-1).toLowerCase()}function d(a,b){return Array(b+1).join(a)}var e={not_string:/[^s]/,number:/[diefg]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijosuxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[\+\-]/};b.format=function(a,f){var g,h,i,j,k,l,m,n=1,o=a.length,p="",q=[],r=!0,s="";for(h=0;o>h;h++)if(p=c(a[h]),"string"===p)q[q.length]=a[h];else if("array"===p){if(j=a[h],j[2])for(g=f[n],i=0;i=0),j[8]){case"b":g=g.toString(2);break;case"c":g=String.fromCharCode(g);break;case"d":case"i":g=parseInt(g,10);break;case"j":g=JSON.stringify(g,null,j[6]?parseInt(j[6]):0);break;case"e":g=j[7]?g.toExponential(j[7]):g.toExponential();break;case"f":g=j[7]?parseFloat(g).toFixed(j[7]):parseFloat(g);break;case"g":g=j[7]?parseFloat(g).toPrecision(j[7]):parseFloat(g);break;case"o":g=g.toString(8);break;case"s":g=(g=String(g))&&j[7]?g.substring(0,j[7]):g;break;case"u":g>>>=0;break;case"x":g=g.toString(16);break;case"X":g=g.toString(16).toUpperCase()}e.json.test(j[8])?q[q.length]=g:(!e.number.test(j[8])||r&&!j[3]?s="":(s=r?"+":"-",g=g.toString().replace(e.sign,"")),l=j[4]?"0"===j[4]?"0":j[4].charAt(1):" ",m=j[6]-(s+g).length,k=j[6]&&m>0?d(l,m):"",q[q.length]=j[5]?s+g+k:"0"===l?s+k+g:k+s+g)}return q.join("")},b.cache={},b.parse=function(a){for(var b=a,c=[],d=[],f=0;b;){if(null!==(c=e.text.exec(b)))d[d.length]=c[0];else if(null!==(c=e.modulo.exec(b)))d[d.length]="%";else{if(null===(c=e.placeholder.exec(b)))throw new SyntaxError("[sprintf] unexpected placeholder");if(c[2]){f|=1;var g=[],h=c[2],i=[];if(null===(i=e.key.exec(h)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(g[g.length]=i[1];""!==(h=h.substring(i[0].length));)if(null!==(i=e.key_access.exec(h)))g[g.length]=i[1];else{if(null===(i=e.index_access.exec(h)))throw new SyntaxError("[sprintf] failed to parse named argument key");g[g.length]=i[1]}c[2]=g}else f|=2;if(3===f)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");d[d.length]=c}b=b.substring(c[0].length)}return d};var f=function(a,c,d){return d=(c||[]).slice(0),d.splice(0,0,a),b.apply(null,d)};"undefined"!=typeof exports?(exports.sprintf=b,exports.vsprintf=f):(a.sprintf=b,a.vsprintf=f,"function"==typeof define&&define.amd&&define(function(){return{sprintf:b,vsprintf:f}}))}("undefined"==typeof window?this:window); -//# sourceMappingURL=sprintf.min.map \ No newline at end of file diff --git a/WebServer/node_modules/sprintf-js/gruntfile.js b/WebServer/node_modules/sprintf-js/gruntfile.js deleted file mode 100644 index 246e1c3b9..000000000 --- a/WebServer/node_modules/sprintf-js/gruntfile.js +++ /dev/null @@ -1,36 +0,0 @@ -module.exports = function(grunt) { - grunt.initConfig({ - pkg: grunt.file.readJSON("package.json"), - - uglify: { - options: { - banner: "/*! <%= pkg.name %> | <%= pkg.author %> | <%= pkg.license %> */\n", - sourceMap: true - }, - build: { - files: [ - { - src: "src/sprintf.js", - dest: "dist/sprintf.min.js" - }, - { - src: "src/angular-sprintf.js", - dest: "dist/angular-sprintf.min.js" - } - ] - } - }, - - watch: { - js: { - files: "src/*.js", - tasks: ["uglify"] - } - } - }) - - grunt.loadNpmTasks("grunt-contrib-uglify") - grunt.loadNpmTasks("grunt-contrib-watch") - - grunt.registerTask("default", ["uglify", "watch"]) -} diff --git a/WebServer/node_modules/sprintf-js/package.json b/WebServer/node_modules/sprintf-js/package.json deleted file mode 100644 index 5ecd9b8d9..000000000 --- a/WebServer/node_modules/sprintf-js/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "_args": [ - [ - "sprintf-js@1.0.3", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "sprintf-js@1.0.3", - "_id": "sprintf-js@1.0.3", - "_inBundle": false, - "_integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "_location": "/sprintf-js", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "sprintf-js@1.0.3", - "name": "sprintf-js", - "escapedName": "sprintf-js", - "rawSpec": "1.0.3", - "saveSpec": null, - "fetchSpec": "1.0.3" - }, - "_requiredBy": [ - "/argparse" - ], - "_resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "_spec": "1.0.3", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Alexandru Marasteanu", - "email": "hello@alexei.ro", - "url": "http://alexei.ro/" - }, - "bugs": { - "url": "https://github.com/alexei/sprintf.js/issues" - }, - "description": "JavaScript sprintf implementation", - "devDependencies": { - "grunt": "*", - "grunt-contrib-uglify": "*", - "grunt-contrib-watch": "*", - "mocha": "*" - }, - "homepage": "https://github.com/alexei/sprintf.js#readme", - "license": "BSD-3-Clause", - "main": "src/sprintf.js", - "name": "sprintf-js", - "repository": { - "type": "git", - "url": "git+https://github.com/alexei/sprintf.js.git" - }, - "scripts": { - "test": "mocha test/test.js" - }, - "version": "1.0.3" -} diff --git a/WebServer/node_modules/sprintf-js/src/angular-sprintf.js b/WebServer/node_modules/sprintf-js/src/angular-sprintf.js deleted file mode 100644 index 9c69123be..000000000 --- a/WebServer/node_modules/sprintf-js/src/angular-sprintf.js +++ /dev/null @@ -1,18 +0,0 @@ -angular. - module("sprintf", []). - filter("sprintf", function() { - return function() { - return sprintf.apply(null, arguments) - } - }). - filter("fmt", ["$filter", function($filter) { - return $filter("sprintf") - }]). - filter("vsprintf", function() { - return function(format, argv) { - return vsprintf(format, argv) - } - }). - filter("vfmt", ["$filter", function($filter) { - return $filter("vsprintf") - }]) diff --git a/WebServer/node_modules/sprintf-js/src/sprintf.js b/WebServer/node_modules/sprintf-js/src/sprintf.js deleted file mode 100644 index c0fc7c08b..000000000 --- a/WebServer/node_modules/sprintf-js/src/sprintf.js +++ /dev/null @@ -1,208 +0,0 @@ -(function(window) { - var re = { - not_string: /[^s]/, - number: /[diefg]/, - json: /[j]/, - not_json: /[^j]/, - text: /^[^\x25]+/, - modulo: /^\x25{2}/, - placeholder: /^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijosuxX])/, - key: /^([a-z_][a-z_\d]*)/i, - key_access: /^\.([a-z_][a-z_\d]*)/i, - index_access: /^\[(\d+)\]/, - sign: /^[\+\-]/ - } - - function sprintf() { - var key = arguments[0], cache = sprintf.cache - if (!(cache[key] && cache.hasOwnProperty(key))) { - cache[key] = sprintf.parse(key) - } - return sprintf.format.call(null, cache[key], arguments) - } - - sprintf.format = function(parse_tree, argv) { - var cursor = 1, tree_length = parse_tree.length, node_type = "", arg, output = [], i, k, match, pad, pad_character, pad_length, is_positive = true, sign = "" - for (i = 0; i < tree_length; i++) { - node_type = get_type(parse_tree[i]) - if (node_type === "string") { - output[output.length] = parse_tree[i] - } - else if (node_type === "array") { - match = parse_tree[i] // convenience purposes only - if (match[2]) { // keyword argument - arg = argv[cursor] - for (k = 0; k < match[2].length; k++) { - if (!arg.hasOwnProperty(match[2][k])) { - throw new Error(sprintf("[sprintf] property '%s' does not exist", match[2][k])) - } - arg = arg[match[2][k]] - } - } - else if (match[1]) { // positional argument (explicit) - arg = argv[match[1]] - } - else { // positional argument (implicit) - arg = argv[cursor++] - } - - if (get_type(arg) == "function") { - arg = arg() - } - - if (re.not_string.test(match[8]) && re.not_json.test(match[8]) && (get_type(arg) != "number" && isNaN(arg))) { - throw new TypeError(sprintf("[sprintf] expecting number but found %s", get_type(arg))) - } - - if (re.number.test(match[8])) { - is_positive = arg >= 0 - } - - switch (match[8]) { - case "b": - arg = arg.toString(2) - break - case "c": - arg = String.fromCharCode(arg) - break - case "d": - case "i": - arg = parseInt(arg, 10) - break - case "j": - arg = JSON.stringify(arg, null, match[6] ? parseInt(match[6]) : 0) - break - case "e": - arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential() - break - case "f": - arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg) - break - case "g": - arg = match[7] ? parseFloat(arg).toPrecision(match[7]) : parseFloat(arg) - break - case "o": - arg = arg.toString(8) - break - case "s": - arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg) - break - case "u": - arg = arg >>> 0 - break - case "x": - arg = arg.toString(16) - break - case "X": - arg = arg.toString(16).toUpperCase() - break - } - if (re.json.test(match[8])) { - output[output.length] = arg - } - else { - if (re.number.test(match[8]) && (!is_positive || match[3])) { - sign = is_positive ? "+" : "-" - arg = arg.toString().replace(re.sign, "") - } - else { - sign = "" - } - pad_character = match[4] ? match[4] === "0" ? "0" : match[4].charAt(1) : " " - pad_length = match[6] - (sign + arg).length - pad = match[6] ? (pad_length > 0 ? str_repeat(pad_character, pad_length) : "") : "" - output[output.length] = match[5] ? sign + arg + pad : (pad_character === "0" ? sign + pad + arg : pad + sign + arg) - } - } - } - return output.join("") - } - - sprintf.cache = {} - - sprintf.parse = function(fmt) { - var _fmt = fmt, match = [], parse_tree = [], arg_names = 0 - while (_fmt) { - if ((match = re.text.exec(_fmt)) !== null) { - parse_tree[parse_tree.length] = match[0] - } - else if ((match = re.modulo.exec(_fmt)) !== null) { - parse_tree[parse_tree.length] = "%" - } - else if ((match = re.placeholder.exec(_fmt)) !== null) { - if (match[2]) { - arg_names |= 1 - var field_list = [], replacement_field = match[2], field_match = [] - if ((field_match = re.key.exec(replacement_field)) !== null) { - field_list[field_list.length] = field_match[1] - while ((replacement_field = replacement_field.substring(field_match[0].length)) !== "") { - if ((field_match = re.key_access.exec(replacement_field)) !== null) { - field_list[field_list.length] = field_match[1] - } - else if ((field_match = re.index_access.exec(replacement_field)) !== null) { - field_list[field_list.length] = field_match[1] - } - else { - throw new SyntaxError("[sprintf] failed to parse named argument key") - } - } - } - else { - throw new SyntaxError("[sprintf] failed to parse named argument key") - } - match[2] = field_list - } - else { - arg_names |= 2 - } - if (arg_names === 3) { - throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported") - } - parse_tree[parse_tree.length] = match - } - else { - throw new SyntaxError("[sprintf] unexpected placeholder") - } - _fmt = _fmt.substring(match[0].length) - } - return parse_tree - } - - var vsprintf = function(fmt, argv, _argv) { - _argv = (argv || []).slice(0) - _argv.splice(0, 0, fmt) - return sprintf.apply(null, _argv) - } - - /** - * helpers - */ - function get_type(variable) { - return Object.prototype.toString.call(variable).slice(8, -1).toLowerCase() - } - - function str_repeat(input, multiplier) { - return Array(multiplier + 1).join(input) - } - - /** - * export to either browser or node.js - */ - if (typeof exports !== "undefined") { - exports.sprintf = sprintf - exports.vsprintf = vsprintf - } - else { - window.sprintf = sprintf - window.vsprintf = vsprintf - - if (typeof define === "function" && define.amd) { - define(function() { - return { - sprintf: sprintf, - vsprintf: vsprintf - } - }) - } - } -})(typeof window === "undefined" ? this : window); diff --git a/WebServer/node_modules/sprintf-js/test/test.js b/WebServer/node_modules/sprintf-js/test/test.js deleted file mode 100644 index 6f57b2538..000000000 --- a/WebServer/node_modules/sprintf-js/test/test.js +++ /dev/null @@ -1,82 +0,0 @@ -var assert = require("assert"), - sprintfjs = require("../src/sprintf.js"), - sprintf = sprintfjs.sprintf, - vsprintf = sprintfjs.vsprintf - -describe("sprintfjs", function() { - var pi = 3.141592653589793 - - it("should return formated strings for simple placeholders", function() { - assert.equal("%", sprintf("%%")) - assert.equal("10", sprintf("%b", 2)) - assert.equal("A", sprintf("%c", 65)) - assert.equal("2", sprintf("%d", 2)) - assert.equal("2", sprintf("%i", 2)) - assert.equal("2", sprintf("%d", "2")) - assert.equal("2", sprintf("%i", "2")) - assert.equal('{"foo":"bar"}', sprintf("%j", {foo: "bar"})) - assert.equal('["foo","bar"]', sprintf("%j", ["foo", "bar"])) - assert.equal("2e+0", sprintf("%e", 2)) - assert.equal("2", sprintf("%u", 2)) - assert.equal("4294967294", sprintf("%u", -2)) - assert.equal("2.2", sprintf("%f", 2.2)) - assert.equal("3.141592653589793", sprintf("%g", pi)) - assert.equal("10", sprintf("%o", 8)) - assert.equal("%s", sprintf("%s", "%s")) - assert.equal("ff", sprintf("%x", 255)) - assert.equal("FF", sprintf("%X", 255)) - assert.equal("Polly wants a cracker", sprintf("%2$s %3$s a %1$s", "cracker", "Polly", "wants")) - assert.equal("Hello world!", sprintf("Hello %(who)s!", {"who": "world"})) - }) - - it("should return formated strings for complex placeholders", function() { - // sign - assert.equal("2", sprintf("%d", 2)) - assert.equal("-2", sprintf("%d", -2)) - assert.equal("+2", sprintf("%+d", 2)) - assert.equal("-2", sprintf("%+d", -2)) - assert.equal("2", sprintf("%i", 2)) - assert.equal("-2", sprintf("%i", -2)) - assert.equal("+2", sprintf("%+i", 2)) - assert.equal("-2", sprintf("%+i", -2)) - assert.equal("2.2", sprintf("%f", 2.2)) - assert.equal("-2.2", sprintf("%f", -2.2)) - assert.equal("+2.2", sprintf("%+f", 2.2)) - assert.equal("-2.2", sprintf("%+f", -2.2)) - assert.equal("-2.3", sprintf("%+.1f", -2.34)) - assert.equal("-0.0", sprintf("%+.1f", -0.01)) - assert.equal("3.14159", sprintf("%.6g", pi)) - assert.equal("3.14", sprintf("%.3g", pi)) - assert.equal("3", sprintf("%.1g", pi)) - assert.equal("-000000123", sprintf("%+010d", -123)) - assert.equal("______-123", sprintf("%+'_10d", -123)) - assert.equal("-234.34 123.2", sprintf("%f %f", -234.34, 123.2)) - - // padding - assert.equal("-0002", sprintf("%05d", -2)) - assert.equal("-0002", sprintf("%05i", -2)) - assert.equal(" <", sprintf("%5s", "<")) - assert.equal("0000<", sprintf("%05s", "<")) - assert.equal("____<", sprintf("%'_5s", "<")) - assert.equal("> ", sprintf("%-5s", ">")) - assert.equal(">0000", sprintf("%0-5s", ">")) - assert.equal(">____", sprintf("%'_-5s", ">")) - assert.equal("xxxxxx", sprintf("%5s", "xxxxxx")) - assert.equal("1234", sprintf("%02u", 1234)) - assert.equal(" -10.235", sprintf("%8.3f", -10.23456)) - assert.equal("-12.34 xxx", sprintf("%f %s", -12.34, "xxx")) - assert.equal('{\n "foo": "bar"\n}', sprintf("%2j", {foo: "bar"})) - assert.equal('[\n "foo",\n "bar"\n]', sprintf("%2j", ["foo", "bar"])) - - // precision - assert.equal("2.3", sprintf("%.1f", 2.345)) - assert.equal("xxxxx", sprintf("%5.5s", "xxxxxx")) - assert.equal(" x", sprintf("%5.1s", "xxxxxx")) - - }) - - it("should return formated strings for callbacks", function() { - assert.equal("foobar", sprintf("%s", function() { return "foobar" })) - assert.equal(Date.now(), sprintf("%s", Date.now)) // should pass... - }) -}) diff --git a/WebServer/node_modules/string-width/index.js b/WebServer/node_modules/string-width/index.js deleted file mode 100644 index bbc49d29b..000000000 --- a/WebServer/node_modules/string-width/index.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; -const stripAnsi = require('strip-ansi'); -const isFullwidthCodePoint = require('is-fullwidth-code-point'); - -module.exports = str => { - if (typeof str !== 'string' || str.length === 0) { - return 0; - } - - str = stripAnsi(str); - - let width = 0; - - for (let i = 0; i < str.length; i++) { - const code = str.codePointAt(i); - - // Ignore control characters - if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { - continue; - } - - // Ignore combining characters - if (code >= 0x300 && code <= 0x36F) { - continue; - } - - // Surrogates - if (code > 0xFFFF) { - i++; - } - - width += isFullwidthCodePoint(code) ? 2 : 1; - } - - return width; -}; diff --git a/WebServer/node_modules/string-width/package.json b/WebServer/node_modules/string-width/package.json deleted file mode 100644 index a95d895cc..000000000 --- a/WebServer/node_modules/string-width/package.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "_args": [ - [ - "string-width@2.1.1", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "string-width@2.1.1", - "_id": "string-width@2.1.1", - "_inBundle": false, - "_integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "_location": "/string-width", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "string-width@2.1.1", - "name": "string-width", - "escapedName": "string-width", - "rawSpec": "2.1.1", - "saveSpec": null, - "fetchSpec": "2.1.1" - }, - "_requiredBy": [ - "/cliui", - "/wide-align", - "/yargs-unparser/yargs" - ], - "_resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "_spec": "2.1.1", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/string-width/issues" - }, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "description": "Get the visual width of a string - the number of columns required to display it", - "devDependencies": { - "ava": "*", - "xo": "*" - }, - "engines": { - "node": ">=4" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/sindresorhus/string-width#readme", - "keywords": [ - "string", - "str", - "character", - "char", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "license": "MIT", - "name": "string-width", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/string-width.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "2.1.1" -} diff --git a/WebServer/node_modules/strip-ansi/index.js b/WebServer/node_modules/strip-ansi/index.js deleted file mode 100644 index 96e0292c8..000000000 --- a/WebServer/node_modules/strip-ansi/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -const ansiRegex = require('ansi-regex'); - -module.exports = input => typeof input === 'string' ? input.replace(ansiRegex(), '') : input; diff --git a/WebServer/node_modules/strip-ansi/package.json b/WebServer/node_modules/strip-ansi/package.json deleted file mode 100644 index 077860349..000000000 --- a/WebServer/node_modules/strip-ansi/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_args": [ - [ - "strip-ansi@4.0.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "strip-ansi@4.0.0", - "_id": "strip-ansi@4.0.0", - "_inBundle": false, - "_integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "_location": "/strip-ansi", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "strip-ansi@4.0.0", - "name": "strip-ansi", - "escapedName": "strip-ansi", - "rawSpec": "4.0.0", - "saveSpec": null, - "fetchSpec": "4.0.0" - }, - "_requiredBy": [ - "/cliui", - "/string-width" - ], - "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "_spec": "4.0.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/chalk/strip-ansi/issues" - }, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "description": "Strip ANSI escape codes", - "devDependencies": { - "ava": "*", - "xo": "*" - }, - "engines": { - "node": ">=4" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/chalk/strip-ansi#readme", - "keywords": [ - "strip", - "trim", - "remove", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "license": "MIT", - "name": "strip-ansi", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/strip-ansi.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "4.0.0" -} diff --git a/WebServer/node_modules/strip-eof/index.js b/WebServer/node_modules/strip-eof/index.js deleted file mode 100644 index a17d0afd3..000000000 --- a/WebServer/node_modules/strip-eof/index.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; -module.exports = function (x) { - var lf = typeof x === 'string' ? '\n' : '\n'.charCodeAt(); - var cr = typeof x === 'string' ? '\r' : '\r'.charCodeAt(); - - if (x[x.length - 1] === lf) { - x = x.slice(0, x.length - 1); - } - - if (x[x.length - 1] === cr) { - x = x.slice(0, x.length - 1); - } - - return x; -}; diff --git a/WebServer/node_modules/strip-eof/package.json b/WebServer/node_modules/strip-eof/package.json deleted file mode 100644 index b4c7909f1..000000000 --- a/WebServer/node_modules/strip-eof/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "_args": [ - [ - "strip-eof@1.0.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "strip-eof@1.0.0", - "_id": "strip-eof@1.0.0", - "_inBundle": false, - "_integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "_location": "/strip-eof", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "strip-eof@1.0.0", - "name": "strip-eof", - "escapedName": "strip-eof", - "rawSpec": "1.0.0", - "saveSpec": null, - "fetchSpec": "1.0.0" - }, - "_requiredBy": [ - "/execa" - ], - "_resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "_spec": "1.0.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/strip-eof/issues" - }, - "description": "Strip the End-Of-File (EOF) character from a string/buffer", - "devDependencies": { - "ava": "*", - "xo": "*" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/sindresorhus/strip-eof#readme", - "keywords": [ - "strip", - "trim", - "remove", - "delete", - "eof", - "end", - "file", - "newline", - "linebreak", - "character", - "string", - "buffer" - ], - "license": "MIT", - "name": "strip-eof", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/strip-eof.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "1.0.0" -} diff --git a/WebServer/node_modules/strip-json-comments/index.js b/WebServer/node_modules/strip-json-comments/index.js deleted file mode 100644 index 4e6576e6d..000000000 --- a/WebServer/node_modules/strip-json-comments/index.js +++ /dev/null @@ -1,70 +0,0 @@ -'use strict'; -var singleComment = 1; -var multiComment = 2; - -function stripWithoutWhitespace() { - return ''; -} - -function stripWithWhitespace(str, start, end) { - return str.slice(start, end).replace(/\S/g, ' '); -} - -module.exports = function (str, opts) { - opts = opts || {}; - - var currentChar; - var nextChar; - var insideString = false; - var insideComment = false; - var offset = 0; - var ret = ''; - var strip = opts.whitespace === false ? stripWithoutWhitespace : stripWithWhitespace; - - for (var i = 0; i < str.length; i++) { - currentChar = str[i]; - nextChar = str[i + 1]; - - if (!insideComment && currentChar === '"') { - var escaped = str[i - 1] === '\\' && str[i - 2] !== '\\'; - if (!escaped) { - insideString = !insideString; - } - } - - if (insideString) { - continue; - } - - if (!insideComment && currentChar + nextChar === '//') { - ret += str.slice(offset, i); - offset = i; - insideComment = singleComment; - i++; - } else if (insideComment === singleComment && currentChar + nextChar === '\r\n') { - i++; - insideComment = false; - ret += strip(str, offset, i); - offset = i; - continue; - } else if (insideComment === singleComment && currentChar === '\n') { - insideComment = false; - ret += strip(str, offset, i); - offset = i; - } else if (!insideComment && currentChar + nextChar === '/*') { - ret += str.slice(offset, i); - offset = i; - insideComment = multiComment; - i++; - continue; - } else if (insideComment === multiComment && currentChar + nextChar === '*/') { - i++; - insideComment = false; - ret += strip(str, offset, i + 1); - offset = i + 1; - continue; - } - } - - return ret + (insideComment ? strip(str.substr(offset)) : str.substr(offset)); -}; diff --git a/WebServer/node_modules/strip-json-comments/package.json b/WebServer/node_modules/strip-json-comments/package.json deleted file mode 100644 index 976f845c9..000000000 --- a/WebServer/node_modules/strip-json-comments/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_args": [ - [ - "strip-json-comments@2.0.1", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "strip-json-comments@2.0.1", - "_id": "strip-json-comments@2.0.1", - "_inBundle": false, - "_integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "_location": "/strip-json-comments", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "strip-json-comments@2.0.1", - "name": "strip-json-comments", - "escapedName": "strip-json-comments", - "rawSpec": "2.0.1", - "saveSpec": null, - "fetchSpec": "2.0.1" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "_spec": "2.0.1", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/strip-json-comments/issues" - }, - "description": "Strip comments from JSON. Lets you use comments in your JSON files!", - "devDependencies": { - "ava": "*", - "xo": "*" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/sindresorhus/strip-json-comments#readme", - "keywords": [ - "json", - "strip", - "remove", - "delete", - "trim", - "comments", - "multiline", - "parse", - "config", - "configuration", - "conf", - "settings", - "util", - "env", - "environment" - ], - "license": "MIT", - "name": "strip-json-comments", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/strip-json-comments.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "2.0.1" -} diff --git a/WebServer/node_modules/supports-color/browser.js b/WebServer/node_modules/supports-color/browser.js deleted file mode 100644 index 62afa3a74..000000000 --- a/WebServer/node_modules/supports-color/browser.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -module.exports = { - stdout: false, - stderr: false -}; diff --git a/WebServer/node_modules/supports-color/index.js b/WebServer/node_modules/supports-color/index.js deleted file mode 100644 index 6aacf5b49..000000000 --- a/WebServer/node_modules/supports-color/index.js +++ /dev/null @@ -1,137 +0,0 @@ -'use strict'; -const os = require('os'); -const hasFlag = require('has-flag'); - -const {env} = process; - -let forceColor; -if (hasFlag('no-color') || - hasFlag('no-colors') || - hasFlag('color=false')) { - forceColor = 0; -} else if (hasFlag('color') || - hasFlag('colors') || - hasFlag('color=true') || - hasFlag('color=always')) { - forceColor = 1; -} -if ('FORCE_COLOR' in env) { - if (env.FORCE_COLOR === true || env.FORCE_COLOR === 'true') { - forceColor = 1; - } else if (env.FORCE_COLOR === false || env.FORCE_COLOR === 'false') { - forceColor = 0; - } else { - forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); - } -} - -function translateLevel(level) { - if (level === 0) { - return false; - } - - return { - level, - hasBasic: true, - has256: level >= 2, - has16m: level >= 3 - }; -} - -function supportsColor(stream) { - if (forceColor === 0) { - return 0; - } - - if (hasFlag('color=16m') || - hasFlag('color=full') || - hasFlag('color=truecolor')) { - return 3; - } - - if (hasFlag('color=256')) { - return 2; - } - - if (stream && !stream.isTTY && forceColor === undefined) { - return 0; - } - - const min = forceColor || 0; - - if (env.TERM === 'dumb') { - return min; - } - - if (process.platform === 'win32') { - // Node.js 7.5.0 is the first version of Node.js to include a patch to - // libuv that enables 256 color output on Windows. Anything earlier and it - // won't work. However, here we target Node.js 8 at minimum as it is an LTS - // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows - // release that supports 256 colors. Windows 10 build 14931 is the first release - // that supports 16m/TrueColor. - const osRelease = os.release().split('.'); - if ( - Number(process.versions.node.split('.')[0]) >= 8 && - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 - ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; - } - - return 1; - } - - if ('CI' in env) { - if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') { - return 1; - } - - return min; - } - - if ('TEAMCITY_VERSION' in env) { - return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; - } - - if (env.COLORTERM === 'truecolor') { - return 3; - } - - if ('TERM_PROGRAM' in env) { - const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); - - switch (env.TERM_PROGRAM) { - case 'iTerm.app': - return version >= 3 ? 3 : 2; - case 'Apple_Terminal': - return 2; - // No default - } - } - - if (/-256(color)?$/i.test(env.TERM)) { - return 2; - } - - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { - return 1; - } - - if ('COLORTERM' in env) { - return 1; - } - - return min; -} - -function getSupportLevel(stream) { - const level = supportsColor(stream); - return translateLevel(level); -} - -module.exports = { - supportsColor: getSupportLevel, - stdout: getSupportLevel(process.stdout), - stderr: getSupportLevel(process.stderr) -}; diff --git a/WebServer/node_modules/supports-color/package.json b/WebServer/node_modules/supports-color/package.json deleted file mode 100644 index dde44f4b0..000000000 --- a/WebServer/node_modules/supports-color/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_args": [ - [ - "supports-color@6.0.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "supports-color@6.0.0", - "_id": "supports-color@6.0.0", - "_inBundle": false, - "_integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "_location": "/supports-color", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "supports-color@6.0.0", - "name": "supports-color", - "escapedName": "supports-color", - "rawSpec": "6.0.0", - "saveSpec": null, - "fetchSpec": "6.0.0" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "_spec": "6.0.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "browser": "browser.js", - "bugs": { - "url": "https://github.com/chalk/supports-color/issues" - }, - "dependencies": { - "has-flag": "^3.0.0" - }, - "description": "Detect whether a terminal supports color", - "devDependencies": { - "ava": "^0.25.0", - "import-fresh": "^2.0.0", - "xo": "^0.23.0" - }, - "engines": { - "node": ">=6" - }, - "files": [ - "index.js", - "browser.js" - ], - "homepage": "https://github.com/chalk/supports-color#readme", - "keywords": [ - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "ansi", - "styles", - "tty", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "support", - "supports", - "capability", - "detect", - "truecolor", - "16m" - ], - "license": "MIT", - "name": "supports-color", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/supports-color.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "6.0.0" -} diff --git a/WebServer/node_modules/type-detect/index.js b/WebServer/node_modules/type-detect/index.js deleted file mode 100644 index 98a1e031c..000000000 --- a/WebServer/node_modules/type-detect/index.js +++ /dev/null @@ -1,378 +0,0 @@ -/* ! - * type-detect - * Copyright(c) 2013 jake luer - * MIT Licensed - */ -const promiseExists = typeof Promise === 'function'; - -/* eslint-disable no-undef */ -const globalObject = typeof self === 'object' ? self : global; // eslint-disable-line id-blacklist - -const symbolExists = typeof Symbol !== 'undefined'; -const mapExists = typeof Map !== 'undefined'; -const setExists = typeof Set !== 'undefined'; -const weakMapExists = typeof WeakMap !== 'undefined'; -const weakSetExists = typeof WeakSet !== 'undefined'; -const dataViewExists = typeof DataView !== 'undefined'; -const symbolIteratorExists = symbolExists && typeof Symbol.iterator !== 'undefined'; -const symbolToStringTagExists = symbolExists && typeof Symbol.toStringTag !== 'undefined'; -const setEntriesExists = setExists && typeof Set.prototype.entries === 'function'; -const mapEntriesExists = mapExists && typeof Map.prototype.entries === 'function'; -const setIteratorPrototype = setEntriesExists && Object.getPrototypeOf(new Set().entries()); -const mapIteratorPrototype = mapEntriesExists && Object.getPrototypeOf(new Map().entries()); -const arrayIteratorExists = symbolIteratorExists && typeof Array.prototype[Symbol.iterator] === 'function'; -const arrayIteratorPrototype = arrayIteratorExists && Object.getPrototypeOf([][Symbol.iterator]()); -const stringIteratorExists = symbolIteratorExists && typeof String.prototype[Symbol.iterator] === 'function'; -const stringIteratorPrototype = stringIteratorExists && Object.getPrototypeOf(''[Symbol.iterator]()); -const toStringLeftSliceLength = 8; -const toStringRightSliceLength = -1; -/** - * ### typeOf (obj) - * - * Uses `Object.prototype.toString` to determine the type of an object, - * normalising behaviour across engine versions & well optimised. - * - * @param {Mixed} object - * @return {String} object type - * @api public - */ -export default function typeDetect(obj) { - /* ! Speed optimisation - * Pre: - * string literal x 3,039,035 ops/sec ±1.62% (78 runs sampled) - * boolean literal x 1,424,138 ops/sec ±4.54% (75 runs sampled) - * number literal x 1,653,153 ops/sec ±1.91% (82 runs sampled) - * undefined x 9,978,660 ops/sec ±1.92% (75 runs sampled) - * function x 2,556,769 ops/sec ±1.73% (77 runs sampled) - * Post: - * string literal x 38,564,796 ops/sec ±1.15% (79 runs sampled) - * boolean literal x 31,148,940 ops/sec ±1.10% (79 runs sampled) - * number literal x 32,679,330 ops/sec ±1.90% (78 runs sampled) - * undefined x 32,363,368 ops/sec ±1.07% (82 runs sampled) - * function x 31,296,870 ops/sec ±0.96% (83 runs sampled) - */ - const typeofObj = typeof obj; - if (typeofObj !== 'object') { - return typeofObj; - } - - /* ! Speed optimisation - * Pre: - * null x 28,645,765 ops/sec ±1.17% (82 runs sampled) - * Post: - * null x 36,428,962 ops/sec ±1.37% (84 runs sampled) - */ - if (obj === null) { - return 'null'; - } - - /* ! Spec Conformance - * Test: `Object.prototype.toString.call(window)`` - * - Node === "[object global]" - * - Chrome === "[object global]" - * - Firefox === "[object Window]" - * - PhantomJS === "[object Window]" - * - Safari === "[object Window]" - * - IE 11 === "[object Window]" - * - IE Edge === "[object Window]" - * Test: `Object.prototype.toString.call(this)`` - * - Chrome Worker === "[object global]" - * - Firefox Worker === "[object DedicatedWorkerGlobalScope]" - * - Safari Worker === "[object DedicatedWorkerGlobalScope]" - * - IE 11 Worker === "[object WorkerGlobalScope]" - * - IE Edge Worker === "[object WorkerGlobalScope]" - */ - if (obj === globalObject) { - return 'global'; - } - - /* ! Speed optimisation - * Pre: - * array literal x 2,888,352 ops/sec ±0.67% (82 runs sampled) - * Post: - * array literal x 22,479,650 ops/sec ±0.96% (81 runs sampled) - */ - if ( - Array.isArray(obj) && - (symbolToStringTagExists === false || !(Symbol.toStringTag in obj)) - ) { - return 'Array'; - } - - // Not caching existence of `window` and related properties due to potential - // for `window` to be unset before tests in quasi-browser environments. - if (typeof window === 'object' && window !== null) { - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/browsers.html#location) - * WhatWG HTML$7.7.3 - The `Location` interface - * Test: `Object.prototype.toString.call(window.location)`` - * - IE <=11 === "[object Object]" - * - IE Edge <=13 === "[object Object]" - */ - if (typeof window.location === 'object' && obj === window.location) { - return 'Location'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/#document) - * WhatWG HTML$3.1.1 - The `Document` object - * Note: Most browsers currently adher to the W3C DOM Level 2 spec - * (https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26809268) - * which suggests that browsers should use HTMLTableCellElement for - * both TD and TH elements. WhatWG separates these. - * WhatWG HTML states: - * > For historical reasons, Window objects must also have a - * > writable, configurable, non-enumerable property named - * > HTMLDocument whose value is the Document interface object. - * Test: `Object.prototype.toString.call(document)`` - * - Chrome === "[object HTMLDocument]" - * - Firefox === "[object HTMLDocument]" - * - Safari === "[object HTMLDocument]" - * - IE <=10 === "[object Document]" - * - IE 11 === "[object HTMLDocument]" - * - IE Edge <=13 === "[object HTMLDocument]" - */ - if (typeof window.document === 'object' && obj === window.document) { - return 'Document'; - } - - if (typeof window.navigator === 'object') { - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/webappapis.html#mimetypearray) - * WhatWG HTML$8.6.1.5 - Plugins - Interface MimeTypeArray - * Test: `Object.prototype.toString.call(navigator.mimeTypes)`` - * - IE <=10 === "[object MSMimeTypesCollection]" - */ - if (typeof window.navigator.mimeTypes === 'object' && - obj === window.navigator.mimeTypes) { - return 'MimeTypeArray'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/webappapis.html#pluginarray) - * WhatWG HTML$8.6.1.5 - Plugins - Interface PluginArray - * Test: `Object.prototype.toString.call(navigator.plugins)`` - * - IE <=10 === "[object MSPluginsCollection]" - */ - if (typeof window.navigator.plugins === 'object' && - obj === window.navigator.plugins) { - return 'PluginArray'; - } - } - - if ((typeof window.HTMLElement === 'function' || - typeof window.HTMLElement === 'object') && - obj instanceof window.HTMLElement) { - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/webappapis.html#pluginarray) - * WhatWG HTML$4.4.4 - The `blockquote` element - Interface `HTMLQuoteElement` - * Test: `Object.prototype.toString.call(document.createElement('blockquote'))`` - * - IE <=10 === "[object HTMLBlockElement]" - */ - if (obj.tagName === 'BLOCKQUOTE') { - return 'HTMLQuoteElement'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/#htmltabledatacellelement) - * WhatWG HTML$4.9.9 - The `td` element - Interface `HTMLTableDataCellElement` - * Note: Most browsers currently adher to the W3C DOM Level 2 spec - * (https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-82915075) - * which suggests that browsers should use HTMLTableCellElement for - * both TD and TH elements. WhatWG separates these. - * Test: Object.prototype.toString.call(document.createElement('td')) - * - Chrome === "[object HTMLTableCellElement]" - * - Firefox === "[object HTMLTableCellElement]" - * - Safari === "[object HTMLTableCellElement]" - */ - if (obj.tagName === 'TD') { - return 'HTMLTableDataCellElement'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/#htmltableheadercellelement) - * WhatWG HTML$4.9.9 - The `td` element - Interface `HTMLTableHeaderCellElement` - * Note: Most browsers currently adher to the W3C DOM Level 2 spec - * (https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-82915075) - * which suggests that browsers should use HTMLTableCellElement for - * both TD and TH elements. WhatWG separates these. - * Test: Object.prototype.toString.call(document.createElement('th')) - * - Chrome === "[object HTMLTableCellElement]" - * - Firefox === "[object HTMLTableCellElement]" - * - Safari === "[object HTMLTableCellElement]" - */ - if (obj.tagName === 'TH') { - return 'HTMLTableHeaderCellElement'; - } - } - } - - /* ! Speed optimisation - * Pre: - * Float64Array x 625,644 ops/sec ±1.58% (80 runs sampled) - * Float32Array x 1,279,852 ops/sec ±2.91% (77 runs sampled) - * Uint32Array x 1,178,185 ops/sec ±1.95% (83 runs sampled) - * Uint16Array x 1,008,380 ops/sec ±2.25% (80 runs sampled) - * Uint8Array x 1,128,040 ops/sec ±2.11% (81 runs sampled) - * Int32Array x 1,170,119 ops/sec ±2.88% (80 runs sampled) - * Int16Array x 1,176,348 ops/sec ±5.79% (86 runs sampled) - * Int8Array x 1,058,707 ops/sec ±4.94% (77 runs sampled) - * Uint8ClampedArray x 1,110,633 ops/sec ±4.20% (80 runs sampled) - * Post: - * Float64Array x 7,105,671 ops/sec ±13.47% (64 runs sampled) - * Float32Array x 5,887,912 ops/sec ±1.46% (82 runs sampled) - * Uint32Array x 6,491,661 ops/sec ±1.76% (79 runs sampled) - * Uint16Array x 6,559,795 ops/sec ±1.67% (82 runs sampled) - * Uint8Array x 6,463,966 ops/sec ±1.43% (85 runs sampled) - * Int32Array x 5,641,841 ops/sec ±3.49% (81 runs sampled) - * Int16Array x 6,583,511 ops/sec ±1.98% (80 runs sampled) - * Int8Array x 6,606,078 ops/sec ±1.74% (81 runs sampled) - * Uint8ClampedArray x 6,602,224 ops/sec ±1.77% (83 runs sampled) - */ - const stringTag = (symbolToStringTagExists && obj[Symbol.toStringTag]); - if (typeof stringTag === 'string') { - return stringTag; - } - - const objPrototype = Object.getPrototypeOf(obj); - /* ! Speed optimisation - * Pre: - * regex literal x 1,772,385 ops/sec ±1.85% (77 runs sampled) - * regex constructor x 2,143,634 ops/sec ±2.46% (78 runs sampled) - * Post: - * regex literal x 3,928,009 ops/sec ±0.65% (78 runs sampled) - * regex constructor x 3,931,108 ops/sec ±0.58% (84 runs sampled) - */ - if (objPrototype === RegExp.prototype) { - return 'RegExp'; - } - - /* ! Speed optimisation - * Pre: - * date x 2,130,074 ops/sec ±4.42% (68 runs sampled) - * Post: - * date x 3,953,779 ops/sec ±1.35% (77 runs sampled) - */ - if (objPrototype === Date.prototype) { - return 'Date'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-promise.prototype-@@tostringtag) - * ES6$25.4.5.4 - Promise.prototype[@@toStringTag] should be "Promise": - * Test: `Object.prototype.toString.call(Promise.resolve())`` - * - Chrome <=47 === "[object Object]" - * - Edge <=20 === "[object Object]" - * - Firefox 29-Latest === "[object Promise]" - * - Safari 7.1-Latest === "[object Promise]" - */ - if (promiseExists && objPrototype === Promise.prototype) { - return 'Promise'; - } - - /* ! Speed optimisation - * Pre: - * set x 2,222,186 ops/sec ±1.31% (82 runs sampled) - * Post: - * set x 4,545,879 ops/sec ±1.13% (83 runs sampled) - */ - if (setExists && objPrototype === Set.prototype) { - return 'Set'; - } - - /* ! Speed optimisation - * Pre: - * map x 2,396,842 ops/sec ±1.59% (81 runs sampled) - * Post: - * map x 4,183,945 ops/sec ±6.59% (82 runs sampled) - */ - if (mapExists && objPrototype === Map.prototype) { - return 'Map'; - } - - /* ! Speed optimisation - * Pre: - * weakset x 1,323,220 ops/sec ±2.17% (76 runs sampled) - * Post: - * weakset x 4,237,510 ops/sec ±2.01% (77 runs sampled) - */ - if (weakSetExists && objPrototype === WeakSet.prototype) { - return 'WeakSet'; - } - - /* ! Speed optimisation - * Pre: - * weakmap x 1,500,260 ops/sec ±2.02% (78 runs sampled) - * Post: - * weakmap x 3,881,384 ops/sec ±1.45% (82 runs sampled) - */ - if (weakMapExists && objPrototype === WeakMap.prototype) { - return 'WeakMap'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-dataview.prototype-@@tostringtag) - * ES6$24.2.4.21 - DataView.prototype[@@toStringTag] should be "DataView": - * Test: `Object.prototype.toString.call(new DataView(new ArrayBuffer(1)))`` - * - Edge <=13 === "[object Object]" - */ - if (dataViewExists && objPrototype === DataView.prototype) { - return 'DataView'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%mapiteratorprototype%-@@tostringtag) - * ES6$23.1.5.2.2 - %MapIteratorPrototype%[@@toStringTag] should be "Map Iterator": - * Test: `Object.prototype.toString.call(new Map().entries())`` - * - Edge <=13 === "[object Object]" - */ - if (mapExists && objPrototype === mapIteratorPrototype) { - return 'Map Iterator'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%setiteratorprototype%-@@tostringtag) - * ES6$23.2.5.2.2 - %SetIteratorPrototype%[@@toStringTag] should be "Set Iterator": - * Test: `Object.prototype.toString.call(new Set().entries())`` - * - Edge <=13 === "[object Object]" - */ - if (setExists && objPrototype === setIteratorPrototype) { - return 'Set Iterator'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%arrayiteratorprototype%-@@tostringtag) - * ES6$22.1.5.2.2 - %ArrayIteratorPrototype%[@@toStringTag] should be "Array Iterator": - * Test: `Object.prototype.toString.call([][Symbol.iterator]())`` - * - Edge <=13 === "[object Object]" - */ - if (arrayIteratorExists && objPrototype === arrayIteratorPrototype) { - return 'Array Iterator'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%stringiteratorprototype%-@@tostringtag) - * ES6$21.1.5.2.2 - %StringIteratorPrototype%[@@toStringTag] should be "String Iterator": - * Test: `Object.prototype.toString.call(''[Symbol.iterator]())`` - * - Edge <=13 === "[object Object]" - */ - if (stringIteratorExists && objPrototype === stringIteratorPrototype) { - return 'String Iterator'; - } - - /* ! Speed optimisation - * Pre: - * object from null x 2,424,320 ops/sec ±1.67% (76 runs sampled) - * Post: - * object from null x 5,838,000 ops/sec ±0.99% (84 runs sampled) - */ - if (objPrototype === null) { - return 'Object'; - } - - return Object - .prototype - .toString - .call(obj) - .slice(toStringLeftSliceLength, toStringRightSliceLength); -} diff --git a/WebServer/node_modules/type-detect/package.json b/WebServer/node_modules/type-detect/package.json deleted file mode 100644 index 1b2962879..000000000 --- a/WebServer/node_modules/type-detect/package.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "_args": [ - [ - "type-detect@4.0.8", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "type-detect@4.0.8", - "_id": "type-detect@4.0.8", - "_inBundle": false, - "_integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "_location": "/type-detect", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "type-detect@4.0.8", - "name": "type-detect", - "escapedName": "type-detect", - "rawSpec": "4.0.8", - "saveSpec": null, - "fetchSpec": "4.0.8" - }, - "_requiredBy": [ - "/chai", - "/deep-eql" - ], - "_resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "_spec": "4.0.8", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Jake Luer", - "email": "jake@alogicalparadox.com", - "url": "http://alogicalparadox.com" - }, - "bugs": { - "url": "https://github.com/chaijs/type-detect/issues" - }, - "contributors": [ - { - "name": "Keith Cirkel", - "url": "https://github.com/keithamus" - }, - { - "name": "David Losert", - "url": "https://github.com/davelosert" - }, - { - "name": "Aleksey Shvayka", - "url": "https://github.com/shvaikalesh" - }, - { - "name": "Lucas Fernandes da Costa", - "url": "https://github.com/lucasfcosta" - }, - { - "name": "Grant Snodgrass", - "url": "https://github.com/meeber" - }, - { - "name": "Jeremy Tice", - "url": "https://github.com/jetpacmonkey" - }, - { - "name": "Edward Betts", - "url": "https://github.com/EdwardBetts" - }, - { - "name": "dvlsg", - "url": "https://github.com/dvlsg" - }, - { - "name": "Amila Welihinda", - "url": "https://github.com/amilajack" - }, - { - "name": "Jake Champion", - "url": "https://github.com/JakeChampion" - }, - { - "name": "Miroslav Bajtoš", - "url": "https://github.com/bajtos" - } - ], - "description": "Improved typeof detection for node.js and the browser.", - "devDependencies": { - "@commitlint/cli": "^4.2.2", - "benchmark": "^2.1.0", - "buble": "^0.16.0", - "codecov": "^3.0.0", - "commitlint-config-angular": "^4.2.1", - "cross-env": "^5.1.1", - "eslint": "^4.10.0", - "eslint-config-strict": "^14.0.0", - "eslint-plugin-filenames": "^1.2.0", - "husky": "^0.14.3", - "karma": "^1.7.1", - "karma-chrome-launcher": "^2.2.0", - "karma-coverage": "^1.1.1", - "karma-detect-browsers": "^2.2.5", - "karma-edge-launcher": "^0.4.2", - "karma-firefox-launcher": "^1.0.1", - "karma-ie-launcher": "^1.0.0", - "karma-mocha": "^1.3.0", - "karma-opera-launcher": "^1.0.0", - "karma-safari-launcher": "^1.0.0", - "karma-safaritechpreview-launcher": "0.0.6", - "karma-sauce-launcher": "^1.2.0", - "mocha": "^4.0.1", - "nyc": "^11.3.0", - "rollup": "^0.50.0", - "rollup-plugin-buble": "^0.16.0", - "rollup-plugin-commonjs": "^8.2.6", - "rollup-plugin-istanbul": "^1.1.0", - "rollup-plugin-node-resolve": "^3.0.0", - "semantic-release": "^8.2.0", - "simple-assert": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "eslintConfig": { - "env": { - "es6": true - }, - "extends": [ - "strict/es6" - ], - "globals": { - "HTMLElement": false - }, - "rules": { - "complexity": 0, - "max-statements": 0, - "prefer-rest-params": 0 - } - }, - "files": [ - "index.js", - "type-detect.js" - ], - "homepage": "https://github.com/chaijs/type-detect#readme", - "keywords": [ - "type", - "typeof", - "types" - ], - "license": "MIT", - "main": "./type-detect.js", - "name": "type-detect", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/chaijs/type-detect.git" - }, - "scripts": { - "bench": "node bench", - "build": "rollup -c rollup.conf.js", - "commit-msg": "commitlint -x angular", - "lint": "eslint --ignore-path .gitignore .", - "posttest:browser": "npm run upload-coverage", - "posttest:node": "nyc report --report-dir \"coverage/node-$(node --version)\" --reporter=lcovonly && npm run upload-coverage", - "prepare": "cross-env NODE_ENV=production npm run build", - "pretest:browser": "cross-env NODE_ENV=test npm run build", - "pretest:node": "cross-env NODE_ENV=test npm run build", - "semantic-release": "semantic-release pre && npm publish && semantic-release post", - "test": "npm run test:node && npm run test:browser", - "test:browser": "karma start --singleRun=true", - "test:node": "nyc mocha type-detect.test.js", - "upload-coverage": "codecov" - }, - "version": "4.0.8" -} diff --git a/WebServer/node_modules/type-detect/type-detect.js b/WebServer/node_modules/type-detect/type-detect.js deleted file mode 100644 index 2f5552525..000000000 --- a/WebServer/node_modules/type-detect/type-detect.js +++ /dev/null @@ -1,388 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global.typeDetect = factory()); -}(this, (function () { 'use strict'; - -/* ! - * type-detect - * Copyright(c) 2013 jake luer - * MIT Licensed - */ -var promiseExists = typeof Promise === 'function'; - -/* eslint-disable no-undef */ -var globalObject = typeof self === 'object' ? self : global; // eslint-disable-line id-blacklist - -var symbolExists = typeof Symbol !== 'undefined'; -var mapExists = typeof Map !== 'undefined'; -var setExists = typeof Set !== 'undefined'; -var weakMapExists = typeof WeakMap !== 'undefined'; -var weakSetExists = typeof WeakSet !== 'undefined'; -var dataViewExists = typeof DataView !== 'undefined'; -var symbolIteratorExists = symbolExists && typeof Symbol.iterator !== 'undefined'; -var symbolToStringTagExists = symbolExists && typeof Symbol.toStringTag !== 'undefined'; -var setEntriesExists = setExists && typeof Set.prototype.entries === 'function'; -var mapEntriesExists = mapExists && typeof Map.prototype.entries === 'function'; -var setIteratorPrototype = setEntriesExists && Object.getPrototypeOf(new Set().entries()); -var mapIteratorPrototype = mapEntriesExists && Object.getPrototypeOf(new Map().entries()); -var arrayIteratorExists = symbolIteratorExists && typeof Array.prototype[Symbol.iterator] === 'function'; -var arrayIteratorPrototype = arrayIteratorExists && Object.getPrototypeOf([][Symbol.iterator]()); -var stringIteratorExists = symbolIteratorExists && typeof String.prototype[Symbol.iterator] === 'function'; -var stringIteratorPrototype = stringIteratorExists && Object.getPrototypeOf(''[Symbol.iterator]()); -var toStringLeftSliceLength = 8; -var toStringRightSliceLength = -1; -/** - * ### typeOf (obj) - * - * Uses `Object.prototype.toString` to determine the type of an object, - * normalising behaviour across engine versions & well optimised. - * - * @param {Mixed} object - * @return {String} object type - * @api public - */ -function typeDetect(obj) { - /* ! Speed optimisation - * Pre: - * string literal x 3,039,035 ops/sec ±1.62% (78 runs sampled) - * boolean literal x 1,424,138 ops/sec ±4.54% (75 runs sampled) - * number literal x 1,653,153 ops/sec ±1.91% (82 runs sampled) - * undefined x 9,978,660 ops/sec ±1.92% (75 runs sampled) - * function x 2,556,769 ops/sec ±1.73% (77 runs sampled) - * Post: - * string literal x 38,564,796 ops/sec ±1.15% (79 runs sampled) - * boolean literal x 31,148,940 ops/sec ±1.10% (79 runs sampled) - * number literal x 32,679,330 ops/sec ±1.90% (78 runs sampled) - * undefined x 32,363,368 ops/sec ±1.07% (82 runs sampled) - * function x 31,296,870 ops/sec ±0.96% (83 runs sampled) - */ - var typeofObj = typeof obj; - if (typeofObj !== 'object') { - return typeofObj; - } - - /* ! Speed optimisation - * Pre: - * null x 28,645,765 ops/sec ±1.17% (82 runs sampled) - * Post: - * null x 36,428,962 ops/sec ±1.37% (84 runs sampled) - */ - if (obj === null) { - return 'null'; - } - - /* ! Spec Conformance - * Test: `Object.prototype.toString.call(window)`` - * - Node === "[object global]" - * - Chrome === "[object global]" - * - Firefox === "[object Window]" - * - PhantomJS === "[object Window]" - * - Safari === "[object Window]" - * - IE 11 === "[object Window]" - * - IE Edge === "[object Window]" - * Test: `Object.prototype.toString.call(this)`` - * - Chrome Worker === "[object global]" - * - Firefox Worker === "[object DedicatedWorkerGlobalScope]" - * - Safari Worker === "[object DedicatedWorkerGlobalScope]" - * - IE 11 Worker === "[object WorkerGlobalScope]" - * - IE Edge Worker === "[object WorkerGlobalScope]" - */ - if (obj === globalObject) { - return 'global'; - } - - /* ! Speed optimisation - * Pre: - * array literal x 2,888,352 ops/sec ±0.67% (82 runs sampled) - * Post: - * array literal x 22,479,650 ops/sec ±0.96% (81 runs sampled) - */ - if ( - Array.isArray(obj) && - (symbolToStringTagExists === false || !(Symbol.toStringTag in obj)) - ) { - return 'Array'; - } - - // Not caching existence of `window` and related properties due to potential - // for `window` to be unset before tests in quasi-browser environments. - if (typeof window === 'object' && window !== null) { - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/browsers.html#location) - * WhatWG HTML$7.7.3 - The `Location` interface - * Test: `Object.prototype.toString.call(window.location)`` - * - IE <=11 === "[object Object]" - * - IE Edge <=13 === "[object Object]" - */ - if (typeof window.location === 'object' && obj === window.location) { - return 'Location'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/#document) - * WhatWG HTML$3.1.1 - The `Document` object - * Note: Most browsers currently adher to the W3C DOM Level 2 spec - * (https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-26809268) - * which suggests that browsers should use HTMLTableCellElement for - * both TD and TH elements. WhatWG separates these. - * WhatWG HTML states: - * > For historical reasons, Window objects must also have a - * > writable, configurable, non-enumerable property named - * > HTMLDocument whose value is the Document interface object. - * Test: `Object.prototype.toString.call(document)`` - * - Chrome === "[object HTMLDocument]" - * - Firefox === "[object HTMLDocument]" - * - Safari === "[object HTMLDocument]" - * - IE <=10 === "[object Document]" - * - IE 11 === "[object HTMLDocument]" - * - IE Edge <=13 === "[object HTMLDocument]" - */ - if (typeof window.document === 'object' && obj === window.document) { - return 'Document'; - } - - if (typeof window.navigator === 'object') { - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/webappapis.html#mimetypearray) - * WhatWG HTML$8.6.1.5 - Plugins - Interface MimeTypeArray - * Test: `Object.prototype.toString.call(navigator.mimeTypes)`` - * - IE <=10 === "[object MSMimeTypesCollection]" - */ - if (typeof window.navigator.mimeTypes === 'object' && - obj === window.navigator.mimeTypes) { - return 'MimeTypeArray'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/webappapis.html#pluginarray) - * WhatWG HTML$8.6.1.5 - Plugins - Interface PluginArray - * Test: `Object.prototype.toString.call(navigator.plugins)`` - * - IE <=10 === "[object MSPluginsCollection]" - */ - if (typeof window.navigator.plugins === 'object' && - obj === window.navigator.plugins) { - return 'PluginArray'; - } - } - - if ((typeof window.HTMLElement === 'function' || - typeof window.HTMLElement === 'object') && - obj instanceof window.HTMLElement) { - /* ! Spec Conformance - * (https://html.spec.whatwg.org/multipage/webappapis.html#pluginarray) - * WhatWG HTML$4.4.4 - The `blockquote` element - Interface `HTMLQuoteElement` - * Test: `Object.prototype.toString.call(document.createElement('blockquote'))`` - * - IE <=10 === "[object HTMLBlockElement]" - */ - if (obj.tagName === 'BLOCKQUOTE') { - return 'HTMLQuoteElement'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/#htmltabledatacellelement) - * WhatWG HTML$4.9.9 - The `td` element - Interface `HTMLTableDataCellElement` - * Note: Most browsers currently adher to the W3C DOM Level 2 spec - * (https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-82915075) - * which suggests that browsers should use HTMLTableCellElement for - * both TD and TH elements. WhatWG separates these. - * Test: Object.prototype.toString.call(document.createElement('td')) - * - Chrome === "[object HTMLTableCellElement]" - * - Firefox === "[object HTMLTableCellElement]" - * - Safari === "[object HTMLTableCellElement]" - */ - if (obj.tagName === 'TD') { - return 'HTMLTableDataCellElement'; - } - - /* ! Spec Conformance - * (https://html.spec.whatwg.org/#htmltableheadercellelement) - * WhatWG HTML$4.9.9 - The `td` element - Interface `HTMLTableHeaderCellElement` - * Note: Most browsers currently adher to the W3C DOM Level 2 spec - * (https://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-82915075) - * which suggests that browsers should use HTMLTableCellElement for - * both TD and TH elements. WhatWG separates these. - * Test: Object.prototype.toString.call(document.createElement('th')) - * - Chrome === "[object HTMLTableCellElement]" - * - Firefox === "[object HTMLTableCellElement]" - * - Safari === "[object HTMLTableCellElement]" - */ - if (obj.tagName === 'TH') { - return 'HTMLTableHeaderCellElement'; - } - } - } - - /* ! Speed optimisation - * Pre: - * Float64Array x 625,644 ops/sec ±1.58% (80 runs sampled) - * Float32Array x 1,279,852 ops/sec ±2.91% (77 runs sampled) - * Uint32Array x 1,178,185 ops/sec ±1.95% (83 runs sampled) - * Uint16Array x 1,008,380 ops/sec ±2.25% (80 runs sampled) - * Uint8Array x 1,128,040 ops/sec ±2.11% (81 runs sampled) - * Int32Array x 1,170,119 ops/sec ±2.88% (80 runs sampled) - * Int16Array x 1,176,348 ops/sec ±5.79% (86 runs sampled) - * Int8Array x 1,058,707 ops/sec ±4.94% (77 runs sampled) - * Uint8ClampedArray x 1,110,633 ops/sec ±4.20% (80 runs sampled) - * Post: - * Float64Array x 7,105,671 ops/sec ±13.47% (64 runs sampled) - * Float32Array x 5,887,912 ops/sec ±1.46% (82 runs sampled) - * Uint32Array x 6,491,661 ops/sec ±1.76% (79 runs sampled) - * Uint16Array x 6,559,795 ops/sec ±1.67% (82 runs sampled) - * Uint8Array x 6,463,966 ops/sec ±1.43% (85 runs sampled) - * Int32Array x 5,641,841 ops/sec ±3.49% (81 runs sampled) - * Int16Array x 6,583,511 ops/sec ±1.98% (80 runs sampled) - * Int8Array x 6,606,078 ops/sec ±1.74% (81 runs sampled) - * Uint8ClampedArray x 6,602,224 ops/sec ±1.77% (83 runs sampled) - */ - var stringTag = (symbolToStringTagExists && obj[Symbol.toStringTag]); - if (typeof stringTag === 'string') { - return stringTag; - } - - var objPrototype = Object.getPrototypeOf(obj); - /* ! Speed optimisation - * Pre: - * regex literal x 1,772,385 ops/sec ±1.85% (77 runs sampled) - * regex constructor x 2,143,634 ops/sec ±2.46% (78 runs sampled) - * Post: - * regex literal x 3,928,009 ops/sec ±0.65% (78 runs sampled) - * regex constructor x 3,931,108 ops/sec ±0.58% (84 runs sampled) - */ - if (objPrototype === RegExp.prototype) { - return 'RegExp'; - } - - /* ! Speed optimisation - * Pre: - * date x 2,130,074 ops/sec ±4.42% (68 runs sampled) - * Post: - * date x 3,953,779 ops/sec ±1.35% (77 runs sampled) - */ - if (objPrototype === Date.prototype) { - return 'Date'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-promise.prototype-@@tostringtag) - * ES6$25.4.5.4 - Promise.prototype[@@toStringTag] should be "Promise": - * Test: `Object.prototype.toString.call(Promise.resolve())`` - * - Chrome <=47 === "[object Object]" - * - Edge <=20 === "[object Object]" - * - Firefox 29-Latest === "[object Promise]" - * - Safari 7.1-Latest === "[object Promise]" - */ - if (promiseExists && objPrototype === Promise.prototype) { - return 'Promise'; - } - - /* ! Speed optimisation - * Pre: - * set x 2,222,186 ops/sec ±1.31% (82 runs sampled) - * Post: - * set x 4,545,879 ops/sec ±1.13% (83 runs sampled) - */ - if (setExists && objPrototype === Set.prototype) { - return 'Set'; - } - - /* ! Speed optimisation - * Pre: - * map x 2,396,842 ops/sec ±1.59% (81 runs sampled) - * Post: - * map x 4,183,945 ops/sec ±6.59% (82 runs sampled) - */ - if (mapExists && objPrototype === Map.prototype) { - return 'Map'; - } - - /* ! Speed optimisation - * Pre: - * weakset x 1,323,220 ops/sec ±2.17% (76 runs sampled) - * Post: - * weakset x 4,237,510 ops/sec ±2.01% (77 runs sampled) - */ - if (weakSetExists && objPrototype === WeakSet.prototype) { - return 'WeakSet'; - } - - /* ! Speed optimisation - * Pre: - * weakmap x 1,500,260 ops/sec ±2.02% (78 runs sampled) - * Post: - * weakmap x 3,881,384 ops/sec ±1.45% (82 runs sampled) - */ - if (weakMapExists && objPrototype === WeakMap.prototype) { - return 'WeakMap'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-dataview.prototype-@@tostringtag) - * ES6$24.2.4.21 - DataView.prototype[@@toStringTag] should be "DataView": - * Test: `Object.prototype.toString.call(new DataView(new ArrayBuffer(1)))`` - * - Edge <=13 === "[object Object]" - */ - if (dataViewExists && objPrototype === DataView.prototype) { - return 'DataView'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%mapiteratorprototype%-@@tostringtag) - * ES6$23.1.5.2.2 - %MapIteratorPrototype%[@@toStringTag] should be "Map Iterator": - * Test: `Object.prototype.toString.call(new Map().entries())`` - * - Edge <=13 === "[object Object]" - */ - if (mapExists && objPrototype === mapIteratorPrototype) { - return 'Map Iterator'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%setiteratorprototype%-@@tostringtag) - * ES6$23.2.5.2.2 - %SetIteratorPrototype%[@@toStringTag] should be "Set Iterator": - * Test: `Object.prototype.toString.call(new Set().entries())`` - * - Edge <=13 === "[object Object]" - */ - if (setExists && objPrototype === setIteratorPrototype) { - return 'Set Iterator'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%arrayiteratorprototype%-@@tostringtag) - * ES6$22.1.5.2.2 - %ArrayIteratorPrototype%[@@toStringTag] should be "Array Iterator": - * Test: `Object.prototype.toString.call([][Symbol.iterator]())`` - * - Edge <=13 === "[object Object]" - */ - if (arrayIteratorExists && objPrototype === arrayIteratorPrototype) { - return 'Array Iterator'; - } - - /* ! Spec Conformance - * (http://www.ecma-international.org/ecma-262/6.0/index.html#sec-%stringiteratorprototype%-@@tostringtag) - * ES6$21.1.5.2.2 - %StringIteratorPrototype%[@@toStringTag] should be "String Iterator": - * Test: `Object.prototype.toString.call(''[Symbol.iterator]())`` - * - Edge <=13 === "[object Object]" - */ - if (stringIteratorExists && objPrototype === stringIteratorPrototype) { - return 'String Iterator'; - } - - /* ! Speed optimisation - * Pre: - * object from null x 2,424,320 ops/sec ±1.67% (76 runs sampled) - * Post: - * object from null x 5,838,000 ops/sec ±0.99% (84 runs sampled) - */ - if (objPrototype === null) { - return 'Object'; - } - - return Object - .prototype - .toString - .call(obj) - .slice(toStringLeftSliceLength, toStringRightSliceLength); -} - -return typeDetect; - -}))); diff --git a/WebServer/node_modules/which-module/index.js b/WebServer/node_modules/which-module/index.js deleted file mode 100644 index 45559b781..000000000 --- a/WebServer/node_modules/which-module/index.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict' - -module.exports = function whichModule (exported) { - for (var i = 0, files = Object.keys(require.cache), mod; i < files.length; i++) { - mod = require.cache[files[i]] - if (mod.exports === exported) return mod - } - return null -} diff --git a/WebServer/node_modules/which-module/package.json b/WebServer/node_modules/which-module/package.json deleted file mode 100644 index 46de2ee15..000000000 --- a/WebServer/node_modules/which-module/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "_args": [ - [ - "which-module@2.0.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "which-module@2.0.0", - "_id": "which-module@2.0.0", - "_inBundle": false, - "_integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "_location": "/which-module", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "which-module@2.0.0", - "name": "which-module", - "escapedName": "which-module", - "rawSpec": "2.0.0", - "saveSpec": null, - "fetchSpec": "2.0.0" - }, - "_requiredBy": [ - "/yargs", - "/yargs-unparser/yargs" - ], - "_resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "_spec": "2.0.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "nexdrew" - }, - "bugs": { - "url": "https://github.com/nexdrew/which-module/issues" - }, - "description": "Find the module object for something that was require()d", - "devDependencies": { - "ava": "^0.19.1", - "coveralls": "^2.13.1", - "nyc": "^10.3.0", - "standard": "^10.0.2", - "standard-version": "^4.0.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/nexdrew/which-module#readme", - "keywords": [ - "which", - "module", - "exports", - "filename", - "require", - "reverse", - "lookup" - ], - "license": "ISC", - "main": "index.js", - "name": "which-module", - "repository": { - "type": "git", - "url": "git+https://github.com/nexdrew/which-module.git" - }, - "scripts": { - "coverage": "nyc report --reporter=text-lcov | coveralls", - "pretest": "standard", - "release": "standard-version", - "test": "nyc ava" - }, - "version": "2.0.0" -} diff --git a/WebServer/node_modules/which/package.json b/WebServer/node_modules/which/package.json deleted file mode 100644 index e18059b96..000000000 --- a/WebServer/node_modules/which/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "_args": [ - [ - "which@1.3.1", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "which@1.3.1", - "_id": "which@1.3.1", - "_inBundle": false, - "_integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "_location": "/which", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "which@1.3.1", - "name": "which", - "escapedName": "which", - "rawSpec": "1.3.1", - "saveSpec": null, - "fetchSpec": "1.3.1" - }, - "_requiredBy": [ - "/cross-spawn", - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "_spec": "1.3.1", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "bin": { - "which": "./bin/which" - }, - "bugs": { - "url": "https://github.com/isaacs/node-which/issues" - }, - "dependencies": { - "isexe": "^2.0.0" - }, - "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "devDependencies": { - "mkdirp": "^0.5.0", - "rimraf": "^2.6.2", - "tap": "^12.0.1" - }, - "files": [ - "which.js", - "bin/which" - ], - "homepage": "https://github.com/isaacs/node-which#readme", - "license": "ISC", - "main": "which.js", - "name": "which", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-which.git" - }, - "scripts": { - "changelog": "bash gen-changelog.sh", - "postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}", - "test": "tap test/*.js --cov" - }, - "version": "1.3.1" -} diff --git a/WebServer/node_modules/which/which.js b/WebServer/node_modules/which/which.js deleted file mode 100644 index 4347f91a1..000000000 --- a/WebServer/node_modules/which/which.js +++ /dev/null @@ -1,135 +0,0 @@ -module.exports = which -which.sync = whichSync - -var isWindows = process.platform === 'win32' || - process.env.OSTYPE === 'cygwin' || - process.env.OSTYPE === 'msys' - -var path = require('path') -var COLON = isWindows ? ';' : ':' -var isexe = require('isexe') - -function getNotFoundError (cmd) { - var er = new Error('not found: ' + cmd) - er.code = 'ENOENT' - - return er -} - -function getPathInfo (cmd, opt) { - var colon = opt.colon || COLON - var pathEnv = opt.path || process.env.PATH || '' - var pathExt = [''] - - pathEnv = pathEnv.split(colon) - - var pathExtExe = '' - if (isWindows) { - pathEnv.unshift(process.cwd()) - pathExtExe = (opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM') - pathExt = pathExtExe.split(colon) - - - // Always test the cmd itself first. isexe will check to make sure - // it's found in the pathExt set. - if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') - pathExt.unshift('') - } - - // If it has a slash, then we don't bother searching the pathenv. - // just check the file itself, and that's it. - if (cmd.match(/\//) || isWindows && cmd.match(/\\/)) - pathEnv = [''] - - return { - env: pathEnv, - ext: pathExt, - extExe: pathExtExe - } -} - -function which (cmd, opt, cb) { - if (typeof opt === 'function') { - cb = opt - opt = {} - } - - var info = getPathInfo(cmd, opt) - var pathEnv = info.env - var pathExt = info.ext - var pathExtExe = info.extExe - var found = [] - - ;(function F (i, l) { - if (i === l) { - if (opt.all && found.length) - return cb(null, found) - else - return cb(getNotFoundError(cmd)) - } - - var pathPart = pathEnv[i] - if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') - pathPart = pathPart.slice(1, -1) - - var p = path.join(pathPart, cmd) - if (!pathPart && (/^\.[\\\/]/).test(cmd)) { - p = cmd.slice(0, 2) + p - } - ;(function E (ii, ll) { - if (ii === ll) return F(i + 1, l) - var ext = pathExt[ii] - isexe(p + ext, { pathExt: pathExtExe }, function (er, is) { - if (!er && is) { - if (opt.all) - found.push(p + ext) - else - return cb(null, p + ext) - } - return E(ii + 1, ll) - }) - })(0, pathExt.length) - })(0, pathEnv.length) -} - -function whichSync (cmd, opt) { - opt = opt || {} - - var info = getPathInfo(cmd, opt) - var pathEnv = info.env - var pathExt = info.ext - var pathExtExe = info.extExe - var found = [] - - for (var i = 0, l = pathEnv.length; i < l; i ++) { - var pathPart = pathEnv[i] - if (pathPart.charAt(0) === '"' && pathPart.slice(-1) === '"') - pathPart = pathPart.slice(1, -1) - - var p = path.join(pathPart, cmd) - if (!pathPart && /^\.[\\\/]/.test(cmd)) { - p = cmd.slice(0, 2) + p - } - for (var j = 0, ll = pathExt.length; j < ll; j ++) { - var cur = p + pathExt[j] - var is - try { - is = isexe.sync(cur, { pathExt: pathExtExe }) - if (is) { - if (opt.all) - found.push(cur) - else - return cur - } - } catch (ex) {} - } - } - - if (opt.all && found.length) - return found - - if (opt.nothrow) - return null - - throw getNotFoundError(cmd) -} diff --git a/WebServer/node_modules/wide-align/align.js b/WebServer/node_modules/wide-align/align.js deleted file mode 100644 index 4f94ca4cd..000000000 --- a/WebServer/node_modules/wide-align/align.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict' -var stringWidth = require('string-width') - -exports.center = alignCenter -exports.left = alignLeft -exports.right = alignRight - -// lodash's way of generating pad characters. - -function createPadding (width) { - var result = '' - var string = ' ' - var n = width - do { - if (n % 2) { - result += string; - } - n = Math.floor(n / 2); - string += string; - } while (n); - - return result; -} - -function alignLeft (str, width) { - var trimmed = str.trimRight() - if (trimmed.length === 0 && str.length >= width) return str - var padding = '' - var strWidth = stringWidth(trimmed) - - if (strWidth < width) { - padding = createPadding(width - strWidth) - } - - return trimmed + padding -} - -function alignRight (str, width) { - var trimmed = str.trimLeft() - if (trimmed.length === 0 && str.length >= width) return str - var padding = '' - var strWidth = stringWidth(trimmed) - - if (strWidth < width) { - padding = createPadding(width - strWidth) - } - - return padding + trimmed -} - -function alignCenter (str, width) { - var trimmed = str.trim() - if (trimmed.length === 0 && str.length >= width) return str - var padLeft = '' - var padRight = '' - var strWidth = stringWidth(trimmed) - - if (strWidth < width) { - var padLeftBy = parseInt((width - strWidth) / 2, 10) - padLeft = createPadding(padLeftBy) - padRight = createPadding(width - (strWidth + padLeftBy)) - } - - return padLeft + trimmed + padRight -} diff --git a/WebServer/node_modules/wide-align/package.json b/WebServer/node_modules/wide-align/package.json deleted file mode 100644 index 7d5cfa9f6..000000000 --- a/WebServer/node_modules/wide-align/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "_args": [ - [ - "wide-align@1.1.3", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "wide-align@1.1.3", - "_id": "wide-align@1.1.3", - "_inBundle": false, - "_integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "_location": "/wide-align", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "wide-align@1.1.3", - "name": "wide-align", - "escapedName": "wide-align", - "rawSpec": "1.1.3", - "saveSpec": null, - "fetchSpec": "1.1.3" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "_spec": "1.1.3", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Rebecca Turner", - "email": "me@re-becca.org", - "url": "http://re-becca.org/" - }, - "bugs": { - "url": "https://github.com/iarna/wide-align/issues" - }, - "dependencies": { - "string-width": "^1.0.2 || 2" - }, - "description": "A wide-character aware text alignment function for use on the console or with fixed width fonts.", - "devDependencies": { - "tap": "10 || 11 || 12" - }, - "files": [ - "align.js" - ], - "homepage": "https://github.com/iarna/wide-align#readme", - "keywords": [ - "wide", - "double", - "unicode", - "cjkv", - "pad", - "align" - ], - "license": "ISC", - "main": "align.js", - "name": "wide-align", - "repository": { - "type": "git", - "url": "git+https://github.com/iarna/wide-align.git" - }, - "scripts": { - "test": "tap --coverage test/*.js", - "version": "perl -pi -e 's/^( \"version\": $ENV{npm_config_node_version}\").*?\",/$1abc\",/' package-lock.json ; git add package-lock.json" - }, - "version": "1.1.3" -} diff --git a/WebServer/node_modules/wrap-ansi/index.js b/WebServer/node_modules/wrap-ansi/index.js deleted file mode 100644 index ff625435f..000000000 --- a/WebServer/node_modules/wrap-ansi/index.js +++ /dev/null @@ -1,168 +0,0 @@ -'use strict'; -var stringWidth = require('string-width'); -var stripAnsi = require('strip-ansi'); - -var ESCAPES = [ - '\u001b', - '\u009b' -]; - -var END_CODE = 39; - -var ESCAPE_CODES = { - 0: 0, - 1: 22, - 2: 22, - 3: 23, - 4: 24, - 7: 27, - 8: 28, - 9: 29, - 30: 39, - 31: 39, - 32: 39, - 33: 39, - 34: 39, - 35: 39, - 36: 39, - 37: 39, - 90: 39, - 40: 49, - 41: 49, - 42: 49, - 43: 49, - 44: 49, - 45: 49, - 46: 49, - 47: 49 -}; - -function wrapAnsi(code) { - return ESCAPES[0] + '[' + code + 'm'; -} - -// calculate the length of words split on ' ', ignoring -// the extra characters added by ansi escape codes. -function wordLengths(str) { - return str.split(' ').map(function (s) { - return stringWidth(s); - }); -} - -// wrap a long word across multiple rows. -// ansi escape codes do not count towards length. -function wrapWord(rows, word, cols) { - var insideEscape = false; - var visible = stripAnsi(rows[rows.length - 1]).length; - - for (var i = 0; i < word.length; i++) { - var x = word[i]; - - rows[rows.length - 1] += x; - - if (ESCAPES.indexOf(x) !== -1) { - insideEscape = true; - } else if (insideEscape && x === 'm') { - insideEscape = false; - continue; - } - - if (insideEscape) { - continue; - } - - visible++; - - if (visible >= cols && i < word.length - 1) { - rows.push(''); - visible = 0; - } - } - - // it's possible that the last row we copy over is only - // ansi escape characters, handle this edge-case. - if (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) { - rows[rows.length - 2] += rows.pop(); - } -} - -// the wrap-ansi module can be invoked -// in either 'hard' or 'soft' wrap mode. -// -// 'hard' will never allow a string to take up more -// than cols characters. -// -// 'soft' allows long words to expand past the column length. -function exec(str, cols, opts) { - var options = opts || {}; - - var pre = ''; - var ret = ''; - var escapeCode; - - var lengths = wordLengths(str); - var words = str.split(' '); - var rows = ['']; - - for (var i = 0, word; (word = words[i]) !== undefined; i++) { - var rowLength = stringWidth(rows[rows.length - 1]); - - if (rowLength) { - rows[rows.length - 1] += ' '; - rowLength++; - } - - // in 'hard' wrap mode, the length of a line is - // never allowed to extend past 'cols'. - if (lengths[i] > cols && options.hard) { - if (rowLength) { - rows.push(''); - } - wrapWord(rows, word, cols); - continue; - } - - if (rowLength + lengths[i] > cols && rowLength > 0) { - if (options.wordWrap === false && rowLength < cols) { - wrapWord(rows, word, cols); - continue; - } - - rows.push(''); - } - - rows[rows.length - 1] += word; - } - - pre = rows.map(function (r) { - return r.trim(); - }).join('\n'); - - for (var j = 0; j < pre.length; j++) { - var y = pre[j]; - - ret += y; - - if (ESCAPES.indexOf(y) !== -1) { - var code = parseFloat(/[0-9][^m]*/.exec(pre.slice(j, j + 4))); - escapeCode = code === END_CODE ? null : code; - } - - if (escapeCode && ESCAPE_CODES[escapeCode]) { - if (pre[j + 1] === '\n') { - ret += wrapAnsi(ESCAPE_CODES[escapeCode]); - } else if (y === '\n') { - ret += wrapAnsi(escapeCode); - } - } - } - - return ret; -} - -// for each line break, invoke the method separately. -module.exports = function (str, cols, opts) { - return String(str).split('\n').map(function (substr) { - return exec(substr, cols, opts); - }).join('\n'); -}; diff --git a/WebServer/node_modules/wrap-ansi/node_modules/ansi-regex/index.js b/WebServer/node_modules/wrap-ansi/node_modules/ansi-regex/index.js deleted file mode 100644 index b9574ed7e..000000000 --- a/WebServer/node_modules/wrap-ansi/node_modules/ansi-regex/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; -module.exports = function () { - return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g; -}; diff --git a/WebServer/node_modules/wrap-ansi/node_modules/ansi-regex/package.json b/WebServer/node_modules/wrap-ansi/node_modules/ansi-regex/package.json deleted file mode 100644 index aa3a90db2..000000000 --- a/WebServer/node_modules/wrap-ansi/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "_args": [ - [ - "ansi-regex@2.1.1", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "ansi-regex@2.1.1", - "_id": "ansi-regex@2.1.1", - "_inBundle": false, - "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "_location": "/wrap-ansi/ansi-regex", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "ansi-regex@2.1.1", - "name": "ansi-regex", - "escapedName": "ansi-regex", - "rawSpec": "2.1.1", - "saveSpec": null, - "fetchSpec": "2.1.1" - }, - "_requiredBy": [ - "/wrap-ansi/strip-ansi" - ], - "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "_spec": "2.1.1", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/chalk/ansi-regex/issues" - }, - "description": "Regular expression for matching ANSI escape codes", - "devDependencies": { - "ava": "0.17.0", - "xo": "0.16.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/chalk/ansi-regex#readme", - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "license": "MIT", - "maintainers": [ - { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - { - "name": "Joshua Appelman", - "email": "jappelman@xebia.com", - "url": "jbnicolai.com" - }, - { - "name": "JD Ballard", - "email": "i.am.qix@gmail.com", - "url": "github.com/qix-" - } - ], - "name": "ansi-regex", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/ansi-regex.git" - }, - "scripts": { - "test": "xo && ava --verbose", - "view-supported": "node fixtures/view-codes.js" - }, - "version": "2.1.1", - "xo": { - "rules": { - "guard-for-in": 0, - "no-loop-func": 0 - } - } -} diff --git a/WebServer/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js b/WebServer/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js deleted file mode 100644 index a7d3e3855..000000000 --- a/WebServer/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; -var numberIsNan = require('number-is-nan'); - -module.exports = function (x) { - if (numberIsNan(x)) { - return false; - } - - // https://github.com/nodejs/io.js/blob/cff7300a578be1b10001f2d967aaedc88aee6402/lib/readline.js#L1369 - - // code points are derived from: - // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt - if (x >= 0x1100 && ( - x <= 0x115f || // Hangul Jamo - 0x2329 === x || // LEFT-POINTING ANGLE BRACKET - 0x232a === x || // RIGHT-POINTING ANGLE BRACKET - // CJK Radicals Supplement .. Enclosed CJK Letters and Months - (0x2e80 <= x && x <= 0x3247 && x !== 0x303f) || - // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A - 0x3250 <= x && x <= 0x4dbf || - // CJK Unified Ideographs .. Yi Radicals - 0x4e00 <= x && x <= 0xa4c6 || - // Hangul Jamo Extended-A - 0xa960 <= x && x <= 0xa97c || - // Hangul Syllables - 0xac00 <= x && x <= 0xd7a3 || - // CJK Compatibility Ideographs - 0xf900 <= x && x <= 0xfaff || - // Vertical Forms - 0xfe10 <= x && x <= 0xfe19 || - // CJK Compatibility Forms .. Small Form Variants - 0xfe30 <= x && x <= 0xfe6b || - // Halfwidth and Fullwidth Forms - 0xff01 <= x && x <= 0xff60 || - 0xffe0 <= x && x <= 0xffe6 || - // Kana Supplement - 0x1b000 <= x && x <= 0x1b001 || - // Enclosed Ideographic Supplement - 0x1f200 <= x && x <= 0x1f251 || - // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane - 0x20000 <= x && x <= 0x3fffd)) { - return true; - } - - return false; -} diff --git a/WebServer/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json b/WebServer/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json deleted file mode 100644 index b8fb466ce..000000000 --- a/WebServer/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "_args": [ - [ - "is-fullwidth-code-point@1.0.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "is-fullwidth-code-point@1.0.0", - "_id": "is-fullwidth-code-point@1.0.0", - "_inBundle": false, - "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "_location": "/wrap-ansi/is-fullwidth-code-point", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "is-fullwidth-code-point@1.0.0", - "name": "is-fullwidth-code-point", - "escapedName": "is-fullwidth-code-point", - "rawSpec": "1.0.0", - "saveSpec": null, - "fetchSpec": "1.0.0" - }, - "_requiredBy": [ - "/wrap-ansi/string-width" - ], - "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "_spec": "1.0.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues" - }, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "description": "Check if the character represented by a given Unicode code point is fullwidth", - "devDependencies": { - "ava": "0.0.4", - "code-point-at": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme", - "keywords": [ - "fullwidth", - "full-width", - "full", - "width", - "unicode", - "character", - "char", - "string", - "str", - "codepoint", - "code", - "point", - "is", - "detect", - "check" - ], - "license": "MIT", - "name": "is-fullwidth-code-point", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git" - }, - "scripts": { - "test": "node test.js" - }, - "version": "1.0.0" -} diff --git a/WebServer/node_modules/wrap-ansi/node_modules/string-width/index.js b/WebServer/node_modules/wrap-ansi/node_modules/string-width/index.js deleted file mode 100644 index b9bec6244..000000000 --- a/WebServer/node_modules/wrap-ansi/node_modules/string-width/index.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; -var stripAnsi = require('strip-ansi'); -var codePointAt = require('code-point-at'); -var isFullwidthCodePoint = require('is-fullwidth-code-point'); - -// https://github.com/nodejs/io.js/blob/cff7300a578be1b10001f2d967aaedc88aee6402/lib/readline.js#L1345 -module.exports = function (str) { - if (typeof str !== 'string' || str.length === 0) { - return 0; - } - - var width = 0; - - str = stripAnsi(str); - - for (var i = 0; i < str.length; i++) { - var code = codePointAt(str, i); - - // ignore control characters - if (code <= 0x1f || (code >= 0x7f && code <= 0x9f)) { - continue; - } - - // surrogates - if (code >= 0x10000) { - i++; - } - - if (isFullwidthCodePoint(code)) { - width += 2; - } else { - width++; - } - } - - return width; -}; diff --git a/WebServer/node_modules/wrap-ansi/node_modules/string-width/package.json b/WebServer/node_modules/wrap-ansi/node_modules/string-width/package.json deleted file mode 100644 index b1a0adb93..000000000 --- a/WebServer/node_modules/wrap-ansi/node_modules/string-width/package.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "_args": [ - [ - "string-width@1.0.2", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "string-width@1.0.2", - "_id": "string-width@1.0.2", - "_inBundle": false, - "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "_location": "/wrap-ansi/string-width", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "string-width@1.0.2", - "name": "string-width", - "escapedName": "string-width", - "rawSpec": "1.0.2", - "saveSpec": null, - "fetchSpec": "1.0.2" - }, - "_requiredBy": [ - "/wrap-ansi" - ], - "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "_spec": "1.0.2", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/string-width/issues" - }, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "description": "Get the visual width of a string - the number of columns required to display it", - "devDependencies": { - "ava": "*", - "xo": "*" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/sindresorhus/string-width#readme", - "keywords": [ - "string", - "str", - "character", - "char", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "license": "MIT", - "name": "string-width", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/string-width.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "1.0.2" -} diff --git a/WebServer/node_modules/wrap-ansi/node_modules/strip-ansi/index.js b/WebServer/node_modules/wrap-ansi/node_modules/strip-ansi/index.js deleted file mode 100644 index 099480fbf..000000000 --- a/WebServer/node_modules/wrap-ansi/node_modules/strip-ansi/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; -var ansiRegex = require('ansi-regex')(); - -module.exports = function (str) { - return typeof str === 'string' ? str.replace(ansiRegex, '') : str; -}; diff --git a/WebServer/node_modules/wrap-ansi/node_modules/strip-ansi/package.json b/WebServer/node_modules/wrap-ansi/node_modules/strip-ansi/package.json deleted file mode 100644 index 96c22e5ee..000000000 --- a/WebServer/node_modules/wrap-ansi/node_modules/strip-ansi/package.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_args": [ - [ - "strip-ansi@3.0.1", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "strip-ansi@3.0.1", - "_id": "strip-ansi@3.0.1", - "_inBundle": false, - "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "_location": "/wrap-ansi/strip-ansi", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "strip-ansi@3.0.1", - "name": "strip-ansi", - "escapedName": "strip-ansi", - "rawSpec": "3.0.1", - "saveSpec": null, - "fetchSpec": "3.0.1" - }, - "_requiredBy": [ - "/wrap-ansi", - "/wrap-ansi/string-width" - ], - "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "_spec": "3.0.1", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/chalk/strip-ansi/issues" - }, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "description": "Strip ANSI escape codes", - "devDependencies": { - "ava": "*", - "xo": "*" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/chalk/strip-ansi#readme", - "keywords": [ - "strip", - "trim", - "remove", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "license": "MIT", - "maintainers": [ - { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - { - "name": "Joshua Boy Nicolai Appelman", - "email": "joshua@jbna.nl", - "url": "jbna.nl" - }, - { - "name": "JD Ballard", - "email": "i.am.qix@gmail.com", - "url": "github.com/qix-" - } - ], - "name": "strip-ansi", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/strip-ansi.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "3.0.1" -} diff --git a/WebServer/node_modules/wrap-ansi/package.json b/WebServer/node_modules/wrap-ansi/package.json deleted file mode 100644 index b9043310a..000000000 --- a/WebServer/node_modules/wrap-ansi/package.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "_args": [ - [ - "wrap-ansi@2.1.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "wrap-ansi@2.1.0", - "_id": "wrap-ansi@2.1.0", - "_inBundle": false, - "_integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "_location": "/wrap-ansi", - "_phantomChildren": { - "code-point-at": "1.1.0", - "number-is-nan": "1.0.1" - }, - "_requested": { - "type": "version", - "registry": true, - "raw": "wrap-ansi@2.1.0", - "name": "wrap-ansi", - "escapedName": "wrap-ansi", - "rawSpec": "2.1.0", - "saveSpec": null, - "fetchSpec": "2.1.0" - }, - "_requiredBy": [ - "/cliui" - ], - "_resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "_spec": "2.1.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/chalk/wrap-ansi/issues" - }, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "description": "Wordwrap a string with ANSI escape codes", - "devDependencies": { - "ava": "^0.16.0", - "chalk": "^1.1.0", - "coveralls": "^2.11.4", - "has-ansi": "^2.0.0", - "nyc": "^6.2.1", - "strip-ansi": "^3.0.0", - "xo": "*" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/chalk/wrap-ansi#readme", - "keywords": [ - "wrap", - "break", - "wordwrap", - "wordbreak", - "linewrap", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "license": "MIT", - "maintainers": [ - { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - { - "name": "Joshua Appelman", - "email": "jappelman@xebia.com", - "url": "jbnicolai.com" - }, - { - "name": "JD Ballard", - "email": "i.am.qix@gmail.com", - "url": "github.com/qix-" - }, - { - "name": "Benjamin Coe", - "email": "ben@npmjs.com", - "url": "github.com/bcoe" - } - ], - "name": "wrap-ansi", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/wrap-ansi.git" - }, - "scripts": { - "coveralls": "nyc report --reporter=text-lcov | coveralls", - "test": "xo && nyc ava" - }, - "version": "2.1.0" -} diff --git a/WebServer/node_modules/y18n/index.js b/WebServer/node_modules/y18n/index.js deleted file mode 100644 index d72068162..000000000 --- a/WebServer/node_modules/y18n/index.js +++ /dev/null @@ -1,188 +0,0 @@ -var fs = require('fs') -var path = require('path') -var util = require('util') - -function Y18N (opts) { - // configurable options. - opts = opts || {} - this.directory = opts.directory || './locales' - this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true - this.locale = opts.locale || 'en' - this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true - - // internal stuff. - this.cache = {} - this.writeQueue = [] -} - -Y18N.prototype.__ = function () { - if (typeof arguments[0] !== 'string') { - return this._taggedLiteral.apply(this, arguments) - } - var args = Array.prototype.slice.call(arguments) - var str = args.shift() - var cb = function () {} // start with noop. - - if (typeof args[args.length - 1] === 'function') cb = args.pop() - cb = cb || function () {} // noop. - - if (!this.cache[this.locale]) this._readLocaleFile() - - // we've observed a new string, update the language file. - if (!this.cache[this.locale][str] && this.updateFiles) { - this.cache[this.locale][str] = str - - // include the current directory and locale, - // since these values could change before the - // write is performed. - this._enqueueWrite([this.directory, this.locale, cb]) - } else { - cb() - } - - return util.format.apply(util, [this.cache[this.locale][str] || str].concat(args)) -} - -Y18N.prototype._taggedLiteral = function (parts) { - var args = arguments - var str = '' - parts.forEach(function (part, i) { - var arg = args[i + 1] - str += part - if (typeof arg !== 'undefined') { - str += '%s' - } - }) - return this.__.apply(null, [str].concat([].slice.call(arguments, 1))) -} - -Y18N.prototype._enqueueWrite = function (work) { - this.writeQueue.push(work) - if (this.writeQueue.length === 1) this._processWriteQueue() -} - -Y18N.prototype._processWriteQueue = function () { - var _this = this - var work = this.writeQueue[0] - - // destructure the enqueued work. - var directory = work[0] - var locale = work[1] - var cb = work[2] - - var languageFile = this._resolveLocaleFile(directory, locale) - var serializedLocale = JSON.stringify(this.cache[locale], null, 2) - - fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) { - _this.writeQueue.shift() - if (_this.writeQueue.length > 0) _this._processWriteQueue() - cb(err) - }) -} - -Y18N.prototype._readLocaleFile = function () { - var localeLookup = {} - var languageFile = this._resolveLocaleFile(this.directory, this.locale) - - try { - localeLookup = JSON.parse(fs.readFileSync(languageFile, 'utf-8')) - } catch (err) { - if (err instanceof SyntaxError) { - err.message = 'syntax error in ' + languageFile - } - - if (err.code === 'ENOENT') localeLookup = {} - else throw err - } - - this.cache[this.locale] = localeLookup -} - -Y18N.prototype._resolveLocaleFile = function (directory, locale) { - var file = path.resolve(directory, './', locale + '.json') - if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) { - // attempt fallback to language only - var languageFile = path.resolve(directory, './', locale.split('_')[0] + '.json') - if (this._fileExistsSync(languageFile)) file = languageFile - } - return file -} - -// this only exists because fs.existsSync() "will be deprecated" -// see https://nodejs.org/api/fs.html#fs_fs_existssync_path -Y18N.prototype._fileExistsSync = function (file) { - try { - return fs.statSync(file).isFile() - } catch (err) { - return false - } -} - -Y18N.prototype.__n = function () { - var args = Array.prototype.slice.call(arguments) - var singular = args.shift() - var plural = args.shift() - var quantity = args.shift() - - var cb = function () {} // start with noop. - if (typeof args[args.length - 1] === 'function') cb = args.pop() - - if (!this.cache[this.locale]) this._readLocaleFile() - - var str = quantity === 1 ? singular : plural - if (this.cache[this.locale][singular]) { - str = this.cache[this.locale][singular][quantity === 1 ? 'one' : 'other'] - } - - // we've observed a new string, update the language file. - if (!this.cache[this.locale][singular] && this.updateFiles) { - this.cache[this.locale][singular] = { - one: singular, - other: plural - } - - // include the current directory and locale, - // since these values could change before the - // write is performed. - this._enqueueWrite([this.directory, this.locale, cb]) - } else { - cb() - } - - // if a %d placeholder is provided, add quantity - // to the arguments expanded by util.format. - var values = [str] - if (~str.indexOf('%d')) values.push(quantity) - - return util.format.apply(util, values.concat(args)) -} - -Y18N.prototype.setLocale = function (locale) { - this.locale = locale -} - -Y18N.prototype.getLocale = function () { - return this.locale -} - -Y18N.prototype.updateLocale = function (obj) { - if (!this.cache[this.locale]) this._readLocaleFile() - - for (var key in obj) { - this.cache[this.locale][key] = obj[key] - } -} - -module.exports = function (opts) { - var y18n = new Y18N(opts) - - // bind all functions to y18n, so that - // they can be used in isolation. - for (var key in y18n) { - if (typeof y18n[key] === 'function') { - y18n[key] = y18n[key].bind(y18n) - } - } - - return y18n -} diff --git a/WebServer/node_modules/y18n/package.json b/WebServer/node_modules/y18n/package.json deleted file mode 100644 index 449b3f853..000000000 --- a/WebServer/node_modules/y18n/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "_args": [ - [ - "y18n@4.0.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "y18n@4.0.0", - "_id": "y18n@4.0.0", - "_inBundle": false, - "_integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "_location": "/y18n", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "y18n@4.0.0", - "name": "y18n", - "escapedName": "y18n", - "rawSpec": "4.0.0", - "saveSpec": null, - "fetchSpec": "4.0.0" - }, - "_requiredBy": [ - "/yargs", - "/yargs-unparser/yargs" - ], - "_resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "_spec": "4.0.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Ben Coe", - "email": "ben@npmjs.com" - }, - "bugs": { - "url": "https://github.com/yargs/y18n/issues" - }, - "description": "the bare-bones internationalization library used by yargs", - "devDependencies": { - "chai": "^4.0.1", - "coveralls": "^3.0.0", - "mocha": "^4.0.1", - "nyc": "^11.0.1", - "rimraf": "^2.5.0", - "standard": "^10.0.0-beta.0", - "standard-version": "^4.2.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/yargs/y18n", - "keywords": [ - "i18n", - "internationalization", - "yargs" - ], - "license": "ISC", - "main": "index.js", - "name": "y18n", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/yargs/y18n.git" - }, - "scripts": { - "coverage": "nyc report --reporter=text-lcov | coveralls", - "pretest": "standard", - "release": "standard-version", - "test": "nyc mocha" - }, - "version": "4.0.0" -} diff --git a/WebServer/node_modules/yargs-parser/index.js b/WebServer/node_modules/yargs-parser/index.js deleted file mode 100644 index 20d472d10..000000000 --- a/WebServer/node_modules/yargs-parser/index.js +++ /dev/null @@ -1,892 +0,0 @@ -var camelCase = require('camelcase') -var decamelize = require('decamelize') -var path = require('path') -var tokenizeArgString = require('./lib/tokenize-arg-string') -var util = require('util') - -function parse (args, opts) { - if (!opts) opts = {} - // allow a string argument to be passed in rather - // than an argv array. - args = tokenizeArgString(args) - - // aliases might have transitive relationships, normalize this. - var aliases = combineAliases(opts.alias || {}) - var configuration = assign({ - 'short-option-groups': true, - 'camel-case-expansion': true, - 'dot-notation': true, - 'parse-numbers': true, - 'boolean-negation': true, - 'negation-prefix': 'no-', - 'duplicate-arguments-array': true, - 'flatten-duplicate-arrays': true, - 'populate--': false, - 'combine-arrays': false, - 'set-placeholder-key': false, - 'halt-at-non-option': false - }, opts.configuration) - var defaults = opts.default || {} - var configObjects = opts.configObjects || [] - var envPrefix = opts.envPrefix - var notFlagsOption = configuration['populate--'] - var notFlagsArgv = notFlagsOption ? '--' : '_' - var newAliases = {} - // allow a i18n handler to be passed in, default to a fake one (util.format). - var __ = opts.__ || function (str) { - return util.format.apply(util, Array.prototype.slice.call(arguments)) - } - var error = null - var flags = { - aliases: {}, - arrays: {}, - bools: {}, - strings: {}, - numbers: {}, - counts: {}, - normalize: {}, - configs: {}, - defaulted: {}, - nargs: {}, - coercions: {}, - keys: [] - } - var negative = /^-[0-9]+(\.[0-9]+)?/ - var negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)') - - ;[].concat(opts.array).filter(Boolean).forEach(function (opt) { - var key = opt.key || opt - - // assign to flags[bools|strings|numbers] - const assignment = Object.keys(opt).map(function (key) { - return ({ - boolean: 'bools', - string: 'strings', - number: 'numbers' - })[key] - }).filter(Boolean).pop() - - // assign key to be coerced - if (assignment) { - flags[assignment][key] = true - } - - flags.arrays[key] = true - flags.keys.push(key) - }) - - ;[].concat(opts.boolean).filter(Boolean).forEach(function (key) { - flags.bools[key] = true - flags.keys.push(key) - }) - - ;[].concat(opts.string).filter(Boolean).forEach(function (key) { - flags.strings[key] = true - flags.keys.push(key) - }) - - ;[].concat(opts.number).filter(Boolean).forEach(function (key) { - flags.numbers[key] = true - flags.keys.push(key) - }) - - ;[].concat(opts.count).filter(Boolean).forEach(function (key) { - flags.counts[key] = true - flags.keys.push(key) - }) - - ;[].concat(opts.normalize).filter(Boolean).forEach(function (key) { - flags.normalize[key] = true - flags.keys.push(key) - }) - - Object.keys(opts.narg || {}).forEach(function (k) { - flags.nargs[k] = opts.narg[k] - flags.keys.push(k) - }) - - Object.keys(opts.coerce || {}).forEach(function (k) { - flags.coercions[k] = opts.coerce[k] - flags.keys.push(k) - }) - - if (Array.isArray(opts.config) || typeof opts.config === 'string') { - ;[].concat(opts.config).filter(Boolean).forEach(function (key) { - flags.configs[key] = true - }) - } else { - Object.keys(opts.config || {}).forEach(function (k) { - flags.configs[k] = opts.config[k] - }) - } - - // create a lookup table that takes into account all - // combinations of aliases: {f: ['foo'], foo: ['f']} - extendAliases(opts.key, aliases, opts.default, flags.arrays) - - // apply default values to all aliases. - Object.keys(defaults).forEach(function (key) { - (flags.aliases[key] || []).forEach(function (alias) { - defaults[alias] = defaults[key] - }) - }) - - var argv = { _: [] } - - Object.keys(flags.bools).forEach(function (key) { - if (Object.prototype.hasOwnProperty.call(defaults, key)) { - setArg(key, defaults[key]) - setDefaulted(key) - } - }) - - var notFlags = [] - - for (var i = 0; i < args.length; i++) { - var arg = args[i] - var broken - var key - var letters - var m - var next - var value - - // -- separated by = - if (arg.match(/^--.+=/) || ( - !configuration['short-option-groups'] && arg.match(/^-.+=/) - )) { - // Using [\s\S] instead of . because js doesn't support the - // 'dotall' regex modifier. See: - // http://stackoverflow.com/a/1068308/13216 - m = arg.match(/^--?([^=]+)=([\s\S]*)$/) - - // nargs format = '--f=monkey washing cat' - if (checkAllAliases(m[1], flags.nargs)) { - args.splice(i + 1, 0, m[2]) - i = eatNargs(i, m[1], args) - // arrays format = '--f=a b c' - } else if (checkAllAliases(m[1], flags.arrays) && args.length > i + 1) { - args.splice(i + 1, 0, m[2]) - i = eatArray(i, m[1], args) - } else { - setArg(m[1], m[2]) - } - } else if (arg.match(negatedBoolean) && configuration['boolean-negation']) { - key = arg.match(negatedBoolean)[1] - setArg(key, false) - - // -- seperated by space. - } else if (arg.match(/^--.+/) || ( - !configuration['short-option-groups'] && arg.match(/^-.+/) - )) { - key = arg.match(/^--?(.+)/)[1] - - // nargs format = '--foo a b c' - if (checkAllAliases(key, flags.nargs)) { - i = eatNargs(i, key, args) - // array format = '--foo a b c' - } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) { - i = eatArray(i, key, args) - } else { - next = args[i + 1] - - if (next !== undefined && (!next.match(/^-/) || - next.match(negative)) && - !checkAllAliases(key, flags.bools) && - !checkAllAliases(key, flags.counts)) { - setArg(key, next) - i++ - } else if (/^(true|false)$/.test(next)) { - setArg(key, next) - i++ - } else { - setArg(key, defaultValue(key)) - } - } - - // dot-notation flag seperated by '='. - } else if (arg.match(/^-.\..+=/)) { - m = arg.match(/^-([^=]+)=([\s\S]*)$/) - setArg(m[1], m[2]) - - // dot-notation flag seperated by space. - } else if (arg.match(/^-.\..+/)) { - next = args[i + 1] - key = arg.match(/^-(.\..+)/)[1] - - if (next !== undefined && !next.match(/^-/) && - !checkAllAliases(key, flags.bools) && - !checkAllAliases(key, flags.counts)) { - setArg(key, next) - i++ - } else { - setArg(key, defaultValue(key)) - } - } else if (arg.match(/^-[^-]+/) && !arg.match(negative)) { - letters = arg.slice(1, -1).split('') - broken = false - - for (var j = 0; j < letters.length; j++) { - next = arg.slice(j + 2) - - if (letters[j + 1] && letters[j + 1] === '=') { - value = arg.slice(j + 3) - key = letters[j] - - // nargs format = '-f=monkey washing cat' - if (checkAllAliases(key, flags.nargs)) { - args.splice(i + 1, 0, value) - i = eatNargs(i, key, args) - // array format = '-f=a b c' - } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) { - args.splice(i + 1, 0, value) - i = eatArray(i, key, args) - } else { - setArg(key, value) - } - - broken = true - break - } - - if (next === '-') { - setArg(letters[j], next) - continue - } - - // current letter is an alphabetic character and next value is a number - if (/[A-Za-z]/.test(letters[j]) && - /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { - setArg(letters[j], next) - broken = true - break - } - - if (letters[j + 1] && letters[j + 1].match(/\W/)) { - setArg(letters[j], next) - broken = true - break - } else { - setArg(letters[j], defaultValue(letters[j])) - } - } - - key = arg.slice(-1)[0] - - if (!broken && key !== '-') { - // nargs format = '-f a b c' - if (checkAllAliases(key, flags.nargs)) { - i = eatNargs(i, key, args) - // array format = '-f a b c' - } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) { - i = eatArray(i, key, args) - } else { - next = args[i + 1] - - if (next !== undefined && (!/^(-|--)[^-]/.test(next) || - next.match(negative)) && - !checkAllAliases(key, flags.bools) && - !checkAllAliases(key, flags.counts)) { - setArg(key, next) - i++ - } else if (/^(true|false)$/.test(next)) { - setArg(key, next) - i++ - } else { - setArg(key, defaultValue(key)) - } - } - } - } else if (arg === '--') { - notFlags = args.slice(i + 1) - break - } else if (configuration['halt-at-non-option']) { - notFlags = args.slice(i) - break - } else { - argv._.push(maybeCoerceNumber('_', arg)) - } - } - - // order of precedence: - // 1. command line arg - // 2. value from env var - // 3. value from config file - // 4. value from config objects - // 5. configured default value - applyEnvVars(argv, true) // special case: check env vars that point to config file - applyEnvVars(argv, false) - setConfig(argv) - setConfigObjects() - applyDefaultsAndAliases(argv, flags.aliases, defaults) - applyCoercions(argv) - if (configuration['set-placeholder-key']) setPlaceholderKeys(argv) - - // for any counts either not in args or without an explicit default, set to 0 - Object.keys(flags.counts).forEach(function (key) { - if (!hasKey(argv, key.split('.'))) setArg(key, 0) - }) - - // '--' defaults to undefined. - if (notFlagsOption && notFlags.length) argv[notFlagsArgv] = [] - notFlags.forEach(function (key) { - argv[notFlagsArgv].push(key) - }) - - // how many arguments should we consume, based - // on the nargs option? - function eatNargs (i, key, args) { - var ii - const toEat = checkAllAliases(key, flags.nargs) - - // nargs will not consume flag arguments, e.g., -abc, --foo, - // and terminates when one is observed. - var available = 0 - for (ii = i + 1; ii < args.length; ii++) { - if (!args[ii].match(/^-[^0-9]/)) available++ - else break - } - - if (available < toEat) error = Error(__('Not enough arguments following: %s', key)) - - const consumed = Math.min(available, toEat) - for (ii = i + 1; ii < (consumed + i + 1); ii++) { - setArg(key, args[ii]) - } - - return (i + consumed) - } - - // if an option is an array, eat all non-hyphenated arguments - // following it... YUM! - // e.g., --foo apple banana cat becomes ["apple", "banana", "cat"] - function eatArray (i, key, args) { - var start = i + 1 - var argsToSet = [] - var multipleArrayFlag = i > 0 - for (var ii = i + 1; ii < args.length; ii++) { - if (/^-/.test(args[ii]) && !negative.test(args[ii])) { - if (ii === start) { - setArg(key, defaultForType('array')) - } - multipleArrayFlag = true - break - } - i = ii - argsToSet.push(args[ii]) - } - if (multipleArrayFlag) { - setArg(key, argsToSet.map(function (arg) { - return processValue(key, arg) - })) - } else { - argsToSet.forEach(function (arg) { - setArg(key, arg) - }) - } - - return i - } - - function setArg (key, val) { - unsetDefaulted(key) - - if (/-/.test(key) && configuration['camel-case-expansion']) { - var alias = key.split('.').map(function (prop) { - return camelCase(prop) - }).join('.') - addNewAlias(key, alias) - } - - var value = processValue(key, val) - - var splitKey = key.split('.') - setKey(argv, splitKey, value) - - // handle populating aliases of the full key - if (flags.aliases[key]) { - flags.aliases[key].forEach(function (x) { - x = x.split('.') - setKey(argv, x, value) - }) - } - - // handle populating aliases of the first element of the dot-notation key - if (splitKey.length > 1 && configuration['dot-notation']) { - ;(flags.aliases[splitKey[0]] || []).forEach(function (x) { - x = x.split('.') - - // expand alias with nested objects in key - var a = [].concat(splitKey) - a.shift() // nuke the old key. - x = x.concat(a) - - setKey(argv, x, value) - }) - } - - // Set normalize getter and setter when key is in 'normalize' but isn't an array - if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) { - var keys = [key].concat(flags.aliases[key] || []) - keys.forEach(function (key) { - argv.__defineSetter__(key, function (v) { - val = path.normalize(v) - }) - - argv.__defineGetter__(key, function () { - return typeof val === 'string' ? path.normalize(val) : val - }) - }) - } - } - - function addNewAlias (key, alias) { - if (!(flags.aliases[key] && flags.aliases[key].length)) { - flags.aliases[key] = [alias] - newAliases[alias] = true - } - if (!(flags.aliases[alias] && flags.aliases[alias].length)) { - addNewAlias(alias, key) - } - } - - function processValue (key, val) { - // strings may be quoted, clean this up as we assign values. - if (typeof val === 'string' && - (val[0] === "'" || val[0] === '"') && - val[val.length - 1] === val[0] - ) { - val = val.substring(1, val.length - 1) - } - - // handle parsing boolean arguments --foo=true --bar false. - if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) { - if (typeof val === 'string') val = val === 'true' - } - - var value = maybeCoerceNumber(key, val) - - // increment a count given as arg (either no value or value parsed as boolean) - if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) { - value = increment - } - - // Set normalized value when key is in 'normalize' and in 'arrays' - if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) { - if (Array.isArray(val)) value = val.map(path.normalize) - else value = path.normalize(val) - } - return value - } - - function maybeCoerceNumber (key, value) { - if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.coercions)) { - const shouldCoerceNumber = isNumber(value) && configuration['parse-numbers'] && ( - Number.isSafeInteger(Math.floor(value)) - ) - if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) value = Number(value) - } - return value - } - - // set args from config.json file, this should be - // applied last so that defaults can be applied. - function setConfig (argv) { - var configLookup = {} - - // expand defaults/aliases, in-case any happen to reference - // the config.json file. - applyDefaultsAndAliases(configLookup, flags.aliases, defaults) - - Object.keys(flags.configs).forEach(function (configKey) { - var configPath = argv[configKey] || configLookup[configKey] - if (configPath) { - try { - var config = null - var resolvedConfigPath = path.resolve(process.cwd(), configPath) - - if (typeof flags.configs[configKey] === 'function') { - try { - config = flags.configs[configKey](resolvedConfigPath) - } catch (e) { - config = e - } - if (config instanceof Error) { - error = config - return - } - } else { - config = require(resolvedConfigPath) - } - - setConfigObject(config) - } catch (ex) { - if (argv[configKey]) error = Error(__('Invalid JSON config file: %s', configPath)) - } - } - }) - } - - // set args from config object. - // it recursively checks nested objects. - function setConfigObject (config, prev) { - Object.keys(config).forEach(function (key) { - var value = config[key] - var fullKey = prev ? prev + '.' + key : key - - // if the value is an inner object and we have dot-notation - // enabled, treat inner objects in config the same as - // heavily nested dot notations (foo.bar.apple). - if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) { - // if the value is an object but not an array, check nested object - setConfigObject(value, fullKey) - } else { - // setting arguments via CLI takes precedence over - // values within the config file. - if (!hasKey(argv, fullKey.split('.')) || (flags.defaulted[fullKey]) || (flags.arrays[fullKey] && configuration['combine-arrays'])) { - setArg(fullKey, value) - } - } - }) - } - - // set all config objects passed in opts - function setConfigObjects () { - if (typeof configObjects === 'undefined') return - configObjects.forEach(function (configObject) { - setConfigObject(configObject) - }) - } - - function applyEnvVars (argv, configOnly) { - if (typeof envPrefix === 'undefined') return - - var prefix = typeof envPrefix === 'string' ? envPrefix : '' - Object.keys(process.env).forEach(function (envVar) { - if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) { - // get array of nested keys and convert them to camel case - var keys = envVar.split('__').map(function (key, i) { - if (i === 0) { - key = key.substring(prefix.length) - } - return camelCase(key) - }) - - if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && (!hasKey(argv, keys) || flags.defaulted[keys.join('.')])) { - setArg(keys.join('.'), process.env[envVar]) - } - } - }) - } - - function applyCoercions (argv) { - var coerce - var applied = {} - Object.keys(argv).forEach(function (key) { - if (!applied.hasOwnProperty(key)) { // If we haven't already coerced this option via one of its aliases - coerce = checkAllAliases(key, flags.coercions) - if (typeof coerce === 'function') { - try { - var value = coerce(argv[key]) - ;([].concat(flags.aliases[key] || [], key)).forEach(ali => { - applied[ali] = argv[ali] = value - }) - } catch (err) { - error = err - } - } - } - }) - } - - function setPlaceholderKeys (argv) { - flags.keys.forEach((key) => { - // don't set placeholder keys for dot notation options 'foo.bar'. - if (~key.indexOf('.')) return - if (typeof argv[key] === 'undefined') argv[key] = undefined - }) - return argv - } - - function applyDefaultsAndAliases (obj, aliases, defaults) { - Object.keys(defaults).forEach(function (key) { - if (!hasKey(obj, key.split('.'))) { - setKey(obj, key.split('.'), defaults[key]) - - ;(aliases[key] || []).forEach(function (x) { - if (hasKey(obj, x.split('.'))) return - setKey(obj, x.split('.'), defaults[key]) - }) - } - }) - } - - function hasKey (obj, keys) { - var o = obj - - if (!configuration['dot-notation']) keys = [keys.join('.')] - - keys.slice(0, -1).forEach(function (key) { - o = (o[key] || {}) - }) - - var key = keys[keys.length - 1] - - if (typeof o !== 'object') return false - else return key in o - } - - function setKey (obj, keys, value) { - var o = obj - - if (!configuration['dot-notation']) keys = [keys.join('.')] - - keys.slice(0, -1).forEach(function (key, index) { - if (typeof o === 'object' && o[key] === undefined) { - o[key] = {} - } - - if (typeof o[key] !== 'object' || Array.isArray(o[key])) { - // ensure that o[key] is an array, and that the last item is an empty object. - if (Array.isArray(o[key])) { - o[key].push({}) - } else { - o[key] = [o[key], {}] - } - - // we want to update the empty object at the end of the o[key] array, so set o to that object - o = o[key][o[key].length - 1] - } else { - o = o[key] - } - }) - - var key = keys[keys.length - 1] - - var isTypeArray = checkAllAliases(keys.join('.'), flags.arrays) - var isValueArray = Array.isArray(value) - var duplicate = configuration['duplicate-arguments-array'] - - if (value === increment) { - o[key] = increment(o[key]) - } else if (Array.isArray(o[key])) { - if (duplicate && isTypeArray && isValueArray) { - o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]) - } else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) { - o[key] = value - } else { - o[key] = o[key].concat([value]) - } - } else if (o[key] === undefined && isTypeArray) { - o[key] = isValueArray ? value : [value] - } else if (duplicate && !(o[key] === undefined || checkAllAliases(key, flags.bools) || checkAllAliases(keys.join('.'), flags.bools) || checkAllAliases(key, flags.counts))) { - o[key] = [ o[key], value ] - } else { - o[key] = value - } - } - - // extend the aliases list with inferred aliases. - function extendAliases () { - Array.prototype.slice.call(arguments).forEach(function (obj) { - Object.keys(obj || {}).forEach(function (key) { - // short-circuit if we've already added a key - // to the aliases array, for example it might - // exist in both 'opts.default' and 'opts.key'. - if (flags.aliases[key]) return - - flags.aliases[key] = [].concat(aliases[key] || []) - // For "--option-name", also set argv.optionName - flags.aliases[key].concat(key).forEach(function (x) { - if (/-/.test(x) && configuration['camel-case-expansion']) { - var c = camelCase(x) - if (c !== key && flags.aliases[key].indexOf(c) === -1) { - flags.aliases[key].push(c) - newAliases[c] = true - } - } - }) - // For "--optionName", also set argv['option-name'] - flags.aliases[key].concat(key).forEach(function (x) { - if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) { - var c = decamelize(x, '-') - if (c !== key && flags.aliases[key].indexOf(c) === -1) { - flags.aliases[key].push(c) - newAliases[c] = true - } - } - }) - flags.aliases[key].forEach(function (x) { - flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) { - return x !== y - })) - }) - }) - }) - } - - // check if a flag is set for any of a key's aliases. - function checkAllAliases (key, flag) { - var isSet = false - var toCheck = [].concat(flags.aliases[key] || [], key) - - toCheck.forEach(function (key) { - if (flag[key]) isSet = flag[key] - }) - - return isSet - } - - function setDefaulted (key) { - [].concat(flags.aliases[key] || [], key).forEach(function (k) { - flags.defaulted[k] = true - }) - } - - function unsetDefaulted (key) { - [].concat(flags.aliases[key] || [], key).forEach(function (k) { - delete flags.defaulted[k] - }) - } - - // make a best effor to pick a default value - // for an option based on name and type. - function defaultValue (key) { - if (!checkAllAliases(key, flags.bools) && - !checkAllAliases(key, flags.counts) && - `${key}` in defaults) { - return defaults[key] - } else { - return defaultForType(guessType(key)) - } - } - - // return a default value, given the type of a flag., - // e.g., key of type 'string' will default to '', rather than 'true'. - function defaultForType (type) { - var def = { - boolean: true, - string: '', - number: undefined, - array: [] - } - - return def[type] - } - - // given a flag, enforce a default type. - function guessType (key) { - var type = 'boolean' - - if (checkAllAliases(key, flags.strings)) type = 'string' - else if (checkAllAliases(key, flags.numbers)) type = 'number' - else if (checkAllAliases(key, flags.arrays)) type = 'array' - - return type - } - - function isNumber (x) { - if (x === null || x === undefined) return false - // if loaded from config, may already be a number. - if (typeof x === 'number') return true - // hexadecimal. - if (/^0x[0-9a-f]+$/i.test(x)) return true - // don't treat 0123 as a number; as it drops the leading '0'. - if (x.length > 1 && x[0] === '0') return false - return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x) - } - - function isUndefined (num) { - return num === undefined - } - - return { - argv: argv, - error: error, - aliases: flags.aliases, - newAliases: newAliases, - configuration: configuration - } -} - -// if any aliases reference each other, we should -// merge them together. -function combineAliases (aliases) { - var aliasArrays = [] - var change = true - var combined = {} - - // turn alias lookup hash {key: ['alias1', 'alias2']} into - // a simple array ['key', 'alias1', 'alias2'] - Object.keys(aliases).forEach(function (key) { - aliasArrays.push( - [].concat(aliases[key], key) - ) - }) - - // combine arrays until zero changes are - // made in an iteration. - while (change) { - change = false - for (var i = 0; i < aliasArrays.length; i++) { - for (var ii = i + 1; ii < aliasArrays.length; ii++) { - var intersect = aliasArrays[i].filter(function (v) { - return aliasArrays[ii].indexOf(v) !== -1 - }) - - if (intersect.length) { - aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]) - aliasArrays.splice(ii, 1) - change = true - break - } - } - } - } - - // map arrays back to the hash-lookup (de-dupe while - // we're at it). - aliasArrays.forEach(function (aliasArray) { - aliasArray = aliasArray.filter(function (v, i, self) { - return self.indexOf(v) === i - }) - combined[aliasArray.pop()] = aliasArray - }) - - return combined -} - -function assign (defaults, configuration) { - var o = {} - configuration = configuration || {} - - Object.keys(defaults).forEach(function (k) { - o[k] = defaults[k] - }) - Object.keys(configuration).forEach(function (k) { - o[k] = configuration[k] - }) - - return o -} - -// this function should only be called when a count is given as an arg -// it is NOT called to set a default value -// thus we can start the count at 1 instead of 0 -function increment (orig) { - return orig !== undefined ? orig + 1 : 1 -} - -function Parser (args, opts) { - var result = parse(args.slice(), opts) - - return result.argv -} - -// parse arguments and return detailed -// meta information, aliases, etc. -Parser.detailed = function (args, opts) { - return parse(args.slice(), opts) -} - -module.exports = Parser diff --git a/WebServer/node_modules/yargs-parser/lib/tokenize-arg-string.js b/WebServer/node_modules/yargs-parser/lib/tokenize-arg-string.js deleted file mode 100644 index 569f61ad4..000000000 --- a/WebServer/node_modules/yargs-parser/lib/tokenize-arg-string.js +++ /dev/null @@ -1,39 +0,0 @@ -// take an un-split argv string and tokenize it. -module.exports = function (argString) { - if (Array.isArray(argString)) return argString - - argString = argString.trim() - - var i = 0 - var prevC = null - var c = null - var opening = null - var args = [] - - for (var ii = 0; ii < argString.length; ii++) { - prevC = c - c = argString.charAt(ii) - - // split on spaces unless we're in quotes. - if (c === ' ' && !opening) { - if (!(prevC === ' ')) { - i++ - } - continue - } - - // don't split the string if we're in matching - // opening or closing single and double quotes. - if (c === opening) { - if (!args[i]) args[i] = '' - opening = null - } else if ((c === "'" || c === '"') && !opening) { - opening = c - } - - if (!args[i]) args[i] = '' - args[i] += c - } - - return args -} diff --git a/WebServer/node_modules/yargs-parser/package.json b/WebServer/node_modules/yargs-parser/package.json deleted file mode 100644 index 80ac74ab5..000000000 --- a/WebServer/node_modules/yargs-parser/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "_args": [ - [ - "yargs-parser@13.0.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "yargs-parser@13.0.0", - "_id": "yargs-parser@13.0.0", - "_inBundle": false, - "_integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "_location": "/yargs-parser", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "yargs-parser@13.0.0", - "name": "yargs-parser", - "escapedName": "yargs-parser", - "rawSpec": "13.0.0", - "saveSpec": null, - "fetchSpec": "13.0.0" - }, - "_requiredBy": [ - "/mocha", - "/yargs" - ], - "_resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "_spec": "13.0.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Ben Coe", - "email": "ben@npmjs.com" - }, - "bugs": { - "url": "https://github.com/yargs/yargs-parser/issues" - }, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "description": "the mighty option parser used by yargs", - "devDependencies": { - "chai": "^4.2.0", - "coveralls": "^3.0.2", - "mocha": "^5.2.0", - "nyc": "^13.0.1", - "standard": "^12.0.1", - "standard-version": "^4.4.0" - }, - "engine": { - "node": ">=6" - }, - "files": [ - "lib", - "index.js" - ], - "homepage": "https://github.com/yargs/yargs-parser#readme", - "keywords": [ - "argument", - "parser", - "yargs", - "command", - "cli", - "parsing", - "option", - "args", - "argument" - ], - "license": "ISC", - "main": "index.js", - "name": "yargs-parser", - "repository": { - "url": "git+ssh://git@github.com/yargs/yargs-parser.git" - }, - "scripts": { - "coverage": "nyc report --reporter=text-lcov | coveralls", - "posttest": "standard", - "release": "standard-version", - "test": "nyc mocha test/*.js" - }, - "version": "13.0.0" -} diff --git a/WebServer/node_modules/yargs-unparser/index.js b/WebServer/node_modules/yargs-unparser/index.js deleted file mode 100644 index b774c31ed..000000000 --- a/WebServer/node_modules/yargs-unparser/index.js +++ /dev/null @@ -1,130 +0,0 @@ -'use strict'; - -const yargs = require('yargs/yargs'); -const flatten = require('flat'); -const castArray = require('lodash/castArray'); -const some = require('lodash/some'); -const isPlainObject = require('lodash/isPlainObject'); -const camelCase = require('lodash/camelCase'); -const kebabCase = require('lodash/kebabCase'); -const omitBy = require('lodash/omitBy'); - -function isAlias(key, alias) { - return some(alias, (aliases) => castArray(aliases).indexOf(key) !== -1); -} - -function hasDefaultValue(key, value, defaults) { - return value === defaults[key]; -} - -function isCamelCased(key, argv) { - return /[A-Z]/.test(key) && camelCase(key) === key && // Is it camel case? - argv[kebabCase(key)] != null; // Is the standard version defined? -} - -function keyToFlag(key) { - return key.length === 1 ? `-${key}` : `--${key}`; -} - -function unparseOption(key, value, unparsed) { - if (typeof value === 'string') { - unparsed.push(keyToFlag(key), value); - } else if (value === true) { - unparsed.push(keyToFlag(key)); - } else if (value === false) { - unparsed.push(`--no-${key}`); - } else if (Array.isArray(value)) { - value.forEach((item) => unparseOption(key, item, unparsed)); - } else if (isPlainObject(value)) { - const flattened = flatten(value, { safe: true }); - - for (const flattenedKey in flattened) { - unparseOption(`${key}.${flattenedKey}`, flattened[flattenedKey], unparsed); - } - // Fallback case (numbers and other types) - } else if (value != null) { - unparsed.push(keyToFlag(key), `${value}`); - } -} - -function unparsePositional(argv, options, unparsed) { - const knownPositional = []; - - // Unparse command if set, collecting all known positional arguments - // e.g.: build - if (options.command) { - const { 0: cmd, index } = options.command.match(/[^<[]*/); - const { demanded, optional } = yargs() - .getCommandInstance() - .parseCommand(`foo ${options.command.substr(index + cmd.length)}`); - - // Push command (can be a deep command) - unparsed.push(...cmd.trim().split(/\s+/)); - - // Push positional arguments - [...demanded, ...optional].forEach(({ cmd: cmds, variadic }) => { - knownPositional.push(...cmds); - - const cmd = cmds[0]; - const args = (variadic ? argv[cmd] || [] : [argv[cmd]]) - .filter((arg) => arg != null) - .map((arg) => `${arg}`); - - unparsed.push(...args); - }); - } - - // Unparse unkown positional arguments - argv._ && unparsed.push(...argv._.slice(knownPositional.length)); - - return knownPositional; -} - -function unparseOptions(argv, options, knownPositional, unparsed) { - const optionsArgv = omitBy(argv, (value, key) => - // Remove positional arguments - knownPositional.includes(key) || - // Remove special _, -- and $0 - ['_', '--', '$0'].includes(key) || - // Remove aliases - isAlias(key, options.alias) || - // Remove default values - hasDefaultValue(key, value, options.default) || - // Remove camel-cased - isCamelCased(key, argv)); - - for (const key in optionsArgv) { - unparseOption(key, optionsArgv[key], unparsed); - } -} - -function unparseEndOfOptions(argv, options, unparsed) { - // Unparse ending (--) arguments if set - argv['--'] && unparsed.push('--', ...argv['--']); -} - -// ------------------------------------------------------------ - -function unparser(argv, options) { - options = Object.assign({ - alias: {}, - default: {}, - command: null, - }, options); - - const unparsed = []; - - // Unparse known & unknown positional arguments (foo [rest...]) - // All known positional will be returned so that they are not added as flags - const knownPositional = unparsePositional(argv, options, unparsed); - - // Unparse option arguments (--foo hello --bar hi) - unparseOptions(argv, options, knownPositional, unparsed); - - // Unparse "end-of-options" arguments (stuff after " -- ") - unparseEndOfOptions(argv, options, unparsed); - - return unparsed; -} - -module.exports = unparser; diff --git a/WebServer/node_modules/yargs-unparser/node_modules/get-caller-file/index.js b/WebServer/node_modules/yargs-unparser/node_modules/get-caller-file/index.js deleted file mode 100644 index 03e7dfc39..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/get-caller-file/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -// Call this function in a another function to find out the file from -// which that function was called from. (Inspects the v8 stack trace) -// -// Inspired by http://stackoverflow.com/questions/13227489 - -module.exports = function getCallerFile(_position) { - var oldPrepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = function(err, stack) { return stack; }; - var stack = new Error().stack; - Error.prepareStackTrace = oldPrepareStackTrace; - - var position = _position ? _position : 2; - - // stack[0] holds this file - // stack[1] holds where this function was called - // stack[2] holds the file we're interested in - return stack[position] ? stack[position].getFileName() : undefined; -}; diff --git a/WebServer/node_modules/yargs-unparser/node_modules/get-caller-file/package.json b/WebServer/node_modules/yargs-unparser/node_modules/get-caller-file/package.json deleted file mode 100644 index 6ad5da83a..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/get-caller-file/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "_args": [ - [ - "get-caller-file@1.0.3", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "get-caller-file@1.0.3", - "_id": "get-caller-file@1.0.3", - "_inBundle": false, - "_integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "_location": "/yargs-unparser/get-caller-file", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "get-caller-file@1.0.3", - "name": "get-caller-file", - "escapedName": "get-caller-file", - "rawSpec": "1.0.3", - "saveSpec": null, - "fetchSpec": "1.0.3" - }, - "_requiredBy": [ - "/yargs-unparser/yargs" - ], - "_resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "_spec": "1.0.3", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Stefan Penner" - }, - "bugs": { - "url": "https://github.com/stefanpenner/get-caller-file/issues" - }, - "description": "[![Build Status](https://travis-ci.org/stefanpenner/get-caller-file.svg?branch=master)](https://travis-ci.org/stefanpenner/get-caller-file) [![Build status](https://ci.appveyor.com/api/projects/status/ol2q94g1932cy14a/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/get-caller-file/branch/master)", - "devDependencies": { - "chai": "^4.1.2", - "ensure-posix-path": "^1.0.1", - "mocha": "^5.2.0" - }, - "directories": { - "test": "tests" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/stefanpenner/get-caller-file#readme", - "license": "ISC", - "main": "index.js", - "name": "get-caller-file", - "repository": { - "type": "git", - "url": "git+https://github.com/stefanpenner/get-caller-file.git" - }, - "scripts": { - "test": "mocha test", - "test:debug": "mocha test" - }, - "version": "1.0.3" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/require-main-filename/index.js b/WebServer/node_modules/yargs-unparser/node_modules/require-main-filename/index.js deleted file mode 100644 index dca7f0cc1..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/require-main-filename/index.js +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = function (_require) { - _require = _require || require - var main = _require.main - if (main && isIISNode(main)) return handleIISNode(main) - else return main ? main.filename : process.cwd() -} - -function isIISNode (main) { - return /\\iisnode\\/.test(main.filename) -} - -function handleIISNode (main) { - if (!main.children.length) { - return main.filename - } else { - return main.children[0].filename - } -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/require-main-filename/package.json b/WebServer/node_modules/yargs-unparser/node_modules/require-main-filename/package.json deleted file mode 100644 index d4b500fd5..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/require-main-filename/package.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "_args": [ - [ - "require-main-filename@1.0.1", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "require-main-filename@1.0.1", - "_id": "require-main-filename@1.0.1", - "_inBundle": false, - "_integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "_location": "/yargs-unparser/require-main-filename", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "require-main-filename@1.0.1", - "name": "require-main-filename", - "escapedName": "require-main-filename", - "rawSpec": "1.0.1", - "saveSpec": null, - "fetchSpec": "1.0.1" - }, - "_requiredBy": [ - "/yargs-unparser/yargs" - ], - "_resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "_spec": "1.0.1", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Ben Coe", - "email": "ben@npmjs.com" - }, - "bugs": { - "url": "https://github.com/yargs/require-main-filename/issues" - }, - "description": "shim for require.main.filename() that works in as many environments as possible", - "devDependencies": { - "chai": "^3.5.0", - "standard": "^6.0.5", - "tap": "^5.2.0" - }, - "homepage": "https://github.com/yargs/require-main-filename#readme", - "keywords": [ - "require", - "shim", - "iisnode" - ], - "license": "ISC", - "main": "index.js", - "name": "require-main-filename", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/yargs/require-main-filename.git" - }, - "scripts": { - "pretest": "standard", - "test": "tap --coverage test.js" - }, - "version": "1.0.1" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/require-main-filename/test.js b/WebServer/node_modules/yargs-unparser/node_modules/require-main-filename/test.js deleted file mode 100644 index d89e7dcba..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/require-main-filename/test.js +++ /dev/null @@ -1,36 +0,0 @@ -/* global describe, it */ - -var requireMainFilename = require('./') - -require('tap').mochaGlobals() -require('chai').should() - -describe('require-main-filename', function () { - it('returns require.main.filename in normal circumstances', function () { - requireMainFilename().should.match(/test\.js/) - }) - - it('should use children[0].filename when running on iisnode', function () { - var main = { - filename: 'D:\\Program Files (x86)\\iisnode\\interceptor.js', - children: [ {filename: 'D:\\home\\site\\wwwroot\\server.js'} ] - } - requireMainFilename({ - main: main - }).should.match(/server\.js/) - }) - - it('should not use children[0] if no children exist', function () { - var main = { - filename: 'D:\\Program Files (x86)\\iisnode\\interceptor.js', - children: [] - } - requireMainFilename({ - main: main - }).should.match(/interceptor\.js/) - }) - - it('should default to process.cwd() if require.main is undefined', function () { - requireMainFilename({}).should.match(/require-main-filename/) - }) -}) diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs-parser/index.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs-parser/index.js deleted file mode 100644 index 69fa72dc1..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs-parser/index.js +++ /dev/null @@ -1,866 +0,0 @@ -var camelCase = require('camelcase') -var decamelize = require('decamelize') -var path = require('path') -var tokenizeArgString = require('./lib/tokenize-arg-string') -var util = require('util') - -function parse (args, opts) { - if (!opts) opts = {} - // allow a string argument to be passed in rather - // than an argv array. - args = tokenizeArgString(args) - // aliases might have transitive relationships, normalize this. - var aliases = combineAliases(opts.alias || {}) - var configuration = assign({ - 'short-option-groups': true, - 'camel-case-expansion': true, - 'dot-notation': true, - 'parse-numbers': true, - 'boolean-negation': true, - 'negation-prefix': 'no-', - 'duplicate-arguments-array': true, - 'flatten-duplicate-arrays': true, - 'populate--': false, - 'combine-arrays': false, - 'set-placeholder-key': false, - 'halt-at-non-option': false - }, opts.configuration) - var defaults = opts.default || {} - var configObjects = opts.configObjects || [] - var envPrefix = opts.envPrefix - var notFlagsOption = configuration['populate--'] - var notFlagsArgv = notFlagsOption ? '--' : '_' - var newAliases = {} - // allow a i18n handler to be passed in, default to a fake one (util.format). - var __ = opts.__ || function (str) { - return util.format.apply(util, Array.prototype.slice.call(arguments)) - } - var error = null - var flags = { - aliases: {}, - arrays: {}, - bools: {}, - strings: {}, - numbers: {}, - counts: {}, - normalize: {}, - configs: {}, - defaulted: {}, - nargs: {}, - coercions: {}, - keys: [] - } - var negative = /^-[0-9]+(\.[0-9]+)?/ - var negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)') - - ;[].concat(opts.array).filter(Boolean).forEach(function (opt) { - var key = opt.key || opt - - // assign to flags[bools|strings|numbers] - const assignment = Object.keys(opt).map(function (key) { - return ({ - boolean: 'bools', - string: 'strings', - number: 'numbers' - })[key] - }).filter(Boolean).pop() - - // assign key to be coerced - if (assignment) { - flags[assignment][key] = true - } - - flags.arrays[key] = true - flags.keys.push(key) - }) - - ;[].concat(opts.boolean).filter(Boolean).forEach(function (key) { - flags.bools[key] = true - flags.keys.push(key) - }) - - ;[].concat(opts.string).filter(Boolean).forEach(function (key) { - flags.strings[key] = true - flags.keys.push(key) - }) - - ;[].concat(opts.number).filter(Boolean).forEach(function (key) { - flags.numbers[key] = true - flags.keys.push(key) - }) - - ;[].concat(opts.count).filter(Boolean).forEach(function (key) { - flags.counts[key] = true - flags.keys.push(key) - }) - - ;[].concat(opts.normalize).filter(Boolean).forEach(function (key) { - flags.normalize[key] = true - flags.keys.push(key) - }) - - Object.keys(opts.narg || {}).forEach(function (k) { - flags.nargs[k] = opts.narg[k] - flags.keys.push(k) - }) - - Object.keys(opts.coerce || {}).forEach(function (k) { - flags.coercions[k] = opts.coerce[k] - flags.keys.push(k) - }) - - if (Array.isArray(opts.config) || typeof opts.config === 'string') { - ;[].concat(opts.config).filter(Boolean).forEach(function (key) { - flags.configs[key] = true - }) - } else { - Object.keys(opts.config || {}).forEach(function (k) { - flags.configs[k] = opts.config[k] - }) - } - - // create a lookup table that takes into account all - // combinations of aliases: {f: ['foo'], foo: ['f']} - extendAliases(opts.key, aliases, opts.default, flags.arrays) - - // apply default values to all aliases. - Object.keys(defaults).forEach(function (key) { - (flags.aliases[key] || []).forEach(function (alias) { - defaults[alias] = defaults[key] - }) - }) - - var argv = { _: [] } - - Object.keys(flags.bools).forEach(function (key) { - if (Object.prototype.hasOwnProperty.call(defaults, key)) { - setArg(key, defaults[key]) - setDefaulted(key) - } - }) - - var notFlags = [] - - for (var i = 0; i < args.length; i++) { - var arg = args[i] - var broken - var key - var letters - var m - var next - var value - - // -- separated by = - if (arg.match(/^--.+=/) || ( - !configuration['short-option-groups'] && arg.match(/^-.+=/) - )) { - // Using [\s\S] instead of . because js doesn't support the - // 'dotall' regex modifier. See: - // http://stackoverflow.com/a/1068308/13216 - m = arg.match(/^--?([^=]+)=([\s\S]*)$/) - - // nargs format = '--f=monkey washing cat' - if (checkAllAliases(m[1], flags.nargs)) { - args.splice(i + 1, 0, m[2]) - i = eatNargs(i, m[1], args) - // arrays format = '--f=a b c' - } else if (checkAllAliases(m[1], flags.arrays) && args.length > i + 1) { - args.splice(i + 1, 0, m[2]) - i = eatArray(i, m[1], args) - } else { - setArg(m[1], m[2]) - } - } else if (arg.match(negatedBoolean) && configuration['boolean-negation']) { - key = arg.match(negatedBoolean)[1] - setArg(key, false) - - // -- seperated by space. - } else if (arg.match(/^--.+/) || ( - !configuration['short-option-groups'] && arg.match(/^-.+/) - )) { - key = arg.match(/^--?(.+)/)[1] - - // nargs format = '--foo a b c' - if (checkAllAliases(key, flags.nargs)) { - i = eatNargs(i, key, args) - // array format = '--foo a b c' - } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) { - i = eatArray(i, key, args) - } else { - next = args[i + 1] - - if (next !== undefined && (!next.match(/^-/) || - next.match(negative)) && - !checkAllAliases(key, flags.bools) && - !checkAllAliases(key, flags.counts)) { - setArg(key, next) - i++ - } else if (/^(true|false)$/.test(next)) { - setArg(key, next) - i++ - } else { - setArg(key, defaultForType(guessType(key, flags))) - } - } - - // dot-notation flag seperated by '='. - } else if (arg.match(/^-.\..+=/)) { - m = arg.match(/^-([^=]+)=([\s\S]*)$/) - setArg(m[1], m[2]) - - // dot-notation flag seperated by space. - } else if (arg.match(/^-.\..+/)) { - next = args[i + 1] - key = arg.match(/^-(.\..+)/)[1] - - if (next !== undefined && !next.match(/^-/) && - !checkAllAliases(key, flags.bools) && - !checkAllAliases(key, flags.counts)) { - setArg(key, next) - i++ - } else { - setArg(key, defaultForType(guessType(key, flags))) - } - } else if (arg.match(/^-[^-]+/) && !arg.match(negative)) { - letters = arg.slice(1, -1).split('') - broken = false - - for (var j = 0; j < letters.length; j++) { - next = arg.slice(j + 2) - - if (letters[j + 1] && letters[j + 1] === '=') { - value = arg.slice(j + 3) - key = letters[j] - - // nargs format = '-f=monkey washing cat' - if (checkAllAliases(key, flags.nargs)) { - args.splice(i + 1, 0, value) - i = eatNargs(i, key, args) - // array format = '-f=a b c' - } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) { - args.splice(i + 1, 0, value) - i = eatArray(i, key, args) - } else { - setArg(key, value) - } - - broken = true - break - } - - if (next === '-') { - setArg(letters[j], next) - continue - } - - // current letter is an alphabetic character and next value is a number - if (/[A-Za-z]/.test(letters[j]) && - /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { - setArg(letters[j], next) - broken = true - break - } - - if (letters[j + 1] && letters[j + 1].match(/\W/)) { - setArg(letters[j], next) - broken = true - break - } else { - setArg(letters[j], defaultForType(guessType(letters[j], flags))) - } - } - - key = arg.slice(-1)[0] - - if (!broken && key !== '-') { - // nargs format = '-f a b c' - if (checkAllAliases(key, flags.nargs)) { - i = eatNargs(i, key, args) - // array format = '-f a b c' - } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) { - i = eatArray(i, key, args) - } else { - next = args[i + 1] - - if (next !== undefined && (!/^(-|--)[^-]/.test(next) || - next.match(negative)) && - !checkAllAliases(key, flags.bools) && - !checkAllAliases(key, flags.counts)) { - setArg(key, next) - i++ - } else if (/^(true|false)$/.test(next)) { - setArg(key, next) - i++ - } else { - setArg(key, defaultForType(guessType(key, flags))) - } - } - } - } else if (arg === '--') { - notFlags = args.slice(i + 1) - break - } else if (configuration['halt-at-non-option']) { - notFlags = args.slice(i) - break - } else { - argv._.push(maybeCoerceNumber('_', arg)) - } - } - - // order of precedence: - // 1. command line arg - // 2. value from env var - // 3. value from config file - // 4. value from config objects - // 5. configured default value - applyEnvVars(argv, true) // special case: check env vars that point to config file - applyEnvVars(argv, false) - setConfig(argv) - setConfigObjects() - applyDefaultsAndAliases(argv, flags.aliases, defaults) - applyCoercions(argv) - if (configuration['set-placeholder-key']) setPlaceholderKeys(argv) - - // for any counts either not in args or without an explicit default, set to 0 - Object.keys(flags.counts).forEach(function (key) { - if (!hasKey(argv, key.split('.'))) setArg(key, 0) - }) - - // '--' defaults to undefined. - if (notFlagsOption && notFlags.length) argv[notFlagsArgv] = [] - notFlags.forEach(function (key) { - argv[notFlagsArgv].push(key) - }) - - // how many arguments should we consume, based - // on the nargs option? - function eatNargs (i, key, args) { - var ii - const toEat = checkAllAliases(key, flags.nargs) - - // nargs will not consume flag arguments, e.g., -abc, --foo, - // and terminates when one is observed. - var available = 0 - for (ii = i + 1; ii < args.length; ii++) { - if (!args[ii].match(/^-[^0-9]/)) available++ - else break - } - - if (available < toEat) error = Error(__('Not enough arguments following: %s', key)) - - const consumed = Math.min(available, toEat) - for (ii = i + 1; ii < (consumed + i + 1); ii++) { - setArg(key, args[ii]) - } - - return (i + consumed) - } - - // if an option is an array, eat all non-hyphenated arguments - // following it... YUM! - // e.g., --foo apple banana cat becomes ["apple", "banana", "cat"] - function eatArray (i, key, args) { - var start = i + 1 - var argsToSet = [] - var multipleArrayFlag = i > 0 - for (var ii = i + 1; ii < args.length; ii++) { - if (/^-/.test(args[ii]) && !negative.test(args[ii])) { - if (ii === start) { - setArg(key, defaultForType('array')) - } - multipleArrayFlag = true - break - } - i = ii - argsToSet.push(args[ii]) - } - if (multipleArrayFlag) { - setArg(key, argsToSet.map(function (arg) { - return processValue(key, arg) - })) - } else { - argsToSet.forEach(function (arg) { - setArg(key, arg) - }) - } - - return i - } - - function setArg (key, val) { - unsetDefaulted(key) - - if (/-/.test(key) && configuration['camel-case-expansion']) { - var alias = key.split('.').map(function (prop) { - return camelCase(prop) - }).join('.') - addNewAlias(key, alias) - } - - var value = processValue(key, val) - - var splitKey = key.split('.') - setKey(argv, splitKey, value) - - // handle populating aliases of the full key - if (flags.aliases[key]) { - flags.aliases[key].forEach(function (x) { - x = x.split('.') - setKey(argv, x, value) - }) - } - - // handle populating aliases of the first element of the dot-notation key - if (splitKey.length > 1 && configuration['dot-notation']) { - ;(flags.aliases[splitKey[0]] || []).forEach(function (x) { - x = x.split('.') - - // expand alias with nested objects in key - var a = [].concat(splitKey) - a.shift() // nuke the old key. - x = x.concat(a) - - setKey(argv, x, value) - }) - } - - // Set normalize getter and setter when key is in 'normalize' but isn't an array - if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) { - var keys = [key].concat(flags.aliases[key] || []) - keys.forEach(function (key) { - argv.__defineSetter__(key, function (v) { - val = path.normalize(v) - }) - - argv.__defineGetter__(key, function () { - return typeof val === 'string' ? path.normalize(val) : val - }) - }) - } - } - - function addNewAlias (key, alias) { - if (!(flags.aliases[key] && flags.aliases[key].length)) { - flags.aliases[key] = [alias] - newAliases[alias] = true - } - if (!(flags.aliases[alias] && flags.aliases[alias].length)) { - addNewAlias(alias, key) - } - } - - function processValue (key, val) { - // handle parsing boolean arguments --foo=true --bar false. - if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) { - if (typeof val === 'string') val = val === 'true' - } - - var value = maybeCoerceNumber(key, val) - - // increment a count given as arg (either no value or value parsed as boolean) - if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) { - value = increment - } - - // Set normalized value when key is in 'normalize' and in 'arrays' - if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) { - if (Array.isArray(val)) value = val.map(path.normalize) - else value = path.normalize(val) - } - return value - } - - function maybeCoerceNumber (key, value) { - if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.coercions)) { - const shouldCoerceNumber = isNumber(value) && configuration['parse-numbers'] && ( - Number.isSafeInteger(Math.floor(value)) - ) - if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) value = Number(value) - } - return value - } - - // set args from config.json file, this should be - // applied last so that defaults can be applied. - function setConfig (argv) { - var configLookup = {} - - // expand defaults/aliases, in-case any happen to reference - // the config.json file. - applyDefaultsAndAliases(configLookup, flags.aliases, defaults) - - Object.keys(flags.configs).forEach(function (configKey) { - var configPath = argv[configKey] || configLookup[configKey] - if (configPath) { - try { - var config = null - var resolvedConfigPath = path.resolve(process.cwd(), configPath) - - if (typeof flags.configs[configKey] === 'function') { - try { - config = flags.configs[configKey](resolvedConfigPath) - } catch (e) { - config = e - } - if (config instanceof Error) { - error = config - return - } - } else { - config = require(resolvedConfigPath) - } - - setConfigObject(config) - } catch (ex) { - if (argv[configKey]) error = Error(__('Invalid JSON config file: %s', configPath)) - } - } - }) - } - - // set args from config object. - // it recursively checks nested objects. - function setConfigObject (config, prev) { - Object.keys(config).forEach(function (key) { - var value = config[key] - var fullKey = prev ? prev + '.' + key : key - - // if the value is an inner object and we have dot-notation - // enabled, treat inner objects in config the same as - // heavily nested dot notations (foo.bar.apple). - if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) { - // if the value is an object but not an array, check nested object - setConfigObject(value, fullKey) - } else { - // setting arguments via CLI takes precedence over - // values within the config file. - if (!hasKey(argv, fullKey.split('.')) || (flags.defaulted[fullKey]) || (flags.arrays[fullKey] && configuration['combine-arrays'])) { - setArg(fullKey, value) - } - } - }) - } - - // set all config objects passed in opts - function setConfigObjects () { - if (typeof configObjects === 'undefined') return - configObjects.forEach(function (configObject) { - setConfigObject(configObject) - }) - } - - function applyEnvVars (argv, configOnly) { - if (typeof envPrefix === 'undefined') return - - var prefix = typeof envPrefix === 'string' ? envPrefix : '' - Object.keys(process.env).forEach(function (envVar) { - if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) { - // get array of nested keys and convert them to camel case - var keys = envVar.split('__').map(function (key, i) { - if (i === 0) { - key = key.substring(prefix.length) - } - return camelCase(key) - }) - - if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && (!hasKey(argv, keys) || flags.defaulted[keys.join('.')])) { - setArg(keys.join('.'), process.env[envVar]) - } - } - }) - } - - function applyCoercions (argv) { - var coerce - var applied = {} - Object.keys(argv).forEach(function (key) { - if (!applied.hasOwnProperty(key)) { // If we haven't already coerced this option via one of its aliases - coerce = checkAllAliases(key, flags.coercions) - if (typeof coerce === 'function') { - try { - var value = coerce(argv[key]) - ;([].concat(flags.aliases[key] || [], key)).forEach(ali => { - applied[ali] = argv[ali] = value - }) - } catch (err) { - error = err - } - } - } - }) - } - - function setPlaceholderKeys (argv) { - flags.keys.forEach((key) => { - // don't set placeholder keys for dot notation options 'foo.bar'. - if (~key.indexOf('.')) return - if (typeof argv[key] === 'undefined') argv[key] = undefined - }) - return argv - } - - function applyDefaultsAndAliases (obj, aliases, defaults) { - Object.keys(defaults).forEach(function (key) { - if (!hasKey(obj, key.split('.'))) { - setKey(obj, key.split('.'), defaults[key]) - - ;(aliases[key] || []).forEach(function (x) { - if (hasKey(obj, x.split('.'))) return - setKey(obj, x.split('.'), defaults[key]) - }) - } - }) - } - - function hasKey (obj, keys) { - var o = obj - - if (!configuration['dot-notation']) keys = [keys.join('.')] - - keys.slice(0, -1).forEach(function (key) { - o = (o[key] || {}) - }) - - var key = keys[keys.length - 1] - - if (typeof o !== 'object') return false - else return key in o - } - - function setKey (obj, keys, value) { - var o = obj - - if (!configuration['dot-notation']) keys = [keys.join('.')] - - keys.slice(0, -1).forEach(function (key, index) { - if (typeof o === 'object' && o[key] === undefined) { - o[key] = {} - } - - if (typeof o[key] !== 'object' || Array.isArray(o[key])) { - // ensure that o[key] is an array, and that the last item is an empty object. - if (Array.isArray(o[key])) { - o[key].push({}) - } else { - o[key] = [o[key], {}] - } - - // we want to update the empty object at the end of the o[key] array, so set o to that object - o = o[key][o[key].length - 1] - } else { - o = o[key] - } - }) - - var key = keys[keys.length - 1] - - var isTypeArray = checkAllAliases(keys.join('.'), flags.arrays) - var isValueArray = Array.isArray(value) - var duplicate = configuration['duplicate-arguments-array'] - - if (value === increment) { - o[key] = increment(o[key]) - } else if (Array.isArray(o[key])) { - if (duplicate && isTypeArray && isValueArray) { - o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]) - } else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) { - o[key] = value - } else { - o[key] = o[key].concat([value]) - } - } else if (o[key] === undefined && isTypeArray) { - o[key] = isValueArray ? value : [value] - } else if (duplicate && !(o[key] === undefined || checkAllAliases(key, flags.bools) || checkAllAliases(keys.join('.'), flags.bools) || checkAllAliases(key, flags.counts))) { - o[key] = [ o[key], value ] - } else { - o[key] = value - } - } - - // extend the aliases list with inferred aliases. - function extendAliases () { - Array.prototype.slice.call(arguments).forEach(function (obj) { - Object.keys(obj || {}).forEach(function (key) { - // short-circuit if we've already added a key - // to the aliases array, for example it might - // exist in both 'opts.default' and 'opts.key'. - if (flags.aliases[key]) return - - flags.aliases[key] = [].concat(aliases[key] || []) - // For "--option-name", also set argv.optionName - flags.aliases[key].concat(key).forEach(function (x) { - if (/-/.test(x) && configuration['camel-case-expansion']) { - var c = camelCase(x) - if (c !== key && flags.aliases[key].indexOf(c) === -1) { - flags.aliases[key].push(c) - newAliases[c] = true - } - } - }) - // For "--optionName", also set argv['option-name'] - flags.aliases[key].concat(key).forEach(function (x) { - if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) { - var c = decamelize(x, '-') - if (c !== key && flags.aliases[key].indexOf(c) === -1) { - flags.aliases[key].push(c) - newAliases[c] = true - } - } - }) - flags.aliases[key].forEach(function (x) { - flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) { - return x !== y - })) - }) - }) - }) - } - - // check if a flag is set for any of a key's aliases. - function checkAllAliases (key, flag) { - var isSet = false - var toCheck = [].concat(flags.aliases[key] || [], key) - - toCheck.forEach(function (key) { - if (flag[key]) isSet = flag[key] - }) - - return isSet - } - - function setDefaulted (key) { - [].concat(flags.aliases[key] || [], key).forEach(function (k) { - flags.defaulted[k] = true - }) - } - - function unsetDefaulted (key) { - [].concat(flags.aliases[key] || [], key).forEach(function (k) { - delete flags.defaulted[k] - }) - } - - // return a default value, given the type of a flag., - // e.g., key of type 'string' will default to '', rather than 'true'. - function defaultForType (type) { - var def = { - boolean: true, - string: '', - number: undefined, - array: [] - } - - return def[type] - } - - // given a flag, enforce a default type. - function guessType (key, flags) { - var type = 'boolean' - - if (checkAllAliases(key, flags.strings)) type = 'string' - else if (checkAllAliases(key, flags.numbers)) type = 'number' - else if (checkAllAliases(key, flags.arrays)) type = 'array' - - return type - } - - function isNumber (x) { - if (typeof x === 'number') return true - if (/^0x[0-9a-f]+$/i.test(x)) return true - return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x) - } - - function isUndefined (num) { - return num === undefined - } - - return { - argv: argv, - error: error, - aliases: flags.aliases, - newAliases: newAliases, - configuration: configuration - } -} - -// if any aliases reference each other, we should -// merge them together. -function combineAliases (aliases) { - var aliasArrays = [] - var change = true - var combined = {} - - // turn alias lookup hash {key: ['alias1', 'alias2']} into - // a simple array ['key', 'alias1', 'alias2'] - Object.keys(aliases).forEach(function (key) { - aliasArrays.push( - [].concat(aliases[key], key) - ) - }) - - // combine arrays until zero changes are - // made in an iteration. - while (change) { - change = false - for (var i = 0; i < aliasArrays.length; i++) { - for (var ii = i + 1; ii < aliasArrays.length; ii++) { - var intersect = aliasArrays[i].filter(function (v) { - return aliasArrays[ii].indexOf(v) !== -1 - }) - - if (intersect.length) { - aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]) - aliasArrays.splice(ii, 1) - change = true - break - } - } - } - } - - // map arrays back to the hash-lookup (de-dupe while - // we're at it). - aliasArrays.forEach(function (aliasArray) { - aliasArray = aliasArray.filter(function (v, i, self) { - return self.indexOf(v) === i - }) - combined[aliasArray.pop()] = aliasArray - }) - - return combined -} - -function assign (defaults, configuration) { - var o = {} - configuration = configuration || {} - - Object.keys(defaults).forEach(function (k) { - o[k] = defaults[k] - }) - Object.keys(configuration).forEach(function (k) { - o[k] = configuration[k] - }) - - return o -} - -// this function should only be called when a count is given as an arg -// it is NOT called to set a default value -// thus we can start the count at 1 instead of 0 -function increment (orig) { - return orig !== undefined ? orig + 1 : 1 -} - -function Parser (args, opts) { - var result = parse(args.slice(), opts) - - return result.argv -} - -// parse arguments and return detailed -// meta information, aliases, etc. -Parser.detailed = function (args, opts) { - return parse(args.slice(), opts) -} - -module.exports = Parser diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs-parser/lib/tokenize-arg-string.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs-parser/lib/tokenize-arg-string.js deleted file mode 100644 index 73e14cd64..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs-parser/lib/tokenize-arg-string.js +++ /dev/null @@ -1,41 +0,0 @@ -// take an un-split argv string and tokenize it. -module.exports = function (argString) { - if (Array.isArray(argString)) return argString - - argString = argString.trim() - - var i = 0 - var prevC = null - var c = null - var opening = null - var args = [] - - for (var ii = 0; ii < argString.length; ii++) { - prevC = c - c = argString.charAt(ii) - - // split on spaces unless we're in quotes. - if (c === ' ' && !opening) { - if (!(prevC === ' ')) { - i++ - } - continue - } - - // don't split the string if we're in matching - // opening or closing single and double quotes. - if (c === opening) { - if (!args[i]) args[i] = '' - opening = null - continue - } else if ((c === "'" || c === '"') && !opening) { - opening = c - continue - } - - if (!args[i]) args[i] = '' - args[i] += c - } - - return args -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs-parser/package.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs-parser/package.json deleted file mode 100644 index 107c0b587..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs-parser/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "_args": [ - [ - "yargs-parser@11.1.1", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "yargs-parser@11.1.1", - "_id": "yargs-parser@11.1.1", - "_inBundle": false, - "_integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "_location": "/yargs-unparser/yargs-parser", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "yargs-parser@11.1.1", - "name": "yargs-parser", - "escapedName": "yargs-parser", - "rawSpec": "11.1.1", - "saveSpec": null, - "fetchSpec": "11.1.1" - }, - "_requiredBy": [ - "/yargs-unparser/yargs" - ], - "_resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "_spec": "11.1.1", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Ben Coe", - "email": "ben@npmjs.com" - }, - "bugs": { - "url": "https://github.com/yargs/yargs-parser/issues" - }, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "description": "the mighty option parser used by yargs", - "devDependencies": { - "chai": "^4.2.0", - "coveralls": "^3.0.2", - "mocha": "^5.2.0", - "nyc": "^13.0.1", - "standard": "^12.0.1", - "standard-version": "^4.4.0" - }, - "engine": { - "node": ">=6" - }, - "files": [ - "lib", - "index.js" - ], - "homepage": "https://github.com/yargs/yargs-parser#readme", - "keywords": [ - "argument", - "parser", - "yargs", - "command", - "cli", - "parsing", - "option", - "args", - "argument" - ], - "license": "ISC", - "main": "index.js", - "name": "yargs-parser", - "repository": { - "url": "git+ssh://git@github.com/yargs/yargs-parser.git" - }, - "scripts": { - "coverage": "nyc report --reporter=text-lcov | coveralls", - "posttest": "standard", - "release": "standard-version", - "test": "nyc mocha test/*.js" - }, - "version": "11.1.1" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/index.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/index.js deleted file mode 100644 index dfed54bc5..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/index.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict' -// classic singleton yargs API, to use yargs -// without running as a singleton do: -// require('yargs/yargs')(process.argv.slice(2)) -const yargs = require('./yargs') - -Argv(process.argv.slice(2)) - -module.exports = Argv - -function Argv (processArgs, cwd) { - const argv = yargs(processArgs, cwd, require) - singletonify(argv) - return argv -} - -/* Hack an instance of Argv with process.argv into Argv - so people can do - require('yargs')(['--beeble=1','-z','zizzle']).argv - to parse a list of args and - require('yargs').argv - to get a parsed version of process.argv. -*/ -function singletonify (inst) { - Object.keys(inst).forEach((key) => { - if (key === 'argv') { - Argv.__defineGetter__(key, inst.__lookupGetter__(key)) - } else { - Argv[key] = typeof inst[key] === 'function' ? inst[key].bind(inst) : inst[key] - } - }) -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/apply-extends.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/apply-extends.js deleted file mode 100644 index 1436b6508..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/apply-extends.js +++ /dev/null @@ -1,53 +0,0 @@ - -'use strict' -const fs = require('fs') -const path = require('path') -const YError = require('./yerror') - -let previouslyVisitedConfigs = [] - -function checkForCircularExtends (cfgPath) { - if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) { - throw new YError(`Circular extended configurations: '${cfgPath}'.`) - } -} - -function getPathToDefaultConfig (cwd, pathToExtend) { - return path.resolve(cwd, pathToExtend) -} - -function applyExtends (config, cwd) { - let defaultConfig = {} - - if (config.hasOwnProperty('extends')) { - if (typeof config.extends !== 'string') return defaultConfig - const isPath = /\.json|\..*rc$/.test(config.extends) - let pathToDefault = null - if (!isPath) { - try { - pathToDefault = require.resolve(config.extends) - } catch (err) { - // most likely this simply isn't a module. - } - } else { - pathToDefault = getPathToDefaultConfig(cwd, config.extends) - } - // maybe the module uses key for some other reason, - // err on side of caution. - if (!pathToDefault && !isPath) return config - - checkForCircularExtends(pathToDefault) - - previouslyVisitedConfigs.push(pathToDefault) - - defaultConfig = isPath ? JSON.parse(fs.readFileSync(pathToDefault, 'utf8')) : require(config.extends) - delete config.extends - defaultConfig = applyExtends(defaultConfig, path.dirname(pathToDefault)) - } - - previouslyVisitedConfigs = [] - - return Object.assign({}, defaultConfig, config) -} - -module.exports = applyExtends diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js deleted file mode 100644 index ed1d59871..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/argsert.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict' -const command = require('./command')() -const YError = require('./yerror') - -const positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth'] - -module.exports = function argsert (expected, callerArguments, length) { - // TODO: should this eventually raise an exception. - try { - // preface the argument description with "cmd", so - // that we can run it through yargs' command parser. - let position = 0 - let parsed = {demanded: [], optional: []} - if (typeof expected === 'object') { - length = callerArguments - callerArguments = expected - } else { - parsed = command.parseCommand(`cmd ${expected}`) - } - const args = [].slice.call(callerArguments) - - while (args.length && args[args.length - 1] === undefined) args.pop() - length = length || args.length - - if (length < parsed.demanded.length) { - throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`) - } - - const totalCommands = parsed.demanded.length + parsed.optional.length - if (length > totalCommands) { - throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`) - } - - parsed.demanded.forEach((demanded) => { - const arg = args.shift() - const observedType = guessType(arg) - const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*') - if (matchingTypes.length === 0) argumentTypeError(observedType, demanded.cmd, position, false) - position += 1 - }) - - parsed.optional.forEach((optional) => { - if (args.length === 0) return - const arg = args.shift() - const observedType = guessType(arg) - const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*') - if (matchingTypes.length === 0) argumentTypeError(observedType, optional.cmd, position, true) - position += 1 - }) - } catch (err) { - console.warn(err.stack) - } -} - -function guessType (arg) { - if (Array.isArray(arg)) { - return 'array' - } else if (arg === null) { - return 'null' - } - return typeof arg -} - -function argumentTypeError (observedType, allowedTypes, position, optional) { - throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`) -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/command.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/command.js deleted file mode 100644 index 65ffc4ea5..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/command.js +++ /dev/null @@ -1,433 +0,0 @@ -'use strict' - -const inspect = require('util').inspect -const path = require('path') -const Parser = require('yargs-parser') - -const DEFAULT_MARKER = /(^\*)|(^\$0)/ - -// handles parsing positional arguments, -// and populating argv with said positional -// arguments. -module.exports = function command (yargs, usage, validation, globalMiddleware) { - const self = {} - let handlers = {} - let aliasMap = {} - let defaultCommand - globalMiddleware = globalMiddleware || [] - self.addHandler = function addHandler (cmd, description, builder, handler, middlewares) { - let aliases = [] - handler = handler || (() => {}) - middlewares = middlewares || [] - globalMiddleware.push(...middlewares) - middlewares = globalMiddleware - if (Array.isArray(cmd)) { - aliases = cmd.slice(1) - cmd = cmd[0] - } else if (typeof cmd === 'object') { - let command = (Array.isArray(cmd.command) || typeof cmd.command === 'string') ? cmd.command : moduleName(cmd) - if (cmd.aliases) command = [].concat(command).concat(cmd.aliases) - self.addHandler(command, extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares) - return - } - - // allow a module to be provided instead of separate builder and handler - if (typeof builder === 'object' && builder.builder && typeof builder.handler === 'function') { - self.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares) - return - } - - // parse positionals out of cmd string - const parsedCommand = self.parseCommand(cmd) - - // remove positional args from aliases only - aliases = aliases.map(alias => self.parseCommand(alias).cmd) - - // check for default and filter out '*'' - let isDefault = false - const parsedAliases = [parsedCommand.cmd].concat(aliases).filter((c) => { - if (DEFAULT_MARKER.test(c)) { - isDefault = true - return false - } - return true - }) - - // standardize on $0 for default command. - if (parsedAliases.length === 0 && isDefault) parsedAliases.push('$0') - - // shift cmd and aliases after filtering out '*' - if (isDefault) { - parsedCommand.cmd = parsedAliases[0] - aliases = parsedAliases.slice(1) - cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd) - } - - // populate aliasMap - aliases.forEach((alias) => { - aliasMap[alias] = parsedCommand.cmd - }) - - if (description !== false) { - usage.command(cmd, description, isDefault, aliases) - } - - handlers[parsedCommand.cmd] = { - original: cmd, - description: description, - handler, - builder: builder || {}, - middlewares: middlewares || [], - demanded: parsedCommand.demanded, - optional: parsedCommand.optional - } - - if (isDefault) defaultCommand = handlers[parsedCommand.cmd] - } - - self.addDirectory = function addDirectory (dir, context, req, callerFile, opts) { - opts = opts || {} - // disable recursion to support nested directories of subcommands - if (typeof opts.recurse !== 'boolean') opts.recurse = false - // exclude 'json', 'coffee' from require-directory defaults - if (!Array.isArray(opts.extensions)) opts.extensions = ['js'] - // allow consumer to define their own visitor function - const parentVisit = typeof opts.visit === 'function' ? opts.visit : o => o - // call addHandler via visitor function - opts.visit = function visit (obj, joined, filename) { - const visited = parentVisit(obj, joined, filename) - // allow consumer to skip modules with their own visitor - if (visited) { - // check for cyclic reference - // each command file path should only be seen once per execution - if (~context.files.indexOf(joined)) return visited - // keep track of visited files in context.files - context.files.push(joined) - self.addHandler(visited) - } - return visited - } - require('require-directory')({ require: req, filename: callerFile }, dir, opts) - } - - // lookup module object from require()d command and derive name - // if module was not require()d and no name given, throw error - function moduleName (obj) { - const mod = require('which-module')(obj) - if (!mod) throw new Error(`No command name given for module: ${inspect(obj)}`) - return commandFromFilename(mod.filename) - } - - // derive command name from filename - function commandFromFilename (filename) { - return path.basename(filename, path.extname(filename)) - } - - function extractDesc (obj) { - for (let keys = ['describe', 'description', 'desc'], i = 0, l = keys.length, test; i < l; i++) { - test = obj[keys[i]] - if (typeof test === 'string' || typeof test === 'boolean') return test - } - return false - } - - self.parseCommand = function parseCommand (cmd) { - const extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' ') - const splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/) - const bregex = /\.*[\][<>]/g - const parsedCommand = { - cmd: (splitCommand.shift()).replace(bregex, ''), - demanded: [], - optional: [] - } - splitCommand.forEach((cmd, i) => { - let variadic = false - cmd = cmd.replace(/\s/g, '') - if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1) variadic = true - if (/^\[/.test(cmd)) { - parsedCommand.optional.push({ - cmd: cmd.replace(bregex, '').split('|'), - variadic - }) - } else { - parsedCommand.demanded.push({ - cmd: cmd.replace(bregex, '').split('|'), - variadic - }) - } - }) - return parsedCommand - } - - self.getCommands = () => Object.keys(handlers).concat(Object.keys(aliasMap)) - - self.getCommandHandlers = () => handlers - - self.hasDefaultCommand = () => !!defaultCommand - - self.runCommand = function runCommand (command, yargs, parsed, commandIndex) { - let aliases = parsed.aliases - const commandHandler = handlers[command] || handlers[aliasMap[command]] || defaultCommand - const currentContext = yargs.getContext() - let numFiles = currentContext.files.length - const parentCommands = currentContext.commands.slice() - - // what does yargs look like after the buidler is run? - let innerArgv = parsed.argv - let innerYargs = null - let positionalMap = {} - if (command) { - currentContext.commands.push(command) - currentContext.fullCommands.push(commandHandler.original) - } - if (typeof commandHandler.builder === 'function') { - // a function can be provided, which builds - // up a yargs chain and possibly returns it. - innerYargs = commandHandler.builder(yargs.reset(parsed.aliases)) - // if the builder function did not yet parse argv with reset yargs - // and did not explicitly set a usage() string, then apply the - // original command string as usage() for consistent behavior with - // options object below. - if (yargs.parsed === false) { - if (shouldUpdateUsage(yargs)) { - yargs.getUsageInstance().usage( - usageFromParentCommandsCommandHandler(parentCommands, commandHandler), - commandHandler.description - ) - } - innerArgv = innerYargs ? innerYargs._parseArgs(null, null, true, commandIndex) : yargs._parseArgs(null, null, true, commandIndex) - } else { - innerArgv = yargs.parsed.argv - } - - if (innerYargs && yargs.parsed === false) aliases = innerYargs.parsed.aliases - else aliases = yargs.parsed.aliases - } else if (typeof commandHandler.builder === 'object') { - // as a short hand, an object can instead be provided, specifying - // the options that a command takes. - innerYargs = yargs.reset(parsed.aliases) - if (shouldUpdateUsage(innerYargs)) { - innerYargs.getUsageInstance().usage( - usageFromParentCommandsCommandHandler(parentCommands, commandHandler), - commandHandler.description - ) - } - Object.keys(commandHandler.builder).forEach((key) => { - innerYargs.option(key, commandHandler.builder[key]) - }) - innerArgv = innerYargs._parseArgs(null, null, true, commandIndex) - aliases = innerYargs.parsed.aliases - } - - if (!yargs._hasOutput()) { - positionalMap = populatePositionals(commandHandler, innerArgv, currentContext, yargs) - } - - // we apply validation post-hoc, so that custom - // checks get passed populated positional arguments. - if (!yargs._hasOutput()) yargs._runValidation(innerArgv, aliases, positionalMap, yargs.parsed.error) - - if (commandHandler.handler && !yargs._hasOutput()) { - yargs._setHasOutput() - if (commandHandler.middlewares.length > 0) { - const middlewareArgs = commandHandler.middlewares.reduce(function (initialObj, middleware) { - return Object.assign(initialObj, middleware(innerArgv)) - }, {}) - Object.assign(innerArgv, middlewareArgs) - } - const handlerResult = commandHandler.handler(innerArgv) - if (handlerResult && typeof handlerResult.then === 'function') { - handlerResult.then( - null, - (error) => yargs.getUsageInstance().fail(null, error) - ) - } - } - - if (command) { - currentContext.commands.pop() - currentContext.fullCommands.pop() - } - numFiles = currentContext.files.length - numFiles - if (numFiles > 0) currentContext.files.splice(numFiles * -1, numFiles) - - return innerArgv - } - - function shouldUpdateUsage (yargs) { - return !yargs.getUsageInstance().getUsageDisabled() && - yargs.getUsageInstance().getUsage().length === 0 - } - - function usageFromParentCommandsCommandHandler (parentCommands, commandHandler) { - const c = DEFAULT_MARKER.test(commandHandler.original) ? commandHandler.original.replace(DEFAULT_MARKER, '').trim() : commandHandler.original - const pc = parentCommands.filter((c) => { return !DEFAULT_MARKER.test(c) }) - pc.push(c) - return `$0 ${pc.join(' ')}` - } - - self.runDefaultBuilderOn = function (yargs) { - if (shouldUpdateUsage(yargs)) { - // build the root-level command string from the default string. - const commandString = DEFAULT_MARKER.test(defaultCommand.original) - ? defaultCommand.original : defaultCommand.original.replace(/^[^[\]<>]*/, '$0 ') - yargs.getUsageInstance().usage( - commandString, - defaultCommand.description - ) - } - const builder = defaultCommand.builder - if (typeof builder === 'function') { - builder(yargs) - } else { - Object.keys(builder).forEach((key) => { - yargs.option(key, builder[key]) - }) - } - } - - // transcribe all positional arguments "command [apple]" - // onto argv. - function populatePositionals (commandHandler, argv, context, yargs) { - argv._ = argv._.slice(context.commands.length) // nuke the current commands - const demanded = commandHandler.demanded.slice(0) - const optional = commandHandler.optional.slice(0) - const positionalMap = {} - - validation.positionalCount(demanded.length, argv._.length) - - while (demanded.length) { - const demand = demanded.shift() - populatePositional(demand, argv, positionalMap) - } - - while (optional.length) { - const maybe = optional.shift() - populatePositional(maybe, argv, positionalMap) - } - - argv._ = context.commands.concat(argv._) - - postProcessPositionals(argv, positionalMap, self.cmdToParseOptions(commandHandler.original)) - - return positionalMap - } - - function populatePositional (positional, argv, positionalMap, parseOptions) { - const cmd = positional.cmd[0] - if (positional.variadic) { - positionalMap[cmd] = argv._.splice(0).map(String) - } else { - if (argv._.length) positionalMap[cmd] = [String(argv._.shift())] - } - } - - // we run yargs-parser against the positional arguments - // applying the same parsing logic used for flags. - function postProcessPositionals (argv, positionalMap, parseOptions) { - // combine the parsing hints we've inferred from the command - // string with explicitly configured parsing hints. - const options = Object.assign({}, yargs.getOptions()) - options.default = Object.assign(parseOptions.default, options.default) - options.alias = Object.assign(parseOptions.alias, options.alias) - options.array = options.array.concat(parseOptions.array) - delete options.config // don't load config when processing positionals. - - const unparsed = [] - Object.keys(positionalMap).forEach((key) => { - positionalMap[key].map((value) => { - unparsed.push(`--${key}`) - unparsed.push(value) - }) - }) - - // short-circuit parse. - if (!unparsed.length) return - - const parsed = Parser.detailed(unparsed, options) - - if (parsed.error) { - yargs.getUsageInstance().fail(parsed.error.message, parsed.error) - } else { - // only copy over positional keys (don't overwrite - // flag arguments that were already parsed). - const positionalKeys = Object.keys(positionalMap) - Object.keys(positionalMap).forEach((key) => { - [].push.apply(positionalKeys, parsed.aliases[key]) - }) - - Object.keys(parsed.argv).forEach((key) => { - if (positionalKeys.indexOf(key) !== -1) { - // any new aliases need to be placed in positionalMap, which - // is used for validation. - if (!positionalMap[key]) positionalMap[key] = parsed.argv[key] - argv[key] = parsed.argv[key] - } - }) - } - } - - self.cmdToParseOptions = function (cmdString) { - const parseOptions = { - array: [], - default: {}, - alias: {}, - demand: {} - } - - const parsed = self.parseCommand(cmdString) - parsed.demanded.forEach((d) => { - const cmds = d.cmd.slice(0) - const cmd = cmds.shift() - if (d.variadic) { - parseOptions.array.push(cmd) - parseOptions.default[cmd] = [] - } - cmds.forEach((c) => { - parseOptions.alias[cmd] = c - }) - parseOptions.demand[cmd] = true - }) - - parsed.optional.forEach((o) => { - const cmds = o.cmd.slice(0) - const cmd = cmds.shift() - if (o.variadic) { - parseOptions.array.push(cmd) - parseOptions.default[cmd] = [] - } - cmds.forEach((c) => { - parseOptions.alias[cmd] = c - }) - }) - - return parseOptions - } - - self.reset = () => { - handlers = {} - aliasMap = {} - defaultCommand = undefined - return self - } - - // used by yargs.parse() to freeze - // the state of commands such that - // we can apply .parse() multiple times - // with the same yargs instance. - let frozen - self.freeze = () => { - frozen = {} - frozen.handlers = handlers - frozen.aliasMap = aliasMap - frozen.defaultCommand = defaultCommand - } - self.unfreeze = () => { - handlers = frozen.handlers - aliasMap = frozen.aliasMap - defaultCommand = frozen.defaultCommand - frozen = undefined - } - - return self -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js deleted file mode 100644 index ad6969a2d..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/completion.js +++ /dev/null @@ -1,105 +0,0 @@ -'use strict' -const fs = require('fs') -const path = require('path') - -// add bash completions to your -// yargs-powered applications. -module.exports = function completion (yargs, usage, command) { - const self = { - completionKey: 'get-yargs-completions' - } - - // get a list of completion commands. - // 'args' is the array of strings from the line to be completed - self.getCompletion = function getCompletion (args, done) { - const completions = [] - const current = args.length ? args[args.length - 1] : '' - const argv = yargs.parse(args, true) - const aliases = yargs.parsed.aliases - - // a custom completion function can be provided - // to completion(). - if (completionFunction) { - if (completionFunction.length < 3) { - const result = completionFunction(current, argv) - - // promise based completion function. - if (typeof result.then === 'function') { - return result.then((list) => { - process.nextTick(() => { done(list) }) - }).catch((err) => { - process.nextTick(() => { throw err }) - }) - } - - // synchronous completion function. - return done(result) - } else { - // asynchronous completion function - return completionFunction(current, argv, (completions) => { - done(completions) - }) - } - } - - const handlers = command.getCommandHandlers() - for (let i = 0, ii = args.length; i < ii; ++i) { - if (handlers[args[i]] && handlers[args[i]].builder) { - const builder = handlers[args[i]].builder - if (typeof builder === 'function') { - const y = yargs.reset() - builder(y) - return y.argv - } - } - } - - if (!current.match(/^-/)) { - usage.getCommands().forEach((usageCommand) => { - const commandName = command.parseCommand(usageCommand[0]).cmd - if (args.indexOf(commandName) === -1) { - completions.push(commandName) - } - }) - } - - if (current.match(/^-/)) { - Object.keys(yargs.getOptions().key).forEach((key) => { - // If the key and its aliases aren't in 'args', add the key to 'completions' - const keyAndAliases = [key].concat(aliases[key] || []) - const notInArgs = keyAndAliases.every(val => args.indexOf(`--${val}`) === -1) - if (notInArgs) { - completions.push(`--${key}`) - } - }) - } - - done(completions) - } - - // generate the completion script to add to your .bashrc. - self.generateCompletionScript = function generateCompletionScript ($0, cmd) { - let script = fs.readFileSync( - path.resolve(__dirname, '../completion.sh.hbs'), - 'utf-8' - ) - const name = path.basename($0) - - // add ./to applications not yet installed as bin. - if ($0.match(/\.js$/)) $0 = `./${$0}` - - script = script.replace(/{{app_name}}/g, name) - script = script.replace(/{{completion_command}}/g, cmd) - return script.replace(/{{app_path}}/g, $0) - } - - // register a function to perform your own custom - // completions., this function can be either - // synchrnous or asynchronous. - let completionFunction = null - self.registerFunction = (fn) => { - completionFunction = fn - } - - return self -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/levenshtein.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/levenshtein.js deleted file mode 100644 index dd3107333..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/levenshtein.js +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright (c) 2011 Andrei Mackenzie - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -// levenshtein distance algorithm, pulled from Andrei Mackenzie's MIT licensed. -// gist, which can be found here: https://gist.github.com/andrei-m/982927 -'use strict' -// Compute the edit distance between the two given strings -module.exports = function levenshtein (a, b) { - if (a.length === 0) return b.length - if (b.length === 0) return a.length - - const matrix = [] - - // increment along the first column of each row - let i - for (i = 0; i <= b.length; i++) { - matrix[i] = [i] - } - - // increment each column in the first row - let j - for (j = 0; j <= a.length; j++) { - matrix[0][j] = j - } - - // Fill in the rest of the matrix - for (i = 1; i <= b.length; i++) { - for (j = 1; j <= a.length; j++) { - if (b.charAt(i - 1) === a.charAt(j - 1)) { - matrix[i][j] = matrix[i - 1][j - 1] - } else { - matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution - Math.min(matrix[i][j - 1] + 1, // insertion - matrix[i - 1][j] + 1)) // deletion - } - } - } - - return matrix[b.length][a.length] -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/middleware.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/middleware.js deleted file mode 100644 index 567ba571a..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/middleware.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = function (globalMiddleware, context) { - return function (callback) { - if (Array.isArray(callback)) { - Array.prototype.push.apply(globalMiddleware, callback) - } else if (typeof callback === 'function') { - globalMiddleware.push(callback) - } - return context - } -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/obj-filter.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/obj-filter.js deleted file mode 100644 index c344ac58c..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/obj-filter.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' -module.exports = function objFilter (original, filter) { - const obj = {} - filter = filter || ((k, v) => true) - Object.keys(original || {}).forEach((key) => { - if (filter(key, original[key])) { - obj[key] = original[key] - } - }) - return obj -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js deleted file mode 100644 index 9be8a995b..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/usage.js +++ /dev/null @@ -1,535 +0,0 @@ -'use strict' -// this file handles outputting usage instructions, -// failures, etc. keeps logging in one place. -const stringWidth = require('string-width') -const objFilter = require('./obj-filter') -const path = require('path') -const setBlocking = require('set-blocking') -const YError = require('./yerror') - -module.exports = function usage (yargs, y18n) { - const __ = y18n.__ - const self = {} - - // methods for ouputting/building failure message. - const fails = [] - self.failFn = function failFn (f) { - fails.push(f) - } - - let failMessage = null - let showHelpOnFail = true - self.showHelpOnFail = function showHelpOnFailFn (enabled, message) { - if (typeof enabled === 'string') { - message = enabled - enabled = true - } else if (typeof enabled === 'undefined') { - enabled = true - } - failMessage = message - showHelpOnFail = enabled - return self - } - - let failureOutput = false - self.fail = function fail (msg, err) { - const logger = yargs._getLoggerInstance() - - if (fails.length) { - for (let i = fails.length - 1; i >= 0; --i) { - fails[i](msg, err, self) - } - } else { - if (yargs.getExitProcess()) setBlocking(true) - - // don't output failure message more than once - if (!failureOutput) { - failureOutput = true - if (showHelpOnFail) { - yargs.showHelp('error') - logger.error() - } - if (msg || err) logger.error(msg || err) - if (failMessage) { - if (msg || err) logger.error('') - logger.error(failMessage) - } - } - - err = err || new YError(msg) - if (yargs.getExitProcess()) { - return yargs.exit(1) - } else if (yargs._hasParseCallback()) { - return yargs.exit(1, err) - } else { - throw err - } - } - } - - // methods for ouputting/building help (usage) message. - let usages = [] - let usageDisabled = false - self.usage = (msg, description) => { - if (msg === null) { - usageDisabled = true - usages = [] - return - } - usageDisabled = false - usages.push([msg, description || '']) - return self - } - self.getUsage = () => { - return usages - } - self.getUsageDisabled = () => { - return usageDisabled - } - - self.getPositionalGroupName = () => { - return __('Positionals:') - } - - let examples = [] - self.example = (cmd, description) => { - examples.push([cmd, description || '']) - } - - let commands = [] - self.command = function command (cmd, description, isDefault, aliases) { - // the last default wins, so cancel out any previously set default - if (isDefault) { - commands = commands.map((cmdArray) => { - cmdArray[2] = false - return cmdArray - }) - } - commands.push([cmd, description || '', isDefault, aliases]) - } - self.getCommands = () => commands - - let descriptions = {} - self.describe = function describe (key, desc) { - if (typeof key === 'object') { - Object.keys(key).forEach((k) => { - self.describe(k, key[k]) - }) - } else { - descriptions[key] = desc - } - } - self.getDescriptions = () => descriptions - - let epilog - self.epilog = (msg) => { - epilog = msg - } - - let wrapSet = false - let wrap - self.wrap = (cols) => { - wrapSet = true - wrap = cols - } - - function getWrap () { - if (!wrapSet) { - wrap = windowWidth() - wrapSet = true - } - - return wrap - } - - const deferY18nLookupPrefix = '__yargsString__:' - self.deferY18nLookup = str => deferY18nLookupPrefix + str - - const defaultGroup = 'Options:' - self.help = function help () { - normalizeAliases() - - // handle old demanded API - const base$0 = path.basename(yargs.$0) - const demandedOptions = yargs.getDemandedOptions() - const demandedCommands = yargs.getDemandedCommands() - const groups = yargs.getGroups() - const options = yargs.getOptions() - - let keys = [] - keys = keys.concat(Object.keys(descriptions)) - keys = keys.concat(Object.keys(demandedOptions)) - keys = keys.concat(Object.keys(demandedCommands)) - keys = keys.concat(Object.keys(options.default)) - keys = keys.filter(filterHiddenOptions) - keys = Object.keys(keys.reduce((acc, key) => { - if (key !== '_') acc[key] = true - return acc - }, {})) - - const theWrap = getWrap() - const ui = require('cliui')({ - width: theWrap, - wrap: !!theWrap - }) - - // the usage string. - if (!usageDisabled) { - if (usages.length) { - // user-defined usage. - usages.forEach((usage) => { - ui.div(`${usage[0].replace(/\$0/g, base$0)}`) - if (usage[1]) { - ui.div({text: `${usage[1]}`, padding: [1, 0, 0, 0]}) - } - }) - ui.div() - } else if (commands.length) { - let u = null - // demonstrate how commands are used. - if (demandedCommands._) { - u = `${base$0} <${__('command')}>\n` - } else { - u = `${base$0} [${__('command')}]\n` - } - ui.div(`${u}`) - } - } - - // your application's commands, i.e., non-option - // arguments populated in '_'. - if (commands.length) { - ui.div(__('Commands:')) - - const context = yargs.getContext() - const parentCommands = context.commands.length ? `${context.commands.join(' ')} ` : '' - - commands.forEach((command) => { - const commandString = `${base$0} ${parentCommands}${command[0].replace(/^\$0 ?/, '')}` // drop $0 from default commands. - ui.span( - { - text: commandString, - padding: [0, 2, 0, 2], - width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4 - }, - {text: command[1]} - ) - const hints = [] - if (command[2]) hints.push(`[${__('default:').slice(0, -1)}]`) // TODO hacking around i18n here - if (command[3] && command[3].length) { - hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`) - } - if (hints.length) { - ui.div({text: hints.join(' '), padding: [0, 0, 0, 2], align: 'right'}) - } else { - ui.div() - } - }) - - ui.div() - } - - // perform some cleanup on the keys array, making it - // only include top-level keys not their aliases. - const aliasKeys = (Object.keys(options.alias) || []) - .concat(Object.keys(yargs.parsed.newAliases) || []) - - keys = keys.filter(key => !yargs.parsed.newAliases[key] && aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1)) - - // populate 'Options:' group with any keys that have not - // explicitly had a group set. - if (!groups[defaultGroup]) groups[defaultGroup] = [] - addUngroupedKeys(keys, options.alias, groups) - - // display 'Options:' table along with any custom tables: - Object.keys(groups).forEach((groupName) => { - if (!groups[groupName].length) return - - // if we've grouped the key 'f', but 'f' aliases 'foobar', - // normalizedKeys should contain only 'foobar'. - const normalizedKeys = groups[groupName].filter(filterHiddenOptions).map((key) => { - if (~aliasKeys.indexOf(key)) return key - for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) { - if (~(options.alias[aliasKey] || []).indexOf(key)) return aliasKey - } - return key - }) - - if (normalizedKeys.length < 1) return - - ui.div(__(groupName)) - - // actually generate the switches string --foo, -f, --bar. - const switches = normalizedKeys.reduce((acc, key) => { - acc[key] = [ key ].concat(options.alias[key] || []) - .map(sw => { - // for the special positional group don't - // add '--' or '-' prefix. - if (groupName === self.getPositionalGroupName()) return sw - else return (sw.length > 1 ? '--' : '-') + sw - }) - .join(', ') - - return acc - }, {}) - - normalizedKeys.forEach((key) => { - const kswitch = switches[key] - let desc = descriptions[key] || '' - let type = null - - if (~desc.lastIndexOf(deferY18nLookupPrefix)) desc = __(desc.substring(deferY18nLookupPrefix.length)) - - if (~options.boolean.indexOf(key)) type = `[${__('boolean')}]` - if (~options.count.indexOf(key)) type = `[${__('count')}]` - if (~options.string.indexOf(key)) type = `[${__('string')}]` - if (~options.normalize.indexOf(key)) type = `[${__('string')}]` - if (~options.array.indexOf(key)) type = `[${__('array')}]` - if (~options.number.indexOf(key)) type = `[${__('number')}]` - - const extra = [ - type, - (key in demandedOptions) ? `[${__('required')}]` : null, - options.choices && options.choices[key] ? `[${__('choices:')} ${ - self.stringifiedValues(options.choices[key])}]` : null, - defaultString(options.default[key], options.defaultDescription[key]) - ].filter(Boolean).join(' ') - - ui.span( - {text: kswitch, padding: [0, 2, 0, 2], width: maxWidth(switches, theWrap) + 4}, - desc - ) - - if (extra) ui.div({text: extra, padding: [0, 0, 0, 2], align: 'right'}) - else ui.div() - }) - - ui.div() - }) - - // describe some common use-cases for your application. - if (examples.length) { - ui.div(__('Examples:')) - - examples.forEach((example) => { - example[0] = example[0].replace(/\$0/g, base$0) - }) - - examples.forEach((example) => { - if (example[1] === '') { - ui.div( - { - text: example[0], - padding: [0, 2, 0, 2] - } - ) - } else { - ui.div( - { - text: example[0], - padding: [0, 2, 0, 2], - width: maxWidth(examples, theWrap) + 4 - }, { - text: example[1] - } - ) - } - }) - - ui.div() - } - - // the usage string. - if (epilog) { - const e = epilog.replace(/\$0/g, base$0) - ui.div(`${e}\n`) - } - - // Remove the trailing white spaces - return ui.toString().replace(/\s*$/, '') - } - - // return the maximum width of a string - // in the left-hand column of a table. - function maxWidth (table, theWrap, modifier) { - let width = 0 - - // table might be of the form [leftColumn], - // or {key: leftColumn} - if (!Array.isArray(table)) { - table = Object.keys(table).map(key => [table[key]]) - } - - table.forEach((v) => { - width = Math.max( - stringWidth(modifier ? `${modifier} ${v[0]}` : v[0]), - width - ) - }) - - // if we've enabled 'wrap' we should limit - // the max-width of the left-column. - if (theWrap) width = Math.min(width, parseInt(theWrap * 0.5, 10)) - - return width - } - - // make sure any options set for aliases, - // are copied to the keys being aliased. - function normalizeAliases () { - // handle old demanded API - const demandedOptions = yargs.getDemandedOptions() - const options = yargs.getOptions() - - ;(Object.keys(options.alias) || []).forEach((key) => { - options.alias[key].forEach((alias) => { - // copy descriptions. - if (descriptions[alias]) self.describe(key, descriptions[alias]) - // copy demanded. - if (alias in demandedOptions) yargs.demandOption(key, demandedOptions[alias]) - // type messages. - if (~options.boolean.indexOf(alias)) yargs.boolean(key) - if (~options.count.indexOf(alias)) yargs.count(key) - if (~options.string.indexOf(alias)) yargs.string(key) - if (~options.normalize.indexOf(alias)) yargs.normalize(key) - if (~options.array.indexOf(alias)) yargs.array(key) - if (~options.number.indexOf(alias)) yargs.number(key) - }) - }) - } - - // given a set of keys, place any keys that are - // ungrouped under the 'Options:' grouping. - function addUngroupedKeys (keys, aliases, groups) { - let groupedKeys = [] - let toCheck = null - Object.keys(groups).forEach((group) => { - groupedKeys = groupedKeys.concat(groups[group]) - }) - - keys.forEach((key) => { - toCheck = [key].concat(aliases[key]) - if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) { - groups[defaultGroup].push(key) - } - }) - return groupedKeys - } - - function filterHiddenOptions (key) { - return yargs.getOptions().hiddenOptions.indexOf(key) < 0 || yargs.parsed.argv[yargs.getOptions().showHiddenOpt] - } - - self.showHelp = (level) => { - const logger = yargs._getLoggerInstance() - if (!level) level = 'error' - const emit = typeof level === 'function' ? level : logger[level] - emit(self.help()) - } - - self.functionDescription = (fn) => { - const description = fn.name ? require('decamelize')(fn.name, '-') : __('generated-value') - return ['(', description, ')'].join('') - } - - self.stringifiedValues = function stringifiedValues (values, separator) { - let string = '' - const sep = separator || ', ' - const array = [].concat(values) - - if (!values || !array.length) return string - - array.forEach((value) => { - if (string.length) string += sep - string += JSON.stringify(value) - }) - - return string - } - - // format the default-value-string displayed in - // the right-hand column. - function defaultString (value, defaultDescription) { - let string = `[${__('default:')} ` - - if (value === undefined && !defaultDescription) return null - - if (defaultDescription) { - string += defaultDescription - } else { - switch (typeof value) { - case 'string': - string += `"${value}"` - break - case 'object': - string += JSON.stringify(value) - break - default: - string += value - } - } - - return `${string}]` - } - - // guess the width of the console window, max-width 80. - function windowWidth () { - const maxWidth = 80 - if (typeof process === 'object' && process.stdout && process.stdout.columns) { - return Math.min(maxWidth, process.stdout.columns) - } else { - return maxWidth - } - } - - // logic for displaying application version. - let version = null - self.version = (ver) => { - version = ver - } - - self.showVersion = () => { - const logger = yargs._getLoggerInstance() - logger.log(version) - } - - self.reset = function reset (localLookup) { - // do not reset wrap here - // do not reset fails here - failMessage = null - failureOutput = false - usages = [] - usageDisabled = false - epilog = undefined - examples = [] - commands = [] - descriptions = objFilter(descriptions, (k, v) => !localLookup[k]) - return self - } - - let frozen - self.freeze = function freeze () { - frozen = {} - frozen.failMessage = failMessage - frozen.failureOutput = failureOutput - frozen.usages = usages - frozen.usageDisabled = usageDisabled - frozen.epilog = epilog - frozen.examples = examples - frozen.commands = commands - frozen.descriptions = descriptions - } - self.unfreeze = function unfreeze () { - failMessage = frozen.failMessage - failureOutput = frozen.failureOutput - usages = frozen.usages - usageDisabled = frozen.usageDisabled - epilog = frozen.epilog - examples = frozen.examples - commands = frozen.commands - descriptions = frozen.descriptions - frozen = undefined - } - - return self -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js deleted file mode 100644 index e9bbb12bc..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/validation.js +++ /dev/null @@ -1,341 +0,0 @@ -'use strict' -const argsert = require('./argsert') -const objFilter = require('./obj-filter') -const specialKeys = ['$0', '--', '_'] - -// validation-type-stuff, missing params, -// bad implications, custom checks. -module.exports = function validation (yargs, usage, y18n) { - const __ = y18n.__ - const __n = y18n.__n - const self = {} - - // validate appropriate # of non-option - // arguments were provided, i.e., '_'. - self.nonOptionCount = function nonOptionCount (argv) { - const demandedCommands = yargs.getDemandedCommands() - // don't count currently executing commands - const _s = argv._.length - yargs.getContext().commands.length - - if (demandedCommands._ && (_s < demandedCommands._.min || _s > demandedCommands._.max)) { - if (_s < demandedCommands._.min) { - if (demandedCommands._.minMsg !== undefined) { - usage.fail( - // replace $0 with observed, $1 with expected. - demandedCommands._.minMsg ? demandedCommands._.minMsg.replace(/\$0/g, _s).replace(/\$1/, demandedCommands._.min) : null - ) - } else { - usage.fail( - __('Not enough non-option arguments: got %s, need at least %s', _s, demandedCommands._.min) - ) - } - } else if (_s > demandedCommands._.max) { - if (demandedCommands._.maxMsg !== undefined) { - usage.fail( - // replace $0 with observed, $1 with expected. - demandedCommands._.maxMsg ? demandedCommands._.maxMsg.replace(/\$0/g, _s).replace(/\$1/, demandedCommands._.max) : null - ) - } else { - usage.fail( - __('Too many non-option arguments: got %s, maximum of %s', _s, demandedCommands._.max) - ) - } - } - } - } - - // validate the appropriate # of - // positional arguments were provided: - self.positionalCount = function positionalCount (required, observed) { - if (observed < required) { - usage.fail( - __('Not enough non-option arguments: got %s, need at least %s', observed, required) - ) - } - } - - // make sure all the required arguments are present. - self.requiredArguments = function requiredArguments (argv) { - const demandedOptions = yargs.getDemandedOptions() - let missing = null - - Object.keys(demandedOptions).forEach((key) => { - if (!argv.hasOwnProperty(key) || typeof argv[key] === 'undefined') { - missing = missing || {} - missing[key] = demandedOptions[key] - } - }) - - if (missing) { - const customMsgs = [] - Object.keys(missing).forEach((key) => { - const msg = missing[key] - if (msg && customMsgs.indexOf(msg) < 0) { - customMsgs.push(msg) - } - }) - - const customMsg = customMsgs.length ? `\n${customMsgs.join('\n')}` : '' - - usage.fail(__n( - 'Missing required argument: %s', - 'Missing required arguments: %s', - Object.keys(missing).length, - Object.keys(missing).join(', ') + customMsg - )) - } - } - - // check for unknown arguments (strict-mode). - self.unknownArguments = function unknownArguments (argv, aliases, positionalMap) { - const commandKeys = yargs.getCommandInstance().getCommands() - const unknown = [] - const currentContext = yargs.getContext() - - Object.keys(argv).forEach((key) => { - if (specialKeys.indexOf(key) === -1 && - !positionalMap.hasOwnProperty(key) && - !yargs._getParseContext().hasOwnProperty(key) && - !aliases.hasOwnProperty(key) - ) { - unknown.push(key) - } - }) - - if (commandKeys.length > 0) { - argv._.slice(currentContext.commands.length).forEach((key) => { - if (commandKeys.indexOf(key) === -1) { - unknown.push(key) - } - }) - } - - if (unknown.length > 0) { - usage.fail(__n( - 'Unknown argument: %s', - 'Unknown arguments: %s', - unknown.length, - unknown.join(', ') - )) - } - } - - // validate arguments limited to enumerated choices - self.limitedChoices = function limitedChoices (argv) { - const options = yargs.getOptions() - const invalid = {} - - if (!Object.keys(options.choices).length) return - - Object.keys(argv).forEach((key) => { - if (specialKeys.indexOf(key) === -1 && - options.choices.hasOwnProperty(key)) { - [].concat(argv[key]).forEach((value) => { - // TODO case-insensitive configurability - if (options.choices[key].indexOf(value) === -1 && - value !== undefined) { - invalid[key] = (invalid[key] || []).concat(value) - } - }) - } - }) - - const invalidKeys = Object.keys(invalid) - - if (!invalidKeys.length) return - - let msg = __('Invalid values:') - invalidKeys.forEach((key) => { - msg += `\n ${__( - 'Argument: %s, Given: %s, Choices: %s', - key, - usage.stringifiedValues(invalid[key]), - usage.stringifiedValues(options.choices[key]) - )}` - }) - usage.fail(msg) - } - - // custom checks, added using the `check` option on yargs. - let checks = [] - self.check = function check (f, global) { - checks.push({ - func: f, - global - }) - } - - self.customChecks = function customChecks (argv, aliases) { - for (let i = 0, f; (f = checks[i]) !== undefined; i++) { - const func = f.func - let result = null - try { - result = func(argv, aliases) - } catch (err) { - usage.fail(err.message ? err.message : err, err) - continue - } - - if (!result) { - usage.fail(__('Argument check failed: %s', func.toString())) - } else if (typeof result === 'string' || result instanceof Error) { - usage.fail(result.toString(), result) - } - } - } - - // check implications, argument foo implies => argument bar. - let implied = {} - self.implies = function implies (key, value) { - argsert(' [array|number|string]', [key, value], arguments.length) - - if (typeof key === 'object') { - Object.keys(key).forEach((k) => { - self.implies(k, key[k]) - }) - } else { - yargs.global(key) - if (!implied[key]) { - implied[key] = [] - } - if (Array.isArray(value)) { - value.forEach((i) => self.implies(key, i)) - } else { - implied[key].push(value) - } - } - } - self.getImplied = function getImplied () { - return implied - } - - self.implications = function implications (argv) { - const implyFail = [] - - Object.keys(implied).forEach((key) => { - const origKey = key - ;(implied[key] || []).forEach((value) => { - let num - let key = origKey - const origValue = value - - // convert string '1' to number 1 - num = Number(key) - key = isNaN(num) ? key : num - - if (typeof key === 'number') { - // check length of argv._ - key = argv._.length >= key - } else if (key.match(/^--no-.+/)) { - // check if key doesn't exist - key = key.match(/^--no-(.+)/)[1] - key = !argv[key] - } else { - // check if key exists - key = argv[key] - } - - num = Number(value) - value = isNaN(num) ? value : num - - if (typeof value === 'number') { - value = argv._.length >= value - } else if (value.match(/^--no-.+/)) { - value = value.match(/^--no-(.+)/)[1] - value = !argv[value] - } else { - value = argv[value] - } - if (key && !value) { - implyFail.push(` ${origKey} -> ${origValue}`) - } - }) - }) - - if (implyFail.length) { - let msg = `${__('Implications failed:')}\n` - - implyFail.forEach((value) => { - msg += (value) - }) - - usage.fail(msg) - } - } - - let conflicting = {} - self.conflicts = function conflicts (key, value) { - argsert(' [array|string]', [key, value], arguments.length) - - if (typeof key === 'object') { - Object.keys(key).forEach((k) => { - self.conflicts(k, key[k]) - }) - } else { - yargs.global(key) - if (!conflicting[key]) { - conflicting[key] = [] - } - if (Array.isArray(value)) { - value.forEach((i) => self.conflicts(key, i)) - } else { - conflicting[key].push(value) - } - } - } - self.getConflicting = () => conflicting - - self.conflicting = function conflictingFn (argv) { - Object.keys(argv).forEach((key) => { - if (conflicting[key]) { - conflicting[key].forEach((value) => { - // we default keys to 'undefined' that have been configured, we should not - // apply conflicting check unless they are a value other than 'undefined'. - if (value && argv[key] !== undefined && argv[value] !== undefined) { - usage.fail(__('Arguments %s and %s are mutually exclusive', key, value)) - } - }) - } - }) - } - - self.recommendCommands = function recommendCommands (cmd, potentialCommands) { - const distance = require('./levenshtein') - const threshold = 3 // if it takes more than three edits, let's move on. - potentialCommands = potentialCommands.sort((a, b) => b.length - a.length) - - let recommended = null - let bestDistance = Infinity - for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) { - const d = distance(cmd, candidate) - if (d <= threshold && d < bestDistance) { - bestDistance = d - recommended = candidate - } - } - if (recommended) usage.fail(__('Did you mean %s?', recommended)) - } - - self.reset = function reset (localLookup) { - implied = objFilter(implied, (k, v) => !localLookup[k]) - conflicting = objFilter(conflicting, (k, v) => !localLookup[k]) - checks = checks.filter(c => c.global) - return self - } - - let frozen - self.freeze = function freeze () { - frozen = {} - frozen.implied = implied - frozen.checks = checks - frozen.conflicting = conflicting - } - self.unfreeze = function unfreeze () { - implied = frozen.implied - checks = frozen.checks - conflicting = frozen.conflicting - frozen = undefined - } - - return self -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/yerror.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/yerror.js deleted file mode 100644 index 53375a0f7..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/lib/yerror.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' -function YError (msg) { - this.name = 'YError' - this.message = msg || 'yargs error' - Error.captureStackTrace(this, YError) -} - -YError.prototype = Object.create(Error.prototype) -YError.prototype.constructor = YError - -module.exports = YError diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/be.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/be.json deleted file mode 100644 index 141ebe1e1..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/be.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Каманды:", - "Options:": "Опцыі:", - "Examples:": "Прыклады:", - "boolean": "булевы тып", - "count": "падлік", - "string": "радковы тып", - "number": "лік", - "array": "масіў", - "required": "неабходна", - "default:": "па змаўчанні:", - "choices:": "магчымасці:", - "aliases:": "аліасы:", - "generated-value": "згенераванае значэнне", - "Not enough non-option arguments: got %s, need at least %s": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s", - "Too many non-option arguments: got %s, maximum of %s": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s", - "Missing argument value: %s": { - "one": "Не хапае значэння аргументу: %s", - "other": "Не хапае значэнняў аргументаў: %s" - }, - "Missing required argument: %s": { - "one": "Не хапае неабходнага аргументу: %s", - "other": "Не хапае неабходных аргументаў: %s" - }, - "Unknown argument: %s": { - "one": "Невядомы аргумент: %s", - "other": "Невядомыя аргументы: %s" - }, - "Invalid values:": "Несапраўдныя значэння:", - "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Дадзенае значэнне: %s, Магчымасці: %s", - "Argument check failed: %s": "Праверка аргументаў не ўдалася: %s", - "Implications failed:": "Дадзены аргумент патрабуе наступны дадатковы аргумент:", - "Not enough arguments following: %s": "Недастаткова наступных аргументаў: %s", - "Invalid JSON config file: %s": "Несапраўдны файл канфігурацыі JSON: %s", - "Path to JSON config file": "Шлях да файла канфігурацыі JSON", - "Show help": "Паказаць дапамогу", - "Show version number": "Паказаць нумар версіі", - "Did you mean %s?": "Вы мелі на ўвазе %s?" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/de.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/de.json deleted file mode 100644 index d805710b0..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/de.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Kommandos:", - "Options:": "Optionen:", - "Examples:": "Beispiele:", - "boolean": "boolean", - "count": "Zähler", - "string": "string", - "number": "Zahl", - "array": "array", - "required": "erforderlich", - "default:": "Standard:", - "choices:": "Möglichkeiten:", - "aliases:": "Aliase:", - "generated-value": "Generierter-Wert", - "Not enough non-option arguments: got %s, need at least %s": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt", - "Too many non-option arguments: got %s, maximum of %s": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt", - "Missing argument value: %s": { - "one": "Fehlender Argumentwert: %s", - "other": "Fehlende Argumentwerte: %s" - }, - "Missing required argument: %s": { - "one": "Fehlendes Argument: %s", - "other": "Fehlende Argumente: %s" - }, - "Unknown argument: %s": { - "one": "Unbekanntes Argument: %s", - "other": "Unbekannte Argumente: %s" - }, - "Invalid values:": "Unzulässige Werte:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeben: %s, Möglichkeiten: %s", - "Argument check failed: %s": "Argumente-Check fehlgeschlagen: %s", - "Implications failed:": "Implikationen fehlgeschlagen:", - "Not enough arguments following: %s": "Nicht genügend Argumente nach: %s", - "Invalid JSON config file: %s": "Fehlerhafte JSON-Config Datei: %s", - "Path to JSON config file": "Pfad zur JSON-Config Datei", - "Show help": "Hilfe anzeigen", - "Show version number": "Version anzeigen", - "Did you mean %s?": "Meintest du %s?" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/en.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/en.json deleted file mode 100644 index fc65c2a0d..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/en.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "Commands:", - "Options:": "Options:", - "Examples:": "Examples:", - "boolean": "boolean", - "count": "count", - "string": "string", - "number": "number", - "array": "array", - "required": "required", - "default:": "default:", - "choices:": "choices:", - "aliases:": "aliases:", - "generated-value": "generated-value", - "Not enough non-option arguments: got %s, need at least %s": "Not enough non-option arguments: got %s, need at least %s", - "Too many non-option arguments: got %s, maximum of %s": "Too many non-option arguments: got %s, maximum of %s", - "Missing argument value: %s": { - "one": "Missing argument value: %s", - "other": "Missing argument values: %s" - }, - "Missing required argument: %s": { - "one": "Missing required argument: %s", - "other": "Missing required arguments: %s" - }, - "Unknown argument: %s": { - "one": "Unknown argument: %s", - "other": "Unknown arguments: %s" - }, - "Invalid values:": "Invalid values:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Given: %s, Choices: %s", - "Argument check failed: %s": "Argument check failed: %s", - "Implications failed:": "Implications failed:", - "Not enough arguments following: %s": "Not enough arguments following: %s", - "Invalid JSON config file: %s": "Invalid JSON config file: %s", - "Path to JSON config file": "Path to JSON config file", - "Show help": "Show help", - "Show version number": "Show version number", - "Did you mean %s?": "Did you mean %s?", - "Arguments %s and %s are mutually exclusive" : "Arguments %s and %s are mutually exclusive", - "Positionals:": "Positionals:", - "command": "command" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/es.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/es.json deleted file mode 100644 index d7c8af9f8..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/es.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Comandos:", - "Options:": "Opciones:", - "Examples:": "Ejemplos:", - "boolean": "booleano", - "count": "cuenta", - "string": "cadena de caracteres", - "number": "número", - "array": "tabla", - "required": "requerido", - "default:": "defecto:", - "choices:": "selección:", - "aliases:": "alias:", - "generated-value": "valor-generado", - "Not enough non-option arguments: got %s, need at least %s": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s", - "Too many non-option arguments: got %s, maximum of %s": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s", - "Missing argument value: %s": { - "one": "Falta argumento: %s", - "other": "Faltan argumentos: %s" - }, - "Missing required argument: %s": { - "one": "Falta argumento requerido: %s", - "other": "Faltan argumentos requeridos: %s" - }, - "Unknown argument: %s": { - "one": "Argumento desconocido: %s", - "other": "Argumentos desconocidos: %s" - }, - "Invalid values:": "Valores inválidos:", - "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Recibido: %s, Seleccionados: %s", - "Argument check failed: %s": "Verificación de argumento ha fallado: %s", - "Implications failed:": "Implicaciones fallidas:", - "Not enough arguments following: %s": "No hay suficientes argumentos después de: %s", - "Invalid JSON config file: %s": "Archivo de configuración JSON inválido: %s", - "Path to JSON config file": "Ruta al archivo de configuración JSON", - "Show help": "Muestra ayuda", - "Show version number": "Muestra número de versión", - "Did you mean %s?": "Quisiste decir %s?" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/fr.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/fr.json deleted file mode 100644 index 481f47e37..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/fr.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "Commands:": "Commandes:", - "Options:": "Options:", - "Examples:": "Exemples:", - "boolean": "booléen", - "count": "comptage", - "string": "chaine de caractère", - "number": "nombre", - "array": "tableau", - "required": "requis", - "default:": "défaut:", - "choices:": "choix:", - "generated-value": "valeur générée", - "Not enough non-option arguments: got %s, need at least %s": "Pas assez d'arguments non-option: reçu %s, besoin d'au moins %s", - "Too many non-option arguments: got %s, maximum of %s": "Trop d'arguments non-option: reçu %s, maximum %s", - "Missing argument value: %s": { - "one": "Argument manquant: %s", - "other": "Arguments manquants: %s" - }, - "Missing required argument: %s": { - "one": "Argument requis manquant: %s", - "other": "Arguments requis manquants: %s" - }, - "Unknown argument: %s": { - "one": "Argument inconnu: %s", - "other": "Arguments inconnus: %s" - }, - "Invalid values:": "Valeurs invalides:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Donné: %s, Choix: %s", - "Argument check failed: %s": "Echec de la vérification de l'argument: %s", - "Implications failed:": "Implications échouées:", - "Not enough arguments following: %s": "Pas assez d'arguments suivant: %s", - "Invalid JSON config file: %s": "Fichier de configuration JSON invalide: %s", - "Path to JSON config file": "Chemin du fichier de configuration JSON", - "Show help": "Affiche de l'aide", - "Show version number": "Affiche le numéro de version" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/hi.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/hi.json deleted file mode 100644 index 2cd677acb..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/hi.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "आदेश:", - "Options:": "विकल्प:", - "Examples:": "उदाहरण:", - "boolean": "सत्यता", - "count": "संख्या", - "string": "वर्णों का तार ", - "number": "अंक", - "array": "सरणी", - "required": "आवश्यक", - "default:": "डिफॉल्ट:", - "choices:": "विकल्प:", - "aliases:": "उपनाम:", - "generated-value": "उत्पन्न-मूल्य", - "Not enough non-option arguments: got %s, need at least %s": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है", - "Too many non-option arguments: got %s, maximum of %s": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य", - "Missing argument value: %s": { - "one": "कुछ तर्को के मूल्य गुम हैं: %s", - "other": "कुछ तर्को के मूल्य गुम हैं: %s" - }, - "Missing required argument: %s": { - "one": "आवश्यक तर्क गुम हैं: %s", - "other": "आवश्यक तर्क गुम हैं: %s" - }, - "Unknown argument: %s": { - "one": "अज्ञात तर्क प्राप्त: %s", - "other": "अज्ञात तर्क प्राप्त: %s" - }, - "Invalid values:": "अमान्य मूल्य:", - "Argument: %s, Given: %s, Choices: %s": "तर्क: %s, प्राप्त: %s, विकल्प: %s", - "Argument check failed: %s": "तर्क जांच विफल: %s", - "Implications failed:": "दिए गए तर्क के लिए अतिरिक्त तर्क की अपेक्षा है:", - "Not enough arguments following: %s": "निम्नलिखित के बाद पर्याप्त तर्क नहीं प्राप्त: %s", - "Invalid JSON config file: %s": "अमान्य JSON config फाइल: %s", - "Path to JSON config file": "JSON config फाइल का पथ", - "Show help": "सहायता दिखाएँ", - "Show version number": "Version संख्या दिखाएँ", - "Did you mean %s?": "क्या आपका मतलब है %s?", - "Arguments %s and %s are mutually exclusive" : "तर्क %s और %s परस्पर अनन्य हैं", - "Positionals:": "स्थानीय:", - "command": "आदेश" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/hu.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/hu.json deleted file mode 100644 index 7b7d16606..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/hu.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Parancsok:", - "Options:": "Opciók:", - "Examples:": "Példák:", - "boolean": "boolean", - "count": "számláló", - "string": "szöveg", - "number": "szám", - "array": "tömb", - "required": "kötelező", - "default:": "alapértelmezett:", - "choices:": "lehetőségek:", - "aliases:": "aliaszok:", - "generated-value": "generált-érték", - "Not enough non-option arguments: got %s, need at least %s": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell", - "Too many non-option arguments: got %s, maximum of %s": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet", - "Missing argument value: %s": { - "one": "Hiányzó argumentum érték: %s", - "other": "Hiányzó argumentum értékek: %s" - }, - "Missing required argument: %s": { - "one": "Hiányzó kötelező argumentum: %s", - "other": "Hiányzó kötelező argumentumok: %s" - }, - "Unknown argument: %s": { - "one": "Ismeretlen argumentum: %s", - "other": "Ismeretlen argumentumok: %s" - }, - "Invalid values:": "Érvénytelen érték:", - "Argument: %s, Given: %s, Choices: %s": "Argumentum: %s, Megadott: %s, Lehetőségek: %s", - "Argument check failed: %s": "Argumentum ellenőrzés sikertelen: %s", - "Implications failed:": "Implikációk sikertelenek:", - "Not enough arguments following: %s": "Nem elég argumentum követi: %s", - "Invalid JSON config file: %s": "Érvénytelen JSON konfigurációs file: %s", - "Path to JSON config file": "JSON konfigurációs file helye", - "Show help": "Súgo megjelenítése", - "Show version number": "Verziószám megjelenítése", - "Did you mean %s?": "Erre gondoltál %s?" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/id.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/id.json deleted file mode 100644 index 87e441cd8..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/id.json +++ /dev/null @@ -1,43 +0,0 @@ - -{ - "Commands:": "Perintah:", - "Options:": "Pilihan:", - "Examples:": "Contoh:", - "boolean": "boolean", - "count": "jumlah", - "number": "nomor", - "string": "string", - "array": "larik", - "required": "diperlukan", - "default:": "bawaan:", - "aliases:": "istilah lain:", - "choices:": "pilihan:", - "generated-value": "nilai-yang-dihasilkan", - "Not enough non-option arguments: got %s, need at least %s": "Argumen wajib kurang: hanya %s, minimal %s", - "Too many non-option arguments: got %s, maximum of %s": "Terlalu banyak argumen wajib: ada %s, maksimal %s", - "Missing argument value: %s": { - "one": "Kurang argumen: %s", - "other": "Kurang argumen: %s" - }, - "Missing required argument: %s": { - "one": "Kurang argumen wajib: %s", - "other": "Kurang argumen wajib: %s" - }, - "Unknown argument: %s": { - "one": "Argumen tak diketahui: %s", - "other": "Argumen tak diketahui: %s" - }, - "Invalid values:": "Nilai-nilai tidak valid:", - "Argument: %s, Given: %s, Choices: %s": "Argumen: %s, Diberikan: %s, Pilihan: %s", - "Argument check failed: %s": "Pemeriksaan argument gagal: %s", - "Implications failed:": "Implikasi gagal:", - "Not enough arguments following: %s": "Kurang argumen untuk: %s", - "Invalid JSON config file: %s": "Berkas konfigurasi JSON tidak valid: %s", - "Path to JSON config file": "Alamat berkas konfigurasi JSON", - "Show help": "Lihat bantuan", - "Show version number": "Lihat nomor versi", - "Did you mean %s?": "Maksud Anda: %s?", - "Arguments %s and %s are mutually exclusive" : "Argumen %s dan %s saling eksklusif", - "Positionals:": "Posisional-posisional:", - "command": "perintah" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/it.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/it.json deleted file mode 100644 index f9eb3756e..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/it.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Comandi:", - "Options:": "Opzioni:", - "Examples:": "Esempi:", - "boolean": "booleano", - "count": "contatore", - "string": "stringa", - "number": "numero", - "array": "vettore", - "required": "richiesto", - "default:": "predefinito:", - "choices:": "scelte:", - "aliases:": "alias:", - "generated-value": "valore generato", - "Not enough non-option arguments: got %s, need at least %s": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s", - "Too many non-option arguments: got %s, maximum of %s": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s", - "Missing argument value: %s": { - "one": "Argomento mancante: %s", - "other": "Argomenti mancanti: %s" - }, - "Missing required argument: %s": { - "one": "Argomento richiesto mancante: %s", - "other": "Argomenti richiesti mancanti: %s" - }, - "Unknown argument: %s": { - "one": "Argomento sconosciuto: %s", - "other": "Argomenti sconosciuti: %s" - }, - "Invalid values:": "Valori non validi:", - "Argument: %s, Given: %s, Choices: %s": "Argomento: %s, Richiesto: %s, Scelte: %s", - "Argument check failed: %s": "Controllo dell'argomento fallito: %s", - "Implications failed:": "Argomenti impliciti non soddisfatti:", - "Not enough arguments following: %s": "Argomenti insufficienti dopo: %s", - "Invalid JSON config file: %s": "File di configurazione JSON non valido: %s", - "Path to JSON config file": "Percorso del file di configurazione JSON", - "Show help": "Mostra la schermata di aiuto", - "Show version number": "Mostra il numero di versione", - "Did you mean %s?": "Intendi forse %s?" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/ja.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/ja.json deleted file mode 100644 index 64ee6d3fb..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/ja.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "コマンド:", - "Options:": "オプション:", - "Examples:": "例:", - "boolean": "真偽", - "count": "カウント", - "string": "文字列", - "number": "数値", - "array": "配列", - "required": "必須", - "default:": "デフォルト:", - "choices:": "選択してください:", - "aliases:": "エイリアス:", - "generated-value": "生成された値", - "Not enough non-option arguments: got %s, need at least %s": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:", - "Too many non-option arguments: got %s, maximum of %s": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:", - "Missing argument value: %s": { - "one": "引数が見つかりません: %s", - "other": "引数が見つかりません: %s" - }, - "Missing required argument: %s": { - "one": "必須の引数が見つかりません: %s", - "other": "必須の引数が見つかりません: %s" - }, - "Unknown argument: %s": { - "one": "未知の引数です: %s", - "other": "未知の引数です: %s" - }, - "Invalid values:": "不正な値です:", - "Argument: %s, Given: %s, Choices: %s": "引数は %s です。指定できるのは %s つです。選択してください: %s", - "Argument check failed: %s": "引数のチェックに失敗しました: %s", - "Implications failed:": "オプションの組み合わせで不正が生じました:", - "Not enough arguments following: %s": "次の引数が不足しています。: %s", - "Invalid JSON config file: %s": "JSONの設定ファイルが不正です: %s", - "Path to JSON config file": "JSONの設定ファイルまでのpath", - "Show help": "ヘルプを表示", - "Show version number": "バージョンを表示", - "Did you mean %s?": "もしかして %s?", - "Arguments %s and %s are mutually exclusive" : "引数 %s と %s は同時に指定できません", - "Positionals:": "位置:", - "command": "コマンド" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/ko.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/ko.json deleted file mode 100644 index 0eaeab2f8..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/ko.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "명령:", - "Options:": "옵션:", - "Examples:": "예시:", - "boolean": "여부", - "count": "개수", - "string": "문자열", - "number": "숫자", - "array": "배열", - "required": "필수", - "default:": "기본:", - "choices:": "선택:", - "aliases:": "별칭:", - "generated-value": "생성된 값", - "Not enough non-option arguments: got %s, need at least %s": "옵션이 아닌 인자가 충분치 않습니다: %s개를 받았지만, 적어도 %s개는 필요합니다", - "Too many non-option arguments: got %s, maximum of %s": "옵션이 아닌 인자가 너무 많습니다: %s개를 받았지만, %s개 이하여야 합니다", - "Missing argument value: %s": { - "one": "인자값을 받지 못했습니다: %s", - "other": "인자값들을 받지 못했습니다: %s" - }, - "Missing required argument: %s": { - "one": "필수 인자를 받지 못했습니다: %s", - "other": "필수 인자들을 받지 못했습니다: %s" - }, - "Unknown argument: %s": { - "one": "알 수 없는 인자입니다: %s", - "other": "알 수 없는 인자들입니다: %s" - }, - "Invalid values:": "잘못된 값입니다:", - "Argument: %s, Given: %s, Choices: %s": "인자: %s, 입력받은 값: %s, 선택지: %s", - "Argument check failed: %s": "유효하지 않은 인자입니다: %s", - "Implications failed:": "옵션의 조합이 잘못되었습니다:", - "Not enough arguments following: %s": "인자가 충분하게 주어지지 않았습니다: %s", - "Invalid JSON config file: %s": "유효하지 않은 JSON 설정파일입니다: %s", - "Path to JSON config file": "JSON 설정파일 경로", - "Show help": "도움말을 보여줍니다", - "Show version number": "버전 넘버를 보여줍니다", - "Did you mean %s?": "찾고계신게 %s입니까?", - "Arguments %s and %s are mutually exclusive" : "%s와 %s 인자는 같이 사용될 수 없습니다", - "Positionals:": "위치:", - "command": "명령" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/nb.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/nb.json deleted file mode 100644 index 55be1fbed..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/nb.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "Commands:": "Kommandoer:", - "Options:": "Alternativer:", - "Examples:": "Eksempler:", - "boolean": "boolsk", - "count": "antall", - "string": "streng", - "number": "nummer", - "array": "matrise", - "required": "obligatorisk", - "default:": "standard:", - "choices:": "valg:", - "generated-value": "generert-verdi", - "Not enough non-option arguments: got %s, need at least %s": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s", - "Too many non-option arguments: got %s, maximum of %s": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s", - "Missing argument value: %s": { - "one": "Mangler argument verdi: %s", - "other": "Mangler argument verdier: %s" - }, - "Missing required argument: %s": { - "one": "Mangler obligatorisk argument: %s", - "other": "Mangler obligatoriske argumenter: %s" - }, - "Unknown argument: %s": { - "one": "Ukjent argument: %s", - "other": "Ukjente argumenter: %s" - }, - "Invalid values:": "Ugyldige verdier:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gitt: %s, Valg: %s", - "Argument check failed: %s": "Argumentsjekk mislyktes: %s", - "Implications failed:": "Konsekvensene mislyktes:", - "Not enough arguments following: %s": "Ikke nok følgende argumenter: %s", - "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s", - "Path to JSON config file": "Bane til JSON konfigurasjonsfil", - "Show help": "Vis hjelp", - "Show version number": "Vis versjonsnummer" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/nl.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/nl.json deleted file mode 100644 index 1d144724e..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/nl.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "Opdrachten:", - "Options:": "Opties:", - "Examples:": "Voorbeelden:", - "boolean": "boolean", - "count": "aantal", - "string": "text", - "number": "nummer", - "array": "lijst", - "required": "verplicht", - "default:": "standaard:", - "choices:": "keuzes:", - "aliases:": "aliassen:", - "generated-value": "gegenereerde waarde", - "Not enough non-option arguments: got %s, need at least %s": "Niet genoeg non-optie argumenten. Gekregen: %s, minstens nodig: %s", - "Too many non-option arguments: got %s, maximum of %s": "Te veel non-optie argumenten. Gekregen: %s, maximum: %s", - "Missing argument value: %s": { - "one": "Missing argument value: %s", - "other": "Missing argument values: %s" - }, - "Missing required argument: %s": { - "one": "Missend verplichte argument: %s", - "other": "Missende verplichte argumenten: %s" - }, - "Unknown argument: %s": { - "one": "Onbekend argument: %s", - "other": "Onbekende argumenten: %s" - }, - "Invalid values:": "Ongeldige waardes:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeven: %s, Keuzes: %s", - "Argument check failed: %s": "Argument check mislukt: %s", - "Implications failed:": "Implicaties mislukt:", - "Not enough arguments following: %s": "Niet genoeg argumenten na: %s", - "Invalid JSON config file: %s": "Ongeldig JSON configuratiebestand: %s", - "Path to JSON config file": "Pad naar JSON configuratiebestand", - "Show help": "Toon help", - "Show version number": "Toon versie nummer", - "Did you mean %s?": "Bedoelde u misschien %s?", - "Arguments %s and %s are mutually exclusive": "Argumenten %s en %s zijn onderling uitsluitend", - "Positionals:": "Positie-afhankelijke argumenten", - "command": "commando" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/nn.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/nn.json deleted file mode 100644 index 5a3c9514d..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/nn.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Kommandoar:", - "Options:": "Alternativ:", - "Examples:": "Døme:", - "boolean": "boolsk", - "count": "mengd", - "string": "streng", - "number": "nummer", - "array": "matrise", - "required": "obligatorisk", - "default:": "standard:", - "choices:": "val:", - "generated-value": "generert-verdi", - "Not enough non-option arguments: got %s, need at least %s": - "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s", - "Too many non-option arguments: got %s, maximum of %s": - "For mange ikkje-alternativ argument: fekk %s, maksimum %s", - "Missing argument value: %s": { - "one": "Manglar argumentverdi: %s", - "other": "Manglar argumentverdiar: %s" - }, - "Missing required argument: %s": { - "one": "Manglar obligatorisk argument: %s", - "other": "Manglar obligatoriske argument: %s" - }, - "Unknown argument: %s": { - "one": "Ukjent argument: %s", - "other": "Ukjende argument: %s" - }, - "Invalid values:": "Ugyldige verdiar:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gjeve: %s, Val: %s", - "Argument check failed: %s": "Argumentsjekk mislukkast: %s", - "Implications failed:": "Konsekvensane mislukkast:", - "Not enough arguments following: %s": "Ikkje nok fylgjande argument: %s", - "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s", - "Path to JSON config file": "Bane til JSON konfigurasjonsfil", - "Show help": "Vis hjelp", - "Show version number": "Vis versjonsnummer" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pirate.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pirate.json deleted file mode 100644 index dcb5cb753..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pirate.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "Commands:": "Choose yer command:", - "Options:": "Options for me hearties!", - "Examples:": "Ex. marks the spot:", - "required": "requi-yar-ed", - "Missing required argument: %s": { - "one": "Ye be havin' to set the followin' argument land lubber: %s", - "other": "Ye be havin' to set the followin' arguments land lubber: %s" - }, - "Show help": "Parlay this here code of conduct", - "Show version number": "'Tis the version ye be askin' fer", - "Arguments %s and %s are mutually exclusive" : "Yon scurvy dogs %s and %s be as bad as rum and a prudish wench" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pl.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pl.json deleted file mode 100644 index 6926a4548..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pl.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "Polecenia:", - "Options:": "Opcje:", - "Examples:": "Przykłady:", - "boolean": "boolean", - "count": "ilość", - "string": "ciąg znaków", - "number": "liczba", - "array": "tablica", - "required": "wymagany", - "default:": "domyślny:", - "choices:": "dostępne:", - "aliases:": "aliasy:", - "generated-value": "wygenerowana-wartość", - "Not enough non-option arguments: got %s, need at least %s": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s", - "Too many non-option arguments: got %s, maximum of %s": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s", - "Missing argument value: %s": { - "one": "Brak wartości dla argumentu: %s", - "other": "Brak wartości dla argumentów: %s" - }, - "Missing required argument: %s": { - "one": "Brak wymaganego argumentu: %s", - "other": "Brak wymaganych argumentów: %s" - }, - "Unknown argument: %s": { - "one": "Nieznany argument: %s", - "other": "Nieznane argumenty: %s" - }, - "Invalid values:": "Nieprawidłowe wartości:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Otrzymano: %s, Dostępne: %s", - "Argument check failed: %s": "Weryfikacja argumentów nie powiodła się: %s", - "Implications failed:": "Założenia nie zostały spełnione:", - "Not enough arguments following: %s": "Niewystarczająca ilość argumentów następujących po: %s", - "Invalid JSON config file: %s": "Nieprawidłowy plik konfiguracyjny JSON: %s", - "Path to JSON config file": "Ścieżka do pliku konfiguracyjnego JSON", - "Show help": "Pokaż pomoc", - "Show version number": "Pokaż numer wersji", - "Did you mean %s?": "Czy chodziło Ci o %s?", - "Arguments %s and %s are mutually exclusive": "Argumenty %s i %s wzajemnie się wykluczają", - "Positionals:": "Pozycyjne:", - "command": "polecenie" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pt.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pt.json deleted file mode 100644 index 75c3921c8..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pt.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "Commands:": "Comandos:", - "Options:": "Opções:", - "Examples:": "Exemplos:", - "boolean": "boolean", - "count": "contagem", - "string": "cadeia de caracteres", - "number": "número", - "array": "arranjo", - "required": "requerido", - "default:": "padrão:", - "choices:": "escolhas:", - "generated-value": "valor-gerado", - "Not enough non-option arguments: got %s, need at least %s": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s", - "Too many non-option arguments: got %s, maximum of %s": "Excesso de argumentos não opcionais: recebido %s, máximo de %s", - "Missing argument value: %s": { - "one": "Falta valor de argumento: %s", - "other": "Falta valores de argumento: %s" - }, - "Missing required argument: %s": { - "one": "Falta argumento obrigatório: %s", - "other": "Faltando argumentos obrigatórios: %s" - }, - "Unknown argument: %s": { - "one": "Argumento desconhecido: %s", - "other": "Argumentos desconhecidos: %s" - }, - "Invalid values:": "Valores inválidos:", - "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Escolhas: %s", - "Argument check failed: %s": "Verificação de argumento falhou: %s", - "Implications failed:": "Implicações falharam:", - "Not enough arguments following: %s": "Insuficientes argumentos a seguir: %s", - "Invalid JSON config file: %s": "Arquivo de configuração em JSON esta inválido: %s", - "Path to JSON config file": "Caminho para o arquivo de configuração em JSON", - "Show help": "Mostra ajuda", - "Show version number": "Mostra número de versão", - "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pt_BR.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pt_BR.json deleted file mode 100644 index 904cb66eb..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/pt_BR.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "Comandos:", - "Options:": "Opções:", - "Examples:": "Exemplos:", - "boolean": "booleano", - "count": "contagem", - "string": "string", - "number": "número", - "array": "array", - "required": "obrigatório", - "default:": "padrão:", - "choices:": "opções:", - "aliases:": "sinônimos:", - "generated-value": "valor-gerado", - "Not enough non-option arguments: got %s, need at least %s": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s", - "Too many non-option arguments: got %s, maximum of %s": "Excesso de argumentos: recebido %s, máximo de %s", - "Missing argument value: %s": { - "one": "Falta valor de argumento: %s", - "other": "Falta valores de argumento: %s" - }, - "Missing required argument: %s": { - "one": "Falta argumento obrigatório: %s", - "other": "Faltando argumentos obrigatórios: %s" - }, - "Unknown argument: %s": { - "one": "Argumento desconhecido: %s", - "other": "Argumentos desconhecidos: %s" - }, - "Invalid values:": "Valores inválidos:", - "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Opções: %s", - "Argument check failed: %s": "Verificação de argumento falhou: %s", - "Implications failed:": "Implicações falharam:", - "Not enough arguments following: %s": "Argumentos insuficientes a seguir: %s", - "Invalid JSON config file: %s": "Arquivo JSON de configuração inválido: %s", - "Path to JSON config file": "Caminho para o arquivo JSON de configuração", - "Show help": "Exibe ajuda", - "Show version number": "Exibe a versão", - "Did you mean %s?": "Você quis dizer %s?", - "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos", - "Positionals:": "Posicionais:", - "command": "comando" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/ru.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/ru.json deleted file mode 100644 index cb7b88b49..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/ru.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Команды:", - "Options:": "Опции:", - "Examples:": "Примеры:", - "boolean": "булевый тип", - "count": "подсчет", - "string": "строковой тип", - "number": "число", - "array": "массив", - "required": "необходимо", - "default:": "по умолчанию:", - "choices:": "возможности:", - "aliases:": "алиасы:", - "generated-value": "генерированное значение", - "Not enough non-option arguments: got %s, need at least %s": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s", - "Too many non-option arguments: got %s, maximum of %s": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s", - "Missing argument value: %s": { - "one": "Не хватает значения аргумента: %s", - "other": "Не хватает значений аргументов: %s" - }, - "Missing required argument: %s": { - "one": "Не хватает необходимого аргумента: %s", - "other": "Не хватает необходимых аргументов: %s" - }, - "Unknown argument: %s": { - "one": "Неизвестный аргумент: %s", - "other": "Неизвестные аргументы: %s" - }, - "Invalid values:": "Недействительные значения:", - "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Данное значение: %s, Возможности: %s", - "Argument check failed: %s": "Проверка аргументов не удалась: %s", - "Implications failed:": "Данный аргумент требует следующий дополнительный аргумент:", - "Not enough arguments following: %s": "Недостаточно следующих аргументов: %s", - "Invalid JSON config file: %s": "Недействительный файл конфигурации JSON: %s", - "Path to JSON config file": "Путь к файлу конфигурации JSON", - "Show help": "Показать помощь", - "Show version number": "Показать номер версии", - "Did you mean %s?": "Вы имели в виду %s?" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/th.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/th.json deleted file mode 100644 index 3f08dcd23..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/th.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "คอมมาน", - "Options:": "ออฟชั่น", - "Examples:": "ตัวอย่าง", - "boolean": "บูลีน", - "count": "นับ", - "string": "สตริง", - "number": "ตัวเลข", - "array": "อาเรย์", - "required": "จำเป็น", - "default:": "ค่าเริ่มต้น", - "choices:": "ตัวเลือก", - "aliases:": "เอเลียส", - "generated-value": "ค่าที่ถูกสร้างขึ้น", - "Not enough non-option arguments: got %s, need at least %s": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า", - "Too many non-option arguments: got %s, maximum of %s": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า", - "Missing argument value: %s": { - "one": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s", - "other": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s" - }, - "Missing required argument: %s": { - "one": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s", - "other": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s" - }, - "Unknown argument: %s": { - "one": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s", - "other": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s" - }, - "Invalid values:": "ค่าไม่ถูกต้อง:", - "Argument: %s, Given: %s, Choices: %s": "อาร์กิวเมนต์: %s, ได้รับ: %s, ตัวเลือก: %s", - "Argument check failed: %s": "ตรวจสอบพบอาร์กิวเมนต์ที่ไม่ถูกต้อง: %s", - "Implications failed:": "Implications ไม่สำเร็จ:", - "Not enough arguments following: %s": "ใส่อาร์กิวเมนต์ไม่ครบ: %s", - "Invalid JSON config file: %s": "ไฟล์คอนฟิค JSON ไม่ถูกต้อง: %s", - "Path to JSON config file": "พาทไฟล์คอนฟิค JSON", - "Show help": "ขอความช่วยเหลือ", - "Show version number": "แสดงตัวเลขเวอร์ชั่น", - "Did you mean %s?": "คุณหมายถึง %s?" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/tr.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/tr.json deleted file mode 100644 index 9b06c52a8..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/tr.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "Commands:": "Komutlar:", - "Options:": "Seçenekler:", - "Examples:": "Örnekler:", - "boolean": "boolean", - "count": "sayı", - "string": "string", - "number": "numara", - "array": "array", - "required": "zorunlu", - "default:": "varsayılan:", - "choices:": "seçimler:", - "aliases:": "takma adlar:", - "generated-value": "oluşturulan-değer", - "Not enough non-option arguments: got %s, need at least %s": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli", - "Too many non-option arguments: got %s, maximum of %s": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s", - "Missing argument value: %s": { - "one": "Eksik argüman değeri: %s", - "other": "Eksik argüman değerleri: %s" - }, - "Missing required argument: %s": { - "one": "Eksik zorunlu argüman: %s", - "other": "Eksik zorunlu argümanlar: %s" - }, - "Unknown argument: %s": { - "one": "Bilinmeyen argüman: %s", - "other": "Bilinmeyen argümanlar: %s" - }, - "Invalid values:": "Geçersiz değerler:", - "Argument: %s, Given: %s, Choices: %s": "Argüman: %s, Verilen: %s, Seçimler: %s", - "Argument check failed: %s": "Argüman kontrolü başarısız oldu: %s", - "Implications failed:": "Sonuçlar başarısız oldu:", - "Not enough arguments following: %s": "%s için yeterli argüman bulunamadı", - "Invalid JSON config file: %s": "Geçersiz JSON yapılandırma dosyası: %s", - "Path to JSON config file": "JSON yapılandırma dosya konumu", - "Show help": "Yardım detaylarını göster", - "Show version number": "Versiyon detaylarını göster", - "Did you mean %s?": "Bunu mu demek istediniz: %s?", - "Positionals:": "Sıralılar:", - "command": "komut" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/zh_CN.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/zh_CN.json deleted file mode 100644 index 03a3d94f0..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/zh_CN.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "Commands:": "命令:", - "Options:": "选项:", - "Examples:": "示例:", - "boolean": "布尔", - "count": "计数", - "string": "字符串", - "number": "数字", - "array": "数组", - "required": "必需", - "default:": "默认值:", - "choices:": "可选值:", - "generated-value": "生成的值", - "Not enough non-option arguments: got %s, need at least %s": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个", - "Too many non-option arguments: got %s, maximum of %s": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个", - "Missing argument value: %s": { - "one": "没有给此选项指定值:%s", - "other": "没有给这些选项指定值:%s" - }, - "Missing required argument: %s": { - "one": "缺少必须的选项:%s", - "other": "缺少这些必须的选项:%s" - }, - "Unknown argument: %s": { - "one": "无法识别的选项:%s", - "other": "无法识别这些选项:%s" - }, - "Invalid values:": "无效的选项值:", - "Argument: %s, Given: %s, Choices: %s": "选项名称: %s, 传入的值: %s, 可选的值:%s", - "Argument check failed: %s": "选项值验证失败:%s", - "Implications failed:": "缺少依赖的选项:", - "Not enough arguments following: %s": "没有提供足够的值给此选项:%s", - "Invalid JSON config file: %s": "无效的 JSON 配置文件:%s", - "Path to JSON config file": "JSON 配置文件的路径", - "Show help": "显示帮助信息", - "Show version number": "显示版本号", - "Did you mean %s?": "是指 %s?", - "Arguments %s and %s are mutually exclusive" : "选项 %s 和 %s 是互斥的", - "Positionals:": "位置:", - "command": "命令" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/zh_TW.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/zh_TW.json deleted file mode 100644 index 12498888a..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/locales/zh_TW.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "Commands:": "命令:", - "Options:": "選項:", - "Examples:": "例:", - "boolean": "布林", - "count": "次數", - "string": "字串", - "number": "數字", - "array": "陣列", - "required": "必須", - "default:": "預設值:", - "choices:": "可選值:", - "aliases:": "別名:", - "generated-value": "生成的值", - "Not enough non-option arguments: got %s, need at least %s": "non-option 引數不足:只傳入了 %s 個, 至少要 %s 個", - "Too many non-option arguments: got %s, maximum of %s": "non-option 引數過多:傳入了 %s 個, 但最多 %s 個", - "Missing argument value: %s": { - "one": "此引數無指定值:%s", - "other": "這些引數無指定值:%s" - }, - "Missing required argument: %s": { - "one": "缺少必須的引數:%s", - "other": "缺少這些必須的引數:%s" - }, - "Unknown argument: %s": { - "one": "未知的引數:%s", - "other": "未知的這些引數:%s" - }, - "Invalid values:": "無效的選項值:", - "Argument: %s, Given: %s, Choices: %s": "引數名稱: %s, 傳入的值: %s, 可選的值:%s", - "Argument check failed: %s": "引數驗證失敗:%s", - "Implications failed:": "缺少依賴的選項:", - "Not enough arguments following: %s": "沒有提供足夠的值給此引數:%s", - "Invalid JSON config file: %s": "無效的 JSON 設置文件:%s", - "Path to JSON config file": "JSON 設置文件的路徑", - "Show help": "顯示說明", - "Show version number": "顯示版本", - "Did you mean %s?": "是指 %s?", - "Arguments %s and %s are mutually exclusive" : "引數 %s 和 %s 是互斥的" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/package.json b/WebServer/node_modules/yargs-unparser/node_modules/yargs/package.json deleted file mode 100644 index 8f9fa772e..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/package.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "_args": [ - [ - "yargs@12.0.5", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "yargs@12.0.5", - "_id": "yargs@12.0.5", - "_inBundle": false, - "_integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "_location": "/yargs-unparser/yargs", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "yargs@12.0.5", - "name": "yargs", - "escapedName": "yargs", - "rawSpec": "12.0.5", - "saveSpec": null, - "fetchSpec": "12.0.5" - }, - "_requiredBy": [ - "/yargs-unparser" - ], - "_resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "_spec": "12.0.5", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "bugs": { - "url": "https://github.com/yargs/yargs/issues" - }, - "contributors": [ - { - "name": "Yargs Contributors", - "url": "https://github.com/yargs/yargs/graphs/contributors" - } - ], - "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - }, - "description": "yargs the modern, pirate-themed, successor to optimist.", - "devDependencies": { - "chai": "^4.1.2", - "chalk": "^1.1.3", - "coveralls": "^3.0.2", - "cpr": "^2.0.0", - "cross-spawn": "^6.0.4", - "es6-promise": "^4.0.2", - "hashish": "0.0.4", - "mocha": "^5.1.1", - "nyc": "^11.7.3", - "rimraf": "^2.5.0", - "standard": "^11.0.1", - "standard-version": "^4.2.0", - "which": "^1.2.9", - "yargs-test-extends": "^1.0.1" - }, - "engine": { - "node": ">=6" - }, - "files": [ - "index.js", - "yargs.js", - "lib", - "locales", - "completion.sh.hbs", - "LICENSE" - ], - "homepage": "https://yargs.js.org/", - "keywords": [ - "argument", - "args", - "option", - "parser", - "parsing", - "cli", - "command" - ], - "license": "MIT", - "main": "./index.js", - "name": "yargs", - "repository": { - "type": "git", - "url": "git+https://github.com/yargs/yargs.git" - }, - "scripts": { - "coverage": "nyc report --reporter=text-lcov | coveralls", - "pretest": "standard", - "release": "standard-version", - "test": "nyc --cache mocha --require ./test/before.js --timeout=8000 --check-leaks" - }, - "standard": { - "ignore": [ - "**/example/**" - ] - }, - "version": "12.0.5" -} diff --git a/WebServer/node_modules/yargs-unparser/node_modules/yargs/yargs.js b/WebServer/node_modules/yargs-unparser/node_modules/yargs/yargs.js deleted file mode 100644 index 24c8e99ce..000000000 --- a/WebServer/node_modules/yargs-unparser/node_modules/yargs/yargs.js +++ /dev/null @@ -1,1190 +0,0 @@ -'use strict' -const argsert = require('./lib/argsert') -const fs = require('fs') -const Command = require('./lib/command') -const Completion = require('./lib/completion') -const Parser = require('yargs-parser') -const path = require('path') -const Usage = require('./lib/usage') -const Validation = require('./lib/validation') -const Y18n = require('y18n') -const objFilter = require('./lib/obj-filter') -const setBlocking = require('set-blocking') -const applyExtends = require('./lib/apply-extends') -const middlewareFactory = require('./lib/middleware') -const YError = require('./lib/yerror') - -exports = module.exports = Yargs -function Yargs (processArgs, cwd, parentRequire) { - processArgs = processArgs || [] // handle calling yargs(). - - const self = {} - let command = null - let completion = null - let groups = {} - let globalMiddleware = [] - let output = '' - let preservedGroups = {} - let usage = null - let validation = null - - const y18n = Y18n({ - directory: path.resolve(__dirname, './locales'), - updateFiles: false - }) - - self.middleware = middlewareFactory(globalMiddleware, self) - - if (!cwd) cwd = process.cwd() - - self.scriptName = function scriptName (scriptName) { - self.$0 = scriptName - return self - } - - // ignore the node bin, specify this in your - // bin file with #!/usr/bin/env node - if (/\b(node|iojs|electron)(\.exe)?$/.test(process.argv[0])) { - self.$0 = process.argv.slice(1, 2) - } else { - self.$0 = process.argv.slice(0, 1) - } - - self.$0 = self.$0 - .map((x, i) => { - const b = rebase(cwd, x) - return x.match(/^(\/|([a-zA-Z]:)?\\)/) && b.length < x.length ? b : x - }) - .join(' ').trim() - - if (process.env._ !== undefined && process.argv[1] === process.env._) { - self.$0 = process.env._.replace( - `${path.dirname(process.execPath)}/`, '' - ) - } - - // use context object to keep track of resets, subcommand execution, etc - // submodules should modify and check the state of context as necessary - const context = { resets: -1, commands: [], fullCommands: [], files: [] } - self.getContext = () => context - - // puts yargs back into an initial state. any keys - // that have been set to "global" will not be reset - // by this action. - let options - self.resetOptions = self.reset = function resetOptions (aliases) { - context.resets++ - aliases = aliases || {} - options = options || {} - // put yargs back into an initial state, this - // logic is used to build a nested command - // hierarchy. - const tmpOptions = {} - tmpOptions.local = options.local ? options.local : [] - tmpOptions.configObjects = options.configObjects ? options.configObjects : [] - - // if a key has been explicitly set as local, - // we should reset it before passing options to command. - const localLookup = {} - tmpOptions.local.forEach((l) => { - localLookup[l] = true - ;(aliases[l] || []).forEach((a) => { - localLookup[a] = true - }) - }) - - // preserve all groups not set to local. - preservedGroups = Object.keys(groups).reduce((acc, groupName) => { - const keys = groups[groupName].filter(key => !(key in localLookup)) - if (keys.length > 0) { - acc[groupName] = keys - } - return acc - }, {}) - // groups can now be reset - groups = {} - - const arrayOptions = [ - 'array', 'boolean', 'string', 'skipValidation', - 'count', 'normalize', 'number', - 'hiddenOptions' - ] - - const objectOptions = [ - 'narg', 'key', 'alias', 'default', 'defaultDescription', - 'config', 'choices', 'demandedOptions', 'demandedCommands', 'coerce' - ] - - arrayOptions.forEach((k) => { - tmpOptions[k] = (options[k] || []).filter(k => !localLookup[k]) - }) - - objectOptions.forEach((k) => { - tmpOptions[k] = objFilter(options[k], (k, v) => !localLookup[k]) - }) - - tmpOptions.envPrefix = options.envPrefix - options = tmpOptions - - // if this is the first time being executed, create - // instances of all our helpers -- otherwise just reset. - usage = usage ? usage.reset(localLookup) : Usage(self, y18n) - validation = validation ? validation.reset(localLookup) : Validation(self, usage, y18n) - command = command ? command.reset() : Command(self, usage, validation, globalMiddleware) - if (!completion) completion = Completion(self, usage, command) - - completionCommand = null - output = '' - exitError = null - hasOutput = false - self.parsed = false - - return self - } - self.resetOptions() - - // temporary hack: allow "freezing" of reset-able state for parse(msg, cb) - let frozen - function freeze () { - frozen = {} - frozen.options = options - frozen.configObjects = options.configObjects.slice(0) - frozen.exitProcess = exitProcess - frozen.groups = groups - usage.freeze() - validation.freeze() - command.freeze() - frozen.strict = strict - frozen.completionCommand = completionCommand - frozen.output = output - frozen.exitError = exitError - frozen.hasOutput = hasOutput - frozen.parsed = self.parsed - } - function unfreeze () { - options = frozen.options - options.configObjects = frozen.configObjects - exitProcess = frozen.exitProcess - groups = frozen.groups - output = frozen.output - exitError = frozen.exitError - hasOutput = frozen.hasOutput - self.parsed = frozen.parsed - usage.unfreeze() - validation.unfreeze() - command.unfreeze() - strict = frozen.strict - completionCommand = frozen.completionCommand - parseFn = null - parseContext = null - frozen = undefined - } - - self.boolean = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('boolean', keys) - return self - } - - self.array = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('array', keys) - return self - } - - self.number = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('number', keys) - return self - } - - self.normalize = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('normalize', keys) - return self - } - - self.count = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('count', keys) - return self - } - - self.string = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('string', keys) - return self - } - - self.requiresArg = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintObject(self.nargs, false, 'narg', keys, 1) - return self - } - - self.skipValidation = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('skipValidation', keys) - return self - } - - function populateParserHintArray (type, keys, value) { - keys = [].concat(keys) - keys.forEach((key) => { - options[type].push(key) - }) - } - - self.nargs = function (key, value) { - argsert(' [number]', [key, value], arguments.length) - populateParserHintObject(self.nargs, false, 'narg', key, value) - return self - } - - self.choices = function (key, value) { - argsert(' [string|array]', [key, value], arguments.length) - populateParserHintObject(self.choices, true, 'choices', key, value) - return self - } - - self.alias = function (key, value) { - argsert(' [string|array]', [key, value], arguments.length) - populateParserHintObject(self.alias, true, 'alias', key, value) - return self - } - - // TODO: actually deprecate self.defaults. - self.default = self.defaults = function (key, value, defaultDescription) { - argsert(' [*] [string]', [key, value, defaultDescription], arguments.length) - if (defaultDescription) options.defaultDescription[key] = defaultDescription - if (typeof value === 'function') { - if (!options.defaultDescription[key]) options.defaultDescription[key] = usage.functionDescription(value) - value = value.call() - } - populateParserHintObject(self.default, false, 'default', key, value) - return self - } - - self.describe = function (key, desc) { - argsert(' [string]', [key, desc], arguments.length) - populateParserHintObject(self.describe, false, 'key', key, true) - usage.describe(key, desc) - return self - } - - self.demandOption = function (keys, msg) { - argsert(' [string]', [keys, msg], arguments.length) - populateParserHintObject(self.demandOption, false, 'demandedOptions', keys, msg) - return self - } - - self.coerce = function (keys, value) { - argsert(' [function]', [keys, value], arguments.length) - populateParserHintObject(self.coerce, false, 'coerce', keys, value) - return self - } - - function populateParserHintObject (builder, isArray, type, key, value) { - if (Array.isArray(key)) { - // an array of keys with one value ['x', 'y', 'z'], function parse () {} - const temp = {} - key.forEach((k) => { - temp[k] = value - }) - builder(temp) - } else if (typeof key === 'object') { - // an object of key value pairs: {'x': parse () {}, 'y': parse() {}} - Object.keys(key).forEach((k) => { - builder(k, key[k]) - }) - } else { - // a single key value pair 'x', parse() {} - if (isArray) { - options[type][key] = (options[type][key] || []).concat(value) - } else { - options[type][key] = value - } - } - } - - function deleteFromParserHintObject (optionKey) { - // delete from all parsing hints: - // boolean, array, key, alias, etc. - Object.keys(options).forEach((hintKey) => { - const hint = options[hintKey] - if (Array.isArray(hint)) { - if (~hint.indexOf(optionKey)) hint.splice(hint.indexOf(optionKey), 1) - } else if (typeof hint === 'object') { - delete hint[optionKey] - } - }) - // now delete the description from usage.js. - delete usage.getDescriptions()[optionKey] - } - - self.config = function config (key, msg, parseFn) { - argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length) - // allow a config object to be provided directly. - if (typeof key === 'object') { - key = applyExtends(key, cwd) - options.configObjects = (options.configObjects || []).concat(key) - return self - } - - // allow for a custom parsing function. - if (typeof msg === 'function') { - parseFn = msg - msg = null - } - - key = key || 'config' - self.describe(key, msg || usage.deferY18nLookup('Path to JSON config file')) - ;(Array.isArray(key) ? key : [key]).forEach((k) => { - options.config[k] = parseFn || true - }) - - return self - } - - self.example = function (cmd, description) { - argsert(' [string]', [cmd, description], arguments.length) - usage.example(cmd, description) - return self - } - - self.command = function (cmd, description, builder, handler, middlewares) { - argsert(' [string|boolean] [function|object] [function] [array]', [cmd, description, builder, handler, middlewares], arguments.length) - command.addHandler(cmd, description, builder, handler, middlewares) - return self - } - - self.commandDir = function (dir, opts) { - argsert(' [object]', [dir, opts], arguments.length) - const req = parentRequire || require - command.addDirectory(dir, self.getContext(), req, require('get-caller-file')(), opts) - return self - } - - // TODO: deprecate self.demand in favor of - // .demandCommand() .demandOption(). - self.demand = self.required = self.require = function demand (keys, max, msg) { - // you can optionally provide a 'max' key, - // which will raise an exception if too many '_' - // options are provided. - if (Array.isArray(max)) { - max.forEach((key) => { - self.demandOption(key, msg) - }) - max = Infinity - } else if (typeof max !== 'number') { - msg = max - max = Infinity - } - - if (typeof keys === 'number') { - self.demandCommand(keys, max, msg, msg) - } else if (Array.isArray(keys)) { - keys.forEach((key) => { - self.demandOption(key, msg) - }) - } else { - if (typeof msg === 'string') { - self.demandOption(keys, msg) - } else if (msg === true || typeof msg === 'undefined') { - self.demandOption(keys) - } - } - - return self - } - - self.demandCommand = function demandCommand (min, max, minMsg, maxMsg) { - argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length) - - if (typeof min === 'undefined') min = 1 - - if (typeof max !== 'number') { - minMsg = max - max = Infinity - } - - self.global('_', false) - - options.demandedCommands._ = { - min, - max, - minMsg, - maxMsg - } - - return self - } - - self.getDemandedOptions = () => { - argsert([], 0) - return options.demandedOptions - } - - self.getDemandedCommands = () => { - argsert([], 0) - return options.demandedCommands - } - - self.implies = function (key, value) { - argsert(' [number|string|array]', [key, value], arguments.length) - validation.implies(key, value) - return self - } - - self.conflicts = function (key1, key2) { - argsert(' [string|array]', [key1, key2], arguments.length) - validation.conflicts(key1, key2) - return self - } - - self.usage = function (msg, description, builder, handler) { - argsert(' [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length) - - if (description !== undefined) { - // .usage() can be used as an alias for defining - // a default command. - if ((msg || '').match(/^\$0( |$)/)) { - return self.command(msg, description, builder, handler) - } else { - throw new YError('.usage() description must start with $0 if being used as alias for .command()') - } - } else { - usage.usage(msg) - return self - } - } - - self.epilogue = self.epilog = function (msg) { - argsert('', [msg], arguments.length) - usage.epilog(msg) - return self - } - - self.fail = function (f) { - argsert('', [f], arguments.length) - usage.failFn(f) - return self - } - - self.check = function (f, _global) { - argsert(' [boolean]', [f, _global], arguments.length) - validation.check(f, _global !== false) - return self - } - - self.global = function global (globals, global) { - argsert(' [boolean]', [globals, global], arguments.length) - globals = [].concat(globals) - if (global !== false) { - options.local = options.local.filter(l => globals.indexOf(l) === -1) - } else { - globals.forEach((g) => { - if (options.local.indexOf(g) === -1) options.local.push(g) - }) - } - return self - } - - self.pkgConf = function pkgConf (key, rootPath) { - argsert(' [string]', [key, rootPath], arguments.length) - let conf = null - // prefer cwd to require-main-filename in this method - // since we're looking for e.g. "nyc" config in nyc consumer - // rather than "yargs" config in nyc (where nyc is the main filename) - const obj = pkgUp(rootPath || cwd) - - // If an object exists in the key, add it to options.configObjects - if (obj[key] && typeof obj[key] === 'object') { - conf = applyExtends(obj[key], rootPath || cwd) - options.configObjects = (options.configObjects || []).concat(conf) - } - - return self - } - - const pkgs = {} - function pkgUp (rootPath) { - const npath = rootPath || '*' - if (pkgs[npath]) return pkgs[npath] - const findUp = require('find-up') - - let obj = {} - try { - let startDir = rootPath || require('require-main-filename')(parentRequire || require) - - // When called in an environment that lacks require.main.filename, such as a jest test runner, - // startDir is already process.cwd(), and should not be shortened. - // Whether or not it is _actually_ a directory (e.g., extensionless bin) is irrelevant, find-up handles it. - if (!rootPath && path.extname(startDir)) { - startDir = path.dirname(startDir) - } - - const pkgJsonPath = findUp.sync('package.json', { - cwd: startDir - }) - obj = JSON.parse(fs.readFileSync(pkgJsonPath)) - } catch (noop) {} - - pkgs[npath] = obj || {} - return pkgs[npath] - } - - let parseFn = null - let parseContext = null - self.parse = function parse (args, shortCircuit, _parseFn) { - argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length) - if (typeof args === 'undefined') { - return self._parseArgs(processArgs) - } - - // a context object can optionally be provided, this allows - // additional information to be passed to a command handler. - if (typeof shortCircuit === 'object') { - parseContext = shortCircuit - shortCircuit = _parseFn - } - - // by providing a function as a second argument to - // parse you can capture output that would otherwise - // default to printing to stdout/stderr. - if (typeof shortCircuit === 'function') { - parseFn = shortCircuit - shortCircuit = null - } - // completion short-circuits the parsing process, - // skipping validation, etc. - if (!shortCircuit) processArgs = args - - freeze() - if (parseFn) exitProcess = false - - const parsed = self._parseArgs(args, shortCircuit) - if (parseFn) parseFn(exitError, parsed, output) - unfreeze() - - return parsed - } - - self._getParseContext = () => parseContext || {} - - self._hasParseCallback = () => !!parseFn - - self.option = self.options = function option (key, opt) { - argsert(' [object]', [key, opt], arguments.length) - if (typeof key === 'object') { - Object.keys(key).forEach((k) => { - self.options(k, key[k]) - }) - } else { - if (typeof opt !== 'object') { - opt = {} - } - - options.key[key] = true // track manually set keys. - - if (opt.alias) self.alias(key, opt.alias) - - const demand = opt.demand || opt.required || opt.require - - // deprecated, use 'demandOption' instead - if (demand) { - self.demand(key, demand) - } - - if (opt.demandOption) { - self.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined) - } - - if ('conflicts' in opt) { - self.conflicts(key, opt.conflicts) - } - - if ('default' in opt) { - self.default(key, opt.default) - } - - if ('implies' in opt) { - self.implies(key, opt.implies) - } - - if ('nargs' in opt) { - self.nargs(key, opt.nargs) - } - - if (opt.config) { - self.config(key, opt.configParser) - } - - if (opt.normalize) { - self.normalize(key) - } - - if ('choices' in opt) { - self.choices(key, opt.choices) - } - - if ('coerce' in opt) { - self.coerce(key, opt.coerce) - } - - if ('group' in opt) { - self.group(key, opt.group) - } - - if (opt.boolean || opt.type === 'boolean') { - self.boolean(key) - if (opt.alias) self.boolean(opt.alias) - } - - if (opt.array || opt.type === 'array') { - self.array(key) - if (opt.alias) self.array(opt.alias) - } - - if (opt.number || opt.type === 'number') { - self.number(key) - if (opt.alias) self.number(opt.alias) - } - - if (opt.string || opt.type === 'string') { - self.string(key) - if (opt.alias) self.string(opt.alias) - } - - if (opt.count || opt.type === 'count') { - self.count(key) - } - - if (typeof opt.global === 'boolean') { - self.global(key, opt.global) - } - - if (opt.defaultDescription) { - options.defaultDescription[key] = opt.defaultDescription - } - - if (opt.skipValidation) { - self.skipValidation(key) - } - - const desc = opt.describe || opt.description || opt.desc - self.describe(key, desc) - if (opt.hidden) { - self.hide(key) - } - - if (opt.requiresArg) { - self.requiresArg(key) - } - } - - return self - } - self.getOptions = () => options - - self.positional = function (key, opts) { - argsert(' ', [key, opts], arguments.length) - if (context.resets === 0) { - throw new YError(".positional() can only be called in a command's builder function") - } - - // .positional() only supports a subset of the configuration - // options availble to .option(). - const supportedOpts = ['default', 'implies', 'normalize', - 'choices', 'conflicts', 'coerce', 'type', 'describe', - 'desc', 'description', 'alias'] - opts = objFilter(opts, (k, v) => { - let accept = supportedOpts.indexOf(k) !== -1 - // type can be one of string|number|boolean. - if (k === 'type' && ['string', 'number', 'boolean'].indexOf(v) === -1) accept = false - return accept - }) - - // copy over any settings that can be inferred from the command string. - const fullCommand = context.fullCommands[context.fullCommands.length - 1] - const parseOptions = fullCommand ? command.cmdToParseOptions(fullCommand) : { - array: [], - alias: {}, - default: {}, - demand: {} - } - Object.keys(parseOptions).forEach((pk) => { - if (Array.isArray(parseOptions[pk])) { - if (parseOptions[pk].indexOf(key) !== -1) opts[pk] = true - } else { - if (parseOptions[pk][key] && !(pk in opts)) opts[pk] = parseOptions[pk][key] - } - }) - self.group(key, usage.getPositionalGroupName()) - return self.option(key, opts) - } - - self.group = function group (opts, groupName) { - argsert(' ', [opts, groupName], arguments.length) - const existing = preservedGroups[groupName] || groups[groupName] - if (preservedGroups[groupName]) { - // we now only need to track this group name in groups. - delete preservedGroups[groupName] - } - - const seen = {} - groups[groupName] = (existing || []).concat(opts).filter((key) => { - if (seen[key]) return false - return (seen[key] = true) - }) - return self - } - // combine explicit and preserved groups. explicit groups should be first - self.getGroups = () => Object.assign({}, groups, preservedGroups) - - // as long as options.envPrefix is not undefined, - // parser will apply env vars matching prefix to argv - self.env = function (prefix) { - argsert('[string|boolean]', [prefix], arguments.length) - if (prefix === false) options.envPrefix = undefined - else options.envPrefix = prefix || '' - return self - } - - self.wrap = function (cols) { - argsert('', [cols], arguments.length) - usage.wrap(cols) - return self - } - - let strict = false - self.strict = function (enabled) { - argsert('[boolean]', [enabled], arguments.length) - strict = enabled !== false - return self - } - self.getStrict = () => strict - - self.showHelp = function (level) { - argsert('[string|function]', [level], arguments.length) - if (!self.parsed) self._parseArgs(processArgs) // run parser, if it has not already been executed. - if (command.hasDefaultCommand()) { - context.resets++ // override the restriction on top-level positoinals. - command.runDefaultBuilderOn(self, true) - } - usage.showHelp(level) - return self - } - - let versionOpt = null - self.version = function version (opt, msg, ver) { - const defaultVersionOpt = 'version' - argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length) - - // nuke the key previously configured - // to return version #. - if (versionOpt) { - deleteFromParserHintObject(versionOpt) - usage.version(undefined) - versionOpt = null - } - - if (arguments.length === 0) { - ver = guessVersion() - opt = defaultVersionOpt - } else if (arguments.length === 1) { - if (opt === false) { // disable default 'version' key. - return self - } - ver = opt - opt = defaultVersionOpt - } else if (arguments.length === 2) { - ver = msg - msg = null - } - - versionOpt = typeof opt === 'string' ? opt : defaultVersionOpt - msg = msg || usage.deferY18nLookup('Show version number') - - usage.version(ver || undefined) - self.boolean(versionOpt) - self.describe(versionOpt, msg) - return self - } - - function guessVersion () { - const obj = pkgUp() - - return obj.version || 'unknown' - } - - let helpOpt = null - self.addHelpOpt = self.help = function addHelpOpt (opt, msg) { - const defaultHelpOpt = 'help' - argsert('[string|boolean] [string]', [opt, msg], arguments.length) - - // nuke the key previously configured - // to return help. - if (helpOpt) { - deleteFromParserHintObject(helpOpt) - helpOpt = null - } - - if (arguments.length === 1) { - if (opt === false) return self - } - - // use arguments, fallback to defaults for opt and msg - helpOpt = typeof opt === 'string' ? opt : defaultHelpOpt - self.boolean(helpOpt) - self.describe(helpOpt, msg || usage.deferY18nLookup('Show help')) - return self - } - - const defaultShowHiddenOpt = 'show-hidden' - options.showHiddenOpt = defaultShowHiddenOpt - self.addShowHiddenOpt = self.showHidden = function addShowHiddenOpt (opt, msg) { - argsert('[string|boolean] [string]', [opt, msg], arguments.length) - - if (arguments.length === 1) { - if (opt === false) return self - } - - const showHiddenOpt = typeof opt === 'string' ? opt : defaultShowHiddenOpt - self.boolean(showHiddenOpt) - self.describe(showHiddenOpt, msg || usage.deferY18nLookup('Show hidden options')) - options.showHiddenOpt = showHiddenOpt - return self - } - - self.hide = function hide (key) { - argsert('', [key], arguments.length) - options.hiddenOptions.push(key) - return self - } - - self.showHelpOnFail = function showHelpOnFail (enabled, message) { - argsert('[boolean|string] [string]', [enabled, message], arguments.length) - usage.showHelpOnFail(enabled, message) - return self - } - - var exitProcess = true - self.exitProcess = function (enabled) { - argsert('[boolean]', [enabled], arguments.length) - if (typeof enabled !== 'boolean') { - enabled = true - } - exitProcess = enabled - return self - } - self.getExitProcess = () => exitProcess - - var completionCommand = null - self.completion = function (cmd, desc, fn) { - argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length) - - // a function to execute when generating - // completions can be provided as the second - // or third argument to completion. - if (typeof desc === 'function') { - fn = desc - desc = null - } - - // register the completion command. - completionCommand = cmd || 'completion' - if (!desc && desc !== false) { - desc = 'generate bash completion script' - } - self.command(completionCommand, desc) - - // a function can be provided - if (fn) completion.registerFunction(fn) - - return self - } - - self.showCompletionScript = function ($0) { - argsert('[string]', [$0], arguments.length) - $0 = $0 || self.$0 - _logger.log(completion.generateCompletionScript($0, completionCommand)) - return self - } - - self.getCompletion = function (args, done) { - argsert(' ', [args, done], arguments.length) - completion.getCompletion(args, done) - } - - self.locale = function (locale) { - argsert('[string]', [locale], arguments.length) - if (arguments.length === 0) { - guessLocale() - return y18n.getLocale() - } - detectLocale = false - y18n.setLocale(locale) - return self - } - - self.updateStrings = self.updateLocale = function (obj) { - argsert('', [obj], arguments.length) - detectLocale = false - y18n.updateLocale(obj) - return self - } - - let detectLocale = true - self.detectLocale = function (detect) { - argsert('', [detect], arguments.length) - detectLocale = detect - return self - } - self.getDetectLocale = () => detectLocale - - var hasOutput = false - var exitError = null - // maybe exit, always capture - // context about why we wanted to exit. - self.exit = (code, err) => { - hasOutput = true - exitError = err - if (exitProcess) process.exit(code) - } - - // we use a custom logger that buffers output, - // so that we can print to non-CLIs, e.g., chat-bots. - const _logger = { - log () { - const args = [] - for (let i = 0; i < arguments.length; i++) args.push(arguments[i]) - if (!self._hasParseCallback()) console.log.apply(console, args) - hasOutput = true - if (output.length) output += '\n' - output += args.join(' ') - }, - error () { - const args = [] - for (let i = 0; i < arguments.length; i++) args.push(arguments[i]) - if (!self._hasParseCallback()) console.error.apply(console, args) - hasOutput = true - if (output.length) output += '\n' - output += args.join(' ') - } - } - self._getLoggerInstance = () => _logger - // has yargs output an error our help - // message in the current execution context. - self._hasOutput = () => hasOutput - - self._setHasOutput = () => { - hasOutput = true - } - - let recommendCommands - self.recommendCommands = function (recommend) { - argsert('[boolean]', [recommend], arguments.length) - recommendCommands = typeof recommend === 'boolean' ? recommend : true - return self - } - - self.getUsageInstance = () => usage - - self.getValidationInstance = () => validation - - self.getCommandInstance = () => command - - self.terminalWidth = () => { - argsert([], 0) - return typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null - } - - Object.defineProperty(self, 'argv', { - get: () => self._parseArgs(processArgs), - enumerable: true - }) - - self._parseArgs = function parseArgs (args, shortCircuit, _skipValidation, commandIndex) { - let skipValidation = !!_skipValidation - args = args || processArgs - - options.__ = y18n.__ - options.configuration = pkgUp()['yargs'] || {} - - const parsed = Parser.detailed(args, options) - let argv = parsed.argv - if (parseContext) argv = Object.assign({}, argv, parseContext) - const aliases = parsed.aliases - - argv.$0 = self.$0 - self.parsed = parsed - - try { - guessLocale() // guess locale lazily, so that it can be turned off in chain. - - // while building up the argv object, there - // are two passes through the parser. If completion - // is being performed short-circuit on the first pass. - if (shortCircuit) { - return argv - } - - // if there's a handler associated with a - // command defer processing to it. - if (helpOpt) { - // consider any multi-char helpOpt alias as a valid help command - // unless all helpOpt aliases are single-char - // note that parsed.aliases is a normalized bidirectional map :) - const helpCmds = [helpOpt] - .concat(aliases[helpOpt] || []) - .filter(k => k.length > 1) - // check if help should trigger and strip it from _. - if (~helpCmds.indexOf(argv._[argv._.length - 1])) { - argv._.pop() - argv[helpOpt] = true - } - } - - const handlerKeys = command.getCommands() - const requestCompletions = completion.completionKey in argv - const skipRecommendation = argv[helpOpt] || requestCompletions - const skipDefaultCommand = skipRecommendation && (handlerKeys.length > 1 || handlerKeys[0] !== '$0') - - if (argv._.length) { - if (handlerKeys.length) { - let firstUnknownCommand - for (let i = (commandIndex || 0), cmd; argv._[i] !== undefined; i++) { - cmd = String(argv._[i]) - if (~handlerKeys.indexOf(cmd) && cmd !== completionCommand) { - // commands are executed using a recursive algorithm that executes - // the deepest command first; we keep track of the position in the - // argv._ array that is currently being executed. - return command.runCommand(cmd, self, parsed, i + 1) - } else if (!firstUnknownCommand && cmd !== completionCommand) { - firstUnknownCommand = cmd - break - } - } - - // run the default command, if defined - if (command.hasDefaultCommand() && !skipDefaultCommand) { - return command.runCommand(null, self, parsed) - } - - // recommend a command if recommendCommands() has - // been enabled, and no commands were found to execute - if (recommendCommands && firstUnknownCommand && !skipRecommendation) { - validation.recommendCommands(firstUnknownCommand, handlerKeys) - } - } - - // generate a completion script for adding to ~/.bashrc. - if (completionCommand && ~argv._.indexOf(completionCommand) && !requestCompletions) { - if (exitProcess) setBlocking(true) - self.showCompletionScript() - self.exit(0) - } - } else if (command.hasDefaultCommand() && !skipDefaultCommand) { - return command.runCommand(null, self, parsed) - } - - // we must run completions first, a user might - // want to complete the --help or --version option. - if (requestCompletions) { - if (exitProcess) setBlocking(true) - - // we allow for asynchronous completions, - // e.g., loading in a list of commands from an API. - const completionArgs = args.slice(args.indexOf(`--${completion.completionKey}`) + 1) - completion.getCompletion(completionArgs, (completions) => { - ;(completions || []).forEach((completion) => { - _logger.log(completion) - }) - - self.exit(0) - }) - return argv - } - - // Handle 'help' and 'version' options - // if we haven't already output help! - if (!hasOutput) { - Object.keys(argv).forEach((key) => { - if (key === helpOpt && argv[key]) { - if (exitProcess) setBlocking(true) - - skipValidation = true - self.showHelp('log') - self.exit(0) - } else if (key === versionOpt && argv[key]) { - if (exitProcess) setBlocking(true) - - skipValidation = true - usage.showVersion() - self.exit(0) - } - }) - } - - // Check if any of the options to skip validation were provided - if (!skipValidation && options.skipValidation.length > 0) { - skipValidation = Object.keys(argv).some(key => options.skipValidation.indexOf(key) >= 0 && argv[key] === true) - } - - // If the help or version options where used and exitProcess is false, - // or if explicitly skipped, we won't run validations. - if (!skipValidation) { - if (parsed.error) throw new YError(parsed.error.message) - - // if we're executed via bash completion, don't - // bother with validation. - if (!requestCompletions) { - self._runValidation(argv, aliases, {}, parsed.error) - } - } - } catch (err) { - if (err instanceof YError) usage.fail(err.message, err) - else throw err - } - - return argv - } - - self._runValidation = function runValidation (argv, aliases, positionalMap, parseErrors) { - if (parseErrors) throw new YError(parseErrors.message) - validation.nonOptionCount(argv) - validation.requiredArguments(argv) - if (strict) validation.unknownArguments(argv, aliases, positionalMap) - validation.customChecks(argv, aliases) - validation.limitedChoices(argv) - validation.implications(argv) - validation.conflicting(argv) - } - - function guessLocale () { - if (!detectLocale) return - - try { - const osLocale = require('os-locale') - self.locale(osLocale.sync({ spawn: false })) - } catch (err) { - // if we explode looking up locale just noop - // we'll keep using the default language 'en'. - } - } - - // an app should almost always have --version and --help, - // if you *really* want to disable this use .help(false)/.version(false). - self.help() - self.version() - - return self -} - -// rebase an absolute path to a relative one with respect to a base directory -// exported for tests -exports.rebase = rebase -function rebase (base, dir) { - return path.relative(base, dir) -} diff --git a/WebServer/node_modules/yargs-unparser/package.json b/WebServer/node_modules/yargs-unparser/package.json deleted file mode 100644 index a49814ce8..000000000 --- a/WebServer/node_modules/yargs-unparser/package.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "_args": [ - [ - "yargs-unparser@1.5.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "yargs-unparser@1.5.0", - "_id": "yargs-unparser@1.5.0", - "_inBundle": false, - "_integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", - "_location": "/yargs-unparser", - "_phantomChildren": { - "camelcase": "5.3.1", - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "3.0.0", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0" - }, - "_requested": { - "type": "version", - "registry": true, - "raw": "yargs-unparser@1.5.0", - "name": "yargs-unparser", - "escapedName": "yargs-unparser", - "rawSpec": "1.5.0", - "saveSpec": null, - "fetchSpec": "1.5.0" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", - "_spec": "1.5.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "André Cruz", - "email": "andre@moxy.studio" - }, - "bugs": { - "url": "https://github.com/yargs/yargs-unparser/issues" - }, - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "dependencies": { - "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" - }, - "description": "Converts back a yargs argv object to its original array form", - "devDependencies": { - "@commitlint/cli": "^7.2.1", - "@commitlint/config-conventional": "^7.1.2", - "eslint": "^5.9.0", - "eslint-config-moxy": "^6.1.1", - "husky": "^1.2.0", - "jest": "^23.6.0", - "lint-staged": "^8.1.0", - "minimist": "^1.2.0", - "standard-version": "^4.4.0", - "yargs-parser": "^11.1.1" - }, - "engines": { - "node": ">=6" - }, - "files": [], - "homepage": "https://github.com/yargs/yargs-unparser", - "keywords": [ - "yargs", - "unparse", - "expand", - "inverse", - "argv" - ], - "license": "MIT", - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] - }, - "main": "index.js", - "name": "yargs-unparser", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/yargs/yargs-unparser.git" - }, - "scripts": { - "commitmsg": "commitlint -e $GIT_PARAMS", - "lint": "eslint .", - "precommit": "lint-staged", - "prerelease": "npm t && npm run lint", - "release": "standard-version", - "test": "jest --env node --coverage" - }, - "standard-version": { - "scripts": { - "posttag": "git push --follow-tags origin master && npm publish" - } - }, - "version": "1.5.0" -} diff --git a/WebServer/node_modules/yargs/index.js b/WebServer/node_modules/yargs/index.js deleted file mode 100644 index dfed54bc5..000000000 --- a/WebServer/node_modules/yargs/index.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict' -// classic singleton yargs API, to use yargs -// without running as a singleton do: -// require('yargs/yargs')(process.argv.slice(2)) -const yargs = require('./yargs') - -Argv(process.argv.slice(2)) - -module.exports = Argv - -function Argv (processArgs, cwd) { - const argv = yargs(processArgs, cwd, require) - singletonify(argv) - return argv -} - -/* Hack an instance of Argv with process.argv into Argv - so people can do - require('yargs')(['--beeble=1','-z','zizzle']).argv - to parse a list of args and - require('yargs').argv - to get a parsed version of process.argv. -*/ -function singletonify (inst) { - Object.keys(inst).forEach((key) => { - if (key === 'argv') { - Argv.__defineGetter__(key, inst.__lookupGetter__(key)) - } else { - Argv[key] = typeof inst[key] === 'function' ? inst[key].bind(inst) : inst[key] - } - }) -} diff --git a/WebServer/node_modules/yargs/lib/apply-extends.js b/WebServer/node_modules/yargs/lib/apply-extends.js deleted file mode 100644 index 1436b6508..000000000 --- a/WebServer/node_modules/yargs/lib/apply-extends.js +++ /dev/null @@ -1,53 +0,0 @@ - -'use strict' -const fs = require('fs') -const path = require('path') -const YError = require('./yerror') - -let previouslyVisitedConfigs = [] - -function checkForCircularExtends (cfgPath) { - if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) { - throw new YError(`Circular extended configurations: '${cfgPath}'.`) - } -} - -function getPathToDefaultConfig (cwd, pathToExtend) { - return path.resolve(cwd, pathToExtend) -} - -function applyExtends (config, cwd) { - let defaultConfig = {} - - if (config.hasOwnProperty('extends')) { - if (typeof config.extends !== 'string') return defaultConfig - const isPath = /\.json|\..*rc$/.test(config.extends) - let pathToDefault = null - if (!isPath) { - try { - pathToDefault = require.resolve(config.extends) - } catch (err) { - // most likely this simply isn't a module. - } - } else { - pathToDefault = getPathToDefaultConfig(cwd, config.extends) - } - // maybe the module uses key for some other reason, - // err on side of caution. - if (!pathToDefault && !isPath) return config - - checkForCircularExtends(pathToDefault) - - previouslyVisitedConfigs.push(pathToDefault) - - defaultConfig = isPath ? JSON.parse(fs.readFileSync(pathToDefault, 'utf8')) : require(config.extends) - delete config.extends - defaultConfig = applyExtends(defaultConfig, path.dirname(pathToDefault)) - } - - previouslyVisitedConfigs = [] - - return Object.assign({}, defaultConfig, config) -} - -module.exports = applyExtends diff --git a/WebServer/node_modules/yargs/lib/argsert.js b/WebServer/node_modules/yargs/lib/argsert.js deleted file mode 100644 index f310b4e74..000000000 --- a/WebServer/node_modules/yargs/lib/argsert.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict' - -// hoisted due to circular dependency on command. -module.exports = argsert -const command = require('./command')() -const YError = require('./yerror') - -const positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth'] -function argsert (expected, callerArguments, length) { - // TODO: should this eventually raise an exception. - try { - // preface the argument description with "cmd", so - // that we can run it through yargs' command parser. - let position = 0 - let parsed = { demanded: [], optional: [] } - if (typeof expected === 'object') { - length = callerArguments - callerArguments = expected - } else { - parsed = command.parseCommand(`cmd ${expected}`) - } - const args = [].slice.call(callerArguments) - - while (args.length && args[args.length - 1] === undefined) args.pop() - length = length || args.length - - if (length < parsed.demanded.length) { - throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`) - } - - const totalCommands = parsed.demanded.length + parsed.optional.length - if (length > totalCommands) { - throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`) - } - - parsed.demanded.forEach((demanded) => { - const arg = args.shift() - const observedType = guessType(arg) - const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*') - if (matchingTypes.length === 0) argumentTypeError(observedType, demanded.cmd, position, false) - position += 1 - }) - - parsed.optional.forEach((optional) => { - if (args.length === 0) return - const arg = args.shift() - const observedType = guessType(arg) - const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*') - if (matchingTypes.length === 0) argumentTypeError(observedType, optional.cmd, position, true) - position += 1 - }) - } catch (err) { - console.warn(err.stack) - } -} - -function guessType (arg) { - if (Array.isArray(arg)) { - return 'array' - } else if (arg === null) { - return 'null' - } - return typeof arg -} - -function argumentTypeError (observedType, allowedTypes, position, optional) { - throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`) -} diff --git a/WebServer/node_modules/yargs/lib/command.js b/WebServer/node_modules/yargs/lib/command.js deleted file mode 100644 index 895423a2b..000000000 --- a/WebServer/node_modules/yargs/lib/command.js +++ /dev/null @@ -1,437 +0,0 @@ -'use strict' - -const inspect = require('util').inspect -const isPromise = require('./is-promise') -const { applyMiddleware, commandMiddlewareFactory } = require('./middleware') -const path = require('path') -const Parser = require('yargs-parser') - -const DEFAULT_MARKER = /(^\*)|(^\$0)/ - -// handles parsing positional arguments, -// and populating argv with said positional -// arguments. -module.exports = function command (yargs, usage, validation, globalMiddleware) { - const self = {} - let handlers = {} - let aliasMap = {} - let defaultCommand - globalMiddleware = globalMiddleware || [] - - self.addHandler = function addHandler (cmd, description, builder, handler, commandMiddleware) { - let aliases = [] - const middlewares = commandMiddlewareFactory(commandMiddleware) - handler = handler || (() => {}) - - if (Array.isArray(cmd)) { - aliases = cmd.slice(1) - cmd = cmd[0] - } else if (typeof cmd === 'object') { - let command = (Array.isArray(cmd.command) || typeof cmd.command === 'string') ? cmd.command : moduleName(cmd) - if (cmd.aliases) command = [].concat(command).concat(cmd.aliases) - self.addHandler(command, extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares) - return - } - - // allow a module to be provided instead of separate builder and handler - if (typeof builder === 'object' && builder.builder && typeof builder.handler === 'function') { - self.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares) - return - } - - // parse positionals out of cmd string - const parsedCommand = self.parseCommand(cmd) - - // remove positional args from aliases only - aliases = aliases.map(alias => self.parseCommand(alias).cmd) - - // check for default and filter out '*'' - let isDefault = false - const parsedAliases = [parsedCommand.cmd].concat(aliases).filter((c) => { - if (DEFAULT_MARKER.test(c)) { - isDefault = true - return false - } - return true - }) - - // standardize on $0 for default command. - if (parsedAliases.length === 0 && isDefault) parsedAliases.push('$0') - - // shift cmd and aliases after filtering out '*' - if (isDefault) { - parsedCommand.cmd = parsedAliases[0] - aliases = parsedAliases.slice(1) - cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd) - } - - // populate aliasMap - aliases.forEach((alias) => { - aliasMap[alias] = parsedCommand.cmd - }) - - if (description !== false) { - usage.command(cmd, description, isDefault, aliases) - } - - handlers[parsedCommand.cmd] = { - original: cmd, - description: description, - handler, - builder: builder || {}, - middlewares: middlewares || [], - demanded: parsedCommand.demanded, - optional: parsedCommand.optional - } - - if (isDefault) defaultCommand = handlers[parsedCommand.cmd] - } - - self.addDirectory = function addDirectory (dir, context, req, callerFile, opts) { - opts = opts || {} - // disable recursion to support nested directories of subcommands - if (typeof opts.recurse !== 'boolean') opts.recurse = false - // exclude 'json', 'coffee' from require-directory defaults - if (!Array.isArray(opts.extensions)) opts.extensions = ['js'] - // allow consumer to define their own visitor function - const parentVisit = typeof opts.visit === 'function' ? opts.visit : o => o - // call addHandler via visitor function - opts.visit = function visit (obj, joined, filename) { - const visited = parentVisit(obj, joined, filename) - // allow consumer to skip modules with their own visitor - if (visited) { - // check for cyclic reference - // each command file path should only be seen once per execution - if (~context.files.indexOf(joined)) return visited - // keep track of visited files in context.files - context.files.push(joined) - self.addHandler(visited) - } - return visited - } - require('require-directory')({ require: req, filename: callerFile }, dir, opts) - } - - // lookup module object from require()d command and derive name - // if module was not require()d and no name given, throw error - function moduleName (obj) { - const mod = require('which-module')(obj) - if (!mod) throw new Error(`No command name given for module: ${inspect(obj)}`) - return commandFromFilename(mod.filename) - } - - // derive command name from filename - function commandFromFilename (filename) { - return path.basename(filename, path.extname(filename)) - } - - function extractDesc (obj) { - for (let keys = ['describe', 'description', 'desc'], i = 0, l = keys.length, test; i < l; i++) { - test = obj[keys[i]] - if (typeof test === 'string' || typeof test === 'boolean') return test - } - return false - } - - self.parseCommand = function parseCommand (cmd) { - const extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' ') - const splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/) - const bregex = /\.*[\][<>]/g - const parsedCommand = { - cmd: (splitCommand.shift()).replace(bregex, ''), - demanded: [], - optional: [] - } - splitCommand.forEach((cmd, i) => { - let variadic = false - cmd = cmd.replace(/\s/g, '') - if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1) variadic = true - if (/^\[/.test(cmd)) { - parsedCommand.optional.push({ - cmd: cmd.replace(bregex, '').split('|'), - variadic - }) - } else { - parsedCommand.demanded.push({ - cmd: cmd.replace(bregex, '').split('|'), - variadic - }) - } - }) - return parsedCommand - } - - self.getCommands = () => Object.keys(handlers).concat(Object.keys(aliasMap)) - - self.getCommandHandlers = () => handlers - - self.hasDefaultCommand = () => !!defaultCommand - - self.runCommand = function runCommand (command, yargs, parsed, commandIndex) { - let aliases = parsed.aliases - const commandHandler = handlers[command] || handlers[aliasMap[command]] || defaultCommand - const currentContext = yargs.getContext() - let numFiles = currentContext.files.length - const parentCommands = currentContext.commands.slice() - - // what does yargs look like after the buidler is run? - let innerArgv = parsed.argv - let innerYargs = null - let positionalMap = {} - if (command) { - currentContext.commands.push(command) - currentContext.fullCommands.push(commandHandler.original) - } - if (typeof commandHandler.builder === 'function') { - // a function can be provided, which builds - // up a yargs chain and possibly returns it. - innerYargs = commandHandler.builder(yargs.reset(parsed.aliases)) - // if the builder function did not yet parse argv with reset yargs - // and did not explicitly set a usage() string, then apply the - // original command string as usage() for consistent behavior with - // options object below. - if (yargs.parsed === false) { - if (shouldUpdateUsage(yargs)) { - yargs.getUsageInstance().usage( - usageFromParentCommandsCommandHandler(parentCommands, commandHandler), - commandHandler.description - ) - } - innerArgv = innerYargs ? innerYargs._parseArgs(null, null, true, commandIndex) : yargs._parseArgs(null, null, true, commandIndex) - } else { - innerArgv = yargs.parsed.argv - } - - if (innerYargs && yargs.parsed === false) aliases = innerYargs.parsed.aliases - else aliases = yargs.parsed.aliases - } else if (typeof commandHandler.builder === 'object') { - // as a short hand, an object can instead be provided, specifying - // the options that a command takes. - innerYargs = yargs.reset(parsed.aliases) - if (shouldUpdateUsage(innerYargs)) { - innerYargs.getUsageInstance().usage( - usageFromParentCommandsCommandHandler(parentCommands, commandHandler), - commandHandler.description - ) - } - Object.keys(commandHandler.builder).forEach((key) => { - innerYargs.option(key, commandHandler.builder[key]) - }) - innerArgv = innerYargs._parseArgs(null, null, true, commandIndex) - aliases = innerYargs.parsed.aliases - } - - if (!yargs._hasOutput()) { - positionalMap = populatePositionals(commandHandler, innerArgv, currentContext, yargs) - } - - const middlewares = globalMiddleware.slice(0).concat(commandHandler.middlewares || []) - applyMiddleware(innerArgv, yargs, middlewares, true) - - // we apply validation post-hoc, so that custom - // checks get passed populated positional arguments. - if (!yargs._hasOutput()) yargs._runValidation(innerArgv, aliases, positionalMap, yargs.parsed.error) - - if (commandHandler.handler && !yargs._hasOutput()) { - yargs._setHasOutput() - - innerArgv = applyMiddleware(innerArgv, yargs, middlewares, false) - - const handlerResult = isPromise(innerArgv) - ? innerArgv.then(argv => commandHandler.handler(argv)) - : commandHandler.handler(innerArgv) - - if (isPromise(handlerResult)) { - handlerResult.catch(error => - yargs.getUsageInstance().fail(null, error) - ) - } - } - - if (command) { - currentContext.commands.pop() - currentContext.fullCommands.pop() - } - numFiles = currentContext.files.length - numFiles - if (numFiles > 0) currentContext.files.splice(numFiles * -1, numFiles) - - return innerArgv - } - - function shouldUpdateUsage (yargs) { - return !yargs.getUsageInstance().getUsageDisabled() && - yargs.getUsageInstance().getUsage().length === 0 - } - - function usageFromParentCommandsCommandHandler (parentCommands, commandHandler) { - const c = DEFAULT_MARKER.test(commandHandler.original) ? commandHandler.original.replace(DEFAULT_MARKER, '').trim() : commandHandler.original - const pc = parentCommands.filter((c) => { return !DEFAULT_MARKER.test(c) }) - pc.push(c) - return `$0 ${pc.join(' ')}` - } - - self.runDefaultBuilderOn = function (yargs) { - if (shouldUpdateUsage(yargs)) { - // build the root-level command string from the default string. - const commandString = DEFAULT_MARKER.test(defaultCommand.original) - ? defaultCommand.original : defaultCommand.original.replace(/^[^[\]<>]*/, '$0 ') - yargs.getUsageInstance().usage( - commandString, - defaultCommand.description - ) - } - const builder = defaultCommand.builder - if (typeof builder === 'function') { - builder(yargs) - } else { - Object.keys(builder).forEach((key) => { - yargs.option(key, builder[key]) - }) - } - } - - // transcribe all positional arguments "command [apple]" - // onto argv. - function populatePositionals (commandHandler, argv, context, yargs) { - argv._ = argv._.slice(context.commands.length) // nuke the current commands - const demanded = commandHandler.demanded.slice(0) - const optional = commandHandler.optional.slice(0) - const positionalMap = {} - - validation.positionalCount(demanded.length, argv._.length) - - while (demanded.length) { - const demand = demanded.shift() - populatePositional(demand, argv, positionalMap) - } - - while (optional.length) { - const maybe = optional.shift() - populatePositional(maybe, argv, positionalMap) - } - - argv._ = context.commands.concat(argv._) - - postProcessPositionals(argv, positionalMap, self.cmdToParseOptions(commandHandler.original)) - - return positionalMap - } - - function populatePositional (positional, argv, positionalMap, parseOptions) { - const cmd = positional.cmd[0] - if (positional.variadic) { - positionalMap[cmd] = argv._.splice(0).map(String) - } else { - if (argv._.length) positionalMap[cmd] = [String(argv._.shift())] - } - } - - // we run yargs-parser against the positional arguments - // applying the same parsing logic used for flags. - function postProcessPositionals (argv, positionalMap, parseOptions) { - // combine the parsing hints we've inferred from the command - // string with explicitly configured parsing hints. - const options = Object.assign({}, yargs.getOptions()) - options.default = Object.assign(parseOptions.default, options.default) - options.alias = Object.assign(parseOptions.alias, options.alias) - options.array = options.array.concat(parseOptions.array) - delete options.config // don't load config when processing positionals. - - const unparsed = [] - Object.keys(positionalMap).forEach((key) => { - positionalMap[key].map((value) => { - unparsed.push(`--${key}`) - unparsed.push(value) - }) - }) - - // short-circuit parse. - if (!unparsed.length) return - - const parsed = Parser.detailed(unparsed, options) - - if (parsed.error) { - yargs.getUsageInstance().fail(parsed.error.message, parsed.error) - } else { - // only copy over positional keys (don't overwrite - // flag arguments that were already parsed). - const positionalKeys = Object.keys(positionalMap) - Object.keys(positionalMap).forEach((key) => { - [].push.apply(positionalKeys, parsed.aliases[key]) - }) - - Object.keys(parsed.argv).forEach((key) => { - if (positionalKeys.indexOf(key) !== -1) { - // any new aliases need to be placed in positionalMap, which - // is used for validation. - if (!positionalMap[key]) positionalMap[key] = parsed.argv[key] - argv[key] = parsed.argv[key] - } - }) - } - } - - self.cmdToParseOptions = function (cmdString) { - const parseOptions = { - array: [], - default: {}, - alias: {}, - demand: {} - } - - const parsed = self.parseCommand(cmdString) - parsed.demanded.forEach((d) => { - const cmds = d.cmd.slice(0) - const cmd = cmds.shift() - if (d.variadic) { - parseOptions.array.push(cmd) - parseOptions.default[cmd] = [] - } - cmds.forEach((c) => { - parseOptions.alias[cmd] = c - }) - parseOptions.demand[cmd] = true - }) - - parsed.optional.forEach((o) => { - const cmds = o.cmd.slice(0) - const cmd = cmds.shift() - if (o.variadic) { - parseOptions.array.push(cmd) - parseOptions.default[cmd] = [] - } - cmds.forEach((c) => { - parseOptions.alias[cmd] = c - }) - }) - - return parseOptions - } - - self.reset = () => { - handlers = {} - aliasMap = {} - defaultCommand = undefined - return self - } - - // used by yargs.parse() to freeze - // the state of commands such that - // we can apply .parse() multiple times - // with the same yargs instance. - let frozen - self.freeze = () => { - frozen = {} - frozen.handlers = handlers - frozen.aliasMap = aliasMap - frozen.defaultCommand = defaultCommand - } - self.unfreeze = () => { - handlers = frozen.handlers - aliasMap = frozen.aliasMap - defaultCommand = frozen.defaultCommand - frozen = undefined - } - - return self -} diff --git a/WebServer/node_modules/yargs/lib/completion.js b/WebServer/node_modules/yargs/lib/completion.js deleted file mode 100644 index a8de5b04e..000000000 --- a/WebServer/node_modules/yargs/lib/completion.js +++ /dev/null @@ -1,118 +0,0 @@ -'use strict' -const fs = require('fs') -const path = require('path') - -// add bash completions to your -// yargs-powered applications. -module.exports = function completion (yargs, usage, command) { - const self = { - completionKey: 'get-yargs-completions' - } - - const zshShell = process.env.SHELL && process.env.SHELL.indexOf('zsh') !== -1 - // get a list of completion commands. - // 'args' is the array of strings from the line to be completed - self.getCompletion = function getCompletion (args, done) { - const completions = [] - const current = args.length ? args[args.length - 1] : '' - const argv = yargs.parse(args, true) - const aliases = yargs.parsed.aliases - const parentCommands = yargs.getContext().commands - - // a custom completion function can be provided - // to completion(). - if (completionFunction) { - if (completionFunction.length < 3) { - const result = completionFunction(current, argv) - - // promise based completion function. - if (typeof result.then === 'function') { - return result.then((list) => { - process.nextTick(() => { done(list) }) - }).catch((err) => { - process.nextTick(() => { throw err }) - }) - } - - // synchronous completion function. - return done(result) - } else { - // asynchronous completion function - return completionFunction(current, argv, (completions) => { - done(completions) - }) - } - } - - const handlers = command.getCommandHandlers() - for (let i = 0, ii = args.length; i < ii; ++i) { - if (handlers[args[i]] && handlers[args[i]].builder) { - const builder = handlers[args[i]].builder - if (typeof builder === 'function') { - const y = yargs.reset() - builder(y) - return y.argv - } - } - } - - if (!current.match(/^-/) && parentCommands[parentCommands.length - 1] !== current) { - usage.getCommands().forEach((usageCommand) => { - const commandName = command.parseCommand(usageCommand[0]).cmd - if (args.indexOf(commandName) === -1) { - if (!zshShell) { - completions.push(commandName) - } else { - const desc = usageCommand[1] || '' - completions.push(commandName.replace(/:/g, '\\:') + ':' + desc) - } - } - }) - } - - if (current.match(/^-/) || (current === '' && completions.length === 0)) { - const descs = usage.getDescriptions() - Object.keys(yargs.getOptions().key).forEach((key) => { - // If the key and its aliases aren't in 'args', add the key to 'completions' - const keyAndAliases = [key].concat(aliases[key] || []) - const notInArgs = keyAndAliases.every(val => args.indexOf(`--${val}`) === -1) - if (notInArgs) { - if (!zshShell) { - completions.push(`--${key}`) - } else { - const desc = descs[key] || '' - completions.push(`--${key.replace(/:/g, '\\:')}:${desc.replace('__yargsString__:', '')}`) - } - } - }) - } - - done(completions) - } - - // generate the completion script to add to your .bashrc. - self.generateCompletionScript = function generateCompletionScript ($0, cmd) { - let script = fs.readFileSync( - path.resolve(__dirname, zshShell ? '../completion.zsh.hbs' : '../completion.sh.hbs'), - 'utf-8' - ) - const name = path.basename($0) - - // add ./to applications not yet installed as bin. - if ($0.match(/\.js$/)) $0 = `./${$0}` - - script = script.replace(/{{app_name}}/g, name) - script = script.replace(/{{completion_command}}/g, cmd) - return script.replace(/{{app_path}}/g, $0) - } - - // register a function to perform your own custom - // completions., this function can be either - // synchrnous or asynchronous. - let completionFunction = null - self.registerFunction = (fn) => { - completionFunction = fn - } - - return self -} diff --git a/WebServer/node_modules/yargs/lib/decamelize.js b/WebServer/node_modules/yargs/lib/decamelize.js deleted file mode 100644 index c3a415151..000000000 --- a/WebServer/node_modules/yargs/lib/decamelize.js +++ /dev/null @@ -1,32 +0,0 @@ -/* -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ -'use strict' - -module.exports = (text, separator) => { - separator = typeof separator === 'undefined' ? '_' : separator - - return text - .replace(/([a-z\d])([A-Z])/g, `$1${separator}$2`) - .replace(/([A-Z]+)([A-Z][a-z\d]+)/g, `$1${separator}$2`) - .toLowerCase() -} diff --git a/WebServer/node_modules/yargs/lib/is-promise.js b/WebServer/node_modules/yargs/lib/is-promise.js deleted file mode 100644 index 0516defa9..000000000 --- a/WebServer/node_modules/yargs/lib/is-promise.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = function isPromise (maybePromise) { - return maybePromise instanceof Promise -} diff --git a/WebServer/node_modules/yargs/lib/levenshtein.js b/WebServer/node_modules/yargs/lib/levenshtein.js deleted file mode 100644 index c66c1babb..000000000 --- a/WebServer/node_modules/yargs/lib/levenshtein.js +++ /dev/null @@ -1,58 +0,0 @@ -/* -Copyright (c) 2011 Andrei Mackenzie - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -// levenshtein distance algorithm, pulled from Andrei Mackenzie's MIT licensed. -// gist, which can be found here: https://gist.github.com/andrei-m/982927 -'use strict' -// Compute the edit distance between the two given strings -module.exports = function levenshtein (a, b) { - if (a.length === 0) return b.length - if (b.length === 0) return a.length - - const matrix = [] - - // increment along the first column of each row - let i - for (i = 0; i <= b.length; i++) { - matrix[i] = [i] - } - - // increment each column in the first row - let j - for (j = 0; j <= a.length; j++) { - matrix[0][j] = j - } - - // Fill in the rest of the matrix - for (i = 1; i <= b.length; i++) { - for (j = 1; j <= a.length; j++) { - if (b.charAt(i - 1) === a.charAt(j - 1)) { - matrix[i][j] = matrix[i - 1][j - 1] - } else { - matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution - Math.min(matrix[i][j - 1] + 1, // insertion - matrix[i - 1][j] + 1)) // deletion - } - } - } - - return matrix[b.length][a.length] -} diff --git a/WebServer/node_modules/yargs/lib/middleware.js b/WebServer/node_modules/yargs/lib/middleware.js deleted file mode 100644 index 9f9c19696..000000000 --- a/WebServer/node_modules/yargs/lib/middleware.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict' - -// hoisted due to circular dependency on command. -module.exports = { - applyMiddleware, - commandMiddlewareFactory, - globalMiddlewareFactory -} -const isPromise = require('./is-promise') -const argsert = require('./argsert') - -function globalMiddlewareFactory (globalMiddleware, context) { - return function (callback, applyBeforeValidation = false) { - argsert(' [boolean]', [callback, applyBeforeValidation], arguments.length) - if (Array.isArray(callback)) { - for (let i = 0; i < callback.length; i++) { - if (typeof callback[i] !== 'function') { - throw Error('middleware must be a function') - } - callback[i].applyBeforeValidation = applyBeforeValidation - } - Array.prototype.push.apply(globalMiddleware, callback) - } else if (typeof callback === 'function') { - callback.applyBeforeValidation = applyBeforeValidation - globalMiddleware.push(callback) - } - return context - } -} - -function commandMiddlewareFactory (commandMiddleware) { - if (!commandMiddleware) return [] - return commandMiddleware.map(middleware => { - middleware.applyBeforeValidation = false - return middleware - }) -} - -function applyMiddleware (argv, yargs, middlewares, beforeValidation) { - const beforeValidationError = new Error('middleware cannot return a promise when applyBeforeValidation is true') - return middlewares - .reduce((accumulation, middleware) => { - if (middleware.applyBeforeValidation !== beforeValidation && - !isPromise(accumulation)) { - return accumulation - } - - if (isPromise(accumulation)) { - return accumulation - .then(initialObj => - Promise.all([initialObj, middleware(initialObj, yargs)]) - ) - .then(([initialObj, middlewareObj]) => - Object.assign(initialObj, middlewareObj) - ) - } else { - const result = middleware(argv, yargs) - if (beforeValidation && isPromise(result)) throw beforeValidationError - - return isPromise(result) - ? result.then(middlewareObj => Object.assign(accumulation, middlewareObj)) - : Object.assign(accumulation, result) - } - }, argv) -} diff --git a/WebServer/node_modules/yargs/lib/obj-filter.js b/WebServer/node_modules/yargs/lib/obj-filter.js deleted file mode 100644 index c344ac58c..000000000 --- a/WebServer/node_modules/yargs/lib/obj-filter.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' -module.exports = function objFilter (original, filter) { - const obj = {} - filter = filter || ((k, v) => true) - Object.keys(original || {}).forEach((key) => { - if (filter(key, original[key])) { - obj[key] = original[key] - } - }) - return obj -} diff --git a/WebServer/node_modules/yargs/lib/usage.js b/WebServer/node_modules/yargs/lib/usage.js deleted file mode 100644 index 8c3b068f8..000000000 --- a/WebServer/node_modules/yargs/lib/usage.js +++ /dev/null @@ -1,540 +0,0 @@ -'use strict' -// this file handles outputting usage instructions, -// failures, etc. keeps logging in one place. -const decamelize = require('./decamelize') -const stringWidth = require('string-width') -const objFilter = require('./obj-filter') -const path = require('path') -const setBlocking = require('set-blocking') -const YError = require('./yerror') - -module.exports = function usage (yargs, y18n) { - const __ = y18n.__ - const self = {} - - // methods for ouputting/building failure message. - const fails = [] - self.failFn = function failFn (f) { - fails.push(f) - } - - let failMessage = null - let showHelpOnFail = true - self.showHelpOnFail = function showHelpOnFailFn (enabled, message) { - if (typeof enabled === 'string') { - message = enabled - enabled = true - } else if (typeof enabled === 'undefined') { - enabled = true - } - failMessage = message - showHelpOnFail = enabled - return self - } - - let failureOutput = false - self.fail = function fail (msg, err) { - const logger = yargs._getLoggerInstance() - - if (fails.length) { - for (let i = fails.length - 1; i >= 0; --i) { - fails[i](msg, err, self) - } - } else { - if (yargs.getExitProcess()) setBlocking(true) - - // don't output failure message more than once - if (!failureOutput) { - failureOutput = true - if (showHelpOnFail) { - yargs.showHelp('error') - logger.error() - } - if (msg || err) logger.error(msg || err) - if (failMessage) { - if (msg || err) logger.error('') - logger.error(failMessage) - } - } - - err = err || new YError(msg) - if (yargs.getExitProcess()) { - return yargs.exit(1) - } else if (yargs._hasParseCallback()) { - return yargs.exit(1, err) - } else { - throw err - } - } - } - - // methods for ouputting/building help (usage) message. - let usages = [] - let usageDisabled = false - self.usage = (msg, description) => { - if (msg === null) { - usageDisabled = true - usages = [] - return - } - usageDisabled = false - usages.push([msg, description || '']) - return self - } - self.getUsage = () => { - return usages - } - self.getUsageDisabled = () => { - return usageDisabled - } - - self.getPositionalGroupName = () => { - return __('Positionals:') - } - - let examples = [] - self.example = (cmd, description) => { - examples.push([cmd, description || '']) - } - - let commands = [] - self.command = function command (cmd, description, isDefault, aliases) { - // the last default wins, so cancel out any previously set default - if (isDefault) { - commands = commands.map((cmdArray) => { - cmdArray[2] = false - return cmdArray - }) - } - commands.push([cmd, description || '', isDefault, aliases]) - } - self.getCommands = () => commands - - let descriptions = {} - self.describe = function describe (key, desc) { - if (typeof key === 'object') { - Object.keys(key).forEach((k) => { - self.describe(k, key[k]) - }) - } else { - descriptions[key] = desc - } - } - self.getDescriptions = () => descriptions - - let epilog - self.epilog = (msg) => { - epilog = msg - } - - let wrapSet = false - let wrap - self.wrap = (cols) => { - wrapSet = true - wrap = cols - } - - function getWrap () { - if (!wrapSet) { - wrap = windowWidth() - wrapSet = true - } - - return wrap - } - - const deferY18nLookupPrefix = '__yargsString__:' - self.deferY18nLookup = str => deferY18nLookupPrefix + str - - const defaultGroup = 'Options:' - self.help = function help () { - normalizeAliases() - - // handle old demanded API - const base$0 = path.basename(yargs.$0) - const demandedOptions = yargs.getDemandedOptions() - const demandedCommands = yargs.getDemandedCommands() - const groups = yargs.getGroups() - const options = yargs.getOptions() - - let keys = [] - keys = keys.concat(Object.keys(descriptions)) - keys = keys.concat(Object.keys(demandedOptions)) - keys = keys.concat(Object.keys(demandedCommands)) - keys = keys.concat(Object.keys(options.default)) - keys = keys.filter(filterHiddenOptions) - keys = Object.keys(keys.reduce((acc, key) => { - if (key !== '_') acc[key] = true - return acc - }, {})) - - const theWrap = getWrap() - const ui = require('cliui')({ - width: theWrap, - wrap: !!theWrap - }) - - // the usage string. - if (!usageDisabled) { - if (usages.length) { - // user-defined usage. - usages.forEach((usage) => { - ui.div(`${usage[0].replace(/\$0/g, base$0)}`) - if (usage[1]) { - ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] }) - } - }) - ui.div() - } else if (commands.length) { - let u = null - // demonstrate how commands are used. - if (demandedCommands._) { - u = `${base$0} <${__('command')}>\n` - } else { - u = `${base$0} [${__('command')}]\n` - } - ui.div(`${u}`) - } - } - - // your application's commands, i.e., non-option - // arguments populated in '_'. - if (commands.length) { - ui.div(__('Commands:')) - - const context = yargs.getContext() - const parentCommands = context.commands.length ? `${context.commands.join(' ')} ` : '' - - if (yargs.getParserConfiguration()['sort-commands'] === true) { - commands = commands.sort((a, b) => a[0].localeCompare(b[0])) - } - - commands.forEach((command) => { - const commandString = `${base$0} ${parentCommands}${command[0].replace(/^\$0 ?/, '')}` // drop $0 from default commands. - ui.span( - { - text: commandString, - padding: [0, 2, 0, 2], - width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4 - }, - { text: command[1] } - ) - const hints = [] - if (command[2]) hints.push(`[${__('default:').slice(0, -1)}]`) // TODO hacking around i18n here - if (command[3] && command[3].length) { - hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`) - } - if (hints.length) { - ui.div({ text: hints.join(' '), padding: [0, 0, 0, 2], align: 'right' }) - } else { - ui.div() - } - }) - - ui.div() - } - - // perform some cleanup on the keys array, making it - // only include top-level keys not their aliases. - const aliasKeys = (Object.keys(options.alias) || []) - .concat(Object.keys(yargs.parsed.newAliases) || []) - - keys = keys.filter(key => !yargs.parsed.newAliases[key] && aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1)) - - // populate 'Options:' group with any keys that have not - // explicitly had a group set. - if (!groups[defaultGroup]) groups[defaultGroup] = [] - addUngroupedKeys(keys, options.alias, groups) - - // display 'Options:' table along with any custom tables: - Object.keys(groups).forEach((groupName) => { - if (!groups[groupName].length) return - - // if we've grouped the key 'f', but 'f' aliases 'foobar', - // normalizedKeys should contain only 'foobar'. - const normalizedKeys = groups[groupName].filter(filterHiddenOptions).map((key) => { - if (~aliasKeys.indexOf(key)) return key - for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) { - if (~(options.alias[aliasKey] || []).indexOf(key)) return aliasKey - } - return key - }) - - if (normalizedKeys.length < 1) return - - ui.div(__(groupName)) - - // actually generate the switches string --foo, -f, --bar. - const switches = normalizedKeys.reduce((acc, key) => { - acc[key] = [ key ].concat(options.alias[key] || []) - .map(sw => { - // for the special positional group don't - // add '--' or '-' prefix. - if (groupName === self.getPositionalGroupName()) return sw - else return (sw.length > 1 ? '--' : '-') + sw - }) - .join(', ') - - return acc - }, {}) - - normalizedKeys.forEach((key) => { - const kswitch = switches[key] - let desc = descriptions[key] || '' - let type = null - - if (~desc.lastIndexOf(deferY18nLookupPrefix)) desc = __(desc.substring(deferY18nLookupPrefix.length)) - - if (~options.boolean.indexOf(key)) type = `[${__('boolean')}]` - if (~options.count.indexOf(key)) type = `[${__('count')}]` - if (~options.string.indexOf(key)) type = `[${__('string')}]` - if (~options.normalize.indexOf(key)) type = `[${__('string')}]` - if (~options.array.indexOf(key)) type = `[${__('array')}]` - if (~options.number.indexOf(key)) type = `[${__('number')}]` - - const extra = [ - type, - (key in demandedOptions) ? `[${__('required')}]` : null, - options.choices && options.choices[key] ? `[${__('choices:')} ${ - self.stringifiedValues(options.choices[key])}]` : null, - defaultString(options.default[key], options.defaultDescription[key]) - ].filter(Boolean).join(' ') - - ui.span( - { text: kswitch, padding: [0, 2, 0, 2], width: maxWidth(switches, theWrap) + 4 }, - desc - ) - - if (extra) ui.div({ text: extra, padding: [0, 0, 0, 2], align: 'right' }) - else ui.div() - }) - - ui.div() - }) - - // describe some common use-cases for your application. - if (examples.length) { - ui.div(__('Examples:')) - - examples.forEach((example) => { - example[0] = example[0].replace(/\$0/g, base$0) - }) - - examples.forEach((example) => { - if (example[1] === '') { - ui.div( - { - text: example[0], - padding: [0, 2, 0, 2] - } - ) - } else { - ui.div( - { - text: example[0], - padding: [0, 2, 0, 2], - width: maxWidth(examples, theWrap) + 4 - }, { - text: example[1] - } - ) - } - }) - - ui.div() - } - - // the usage string. - if (epilog) { - const e = epilog.replace(/\$0/g, base$0) - ui.div(`${e}\n`) - } - - // Remove the trailing white spaces - return ui.toString().replace(/\s*$/, '') - } - - // return the maximum width of a string - // in the left-hand column of a table. - function maxWidth (table, theWrap, modifier) { - let width = 0 - - // table might be of the form [leftColumn], - // or {key: leftColumn} - if (!Array.isArray(table)) { - table = Object.keys(table).map(key => [table[key]]) - } - - table.forEach((v) => { - width = Math.max( - stringWidth(modifier ? `${modifier} ${v[0]}` : v[0]), - width - ) - }) - - // if we've enabled 'wrap' we should limit - // the max-width of the left-column. - if (theWrap) width = Math.min(width, parseInt(theWrap * 0.5, 10)) - - return width - } - - // make sure any options set for aliases, - // are copied to the keys being aliased. - function normalizeAliases () { - // handle old demanded API - const demandedOptions = yargs.getDemandedOptions() - const options = yargs.getOptions() - - ;(Object.keys(options.alias) || []).forEach((key) => { - options.alias[key].forEach((alias) => { - // copy descriptions. - if (descriptions[alias]) self.describe(key, descriptions[alias]) - // copy demanded. - if (alias in demandedOptions) yargs.demandOption(key, demandedOptions[alias]) - // type messages. - if (~options.boolean.indexOf(alias)) yargs.boolean(key) - if (~options.count.indexOf(alias)) yargs.count(key) - if (~options.string.indexOf(alias)) yargs.string(key) - if (~options.normalize.indexOf(alias)) yargs.normalize(key) - if (~options.array.indexOf(alias)) yargs.array(key) - if (~options.number.indexOf(alias)) yargs.number(key) - }) - }) - } - - // given a set of keys, place any keys that are - // ungrouped under the 'Options:' grouping. - function addUngroupedKeys (keys, aliases, groups) { - let groupedKeys = [] - let toCheck = null - Object.keys(groups).forEach((group) => { - groupedKeys = groupedKeys.concat(groups[group]) - }) - - keys.forEach((key) => { - toCheck = [key].concat(aliases[key]) - if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) { - groups[defaultGroup].push(key) - } - }) - return groupedKeys - } - - function filterHiddenOptions (key) { - return yargs.getOptions().hiddenOptions.indexOf(key) < 0 || yargs.parsed.argv[yargs.getOptions().showHiddenOpt] - } - - self.showHelp = (level) => { - const logger = yargs._getLoggerInstance() - if (!level) level = 'error' - const emit = typeof level === 'function' ? level : logger[level] - emit(self.help()) - } - - self.functionDescription = (fn) => { - const description = fn.name ? decamelize(fn.name, '-') : __('generated-value') - return ['(', description, ')'].join('') - } - - self.stringifiedValues = function stringifiedValues (values, separator) { - let string = '' - const sep = separator || ', ' - const array = [].concat(values) - - if (!values || !array.length) return string - - array.forEach((value) => { - if (string.length) string += sep - string += JSON.stringify(value) - }) - - return string - } - - // format the default-value-string displayed in - // the right-hand column. - function defaultString (value, defaultDescription) { - let string = `[${__('default:')} ` - - if (value === undefined && !defaultDescription) return null - - if (defaultDescription) { - string += defaultDescription - } else { - switch (typeof value) { - case 'string': - string += `"${value}"` - break - case 'object': - string += JSON.stringify(value) - break - default: - string += value - } - } - - return `${string}]` - } - - // guess the width of the console window, max-width 80. - function windowWidth () { - const maxWidth = 80 - if (typeof process === 'object' && process.stdout && process.stdout.columns) { - return Math.min(maxWidth, process.stdout.columns) - } else { - return maxWidth - } - } - - // logic for displaying application version. - let version = null - self.version = (ver) => { - version = ver - } - - self.showVersion = () => { - const logger = yargs._getLoggerInstance() - logger.log(version) - } - - self.reset = function reset (localLookup) { - // do not reset wrap here - // do not reset fails here - failMessage = null - failureOutput = false - usages = [] - usageDisabled = false - epilog = undefined - examples = [] - commands = [] - descriptions = objFilter(descriptions, (k, v) => !localLookup[k]) - return self - } - - let frozen - self.freeze = function freeze () { - frozen = {} - frozen.failMessage = failMessage - frozen.failureOutput = failureOutput - frozen.usages = usages - frozen.usageDisabled = usageDisabled - frozen.epilog = epilog - frozen.examples = examples - frozen.commands = commands - frozen.descriptions = descriptions - } - self.unfreeze = function unfreeze () { - failMessage = frozen.failMessage - failureOutput = frozen.failureOutput - usages = frozen.usages - usageDisabled = frozen.usageDisabled - epilog = frozen.epilog - examples = frozen.examples - commands = frozen.commands - descriptions = frozen.descriptions - frozen = undefined - } - - return self -} diff --git a/WebServer/node_modules/yargs/lib/validation.js b/WebServer/node_modules/yargs/lib/validation.js deleted file mode 100644 index e9bbb12bc..000000000 --- a/WebServer/node_modules/yargs/lib/validation.js +++ /dev/null @@ -1,341 +0,0 @@ -'use strict' -const argsert = require('./argsert') -const objFilter = require('./obj-filter') -const specialKeys = ['$0', '--', '_'] - -// validation-type-stuff, missing params, -// bad implications, custom checks. -module.exports = function validation (yargs, usage, y18n) { - const __ = y18n.__ - const __n = y18n.__n - const self = {} - - // validate appropriate # of non-option - // arguments were provided, i.e., '_'. - self.nonOptionCount = function nonOptionCount (argv) { - const demandedCommands = yargs.getDemandedCommands() - // don't count currently executing commands - const _s = argv._.length - yargs.getContext().commands.length - - if (demandedCommands._ && (_s < demandedCommands._.min || _s > demandedCommands._.max)) { - if (_s < demandedCommands._.min) { - if (demandedCommands._.minMsg !== undefined) { - usage.fail( - // replace $0 with observed, $1 with expected. - demandedCommands._.minMsg ? demandedCommands._.minMsg.replace(/\$0/g, _s).replace(/\$1/, demandedCommands._.min) : null - ) - } else { - usage.fail( - __('Not enough non-option arguments: got %s, need at least %s', _s, demandedCommands._.min) - ) - } - } else if (_s > demandedCommands._.max) { - if (demandedCommands._.maxMsg !== undefined) { - usage.fail( - // replace $0 with observed, $1 with expected. - demandedCommands._.maxMsg ? demandedCommands._.maxMsg.replace(/\$0/g, _s).replace(/\$1/, demandedCommands._.max) : null - ) - } else { - usage.fail( - __('Too many non-option arguments: got %s, maximum of %s', _s, demandedCommands._.max) - ) - } - } - } - } - - // validate the appropriate # of - // positional arguments were provided: - self.positionalCount = function positionalCount (required, observed) { - if (observed < required) { - usage.fail( - __('Not enough non-option arguments: got %s, need at least %s', observed, required) - ) - } - } - - // make sure all the required arguments are present. - self.requiredArguments = function requiredArguments (argv) { - const demandedOptions = yargs.getDemandedOptions() - let missing = null - - Object.keys(demandedOptions).forEach((key) => { - if (!argv.hasOwnProperty(key) || typeof argv[key] === 'undefined') { - missing = missing || {} - missing[key] = demandedOptions[key] - } - }) - - if (missing) { - const customMsgs = [] - Object.keys(missing).forEach((key) => { - const msg = missing[key] - if (msg && customMsgs.indexOf(msg) < 0) { - customMsgs.push(msg) - } - }) - - const customMsg = customMsgs.length ? `\n${customMsgs.join('\n')}` : '' - - usage.fail(__n( - 'Missing required argument: %s', - 'Missing required arguments: %s', - Object.keys(missing).length, - Object.keys(missing).join(', ') + customMsg - )) - } - } - - // check for unknown arguments (strict-mode). - self.unknownArguments = function unknownArguments (argv, aliases, positionalMap) { - const commandKeys = yargs.getCommandInstance().getCommands() - const unknown = [] - const currentContext = yargs.getContext() - - Object.keys(argv).forEach((key) => { - if (specialKeys.indexOf(key) === -1 && - !positionalMap.hasOwnProperty(key) && - !yargs._getParseContext().hasOwnProperty(key) && - !aliases.hasOwnProperty(key) - ) { - unknown.push(key) - } - }) - - if (commandKeys.length > 0) { - argv._.slice(currentContext.commands.length).forEach((key) => { - if (commandKeys.indexOf(key) === -1) { - unknown.push(key) - } - }) - } - - if (unknown.length > 0) { - usage.fail(__n( - 'Unknown argument: %s', - 'Unknown arguments: %s', - unknown.length, - unknown.join(', ') - )) - } - } - - // validate arguments limited to enumerated choices - self.limitedChoices = function limitedChoices (argv) { - const options = yargs.getOptions() - const invalid = {} - - if (!Object.keys(options.choices).length) return - - Object.keys(argv).forEach((key) => { - if (specialKeys.indexOf(key) === -1 && - options.choices.hasOwnProperty(key)) { - [].concat(argv[key]).forEach((value) => { - // TODO case-insensitive configurability - if (options.choices[key].indexOf(value) === -1 && - value !== undefined) { - invalid[key] = (invalid[key] || []).concat(value) - } - }) - } - }) - - const invalidKeys = Object.keys(invalid) - - if (!invalidKeys.length) return - - let msg = __('Invalid values:') - invalidKeys.forEach((key) => { - msg += `\n ${__( - 'Argument: %s, Given: %s, Choices: %s', - key, - usage.stringifiedValues(invalid[key]), - usage.stringifiedValues(options.choices[key]) - )}` - }) - usage.fail(msg) - } - - // custom checks, added using the `check` option on yargs. - let checks = [] - self.check = function check (f, global) { - checks.push({ - func: f, - global - }) - } - - self.customChecks = function customChecks (argv, aliases) { - for (let i = 0, f; (f = checks[i]) !== undefined; i++) { - const func = f.func - let result = null - try { - result = func(argv, aliases) - } catch (err) { - usage.fail(err.message ? err.message : err, err) - continue - } - - if (!result) { - usage.fail(__('Argument check failed: %s', func.toString())) - } else if (typeof result === 'string' || result instanceof Error) { - usage.fail(result.toString(), result) - } - } - } - - // check implications, argument foo implies => argument bar. - let implied = {} - self.implies = function implies (key, value) { - argsert(' [array|number|string]', [key, value], arguments.length) - - if (typeof key === 'object') { - Object.keys(key).forEach((k) => { - self.implies(k, key[k]) - }) - } else { - yargs.global(key) - if (!implied[key]) { - implied[key] = [] - } - if (Array.isArray(value)) { - value.forEach((i) => self.implies(key, i)) - } else { - implied[key].push(value) - } - } - } - self.getImplied = function getImplied () { - return implied - } - - self.implications = function implications (argv) { - const implyFail = [] - - Object.keys(implied).forEach((key) => { - const origKey = key - ;(implied[key] || []).forEach((value) => { - let num - let key = origKey - const origValue = value - - // convert string '1' to number 1 - num = Number(key) - key = isNaN(num) ? key : num - - if (typeof key === 'number') { - // check length of argv._ - key = argv._.length >= key - } else if (key.match(/^--no-.+/)) { - // check if key doesn't exist - key = key.match(/^--no-(.+)/)[1] - key = !argv[key] - } else { - // check if key exists - key = argv[key] - } - - num = Number(value) - value = isNaN(num) ? value : num - - if (typeof value === 'number') { - value = argv._.length >= value - } else if (value.match(/^--no-.+/)) { - value = value.match(/^--no-(.+)/)[1] - value = !argv[value] - } else { - value = argv[value] - } - if (key && !value) { - implyFail.push(` ${origKey} -> ${origValue}`) - } - }) - }) - - if (implyFail.length) { - let msg = `${__('Implications failed:')}\n` - - implyFail.forEach((value) => { - msg += (value) - }) - - usage.fail(msg) - } - } - - let conflicting = {} - self.conflicts = function conflicts (key, value) { - argsert(' [array|string]', [key, value], arguments.length) - - if (typeof key === 'object') { - Object.keys(key).forEach((k) => { - self.conflicts(k, key[k]) - }) - } else { - yargs.global(key) - if (!conflicting[key]) { - conflicting[key] = [] - } - if (Array.isArray(value)) { - value.forEach((i) => self.conflicts(key, i)) - } else { - conflicting[key].push(value) - } - } - } - self.getConflicting = () => conflicting - - self.conflicting = function conflictingFn (argv) { - Object.keys(argv).forEach((key) => { - if (conflicting[key]) { - conflicting[key].forEach((value) => { - // we default keys to 'undefined' that have been configured, we should not - // apply conflicting check unless they are a value other than 'undefined'. - if (value && argv[key] !== undefined && argv[value] !== undefined) { - usage.fail(__('Arguments %s and %s are mutually exclusive', key, value)) - } - }) - } - }) - } - - self.recommendCommands = function recommendCommands (cmd, potentialCommands) { - const distance = require('./levenshtein') - const threshold = 3 // if it takes more than three edits, let's move on. - potentialCommands = potentialCommands.sort((a, b) => b.length - a.length) - - let recommended = null - let bestDistance = Infinity - for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) { - const d = distance(cmd, candidate) - if (d <= threshold && d < bestDistance) { - bestDistance = d - recommended = candidate - } - } - if (recommended) usage.fail(__('Did you mean %s?', recommended)) - } - - self.reset = function reset (localLookup) { - implied = objFilter(implied, (k, v) => !localLookup[k]) - conflicting = objFilter(conflicting, (k, v) => !localLookup[k]) - checks = checks.filter(c => c.global) - return self - } - - let frozen - self.freeze = function freeze () { - frozen = {} - frozen.implied = implied - frozen.checks = checks - frozen.conflicting = conflicting - } - self.unfreeze = function unfreeze () { - implied = frozen.implied - checks = frozen.checks - conflicting = frozen.conflicting - frozen = undefined - } - - return self -} diff --git a/WebServer/node_modules/yargs/lib/yerror.js b/WebServer/node_modules/yargs/lib/yerror.js deleted file mode 100644 index 53375a0f7..000000000 --- a/WebServer/node_modules/yargs/lib/yerror.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' -function YError (msg) { - this.name = 'YError' - this.message = msg || 'yargs error' - Error.captureStackTrace(this, YError) -} - -YError.prototype = Object.create(Error.prototype) -YError.prototype.constructor = YError - -module.exports = YError diff --git a/WebServer/node_modules/yargs/locales/be.json b/WebServer/node_modules/yargs/locales/be.json deleted file mode 100644 index 141ebe1e1..000000000 --- a/WebServer/node_modules/yargs/locales/be.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Каманды:", - "Options:": "Опцыі:", - "Examples:": "Прыклады:", - "boolean": "булевы тып", - "count": "падлік", - "string": "радковы тып", - "number": "лік", - "array": "масіў", - "required": "неабходна", - "default:": "па змаўчанні:", - "choices:": "магчымасці:", - "aliases:": "аліасы:", - "generated-value": "згенераванае значэнне", - "Not enough non-option arguments: got %s, need at least %s": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s", - "Too many non-option arguments: got %s, maximum of %s": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s", - "Missing argument value: %s": { - "one": "Не хапае значэння аргументу: %s", - "other": "Не хапае значэнняў аргументаў: %s" - }, - "Missing required argument: %s": { - "one": "Не хапае неабходнага аргументу: %s", - "other": "Не хапае неабходных аргументаў: %s" - }, - "Unknown argument: %s": { - "one": "Невядомы аргумент: %s", - "other": "Невядомыя аргументы: %s" - }, - "Invalid values:": "Несапраўдныя значэння:", - "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Дадзенае значэнне: %s, Магчымасці: %s", - "Argument check failed: %s": "Праверка аргументаў не ўдалася: %s", - "Implications failed:": "Дадзены аргумент патрабуе наступны дадатковы аргумент:", - "Not enough arguments following: %s": "Недастаткова наступных аргументаў: %s", - "Invalid JSON config file: %s": "Несапраўдны файл канфігурацыі JSON: %s", - "Path to JSON config file": "Шлях да файла канфігурацыі JSON", - "Show help": "Паказаць дапамогу", - "Show version number": "Паказаць нумар версіі", - "Did you mean %s?": "Вы мелі на ўвазе %s?" -} diff --git a/WebServer/node_modules/yargs/locales/de.json b/WebServer/node_modules/yargs/locales/de.json deleted file mode 100644 index d805710b0..000000000 --- a/WebServer/node_modules/yargs/locales/de.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Kommandos:", - "Options:": "Optionen:", - "Examples:": "Beispiele:", - "boolean": "boolean", - "count": "Zähler", - "string": "string", - "number": "Zahl", - "array": "array", - "required": "erforderlich", - "default:": "Standard:", - "choices:": "Möglichkeiten:", - "aliases:": "Aliase:", - "generated-value": "Generierter-Wert", - "Not enough non-option arguments: got %s, need at least %s": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt", - "Too many non-option arguments: got %s, maximum of %s": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt", - "Missing argument value: %s": { - "one": "Fehlender Argumentwert: %s", - "other": "Fehlende Argumentwerte: %s" - }, - "Missing required argument: %s": { - "one": "Fehlendes Argument: %s", - "other": "Fehlende Argumente: %s" - }, - "Unknown argument: %s": { - "one": "Unbekanntes Argument: %s", - "other": "Unbekannte Argumente: %s" - }, - "Invalid values:": "Unzulässige Werte:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeben: %s, Möglichkeiten: %s", - "Argument check failed: %s": "Argumente-Check fehlgeschlagen: %s", - "Implications failed:": "Implikationen fehlgeschlagen:", - "Not enough arguments following: %s": "Nicht genügend Argumente nach: %s", - "Invalid JSON config file: %s": "Fehlerhafte JSON-Config Datei: %s", - "Path to JSON config file": "Pfad zur JSON-Config Datei", - "Show help": "Hilfe anzeigen", - "Show version number": "Version anzeigen", - "Did you mean %s?": "Meintest du %s?" -} diff --git a/WebServer/node_modules/yargs/locales/en.json b/WebServer/node_modules/yargs/locales/en.json deleted file mode 100644 index fc65c2a0d..000000000 --- a/WebServer/node_modules/yargs/locales/en.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "Commands:", - "Options:": "Options:", - "Examples:": "Examples:", - "boolean": "boolean", - "count": "count", - "string": "string", - "number": "number", - "array": "array", - "required": "required", - "default:": "default:", - "choices:": "choices:", - "aliases:": "aliases:", - "generated-value": "generated-value", - "Not enough non-option arguments: got %s, need at least %s": "Not enough non-option arguments: got %s, need at least %s", - "Too many non-option arguments: got %s, maximum of %s": "Too many non-option arguments: got %s, maximum of %s", - "Missing argument value: %s": { - "one": "Missing argument value: %s", - "other": "Missing argument values: %s" - }, - "Missing required argument: %s": { - "one": "Missing required argument: %s", - "other": "Missing required arguments: %s" - }, - "Unknown argument: %s": { - "one": "Unknown argument: %s", - "other": "Unknown arguments: %s" - }, - "Invalid values:": "Invalid values:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Given: %s, Choices: %s", - "Argument check failed: %s": "Argument check failed: %s", - "Implications failed:": "Implications failed:", - "Not enough arguments following: %s": "Not enough arguments following: %s", - "Invalid JSON config file: %s": "Invalid JSON config file: %s", - "Path to JSON config file": "Path to JSON config file", - "Show help": "Show help", - "Show version number": "Show version number", - "Did you mean %s?": "Did you mean %s?", - "Arguments %s and %s are mutually exclusive" : "Arguments %s and %s are mutually exclusive", - "Positionals:": "Positionals:", - "command": "command" -} diff --git a/WebServer/node_modules/yargs/locales/es.json b/WebServer/node_modules/yargs/locales/es.json deleted file mode 100644 index d7c8af9f8..000000000 --- a/WebServer/node_modules/yargs/locales/es.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Comandos:", - "Options:": "Opciones:", - "Examples:": "Ejemplos:", - "boolean": "booleano", - "count": "cuenta", - "string": "cadena de caracteres", - "number": "número", - "array": "tabla", - "required": "requerido", - "default:": "defecto:", - "choices:": "selección:", - "aliases:": "alias:", - "generated-value": "valor-generado", - "Not enough non-option arguments: got %s, need at least %s": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s", - "Too many non-option arguments: got %s, maximum of %s": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s", - "Missing argument value: %s": { - "one": "Falta argumento: %s", - "other": "Faltan argumentos: %s" - }, - "Missing required argument: %s": { - "one": "Falta argumento requerido: %s", - "other": "Faltan argumentos requeridos: %s" - }, - "Unknown argument: %s": { - "one": "Argumento desconocido: %s", - "other": "Argumentos desconocidos: %s" - }, - "Invalid values:": "Valores inválidos:", - "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Recibido: %s, Seleccionados: %s", - "Argument check failed: %s": "Verificación de argumento ha fallado: %s", - "Implications failed:": "Implicaciones fallidas:", - "Not enough arguments following: %s": "No hay suficientes argumentos después de: %s", - "Invalid JSON config file: %s": "Archivo de configuración JSON inválido: %s", - "Path to JSON config file": "Ruta al archivo de configuración JSON", - "Show help": "Muestra ayuda", - "Show version number": "Muestra número de versión", - "Did you mean %s?": "Quisiste decir %s?" -} diff --git a/WebServer/node_modules/yargs/locales/fr.json b/WebServer/node_modules/yargs/locales/fr.json deleted file mode 100644 index 481f47e37..000000000 --- a/WebServer/node_modules/yargs/locales/fr.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "Commands:": "Commandes:", - "Options:": "Options:", - "Examples:": "Exemples:", - "boolean": "booléen", - "count": "comptage", - "string": "chaine de caractère", - "number": "nombre", - "array": "tableau", - "required": "requis", - "default:": "défaut:", - "choices:": "choix:", - "generated-value": "valeur générée", - "Not enough non-option arguments: got %s, need at least %s": "Pas assez d'arguments non-option: reçu %s, besoin d'au moins %s", - "Too many non-option arguments: got %s, maximum of %s": "Trop d'arguments non-option: reçu %s, maximum %s", - "Missing argument value: %s": { - "one": "Argument manquant: %s", - "other": "Arguments manquants: %s" - }, - "Missing required argument: %s": { - "one": "Argument requis manquant: %s", - "other": "Arguments requis manquants: %s" - }, - "Unknown argument: %s": { - "one": "Argument inconnu: %s", - "other": "Arguments inconnus: %s" - }, - "Invalid values:": "Valeurs invalides:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Donné: %s, Choix: %s", - "Argument check failed: %s": "Echec de la vérification de l'argument: %s", - "Implications failed:": "Implications échouées:", - "Not enough arguments following: %s": "Pas assez d'arguments suivant: %s", - "Invalid JSON config file: %s": "Fichier de configuration JSON invalide: %s", - "Path to JSON config file": "Chemin du fichier de configuration JSON", - "Show help": "Affiche de l'aide", - "Show version number": "Affiche le numéro de version" -} diff --git a/WebServer/node_modules/yargs/locales/hi.json b/WebServer/node_modules/yargs/locales/hi.json deleted file mode 100644 index 2cd677acb..000000000 --- a/WebServer/node_modules/yargs/locales/hi.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "आदेश:", - "Options:": "विकल्प:", - "Examples:": "उदाहरण:", - "boolean": "सत्यता", - "count": "संख्या", - "string": "वर्णों का तार ", - "number": "अंक", - "array": "सरणी", - "required": "आवश्यक", - "default:": "डिफॉल्ट:", - "choices:": "विकल्प:", - "aliases:": "उपनाम:", - "generated-value": "उत्पन्न-मूल्य", - "Not enough non-option arguments: got %s, need at least %s": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है", - "Too many non-option arguments: got %s, maximum of %s": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य", - "Missing argument value: %s": { - "one": "कुछ तर्को के मूल्य गुम हैं: %s", - "other": "कुछ तर्को के मूल्य गुम हैं: %s" - }, - "Missing required argument: %s": { - "one": "आवश्यक तर्क गुम हैं: %s", - "other": "आवश्यक तर्क गुम हैं: %s" - }, - "Unknown argument: %s": { - "one": "अज्ञात तर्क प्राप्त: %s", - "other": "अज्ञात तर्क प्राप्त: %s" - }, - "Invalid values:": "अमान्य मूल्य:", - "Argument: %s, Given: %s, Choices: %s": "तर्क: %s, प्राप्त: %s, विकल्प: %s", - "Argument check failed: %s": "तर्क जांच विफल: %s", - "Implications failed:": "दिए गए तर्क के लिए अतिरिक्त तर्क की अपेक्षा है:", - "Not enough arguments following: %s": "निम्नलिखित के बाद पर्याप्त तर्क नहीं प्राप्त: %s", - "Invalid JSON config file: %s": "अमान्य JSON config फाइल: %s", - "Path to JSON config file": "JSON config फाइल का पथ", - "Show help": "सहायता दिखाएँ", - "Show version number": "Version संख्या दिखाएँ", - "Did you mean %s?": "क्या आपका मतलब है %s?", - "Arguments %s and %s are mutually exclusive" : "तर्क %s और %s परस्पर अनन्य हैं", - "Positionals:": "स्थानीय:", - "command": "आदेश" -} diff --git a/WebServer/node_modules/yargs/locales/hu.json b/WebServer/node_modules/yargs/locales/hu.json deleted file mode 100644 index 7b7d16606..000000000 --- a/WebServer/node_modules/yargs/locales/hu.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Parancsok:", - "Options:": "Opciók:", - "Examples:": "Példák:", - "boolean": "boolean", - "count": "számláló", - "string": "szöveg", - "number": "szám", - "array": "tömb", - "required": "kötelező", - "default:": "alapértelmezett:", - "choices:": "lehetőségek:", - "aliases:": "aliaszok:", - "generated-value": "generált-érték", - "Not enough non-option arguments: got %s, need at least %s": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell", - "Too many non-option arguments: got %s, maximum of %s": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet", - "Missing argument value: %s": { - "one": "Hiányzó argumentum érték: %s", - "other": "Hiányzó argumentum értékek: %s" - }, - "Missing required argument: %s": { - "one": "Hiányzó kötelező argumentum: %s", - "other": "Hiányzó kötelező argumentumok: %s" - }, - "Unknown argument: %s": { - "one": "Ismeretlen argumentum: %s", - "other": "Ismeretlen argumentumok: %s" - }, - "Invalid values:": "Érvénytelen érték:", - "Argument: %s, Given: %s, Choices: %s": "Argumentum: %s, Megadott: %s, Lehetőségek: %s", - "Argument check failed: %s": "Argumentum ellenőrzés sikertelen: %s", - "Implications failed:": "Implikációk sikertelenek:", - "Not enough arguments following: %s": "Nem elég argumentum követi: %s", - "Invalid JSON config file: %s": "Érvénytelen JSON konfigurációs file: %s", - "Path to JSON config file": "JSON konfigurációs file helye", - "Show help": "Súgo megjelenítése", - "Show version number": "Verziószám megjelenítése", - "Did you mean %s?": "Erre gondoltál %s?" -} diff --git a/WebServer/node_modules/yargs/locales/id.json b/WebServer/node_modules/yargs/locales/id.json deleted file mode 100644 index 87e441cd8..000000000 --- a/WebServer/node_modules/yargs/locales/id.json +++ /dev/null @@ -1,43 +0,0 @@ - -{ - "Commands:": "Perintah:", - "Options:": "Pilihan:", - "Examples:": "Contoh:", - "boolean": "boolean", - "count": "jumlah", - "number": "nomor", - "string": "string", - "array": "larik", - "required": "diperlukan", - "default:": "bawaan:", - "aliases:": "istilah lain:", - "choices:": "pilihan:", - "generated-value": "nilai-yang-dihasilkan", - "Not enough non-option arguments: got %s, need at least %s": "Argumen wajib kurang: hanya %s, minimal %s", - "Too many non-option arguments: got %s, maximum of %s": "Terlalu banyak argumen wajib: ada %s, maksimal %s", - "Missing argument value: %s": { - "one": "Kurang argumen: %s", - "other": "Kurang argumen: %s" - }, - "Missing required argument: %s": { - "one": "Kurang argumen wajib: %s", - "other": "Kurang argumen wajib: %s" - }, - "Unknown argument: %s": { - "one": "Argumen tak diketahui: %s", - "other": "Argumen tak diketahui: %s" - }, - "Invalid values:": "Nilai-nilai tidak valid:", - "Argument: %s, Given: %s, Choices: %s": "Argumen: %s, Diberikan: %s, Pilihan: %s", - "Argument check failed: %s": "Pemeriksaan argument gagal: %s", - "Implications failed:": "Implikasi gagal:", - "Not enough arguments following: %s": "Kurang argumen untuk: %s", - "Invalid JSON config file: %s": "Berkas konfigurasi JSON tidak valid: %s", - "Path to JSON config file": "Alamat berkas konfigurasi JSON", - "Show help": "Lihat bantuan", - "Show version number": "Lihat nomor versi", - "Did you mean %s?": "Maksud Anda: %s?", - "Arguments %s and %s are mutually exclusive" : "Argumen %s dan %s saling eksklusif", - "Positionals:": "Posisional-posisional:", - "command": "perintah" -} diff --git a/WebServer/node_modules/yargs/locales/it.json b/WebServer/node_modules/yargs/locales/it.json deleted file mode 100644 index f9eb3756e..000000000 --- a/WebServer/node_modules/yargs/locales/it.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Comandi:", - "Options:": "Opzioni:", - "Examples:": "Esempi:", - "boolean": "booleano", - "count": "contatore", - "string": "stringa", - "number": "numero", - "array": "vettore", - "required": "richiesto", - "default:": "predefinito:", - "choices:": "scelte:", - "aliases:": "alias:", - "generated-value": "valore generato", - "Not enough non-option arguments: got %s, need at least %s": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s", - "Too many non-option arguments: got %s, maximum of %s": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s", - "Missing argument value: %s": { - "one": "Argomento mancante: %s", - "other": "Argomenti mancanti: %s" - }, - "Missing required argument: %s": { - "one": "Argomento richiesto mancante: %s", - "other": "Argomenti richiesti mancanti: %s" - }, - "Unknown argument: %s": { - "one": "Argomento sconosciuto: %s", - "other": "Argomenti sconosciuti: %s" - }, - "Invalid values:": "Valori non validi:", - "Argument: %s, Given: %s, Choices: %s": "Argomento: %s, Richiesto: %s, Scelte: %s", - "Argument check failed: %s": "Controllo dell'argomento fallito: %s", - "Implications failed:": "Argomenti impliciti non soddisfatti:", - "Not enough arguments following: %s": "Argomenti insufficienti dopo: %s", - "Invalid JSON config file: %s": "File di configurazione JSON non valido: %s", - "Path to JSON config file": "Percorso del file di configurazione JSON", - "Show help": "Mostra la schermata di aiuto", - "Show version number": "Mostra il numero di versione", - "Did you mean %s?": "Intendi forse %s?" -} diff --git a/WebServer/node_modules/yargs/locales/ja.json b/WebServer/node_modules/yargs/locales/ja.json deleted file mode 100644 index 64ee6d3fb..000000000 --- a/WebServer/node_modules/yargs/locales/ja.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "コマンド:", - "Options:": "オプション:", - "Examples:": "例:", - "boolean": "真偽", - "count": "カウント", - "string": "文字列", - "number": "数値", - "array": "配列", - "required": "必須", - "default:": "デフォルト:", - "choices:": "選択してください:", - "aliases:": "エイリアス:", - "generated-value": "生成された値", - "Not enough non-option arguments: got %s, need at least %s": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:", - "Too many non-option arguments: got %s, maximum of %s": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:", - "Missing argument value: %s": { - "one": "引数が見つかりません: %s", - "other": "引数が見つかりません: %s" - }, - "Missing required argument: %s": { - "one": "必須の引数が見つかりません: %s", - "other": "必須の引数が見つかりません: %s" - }, - "Unknown argument: %s": { - "one": "未知の引数です: %s", - "other": "未知の引数です: %s" - }, - "Invalid values:": "不正な値です:", - "Argument: %s, Given: %s, Choices: %s": "引数は %s です。指定できるのは %s つです。選択してください: %s", - "Argument check failed: %s": "引数のチェックに失敗しました: %s", - "Implications failed:": "オプションの組み合わせで不正が生じました:", - "Not enough arguments following: %s": "次の引数が不足しています。: %s", - "Invalid JSON config file: %s": "JSONの設定ファイルが不正です: %s", - "Path to JSON config file": "JSONの設定ファイルまでのpath", - "Show help": "ヘルプを表示", - "Show version number": "バージョンを表示", - "Did you mean %s?": "もしかして %s?", - "Arguments %s and %s are mutually exclusive" : "引数 %s と %s は同時に指定できません", - "Positionals:": "位置:", - "command": "コマンド" -} diff --git a/WebServer/node_modules/yargs/locales/ko.json b/WebServer/node_modules/yargs/locales/ko.json deleted file mode 100644 index 0eaeab2f8..000000000 --- a/WebServer/node_modules/yargs/locales/ko.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "명령:", - "Options:": "옵션:", - "Examples:": "예시:", - "boolean": "여부", - "count": "개수", - "string": "문자열", - "number": "숫자", - "array": "배열", - "required": "필수", - "default:": "기본:", - "choices:": "선택:", - "aliases:": "별칭:", - "generated-value": "생성된 값", - "Not enough non-option arguments: got %s, need at least %s": "옵션이 아닌 인자가 충분치 않습니다: %s개를 받았지만, 적어도 %s개는 필요합니다", - "Too many non-option arguments: got %s, maximum of %s": "옵션이 아닌 인자가 너무 많습니다: %s개를 받았지만, %s개 이하여야 합니다", - "Missing argument value: %s": { - "one": "인자값을 받지 못했습니다: %s", - "other": "인자값들을 받지 못했습니다: %s" - }, - "Missing required argument: %s": { - "one": "필수 인자를 받지 못했습니다: %s", - "other": "필수 인자들을 받지 못했습니다: %s" - }, - "Unknown argument: %s": { - "one": "알 수 없는 인자입니다: %s", - "other": "알 수 없는 인자들입니다: %s" - }, - "Invalid values:": "잘못된 값입니다:", - "Argument: %s, Given: %s, Choices: %s": "인자: %s, 입력받은 값: %s, 선택지: %s", - "Argument check failed: %s": "유효하지 않은 인자입니다: %s", - "Implications failed:": "옵션의 조합이 잘못되었습니다:", - "Not enough arguments following: %s": "인자가 충분하게 주어지지 않았습니다: %s", - "Invalid JSON config file: %s": "유효하지 않은 JSON 설정파일입니다: %s", - "Path to JSON config file": "JSON 설정파일 경로", - "Show help": "도움말을 보여줍니다", - "Show version number": "버전 넘버를 보여줍니다", - "Did you mean %s?": "찾고계신게 %s입니까?", - "Arguments %s and %s are mutually exclusive" : "%s와 %s 인자는 같이 사용될 수 없습니다", - "Positionals:": "위치:", - "command": "명령" -} diff --git a/WebServer/node_modules/yargs/locales/nb.json b/WebServer/node_modules/yargs/locales/nb.json deleted file mode 100644 index 55be1fbed..000000000 --- a/WebServer/node_modules/yargs/locales/nb.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "Commands:": "Kommandoer:", - "Options:": "Alternativer:", - "Examples:": "Eksempler:", - "boolean": "boolsk", - "count": "antall", - "string": "streng", - "number": "nummer", - "array": "matrise", - "required": "obligatorisk", - "default:": "standard:", - "choices:": "valg:", - "generated-value": "generert-verdi", - "Not enough non-option arguments: got %s, need at least %s": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s", - "Too many non-option arguments: got %s, maximum of %s": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s", - "Missing argument value: %s": { - "one": "Mangler argument verdi: %s", - "other": "Mangler argument verdier: %s" - }, - "Missing required argument: %s": { - "one": "Mangler obligatorisk argument: %s", - "other": "Mangler obligatoriske argumenter: %s" - }, - "Unknown argument: %s": { - "one": "Ukjent argument: %s", - "other": "Ukjente argumenter: %s" - }, - "Invalid values:": "Ugyldige verdier:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gitt: %s, Valg: %s", - "Argument check failed: %s": "Argumentsjekk mislyktes: %s", - "Implications failed:": "Konsekvensene mislyktes:", - "Not enough arguments following: %s": "Ikke nok følgende argumenter: %s", - "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s", - "Path to JSON config file": "Bane til JSON konfigurasjonsfil", - "Show help": "Vis hjelp", - "Show version number": "Vis versjonsnummer" -} diff --git a/WebServer/node_modules/yargs/locales/nl.json b/WebServer/node_modules/yargs/locales/nl.json deleted file mode 100644 index 1d144724e..000000000 --- a/WebServer/node_modules/yargs/locales/nl.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "Opdrachten:", - "Options:": "Opties:", - "Examples:": "Voorbeelden:", - "boolean": "boolean", - "count": "aantal", - "string": "text", - "number": "nummer", - "array": "lijst", - "required": "verplicht", - "default:": "standaard:", - "choices:": "keuzes:", - "aliases:": "aliassen:", - "generated-value": "gegenereerde waarde", - "Not enough non-option arguments: got %s, need at least %s": "Niet genoeg non-optie argumenten. Gekregen: %s, minstens nodig: %s", - "Too many non-option arguments: got %s, maximum of %s": "Te veel non-optie argumenten. Gekregen: %s, maximum: %s", - "Missing argument value: %s": { - "one": "Missing argument value: %s", - "other": "Missing argument values: %s" - }, - "Missing required argument: %s": { - "one": "Missend verplichte argument: %s", - "other": "Missende verplichte argumenten: %s" - }, - "Unknown argument: %s": { - "one": "Onbekend argument: %s", - "other": "Onbekende argumenten: %s" - }, - "Invalid values:": "Ongeldige waardes:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeven: %s, Keuzes: %s", - "Argument check failed: %s": "Argument check mislukt: %s", - "Implications failed:": "Implicaties mislukt:", - "Not enough arguments following: %s": "Niet genoeg argumenten na: %s", - "Invalid JSON config file: %s": "Ongeldig JSON configuratiebestand: %s", - "Path to JSON config file": "Pad naar JSON configuratiebestand", - "Show help": "Toon help", - "Show version number": "Toon versie nummer", - "Did you mean %s?": "Bedoelde u misschien %s?", - "Arguments %s and %s are mutually exclusive": "Argumenten %s en %s zijn onderling uitsluitend", - "Positionals:": "Positie-afhankelijke argumenten", - "command": "commando" -} diff --git a/WebServer/node_modules/yargs/locales/nn.json b/WebServer/node_modules/yargs/locales/nn.json deleted file mode 100644 index 5a3c9514d..000000000 --- a/WebServer/node_modules/yargs/locales/nn.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Kommandoar:", - "Options:": "Alternativ:", - "Examples:": "Døme:", - "boolean": "boolsk", - "count": "mengd", - "string": "streng", - "number": "nummer", - "array": "matrise", - "required": "obligatorisk", - "default:": "standard:", - "choices:": "val:", - "generated-value": "generert-verdi", - "Not enough non-option arguments: got %s, need at least %s": - "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s", - "Too many non-option arguments: got %s, maximum of %s": - "For mange ikkje-alternativ argument: fekk %s, maksimum %s", - "Missing argument value: %s": { - "one": "Manglar argumentverdi: %s", - "other": "Manglar argumentverdiar: %s" - }, - "Missing required argument: %s": { - "one": "Manglar obligatorisk argument: %s", - "other": "Manglar obligatoriske argument: %s" - }, - "Unknown argument: %s": { - "one": "Ukjent argument: %s", - "other": "Ukjende argument: %s" - }, - "Invalid values:": "Ugyldige verdiar:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gjeve: %s, Val: %s", - "Argument check failed: %s": "Argumentsjekk mislukkast: %s", - "Implications failed:": "Konsekvensane mislukkast:", - "Not enough arguments following: %s": "Ikkje nok fylgjande argument: %s", - "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s", - "Path to JSON config file": "Bane til JSON konfigurasjonsfil", - "Show help": "Vis hjelp", - "Show version number": "Vis versjonsnummer" -} diff --git a/WebServer/node_modules/yargs/locales/pirate.json b/WebServer/node_modules/yargs/locales/pirate.json deleted file mode 100644 index dcb5cb753..000000000 --- a/WebServer/node_modules/yargs/locales/pirate.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "Commands:": "Choose yer command:", - "Options:": "Options for me hearties!", - "Examples:": "Ex. marks the spot:", - "required": "requi-yar-ed", - "Missing required argument: %s": { - "one": "Ye be havin' to set the followin' argument land lubber: %s", - "other": "Ye be havin' to set the followin' arguments land lubber: %s" - }, - "Show help": "Parlay this here code of conduct", - "Show version number": "'Tis the version ye be askin' fer", - "Arguments %s and %s are mutually exclusive" : "Yon scurvy dogs %s and %s be as bad as rum and a prudish wench" -} diff --git a/WebServer/node_modules/yargs/locales/pl.json b/WebServer/node_modules/yargs/locales/pl.json deleted file mode 100644 index 6926a4548..000000000 --- a/WebServer/node_modules/yargs/locales/pl.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "Polecenia:", - "Options:": "Opcje:", - "Examples:": "Przykłady:", - "boolean": "boolean", - "count": "ilość", - "string": "ciąg znaków", - "number": "liczba", - "array": "tablica", - "required": "wymagany", - "default:": "domyślny:", - "choices:": "dostępne:", - "aliases:": "aliasy:", - "generated-value": "wygenerowana-wartość", - "Not enough non-option arguments: got %s, need at least %s": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s", - "Too many non-option arguments: got %s, maximum of %s": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s", - "Missing argument value: %s": { - "one": "Brak wartości dla argumentu: %s", - "other": "Brak wartości dla argumentów: %s" - }, - "Missing required argument: %s": { - "one": "Brak wymaganego argumentu: %s", - "other": "Brak wymaganych argumentów: %s" - }, - "Unknown argument: %s": { - "one": "Nieznany argument: %s", - "other": "Nieznane argumenty: %s" - }, - "Invalid values:": "Nieprawidłowe wartości:", - "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Otrzymano: %s, Dostępne: %s", - "Argument check failed: %s": "Weryfikacja argumentów nie powiodła się: %s", - "Implications failed:": "Założenia nie zostały spełnione:", - "Not enough arguments following: %s": "Niewystarczająca ilość argumentów następujących po: %s", - "Invalid JSON config file: %s": "Nieprawidłowy plik konfiguracyjny JSON: %s", - "Path to JSON config file": "Ścieżka do pliku konfiguracyjnego JSON", - "Show help": "Pokaż pomoc", - "Show version number": "Pokaż numer wersji", - "Did you mean %s?": "Czy chodziło Ci o %s?", - "Arguments %s and %s are mutually exclusive": "Argumenty %s i %s wzajemnie się wykluczają", - "Positionals:": "Pozycyjne:", - "command": "polecenie" -} diff --git a/WebServer/node_modules/yargs/locales/pt.json b/WebServer/node_modules/yargs/locales/pt.json deleted file mode 100644 index 75c3921c8..000000000 --- a/WebServer/node_modules/yargs/locales/pt.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "Commands:": "Comandos:", - "Options:": "Opções:", - "Examples:": "Exemplos:", - "boolean": "boolean", - "count": "contagem", - "string": "cadeia de caracteres", - "number": "número", - "array": "arranjo", - "required": "requerido", - "default:": "padrão:", - "choices:": "escolhas:", - "generated-value": "valor-gerado", - "Not enough non-option arguments: got %s, need at least %s": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s", - "Too many non-option arguments: got %s, maximum of %s": "Excesso de argumentos não opcionais: recebido %s, máximo de %s", - "Missing argument value: %s": { - "one": "Falta valor de argumento: %s", - "other": "Falta valores de argumento: %s" - }, - "Missing required argument: %s": { - "one": "Falta argumento obrigatório: %s", - "other": "Faltando argumentos obrigatórios: %s" - }, - "Unknown argument: %s": { - "one": "Argumento desconhecido: %s", - "other": "Argumentos desconhecidos: %s" - }, - "Invalid values:": "Valores inválidos:", - "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Escolhas: %s", - "Argument check failed: %s": "Verificação de argumento falhou: %s", - "Implications failed:": "Implicações falharam:", - "Not enough arguments following: %s": "Insuficientes argumentos a seguir: %s", - "Invalid JSON config file: %s": "Arquivo de configuração em JSON esta inválido: %s", - "Path to JSON config file": "Caminho para o arquivo de configuração em JSON", - "Show help": "Mostra ajuda", - "Show version number": "Mostra número de versão", - "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos" -} diff --git a/WebServer/node_modules/yargs/locales/pt_BR.json b/WebServer/node_modules/yargs/locales/pt_BR.json deleted file mode 100644 index 904cb66eb..000000000 --- a/WebServer/node_modules/yargs/locales/pt_BR.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Commands:": "Comandos:", - "Options:": "Opções:", - "Examples:": "Exemplos:", - "boolean": "booleano", - "count": "contagem", - "string": "string", - "number": "número", - "array": "array", - "required": "obrigatório", - "default:": "padrão:", - "choices:": "opções:", - "aliases:": "sinônimos:", - "generated-value": "valor-gerado", - "Not enough non-option arguments: got %s, need at least %s": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s", - "Too many non-option arguments: got %s, maximum of %s": "Excesso de argumentos: recebido %s, máximo de %s", - "Missing argument value: %s": { - "one": "Falta valor de argumento: %s", - "other": "Falta valores de argumento: %s" - }, - "Missing required argument: %s": { - "one": "Falta argumento obrigatório: %s", - "other": "Faltando argumentos obrigatórios: %s" - }, - "Unknown argument: %s": { - "one": "Argumento desconhecido: %s", - "other": "Argumentos desconhecidos: %s" - }, - "Invalid values:": "Valores inválidos:", - "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Opções: %s", - "Argument check failed: %s": "Verificação de argumento falhou: %s", - "Implications failed:": "Implicações falharam:", - "Not enough arguments following: %s": "Argumentos insuficientes a seguir: %s", - "Invalid JSON config file: %s": "Arquivo JSON de configuração inválido: %s", - "Path to JSON config file": "Caminho para o arquivo JSON de configuração", - "Show help": "Exibe ajuda", - "Show version number": "Exibe a versão", - "Did you mean %s?": "Você quis dizer %s?", - "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos", - "Positionals:": "Posicionais:", - "command": "comando" -} diff --git a/WebServer/node_modules/yargs/locales/ru.json b/WebServer/node_modules/yargs/locales/ru.json deleted file mode 100644 index cb7b88b49..000000000 --- a/WebServer/node_modules/yargs/locales/ru.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "Команды:", - "Options:": "Опции:", - "Examples:": "Примеры:", - "boolean": "булевый тип", - "count": "подсчет", - "string": "строковой тип", - "number": "число", - "array": "массив", - "required": "необходимо", - "default:": "по умолчанию:", - "choices:": "возможности:", - "aliases:": "алиасы:", - "generated-value": "генерированное значение", - "Not enough non-option arguments: got %s, need at least %s": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s", - "Too many non-option arguments: got %s, maximum of %s": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s", - "Missing argument value: %s": { - "one": "Не хватает значения аргумента: %s", - "other": "Не хватает значений аргументов: %s" - }, - "Missing required argument: %s": { - "one": "Не хватает необходимого аргумента: %s", - "other": "Не хватает необходимых аргументов: %s" - }, - "Unknown argument: %s": { - "one": "Неизвестный аргумент: %s", - "other": "Неизвестные аргументы: %s" - }, - "Invalid values:": "Недействительные значения:", - "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Данное значение: %s, Возможности: %s", - "Argument check failed: %s": "Проверка аргументов не удалась: %s", - "Implications failed:": "Данный аргумент требует следующий дополнительный аргумент:", - "Not enough arguments following: %s": "Недостаточно следующих аргументов: %s", - "Invalid JSON config file: %s": "Недействительный файл конфигурации JSON: %s", - "Path to JSON config file": "Путь к файлу конфигурации JSON", - "Show help": "Показать помощь", - "Show version number": "Показать номер версии", - "Did you mean %s?": "Вы имели в виду %s?" -} diff --git a/WebServer/node_modules/yargs/locales/th.json b/WebServer/node_modules/yargs/locales/th.json deleted file mode 100644 index 3f08dcd23..000000000 --- a/WebServer/node_modules/yargs/locales/th.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "Commands:": "คอมมาน", - "Options:": "ออฟชั่น", - "Examples:": "ตัวอย่าง", - "boolean": "บูลีน", - "count": "นับ", - "string": "สตริง", - "number": "ตัวเลข", - "array": "อาเรย์", - "required": "จำเป็น", - "default:": "ค่าเริ่มต้น", - "choices:": "ตัวเลือก", - "aliases:": "เอเลียส", - "generated-value": "ค่าที่ถูกสร้างขึ้น", - "Not enough non-option arguments: got %s, need at least %s": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า", - "Too many non-option arguments: got %s, maximum of %s": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า", - "Missing argument value: %s": { - "one": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s", - "other": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s" - }, - "Missing required argument: %s": { - "one": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s", - "other": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s" - }, - "Unknown argument: %s": { - "one": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s", - "other": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s" - }, - "Invalid values:": "ค่าไม่ถูกต้อง:", - "Argument: %s, Given: %s, Choices: %s": "อาร์กิวเมนต์: %s, ได้รับ: %s, ตัวเลือก: %s", - "Argument check failed: %s": "ตรวจสอบพบอาร์กิวเมนต์ที่ไม่ถูกต้อง: %s", - "Implications failed:": "Implications ไม่สำเร็จ:", - "Not enough arguments following: %s": "ใส่อาร์กิวเมนต์ไม่ครบ: %s", - "Invalid JSON config file: %s": "ไฟล์คอนฟิค JSON ไม่ถูกต้อง: %s", - "Path to JSON config file": "พาทไฟล์คอนฟิค JSON", - "Show help": "ขอความช่วยเหลือ", - "Show version number": "แสดงตัวเลขเวอร์ชั่น", - "Did you mean %s?": "คุณหมายถึง %s?" -} diff --git a/WebServer/node_modules/yargs/locales/tr.json b/WebServer/node_modules/yargs/locales/tr.json deleted file mode 100644 index 9b06c52a8..000000000 --- a/WebServer/node_modules/yargs/locales/tr.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "Commands:": "Komutlar:", - "Options:": "Seçenekler:", - "Examples:": "Örnekler:", - "boolean": "boolean", - "count": "sayı", - "string": "string", - "number": "numara", - "array": "array", - "required": "zorunlu", - "default:": "varsayılan:", - "choices:": "seçimler:", - "aliases:": "takma adlar:", - "generated-value": "oluşturulan-değer", - "Not enough non-option arguments: got %s, need at least %s": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli", - "Too many non-option arguments: got %s, maximum of %s": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s", - "Missing argument value: %s": { - "one": "Eksik argüman değeri: %s", - "other": "Eksik argüman değerleri: %s" - }, - "Missing required argument: %s": { - "one": "Eksik zorunlu argüman: %s", - "other": "Eksik zorunlu argümanlar: %s" - }, - "Unknown argument: %s": { - "one": "Bilinmeyen argüman: %s", - "other": "Bilinmeyen argümanlar: %s" - }, - "Invalid values:": "Geçersiz değerler:", - "Argument: %s, Given: %s, Choices: %s": "Argüman: %s, Verilen: %s, Seçimler: %s", - "Argument check failed: %s": "Argüman kontrolü başarısız oldu: %s", - "Implications failed:": "Sonuçlar başarısız oldu:", - "Not enough arguments following: %s": "%s için yeterli argüman bulunamadı", - "Invalid JSON config file: %s": "Geçersiz JSON yapılandırma dosyası: %s", - "Path to JSON config file": "JSON yapılandırma dosya konumu", - "Show help": "Yardım detaylarını göster", - "Show version number": "Versiyon detaylarını göster", - "Did you mean %s?": "Bunu mu demek istediniz: %s?", - "Positionals:": "Sıralılar:", - "command": "komut" -} diff --git a/WebServer/node_modules/yargs/locales/zh_CN.json b/WebServer/node_modules/yargs/locales/zh_CN.json deleted file mode 100644 index 03a3d94f0..000000000 --- a/WebServer/node_modules/yargs/locales/zh_CN.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "Commands:": "命令:", - "Options:": "选项:", - "Examples:": "示例:", - "boolean": "布尔", - "count": "计数", - "string": "字符串", - "number": "数字", - "array": "数组", - "required": "必需", - "default:": "默认值:", - "choices:": "可选值:", - "generated-value": "生成的值", - "Not enough non-option arguments: got %s, need at least %s": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个", - "Too many non-option arguments: got %s, maximum of %s": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个", - "Missing argument value: %s": { - "one": "没有给此选项指定值:%s", - "other": "没有给这些选项指定值:%s" - }, - "Missing required argument: %s": { - "one": "缺少必须的选项:%s", - "other": "缺少这些必须的选项:%s" - }, - "Unknown argument: %s": { - "one": "无法识别的选项:%s", - "other": "无法识别这些选项:%s" - }, - "Invalid values:": "无效的选项值:", - "Argument: %s, Given: %s, Choices: %s": "选项名称: %s, 传入的值: %s, 可选的值:%s", - "Argument check failed: %s": "选项值验证失败:%s", - "Implications failed:": "缺少依赖的选项:", - "Not enough arguments following: %s": "没有提供足够的值给此选项:%s", - "Invalid JSON config file: %s": "无效的 JSON 配置文件:%s", - "Path to JSON config file": "JSON 配置文件的路径", - "Show help": "显示帮助信息", - "Show version number": "显示版本号", - "Did you mean %s?": "是指 %s?", - "Arguments %s and %s are mutually exclusive" : "选项 %s 和 %s 是互斥的", - "Positionals:": "位置:", - "command": "命令" -} diff --git a/WebServer/node_modules/yargs/locales/zh_TW.json b/WebServer/node_modules/yargs/locales/zh_TW.json deleted file mode 100644 index 12498888a..000000000 --- a/WebServer/node_modules/yargs/locales/zh_TW.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "Commands:": "命令:", - "Options:": "選項:", - "Examples:": "例:", - "boolean": "布林", - "count": "次數", - "string": "字串", - "number": "數字", - "array": "陣列", - "required": "必須", - "default:": "預設值:", - "choices:": "可選值:", - "aliases:": "別名:", - "generated-value": "生成的值", - "Not enough non-option arguments: got %s, need at least %s": "non-option 引數不足:只傳入了 %s 個, 至少要 %s 個", - "Too many non-option arguments: got %s, maximum of %s": "non-option 引數過多:傳入了 %s 個, 但最多 %s 個", - "Missing argument value: %s": { - "one": "此引數無指定值:%s", - "other": "這些引數無指定值:%s" - }, - "Missing required argument: %s": { - "one": "缺少必須的引數:%s", - "other": "缺少這些必須的引數:%s" - }, - "Unknown argument: %s": { - "one": "未知的引數:%s", - "other": "未知的這些引數:%s" - }, - "Invalid values:": "無效的選項值:", - "Argument: %s, Given: %s, Choices: %s": "引數名稱: %s, 傳入的值: %s, 可選的值:%s", - "Argument check failed: %s": "引數驗證失敗:%s", - "Implications failed:": "缺少依賴的選項:", - "Not enough arguments following: %s": "沒有提供足夠的值給此引數:%s", - "Invalid JSON config file: %s": "無效的 JSON 設置文件:%s", - "Path to JSON config file": "JSON 設置文件的路徑", - "Show help": "顯示說明", - "Show version number": "顯示版本", - "Did you mean %s?": "是指 %s?", - "Arguments %s and %s are mutually exclusive" : "引數 %s 和 %s 是互斥的" -} diff --git a/WebServer/node_modules/yargs/node_modules/ansi-regex/index.js b/WebServer/node_modules/yargs/node_modules/ansi-regex/index.js deleted file mode 100644 index c25448009..000000000 --- a/WebServer/node_modules/yargs/node_modules/ansi-regex/index.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -module.exports = options => { - options = Object.assign({ - onlyFirst: false - }, options); - - const pattern = [ - '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', - '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' - ].join('|'); - - return new RegExp(pattern, options.onlyFirst ? undefined : 'g'); -}; diff --git a/WebServer/node_modules/yargs/node_modules/ansi-regex/package.json b/WebServer/node_modules/yargs/node_modules/ansi-regex/package.json deleted file mode 100644 index ad1d4f837..000000000 --- a/WebServer/node_modules/yargs/node_modules/ansi-regex/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "_args": [ - [ - "ansi-regex@4.1.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "ansi-regex@4.1.0", - "_id": "ansi-regex@4.1.0", - "_inBundle": false, - "_integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "_location": "/yargs/ansi-regex", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "ansi-regex@4.1.0", - "name": "ansi-regex", - "escapedName": "ansi-regex", - "rawSpec": "4.1.0", - "saveSpec": null, - "fetchSpec": "4.1.0" - }, - "_requiredBy": [ - "/yargs/strip-ansi" - ], - "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "_spec": "4.1.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/chalk/ansi-regex/issues" - }, - "description": "Regular expression for matching ANSI escape codes", - "devDependencies": { - "ava": "^0.25.0", - "xo": "^0.23.0" - }, - "engines": { - "node": ">=6" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/chalk/ansi-regex#readme", - "keywords": [ - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "cli", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "command-line", - "text", - "regex", - "regexp", - "re", - "match", - "test", - "find", - "pattern" - ], - "license": "MIT", - "name": "ansi-regex", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/ansi-regex.git" - }, - "scripts": { - "test": "xo && ava", - "view-supported": "node fixtures/view-codes.js" - }, - "version": "4.1.0" -} diff --git a/WebServer/node_modules/yargs/node_modules/string-width/index.js b/WebServer/node_modules/yargs/node_modules/string-width/index.js deleted file mode 100644 index 33c9d6c06..000000000 --- a/WebServer/node_modules/yargs/node_modules/string-width/index.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; -const stripAnsi = require('strip-ansi'); -const isFullwidthCodePoint = require('is-fullwidth-code-point'); -const emojiRegex = require('emoji-regex')(); - -module.exports = input => { - input = input.replace(emojiRegex, ' '); - - if (typeof input !== 'string' || input.length === 0) { - return 0; - } - - input = stripAnsi(input); - - let width = 0; - - for (let i = 0; i < input.length; i++) { - const code = input.codePointAt(i); - - // Ignore control characters - if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { - continue; - } - - // Ignore combining characters - if (code >= 0x300 && code <= 0x36F) { - continue; - } - - // Surrogates - if (code > 0xFFFF) { - i++; - } - - width += isFullwidthCodePoint(code) ? 2 : 1; - } - - return width; -}; diff --git a/WebServer/node_modules/yargs/node_modules/string-width/package.json b/WebServer/node_modules/yargs/node_modules/string-width/package.json deleted file mode 100644 index 4f9284698..000000000 --- a/WebServer/node_modules/yargs/node_modules/string-width/package.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "_args": [ - [ - "string-width@3.1.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "string-width@3.1.0", - "_id": "string-width@3.1.0", - "_inBundle": false, - "_integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "_location": "/yargs/string-width", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "string-width@3.1.0", - "name": "string-width", - "escapedName": "string-width", - "rawSpec": "3.1.0", - "saveSpec": null, - "fetchSpec": "3.1.0" - }, - "_requiredBy": [ - "/yargs" - ], - "_resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "_spec": "3.1.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/string-width/issues" - }, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "description": "Get the visual width of a string - the number of columns required to display it", - "devDependencies": { - "ava": "^1.0.1", - "xo": "^0.23.0" - }, - "engines": { - "node": ">=6" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/sindresorhus/string-width#readme", - "keywords": [ - "string", - "str", - "character", - "char", - "unicode", - "width", - "visual", - "column", - "columns", - "fullwidth", - "full-width", - "full", - "ansi", - "escape", - "codes", - "cli", - "command-line", - "terminal", - "console", - "cjk", - "chinese", - "japanese", - "korean", - "fixed-width" - ], - "license": "MIT", - "name": "string-width", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/string-width.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "3.1.0" -} diff --git a/WebServer/node_modules/yargs/node_modules/strip-ansi/index.js b/WebServer/node_modules/yargs/node_modules/strip-ansi/index.js deleted file mode 100644 index 9788c96df..000000000 --- a/WebServer/node_modules/yargs/node_modules/strip-ansi/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; -const ansiRegex = require('ansi-regex'); - -const stripAnsi = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; - -module.exports = stripAnsi; -module.exports.default = stripAnsi; diff --git a/WebServer/node_modules/yargs/node_modules/strip-ansi/package.json b/WebServer/node_modules/yargs/node_modules/strip-ansi/package.json deleted file mode 100644 index 73570f4b5..000000000 --- a/WebServer/node_modules/yargs/node_modules/strip-ansi/package.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "_args": [ - [ - "strip-ansi@5.2.0", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "strip-ansi@5.2.0", - "_id": "strip-ansi@5.2.0", - "_inBundle": false, - "_integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "_location": "/yargs/strip-ansi", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "strip-ansi@5.2.0", - "name": "strip-ansi", - "escapedName": "strip-ansi", - "rawSpec": "5.2.0", - "saveSpec": null, - "fetchSpec": "5.2.0" - }, - "_requiredBy": [ - "/yargs/string-width" - ], - "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "_spec": "5.2.0", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/chalk/strip-ansi/issues" - }, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "description": "Strip ANSI escape codes from a string", - "devDependencies": { - "ava": "^1.3.1", - "tsd-check": "^0.5.0", - "xo": "^0.24.0" - }, - "engines": { - "node": ">=6" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "homepage": "https://github.com/chalk/strip-ansi#readme", - "keywords": [ - "strip", - "trim", - "remove", - "ansi", - "styles", - "color", - "colour", - "colors", - "terminal", - "console", - "string", - "tty", - "escape", - "formatting", - "rgb", - "256", - "shell", - "xterm", - "log", - "logging", - "command-line", - "text" - ], - "license": "MIT", - "name": "strip-ansi", - "repository": { - "type": "git", - "url": "git+https://github.com/chalk/strip-ansi.git" - }, - "scripts": { - "test": "xo && ava && tsd-check" - }, - "version": "5.2.0" -} diff --git a/WebServer/node_modules/yargs/package.json b/WebServer/node_modules/yargs/package.json deleted file mode 100644 index 553b698ff..000000000 --- a/WebServer/node_modules/yargs/package.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "_args": [ - [ - "yargs@13.2.2", - "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer" - ] - ], - "_from": "yargs@13.2.2", - "_id": "yargs@13.2.2", - "_inBundle": false, - "_integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", - "_location": "/yargs", - "_phantomChildren": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0" - }, - "_requested": { - "type": "version", - "registry": true, - "raw": "yargs@13.2.2", - "name": "yargs", - "escapedName": "yargs", - "rawSpec": "13.2.2", - "saveSpec": null, - "fetchSpec": "13.2.2" - }, - "_requiredBy": [ - "/mocha" - ], - "_resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "_spec": "13.2.2", - "_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\WebServer", - "bugs": { - "url": "https://github.com/yargs/yargs/issues" - }, - "contributors": [ - { - "name": "Yargs Contributors", - "url": "https://github.com/yargs/yargs/graphs/contributors" - } - ], - "dependencies": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" - }, - "description": "yargs the modern, pirate-themed, successor to optimist.", - "devDependencies": { - "chai": "^4.2.0", - "chalk": "^2.4.2", - "coveralls": "^3.0.2", - "cpr": "^3.0.1", - "cross-spawn": "^6.0.4", - "es6-promise": "^4.2.5", - "hashish": "0.0.4", - "mocha": "^5.2.0", - "nyc": "^13.2.0", - "rimraf": "^2.6.3", - "standard": "^12.0.1", - "standard-version": "^5.0.0", - "which": "^1.3.1", - "yargs-test-extends": "^1.0.1" - }, - "engine": { - "node": ">=6" - }, - "files": [ - "index.js", - "yargs.js", - "lib", - "locales", - "completion.sh.hbs", - "completion.zsh.hbs", - "LICENSE" - ], - "homepage": "https://yargs.js.org/", - "keywords": [ - "argument", - "args", - "option", - "parser", - "parsing", - "cli", - "command" - ], - "license": "MIT", - "main": "./index.js", - "name": "yargs", - "repository": { - "type": "git", - "url": "git+https://github.com/yargs/yargs.git" - }, - "scripts": { - "coverage": "nyc report --reporter=text-lcov | coveralls", - "pretest": "standard", - "release": "standard-version", - "test": "nyc --cache mocha --require ./test/before.js --timeout=12000 --check-leaks" - }, - "standard": { - "ignore": [ - "**/example/**" - ] - }, - "version": "13.2.2" -} diff --git a/WebServer/node_modules/yargs/yargs.js b/WebServer/node_modules/yargs/yargs.js deleted file mode 100644 index ea1f15fae..000000000 --- a/WebServer/node_modules/yargs/yargs.js +++ /dev/null @@ -1,1205 +0,0 @@ -'use strict' -const argsert = require('./lib/argsert') -const fs = require('fs') -const Command = require('./lib/command') -const Completion = require('./lib/completion') -const Parser = require('yargs-parser') -const path = require('path') -const Usage = require('./lib/usage') -const Validation = require('./lib/validation') -const Y18n = require('y18n') -const objFilter = require('./lib/obj-filter') -const setBlocking = require('set-blocking') -const applyExtends = require('./lib/apply-extends') -const { globalMiddlewareFactory } = require('./lib/middleware') -const YError = require('./lib/yerror') - -exports = module.exports = Yargs -function Yargs (processArgs, cwd, parentRequire) { - processArgs = processArgs || [] // handle calling yargs(). - - const self = {} - let command = null - let completion = null - let groups = {} - let globalMiddleware = [] - let output = '' - let preservedGroups = {} - let usage = null - let validation = null - - const y18n = Y18n({ - directory: path.resolve(__dirname, './locales'), - updateFiles: false - }) - - self.middleware = globalMiddlewareFactory(globalMiddleware, self) - - if (!cwd) cwd = process.cwd() - - self.scriptName = function scriptName (scriptName) { - self.$0 = scriptName - return self - } - - // ignore the node bin, specify this in your - // bin file with #!/usr/bin/env node - if (/\b(node|iojs|electron)(\.exe)?$/.test(process.argv[0])) { - self.$0 = process.argv.slice(1, 2) - } else { - self.$0 = process.argv.slice(0, 1) - } - - self.$0 = self.$0 - .map((x, i) => { - const b = rebase(cwd, x) - return x.match(/^(\/|([a-zA-Z]:)?\\)/) && b.length < x.length ? b : x - }) - .join(' ').trim() - - if (process.env._ !== undefined && process.argv[1] === process.env._) { - self.$0 = process.env._.replace( - `${path.dirname(process.execPath)}/`, '' - ) - } - - // use context object to keep track of resets, subcommand execution, etc - // submodules should modify and check the state of context as necessary - const context = { resets: -1, commands: [], fullCommands: [], files: [] } - self.getContext = () => context - - // puts yargs back into an initial state. any keys - // that have been set to "global" will not be reset - // by this action. - let options - self.resetOptions = self.reset = function resetOptions (aliases) { - context.resets++ - aliases = aliases || {} - options = options || {} - // put yargs back into an initial state, this - // logic is used to build a nested command - // hierarchy. - const tmpOptions = {} - tmpOptions.local = options.local ? options.local : [] - tmpOptions.configObjects = options.configObjects ? options.configObjects : [] - - // if a key has been explicitly set as local, - // we should reset it before passing options to command. - const localLookup = {} - tmpOptions.local.forEach((l) => { - localLookup[l] = true - ;(aliases[l] || []).forEach((a) => { - localLookup[a] = true - }) - }) - - // preserve all groups not set to local. - preservedGroups = Object.keys(groups).reduce((acc, groupName) => { - const keys = groups[groupName].filter(key => !(key in localLookup)) - if (keys.length > 0) { - acc[groupName] = keys - } - return acc - }, {}) - // groups can now be reset - groups = {} - - const arrayOptions = [ - 'array', 'boolean', 'string', 'skipValidation', - 'count', 'normalize', 'number', - 'hiddenOptions' - ] - - const objectOptions = [ - 'narg', 'key', 'alias', 'default', 'defaultDescription', - 'config', 'choices', 'demandedOptions', 'demandedCommands', 'coerce' - ] - - arrayOptions.forEach((k) => { - tmpOptions[k] = (options[k] || []).filter(k => !localLookup[k]) - }) - - objectOptions.forEach((k) => { - tmpOptions[k] = objFilter(options[k], (k, v) => !localLookup[k]) - }) - - tmpOptions.envPrefix = options.envPrefix - options = tmpOptions - - // if this is the first time being executed, create - // instances of all our helpers -- otherwise just reset. - usage = usage ? usage.reset(localLookup) : Usage(self, y18n) - validation = validation ? validation.reset(localLookup) : Validation(self, usage, y18n) - command = command ? command.reset() : Command(self, usage, validation, globalMiddleware) - if (!completion) completion = Completion(self, usage, command) - - completionCommand = null - output = '' - exitError = null - hasOutput = false - self.parsed = false - - return self - } - self.resetOptions() - - // temporary hack: allow "freezing" of reset-able state for parse(msg, cb) - let frozen - function freeze () { - frozen = {} - frozen.options = options - frozen.configObjects = options.configObjects.slice(0) - frozen.exitProcess = exitProcess - frozen.groups = groups - usage.freeze() - validation.freeze() - command.freeze() - frozen.strict = strict - frozen.completionCommand = completionCommand - frozen.output = output - frozen.exitError = exitError - frozen.hasOutput = hasOutput - frozen.parsed = self.parsed - } - function unfreeze () { - options = frozen.options - options.configObjects = frozen.configObjects - exitProcess = frozen.exitProcess - groups = frozen.groups - output = frozen.output - exitError = frozen.exitError - hasOutput = frozen.hasOutput - self.parsed = frozen.parsed - usage.unfreeze() - validation.unfreeze() - command.unfreeze() - strict = frozen.strict - completionCommand = frozen.completionCommand - parseFn = null - parseContext = null - frozen = undefined - } - - self.boolean = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('boolean', keys) - return self - } - - self.array = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('array', keys) - return self - } - - self.number = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('number', keys) - return self - } - - self.normalize = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('normalize', keys) - return self - } - - self.count = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('count', keys) - return self - } - - self.string = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('string', keys) - return self - } - - self.requiresArg = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintObject(self.nargs, false, 'narg', keys, 1) - return self - } - - self.skipValidation = function (keys) { - argsert('', [keys], arguments.length) - populateParserHintArray('skipValidation', keys) - return self - } - - function populateParserHintArray (type, keys, value) { - keys = [].concat(keys) - keys.forEach((key) => { - options[type].push(key) - }) - } - - self.nargs = function (key, value) { - argsert(' [number]', [key, value], arguments.length) - populateParserHintObject(self.nargs, false, 'narg', key, value) - return self - } - - self.choices = function (key, value) { - argsert(' [string|array]', [key, value], arguments.length) - populateParserHintObject(self.choices, true, 'choices', key, value) - return self - } - - self.alias = function (key, value) { - argsert(' [string|array]', [key, value], arguments.length) - populateParserHintObject(self.alias, true, 'alias', key, value) - return self - } - - // TODO: actually deprecate self.defaults. - self.default = self.defaults = function (key, value, defaultDescription) { - argsert(' [*] [string]', [key, value, defaultDescription], arguments.length) - if (defaultDescription) options.defaultDescription[key] = defaultDescription - if (typeof value === 'function') { - if (!options.defaultDescription[key]) options.defaultDescription[key] = usage.functionDescription(value) - value = value.call() - } - populateParserHintObject(self.default, false, 'default', key, value) - return self - } - - self.describe = function (key, desc) { - argsert(' [string]', [key, desc], arguments.length) - populateParserHintObject(self.describe, false, 'key', key, true) - usage.describe(key, desc) - return self - } - - self.demandOption = function (keys, msg) { - argsert(' [string]', [keys, msg], arguments.length) - populateParserHintObject(self.demandOption, false, 'demandedOptions', keys, msg) - return self - } - - self.coerce = function (keys, value) { - argsert(' [function]', [keys, value], arguments.length) - populateParserHintObject(self.coerce, false, 'coerce', keys, value) - return self - } - - function populateParserHintObject (builder, isArray, type, key, value) { - if (Array.isArray(key)) { - // an array of keys with one value ['x', 'y', 'z'], function parse () {} - const temp = {} - key.forEach((k) => { - temp[k] = value - }) - builder(temp) - } else if (typeof key === 'object') { - // an object of key value pairs: {'x': parse () {}, 'y': parse() {}} - Object.keys(key).forEach((k) => { - builder(k, key[k]) - }) - } else { - // a single key value pair 'x', parse() {} - if (isArray) { - options[type][key] = (options[type][key] || []).concat(value) - } else { - options[type][key] = value - } - } - } - - function deleteFromParserHintObject (optionKey) { - // delete from all parsing hints: - // boolean, array, key, alias, etc. - Object.keys(options).forEach((hintKey) => { - const hint = options[hintKey] - if (Array.isArray(hint)) { - if (~hint.indexOf(optionKey)) hint.splice(hint.indexOf(optionKey), 1) - } else if (typeof hint === 'object') { - delete hint[optionKey] - } - }) - // now delete the description from usage.js. - delete usage.getDescriptions()[optionKey] - } - - self.config = function config (key, msg, parseFn) { - argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length) - // allow a config object to be provided directly. - if (typeof key === 'object') { - key = applyExtends(key, cwd) - options.configObjects = (options.configObjects || []).concat(key) - return self - } - - // allow for a custom parsing function. - if (typeof msg === 'function') { - parseFn = msg - msg = null - } - - key = key || 'config' - self.describe(key, msg || usage.deferY18nLookup('Path to JSON config file')) - ;(Array.isArray(key) ? key : [key]).forEach((k) => { - options.config[k] = parseFn || true - }) - - return self - } - - self.example = function (cmd, description) { - argsert(' [string]', [cmd, description], arguments.length) - usage.example(cmd, description) - return self - } - - self.command = function (cmd, description, builder, handler, middlewares) { - argsert(' [string|boolean] [function|object] [function] [array]', [cmd, description, builder, handler, middlewares], arguments.length) - command.addHandler(cmd, description, builder, handler, middlewares) - return self - } - - self.commandDir = function (dir, opts) { - argsert(' [object]', [dir, opts], arguments.length) - const req = parentRequire || require - command.addDirectory(dir, self.getContext(), req, require('get-caller-file')(), opts) - return self - } - - // TODO: deprecate self.demand in favor of - // .demandCommand() .demandOption(). - self.demand = self.required = self.require = function demand (keys, max, msg) { - // you can optionally provide a 'max' key, - // which will raise an exception if too many '_' - // options are provided. - if (Array.isArray(max)) { - max.forEach((key) => { - self.demandOption(key, msg) - }) - max = Infinity - } else if (typeof max !== 'number') { - msg = max - max = Infinity - } - - if (typeof keys === 'number') { - self.demandCommand(keys, max, msg, msg) - } else if (Array.isArray(keys)) { - keys.forEach((key) => { - self.demandOption(key, msg) - }) - } else { - if (typeof msg === 'string') { - self.demandOption(keys, msg) - } else if (msg === true || typeof msg === 'undefined') { - self.demandOption(keys) - } - } - - return self - } - - self.demandCommand = function demandCommand (min, max, minMsg, maxMsg) { - argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length) - - if (typeof min === 'undefined') min = 1 - - if (typeof max !== 'number') { - minMsg = max - max = Infinity - } - - self.global('_', false) - - options.demandedCommands._ = { - min, - max, - minMsg, - maxMsg - } - - return self - } - - self.getDemandedOptions = () => { - argsert([], 0) - return options.demandedOptions - } - - self.getDemandedCommands = () => { - argsert([], 0) - return options.demandedCommands - } - - self.implies = function (key, value) { - argsert(' [number|string|array]', [key, value], arguments.length) - validation.implies(key, value) - return self - } - - self.conflicts = function (key1, key2) { - argsert(' [string|array]', [key1, key2], arguments.length) - validation.conflicts(key1, key2) - return self - } - - self.usage = function (msg, description, builder, handler) { - argsert(' [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length) - - if (description !== undefined) { - // .usage() can be used as an alias for defining - // a default command. - if ((msg || '').match(/^\$0( |$)/)) { - return self.command(msg, description, builder, handler) - } else { - throw new YError('.usage() description must start with $0 if being used as alias for .command()') - } - } else { - usage.usage(msg) - return self - } - } - - self.epilogue = self.epilog = function (msg) { - argsert('', [msg], arguments.length) - usage.epilog(msg) - return self - } - - self.fail = function (f) { - argsert('', [f], arguments.length) - usage.failFn(f) - return self - } - - self.check = function (f, _global) { - argsert(' [boolean]', [f, _global], arguments.length) - validation.check(f, _global !== false) - return self - } - - self.global = function global (globals, global) { - argsert(' [boolean]', [globals, global], arguments.length) - globals = [].concat(globals) - if (global !== false) { - options.local = options.local.filter(l => globals.indexOf(l) === -1) - } else { - globals.forEach((g) => { - if (options.local.indexOf(g) === -1) options.local.push(g) - }) - } - return self - } - - self.pkgConf = function pkgConf (key, rootPath) { - argsert(' [string]', [key, rootPath], arguments.length) - let conf = null - // prefer cwd to require-main-filename in this method - // since we're looking for e.g. "nyc" config in nyc consumer - // rather than "yargs" config in nyc (where nyc is the main filename) - const obj = pkgUp(rootPath || cwd) - - // If an object exists in the key, add it to options.configObjects - if (obj[key] && typeof obj[key] === 'object') { - conf = applyExtends(obj[key], rootPath || cwd) - options.configObjects = (options.configObjects || []).concat(conf) - } - - return self - } - - const pkgs = {} - function pkgUp (rootPath) { - const npath = rootPath || '*' - if (pkgs[npath]) return pkgs[npath] - const findUp = require('find-up') - - let obj = {} - try { - let startDir = rootPath || require('require-main-filename')(parentRequire || require) - - // When called in an environment that lacks require.main.filename, such as a jest test runner, - // startDir is already process.cwd(), and should not be shortened. - // Whether or not it is _actually_ a directory (e.g., extensionless bin) is irrelevant, find-up handles it. - if (!rootPath && path.extname(startDir)) { - startDir = path.dirname(startDir) - } - - const pkgJsonPath = findUp.sync('package.json', { - cwd: startDir - }) - obj = JSON.parse(fs.readFileSync(pkgJsonPath)) - } catch (noop) {} - - pkgs[npath] = obj || {} - return pkgs[npath] - } - - let parseFn = null - let parseContext = null - self.parse = function parse (args, shortCircuit, _parseFn) { - argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length) - if (typeof args === 'undefined') { - return self._parseArgs(processArgs) - } - - // a context object can optionally be provided, this allows - // additional information to be passed to a command handler. - if (typeof shortCircuit === 'object') { - parseContext = shortCircuit - shortCircuit = _parseFn - } - - // by providing a function as a second argument to - // parse you can capture output that would otherwise - // default to printing to stdout/stderr. - if (typeof shortCircuit === 'function') { - parseFn = shortCircuit - shortCircuit = null - } - // completion short-circuits the parsing process, - // skipping validation, etc. - if (!shortCircuit) processArgs = args - - freeze() - if (parseFn) exitProcess = false - - const parsed = self._parseArgs(args, shortCircuit) - if (parseFn) parseFn(exitError, parsed, output) - unfreeze() - - return parsed - } - - self._getParseContext = () => parseContext || {} - - self._hasParseCallback = () => !!parseFn - - self.option = self.options = function option (key, opt) { - argsert(' [object]', [key, opt], arguments.length) - if (typeof key === 'object') { - Object.keys(key).forEach((k) => { - self.options(k, key[k]) - }) - } else { - if (typeof opt !== 'object') { - opt = {} - } - - options.key[key] = true // track manually set keys. - - if (opt.alias) self.alias(key, opt.alias) - - const demand = opt.demand || opt.required || opt.require - - // deprecated, use 'demandOption' instead - if (demand) { - self.demand(key, demand) - } - - if (opt.demandOption) { - self.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined) - } - - if ('conflicts' in opt) { - self.conflicts(key, opt.conflicts) - } - - if ('default' in opt) { - self.default(key, opt.default) - } - - if ('implies' in opt) { - self.implies(key, opt.implies) - } - - if ('nargs' in opt) { - self.nargs(key, opt.nargs) - } - - if (opt.config) { - self.config(key, opt.configParser) - } - - if (opt.normalize) { - self.normalize(key) - } - - if ('choices' in opt) { - self.choices(key, opt.choices) - } - - if ('coerce' in opt) { - self.coerce(key, opt.coerce) - } - - if ('group' in opt) { - self.group(key, opt.group) - } - - if (opt.boolean || opt.type === 'boolean') { - self.boolean(key) - if (opt.alias) self.boolean(opt.alias) - } - - if (opt.array || opt.type === 'array') { - self.array(key) - if (opt.alias) self.array(opt.alias) - } - - if (opt.number || opt.type === 'number') { - self.number(key) - if (opt.alias) self.number(opt.alias) - } - - if (opt.string || opt.type === 'string') { - self.string(key) - if (opt.alias) self.string(opt.alias) - } - - if (opt.count || opt.type === 'count') { - self.count(key) - } - - if (typeof opt.global === 'boolean') { - self.global(key, opt.global) - } - - if (opt.defaultDescription) { - options.defaultDescription[key] = opt.defaultDescription - } - - if (opt.skipValidation) { - self.skipValidation(key) - } - - const desc = opt.describe || opt.description || opt.desc - self.describe(key, desc) - if (opt.hidden) { - self.hide(key) - } - - if (opt.requiresArg) { - self.requiresArg(key) - } - } - - return self - } - self.getOptions = () => options - - self.positional = function (key, opts) { - argsert(' ', [key, opts], arguments.length) - if (context.resets === 0) { - throw new YError(".positional() can only be called in a command's builder function") - } - - // .positional() only supports a subset of the configuration - // options availble to .option(). - const supportedOpts = ['default', 'implies', 'normalize', - 'choices', 'conflicts', 'coerce', 'type', 'describe', - 'desc', 'description', 'alias'] - opts = objFilter(opts, (k, v) => { - let accept = supportedOpts.indexOf(k) !== -1 - // type can be one of string|number|boolean. - if (k === 'type' && ['string', 'number', 'boolean'].indexOf(v) === -1) accept = false - return accept - }) - - // copy over any settings that can be inferred from the command string. - const fullCommand = context.fullCommands[context.fullCommands.length - 1] - const parseOptions = fullCommand ? command.cmdToParseOptions(fullCommand) : { - array: [], - alias: {}, - default: {}, - demand: {} - } - Object.keys(parseOptions).forEach((pk) => { - if (Array.isArray(parseOptions[pk])) { - if (parseOptions[pk].indexOf(key) !== -1) opts[pk] = true - } else { - if (parseOptions[pk][key] && !(pk in opts)) opts[pk] = parseOptions[pk][key] - } - }) - self.group(key, usage.getPositionalGroupName()) - return self.option(key, opts) - } - - self.group = function group (opts, groupName) { - argsert(' ', [opts, groupName], arguments.length) - const existing = preservedGroups[groupName] || groups[groupName] - if (preservedGroups[groupName]) { - // we now only need to track this group name in groups. - delete preservedGroups[groupName] - } - - const seen = {} - groups[groupName] = (existing || []).concat(opts).filter((key) => { - if (seen[key]) return false - return (seen[key] = true) - }) - return self - } - // combine explicit and preserved groups. explicit groups should be first - self.getGroups = () => Object.assign({}, groups, preservedGroups) - - // as long as options.envPrefix is not undefined, - // parser will apply env vars matching prefix to argv - self.env = function (prefix) { - argsert('[string|boolean]', [prefix], arguments.length) - if (prefix === false) options.envPrefix = undefined - else options.envPrefix = prefix || '' - return self - } - - self.wrap = function (cols) { - argsert('', [cols], arguments.length) - usage.wrap(cols) - return self - } - - let strict = false - self.strict = function (enabled) { - argsert('[boolean]', [enabled], arguments.length) - strict = enabled !== false - return self - } - self.getStrict = () => strict - - let parserConfig = {} - self.parserConfiguration = function parserConfiguration (config) { - argsert('', [config], arguments.length) - parserConfig = config - return self - } - self.getParserConfiguration = () => parserConfig - - self.showHelp = function (level) { - argsert('[string|function]', [level], arguments.length) - if (!self.parsed) self._parseArgs(processArgs) // run parser, if it has not already been executed. - if (command.hasDefaultCommand()) { - context.resets++ // override the restriction on top-level positoinals. - command.runDefaultBuilderOn(self, true) - } - usage.showHelp(level) - return self - } - - let versionOpt = null - self.version = function version (opt, msg, ver) { - const defaultVersionOpt = 'version' - argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length) - - // nuke the key previously configured - // to return version #. - if (versionOpt) { - deleteFromParserHintObject(versionOpt) - usage.version(undefined) - versionOpt = null - } - - if (arguments.length === 0) { - ver = guessVersion() - opt = defaultVersionOpt - } else if (arguments.length === 1) { - if (opt === false) { // disable default 'version' key. - return self - } - ver = opt - opt = defaultVersionOpt - } else if (arguments.length === 2) { - ver = msg - msg = null - } - - versionOpt = typeof opt === 'string' ? opt : defaultVersionOpt - msg = msg || usage.deferY18nLookup('Show version number') - - usage.version(ver || undefined) - self.boolean(versionOpt) - self.describe(versionOpt, msg) - return self - } - - function guessVersion () { - const obj = pkgUp() - - return obj.version || 'unknown' - } - - let helpOpt = null - self.addHelpOpt = self.help = function addHelpOpt (opt, msg) { - const defaultHelpOpt = 'help' - argsert('[string|boolean] [string]', [opt, msg], arguments.length) - - // nuke the key previously configured - // to return help. - if (helpOpt) { - deleteFromParserHintObject(helpOpt) - helpOpt = null - } - - if (arguments.length === 1) { - if (opt === false) return self - } - - // use arguments, fallback to defaults for opt and msg - helpOpt = typeof opt === 'string' ? opt : defaultHelpOpt - self.boolean(helpOpt) - self.describe(helpOpt, msg || usage.deferY18nLookup('Show help')) - return self - } - - const defaultShowHiddenOpt = 'show-hidden' - options.showHiddenOpt = defaultShowHiddenOpt - self.addShowHiddenOpt = self.showHidden = function addShowHiddenOpt (opt, msg) { - argsert('[string|boolean] [string]', [opt, msg], arguments.length) - - if (arguments.length === 1) { - if (opt === false) return self - } - - const showHiddenOpt = typeof opt === 'string' ? opt : defaultShowHiddenOpt - self.boolean(showHiddenOpt) - self.describe(showHiddenOpt, msg || usage.deferY18nLookup('Show hidden options')) - options.showHiddenOpt = showHiddenOpt - return self - } - - self.hide = function hide (key) { - argsert('', [key], arguments.length) - options.hiddenOptions.push(key) - return self - } - - self.showHelpOnFail = function showHelpOnFail (enabled, message) { - argsert('[boolean|string] [string]', [enabled, message], arguments.length) - usage.showHelpOnFail(enabled, message) - return self - } - - var exitProcess = true - self.exitProcess = function (enabled) { - argsert('[boolean]', [enabled], arguments.length) - if (typeof enabled !== 'boolean') { - enabled = true - } - exitProcess = enabled - return self - } - self.getExitProcess = () => exitProcess - - var completionCommand = null - self.completion = function (cmd, desc, fn) { - argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length) - - // a function to execute when generating - // completions can be provided as the second - // or third argument to completion. - if (typeof desc === 'function') { - fn = desc - desc = null - } - - // register the completion command. - completionCommand = cmd || 'completion' - if (!desc && desc !== false) { - desc = 'generate completion script' - } - self.command(completionCommand, desc) - - // a function can be provided - if (fn) completion.registerFunction(fn) - - return self - } - - self.showCompletionScript = function ($0) { - argsert('[string]', [$0], arguments.length) - $0 = $0 || self.$0 - _logger.log(completion.generateCompletionScript($0, completionCommand)) - return self - } - - self.getCompletion = function (args, done) { - argsert(' ', [args, done], arguments.length) - completion.getCompletion(args, done) - } - - self.locale = function (locale) { - argsert('[string]', [locale], arguments.length) - if (arguments.length === 0) { - guessLocale() - return y18n.getLocale() - } - detectLocale = false - y18n.setLocale(locale) - return self - } - - self.updateStrings = self.updateLocale = function (obj) { - argsert('', [obj], arguments.length) - detectLocale = false - y18n.updateLocale(obj) - return self - } - - let detectLocale = true - self.detectLocale = function (detect) { - argsert('', [detect], arguments.length) - detectLocale = detect - return self - } - self.getDetectLocale = () => detectLocale - - var hasOutput = false - var exitError = null - // maybe exit, always capture - // context about why we wanted to exit. - self.exit = (code, err) => { - hasOutput = true - exitError = err - if (exitProcess) process.exit(code) - } - - // we use a custom logger that buffers output, - // so that we can print to non-CLIs, e.g., chat-bots. - const _logger = { - log () { - const args = [] - for (let i = 0; i < arguments.length; i++) args.push(arguments[i]) - if (!self._hasParseCallback()) console.log.apply(console, args) - hasOutput = true - if (output.length) output += '\n' - output += args.join(' ') - }, - error () { - const args = [] - for (let i = 0; i < arguments.length; i++) args.push(arguments[i]) - if (!self._hasParseCallback()) console.error.apply(console, args) - hasOutput = true - if (output.length) output += '\n' - output += args.join(' ') - } - } - self._getLoggerInstance = () => _logger - // has yargs output an error our help - // message in the current execution context. - self._hasOutput = () => hasOutput - - self._setHasOutput = () => { - hasOutput = true - } - - let recommendCommands - self.recommendCommands = function (recommend) { - argsert('[boolean]', [recommend], arguments.length) - recommendCommands = typeof recommend === 'boolean' ? recommend : true - return self - } - - self.getUsageInstance = () => usage - - self.getValidationInstance = () => validation - - self.getCommandInstance = () => command - - self.terminalWidth = () => { - argsert([], 0) - return typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null - } - - Object.defineProperty(self, 'argv', { - get: () => self._parseArgs(processArgs), - enumerable: true - }) - - self._parseArgs = function parseArgs (args, shortCircuit, _skipValidation, commandIndex) { - let skipValidation = !!_skipValidation - args = args || processArgs - - options.__ = y18n.__ - options.configuration = self.getParserConfiguration() - - // Deprecated - let pkgConfig = pkgUp()['yargs'] - if (pkgConfig) { - console.warn('Configuring yargs through package.json is deprecated and will be removed in the next major release, please use the JS API instead.') - options.configuration = Object.assign({}, pkgConfig, options.configuration) - } - - const parsed = Parser.detailed(args, options) - let argv = parsed.argv - if (parseContext) argv = Object.assign({}, argv, parseContext) - const aliases = parsed.aliases - - argv.$0 = self.$0 - self.parsed = parsed - - try { - guessLocale() // guess locale lazily, so that it can be turned off in chain. - - // while building up the argv object, there - // are two passes through the parser. If completion - // is being performed short-circuit on the first pass. - if (shortCircuit) { - return argv - } - - // if there's a handler associated with a - // command defer processing to it. - if (helpOpt) { - // consider any multi-char helpOpt alias as a valid help command - // unless all helpOpt aliases are single-char - // note that parsed.aliases is a normalized bidirectional map :) - const helpCmds = [helpOpt] - .concat(aliases[helpOpt] || []) - .filter(k => k.length > 1) - // check if help should trigger and strip it from _. - if (~helpCmds.indexOf(argv._[argv._.length - 1])) { - argv._.pop() - argv[helpOpt] = true - } - } - - const handlerKeys = command.getCommands() - const requestCompletions = completion.completionKey in argv - const skipRecommendation = argv[helpOpt] || requestCompletions - const skipDefaultCommand = skipRecommendation && (handlerKeys.length > 1 || handlerKeys[0] !== '$0') - - if (argv._.length) { - if (handlerKeys.length) { - let firstUnknownCommand - for (let i = (commandIndex || 0), cmd; argv._[i] !== undefined; i++) { - cmd = String(argv._[i]) - if (~handlerKeys.indexOf(cmd) && cmd !== completionCommand) { - // commands are executed using a recursive algorithm that executes - // the deepest command first; we keep track of the position in the - // argv._ array that is currently being executed. - return command.runCommand(cmd, self, parsed, i + 1) - } else if (!firstUnknownCommand && cmd !== completionCommand) { - firstUnknownCommand = cmd - break - } - } - - // run the default command, if defined - if (command.hasDefaultCommand() && !skipDefaultCommand) { - return command.runCommand(null, self, parsed) - } - - // recommend a command if recommendCommands() has - // been enabled, and no commands were found to execute - if (recommendCommands && firstUnknownCommand && !skipRecommendation) { - validation.recommendCommands(firstUnknownCommand, handlerKeys) - } - } - - // generate a completion script for adding to ~/.bashrc. - if (completionCommand && ~argv._.indexOf(completionCommand) && !requestCompletions) { - if (exitProcess) setBlocking(true) - self.showCompletionScript() - self.exit(0) - } - } else if (command.hasDefaultCommand() && !skipDefaultCommand) { - return command.runCommand(null, self, parsed) - } - - // we must run completions first, a user might - // want to complete the --help or --version option. - if (requestCompletions) { - if (exitProcess) setBlocking(true) - - // we allow for asynchronous completions, - // e.g., loading in a list of commands from an API. - const completionArgs = args.slice(args.indexOf(`--${completion.completionKey}`) + 1) - completion.getCompletion(completionArgs, (completions) => { - ;(completions || []).forEach((completion) => { - _logger.log(completion) - }) - - self.exit(0) - }) - return argv - } - - // Handle 'help' and 'version' options - // if we haven't already output help! - if (!hasOutput) { - Object.keys(argv).forEach((key) => { - if (key === helpOpt && argv[key]) { - if (exitProcess) setBlocking(true) - - skipValidation = true - self.showHelp('log') - self.exit(0) - } else if (key === versionOpt && argv[key]) { - if (exitProcess) setBlocking(true) - - skipValidation = true - usage.showVersion() - self.exit(0) - } - }) - } - - // Check if any of the options to skip validation were provided - if (!skipValidation && options.skipValidation.length > 0) { - skipValidation = Object.keys(argv).some(key => options.skipValidation.indexOf(key) >= 0 && argv[key] === true) - } - - // If the help or version options where used and exitProcess is false, - // or if explicitly skipped, we won't run validations. - if (!skipValidation) { - if (parsed.error) throw new YError(parsed.error.message) - - // if we're executed via bash completion, don't - // bother with validation. - if (!requestCompletions) { - self._runValidation(argv, aliases, {}, parsed.error) - } - } - } catch (err) { - if (err instanceof YError) usage.fail(err.message, err) - else throw err - } - - return argv - } - - self._runValidation = function runValidation (argv, aliases, positionalMap, parseErrors) { - if (parseErrors) throw new YError(parseErrors.message || parseErrors) - validation.nonOptionCount(argv) - validation.requiredArguments(argv) - if (strict) validation.unknownArguments(argv, aliases, positionalMap) - validation.customChecks(argv, aliases) - validation.limitedChoices(argv) - validation.implications(argv) - validation.conflicting(argv) - } - - function guessLocale () { - if (!detectLocale) return - - try { - const osLocale = require('os-locale') - self.locale(osLocale.sync({ spawn: false })) - } catch (err) { - // if we explode looking up locale just noop - // we'll keep using the default language 'en'. - } - } - - // an app should almost always have --version and --help, - // if you *really* want to disable this use .help(false)/.version(false). - self.help() - self.version() - - return self -} - -// rebase an absolute path to a relative one with respect to a base directory -// exported for tests -exports.rebase = rebase -function rebase (base, dir) { - return path.relative(base, dir) -} diff --git a/WebServer/package-lock.json b/WebServer/package-lock.json index 904f6b402..5c1f45a6c 100644 --- a/WebServer/package-lock.json +++ b/WebServer/package-lock.json @@ -1,49 +1,9 @@ { - "name": "@superalgos/saweb", + "name": "WebServer", "version": "0.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { - "@superalgos/mqservice": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@superalgos/mqservice/-/mqservice-0.0.12.tgz", - "integrity": "sha512-Dw6VvjuqB1a7w+7Ghqi4pxvEJDUKWMbS1W/xNmSlTJhI3sW/YexmBbF8nmvdyIfxtajO/+Q1ZoqeBWsiPcjmcQ==", - "requires": { - "chai": "4.2.0", - "mocha": "6.1.4" - } - }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "1.9.3" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "1.0.3" - } - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" - }, "axios": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", @@ -67,221 +27,21 @@ "concat-map": "0.0.1" } }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "ccxt": { + "version": "1.23.67", + "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.23.67.tgz", + "integrity": "sha512-4GE4iTvW1lO8hDsuKYGr7+Gvt77aMx3NK4qSzIOLbDTsfrfL8PbPty7XTHnCOZUq1HaRjTY5IHhozZLccBsNWA==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.7.0", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "requires": { - "type-detect": "4.0.8" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "1.1.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" - }, "dotenv": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.0.0.tgz", "integrity": "sha512-30xVGqjLjiUOArT4+M5q9sYdvuR4riM6yK9wMcas9Vbp6zZa+ocC9dp6QoftuhTPhFAiLK/0C5Ni2nou/Bk8lg==" }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "requires": { - "once": "1.4.0" - } - }, - "es-abstract": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", - "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4", - "object-keys": "1.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "3.0.0" - } - }, - "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "requires": { - "is-buffer": "2.0.3" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" - } - } - }, "follow-redirects": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", @@ -310,70 +70,19 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "3.0.0" - } - }, "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", - "inherits": "2.0.3", + "inherits": "2.0.4", "minimatch": "3.0.4", "once": "1.4.0", "path-is-absolute": "1.0.1" } }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -384,128 +93,20 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "is-buffer": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" - }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "requires": { - "has": "1.0.3" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "requires": { - "has-symbols": "1.0.0" - } - }, "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "requires": { - "invert-kv": "2.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "requires": { - "chalk": "2.4.2" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "requires": { - "p-defer": "1.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "2.1.0", - "p-is-promise": "2.1.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -514,106 +115,6 @@ "brace-expansion": "1.1.11" } }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "mocha": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz", - "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==", - "requires": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "2.2.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "ms": "2.1.1", - "node-environment-flags": "1.0.5", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.2.2", - "yargs-parser": "13.0.0", - "yargs-unparser": "1.5.0" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node-environment-flags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz", - "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", - "requires": { - "object.getownpropertydescriptors": "2.0.3", - "semver": "5.7.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "2.0.1" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1", - "has-symbols": "1.0.0", - "object-keys": "1.1.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", - "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.13.0" - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -630,346 +131,23 @@ "is-wsl": "1.1.0" } }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "requires": { - "execa": "1.0.0", - "lcid": "2.0.0", - "mem": "4.3.0" - } - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" - }, - "p-limit": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", - "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "requires": { - "p-try": "2.2.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, "rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", - "requires": { - "glob": "7.1.3" - } - }, - "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "signal-exit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "3.0.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "requires": { - "has-flag": "3.0.0" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { - "string-width": "2.1.1" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "1.0.1" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" - } - } + "glob": "7.1.6" } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yargs": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz", - "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", - "requires": { - "cliui": "4.1.0", - "find-up": "3.0.0", - "get-caller-file": "2.0.5", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "3.1.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "13.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", - "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" - } - }, - "yargs-unparser": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz", - "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", - "requires": { - "flat": "4.1.0", - "lodash": "4.17.11", - "yargs": "12.0.5" - }, - "dependencies": { - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" - } - } - } } } } diff --git a/WebServer/package.json b/WebServer/package.json index c4824cd0f..e3c6ed743 100644 --- a/WebServer/package.json +++ b/WebServer/package.json @@ -1,19 +1,19 @@ { - "name": "@superalgos/saweb", + "name": "WebServer", "version": "0.1.0", - "description": "Superalgos web interface.", + "description": "Superalgos Web Server", "main": "server.js", - "author": "Superalgos, ltd.", + "author": "Superalgos", "license": "Apache-2.0", "repository": { "type": "git", - "url": "https://github.com/Superalgos/AAWeb.git" + "url": "https://github.com/Superalgos/WebServer.git" }, "dependencies": { - "@superalgos/mqservice": "0.0.12", "axios": "0.19.0", + "ccxt": "^1.23.67", "dotenv": "8.0.0", "open": "^6.4.0", - "rimraf": "^3.0.0" + "rimraf": "^3.0.2" } } diff --git a/WebServer/server.js b/WebServer/server.js index 8e4d05a81..6f6e974f0 100644 --- a/WebServer/server.js +++ b/WebServer/server.js @@ -121,11 +121,104 @@ function onBrowserRequest (request, response) { switch (requestParameters[1]) { + case 'CCXT': + { + getBody(processRequest) + + function getBody(callback) { + let body = '' + + request.on('data', function (data) { + body += data + // Too much POST data + if (body.length > 1e6) { + request.connection.destroy() + } + }) + + request.on('end', function () { + callback(body) + }) + } + async function processRequest(body) { + try { + let params = JSON.parse(body) + + const ccxt = require('ccxt') + + switch (params.method) { + case 'fetchMarkets': { + + const exchangeClass = ccxt[params.exchangeId] + const exchangeConstructorParams = { + 'timeout': 30000, + 'enableRateLimit': true, + verbose: false + } + + let ccxtExchange = new exchangeClass(exchangeConstructorParams) + let ccxtMarkets = [] + + if (ccxtExchange.has.fetchMarkets === true) { + ccxtMarkets = await ccxtExchange.fetchMarkets() + } + respondWithContent(JSON.stringify(ccxtMarkets), response) + return + } + case 'listExchanges': { + let exchanges = [] + for (let i = 0; i < ccxt.exchanges.length; i++) { + let exchangeId = ccxt.exchanges[i] + + const exchangeClass = ccxt[exchangeId] + const exchangeConstructorParams = { + 'timeout': 30000, + 'enableRateLimit': true, + verbose: false + } + let ccxtExchange + try { ccxtExchange = new exchangeClass(exchangeConstructorParams)} + catch (err) {} + if (ccxtExchange === undefined) {continue} + + + if (ccxtExchange.has.fetchOHLCV === params.has.fetchOHLCV) { + if (ccxtExchange.has.fetchMarkets === params.has.fetchMarkets) { + if (ccxtExchange.timeframes['1m'] !== undefined) { + let exchange = { + name: ccxtExchange.name, + id: ccxtExchange.id + } + exchanges.push(exchange) + } + } + } + } + respondWithContent(JSON.stringify(exchanges), response) + return + } + } + + let content = { + err: global.DEFAULT_FAIL_RESPONSE // method not supported + } + } catch (err) { + if (CONSOLE_LOG === true) { console.log('[INFO] server -> CCXT FetchMarkets -> Could not fetch markets.') } + let error = { + result: 'Fail Because', + message: err.message + } + respondWithContent(JSON.stringify(error), response) + } + } + break + } + case 'ResetLogsAndData': { try { let rimraf = require('rimraf') - rimraf.sync(process.env.STORAGE_PATH + '/AAMasters/AAMasters/AAJason.1.0') + rimraf.sync(process.env.STORAGE_PATH + '/Masters/Masters/AAJason.1.0') rimraf.sync(process.env.LOG_PATH) respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), response) @@ -171,13 +264,6 @@ function onBrowserRequest (request, response) { } break } - case 'MQService': - { - let filePath = process.env.PATH_TO_WEB_SERVER + 'node_modules/@superalgos/mqservice/orderLifeCicle/webDependency.js' - - respondWithFile(filePath, response) - break - } case 'LegacyPlotter.js': { @@ -339,7 +425,7 @@ function onBrowserRequest (request, response) { let fs = require('fs') try { - let filePath = './AppSchema.json' + let filePath = process.env.APP_SCHEMA_PATH + 'AppSchema.json' fs.readFile(filePath, onFileRead) } catch (e) { console.log('[ERROR] Error reading the App Schema.', e) @@ -361,7 +447,7 @@ function onBrowserRequest (request, response) { let fs = require('fs') try { - let filePath = './Workspace.json' + let filePath = process.env.WORKSPACE_PATH + 'Workspace.json' fs.readFile(filePath, onFileRead) } catch (e) { console.log('[ERROR] Error reading the Workspace.', e) diff --git a/Workspace.json b/Workspace.json index e1bd996eb..97ab2385c 100644 --- a/Workspace.json +++ b/Workspace.json @@ -1 +1 @@ -{"type":"Workspace","name":"My Workspace","rootNodes":[{"type":"Network","name":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","dataStorage":{"type":"Data Storage","name":"New Data Storage","sessionIndependentData":{"type":"Session Independent Data","name":"New Session Independent Data","singleMarketData":[{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"592901f9-9d7e-4d02-9c3e-9941fd1cbc62","savedPayload":{"position":{"x":25077.92118083212,"y":30760.520078448346},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"54e5d587-dae5-4901-8625-899f3b6eb361","savedPayload":{"position":{"x":24999.96233239647,"y":30798.741502613975},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"7f5856c1-cf3a-4525-8036-69da93e57771","savedPayload":{"position":{"x":24916.307713241193,"y":30821.98723359081},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"fad346d0-20f9-4cf4-9663-7eb54622b5f0","savedPayload":{"position":{"x":24829.80608108897,"y":30829.46566589062},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"2fc1f392-7d9b-409e-9cb7-85c14e1e7c07","savedPayload":{"position":{"x":24743.403145275464,"y":30820.922130470823},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"e7c4252c-3b6b-4b21-9f7a-6a6263739835","savedPayload":{"position":{"x":24660.04125415091,"y":30796.647567183296},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"3e9c58db-ca68-4089-9a02-d99f01428a41","savedPayload":{"position":{"x":24582.55919693599,"y":30757.468617166673},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"b47bf5eb-2f3e-462f-aa45-8e5c6ae784bc","savedPayload":{"position":{"x":24513.595532159667,"y":30704.71947257379},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"67a989ee-e8da-4079-9b0a-8a7509db45a5","savedPayload":{"position":{"x":24455.498734713103,"y":30640.196442258137},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"763cde69-4a76-498f-a753-87baa3b227f3","savedPayload":{"position":{"x":24410.247221353908,"y":30566.09678063027},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"079ae9a5-7138-4ab3-a1ef-c628e0ab89c3","savedPayload":{"position":{"x":24379.381978096328,"y":30484.943862794174},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"cec7c500-e69e-468a-884f-e2a27f4da93a","savedPayload":{"position":{"x":24363.954083780714,"y":30399.501254034563},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"051e19e2-bfcc-458d-97d5-ba6c8698845e","savedPayload":{"position":{"x":24364.48891684427,"y":30312.67859991563},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"bafc9397-8533-4d1b-a260-acd736973fad","savedPayload":{"position":{"x":24380.968264188476,"y":30227.4325417911},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"8b781568-b44a-4f2d-a14d-53f7bccc9448","savedPayload":{"position":{"x":24412.83094140432,"y":30146.666031929024},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"7e909437-bd0e-44c3-8a00-1eb542c6759a","savedPayload":{"position":{"x":24458.991903234295,"y":30073.129476954007},"targetPosition":{"x":24832.704328476622,"y":30358.975810950342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"89e10654-140d-4537-bd8d-8d651a05f947","savedPayload":{"position":{"x":24832.704328476622,"y":30358.975810950342},"targetPosition":{"x":25182.353063378618,"y":30044.150675960962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},{"type":"Single Market Data","name":"Binance ETH/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"35008294-cf41-44c9-a13b-b85c001a0b7b","savedPayload":{"position":{"x":24676.79452566828,"y":30562.32217639351},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"93f633b5-d135-4202-80bb-733502ccb3ca","savedPayload":{"position":{"x":24591.258502975765,"y":30547.42089669654},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"4585a24d-7770-4420-ac10-c6bdf37fc0f1","savedPayload":{"position":{"x":24509.916996574237,"y":30517.056136677857},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"833dab75-0015-41f0-a169-439b2976acaf","savedPayload":{"position":{"x":24435.539993905822,"y":30472.261931821376},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"1266801d-55f8-4e13-9a09-38935bd4bc36","savedPayload":{"position":{"x":24370.660314591005,"y":30414.563695048764},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"9757ef1e-7a05-4fdd-9ea7-072bd971d909","savedPayload":{"position":{"x":24317.487358294256,"y":30345.926270611904},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"d9c21529-18fe-47bd-9fdc-866983e2f51f","savedPayload":{"position":{"x":24277.83186626833,"y":30268.687023678474},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"0caa2082-5f28-4ac9-9eb1-db15489c4cb7","savedPayload":{"position":{"x":24253.044258732647,"y":30185.476244164525},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"2f8348ef-9d16-4f7a-a83f-d02030a322da","savedPayload":{"position":{"x":24243.968647932375,"y":30099.12757536608},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"cac6af1b-0fd1-4fbb-b84b-9510d517d53f","savedPayload":{"position":{"x":24250.914092908326,"y":30012.58151763525},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"2069081b-f980-4f8e-a830-7bd37a83fe29","savedPayload":{"position":{"x":24273.644074861986,"y":29928.78529316751},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"c082fd7c-571c-48e8-8505-7aa585e2ae33","savedPayload":{"position":{"x":24311.38455151953,"y":29850.59248188461},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"e1ebf6c9-6bab-4ba3-ad06-e14c2c9ddecd","savedPayload":{"position":{"x":24362.850316213102,"y":29780.665846192853},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"3130824c-f6be-410d-bcd2-f7c6ea4b9d66","savedPayload":{"position":{"x":24426.288764052435,"y":29721.38665380296},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"22666b2e-e4e1-483d-81e2-150f972ea576","savedPayload":{"position":{"x":24499.5395747824,"y":29674.773586514224},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"74011e06-512b-4d06-87ae-da2d9b406f59","savedPayload":{"position":{"x":24580.108279898253,"y":29642.41399642694},"targetPosition":{"x":24714.43172338346,"y":30093.331190565645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"12b2e81b-5374-44c6-85a4-7d25e9a02ce5","savedPayload":{"position":{"x":24714.43172338346,"y":30093.331190565645},"targetPosition":{"x":25182.353063378618,"y":30044.150675960962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},{"type":"Single Market Data","name":"Bitfinex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Candles","id":"09620607-67e8-4b2e-9193-f1283f4a702a","savedPayload":{"position":{"x":24468.774048607094,"y":30166.200373174976},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"847157cd-6269-4861-b344-446247f13c1a","savedPayload":{"position":{"x":24408.33270506377,"y":30103.868171983777},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"04d74201-ebcd-4f5e-97f7-ec40d6d0fb64","savedPayload":{"position":{"x":24360.374002165263,"y":30031.491227236475},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"a92f6068-6a21-4019-8d3e-90880619c74e","savedPayload":{"position":{"x":24326.53111601865,"y":29951.534248979857},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"7af7b172-fdc3-4c23-88f1-57724de75689","savedPayload":{"position":{"x":24307.956525521586,"y":29866.72007621063},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"6ffa7670-2f62-4763-9a3f-1820e3ac2293","savedPayload":{"position":{"x":24305.282766075685,"y":29779.93695385906},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"ab4e5b35-eac9-4010-b632-138c7c125a21","savedPayload":{"position":{"x":24318.60088935206,"y":29694.140177071953},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"174ad887-17bd-4e5a-a4eb-6ad5f746ad6e","savedPayload":{"position":{"x":24347.45736263585,"y":29612.25145218089},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"17ad4694-82b8-466e-9ec2-f5a1311a8d8b","savedPayload":{"position":{"x":24390.869513338916,"y":29537.05940149735},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"011387e9-3ca6-4940-8b04-91e85788ea79","savedPayload":{"position":{"x":24447.35899273619,"y":29471.12460012443},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"2ae0795a-c099-4255-808a-ad483439587a","savedPayload":{"position":{"x":24515.002119358465,"y":29416.692378642805},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"6ce57b1b-16c5-4e1f-b4c4-59eefa064a1a","savedPayload":{"position":{"x":24591.495387657604,"y":29375.616361070777},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"4f8ca46d-452a-443b-a6e8-b276d110f3a6","savedPayload":{"position":{"x":24674.233911125248,"y":29349.295341921516},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"9c183e9e-4d3b-414a-9827-6756b383f954","savedPayload":{"position":{"x":24760.400128578625,"y":29338.62565193356},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"693c1195-0c59-4364-afe0-f3106bea0360","savedPayload":{"position":{"x":24847.059752827347,"y":29343.970634602567},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"1ce59d6d-5339-4858-a5f7-eca99f50f35d","savedPayload":{"position":{"x":24931.26169430439,"y":29365.148272954346},"targetPosition":{"x":24774.889166107052,"y":29808.90128518617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"5d4574c2-d71c-424b-800d-c13eb7c610b6","savedPayload":{"position":{"x":24774.889166107052,"y":29808.90128518617},"targetPosition":{"x":25182.353063378618,"y":30044.150675960962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":"ff7fa4dd-80fb-4f9a-a437-12b38b00553d","savedPayload":{"position":{"x":24533.316501529964,"y":29723.459733937318},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"4195f92d-61a8-49ed-97aa-1226306eee53","savedPayload":{"position":{"x":24521.056376043674,"y":29637.505393513333},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"eb6fec22-3628-40d1-9379-7076eb21ccfb","savedPayload":{"position":{"x":24524.799071099053,"y":29550.761796929008},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"7f3ae634-45c2-4449-a430-19cd38ba9efe","savedPayload":{"position":{"x":24544.417133704857,"y":29466.182893328543},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"8fd83d8c-cc2a-4b31-8340-2a37ff59d355","savedPayload":{"position":{"x":24579.242494268314,"y":29386.64891583284},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"109e4657-22ce-4cd3-9d06-00d80f27aca5","savedPayload":{"position":{"x":24628.089216903856,"y":29314.868298655023},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"021bc9da-72cf-453a-acb2-1b31b05bb8a2","savedPayload":{"position":{"x":24689.293885057312,"y":29253.285444621724},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"e3380402-b1c2-42ed-a715-5a036a0e88af","savedPayload":{"position":{"x":24760.77224716163,"y":29203.99748396655},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"d7c3d02a-e16c-4681-9f47-0d5ae8381a88","savedPayload":{"position":{"x":24840.090193324188,"y":29168.68285907522},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"9ff8217e-6075-40e2-bece-8c95a9456089","savedPayload":{"position":{"x":24924.54664601981,"y":29148.544167143187},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"82271f8e-149d-4d34-be28-0786cd0286f9","savedPayload":{"position":{"x":25011.265542046305,"y":29144.267207170495},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"77f72406-a311-4090-89c8-6d00dbb7fcc2","savedPayload":{"position":{"x":25097.29377340734,"y":29155.997625899367},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"8dd72f23-ad3c-47f2-898d-d3da7de4323e","savedPayload":{"position":{"x":25179.701751863395,"y":29183.335957989082},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"f02c66da-7871-4009-9837-34b9a3d11cc3","savedPayload":{"position":{"x":25255.68317254564,"y":29225.351229329033},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"5848ff93-2035-4e4b-bf1d-3b7e57052bf2","savedPayload":{"position":{"x":25322.6505793024,"y":29280.612660245504},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"bcd350a1-3e92-42c6-ab65-b6508de84b50","savedPayload":{"position":{"x":25378.32347741513,"y":29347.23838898742},"targetPosition":{"x":24990.983968399883,"y":29614.328651249958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"f694924c-42ea-4375-b174-6bf54937d400","savedPayload":{"position":{"x":24990.983968399883,"y":29614.328651249958},"targetPosition":{"x":25182.353063378618,"y":30044.150675960962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}}],"id":"bf04ccea-266d-4115-b50e-fefdf29b873a","savedPayload":{"position":{"x":25182.353063378618,"y":30044.150675960962},"targetPosition":{"x":25642.570317699523,"y":30141.972873160634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":"i"}}},"sessionBasedData":{"type":"Session Based Data","name":"New Session Based Data","sessionReferences":[{"type":"Session Reference","name":"Back WHB Binance BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"86b1e87a-2356-4f92-adf2-4809df955a80","savedPayload":{"position":{"x":24888.010781989236,"y":29533.2821145601},"targetPosition":{"x":25088.782915738237,"y":29410.673688382354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"546accc1-5ef3-463b-97f3-f473bd9bf187","savedPayload":{"position":{"x":24854.2874228243,"y":29391.855089524764},"targetPosition":{"x":25088.782915738237,"y":29410.673688382354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"ab2d736e-230c-43b7-b4ee-1caee0837a81","savedPayload":{"position":{"x":24910.133371743836,"y":29257.616129632373},"targetPosition":{"x":25088.782915738237,"y":29410.673688382354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"87d5a6a8-96b3-4388-97c6-25d9c551ce06","savedPayload":{"position":{"x":25034.217374394557,"y":29181.839954947394},"targetPosition":{"x":25088.782915738237,"y":29410.673688382354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"b8c58249-e038-4702-8aef-aa9bf39ec90b","savedPayload":{"position":{"x":25088.782915738237,"y":29410.673688382354},"targetPosition":{"x":25305.986115458556,"y":29501.034331868144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"e4df41a3-ecea-41f6-8f58-bf11476c5815","savedPayload":{"position":{"x":25305.986115458556,"y":29501.034331868144},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"a55e8afb-ce16-4369-a7de-0fafdf9a8737"}}},{"type":"Session Reference","name":"Paper WHB Binance BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"56000a54-eabb-4f0e-99b4-18ac1d94d78a","savedPayload":{"position":{"x":24929.806135606672,"y":29379.185425699197},"targetPosition":{"x":25149.68898143849,"y":29295.556423739275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"1017f60b-aa9b-4af3-944f-4d31d05dbfa6","savedPayload":{"position":{"x":24922.644128373042,"y":29233.969813535427},"targetPosition":{"x":25149.68898143849,"y":29295.556423739275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"e5743b89-597f-4101-8d71-118b327f8898","savedPayload":{"position":{"x":25002.205538039685,"y":29112.278193217637},"targetPosition":{"x":25149.68898143849,"y":29295.556423739275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"54bc5a5d-4337-4780-a943-15ef0431ba34","savedPayload":{"position":{"x":25138.1006103068,"y":29060.59262756117},"targetPosition":{"x":25149.68898143849,"y":29295.556423739275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"ba0f455d-c7bd-457d-89fe-b7cdc31e55ef","savedPayload":{"position":{"x":25149.68898143849,"y":29295.556423739275},"targetPosition":{"x":25346.590159258725,"y":29424.28948877276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"aa900b62-2f28-446d-9306-7e4ccf127d0b","savedPayload":{"position":{"x":25346.590159258725,"y":29424.28948877276},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"f70c3363-6aa2-4a74-9f6e-d88f169c2e38"}}},{"type":"Session Reference","name":"Live Trading WHB Binance BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"f9f7fd12-77e6-49f8-a81c-a4cd8c738c7c","savedPayload":{"position":{"x":24999.205036179712,"y":29235.392401872745},"targetPosition":{"x":25230.710747499947,"y":29193.590709490458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"208f3789-572c-4bf6-a6aa-367547d5aedd","savedPayload":{"position":{"x":25018.84827444384,"y":29091.33334608585},"targetPosition":{"x":25230.710747499947,"y":29193.590709490458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"2628ab84-c337-4723-902a-a5d0f42a661c","savedPayload":{"position":{"x":25119.415776474794,"y":28986.333127519563},"targetPosition":{"x":25230.710747499947,"y":29193.590709490458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"4f57a067-443c-4c91-bae0-ce098f9cade6","savedPayload":{"position":{"x":25262.494174660424,"y":28960.498260840042},"targetPosition":{"x":25230.710747499947,"y":29193.590709490458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"fe2ac116-60d2-4155-b33b-f878a29dcc2b","savedPayload":{"position":{"x":25230.710747499947,"y":29193.590709490458},"targetPosition":{"x":25400.604669966364,"y":29356.312345940216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"c745005e-90af-40aa-a99e-ea2a3c37e46b","savedPayload":{"position":{"x":25400.604669966364,"y":29356.312345940216},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"75e03fc6-b4c4-4f92-8cbc-a674c2dacbb5"}}},{"type":"Session Reference","name":"Fwd WHB Binance BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"364d7a7a-2b03-4a13-9187-7e464dc28c46","savedPayload":{"position":{"x":25093.844187384148,"y":29106.799742046427},"targetPosition":{"x":25329.089114854287,"y":29108.248865740254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"38a2ff17-2439-4f6d-bf4e-599d3895f182","savedPayload":{"position":{"x":25139.62374422642,"y":28968.803001001434},"targetPosition":{"x":25329.089114854287,"y":29108.248865740254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"39b751e8-f9c1-4b5c-a0bd-cd7d212cca2e","savedPayload":{"position":{"x":25257.772632957443,"y":28884.06984069605},"targetPosition":{"x":25329.089114854287,"y":29108.248865740254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"04b0f849-0b82-4b9a-94b1-8697a9bcf5e0","savedPayload":{"position":{"x":25403.161993814996,"y":28884.96544839274},"targetPosition":{"x":25329.089114854287,"y":29108.248865740254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"7f334a42-ffba-4183-96cd-e1d4ffc2381c","savedPayload":{"position":{"x":25329.089114854287,"y":29108.248865740254},"targetPosition":{"x":25466.19024820259,"y":29299.41778344008},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"a3457399-ec51-45b4-a460-bf89ebb36166","savedPayload":{"position":{"x":25466.19024820259,"y":29299.41778344008},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"47045f08-10b3-469a-9f2a-c70283632892"}}},{"type":"Session Reference","name":"Back WHB Binance ETH/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance ETH/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"ede479e0-1fcd-4de3-a99d-8b296b2360d9","savedPayload":{"position":{"x":25210.50076643286,"y":28997.78651502074},"targetPosition":{"x":25441.4739261931,"y":29042.43710662132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"478298e6-ae4c-4572-8660-f77e589564da","savedPayload":{"position":{"x":25280.85767395154,"y":28870.551402225094},"targetPosition":{"x":25441.4739261931,"y":29042.43710662132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"4d3a9603-3944-4461-b7b7-7a4cf3c58c62","savedPayload":{"position":{"x":25412.56453068087,"y":28808.970786328588},"targetPosition":{"x":25441.4739261931,"y":29042.43710662132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"74cd1f5b-826b-442c-a55f-4f35d8e504d7","savedPayload":{"position":{"x":25555.31379390166,"y":28836.566369555538},"targetPosition":{"x":25441.4739261931,"y":29042.43710662132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"462ce587-ad55-4497-9f28-f951c84b8b9e","savedPayload":{"position":{"x":25441.4739261931,"y":29042.43710662132},"targetPosition":{"x":25541.1134557618,"y":29255.54327736079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"3e2dc12e-3709-47ff-a46d-1bf26f466410","savedPayload":{"position":{"x":25541.1134557618,"y":29255.54327736079},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"2c490c53-7f04-44a5-98b6-e7feff64cedd"}}},{"type":"Session Reference","name":"Paper WHB Binance ETH/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance ETH/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"5f3820e7-130d-4475-a8b7-852580edfcf5","savedPayload":{"position":{"x":25345.202173440484,"y":28912.06503549509},"targetPosition":{"x":25564.038051556963,"y":28998.396572657944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"5716f1f6-88b4-47ba-bf83-6c2e956ce4e4","savedPayload":{"position":{"x":25437.740511533833,"y":28799.924390113345},"targetPosition":{"x":25564.038051556963,"y":28998.396572657944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"880548a9-2bac-4458-8265-e04451f724df","savedPayload":{"position":{"x":25578.520217220517,"y":28763.593372642263},"targetPosition":{"x":25564.038051556963,"y":28998.396572657944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"e52469b7-751a-4fcf-82b9-b3401186a1d6","savedPayload":{"position":{"x":25713.76822785443,"y":28816.94919690993},"targetPosition":{"x":25564.038051556963,"y":28998.396572657944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"45e94cc5-6d24-47f5-b58e-2f860b27ff1c","savedPayload":{"position":{"x":25564.038051556963,"y":28998.396572657944},"targetPosition":{"x":25622.82287267104,"y":29226.182921385207},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"b2ea28f5-ae99-4353-8c7f-d1ee8c0c5542","savedPayload":{"position":{"x":25622.82287267104,"y":29226.182921385207},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"2ac92ee9-1091-49c0-9137-90200a7d9165"}}},{"type":"Session Reference","name":"Live Trading WHB Binance ETH/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance ETH/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"e4ac3d13-3fd4-4dd4-b674-1365ca7f7175","savedPayload":{"position":{"x":25493.36131354792,"y":28852.554445643138},"targetPosition":{"x":25692.607716656086,"y":28977.627011413453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"9a8c0690-77f2-4cdf-8da6-5e581995e436","savedPayload":{"position":{"x":25604.92980009967,"y":28759.32708285589},"targetPosition":{"x":25692.607716656086,"y":28977.627011413453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"2360d9de-88d5-4680-8272-e3949d066ce9","savedPayload":{"position":{"x":25749.988270713195,"y":28749.482873035955},"targetPosition":{"x":25692.607716656086,"y":28977.627011413453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"25bfcb3b-bbe3-4485-83f8-fea7747cabb4","savedPayload":{"position":{"x":25873.129319970205,"y":28826.78196974217},"targetPosition":{"x":25692.607716656086,"y":28977.627011413453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"cc8e8727-f774-4b8d-a59a-890a18132766","savedPayload":{"position":{"x":25692.607716656086,"y":28977.627011413453},"targetPosition":{"x":25708.53598273712,"y":29212.33654722221},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"79cf1626-ef93-46ea-b774-cdaaa4ac2091","savedPayload":{"position":{"x":25708.53598273712,"y":29212.33654722221},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"ba093b64-4bd1-460a-b3d7-c27e02c37a33"}}},{"type":"Session Reference","name":"Fwd WHB Binance ETH/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance ETH/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"e6e32de6-53f2-4732-b28c-712e55795fa8","savedPayload":{"position":{"x":25649.932804936107,"y":28821.2813072272},"targetPosition":{"x":25822.80463574783,"y":28980.835705385678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"3ec0e9cb-ace8-4be5-a0ce-3361baccdacf","savedPayload":{"position":{"x":25776.73210894839,"y":28750.141973060272},"targetPosition":{"x":25822.80463574783,"y":28980.835705385678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"697dc21f-55c7-4741-80f2-c6a70efef553","savedPayload":{"position":{"x":25921.12955225047,"y":28767.11980365008},"targetPosition":{"x":25822.80463574783,"y":28980.835705385678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"23595798-0330-41e2-881e-6540b1a1a4b8","savedPayload":{"position":{"x":26027.970219389535,"y":28865.729844766553},"targetPosition":{"x":25822.80463574783,"y":28980.835705385678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"0db9a4d1-d0f2-4f3b-a676-0653c29c8e31","savedPayload":{"position":{"x":25822.80463574783,"y":28980.835705385678},"targetPosition":{"x":25795.333928798285,"y":29214.47567653703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"9cb3314b-848d-4e79-aa58-10daac4a695c","savedPayload":{"position":{"x":25795.333928798285,"y":29214.47567653703},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"91810c8d-9b4a-49f5-a932-cfce097e8ca1"}}},{"type":"Session Reference","name":"Back WHB Bitfinex BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"8f49b276-aad8-406c-af28-4aaa1a611dbd","savedPayload":{"position":{"x":25809.584793252616,"y":28819.310589468045},"targetPosition":{"x":25950.195108906515,"y":29007.913386349806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"2e5ab20e-2550-42e5-8e15-833c038d6816","savedPayload":{"position":{"x":25947.296916506297,"y":28772.681848624266},"targetPosition":{"x":25950.195108906515,"y":29007.913386349806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"a3267b2e-ef81-472c-9c8d-ffb3b82c29b7","savedPayload":{"position":{"x":26086.116050750923,"y":28815.903559965736},"targetPosition":{"x":25950.195108906515,"y":29007.913386349806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"c9aa704a-9f97-460c-bd6c-fca0f01f0fc8","savedPayload":{"position":{"x":26173.018004993886,"y":28932.46649881196},"targetPosition":{"x":25950.195108906515,"y":29007.913386349806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"4b39ec21-3cc5-431d-a54e-1a319745b20a","savedPayload":{"position":{"x":25950.195108906515,"y":29007.913386349806},"targetPosition":{"x":25880.260910904075,"y":29232.527463846447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"616ff7dd-565e-4add-93d4-c23a8e55ebf5","savedPayload":{"position":{"x":25880.260910904075,"y":29232.527463846447},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"ba8e130e-300c-4d0f-963d-95aaddb65ca8"}}},{"type":"Session Reference","name":"Paper WHB Bitfinex BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"c858c974-0222-44d4-b81d-031d114a66d1","savedPayload":{"position":{"x":25966.880521516792,"y":28846.709402795343},"targetPosition":{"x":26070.441006356756,"y":29057.937956356698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"6f940a8b-ff20-433a-8f55-5f10b28b69f0","savedPayload":{"position":{"x":26110.81584282195,"y":28826.179141119133},"targetPosition":{"x":26070.441006356756,"y":29057.937956356698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"4892f3d3-b060-4a19-aa06-611f6150d265","savedPayload":{"position":{"x":26239.329348887626,"y":28894.172869671267},"targetPosition":{"x":26070.441006356756,"y":29057.937956356698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"f6256868-3111-43e4-85d2-f27bdb4ffa43","savedPayload":{"position":{"x":26303.33324841014,"y":29024.719295166662},"targetPosition":{"x":26070.441006356756,"y":29057.937956356698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"d2f11655-0778-4cb1-815a-3d810151a323","savedPayload":{"position":{"x":26070.441006356756,"y":29057.937956356698},"targetPosition":{"x":25960.42484253757,"y":29265.877177184375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"f1f448c9-f6f1-49c1-a342-d472b7f90694","savedPayload":{"position":{"x":25960.42484253757,"y":29265.877177184375},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"62a4d396-f709-467b-bca1-ff0cc9ef7333"}}},{"type":"Session Reference","name":"Live Trading WHB Bitfinex BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"65cd38ba-9a99-40f0-8593-1925669fd691","savedPayload":{"position":{"x":26116.46347235803,"y":28902.544713482486},"targetPosition":{"x":26179.447498279947,"y":29129.205888672634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"42972429-0b47-4bd6-8799-2428bffa4774","savedPayload":{"position":{"x":26261.720446979016,"y":28908.812064411897},"targetPosition":{"x":26179.447498279947,"y":29129.205888672634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"0e29b6a1-bc13-4f2f-b56b-790b2bb3dfd1","savedPayload":{"position":{"x":26375.55195155163,"y":28999.26236529834},"targetPosition":{"x":26179.447498279947,"y":29129.205888672634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"07f541ae-a1f5-46da-b5aa-66e83549896b","savedPayload":{"position":{"x":26414.478220319677,"y":29139.346675495846},"targetPosition":{"x":26179.447498279947,"y":29129.205888672634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"59a39e17-5d07-47b4-8322-66cdbfcda5da","savedPayload":{"position":{"x":26179.447498279947,"y":29129.205888672634},"targetPosition":{"x":26033.09583715303,"y":29313.389132061664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"e682eab6-188e-4500-a05e-028858c1ba08","savedPayload":{"position":{"x":26033.09583715303,"y":29313.389132061664},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"0c3058b5-4a72-40dc-8b16-71fe24826039"}}},{"type":"Session Reference","name":"Fwd WHB Bitfinex BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"89647441-3440-4a87-b0ee-739814ef50fd","savedPayload":{"position":{"x":26253.239777790408,"y":28984.9151169911},"targetPosition":{"x":26273.502499332517,"y":29219.29023933905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"b2cbc596-e96f-4347-9444-3e7c2a5c6117","savedPayload":{"position":{"x":26394.871853673034,"y":29017.766653407085},"targetPosition":{"x":26273.502499332517,"y":29219.29023933905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"f814efb6-55d9-46d4-9052-527d023225e4","savedPayload":{"position":{"x":26490.14496139021,"y":29127.593350114326},"targetPosition":{"x":26273.502499332517,"y":29219.29023933905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"bee2202f-97e9-457f-9d64-b8d0811ec31f","savedPayload":{"position":{"x":26502.668012007813,"y":29272.445141842778},"targetPosition":{"x":26273.502499332517,"y":29219.29023933905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"dedd2695-fce4-4ce2-bf20-fbd1ec5d97a5","savedPayload":{"position":{"x":26273.502499332517,"y":29219.29023933905},"targetPosition":{"x":26095.799171188075,"y":29373.445365839278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"a7a8585b-5eab-4ca2-8fc6-0d968dabe4f8","savedPayload":{"position":{"x":26095.799171188075,"y":29373.445365839278},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"817c2b97-fc39-47e4-8d6a-5f7ba7419a6a"}}},{"type":"Session Reference","name":"Back WHB Bitfinex ETH/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex ETH/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"fddce204-922c-4ffd-8840-03f31ba1d5a0","savedPayload":{"position":{"x":26372.551684777514,"y":29091.0155880221},"targetPosition":{"x":26349.40307926016,"y":29325.123293838275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"f26355ba-9fb4-44ad-886a-947eb9f3cbbe","savedPayload":{"position":{"x":26505.735751446555,"y":29149.332590253096},"targetPosition":{"x":26349.40307926016,"y":29325.123293838275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"c428326e-c5ce-4110-94ab-2fab6f0f83b1","savedPayload":{"position":{"x":26579.206050892488,"y":29274.795666347374},"targetPosition":{"x":26349.40307926016,"y":29325.123293838275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"b276f268-22e3-49dc-a199-840af6ac06b7","savedPayload":{"position":{"x":26564.8994258906,"y":29419.482185570032},"targetPosition":{"x":26349.40307926016,"y":29325.123293838275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"28f4f314-58f6-4b9f-85c8-c654b6ce337c","savedPayload":{"position":{"x":26349.40307926016,"y":29325.123293838275},"targetPosition":{"x":26146.399557806504,"y":29444.000735505426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"77f2ab45-ca76-4017-afa8-6794653a3480","savedPayload":{"position":{"x":26146.399557806504,"y":29444.000735505426},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"1fe20ab0-5d95-4cbf-a755-4d44a10fa987"}}},{"type":"Session Reference","name":"Paper WHB Bitfinex ETH/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex ETH/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"9d5a7433-eb7d-4107-8188-131940bc9e39","savedPayload":{"position":{"x":26470.336169425776,"y":29217.233002288027},"targetPosition":{"x":26404.564534846155,"y":29443.1010344321},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"e5d4f9e5-4782-44c9-bb0a-877cb36b30b9","savedPayload":{"position":{"x":26590.536803227496,"y":29299.02955476659},"targetPosition":{"x":26404.564534846155,"y":29443.1010344321},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"64be9816-2463-43a6-a934-808c7c6bf23a","savedPayload":{"position":{"x":26639.70235147246,"y":29435.85651566789},"targetPosition":{"x":26404.564534846155,"y":29443.1010344321},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"d06fb416-37b5-4c16-863c-1e2b23ca04ec","savedPayload":{"position":{"x":26599.053245806615,"y":29575.45063650498},"targetPosition":{"x":26404.564534846155,"y":29443.1010344321},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"21b729a1-3c73-4f62-91c7-e2e46c72e1fe","savedPayload":{"position":{"x":26404.564534846155,"y":29443.1010344321},"targetPosition":{"x":26183.1738615305,"y":29522.652562567975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"e9cb05ca-3354-4b73-8cbe-e9d3f603ff02","savedPayload":{"position":{"x":26183.1738615305,"y":29522.652562567975},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"0dd492b9-4916-42bf-9c59-f5aeb684e265"}}},{"type":"Session Reference","name":"Live Trading WHB Bitfinex ETH/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex ETH/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"2858cc5d-81ad-4354-b35b-c022c626e600","savedPayload":{"position":{"x":26543.263298390048,"y":29359.26917712715},"targetPosition":{"x":26437.10840887939,"y":29569.2058706633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"0dfe277f-4252-4c5f-90bc-da05b214baf6","savedPayload":{"position":{"x":26646.3872109051,"y":29461.75979636277},"targetPosition":{"x":26437.10840887939,"y":29569.2058706633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"536c524c-a229-4929-a418-9ec35be6e39a","savedPayload":{"position":{"x":26669.573734171194,"y":29605.29116402345},"targetPosition":{"x":26437.10840887939,"y":29569.2058706633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"ccc20f7c-ec74-4fbb-8b80-95ce4a7a7d1b","savedPayload":{"position":{"x":26603.966404381616,"y":29735.03917611456},"targetPosition":{"x":26437.10840887939,"y":29569.2058706633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"bd33cba9-2775-4933-9807-583c1de825fe","savedPayload":{"position":{"x":26437.10840887939,"y":29569.2058706633},"targetPosition":{"x":26204.86977755266,"y":29606.722453388775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"5c8b1f96-3237-4d74-9c86-b05a81d96e44","savedPayload":{"position":{"x":26204.86977755266,"y":29606.722453388775},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"e97dbe38-8a71-4d2b-b632-d2f11d028747"}}},{"type":"Session Reference","name":"Fwd WHB Bitfinex ETH/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex ETH/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"eb3a899f-10d6-487d-9b24-b244723886c4","savedPayload":{"position":{"x":26588.849625759914,"y":29512.287240958936},"targetPosition":{"x":26445.926458761747,"y":29699.1434535801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"48ad5afb-bdba-4c7c-9ea3-86345a6d6b50","savedPayload":{"position":{"x":26671.3850558311,"y":29631.9817318375},"targetPosition":{"x":26445.926458761747,"y":29699.1434535801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"1116b1d8-6af4-40da-ad35-6102d1c6aab2","savedPayload":{"position":{"x":26667.80296487766,"y":29777.32971767877},"targetPosition":{"x":26445.926458761747,"y":29699.1434535801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"eb34d942-f25c-4e7e-82c9-0fd3fa462380","savedPayload":{"position":{"x":26579.471589893015,"y":29892.813208087726},"targetPosition":{"x":26445.926458761747,"y":29699.1434535801},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"6ad19ddf-a494-4027-a881-82ebf0a1105d","savedPayload":{"position":{"x":26445.926458761747,"y":29699.1434535801},"targetPosition":{"x":26210.74847747423,"y":29693.347508666644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"3f3a01ac-edd4-497b-b400-89a429c8b149","savedPayload":{"position":{"x":26210.74847747423,"y":29693.347508666644},"targetPosition":{"x":25740.392514899195,"y":29681.75561883973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"9762dce8-9683-4409-859a-a699892770ab"}}}],"id":"29ca14e5-dabe-470a-be64-ed7996bd1e55","savedPayload":{"position":{"x":25740.392514899195,"y":29681.75561883973},"targetPosition":{"x":25642.570317699523,"y":30141.972873160634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"0726a9e4-23b6-4d27-a8de-e91a9665a8ba","savedPayload":{"position":{"x":25642.570317699523,"y":30141.972873160634},"targetPosition":{"x":25933.35455636258,"y":31036.91473736396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"d"}}},"dataMining":{"type":"Data Mining","name":"New Data Mining","taskManagers":[{"type":"Task Manager","name":"Masters Binance BTC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Charly","code":" {\n \"repo\": \"AACharly-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"d3293207-4aab-432e-8ab6-decc3f546222","savedPayload":{"position":{"x":25043.00163401839,"y":30023.530142883745},"targetPosition":{"x":25271.263112496203,"y":30080.44212143865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"0f6c7970-d8e5-4218-b5e4-829af1dfc923","savedPayload":{"position":{"x":25271.263112496203,"y":30080.44212143865},"targetPosition":{"x":25499.524590974015,"y":30137.354099993554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"013410fa-6c6f-4126-87c4-8ec7a81974e6","savedPayload":{"position":{"x":25499.524590974015,"y":30137.354099993554},"targetPosition":{"x":25727.786069451828,"y":30194.26607854846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"d9bac28e-c8b7-4fc6-84fb-1dc5ed31f7f5","savedPayload":{"position":{"x":25727.786069451828,"y":30194.26607854846},"targetPosition":{"x":26184.309026407456,"y":30308.090035658268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Olivia","code":" {\n \"repo\": \"AAOlivia-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"1aa99e1d-016e-4991-819b-1dbb9e9576c0","savedPayload":{"position":{"x":25265.128770509924,"y":29589.733824707575},"targetPosition":{"x":25470.882523774097,"y":29703.784992512286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"5e4d6881-a110-4757-8e74-997678736e95","savedPayload":{"position":{"x":25470.882523774097,"y":29703.784992512286},"targetPosition":{"x":25676.63627703827,"y":29817.836160316998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"459c5a35-d6f4-4339-a25b-a236e94fe994","savedPayload":{"position":{"x":25434.311490341446,"y":29414.539989752506},"targetPosition":{"x":25555.473883689858,"y":29616.18807503475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"5e22391b-cfe9-4402-a197-bc6b118b8f3f","savedPayload":{"position":{"x":25555.473883689858,"y":29616.18807503475},"targetPosition":{"x":25676.63627703827,"y":29817.836160316998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"c0a2ff2c-9ad2-4762-9cdf-bc140bb8b98f","savedPayload":{"position":{"x":25676.63627703827,"y":29817.836160316998},"targetPosition":{"x":25845.860526827997,"y":29981.25411876409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2fcc3a27-775a-44e6-8ef3-8b876463f691","savedPayload":{"position":{"x":25845.860526827997,"y":29981.25411876409},"targetPosition":{"x":26184.309026407456,"y":30308.090035658268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Tom","code":" {\n \"repo\": \"AATom-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"6644d8de-60d2-4aa8-8183-e86af16e1391","savedPayload":{"position":{"x":25747.453679618462,"y":29226.385180059875},"targetPosition":{"x":25868.616072966874,"y":29428.03326534212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"5a5314c2-6717-4451-a74b-725802787d42","savedPayload":{"position":{"x":25868.616072966874,"y":29428.03326534212},"targetPosition":{"x":25989.778466315285,"y":29629.681350624367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"33f52354-f07d-4050-9f48-b2caa7934021","savedPayload":{"position":{"x":25981.567130351432,"y":29159.25422831812},"targetPosition":{"x":25985.67279833336,"y":29394.467789471244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"2954ca46-18ab-4710-b541-9504c005c66b","savedPayload":{"position":{"x":25985.67279833336,"y":29394.467789471244},"targetPosition":{"x":25989.778466315285,"y":29629.681350624367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"74b5385e-a4ac-49bf-bb41-ef9922a792b5","savedPayload":{"position":{"x":25989.778466315285,"y":29629.681350624367},"targetPosition":{"x":26054.62198634601,"y":29855.817578969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2f031ed1-61e4-480a-8c87-29ccd7d7ea2e","savedPayload":{"position":{"x":26054.62198634601,"y":29855.817578969},"targetPosition":{"x":26184.309026407456,"y":30308.090035658268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Chris","code":" {\n \"repo\": \"AAChris-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"4bb099b9-83dd-43c8-b437-e5ebf772ac56","savedPayload":{"position":{"x":26346.833626108317,"y":29152.87847791858},"targetPosition":{"x":26350.939294090243,"y":29388.092039071704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"d9c5bddd-336d-4bb3-b6d0-362c61cc1fc9","savedPayload":{"position":{"x":26350.939294090243,"y":29388.092039071704},"targetPosition":{"x":26355.04496207217,"y":29623.305600224827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"19ed78ae-6b46-4018-8643-6cb3e559bbf1","savedPayload":{"position":{"x":26583.147297681593,"y":29211.79809369648},"targetPosition":{"x":26469.09612987688,"y":29417.551846960654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"a3234576-9849-4f7b-8386-af2bf2c0c306","savedPayload":{"position":{"x":26469.09612987688,"y":29417.551846960654},"targetPosition":{"x":26355.04496207217,"y":29623.305600224827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"70fa2736-b5e9-4dca-a6aa-42a04b909cad","savedPayload":{"position":{"x":26355.04496207217,"y":29623.305600224827},"targetPosition":{"x":26298.132983517266,"y":29851.56707870264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"13fb801e-73d5-41f9-a4bc-8dc104b459a4","savedPayload":{"position":{"x":26298.132983517266,"y":29851.56707870264},"targetPosition":{"x":26184.309026407456,"y":30308.090035658268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Paula","code":" {\n \"repo\": \"AAPaula-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"8fa0c7ef-ab20-4fc9-b264-abdc14a16e86","savedPayload":{"position":{"x":26902.66523735815,"y":29388.909779760736},"targetPosition":{"x":26788.614069553438,"y":29594.66353302491},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"2e93a0a6-4c8f-4244-9ed1-c7d684117a87","savedPayload":{"position":{"x":26788.614069553438,"y":29594.66353302491},"targetPosition":{"x":26674.562901748726,"y":29800.41728628908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"b6278e49-c7cd-4baa-9a2e-f2f6c3c2e580","savedPayload":{"position":{"x":27077.85907231322,"y":29558.092499592258},"targetPosition":{"x":26876.210987030972,"y":29679.25489294067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"58c149c6-5a07-412a-b1a7-13521c814ab7","savedPayload":{"position":{"x":26876.210987030972,"y":29679.25489294067},"targetPosition":{"x":26674.562901748726,"y":29800.41728628908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"db2193cf-1866-4804-b92f-1647220ff9d4","savedPayload":{"position":{"x":26674.562901748726,"y":29800.41728628908},"targetPosition":{"x":26511.144943301635,"y":29969.64153607881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"e5616bf3-5c8b-462d-ad1c-9c748c077806","savedPayload":{"position":{"x":26511.144943301635,"y":29969.64153607881},"targetPosition":{"x":26184.309026407456,"y":30308.090035658268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":""}}}],"id":"02b12d6c-bf20-4692-bc45-d402e34af7fb","savedPayload":{"position":{"x":26184.309026407456,"y":30308.090035658268},"targetPosition":{"x":26313.996066468902,"y":30760.362492347536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Binance 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"795d5f82-d28c-4dda-9d98-e2cd30d5bc2d","savedPayload":{"position":{"x":25379.765227210595,"y":29638.522264243984},"targetPosition":{"x":25592.97358196542,"y":29737.942952848785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"84c49217-eeb2-4023-8b6b-50317446e8cf","savedPayload":{"position":{"x":25592.97358196542,"y":29737.942952848785},"targetPosition":{"x":25806.181936720244,"y":29837.363641453587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"634cc423-73b3-421a-adcf-dbf7ebeccb4d","savedPayload":{"position":{"x":25536.31492229152,"y":29451.953602711765},"targetPosition":{"x":25671.248429505882,"y":29644.658622082676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"c357019c-85d1-4ed4-b9f2-de63e4322b0d","savedPayload":{"position":{"x":25671.248429505882,"y":29644.658622082676},"targetPosition":{"x":25806.181936720244,"y":29837.363641453587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"4ade9244-cd63-42bd-a411-24d92f50bb5a","savedPayload":{"position":{"x":25806.181936720244,"y":29837.363641453587},"targetPosition":{"x":25986.3934252704,"y":29988.579035029932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"71c08034-6dcb-42b7-b62d-119eab427c32","savedPayload":{"position":{"x":25986.3934252704,"y":29988.579035029932},"targetPosition":{"x":26346.81640237071,"y":30291.00982218262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f52ee496-65f8-4e66-9bcd-bf0fd14b8502","savedPayload":{"position":{"x":25947.978131096574,"y":29194.717880220833},"targetPosition":{"x":26062.029298901285,"y":29400.471633485005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"b5609847-a851-4b96-b15a-d082175f5f67","savedPayload":{"position":{"x":26062.029298901285,"y":29400.471633485005},"targetPosition":{"x":26176.080466705997,"y":29606.225386749178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"b56d3504-8972-456a-9713-1daf463bcfd7","savedPayload":{"position":{"x":26184.29180266985,"y":29135.798264442932},"targetPosition":{"x":26180.186134687923,"y":29371.011825596055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"97cdf421-0418-45be-8b61-7ee58e781733","savedPayload":{"position":{"x":26180.186134687923,"y":29371.011825596055},"targetPosition":{"x":26176.080466705997,"y":29606.225386749178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"aaa718fe-a80b-44d6-98aa-b4fa8ce6b6c9","savedPayload":{"position":{"x":26176.080466705997,"y":29606.225386749178},"targetPosition":{"x":26232.9924452609,"y":29834.48686522699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"87a74483-bb59-4a6d-8e3b-34528a10f36c","savedPayload":{"position":{"x":26232.9924452609,"y":29834.48686522699},"targetPosition":{"x":26346.81640237071,"y":30291.00982218262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"68a8a6e4-882e-47e9-95bf-e483fd87fcdd","savedPayload":{"position":{"x":26668.533698595023,"y":29169.65975643446},"targetPosition":{"x":26639.864009804838,"y":29403.155633923947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"d11f8489-a2ac-4ea4-a4c0-249fe2ac29c8","savedPayload":{"position":{"x":26639.864009804838,"y":29403.155633923947},"targetPosition":{"x":26611.194321014653,"y":29636.651511413434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"13e178e4-dbbd-4a0e-a773-a296152ee3e3","savedPayload":{"position":{"x":26894.34755612593,"y":29260.894477033948},"targetPosition":{"x":26752.77093857029,"y":29448.77299422369},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"8e32c2ae-f203-4431-8b50-28a3cb5f16ed","savedPayload":{"position":{"x":26752.77093857029,"y":29448.77299422369},"targetPosition":{"x":26611.194321014653,"y":29636.651511413434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"b5e99191-4c57-402c-8ba8-1ea5bdfca75a","savedPayload":{"position":{"x":26611.194321014653,"y":29636.651511413434},"targetPosition":{"x":26523.06834813334,"y":29854.770948336496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"931746d4-0f26-47b8-b127-33a3f26a9560","savedPayload":{"position":{"x":26523.06834813334,"y":29854.770948336496},"targetPosition":{"x":26346.81640237071,"y":30291.00982218262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"472381d9-f130-46ad-8ac9-91bbbc256d55","savedPayload":{"position":{"x":27266.2041937045,"y":29572.919244476958},"targetPosition":{"x":27105.764494990388,"y":29744.969757223756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"ac7f6aca-37fa-4b03-8cf7-409bd8e1b2d7","savedPayload":{"position":{"x":27105.764494990388,"y":29744.969757223756},"targetPosition":{"x":26945.324796276276,"y":29917.020269970555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"9969f9d6-f4f8-4022-a3c3-838cdfa18014","savedPayload":{"position":{"x":27395.265018746963,"y":29779.459739138932},"targetPosition":{"x":27170.29490751162,"y":29848.240004554744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"9a8105f6-16b6-4505-bdfb-f02e02c83c6d","savedPayload":{"position":{"x":27170.29490751162,"y":29848.240004554744},"targetPosition":{"x":26945.324796276276,"y":29917.020269970555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"65858235-8515-406b-aca6-5f10f8ae76bb","savedPayload":{"position":{"x":26945.324796276276,"y":29917.020269970555},"targetPosition":{"x":26745.821998307754,"y":30041.683454041242},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"20f46b74-55a3-4c18-a1c6-9fa51f6f2bde","savedPayload":{"position":{"x":26745.821998307754,"y":30041.683454041242},"targetPosition":{"x":26346.81640237071,"y":30291.00982218262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"89c6db49-2ab7-4fcd-a55a-76fd04878766","savedPayload":{"position":{"x":26346.81640237071,"y":30291.00982218262},"targetPosition":{"x":26313.996066468902,"y":30760.362492347536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Binance ETH/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Charly","code":" {\n \"repo\": \"AACharly-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"aeead25b-9647-4d4c-9390-4872ff88d4a7","savedPayload":{"position":{"x":25813.98454890657,"y":29378.936692370724},"targetPosition":{"x":25952.260671414784,"y":29569.257447423886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"cf58ef52-3543-4077-bf32-fc4367e48a79","savedPayload":{"position":{"x":25952.260671414784,"y":29569.257447423886},"targetPosition":{"x":26090.536793923,"y":29759.57820247705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"55f1fe9e-be70-489d-967e-5b6eb25fa4f1","savedPayload":{"position":{"x":26090.536793923,"y":29759.57820247705},"targetPosition":{"x":26228.812916431212,"y":29949.89895753021},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0ec9f294-ceb2-4cc3-af5b-3830c38c96fc","savedPayload":{"position":{"x":26228.812916431212,"y":29949.89895753021},"targetPosition":{"x":26505.365161447637,"y":30330.540467636532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Olivia","code":" {\n \"repo\": \"AAOlivia-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"67c96034-4797-4af5-95e9-a1f66954a6e1","savedPayload":{"position":{"x":26262.982705933126,"y":29189.41000449832},"targetPosition":{"x":26347.28854773687,"y":29409.03423107106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"29399ab3-3616-4ed8-abe7-0e78c0965f16","savedPayload":{"position":{"x":26347.28854773687,"y":29409.03423107106},"targetPosition":{"x":26431.594389540613,"y":29628.658457643796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"ec3ffd7a-48db-45b8-8243-51c0f21e3686","savedPayload":{"position":{"x":26505.196614734403,"y":29163.952296843054},"targetPosition":{"x":26468.395502137508,"y":29396.305377243425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"933788b8-3107-4767-822f-06f833585956","savedPayload":{"position":{"x":26468.395502137508,"y":29396.305377243425},"targetPosition":{"x":26431.594389540613,"y":29628.658457643796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"fb4b665b-ee5a-406e-ab18-1141a808b813","savedPayload":{"position":{"x":26431.594389540613,"y":29628.658457643796},"targetPosition":{"x":26456.184646842954,"y":29862.619127641374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"490cbd3e-8f5a-491a-8901-79eb6ef3f4db","savedPayload":{"position":{"x":26456.184646842954,"y":29862.619127641374},"targetPosition":{"x":26505.365161447637,"y":30330.540467636532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Tom","code":" {\n \"repo\": \"AATom-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"dc76cc35-2319-4354-80bb-51fbded16823","savedPayload":{"position":{"x":26866.021029109528,"y":29221.101269769286},"targetPosition":{"x":26829.219916512633,"y":29453.454350169657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"564fe328-67b3-4571-82a3-a80b81c688d1","savedPayload":{"position":{"x":26829.219916512633,"y":29453.454350169657},"targetPosition":{"x":26792.418803915738,"y":29685.80743057003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"72ffcdb2-2712-44b9-a490-594bb530d3cf","savedPayload":{"position":{"x":27088.513281108993,"y":29320.161202618343},"targetPosition":{"x":26940.466042512366,"y":29502.984316594186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"e781bd49-62b5-467a-8156-819d6ed2e299","savedPayload":{"position":{"x":26940.466042512366,"y":29502.984316594186},"targetPosition":{"x":26792.418803915738,"y":29685.80743057003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"204eb6e4-f8f0-4746-b90c-521211d478bf","savedPayload":{"position":{"x":26792.418803915738,"y":29685.80743057003},"targetPosition":{"x":26696.73425642637,"y":29900.71844292553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0b5ca603-6592-4c3d-a234-3bc72ac0d423","savedPayload":{"position":{"x":26696.73425642637,"y":29900.71844292553},"targetPosition":{"x":26505.365161447637,"y":30330.540467636532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Chris","code":" {\n \"repo\": \"AAChris-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"b1647f00-adab-40b4-a722-6cb1358c999d","savedPayload":{"position":{"x":27372.421903800376,"y":29550.06587216021},"targetPosition":{"x":27224.374665203748,"y":29732.88898613605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"b295a72a-4b31-423f-89cf-8be31c9eaac8","savedPayload":{"position":{"x":27224.374665203748,"y":29732.88898613605},"targetPosition":{"x":27076.32742660712,"y":29915.712100111894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"5eb27a70-dce2-40d4-85f8-feaf53b8e95c","savedPayload":{"position":{"x":27515.575879752596,"y":29747.100416504407},"targetPosition":{"x":27295.951653179858,"y":29831.40625830815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"3123fb36-8092-4e1f-9b07-2b7b8f0ad182","savedPayload":{"position":{"x":27295.951653179858,"y":29831.40625830815},"targetPosition":{"x":27076.32742660712,"y":29915.712100111894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"d85587be-63fc-4e6a-9001-f953d56f0a8e","savedPayload":{"position":{"x":27076.32742660712,"y":29915.712100111894},"targetPosition":{"x":26886.006671553958,"y":30053.988222620108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"14027c77-35e5-4ad6-b13f-52915b8d5820","savedPayload":{"position":{"x":26886.006671553958,"y":30053.988222620108},"targetPosition":{"x":26505.365161447637,"y":30330.540467636532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Paula","code":" {\n \"repo\": \"AAPaula-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"0e00f6d4-59e7-45d2-86f7-9de4eaa8c220","savedPayload":{"position":{"x":27646.49562458585,"y":30088.15801212202},"targetPosition":{"x":27426.87139801311,"y":30172.463853925765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"057cdafe-25ec-4f26-ae8d-b17e9ea65554","savedPayload":{"position":{"x":27426.87139801311,"y":30172.463853925765},"targetPosition":{"x":27207.247171440373,"y":30256.76969572951},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"a82358c5-1439-4406-a0aa-0938fd949b81","savedPayload":{"position":{"x":27671.953332241115,"y":30330.3719209233},"targetPosition":{"x":27439.600251840744,"y":30293.570808326403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"a5bc8f06-b55b-4908-99f4-e55b990aa6cf","savedPayload":{"position":{"x":27439.600251840744,"y":30293.570808326403},"targetPosition":{"x":27207.247171440373,"y":30256.76969572951},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"80e65722-87d6-4390-8367-958be08fd013","savedPayload":{"position":{"x":27207.247171440373,"y":30256.76969572951},"targetPosition":{"x":26973.286501442795,"y":30281.35995303185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"94e1664d-f2fe-4e4c-9321-a92525159808","savedPayload":{"position":{"x":26973.286501442795,"y":30281.35995303185},"targetPosition":{"x":26505.365161447637,"y":30330.540467636532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":""}}}],"id":"42b294e6-f258-4a22-85cb-7523eb4b9c25","savedPayload":{"position":{"x":26505.365161447637,"y":30330.540467636532},"targetPosition":{"x":26313.996066468902,"y":30760.362492347536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Binance 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"6c4987fb-b018-40f2-a461-4e0ea96e3101","savedPayload":{"position":{"x":26319.438722137584,"y":29300.47101147918},"targetPosition":{"x":26418.859410742385,"y":29513.679366234006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"9a55db79-f720-4aa6-8c66-0150c04d136d","savedPayload":{"position":{"x":26418.859410742385,"y":29513.679366234006},"targetPosition":{"x":26518.280099347186,"y":29726.88772098883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"0b663189-d3ec-47db-a85a-6fdeb5f68a14","savedPayload":{"position":{"x":26559.286770115006,"y":29258.179329350503},"targetPosition":{"x":26538.783434731096,"y":29492.533525169667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"5d258dbb-4fe4-431d-b4bd-88d1f0cc264f","savedPayload":{"position":{"x":26538.783434731096,"y":29492.533525169667},"targetPosition":{"x":26518.280099347186,"y":29726.88772098883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"8dddebf2-b621-46d9-8321-da5802243164","savedPayload":{"position":{"x":26518.280099347186,"y":29726.88772098883},"targetPosition":{"x":26559.130727352484,"y":29958.563144915246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"db3b03b8-70cc-43d3-8c24-5194e0a20d95","savedPayload":{"position":{"x":26559.130727352484,"y":29958.563144915246},"targetPosition":{"x":26640.83198336308,"y":30421.913992768077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"385a2800-8d4e-41da-9568-092bcaf6ffc7","savedPayload":{"position":{"x":27039.98701884258,"y":29325.737343548324},"targetPosition":{"x":26995.0993189259,"y":29556.664540422364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"52442dee-7a89-40d7-95e9-3832f932151c","savedPayload":{"position":{"x":26995.0993189259,"y":29556.664540422364},"targetPosition":{"x":26950.211619009217,"y":29787.591737296403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"4e2e0daf-8da8-4611-bdbf-f65f2da0a6bd","savedPayload":{"position":{"x":27258.886592773855,"y":29432.501799377787},"targetPosition":{"x":27104.549105891536,"y":29610.046768337095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"0ea8f798-3258-42fb-95d0-13a463daa02b","savedPayload":{"position":{"x":27104.549105891536,"y":29610.046768337095},"targetPosition":{"x":26950.211619009217,"y":29787.591737296403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"fad8dceb-2759-40de-981c-b7992deb4c82","savedPayload":{"position":{"x":26950.211619009217,"y":29787.591737296403},"targetPosition":{"x":26847.085073793838,"y":29999.032489120294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7f75cb9d-74fc-431f-8575-c9608924d61e","savedPayload":{"position":{"x":26847.085073793838,"y":29999.032489120294},"targetPosition":{"x":26640.83198336308,"y":30421.913992768077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"6cabbcee-02d5-4c69-a347-302217bd101c","savedPayload":{"position":{"x":27608.071658775076,"y":29769.70589794544},"targetPosition":{"x":27436.021146028277,"y":29930.145596659553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"95176a22-a905-40af-a8ea-c30523868a02","savedPayload":{"position":{"x":27436.021146028277,"y":29930.145596659553},"targetPosition":{"x":27263.97063328148,"y":30090.585295373665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"04d86a87-bc22-414e-ba52-2e2ec6490cb8","savedPayload":{"position":{"x":27722.410561541325,"y":29984.746098396583},"targetPosition":{"x":27493.1905974114,"y":30037.665696885124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"b2d032ad-741d-4321-bf90-a49efae2c3ec","savedPayload":{"position":{"x":27493.1905974114,"y":30037.665696885124},"targetPosition":{"x":27263.97063328148,"y":30090.585295373665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"1486a182-a1cf-4a0b-a34c-45cc42cd1736","savedPayload":{"position":{"x":27263.97063328148,"y":30090.585295373665},"targetPosition":{"x":27056.257749975346,"y":30201.028194505136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"cc769e99-50ca-4135-9a34-6def278d6b26","savedPayload":{"position":{"x":27056.257749975346,"y":30201.028194505136},"targetPosition":{"x":26640.83198336308,"y":30421.913992768077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"4def38f0-3167-4448-86ca-d371ca5b2503","savedPayload":{"position":{"x":27806.70361796761,"y":30462.795776826988},"targetPosition":{"x":27573.207740478123,"y":30491.465465617173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"45399cd0-0dfc-46c6-b870-26a110349d2e","savedPayload":{"position":{"x":27573.207740478123,"y":30491.465465617173},"targetPosition":{"x":27339.711862988635,"y":30520.13515440736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"ccccdcce-b3c5-4c87-8bdb-151b786a83a3","savedPayload":{"position":{"x":27772.808274948493,"y":30703.973674275057},"targetPosition":{"x":27556.260068968564,"y":30612.054414341208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"39fa8007-3eb1-4428-ac7b-17ac37ad22c2","savedPayload":{"position":{"x":27556.260068968564,"y":30612.054414341208},"targetPosition":{"x":27339.711862988635,"y":30520.13515440736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"0e3bf1e1-8577-45c4-8b90-e47fbbe83d97","savedPayload":{"position":{"x":27339.711862988635,"y":30520.13515440736},"targetPosition":{"x":27106.75190311345,"y":30487.394767194266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"52124cd0-a4ba-4947-8fe0-ba57afa137cb","savedPayload":{"position":{"x":27106.75190311345,"y":30487.394767194266},"targetPosition":{"x":26640.83198336308,"y":30421.913992768077},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"5af1a05f-6528-444d-97b1-f4cbe518a528","savedPayload":{"position":{"x":26640.83198336308,"y":30421.913992768077},"targetPosition":{"x":26313.996066468902,"y":30760.362492347536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bitfinex BTC/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Charly","code":" {\n \"repo\": \"AACharly-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"69b973d7-f762-40f2-9747-2c5067a24015","savedPayload":{"position":{"x":26818.9284098712,"y":29380.727726504487},"targetPosition":{"x":26802.518241920297,"y":29615.404061586945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"1cddf4c5-497d-413d-ac4b-10bea0925fc3","savedPayload":{"position":{"x":26802.518241920297,"y":29615.404061586945},"targetPosition":{"x":26786.108073969393,"y":29850.080396669404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"555f5fc9-b1c8-480a-ad9b-0779d6c25a3b","savedPayload":{"position":{"x":26786.108073969393,"y":29850.080396669404},"targetPosition":{"x":26769.69790601849,"y":30084.756731751862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7044de49-7c62-4504-8106-c251687e8db5","savedPayload":{"position":{"x":26769.69790601849,"y":30084.756731751862},"targetPosition":{"x":26736.87757011668,"y":30554.10940191678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Olivia","code":" {\n \"repo\": \"AAOlivia-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4687921a-258e-4bca-bfd0-cd773a30c539","savedPayload":{"position":{"x":27284.706359701366,"y":29524.152312545837},"targetPosition":{"x":27208.116649709646,"y":29746.584981421827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"e1a857a9-387a-4b8e-a988-4e0cebc0eaea","savedPayload":{"position":{"x":27208.116649709646,"y":29746.584981421827},"targetPosition":{"x":27131.526939717925,"y":29969.017650297817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a44f4ccf-326d-43d5-8ab8-8f2418cd68f1","savedPayload":{"position":{"x":27486.61687763654,"y":29660.34267653318},"targetPosition":{"x":27309.071908677233,"y":29814.680163415498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"05747a5a-4f59-412e-8d6e-0011f0280def","savedPayload":{"position":{"x":27309.071908677233,"y":29814.680163415498},"targetPosition":{"x":27131.526939717925,"y":29969.017650297817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"015de0bb-1bcf-4ebf-8967-cccb908b412b","savedPayload":{"position":{"x":27131.526939717925,"y":29969.017650297817},"targetPosition":{"x":26999.977149850845,"y":30164.048234170805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"17983d6f-c679-48ff-bd24-f25cf60389d8","savedPayload":{"position":{"x":26999.977149850845,"y":30164.048234170805},"targetPosition":{"x":26736.87757011668,"y":30554.10940191678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Tom","code":" {\n \"repo\": \"AATom-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"806f64d5-77ce-47b0-9087-206bec6e3e60","savedPayload":{"position":{"x":27726.289763506968,"y":29936.054792506005},"targetPosition":{"x":27548.74479454766,"y":30090.392279388325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"3c164db8-b4c5-4844-a280-dc5fd072b1dc","savedPayload":{"position":{"x":27548.74479454766,"y":30090.392279388325},"targetPosition":{"x":27371.19982558835,"y":30244.729766270644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"527e40fd-6303-49a6-acdb-caaa25a8c5d1","savedPayload":{"position":{"x":27833.05421933643,"y":30154.95436643728},"targetPosition":{"x":27602.12702246239,"y":30199.842066353962},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"d354de31-cfca-4855-8574-183ff79e01d8","savedPayload":{"position":{"x":27602.12702246239,"y":30199.842066353962},"targetPosition":{"x":27371.19982558835,"y":30244.729766270644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"8e4dc154-fa9d-45f7-8305-39872e7f89d9","savedPayload":{"position":{"x":27371.19982558835,"y":30244.729766270644},"targetPosition":{"x":27159.75907376446,"y":30347.856311486023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"843387b6-e23e-406c-88c4-770e75011869","savedPayload":{"position":{"x":27159.75907376446,"y":30347.856311486023},"targetPosition":{"x":26736.87757011668,"y":30554.10940191678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Chris","code":" {\n \"repo\": \"AAChris-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"739eb4a2-7065-47e2-88e0-32929024ffea","savedPayload":{"position":{"x":27902.760969112136,"y":30513.564505936127},"targetPosition":{"x":27671.833772238097,"y":30558.45220585281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"4853268b-c4b1-4cc8-bfd4-b1e75ff8ae2d","savedPayload":{"position":{"x":27671.833772238097,"y":30558.45220585281},"targetPosition":{"x":27440.906575364057,"y":30603.33990576949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7ce928ad-0309-4abf-963e-9c1ebab6bd00","savedPayload":{"position":{"x":27885.771913116037,"y":30756.51932575293},"targetPosition":{"x":27663.339244240047,"y":30679.92961576121},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"3d877a97-72d8-4cff-8e20-a8b868fce149","savedPayload":{"position":{"x":27663.339244240047,"y":30679.92961576121},"targetPosition":{"x":27440.906575364057,"y":30603.33990576949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"1ebd62be-d328-49fa-a521-c4e4de204daf","savedPayload":{"position":{"x":27440.906575364057,"y":30603.33990576949},"targetPosition":{"x":27206.2302402816,"y":30586.929737818587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"3eaafd69-269b-4e1b-bfd3-78a6e5e29f9d","savedPayload":{"position":{"x":27206.2302402816,"y":30586.929737818587},"targetPosition":{"x":26736.87757011668,"y":30554.10940191678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Paula","code":" {\n \"repo\": \"AAPaula-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a7565c5c-6e66-493a-8670-95f0cad746de","savedPayload":{"position":{"x":27766.834659487624,"y":31101.93819150146},"targetPosition":{"x":27544.401990611634,"y":31025.34848150974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"a9a3f019-8e0b-453d-8cc2-999d3fb5b314","savedPayload":{"position":{"x":27544.401990611634,"y":31025.34848150974},"targetPosition":{"x":27321.969321735643,"y":30948.75877151802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4d0560ed-7d1b-48fd-9eaa-496f0b856784","savedPayload":{"position":{"x":27630.644295500282,"y":31303.848709436636},"targetPosition":{"x":27476.306808617963,"y":31126.303740477328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"f9cb63c0-e3ac-4978-b70d-ec0890de0efb","savedPayload":{"position":{"x":27476.306808617963,"y":31126.303740477328},"targetPosition":{"x":27321.969321735643,"y":30948.75877151802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"a631497e-d0b3-407c-a236-a74213e2739b","savedPayload":{"position":{"x":27321.969321735643,"y":30948.75877151802},"targetPosition":{"x":27126.938737862656,"y":30817.20898165094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"8a7bae64-b464-441c-9beb-f1eba877aa00","savedPayload":{"position":{"x":27126.938737862656,"y":30817.20898165094},"targetPosition":{"x":26736.87757011668,"y":30554.10940191678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":""}}}],"id":"5bf06f46-5258-4b1f-8418-c2a98abfd8b6","savedPayload":{"position":{"x":26736.87757011668,"y":30554.10940191678},"targetPosition":{"x":26313.996066468902,"y":30760.362492347536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bitfinex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6868ec69-09fc-4ba2-9080-5731e28f15e8","savedPayload":{"position":{"x":27256.565537988816,"y":29645.519207499216},"targetPosition":{"x":27195.678515307533,"y":29872.75266966736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"9a94b58d-3b58-49d4-814f-800497ced881","savedPayload":{"position":{"x":27195.678515307533,"y":29872.75266966736},"targetPosition":{"x":27134.79149262625,"y":30099.986131835503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5e5d110a-06d5-4983-8315-d316f26b257e","savedPayload":{"position":{"x":27467.48437159997,"y":29767.293252861782},"targetPosition":{"x":27301.13793211311,"y":29933.639692348643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"527dbe70-bfb9-4102-bb39-38fdcb26045b","savedPayload":{"position":{"x":27301.13793211311,"y":29933.639692348643},"targetPosition":{"x":27134.79149262625,"y":30099.986131835503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"95f41f59-1537-413a-84dc-579a1c1d4cea","savedPayload":{"position":{"x":27134.79149262625,"y":30099.986131835503},"targetPosition":{"x":27017.166797238853,"y":30303.718080471288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"bd37a444-f2d8-4e78-ada6-ef96c5225622","savedPayload":{"position":{"x":27017.166797238853,"y":30303.718080471288},"targetPosition":{"x":26781.91740646406,"y":30711.181977742854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"f6b80940-b961-4809-9dfd-822300207042","savedPayload":{"position":{"x":27792.29667148225,"y":30128.033858081497},"targetPosition":{"x":27609.473557506408,"y":30276.081096678125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"bf1470a2-3238-4da1-993f-5926d138b73c","savedPayload":{"position":{"x":27609.473557506408,"y":30276.081096678125},"targetPosition":{"x":27426.650443530565,"y":30424.128335274752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fd056771-e1bf-4b1c-9467-bebc8393d7a5","savedPayload":{"position":{"x":27891.356604331308,"y":30350.526110080962},"targetPosition":{"x":27659.003523930936,"y":30387.327222677857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"6eb9d734-ee61-4cfd-91a1-676c2b830cbf","savedPayload":{"position":{"x":27659.003523930936,"y":30387.327222677857},"targetPosition":{"x":27426.650443530565,"y":30424.128335274752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"0ade13ce-4709-4c7f-a6e3-958cb2036267","savedPayload":{"position":{"x":27426.650443530565,"y":30424.128335274752},"targetPosition":{"x":27211.739431175065,"y":30519.81288276412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"07d19baf-07ae-47c6-aed4-4da2dc9ecb3f","savedPayload":{"position":{"x":27211.739431175065,"y":30519.81288276412},"targetPosition":{"x":26781.91740646406,"y":30711.181977742854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"f7fefae5-1081-4aed-9fb1-fe9ae753fa90","savedPayload":{"position":{"x":27942.09726726688,"y":30833.29126989882},"targetPosition":{"x":27707.17027760615,"y":30845.60327172059},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"36fc9b0f-d8e1-4ab6-a39c-e27d51d07d9b","savedPayload":{"position":{"x":27707.17027760615,"y":30845.60327172059},"targetPosition":{"x":27472.24328794542,"y":30857.91527354236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fc62446c-1d04-4372-98b9-19d7d74b62f6","savedPayload":{"position":{"x":27891.46077192878,"y":31071.5172505049},"targetPosition":{"x":27681.8520299371,"y":30964.71626202363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"f4435abb-c211-4744-ad3f-0c8813b3c387","savedPayload":{"position":{"x":27681.8520299371,"y":30964.71626202363},"targetPosition":{"x":27472.24328794542,"y":30857.91527354236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"8c09fad1-6cbe-4dcd-8433-d05eeac9b8f3","savedPayload":{"position":{"x":27472.24328794542,"y":30857.91527354236},"targetPosition":{"x":27242.134660784966,"y":30809.004174942525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ec679f61-f59c-44ec-9a99-04bb27198699","savedPayload":{"position":{"x":27242.134660784966,"y":30809.004174942525},"targetPosition":{"x":26781.91740646406,"y":30711.181977742854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9538743d-e839-4eea-bce7-55fa137802b6","savedPayload":{"position":{"x":27648.74858928795,"y":31491.907082454756},"targetPosition":{"x":27451.45184911804,"y":31363.7810812753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"162dafb5-363b-458c-89ec-a1d990873712","savedPayload":{"position":{"x":27451.45184911804,"y":31363.7810812753},"targetPosition":{"x":27254.15510894813,"y":31235.655080095847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"081c9345-bbfa-4050-9b7c-602e7c31d326","savedPayload":{"position":{"x":27467.75708591067,"y":31654.872564079207},"targetPosition":{"x":27360.9560974294,"y":31445.263822087527},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"d3f1cc89-86d2-4d1b-baf3-4d85913f6c2d","savedPayload":{"position":{"x":27360.9560974294,"y":31445.263822087527},"targetPosition":{"x":27254.15510894813,"y":31235.655080095847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"71907f18-5925-4a9b-b8ab-50de88e15a98","savedPayload":{"position":{"x":27254.15510894813,"y":31235.655080095847},"targetPosition":{"x":27096.74254145344,"y":31060.83071264485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"b9c0d044-507b-415a-8ff6-fdb47049beb8","savedPayload":{"position":{"x":27096.74254145344,"y":31060.83071264485},"targetPosition":{"x":26781.91740646406,"y":30711.181977742854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"2168c937-9402-4aca-b656-68292581c908","savedPayload":{"position":{"x":26781.91740646406,"y":30711.181977742854},"targetPosition":{"x":26313.996066468902,"y":30760.362492347536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bitfinex ETH/USDT","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Charly","code":" {\n \"repo\": \"AACharly-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"12fe612b-ba1c-4d5e-9bb6-1c60acccd50e","savedPayload":{"position":{"x":27587.608815659984,"y":30028.065200508703},"targetPosition":{"x":27424.190857212892,"y":30197.28945029843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"ddf8648e-afe9-405d-a6fb-01466cbcec90","savedPayload":{"position":{"x":27424.190857212892,"y":30197.28945029843},"targetPosition":{"x":27260.7728987658,"y":30366.51370008816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"e8134811-53c3-4c78-b50f-3a40a6e50cc5","savedPayload":{"position":{"x":27260.7728987658,"y":30366.51370008816},"targetPosition":{"x":27097.35494031871,"y":30535.737949877886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"71ec8656-39e6-4d43-a3db-ef8a2fc41c24","savedPayload":{"position":{"x":27097.35494031871,"y":30535.737949877886},"targetPosition":{"x":26770.51902342453,"y":30874.186449457346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Olivia","code":" {\n \"repo\": \"AAOlivia-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"9174e2ab-6070-4b08-979f-b6318e92601b","savedPayload":{"position":{"x":27852.223879022924,"y":30437.33110266835},"targetPosition":{"x":27650.575793740678,"y":30558.493496016763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"93730f9d-832f-43f6-8eab-e126ac8684b7","savedPayload":{"position":{"x":27650.575793740678,"y":30558.493496016763},"targetPosition":{"x":27448.927708458432,"y":30679.655889365175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"78baa8c9-c340-4d24-872a-d8d8a5af0b52","savedPayload":{"position":{"x":27919.354830764678,"y":30671.44455340132},"targetPosition":{"x":27684.141269611555,"y":30675.550221383248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"66b47d7a-9ec3-49d6-8bb9-3f00d1659727","savedPayload":{"position":{"x":27684.141269611555,"y":30675.550221383248},"targetPosition":{"x":27448.927708458432,"y":30679.655889365175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"3a5cea2f-028f-435d-b8c0-eae9ea7bf480","savedPayload":{"position":{"x":27448.927708458432,"y":30679.655889365175},"targetPosition":{"x":27222.7914801138,"y":30744.4994093959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2020bb49-1d9b-41a2-ad4f-23a343b51216","savedPayload":{"position":{"x":27222.7914801138,"y":30744.4994093959},"targetPosition":{"x":26770.51902342453,"y":30874.186449457346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Tom","code":" {\n \"repo\": \"AATom-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"8d160374-fa0f-46dc-8baa-28ff28d5e9d0","savedPayload":{"position":{"x":27925.730581164218,"y":31036.711049158206},"targetPosition":{"x":27690.517020011095,"y":31040.816717140133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"db46dd5c-75f2-4713-b9b9-4bde239857ea","savedPayload":{"position":{"x":27690.517020011095,"y":31040.816717140133},"targetPosition":{"x":27455.303458857972,"y":31044.92238512206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"5b9e2d17-daf1-473b-b310-835c50893ab9","savedPayload":{"position":{"x":27866.810965386318,"y":31273.024720731482},"targetPosition":{"x":27661.057212122145,"y":31158.97355292677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"99b6e320-e126-4e37-937d-f950fa52a7ce","savedPayload":{"position":{"x":27661.057212122145,"y":31158.97355292677},"targetPosition":{"x":27455.303458857972,"y":31044.92238512206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"bd4e3a40-3c50-4a39-bf1a-755c4414f6f0","savedPayload":{"position":{"x":27455.303458857972,"y":31044.92238512206},"targetPosition":{"x":27227.04198038016,"y":30988.010406567155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"b4a91e46-5c9b-4e3d-bc4d-5695539eb5d7","savedPayload":{"position":{"x":27227.04198038016,"y":30988.010406567155},"targetPosition":{"x":26770.51902342453,"y":30874.186449457346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Chris","code":" {\n \"repo\": \"AAChris-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"a3da1744-b884-451d-90fd-336e845fcb38","savedPayload":{"position":{"x":27689.699279322063,"y":31592.54266040804},"targetPosition":{"x":27483.94552605789,"y":31478.491492603327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"bb9977c0-f30a-4b08-a472-286db4ea454c","savedPayload":{"position":{"x":27483.94552605789,"y":31478.491492603327},"targetPosition":{"x":27278.191772793718,"y":31364.440324798616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"f279d39f-bd2a-4b33-b806-83394791cf76","savedPayload":{"position":{"x":27520.51655949054,"y":31767.736495363108},"targetPosition":{"x":27399.35416614213,"y":31566.08841008086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"97f888fb-66de-417e-91f2-cdab880f7099","savedPayload":{"position":{"x":27399.35416614213,"y":31566.08841008086},"targetPosition":{"x":27278.191772793718,"y":31364.440324798616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"d8b6191d-8c93-4209-8fa5-6782b8c21dcb","savedPayload":{"position":{"x":27278.191772793718,"y":31364.440324798616},"targetPosition":{"x":27108.96752300399,"y":31201.022366351524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ae9ab75c-6d5a-4a90-8756-d6a56147558f","savedPayload":{"position":{"x":27108.96752300399,"y":31201.022366351524},"targetPosition":{"x":26770.51902342453,"y":30874.186449457346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Paula","code":" {\n \"repo\": \"AAPaula-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"5dbbd062-9dae-4bda-b200-7534ca6fcfe7","savedPayload":{"position":{"x":27207.374370213525,"y":31955.89130505574},"targetPosition":{"x":27086.211976865114,"y":31754.243219773492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"7fd1ed32-e719-41c2-8ece-5b5a4b31c71e","savedPayload":{"position":{"x":27086.211976865114,"y":31754.243219773492},"targetPosition":{"x":26965.049583516702,"y":31552.595134491246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"23b31878-5376-4028-91de-3f9adcf9ceb1","savedPayload":{"position":{"x":26973.260919480555,"y":32023.022256797492},"targetPosition":{"x":26969.15525149863,"y":31787.80869564437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"a386cffa-5c6f-4e07-b3a7-62a83ced993b","savedPayload":{"position":{"x":26969.15525149863,"y":31787.80869564437},"targetPosition":{"x":26965.049583516702,"y":31552.595134491246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"0d2f0b4e-aed0-4c8e-9dcf-a69078a84fe0","savedPayload":{"position":{"x":26965.049583516702,"y":31552.595134491246},"targetPosition":{"x":26900.206063485977,"y":31326.458906146614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"4086df95-6b27-4fc3-a332-a922bd15c50b","savedPayload":{"position":{"x":26900.206063485977,"y":31326.458906146614},"targetPosition":{"x":26770.51902342453,"y":30874.186449457346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":""}}}],"id":"ea175233-a7e7-4330-92e1-294a6ee8350a","savedPayload":{"position":{"x":26770.51902342453,"y":30874.186449457346},"targetPosition":{"x":26313.996066468902,"y":30760.362492347536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bitfinex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"cc22b8a2-64aa-41e1-a9aa-b4131ecc55a4","savedPayload":{"position":{"x":27752.65362262306,"y":30512.21496660276},"targetPosition":{"x":27559.94860325215,"y":30647.148473817124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"a55b0242-4e19-4893-842c-355140ac5272","savedPayload":{"position":{"x":27559.94860325215,"y":30647.148473817124},"targetPosition":{"x":27367.243583881238,"y":30782.081981031486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"bc9e7592-b17f-4ac1-a679-03cab6821c05","savedPayload":{"position":{"x":27835.951975519565,"y":30741.075310263666},"targetPosition":{"x":27601.5977797004,"y":30761.578645647576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"e1d8909e-6908-427d-99ac-d726ca7316fc","savedPayload":{"position":{"x":27601.5977797004,"y":30761.578645647576},"targetPosition":{"x":27367.243583881238,"y":30782.081981031486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"64bb5d3b-359b-4e2c-9b6a-3783c1e8a172","savedPayload":{"position":{"x":27367.243583881238,"y":30782.081981031486},"targetPosition":{"x":27146.181467325783,"y":30862.542011381556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4dc76c21-a3d1-4345-9327-d9e520a01efd","savedPayload":{"position":{"x":27146.181467325783,"y":30862.542011381556},"targetPosition":{"x":26704.057234214877,"y":31023.462072081697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"2048be1e-dbd8-48ad-a50b-aca8c710bb84","savedPayload":{"position":{"x":27852.893041555024,"y":31226.203968137725},"targetPosition":{"x":27617.6794804019,"y":31222.098300155798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"faeb5a2a-51b2-4e81-87cf-27b192f82dab","savedPayload":{"position":{"x":27617.6794804019,"y":31222.098300155798},"targetPosition":{"x":27382.465919248778,"y":31217.99263217387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"d4239aa7-f43d-4347-aed9-9ba0466768a5","savedPayload":{"position":{"x":27785.76208981327,"y":31460.317418870694},"targetPosition":{"x":27584.114004531024,"y":31339.155025522283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"6e6cd378-b8ab-4f7d-babc-4b040b8cda1f","savedPayload":{"position":{"x":27584.114004531024,"y":31339.155025522283},"targetPosition":{"x":27382.465919248778,"y":31217.99263217387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"c20f76fc-6615-4319-915b-23e76d552d9d","savedPayload":{"position":{"x":27382.465919248778,"y":31217.99263217387},"targetPosition":{"x":27156.329690904146,"y":31153.149112143146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"dd609cea-efaa-4e71-94b9-c4d36f689ba0","savedPayload":{"position":{"x":27156.329690904146,"y":31153.149112143146},"targetPosition":{"x":26704.057234214877,"y":31023.462072081697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"b0afe547-86fa-4668-9478-1433f625d727","savedPayload":{"position":{"x":27514.31622957598,"y":31862.752456322873},"targetPosition":{"x":27326.437712386236,"y":31721.175838767234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"7aff43dd-95eb-4daa-8e78-1def1bc03866","savedPayload":{"position":{"x":27326.437712386236,"y":31721.175838767234},"targetPosition":{"x":27138.559195196493,"y":31579.599221211596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"cad9f14d-c0bb-4d08-a8a3-ff9713efa802","savedPayload":{"position":{"x":27322.39771506419,"y":32012.695633171454},"targetPosition":{"x":27230.478455130342,"y":31796.147427191525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"45967166-0be0-4910-b6e3-0a151b5b25d7","savedPayload":{"position":{"x":27230.478455130342,"y":31796.147427191525},"targetPosition":{"x":27138.559195196493,"y":31579.599221211596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"3ab57bd9-a458-4ab2-86f2-9987b6a9744c","savedPayload":{"position":{"x":27138.559195196493,"y":31579.599221211596},"targetPosition":{"x":26993.72520820262,"y":31394.22017150163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0e2e8870-1b80-4db5-a0ae-7e7addc200d9","savedPayload":{"position":{"x":26993.72520820262,"y":31394.22017150163},"targetPosition":{"x":26704.057234214877,"y":31023.462072081697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"7705ba7d-5483-472b-8e6c-ba9062a7a833","savedPayload":{"position":{"x":26866.24802105933,"y":32178.72054415886},"targetPosition":{"x":26797.46775564352,"y":31953.750432923516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"4cdff85b-aa41-4659-b641-a54ac1370097","savedPayload":{"position":{"x":26797.46775564352,"y":31953.750432923516},"targetPosition":{"x":26728.68749022771,"y":31728.780321688173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"0913d252-6de1-465f-843c-69fb3a035177","savedPayload":{"position":{"x":26622.848293250627,"y":32187.22024994802},"targetPosition":{"x":26675.767891739168,"y":31958.000285818096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"dca1146c-4e27-4c21-adda-ff1fcf657e19","savedPayload":{"position":{"x":26675.767891739168,"y":31958.000285818096},"targetPosition":{"x":26728.68749022771,"y":31728.780321688173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"e08d86b5-8800-4472-861c-8cbbf2a19a27","savedPayload":{"position":{"x":26728.68749022771,"y":31728.780321688173},"targetPosition":{"x":26720.477404890098,"y":31493.674238486015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"6ff2ed68-e6d2-49c9-ac60-bb7463e87033","savedPayload":{"position":{"x":26720.477404890098,"y":31493.674238486015},"targetPosition":{"x":26704.057234214877,"y":31023.462072081697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"dc92f0d0-6193-43e7-8627-2e0b7e48a5fe","savedPayload":{"position":{"x":26704.057234214877,"y":31023.462072081697},"targetPosition":{"x":26313.996066468902,"y":30760.362492347536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"id":"7449a608-32ca-4285-94d1-c96791e2817f","savedPayload":{"position":{"x":26313.996066468902,"y":30760.362492347536},"targetPosition":{"x":25933.35455636258,"y":31036.91473736396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":true}}},"testingEnvironment":{"type":"Testing Environment","name":"New Testing Environment","taskManagers":[{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"fb8f960f-8066-4c10-865a-dbf9e260e6c3","savedPayload":{"position":{"x":27529.32894655202,"y":30248.665376169443},"targetPosition":{"x":27764.25593621275,"y":30236.353374347673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"1da459c0-6f5f-491c-bf6f-04b461805454","savedPayload":{"position":{"x":27636.129935033296,"y":30039.056634177763},"targetPosition":{"x":27764.25593621275,"y":30236.353374347673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"5d6da4f6-a3be-460d-ae3b-04875dd63dd5","savedPayload":{"position":{"x":27871.05692469402,"y":30026.744632355993},"targetPosition":{"x":27764.25593621275,"y":30236.353374347673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"18fed5c0-2f01-417f-8c65-aa5fbbf4bdb6","savedPayload":{"position":{"x":27999.18292587348,"y":30224.041372525902},"targetPosition":{"x":27764.25593621275,"y":30236.353374347673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"3c28c4bd-ccf3-4bfb-82e3-39109fcf8a9f","savedPayload":{"position":{"x":27892.381937392205,"y":30433.650114517583},"targetPosition":{"x":27764.25593621275,"y":30236.353374347673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"03bc1049-82aa-4a8f-828c-309457e71b81","savedPayload":{"position":{"x":27764.25593621275,"y":30236.353374347673},"targetPosition":{"x":27657.45494773148,"y":30445.962116339353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f70c3363-6aa2-4a74-9f6e-d88f169c2e38","savedPayload":{"position":{"x":27657.45494773148,"y":30445.962116339353},"targetPosition":{"x":27550.65395925021,"y":30655.570858331033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5e6f067e-fdfa-47f6-b17a-49b2d18b7719","savedPayload":{"position":{"x":27785.580948910938,"y":30643.258856509263},"targetPosition":{"x":27550.65395925021,"y":30655.570858331033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"663bcdbf-e5bd-4b1c-b630-38f53be3273b","savedPayload":{"position":{"x":27550.65395925021,"y":30655.570858331033},"targetPosition":{"x":27353.3572190803,"y":30783.696859510488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"fa6686d9-860d-408b-ae81-9ba9e3fb4481","savedPayload":{"position":{"x":27353.3572190803,"y":30783.696859510488},"targetPosition":{"x":27156.06047891039,"y":30911.822860689943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"e2910d51-3931-4b9e-ad23-bec891a0ba7b","savedPayload":{"position":{"x":27156.06047891039,"y":30911.822860689943},"targetPosition":{"x":26761.466998570566,"y":31168.074863048856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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\": 0.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"1664529b-fc13-4f5f-838a-caa7f78efeaf","savedPayload":{"position":{"x":27872.582990672556,"y":30788.207305638047},"targetPosition":{"x":28095.768437553303,"y":30862.574853402868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"ffa5bbd8-7814-4c15-91c4-37088ee89c6e","savedPayload":{"position":{"x":28014.757477616353,"y":30641.714036982197},"targetPosition":{"x":28095.768437553303,"y":30862.574853402868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2020-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"42139f2f-3f3c-499c-bfeb-9fe82ae7b443","savedPayload":{"position":{"x":28217.9348697151,"y":30661.533467830723},"targetPosition":{"x":28095.768437553303,"y":30862.574853402868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"551d14b1-ec1b-440d-a6eb-184dbcaf65a0","savedPayload":{"position":{"x":28329.11844665495,"y":30832.741162511975},"targetPosition":{"x":28095.768437553303,"y":30862.574853402868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"95c63a98-a995-40ad-8a00-d2dc27a750d2","savedPayload":{"position":{"x":28264.584707268543,"y":31026.414234930457},"targetPosition":{"x":28095.768437553303,"y":30862.574853402868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"5390b09f-664a-4eb7-b15c-ea6a9f866c1d","savedPayload":{"position":{"x":28072.928873562225,"y":31096.71291134435},"targetPosition":{"x":28095.768437553303,"y":30862.574853402868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9fd4ea03-2c69-4839-bde5-71fd40b8ae72","savedPayload":{"position":{"x":28095.768437553303,"y":30862.574853402868},"targetPosition":{"x":27898.471697383393,"y":30990.700854582323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a55e8afb-ce16-4369-a7de-0fafdf9a8737","savedPayload":{"position":{"x":27898.471697383393,"y":30990.700854582323},"targetPosition":{"x":27701.174957213483,"y":31118.826855761778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"38b60a6d-d5b1-4fa0-80fe-be22926b5b8f","savedPayload":{"position":{"x":27910.783699205163,"y":31225.62784424305},"targetPosition":{"x":27701.174957213483,"y":31118.826855761778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"83c6c44d-d459-4b17-a886-a6406be4bbed","savedPayload":{"position":{"x":27701.174957213483,"y":31118.826855761778},"targetPosition":{"x":27466.247967552754,"y":31131.138857583548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"b01a5fb8-dd28-4b1c-b0d1-1ed6c135e4ea","savedPayload":{"position":{"x":27466.247967552754,"y":31131.138857583548},"targetPosition":{"x":27231.320977892025,"y":31143.45085940532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"40491595-e908-406c-bedb-2be1132a5e71","savedPayload":{"position":{"x":27231.320977892025,"y":31143.45085940532},"targetPosition":{"x":26761.466998570566,"y":31168.074863048856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"05d1f7b6-b99b-4257-937c-4032ff20d0ed","savedPayload":{"position":{"x":26761.466998570566,"y":31168.074863048856},"targetPosition":{"x":26313.996066468902,"y":31313.466982380385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance ETH/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"f9f35cba-a7e3-4f4c-a306-bb5cc174a9b2","savedPayload":{"position":{"x":27923.095701026934,"y":31166.379130856996},"targetPosition":{"x":28120.392441196844,"y":31294.50513203645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"ab58f32e-c66f-4cdf-b72f-a1741fe53747","savedPayload":{"position":{"x":28132.704443018614,"y":31059.57814237572},"targetPosition":{"x":28120.392441196844,"y":31294.50513203645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"5170d297-5d86-4406-988c-ff99e1455010","savedPayload":{"position":{"x":28330.001183188524,"y":31187.70414355518},"targetPosition":{"x":28120.392441196844,"y":31294.50513203645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"093c0f39-9e0a-4880-9290-5932e1186bb1","savedPayload":{"position":{"x":28317.689181366753,"y":31422.631133215906},"targetPosition":{"x":28120.392441196844,"y":31294.50513203645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"e0664384-64aa-4faa-a0b2-74e3e3882f0e","savedPayload":{"position":{"x":28108.080439375073,"y":31529.43212169718},"targetPosition":{"x":28120.392441196844,"y":31294.50513203645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"67d2af7d-3b95-45c0-99ce-edffb17ad61c","savedPayload":{"position":{"x":28120.392441196844,"y":31294.50513203645},"targetPosition":{"x":27910.783699205163,"y":31401.306120517722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2ac92ee9-1091-49c0-9137-90200a7d9165","savedPayload":{"position":{"x":27910.783699205163,"y":31401.306120517722},"targetPosition":{"x":27701.174957213483,"y":31508.107108998993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"2e3167cb-97e0-447a-9b58-3f9cda00d6c9","savedPayload":{"position":{"x":27898.471697383393,"y":31636.233110178448},"targetPosition":{"x":27701.174957213483,"y":31508.107108998993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"07248fbe-5216-4e01-8a61-318bb21b81e8","savedPayload":{"position":{"x":27701.174957213483,"y":31508.107108998993},"targetPosition":{"x":27466.247967552754,"y":31495.795107177222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"a84ffbe7-198a-4e1b-9408-ffeea806d0eb","savedPayload":{"position":{"x":27466.247967552754,"y":31495.795107177222},"targetPosition":{"x":27231.320977892025,"y":31483.48310535545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"350be095-023c-4100-80c6-06ff3088d7c9","savedPayload":{"position":{"x":27231.320977892025,"y":31483.48310535545},"targetPosition":{"x":26761.466998570566,"y":31458.859101711914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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\": 0.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"08d843cf-2d96-4d60-971f-0d6f8de63124","savedPayload":{"position":{"x":27883.659266973293,"y":31804.63738589874},"targetPosition":{"x":28020.507938571667,"y":31995.987110073278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"f93220a1-ad53-449a-b2ef-7e13f3d03ea3","savedPayload":{"position":{"x":28084.787425953393,"y":31769.689908672433},"targetPosition":{"x":28020.507938571667,"y":31995.987110073278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2018-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2019-12-31T23:59:59.999Z\"\n}","id":"65207edd-8838-46e6-afb8-6bbea2a5d16c","savedPayload":{"position":{"x":28237.51181987247,"y":31905.14883972262},"targetPosition":{"x":28020.507938571667,"y":31995.987110073278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"3820d5b8-8147-48a3-b788-550ed5af1888","savedPayload":{"position":{"x":28226.827865099567,"y":32109.010841109877},"targetPosition":{"x":28020.507938571667,"y":31995.987110073278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"eabb2209-dde9-4550-80c0-1a2882307977","savedPayload":{"position":{"x":28060.780797491643,"y":32227.763667762625},"targetPosition":{"x":28020.507938571667,"y":31995.987110073278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"6670e80b-26ef-41be-9476-db8edad83342","savedPayload":{"position":{"x":27864.40744570037,"y":32171.98401909514},"targetPosition":{"x":28020.507938571667,"y":31995.987110073278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9dde59ca-bd94-4ff0-a006-23352e777f43","savedPayload":{"position":{"x":28020.507938571667,"y":31995.987110073278},"targetPosition":{"x":27785.580948910938,"y":31983.675108251507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c490c53-7f04-44a5-98b6-e7feff64cedd","savedPayload":{"position":{"x":27785.580948910938,"y":31983.675108251507},"targetPosition":{"x":27550.65395925021,"y":31971.363106429737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"fa7d309e-90d2-4685-b541-af5c357a377e","savedPayload":{"position":{"x":27657.45494773148,"y":32180.971848421417},"targetPosition":{"x":27550.65395925021,"y":31971.363106429737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"51c2a532-7b93-4dc0-89a8-c99455ef1203","savedPayload":{"position":{"x":27550.65395925021,"y":31971.363106429737},"targetPosition":{"x":27353.3572190803,"y":31843.237105250282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"5d905263-cdd2-4349-ae8b-ab99290a2fd0","savedPayload":{"position":{"x":27353.3572190803,"y":31843.237105250282},"targetPosition":{"x":27156.06047891039,"y":31715.111104070827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1dd6f7ce-dc46-4dd7-a467-b8706d09ce9e","savedPayload":{"position":{"x":27156.06047891039,"y":31715.111104070827},"targetPosition":{"x":26761.466998570566,"y":31458.859101711914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"53170e14-34d9-406e-89e8-85d21b4b3914","savedPayload":{"position":{"x":26761.466998570566,"y":31458.859101711914},"targetPosition":{"x":26313.996066468902,"y":31313.466982380385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Bitfinex BTC/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"9243e305-89b6-4fbd-bf93-2fb1f7ec507a","savedPayload":{"position":{"x":27702.241086385697,"y":32140.275445494273},"targetPosition":{"x":27786.54692818944,"y":32359.89967206701},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"be15bad4-a3d0-4d08-8081-d4672453f13b","savedPayload":{"position":{"x":27934.594166786068,"y":32177.07655809117},"targetPosition":{"x":27786.54692818944,"y":32359.89967206701},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"bd7043fd-f203-4bcc-95e7-60417b5b8d8a","savedPayload":{"position":{"x":28018.90000858981,"y":32396.700784663906},"targetPosition":{"x":27786.54692818944,"y":32359.89967206701},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"1e9775fc-1459-4976-9474-3647d9dc5acf","savedPayload":{"position":{"x":27870.852769993184,"y":32579.52389863975},"targetPosition":{"x":27786.54692818944,"y":32359.89967206701},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"ff546dc6-a4cc-4746-9f85-3fe24bed8cfa","savedPayload":{"position":{"x":27638.499689592813,"y":32542.722786042854},"targetPosition":{"x":27786.54692818944,"y":32359.89967206701},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4cc2b1f5-b4c0-41fd-b8fc-e7ab5a445e4a","savedPayload":{"position":{"x":27786.54692818944,"y":32359.89967206701},"targetPosition":{"x":27554.19384778907,"y":32323.098559470116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"62a4d396-f709-467b-bca1-ff0cc9ef7333","savedPayload":{"position":{"x":27554.19384778907,"y":32323.098559470116},"targetPosition":{"x":27321.840767388698,"y":32286.29744687322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"248e88c1-46d6-43be-99ae-76cda74970a2","savedPayload":{"position":{"x":27406.14660919244,"y":32505.92167344596},"targetPosition":{"x":27321.840767388698,"y":32286.29744687322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"163688fc-9ac7-4222-83a8-90e96252bb23","savedPayload":{"position":{"x":27321.840767388698,"y":32286.29744687322},"targetPosition":{"x":27139.017653412855,"y":32138.250208276593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"30fbc501-6f83-4377-8610-076b95a1510b","savedPayload":{"position":{"x":27139.017653412855,"y":32138.250208276593},"targetPosition":{"x":26956.194539437012,"y":31990.202969679965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"2800cf44-400d-4d6f-82ae-ec001846e35f","savedPayload":{"position":{"x":26956.194539437012,"y":31990.202969679965},"targetPosition":{"x":26590.548311485327,"y":31694.108492486706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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\": 0.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"641f3baa-95c2-477c-9827-86628994ade2","savedPayload":{"position":{"x":27295.17755157129,"y":32633.457066283416},"targetPosition":{"x":27293.417906651986,"y":32868.69987597092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"a1f510a4-b911-474a-baef-6f3795aab903","savedPayload":{"position":{"x":27478.43526195199,"y":32723.40412896604},"targetPosition":{"x":27293.417906651986,"y":32868.69987597092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2018-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2019-12-31T23:59:59.999Z\"\n}","id":"e1ff5e46-4aa3-43a5-8a9d-7a8f28debb84","savedPayload":{"position":{"x":27522.37113012553,"y":32922.761852636446},"targetPosition":{"x":27293.417906651986,"y":32868.69987597092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"0a43ff56-e236-4d2c-b8a6-2e410af88c42","savedPayload":{"position":{"x":27393.900551228864,"y":33081.40980521435},"targetPosition":{"x":27293.417906651986,"y":32868.69987597092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"2cf6da89-d1a0-4481-a020-8583207f2d26","savedPayload":{"position":{"x":27189.764491493395,"y":33079.88284258014},"targetPosition":{"x":27293.417906651986,"y":32868.69987597092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"55e06488-97b0-4265-849b-8b67e681d2a3","savedPayload":{"position":{"x":27063.68156751669,"y":32919.33079874173},"targetPosition":{"x":27293.417906651986,"y":32868.69987597092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a01b72f1-a3f6-4a2b-841a-d6585c9e2edb","savedPayload":{"position":{"x":27293.417906651986,"y":32868.69987597092},"targetPosition":{"x":27110.594792676144,"y":32720.652637374285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ba8e130e-300c-4d0f-963d-95aaddb65ca8","savedPayload":{"position":{"x":27110.594792676144,"y":32720.652637374285},"targetPosition":{"x":26927.7716787003,"y":32572.605398777658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"070823a9-4c86-45a5-bd3a-9ceff993669c","savedPayload":{"position":{"x":26890.970566103406,"y":32804.95847917803},"targetPosition":{"x":26927.7716787003,"y":32572.605398777658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"a0ab3a1e-5052-4743-b4d3-96f98be1c31e","savedPayload":{"position":{"x":26927.7716787003,"y":32572.605398777658},"targetPosition":{"x":26843.465836896557,"y":32352.98117220492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"169baa96-ddba-4dd1-8488-50adb068016d","savedPayload":{"position":{"x":26843.465836896557,"y":32352.98117220492},"targetPosition":{"x":26759.159995092814,"y":32133.356945632182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c5cc6140-d108-4ea9-a612-6312688c9b03","savedPayload":{"position":{"x":26759.159995092814,"y":32133.356945632182},"targetPosition":{"x":26590.548311485327,"y":31694.108492486706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"ae45eef5-e77f-4435-aeaa-bafd58487268","savedPayload":{"position":{"x":26590.548311485327,"y":31694.108492486706},"targetPosition":{"x":26313.996066468902,"y":31313.466982380385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Bitfinex ETH/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"8807e398-9f93-45fe-b3f6-62ef040ec69e","savedPayload":{"position":{"x":26951.124058849036,"y":32798.359029408115},"targetPosition":{"x":26890.237036167753,"y":33025.59249157626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"66ccb8cf-bdfd-4004-9ea0-526b854ce343","savedPayload":{"position":{"x":27117.470498335897,"y":32964.70546889498},"targetPosition":{"x":26890.237036167753,"y":33025.59249157626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"6cf4df5c-3bd0-4d4f-81e4-2dda73e3d4ae","savedPayload":{"position":{"x":27056.583475654614,"y":33191.938931063116},"targetPosition":{"x":26890.237036167753,"y":33025.59249157626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"92927131-3804-41e3-b00f-361f9af4e23e","savedPayload":{"position":{"x":26829.35001348647,"y":33252.8259537444},"targetPosition":{"x":26890.237036167753,"y":33025.59249157626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"2edefb57-725a-43b4-83c7-3472ea3b355d","savedPayload":{"position":{"x":26663.00357399961,"y":33086.47951425754},"targetPosition":{"x":26890.237036167753,"y":33025.59249157626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"64a3844f-9916-49fb-9be1-0ed7525b919c","savedPayload":{"position":{"x":26890.237036167753,"y":33025.59249157626},"targetPosition":{"x":26723.890596680892,"y":32859.2460520894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0dd492b9-4916-42bf-9c59-f5aeb684e265","savedPayload":{"position":{"x":26723.890596680892,"y":32859.2460520894},"targetPosition":{"x":26557.544157194032,"y":32692.899612602545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"ad9db1fd-e62c-4e4d-8ac2-07f60c2eced2","savedPayload":{"position":{"x":26496.65713451275,"y":32920.13307477069},"targetPosition":{"x":26557.544157194032,"y":32692.899612602545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"62c09ba4-5715-4469-86f2-a1fe7f1992bf","savedPayload":{"position":{"x":26557.544157194032,"y":32692.899612602545},"targetPosition":{"x":26496.65713451275,"y":32465.6661504344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"90874769-7920-4206-94e8-83cf643e93d6","savedPayload":{"position":{"x":26496.65713451275,"y":32465.6661504344},"targetPosition":{"x":26435.770111831465,"y":32238.432688266257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"004e7049-ec65-4c83-bdbc-f7bc914c9c25","savedPayload":{"position":{"x":26435.770111831465,"y":32238.432688266257},"targetPosition":{"x":26313.996066468902,"y":31783.965763929973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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\": 0.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"dc8dd038-900f-40ac-8d21-db7006c14e47","savedPayload":{"position":{"x":26331.91785799228,"y":32958.085399429976},"targetPosition":{"x":26192.22202110634,"y":33147.36653693883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"784e029f-f03d-4718-bab5-ea6803ffe58a","savedPayload":{"position":{"x":26427.30690310863,"y":33138.57028126498},"targetPosition":{"x":26192.22202110634,"y":33147.36653693883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2018-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2019-12-31T23:59:59.999Z\"\n}","id":"332b55f0-ca4a-4111-8f08-fec0c98443d6","savedPayload":{"position":{"x":26345.672237219584,"y":33325.67892303332},"targetPosition":{"x":26192.22202110634,"y":33147.36653693883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"85ad3ceb-b6d3-4618-a1bd-6219d7c4526b","savedPayload":{"position":{"x":26148.4864287833,"y":33378.5147011627},"targetPosition":{"x":26192.22202110634,"y":33147.36653693883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"48e77f27-98b3-418b-9d23-beb54b2969ec","savedPayload":{"position":{"x":25984.234413409762,"y":33257.29119706825},"targetPosition":{"x":26192.22202110634,"y":33147.36653693883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"c8a777a8-9885-4d11-8174-aaa9e677f3e4","savedPayload":{"position":{"x":25976.60130880576,"y":33053.29218184191},"targetPosition":{"x":26192.22202110634,"y":33147.36653693883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"dd13812c-9ada-427b-a8af-1df131b821d1","savedPayload":{"position":{"x":26192.22202110634,"y":33147.36653693883},"targetPosition":{"x":26131.334998425056,"y":32920.13307477069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1fe20ab0-5d95-4cbf-a755-4d44a10fa987","savedPayload":{"position":{"x":26131.334998425056,"y":32920.13307477069},"targetPosition":{"x":26070.447975743773,"y":32692.899612602545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"2a0cf309-4736-4135-8672-fc4f63d7aa68","savedPayload":{"position":{"x":25904.101536256912,"y":32859.2460520894},"targetPosition":{"x":26070.447975743773,"y":32692.899612602545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"953f035b-0852-4ef3-bce7-0a2ef617c5f0","savedPayload":{"position":{"x":26070.447975743773,"y":32692.899612602545},"targetPosition":{"x":26131.334998425056,"y":32465.6661504344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"b2e09434-ac72-424d-b84f-277ca40f03a0","savedPayload":{"position":{"x":26131.334998425056,"y":32465.6661504344},"targetPosition":{"x":26192.22202110634,"y":32238.432688266257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0ae3d315-b316-4664-8aa1-0d1b063c521d","savedPayload":{"position":{"x":26192.22202110634,"y":32238.432688266257},"targetPosition":{"x":26313.996066468902,"y":31783.965763929973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"07dc8cad-777f-4220-b01a-bf0c3e35892f","savedPayload":{"position":{"x":26313.996066468902,"y":31783.965763929973},"targetPosition":{"x":26313.996066468902,"y":31313.466982380385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45","savedPayload":{"position":{"x":26313.996066468902,"y":31313.466982380385},"targetPosition":{"x":25933.35455636258,"y":31036.91473736396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"productionEnvironment":{"type":"Production Environment","name":"New Production Environment","taskManagers":[{"type":"Task Manager","name":"Fwd & Live Sessions Binance BTC/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"ee796c7b-cace-4a6e-bdde-ad39e3e6139b","savedPayload":{"position":{"x":27176.207456947846,"y":32311.194132579512},"targetPosition":{"x":27260.51329875159,"y":32530.81835915225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"3977047e-8e5c-4ea9-9d1c-4f8e7fa9eedb","savedPayload":{"position":{"x":27408.560537348218,"y":32347.995245176407},"targetPosition":{"x":27260.51329875159,"y":32530.81835915225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"3649194c-59c4-48ab-b5ef-7030caef1935","savedPayload":{"position":{"x":27492.86637915196,"y":32567.619471749145},"targetPosition":{"x":27260.51329875159,"y":32530.81835915225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"36cc39a9-daea-40f6-be81-122ced3c4efb","savedPayload":{"position":{"x":27344.819140555333,"y":32750.442585724988},"targetPosition":{"x":27260.51329875159,"y":32530.81835915225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"ae371a70-c949-4a17-9889-05b98457041b","savedPayload":{"position":{"x":27112.466060154962,"y":32713.641473128093},"targetPosition":{"x":27260.51329875159,"y":32530.81835915225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5f59f035-218f-4720-82c0-478857caf92c","savedPayload":{"position":{"x":27260.51329875159,"y":32530.81835915225},"targetPosition":{"x":27028.16021835122,"y":32494.017246555355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"47045f08-10b3-469a-9f2a-c70283632892","savedPayload":{"position":{"x":27028.16021835122,"y":32494.017246555355},"targetPosition":{"x":26795.807137950847,"y":32457.21613395846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"","id":"974d205a-abda-48f6-8932-e4b70ca2b375","savedPayload":{"position":{"x":26964.418821558334,"y":32896.46458710394},"targetPosition":{"x":26880.11297975459,"y":32676.840360531198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"9ff9004b-e73d-42d1-b9ec-5186134ed4b0","savedPayload":{"position":{"x":26880.11297975459,"y":32676.840360531198},"targetPosition":{"x":26795.807137950847,"y":32457.21613395846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"cf18844b-2259-4dfc-97aa-2d0aedb93f6a","savedPayload":{"position":{"x":26795.807137950847,"y":32457.21613395846},"targetPosition":{"x":26612.984023975005,"y":32309.168895361832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"6eb62683-029a-44ca-87f7-000f6ae62971","savedPayload":{"position":{"x":26612.984023975005,"y":32309.168895361832},"targetPosition":{"x":26430.160909999162,"y":32161.121656765205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"f75a2c3f-3445-4c21-9beb-794baee6ff2f","savedPayload":{"position":{"x":26430.160909999162,"y":32161.121656765205},"targetPosition":{"x":26064.514682047477,"y":31865.027179571945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"d70aea98-2cc1-46d5-b021-bc60b2ed82c8","savedPayload":{"position":{"x":26804.18538981103,"y":32807.26548265578},"targetPosition":{"x":26767.384277214136,"y":33039.61856305615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"114061f5-f3b8-40de-bd0d-a3a60499f373","savedPayload":{"position":{"x":26987.008503786874,"y":32955.312721252405},"targetPosition":{"x":26767.384277214136,"y":33039.61856305615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"047d7423-7b82-47c1-9bbe-0739fe88286d","savedPayload":{"position":{"x":26950.20739118998,"y":33187.66580165278},"targetPosition":{"x":26767.384277214136,"y":33039.61856305615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"718c72a6-6006-4b0b-a19e-eb519cac5e0a","savedPayload":{"position":{"x":26730.58316461724,"y":33271.97164345653},"targetPosition":{"x":26767.384277214136,"y":33039.61856305615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"1b6b6261-b749-4ec6-bd40-f4689cffdccc","savedPayload":{"position":{"x":26547.7600506414,"y":33123.9244048599},"targetPosition":{"x":26767.384277214136,"y":33039.61856305615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3a46af44-4749-4c66-b2be-b22bbb9ebe8e","savedPayload":{"position":{"x":26767.384277214136,"y":33039.61856305615},"targetPosition":{"x":26584.561163238293,"y":32891.571324459524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"75e03fc6-b4c4-4f92-8cbc-a674c2dacbb5","savedPayload":{"position":{"x":26584.561163238293,"y":32891.571324459524},"targetPosition":{"x":26401.73804926245,"y":32743.524085862897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","keyInstance":{"type":"Key Instance","name":"","id":"adcb3a42-f73f-4625-baea-a9028e4c7541","savedPayload":{"position":{"x":26328.13582406866,"y":33208.23024666365},"targetPosition":{"x":26364.936936665556,"y":32975.87716626327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"5afb3b6f-185b-4d74-b2f0-14728486c574","savedPayload":{"position":{"x":26364.936936665556,"y":32975.87716626327},"targetPosition":{"x":26401.73804926245,"y":32743.524085862897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"42e72af0-1f72-48ff-80f5-bcac299ae4b1","savedPayload":{"position":{"x":26401.73804926245,"y":32743.524085862897},"targetPosition":{"x":26317.432207458707,"y":32523.89985929016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"32cd0ef4-d30f-444b-a463-0a2e5f4660ac","savedPayload":{"position":{"x":26317.432207458707,"y":32523.89985929016},"targetPosition":{"x":26233.126365654964,"y":32304.27563271742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"529f5cbd-3540-486a-9631-231f0dca9155","savedPayload":{"position":{"x":26233.126365654964,"y":32304.27563271742},"targetPosition":{"x":26064.514682047477,"y":31865.027179571945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"b15ecc06-f325-4deb-9f4d-b1deb309fd8f","savedPayload":{"position":{"x":26064.514682047477,"y":31865.027179571945},"targetPosition":{"x":25787.962437031052,"y":31484.385669465624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Binance ETH/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"107bd29f-b5a3-4774-bec2-1191308284ce","savedPayload":{"position":{"x":26425.090429411186,"y":32969.27771649335},"targetPosition":{"x":26364.203406729903,"y":33196.511178661494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"723e1ee6-b1c7-4cfe-852b-9a63f3c9150f","savedPayload":{"position":{"x":26591.436868898047,"y":33135.624155980215},"targetPosition":{"x":26364.203406729903,"y":33196.511178661494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"699b264c-f422-4d99-91db-b2414a72eb65","savedPayload":{"position":{"x":26530.549846216763,"y":33362.85761814835},"targetPosition":{"x":26364.203406729903,"y":33196.511178661494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"1d51b642-c210-4db3-a13b-91069997cfba","savedPayload":{"position":{"x":26303.31638404862,"y":33423.74464082964},"targetPosition":{"x":26364.203406729903,"y":33196.511178661494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"e85bda9d-f405-46bd-97e4-5d0b2d1a8fc0","savedPayload":{"position":{"x":26136.96994456176,"y":33257.398201342774},"targetPosition":{"x":26364.203406729903,"y":33196.511178661494},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ddd0c436-6e0e-4708-9f78-c36c111daa18","savedPayload":{"position":{"x":26364.203406729903,"y":33196.511178661494},"targetPosition":{"x":26197.856967243042,"y":33030.16473917464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"91810c8d-9b4a-49f5-a932-cfce097e8ca1","savedPayload":{"position":{"x":26197.856967243042,"y":33030.16473917464},"targetPosition":{"x":26031.51052775618,"y":32863.81829968778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","keyInstance":{"type":"Key Instance","name":"","id":"ec455b7b-5511-49aa-b196-ab958ddfa7da","savedPayload":{"position":{"x":25909.736482393615,"y":33318.28522402407},"targetPosition":{"x":25970.6235050749,"y":33091.051761855924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"15ff653b-9a03-40d9-a4de-42cd05be900c","savedPayload":{"position":{"x":25970.6235050749,"y":33091.051761855924},"targetPosition":{"x":26031.51052775618,"y":32863.81829968778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"282453ab-0412-4ab6-82d8-b3bd29bbd375","savedPayload":{"position":{"x":26031.51052775618,"y":32863.81829968778},"targetPosition":{"x":25970.6235050749,"y":32636.58483751964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"7a3c1a27-f263-4e2b-b7d9-379a5815b6db","savedPayload":{"position":{"x":25970.6235050749,"y":32636.58483751964},"targetPosition":{"x":25909.736482393615,"y":32409.351375351496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c53e936d-00b3-4d3e-a34f-afa2539896c3","savedPayload":{"position":{"x":25909.736482393615,"y":32409.351375351496},"targetPosition":{"x":25787.962437031052,"y":31954.884451015212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"ae427ab5-fba9-484f-bfed-8ac65d5582bc","savedPayload":{"position":{"x":25832.53483115535,"y":33151.93878453721},"targetPosition":{"x":25666.18839166849,"y":33318.28522402407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"f579b014-f5c7-43c2-aa17-e17bb9308154","savedPayload":{"position":{"x":25893.421853836633,"y":33379.17224670535},"targetPosition":{"x":25666.18839166849,"y":33318.28522402407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"c09cd2e9-c71b-4ef9-9ec8-d2f44c31a9f0","savedPayload":{"position":{"x":26025.711838110816,"y":33318.28522402407},"targetPosition":{"x":25666.18839166849,"y":33318.28522402407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"ab5bc592-a152-402f-89ee-3fef47d6bbb5","savedPayload":{"position":{"x":25499.84195218163,"y":33484.631663510925},"targetPosition":{"x":25666.18839166849,"y":33318.28522402407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"d8d271c6-93e5-4521-969c-ab7be8da59a7","savedPayload":{"position":{"x":25437.87273898133,"y":33256.046767589076},"targetPosition":{"x":25665.143975192528,"y":33316.971201344466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cf7c3ac9-3cac-4856-98a9-89054d046891","savedPayload":{"position":{"x":25666.18839166849,"y":33318.28522402407},"targetPosition":{"x":25605.301368987206,"y":33091.051761855924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"ba093b64-4bd1-460a-b3d7-c27e02c37a33","savedPayload":{"position":{"x":25605.301368987206,"y":33091.051761855924},"targetPosition":{"x":25544.414346305923,"y":32863.81829968778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","keyInstance":{"type":"Key Instance","name":"","id":"c874d207-14f0-4708-a123-2278299da01a","savedPayload":{"position":{"x":25211.7214673322,"y":33196.511178661494},"targetPosition":{"x":25378.067906819062,"y":33030.16473917464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"ea589907-e40b-42b6-befe-9714258833a4","savedPayload":{"position":{"x":25378.067906819062,"y":33030.16473917464},"targetPosition":{"x":25544.414346305923,"y":32863.81829968778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441"}}},"id":"c5be0c77-4c71-4628-a7d0-a5b92e66bbad","savedPayload":{"position":{"x":25544.414346305923,"y":32863.81829968778},"targetPosition":{"x":25605.301368987206,"y":32636.58483751964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"d5697a6b-e533-45a6-9a98-4fbcbcdc5330","savedPayload":{"position":{"x":25605.301368987206,"y":32636.58483751964},"targetPosition":{"x":25666.18839166849,"y":32409.351375351496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"187bb76a-2903-49b3-934a-3ee0ec9da7fc","savedPayload":{"position":{"x":25666.18839166849,"y":32409.351375351496},"targetPosition":{"x":25787.962437031052,"y":31954.884451015212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"278cf63b-968b-4425-9e09-54b249bb6cd1","savedPayload":{"position":{"x":25787.962437031052,"y":31954.884451015212},"targetPosition":{"x":25787.962437031052,"y":31484.385669465624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bitfinex BTC/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"41166f2f-e952-4840-83cc-8be93aab4fec","savedPayload":{"position":{"x":25430.612163969286,"y":33060.18300806702},"targetPosition":{"x":25247.789049993444,"y":33208.23024666365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"a1738482-85fe-4739-82d1-f3b49fb0b4d6","savedPayload":{"position":{"x":25467.41327656618,"y":33292.536088467394},"targetPosition":{"x":25247.789049993444,"y":33208.23024666365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"847ca00a-6c13-495b-954c-c7bd486e186c","savedPayload":{"position":{"x":25284.59016259034,"y":33440.58332706402},"targetPosition":{"x":25247.789049993444,"y":33208.23024666365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"1822c939-fb1c-4e05-9a93-24fb9638b20b","savedPayload":{"position":{"x":25064.9659360176,"y":33356.277485260274},"targetPosition":{"x":25247.789049993444,"y":33208.23024666365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"605634c1-8377-47e7-9520-1d913477d1fa","savedPayload":{"position":{"x":25028.164823420706,"y":33123.9244048599},"targetPosition":{"x":25247.789049993444,"y":33208.23024666365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9aeb2473-7508-4e65-8407-242fa65c0820","savedPayload":{"position":{"x":25247.789049993444,"y":33208.23024666365},"targetPosition":{"x":25210.98793739655,"y":32975.87716626327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"817c2b97-fc39-47e4-8d6a-5f7ba7419a6a","savedPayload":{"position":{"x":25210.98793739655,"y":32975.87716626327},"targetPosition":{"x":25174.186824799654,"y":32743.524085862897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","keyInstance":{"type":"Key Instance","name":"","id":"159b8a23-2f45-4d14-b297-4dea929b1648","savedPayload":{"position":{"x":24808.540596847968,"y":33039.61856305615},"targetPosition":{"x":24991.36371082381,"y":32891.571324459524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"96dd5496-96c8-4104-a635-1d2dc8d02097","savedPayload":{"position":{"x":24991.36371082381,"y":32891.571324459524},"targetPosition":{"x":25174.186824799654,"y":32743.524085862897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"139a356b-3982-42fa-9fd7-99738ed82d40","savedPayload":{"position":{"x":25174.186824799654,"y":32743.524085862897},"targetPosition":{"x":25258.492666603397,"y":32523.89985929016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"de4a9439-3ef2-4731-8fd0-77b9d516445b","savedPayload":{"position":{"x":25258.492666603397,"y":32523.89985929016},"targetPosition":{"x":25342.79850840714,"y":32304.27563271742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c0ad2f50-406e-4df2-94fd-7fc26bfe31f8","savedPayload":{"position":{"x":25342.79850840714,"y":32304.27563271742},"targetPosition":{"x":25511.410192014628,"y":31865.027179571945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"6d8f8d95-5eb5-4e42-affd-49dc2906e892","savedPayload":{"position":{"x":24843.85913290414,"y":32859.66347450705},"targetPosition":{"x":24611.50605250377,"y":32896.46458710394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"14c046c9-c38f-43e2-8053-15700468e22a","savedPayload":{"position":{"x":24759.553291100397,"y":33079.28770107978},"targetPosition":{"x":24611.50605250377,"y":32896.46458710394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"b7132ceb-51b4-461b-9409-f79ca546a325","savedPayload":{"position":{"x":24527.200210700026,"y":33116.08881367668},"targetPosition":{"x":24611.50605250377,"y":32896.46458710394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"155f2dc3-2436-4925-a593-ad83cac1b3f9","savedPayload":{"position":{"x":24379.1529721034,"y":32933.26569970083},"targetPosition":{"x":24611.50605250377,"y":32896.46458710394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"57ef6f24-54c9-47c4-9d2b-85004bc7d071","savedPayload":{"position":{"x":24463.458813907142,"y":32713.641473128097},"targetPosition":{"x":24611.50605250377,"y":32896.46458710394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8f59ecfa-60ef-439e-b561-1232cb9b7109","savedPayload":{"position":{"x":24611.50605250377,"y":32896.46458710394},"targetPosition":{"x":24695.811894307513,"y":32676.840360531198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"0c3058b5-4a72-40dc-8b16-71fe24826039","savedPayload":{"position":{"x":24695.811894307513,"y":32676.840360531198},"targetPosition":{"x":24780.117736111257,"y":32457.21613395846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","keyInstance":{"type":"Key Instance","name":"","id":"b4b6ea2a-0369-429a-a41a-e4e1fe35048c","savedPayload":{"position":{"x":24315.411575310514,"y":32530.81835915225},"targetPosition":{"x":24547.764655710886,"y":32494.017246555355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"46e83542-0241-4587-9042-15ba08767895","savedPayload":{"position":{"x":24547.764655710886,"y":32494.017246555355},"targetPosition":{"x":24780.117736111257,"y":32457.21613395846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"19b0cfc6-eb77-41d3-a875-5e221cba3a19","savedPayload":{"position":{"x":24780.117736111257,"y":32457.21613395846},"targetPosition":{"x":24962.9408500871,"y":32309.168895361832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"aca14038-2e97-4cd5-820e-cbead38f23d3","savedPayload":{"position":{"x":24962.9408500871,"y":32309.168895361832},"targetPosition":{"x":25145.763964062942,"y":32161.121656765205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"f2d19f6d-c92b-4c4a-8f50-088dd029178f","savedPayload":{"position":{"x":25145.763964062942,"y":32161.121656765205},"targetPosition":{"x":25511.410192014628,"y":31865.027179571945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"18d5a27d-dae7-4302-8dad-6999f148d9f0","savedPayload":{"position":{"x":25511.410192014628,"y":31865.027179571945},"targetPosition":{"x":25787.962437031052,"y":31484.385669465624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bitfinex ETH/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"515a4631-5d00-40ff-8cc8-897c39d1df18","savedPayload":{"position":{"x":24572.629556947933,"y":32549.187275676566},"targetPosition":{"x":24337.702567287204,"y":32561.499277498337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"ee6c2889-a44f-43f0-b0ff-1206d76fdaf3","savedPayload":{"position":{"x":24465.82856846666,"y":32758.796017668246},"targetPosition":{"x":24337.702567287204,"y":32561.499277498337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"67291a8a-bf7f-403c-8ace-bf503e99bbca","savedPayload":{"position":{"x":24230.901578805933,"y":32771.10801949001},"targetPosition":{"x":24337.702567287204,"y":32561.499277498337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"0ddb5f24-70bf-4b41-ae97-ce9da652393b","savedPayload":{"position":{"x":24102.775577626475,"y":32573.811279320107},"targetPosition":{"x":24337.702567287204,"y":32561.499277498337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"d6901ee4-c0b0-4715-abf6-30ededce88e0","savedPayload":{"position":{"x":24209.57656610775,"y":32364.202537328427},"targetPosition":{"x":24337.702567287204,"y":32561.499277498337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ad72539a-ff4f-4648-b742-9860b761f5d3","savedPayload":{"position":{"x":24337.702567287204,"y":32561.499277498337},"targetPosition":{"x":24444.503555768475,"y":32351.890535506656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9762dce8-9683-4409-859a-a699892770ab","savedPayload":{"position":{"x":24444.503555768475,"y":32351.890535506656},"targetPosition":{"x":24551.304544249746,"y":32142.281793514976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","keyInstance":{"type":"Key Instance","name":"","id":"8263361f-2c1e-4d52-8282-03d52d3d545a","savedPayload":{"position":{"x":24081.450564928287,"y":32166.905797158517},"targetPosition":{"x":24316.377554589017,"y":32154.593795336747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"5cc20cab-99fd-4cab-9af0-9d5ddc4746f7","savedPayload":{"position":{"x":24316.377554589017,"y":32154.593795336747},"targetPosition":{"x":24551.304544249746,"y":32142.281793514976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"b02cf39e-36ce-40fd-9be1-134f1510a22c","savedPayload":{"position":{"x":24551.304544249746,"y":32142.281793514976},"targetPosition":{"x":24748.601284419656,"y":32014.15579233552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"72938d83-2f59-472b-a9c6-247973cd4cad","savedPayload":{"position":{"x":24748.601284419656,"y":32014.15579233552},"targetPosition":{"x":24945.898024589565,"y":31886.029791156066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7b6c9b4d-6f61-414d-bc72-b587c202fcd8","savedPayload":{"position":{"x":24945.898024589565,"y":31886.029791156066},"targetPosition":{"x":25340.49150492939,"y":31629.777788797153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"3ce75ca1-cf04-4c1e-9622-ad776c5d8218","savedPayload":{"position":{"x":24215.798807938332,"y":32042.078786924412},"targetPosition":{"x":24006.190065946652,"y":31935.27779844314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"a18b5347-6714-4191-8505-86c13faed60d","savedPayload":{"position":{"x":24018.502067768422,"y":32170.20478810387},"targetPosition":{"x":24006.190065946652,"y":31935.27779844314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"0aac1ea7-1221-4fbb-b637-bfff1a188ba6","savedPayload":{"position":{"x":23808.893325776742,"y":32063.403799622596},"targetPosition":{"x":24006.190065946652,"y":31935.27779844314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"2e6f4330-11e2-4358-b437-32cb4f0a0690","savedPayload":{"position":{"x":23796.58132395497,"y":31828.47680996187},"targetPosition":{"x":24006.190065946652,"y":31935.27779844314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"a88192b8-2a1f-4a5a-844c-ecf18dfa0168","savedPayload":{"position":{"x":23993.87806412488,"y":31700.350808782412},"targetPosition":{"x":24006.190065946652,"y":31935.27779844314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"013d62e1-c563-4ec9-92f6-6a55d05ec2ed","savedPayload":{"position":{"x":24006.190065946652,"y":31935.27779844314},"targetPosition":{"x":24203.48680611656,"y":31807.151797263687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"e97dbe38-8a71-4d2b-b632-d2f11d028747","savedPayload":{"position":{"x":24203.48680611656,"y":31807.151797263687},"targetPosition":{"x":24400.78354628647,"y":31679.025796084232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","keyInstance":{"type":"Key Instance","name":"","id":"3d0cecd4-d20a-413d-9f1b-f445f792d64c","savedPayload":{"position":{"x":23981.56606230311,"y":31465.42381912169},"targetPosition":{"x":24191.17480429479,"y":31572.22480760296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"2c6b0fb3-abff-46c5-b762-501a209d802e","savedPayload":{"position":{"x":24191.17480429479,"y":31572.22480760296},"targetPosition":{"x":24400.78354628647,"y":31679.025796084232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"7d57fabc-c7d6-44d4-9cf2-0a43d5b290fd","savedPayload":{"position":{"x":24400.78354628647,"y":31679.025796084232},"targetPosition":{"x":24635.7105359472,"y":31666.71379426246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"d435c5f0-6a7b-4c6e-ad3f-b96198cb82e3","savedPayload":{"position":{"x":24635.7105359472,"y":31666.71379426246},"targetPosition":{"x":24870.63752560793,"y":31654.40179244069},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"88b94337-d92c-4a56-8157-e4135a7d7f91","savedPayload":{"position":{"x":24870.63752560793,"y":31654.40179244069},"targetPosition":{"x":25340.49150492939,"y":31629.777788797153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"b203d40f-0b0d-49ea-8e27-3c561dce472a","savedPayload":{"position":{"x":25340.49150492939,"y":31629.777788797153},"targetPosition":{"x":25787.962437031052,"y":31484.385669465624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"l"}}}],"id":"32656457-f603-416a-b805-546642094dc4","savedPayload":{"position":{"x":25787.962437031052,"y":31484.385669465624},"targetPosition":{"x":25933.35455636258,"y":31036.91473736396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":"u"}}},"id":"ce601334-52c5-4ffb-ab61-49ca1943a15a","savedPayload":{"position":{"x":25933.35455636258,"y":31036.91473736396},"targetPosition":{"x":24992.356993272086,"y":31036.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"r"}}}],"id":"efbbc81b-93c8-4ce0-873e-675f39d333e8","savedPayload":{"position":{"x":24992.356993272086,"y":31036.918778615294},"targetPosition":{"x":24992.356993272086,"y":31036.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"n"}}},{"type":"Data Mine","name":"Masters","code":"{\n\"codeName\": \"AAMasters\"\n}","sensorBots":[{"type":"Sensor Bot","name":"Charly","code":"{\n\"codeName\": \"AACharly\",\n\"repo\": \"AACharly-Sensor-Bot\"\n}","processes":[{"type":"Process Definition","name":"Historic-Trades","code":"{\n \"codeName\": \"Historic-Trades\",\n \"description\": \"Retrieves and saves the historical trades in batches going backwards from the current time until reaching the begining of the market.\",\n \"startMode\": {\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[],"id":"e3008f15-43ae-4452-9c28-bfbb6c1a5e84","savedPayload":{"position":{"x":13889.892304785908,"y":17976.7326423862},"targetPosition":{"x":13788.99537092664,"y":18353.285125876908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"f796022a-7871-4bde-bcc7-bcf2818f1eaf","savedPayload":{"position":{"x":14327.806064095726,"y":17993.12379366583},"targetPosition":{"x":13938.17907937083,"y":17993.12379366583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"116834de-6646-4387-9f4b-4f711cea9235"}}}],"dataDependencies":[],"id":"1332b41e-7cd2-4e69-a40a-39ea47df67b5","savedPayload":{"position":{"x":13938.17907937083,"y":17993.12379366583},"targetPosition":{"x":13788.99537092664,"y":18353.285125876908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"116834de-6646-4387-9f4b-4f711cea9235","savedPayload":{"position":{"x":13983.913279342734,"y":18015.677405195172},"targetPosition":{"x":13788.99537092664,"y":18353.285125876908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"a9ea7169-fcd8-48c3-b0a9-b4e8941aa170","savedPayload":{"position":{"x":14026.312379860185,"y":18044.00757842793},"targetPosition":{"x":13788.99537092664,"y":18353.285125876908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"51908884-c7a2-46ca-8a55-209070ae5fa6","savedPayload":{"position":{"x":14064.650920558077,"y":18077.62957624547},"targetPosition":{"x":13788.99537092664,"y":18353.285125876908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"7a6a9399-474f-4a93-bcbd-28a594ef1943","savedPayload":{"position":{"x":13788.99537092664,"y":18353.285125876908},"targetPosition":{"x":13594.077462510544,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Process Definition","name":"Historic-OHLCVs","code":"{\n \"codeName\": \"Historic-OHLCVs\",\n \"description\": \"Retrieves and saves the historical trades in batches going backwards from the current time until reaching the begining of the market.\",\n \"startMode\": {\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[],"id":"dfe2556e-a765-4e38-9d30-7f91090c0069","savedPayload":{"position":{"x":14207.340732823715,"y":18220.319388511107},"targetPosition":{"x":13931.685183192278,"y":18495.974938142546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"ea39c98b-18e2-44ce-9f7f-86a8a76a688a","savedPayload":{"position":{"x":14630.238936015247,"y":18258.657929209},"targetPosition":{"x":14240.962730641259,"y":18258.657929209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"id":"5c7fae5a-6da6-4864-a167-f2f21d578c72","savedPayload":{"position":{"x":14240.962730641259,"y":18258.657929209},"targetPosition":{"x":13931.685183192278,"y":18495.974938142546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e","savedPayload":{"position":{"x":14269.292903874011,"y":18301.05702972645},"targetPosition":{"x":13931.685183192278,"y":18495.974938142546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"957e7e3a-b167-40be-93b5-9ba4ceff56e5","savedPayload":{"position":{"x":14291.846515403357,"y":18346.791229698356},"targetPosition":{"x":13931.685183192278,"y":18495.974938142546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd","savedPayload":{"position":{"x":14308.237666682984,"y":18395.078004283278},"targetPosition":{"x":13931.685183192278,"y":18495.974938142546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc","savedPayload":{"position":{"x":13931.685183192278,"y":18495.974938142546},"targetPosition":{"x":13594.077462510544,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Trades","code":"{\n\"codeName\": \"Trades\"\n}","datasets":[{"type":"Dataset Definition","name":"Trades","code":"{\n\"codeName\": \"Trades\"\n}","id":"fbb7c17e-a909-4fa2-b3c5-eb8ca86297c4","savedPayload":{"position":{"x":14178.83118775883,"y":18690.892846558643},"targetPosition":{"x":13983.913279342734,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"38dbb942-a15b-450b-a867-02a94030965f","savedPayload":{"position":{"x":13983.913279342734,"y":18690.892846558643},"targetPosition":{"x":13594.077462510544,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Product Definition","name":"Candles","code":"{\n\"codeName\": \"Candles\"\n}","datasets":[{"type":"Dataset Definition","name":"One-Min","code":"{\n\"codeName\": \"One-Min\"\n}","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c","savedPayload":{"position":{"x":14100.489043533145,"y":18983.269709182787},"targetPosition":{"x":13931.685183192278,"y":18885.81075497474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc","savedPayload":{"position":{"x":13931.685183192278,"y":18885.81075497474},"targetPosition":{"x":13594.077462510544,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Product Definition","name":"Volumes","code":"{\n\"codeName\": \"Volumes\"\n}","datasets":[{"type":"Dataset Definition","name":"One-Min","code":"{\n\"codeName\": \"One-Min\"\n}","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86","savedPayload":{"position":{"x":13886.454325134688,"y":19197.304427581246},"targetPosition":{"x":13788.99537092664,"y":19028.50056724038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"3a43c6f3-bac0-404e-865f-822eb48c8660","savedPayload":{"position":{"x":13788.99537092664,"y":19028.50056724038},"targetPosition":{"x":13594.077462510544,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"af924204-66a2-47d4-9910-66ab78acb06f","savedPayload":{"position":{"x":13594.077462510544,"y":18690.892846558643},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"indicatorBots":[{"type":"Indicator Bot","name":"Bruce","code":"{\n\"codeName\": \"AABruce\",\n\"repo\": \"AABruce-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Single-Period-Daily","code":"{\n \"codeName\": \"Single-Period-Daily\",\n \"description\": \"Produces two data-sets with candles and volumes.\",\n \"startMode\": {\n \"noTime\": {\n \"run\": \"true\"\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000\n }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[],"id":"597f9031-4a09-4bf1-b231-cd3de597ca5e","savedPayload":{"position":{"x":15171.130056135531,"y":19110.144034165838},"targetPosition":{"x":14350.88612760958,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"429872d3-959d-4b7a-af3e-baf9d7c2f364","savedPayload":{"position":{"x":15989.632933673003,"y":19056.72872331092},"targetPosition":{"x":15178.207908660892,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"c542a73e-a350-431f-ad3e-10f3ebef8ec7"}}},{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"728daa6a-9297-4f53-974f-fa725d0aca2d","savedPayload":{"position":{"x":16005.529689712204,"y":19218.13119598718},"targetPosition":{"x":15178.207908660892,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"c542a73e-a350-431f-ad3e-10f3ebef8ec7"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"4aff6e01-e4ce-48e5-b1da-b2172599b36a","savedPayload":{"position":{"x":14357.088835011034,"y":19110.028819124527},"targetPosition":{"x":15178.207908660892,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"deaa7a7d-b186-42d8-ad64-aab8a7638ca9"}}}],"dataDependencies":[],"id":"36df0b5c-0849-4310-bae0-5ea595b335d3","savedPayload":{"position":{"x":15178.207908660892,"y":19218.13119598718},"targetPosition":{"x":14350.88612760958,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"deaa7a7d-b186-42d8-ad64-aab8a7638ca9","savedPayload":{"position":{"x":15171.130056135531,"y":19326.11835780852},"targetPosition":{"x":14350.88612760958,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"a81eb239-9b38-4a3e-b8c3-061b7462a624","savedPayload":{"position":{"x":15150.017602578511,"y":19432.257829351394},"targetPosition":{"x":14350.88612760958,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"0c63c520-011d-4c1f-95c1-c966a92a583b"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f3b263bb-1051-40d8-a69a-d8640cf9afbe","savedPayload":{"position":{"x":15115.23178792367,"y":19534.733534830295},"targetPosition":{"x":14350.88612760958,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"661e048c-e9e5-435e-bdf9-53dce5ebfa0f","savedPayload":{"position":{"x":14350.88612760958,"y":19218.13119598718},"targetPosition":{"x":13530.642199083628,"y":19110.144034165838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Candles","code":"{\n\"codeName\": \"Candles\"\n}","datasets":[{"type":"Dataset Definition","name":"One-Min","code":"{\n\"codeName\": \"One-Min\"\n}","id":"20d5740b-5711-4b8c-9675-a5391f5ba245","savedPayload":{"position":{"x":14247.123878578252,"y":19523.804924691496},"targetPosition":{"x":13888.88303883094,"y":19316.974479428667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"3b42a93e-c933-420d-9504-25092a0d1279","savedPayload":{"position":{"x":13888.88303883094,"y":19316.974479428667},"targetPosition":{"x":13530.642199083628,"y":19110.144034165838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},{"type":"Product Definition","name":"Volumes","code":"{\n\"codeName\": \"Volumes\"\n}","datasets":[{"type":"Dataset Definition","name":"One-Min","code":"{\n\"codeName\": \"One-Min\"\n}","id":"2788ed30-ed62-4638-9a1d-35dc7e826870","savedPayload":{"position":{"x":14034.283788766465,"y":19766.50253265859},"targetPosition":{"x":13782.462993925046,"y":19438.323283412214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"4e714023-0cfd-4945-a573-52922711cd09","savedPayload":{"position":{"x":13782.462993925046,"y":19438.323283412214},"targetPosition":{"x":13530.642199083628,"y":19110.144034165838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}}],"id":"952e8327-4c9a-422a-bf64-cd773ccc36dd","savedPayload":{"position":{"x":13530.642199083628,"y":19110.144034165838},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Indicator Bot","name":"Olivia","code":"{\n\"codeName\": \"AAOlivia\",\n\"repo\": \"AAOlivia-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces different files with multi-period candles and volumes for entire markets.\",\n \"startMode\": {\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"5d82f670-e692-40ca-8d24-9273d0f5e08f","savedPayload":{"position":{"x":13762.443157332069,"y":19340.771298301057},"targetPosition":{"x":13999.240742929207,"y":19242.686526809517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"b198c9ea-3141-4407-9953-2b2ebb672450","savedPayload":{"position":{"x":13744.214307999862,"y":19242.686526809517},"targetPosition":{"x":13999.240742929207,"y":19242.686526809517},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"id":"d529ec20-8461-40d6-9dc3-14f9ab8b64be","savedPayload":{"position":{"x":13999.240742929207,"y":19242.686526809517},"targetPosition":{"x":13493.996227748026,"y":19322.70939657353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"ff665e30-1d31-429b-88dc-f5e623b9a5f8","savedPayload":{"position":{"x":13533.32350168678,"y":19504.844098548565},"targetPosition":{"x":14005.363386542527,"y":19309.31877626028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"6d911e31-cef3-4c4f-82e3-d7b9b1ba9541","savedPayload":{"position":{"x":13506.400502181525,"y":19429.109166364706},"targetPosition":{"x":14005.363386542527,"y":19309.31877626028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"957ffa57-d4df-4866-b99f-86cf8add689d","savedPayload":{"position":{"x":13594.010812416203,"y":19608.183915367532},"targetPosition":{"x":14005.363386542527,"y":19309.31877626028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"982efbd9-6a54-4322-9a0f-52a6483d67d9","savedPayload":{"position":{"x":13497.106939466288,"y":19269.318126370763},"targetPosition":{"x":14005.363386542527,"y":19309.31877626028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"New Data Dependency","id":"fe28906a-90b1-4a5e-88b1-110d994cb397","savedPayload":{"position":{"x":13506.654206264533,"y":19189.589295117275},"targetPosition":{"x":14005.363386542527,"y":19309.31877626028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"id":"09645f1b-96c2-4dbb-a99f-803c8ebe7a00","savedPayload":{"position":{"x":14005.363386542527,"y":19309.31877626028},"targetPosition":{"x":13493.996227748026,"y":19322.70939657353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d","savedPayload":{"position":{"x":14002.736396291113,"y":19376.18014293718},"targetPosition":{"x":13493.996227748026,"y":19322.70939657353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"c086e5db-7777-45d9-bb4d-381f9566341f","savedPayload":{"position":{"x":12981.328913281455,"y":19282.361603891815},"targetPosition":{"x":13493.996227748026,"y":19322.70939657353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5","savedPayload":{"position":{"x":13971.562247899687,"y":19506.02981606475},"targetPosition":{"x":13493.996227748026,"y":19322.70939657353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1","savedPayload":{"position":{"x":13493.996227748026,"y":19322.70939657353},"targetPosition":{"x":13154.836115385968,"y":19287.062232331093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces different files with multi-period candles and volumes on a daily format.\",\n \"startMode\": {\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"f60fba20-b9d6-4362-b667-020096340e38","savedPayload":{"position":{"x":13630.609158611016,"y":19844.187462023423},"targetPosition":{"x":13864.057194462954,"y":19747.49011946419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"a507b588-ce8f-4d5c-9053-d130015560b5","savedPayload":{"position":{"x":13606.42534164391,"y":19747.49011946419},"targetPosition":{"x":13864.057194462954,"y":19747.49011946419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"id":"4d806ace-6f82-449d-b908-afcd7d029a68","savedPayload":{"position":{"x":13864.057194462954,"y":19747.49011946419},"targetPosition":{"x":13408.26953267324,"y":19515.254706216772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"14730a16-e01e-4bc5-9886-0eed386152f2","savedPayload":{"position":{"x":13356.481349144535,"y":20001.06921174456},"targetPosition":{"x":13829.8450636424,"y":19804.99554126424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"1baff60d-84c4-4e27-b03d-663158ca6bba","savedPayload":{"position":{"x":13328.208776510799,"y":19925.427758588354},"targetPosition":{"x":13829.8450636424,"y":19804.99554126424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"4e77c03b-367c-450c-82ca-c7211c2fab8e","savedPayload":{"position":{"x":13323.731212460369,"y":19844.82756519985},"targetPosition":{"x":13829.8450636424,"y":19804.99554126424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"2d324ca2-acc5-4390-ae37-0d350fe8e8fa","savedPayload":{"position":{"x":13320.303816899235,"y":19764.89377544801},"targetPosition":{"x":13829.8450636424,"y":19804.99554126424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"New Data Dependency","id":"4051019a-9548-4541-a7e7-11097fe3f103","savedPayload":{"position":{"x":13332.208328743174,"y":19685.523531476952},"targetPosition":{"x":13829.8450636424,"y":19804.99554126424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"id":"1e4c5a40-0c64-423f-968d-31b178056cf3","savedPayload":{"position":{"x":13829.8450636424,"y":19804.99554126424},"targetPosition":{"x":13408.26953267324,"y":19515.254706216772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7","savedPayload":{"position":{"x":13788.419658604145,"y":19857.543417045294},"targetPosition":{"x":13408.26953267324,"y":19515.254706216772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"fa826f1b-2a52-4542-89b2-7190e137ef56","savedPayload":{"position":{"x":12896.02268818501,"y":19474.940005240023},"targetPosition":{"x":13408.26953267324,"y":19515.254706216772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3","savedPayload":{"position":{"x":13686.875519890931,"y":19944.270304642272},"targetPosition":{"x":13408.26953267324,"y":19515.254706216772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d","savedPayload":{"position":{"x":13408.26953267324,"y":19515.254706216772},"targetPosition":{"x":13154.836115385968,"y":19287.062232331093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Candles","code":"{\n \"codeName\": \"Candles\",\n \"singularVariableName\": \"candle\",\n \"pluralVariableName\": \"candles\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"AAMasters/AAOlivia/@Exchange/Output/Candles/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8","savedPayload":{"position":{"x":13360.358712783353,"y":19933.972052254852},"targetPosition":{"x":13225.73988607975,"y":19620.63824681261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"AAMasters/AAOlivia/@Exchange/Output/Candles/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAOlivia/@Exchange/Output/Candles/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"678a567c-f08d-49b9-813b-4e54fd6afadb","savedPayload":{"position":{"x":13296.64365677353,"y":19954.214261294128},"targetPosition":{"x":13225.73988607975,"y":19620.63824681261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Min","code":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","id":"95264fe8-6089-4a70-bf6d-158bc43c04f3","savedPayload":{"position":{"x":13366.57803588999,"y":20194.586672166464},"targetPosition":{"x":13234.66773115873,"y":20302.63641552432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Max","code":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","id":"b716bfaa-d785-45e3-b8ca-370284ac901c","savedPayload":{"position":{"x":13401.389151948511,"y":20338.400131548093},"targetPosition":{"x":13234.66773115873,"y":20302.63641552432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Open","code":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","id":"7d809ac3-9b7d-4687-83bb-40b851e522d0","savedPayload":{"position":{"x":13310.655637655125,"y":20455.28278331697},"targetPosition":{"x":13234.66773115873,"y":20302.63641552432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Close","code":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","id":"b0ea41f8-03da-454e-8d0f-bb0f2fc5d328","savedPayload":{"position":{"x":13162.701679899143,"y":20457.219606719533},"targetPosition":{"x":13234.66773115873,"y":20302.63641552432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"21b8be1f-0437-4fc8-9bc0-31779a9ea47e","savedPayload":{"position":{"x":13068.939626581545,"y":20342.75213422966},"targetPosition":{"x":13234.66773115873,"y":20302.63641552432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"91ba9479-fdb4-42b7-ad02-1b2ac24b13d6","savedPayload":{"position":{"x":13099.97421624781,"y":20198.076707343134},"targetPosition":{"x":13234.66773115873,"y":20302.63641552432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"65ea4bea-6b8f-4df9-8716-d8af0ce2044c","savedPayload":{"position":{"x":13234.66773115873,"y":20302.63641552432},"targetPosition":{"x":13225.73988607975,"y":19620.63824681261},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":5},"uiObject":{}}},"id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7","savedPayload":{"position":{"x":13225.73988607975,"y":19620.63824681261},"targetPosition":{"x":13154.836115385968,"y":19287.062232331093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Candles","id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3"}}},{"type":"Product Definition","name":"Volumes","code":"{\n \"codeName\": \"Volumes\",\n \"singularVariableName\": \"volume\",\n \"pluralVariableName\": \"volumes\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"AAMasters/AAOlivia/@Exchange/Output/Volumes/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAOlivia/@Exchange/Output/Volumes/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"2e683057-f911-4105-bc77-16f2706d1915","savedPayload":{"position":{"x":12940.863337694167,"y":19931.226422240477},"targetPosition":{"x":13016.127409011764,"y":19598.60708770824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"AAMasters/AAOlivia/@Exchange/Output/Volumes/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1","savedPayload":{"position":{"x":12877.41870263756,"y":19910.151943085384},"targetPosition":{"x":13016.127409011764,"y":19598.60708770824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Buy","code":"{\n \"codeName\": \"buy\",\n \"isString\": false\n}","id":"bc8405e2-4a80-416c-bccf-1334e53d371b","savedPayload":{"position":{"x":12843.026454493978,"y":20054.27731199496},"targetPosition":{"x":12720.893143561381,"y":20016.353910927646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Sell","code":"{\n \"codeName\": \"sell\",\n \"isString\": false\n}","id":"f08f11a8-d092-4b7e-a7e6-c67adac04a33","savedPayload":{"position":{"x":12722.56711451369,"y":20144.22856756109},"targetPosition":{"x":12720.893143561381,"y":20016.353910927646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"8e2624b0-48ee-4d00-821e-0c6a72b3838f","savedPayload":{"position":{"x":12599.79440357349,"y":20057.461393959526},"targetPosition":{"x":12720.893143561381,"y":20016.353910927646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"62964ed9-14c4-442d-b272-602d0c714654","savedPayload":{"position":{"x":12644.37603530177,"y":19913.88507599986},"targetPosition":{"x":12720.893143561381,"y":20016.353910927646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"7edf78c7-c63d-4e7e-a643-99aaf52ac967","savedPayload":{"position":{"x":12720.893143561381,"y":20016.353910927646},"targetPosition":{"x":13016.127409011764,"y":19598.60708770824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f","savedPayload":{"position":{"x":13016.127409011764,"y":19598.60708770824},"targetPosition":{"x":13154.836115385968,"y":19287.062232331093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Volumes","id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1"}}}],"id":"285a4618-0423-4ac9-9df9-7a78be6fd915","savedPayload":{"position":{"x":13154.836115385968,"y":19287.062232331093},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"l"}}},{"type":"Indicator Bot","name":"Tom","code":"{\n\"codeName\": \"AATom\",\n\"repo\": \"AATom-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces for each market two files with candles stairs and volumes stairs respectively.\",\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"dc5b175b-eef7-44b1-a863-7de93d17cf3a","savedPayload":{"position":{"x":13108.47009570826,"y":19726.314339927412},"targetPosition":{"x":13418.406970690476,"y":19597.934282830243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8fc77cc9-3f73-4a14-b5b0-8cc86d0a18d1"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"47cd9826-4b62-4108-ae8f-9aa3912f91d7","savedPayload":{"position":{"x":13082.870609622494,"y":19597.934282830243},"targetPosition":{"x":13418.406970690476,"y":19597.934282830243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0d84339c-22b1-4b26-978c-729a65eacf8c"}}}],"id":"8714647d-617e-4ac3-a74b-00056295c54d","savedPayload":{"position":{"x":13418.406970690476,"y":19597.934282830243},"targetPosition":{"x":13085.249548651183,"y":19562.91802676372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"10b6d300-4fa3-467c-b3e9-3bcb9e732fec","savedPayload":{"position":{"x":13087.7772670613,"y":19811.463781921826},"targetPosition":{"x":13397.99203286062,"y":19682.968618679355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"ef7219af-7454-4a57-97a0-19bc098ad645","savedPayload":{"position":{"x":13066.299473014567,"y":19726.636772614245},"targetPosition":{"x":13397.99203286062,"y":19682.968618679355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8e9083d9-2a83-4591-af42-945fefb62a34"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"92e8f5d6-c2ff-4591-8128-842c1776983a","savedPayload":{"position":{"x":13066.28752580838,"y":19639.29889186493},"targetPosition":{"x":13397.99203286062,"y":19682.968618679355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"955136c6-aab5-4118-a414-ac3bf24a3d33","savedPayload":{"position":{"x":13397.99203286062,"y":19682.968618679355},"targetPosition":{"x":13085.249548651183,"y":19562.91802676372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"8e9083d9-2a83-4591-af42-945fefb62a34","savedPayload":{"position":{"x":13356.264211563283,"y":19759.8217050824},"targetPosition":{"x":13085.249548651183,"y":19562.91802676372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"eced2d21-5c6f-4e3d-986c-131d4c2a9768","savedPayload":{"position":{"x":12756.480245920227,"y":19510.84608475479},"targetPosition":{"x":13085.249548651183,"y":19562.91802676372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"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":"16259ff0-c3a4-4775-a95e-b8d1973dba74","savedPayload":{"position":{"x":13221.503292371799,"y":19868.948945742344},"targetPosition":{"x":13085.249548651183,"y":19562.91802676372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"2924712f-7d80-4f36-8822-71a12cb485f6","savedPayload":{"position":{"x":13085.249548651183,"y":19562.91802676372},"targetPosition":{"x":12814.234885739084,"y":19366.014348445042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces for each market two files with candles stairs and volumes stairs respectively at each day of the market history.\",\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"0aa6c915-996c-435b-9832-131bfdca2a70","savedPayload":{"position":{"x":12854.939588409909,"y":20037.900867716253},"targetPosition":{"x":13166.701252847446,"y":19908.764958078216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b15413b6-1175-452a-aa67-08e12d613041"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"45ea1cb9-4d50-4652-abd3-37c5d49f7428","savedPayload":{"position":{"x":12829.718406128371,"y":19908.764958078216},"targetPosition":{"x":13166.701252847446,"y":19908.764958078216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"63d69b29-5bca-43f6-be0e-67a50fb23827"}}}],"id":"f8c053de-33af-4986-be52-3e55a7155b74","savedPayload":{"position":{"x":13166.701252847446,"y":19908.764958078216},"targetPosition":{"x":12917.75327552191,"y":19684.61119247454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"cc29c13b-dce7-4e7b-810a-fc709bc16adf","savedPayload":{"position":{"x":12790.639529460394,"y":20093.78509063647},"targetPosition":{"x":13100.203292653392,"y":19965.559581502675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"5fd2b4e4-4826-49f5-b6bc-f9b7b6dc6eb7","savedPayload":{"position":{"x":12780.301594658935,"y":20007.675439026094},"targetPosition":{"x":13100.203292653392,"y":19965.559581502675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"0ddf959e-3b96-4528-b180-4577e69dd6d4","savedPayload":{"position":{"x":12776.762791901527,"y":19922.977831757773},"targetPosition":{"x":13100.203292653392,"y":19965.559581502675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"5bde8446-e23e-4384-a028-b6913bf7109c"}}}],"dataDependencies":[],"id":"98aa9f6a-a680-443e-a052-96a23e52b357","savedPayload":{"position":{"x":13100.203292653392,"y":19965.559581502675},"targetPosition":{"x":12917.75327552191,"y":19684.61119247454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"5bde8446-e23e-4384-a028-b6913bf7109c","savedPayload":{"position":{"x":13021.271665304737,"y":20003.208036504035},"targetPosition":{"x":12917.75327552191,"y":19684.61119247454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"4838b38c-df75-44dc-8d3b-9a0c4df26911","savedPayload":{"position":{"x":12567.779328852606,"y":19629.18076480315},"targetPosition":{"x":12917.75327552191,"y":19684.61119247454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"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":"63c476bb-a46a-4417-8549-b8ba98c5922e","savedPayload":{"position":{"x":12848.10440881795,"y":20012.28334786104},"targetPosition":{"x":12917.75327552191,"y":19684.61119247454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"80c87e44-7b3a-449d-9bf4-d14502bfa837","savedPayload":{"position":{"x":12917.75327552191,"y":19684.61119247454},"targetPosition":{"x":12814.234885739084,"y":19366.014348445042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Candle-Stairs","code":"{\n \"codeName\": \"Candle-Stairs\",\n \"singularVariableName\": \"candleStair\",\n \"pluralVariableName\": \"candleStairs\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"AAMasters/AATom/@Exchange/Output/Candle-Stairs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"8fc77cc9-3f73-4a14-b5b0-8cc86d0a18d1","savedPayload":{"position":{"x":12736.999708211271,"y":20018.57106851108},"targetPosition":{"x":12710.716495956258,"y":19684.61119247454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"AAMasters/AATom/@Exchange/Output/Candle-Stairs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AATom/@Exchange/Output/Candle-Stairs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"b15413b6-1175-452a-aa67-08e12d613041","savedPayload":{"position":{"x":12607.198106173431,"y":20003.208036504035},"targetPosition":{"x":12710.716495956258,"y":19684.61119247454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Open","code":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","id":"0b931c5d-1de2-4122-9215-844a4db0415d","savedPayload":{"position":{"x":12431.105548369565,"y":20131.848246605266},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Close","code":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","id":"a96e4cc4-c543-4d0e-9ad5-6f1912e32661","savedPayload":{"position":{"x":12442.209617015735,"y":20211.244483332994},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Min","code":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","id":"f6cf2806-5925-43f3-83a6-1bd037916b1f","savedPayload":{"position":{"x":12415.144510527305,"y":20286.70667756159},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Max","code":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","id":"bb402063-7e84-4041-848f-2c9f19b2f163","savedPayload":{"position":{"x":12356.110518630883,"y":20340.947350011305},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"310a32cb-6610-400d-9976-438720232ded","savedPayload":{"position":{"x":12278.631617433215,"y":20361.54061629488},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"e9b94bbc-9b6d-4ba2-81d7-3c4f853d0283","savedPayload":{"position":{"x":12200.457289476704,"y":20343.768807282504},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","id":"3861f1de-12c6-4e6c-988a-e084ad9072db","savedPayload":{"position":{"x":12139.496331193412,"y":20291.7032302454},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Candle Count","code":"{\n \"codeName\": \"candleCount\",\n \"isString\": false\n}","id":"27eec18a-7158-4130-a0a4-808f2b18a184","savedPayload":{"position":{"x":12109.714163466848,"y":20217.27148142454},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Min","code":"{\n \"codeName\": \"firstMin\",\n \"isString\": false\n}","id":"47e5d2f3-fa36-4131-9871-d8bcd18c1256","savedPayload":{"position":{"x":12117.933522009142,"y":20137.52497747498},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Max","code":"{\n \"codeName\": \"firstMax\",\n \"isString\": false\n}","id":"ff6e9655-245a-40c7-85c9-416172d7467a","savedPayload":{"position":{"x":12162.271450832259,"y":20070.732681402},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Min","code":"{\n \"codeName\": \"lastMin\",\n \"isString\": false\n}","id":"6f671d69-4565-45c8-bf9e-7e08dcdef842","savedPayload":{"position":{"x":12232.570664772795,"y":20032.1959033015},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Max","code":"{\n \"codeName\": \"lastMax\",\n \"isString\": false\n}","id":"55c3ed69-91e6-4302-bc5b-0aa566a69d13","savedPayload":{"position":{"x":12312.726461114336,"y":20030.74295461778},"targetPosition":{"x":12275.595985210715,"y":20194.071853687623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"e7377c71-41cf-461e-b02c-39d6071cf6fe","savedPayload":{"position":{"x":12275.595985210715,"y":20194.071853687623},"targetPosition":{"x":12710.716495956258,"y":19684.61119247454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"id":"642474e9-da61-4168-97dc-7f7869bebc02","savedPayload":{"position":{"x":12710.716495956258,"y":19684.61119247454},"targetPosition":{"x":12814.234885739084,"y":19366.014348445042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Candles Patterns","id":"a41043f2-f2a5-4c8f-b372-d8eda1ca58df"}}},{"type":"Product Definition","name":"Volume-Stairs","code":"{\n \"codeName\": \"Volume-Stairs\",\n \"singularVariableName\": \"volumeStair\",\n \"pluralVariableName\": \"volumeStairs\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"AAMasters/AATom/@Exchange/Output/Volume-Stairs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"0d84339c-22b1-4b26-978c-729a65eacf8c","savedPayload":{"position":{"x":12368.187098216355,"y":19848.546126463003},"targetPosition":{"x":12543.220222826985,"y":19562.91802676372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"AAMasters/AATom/@Exchange/Output/Volume-Stairs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AATom/@Exchange/Output/Volume-Stairs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"63d69b29-5bca-43f6-be0e-67a50fb23827","savedPayload":{"position":{"x":12272.205559914886,"y":19759.8217050824},"targetPosition":{"x":12543.220222826985,"y":19562.91802676372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"New Record Property","code":"{\n \"codeName\": \"type\",\n \"isString\": true\n}","id":"16846a74-8f33-492a-9c4e-9c0249ad0325","savedPayload":{"position":{"x":12034.560921598153,"y":19806.83950276972},"targetPosition":{"x":11891.746871748512,"y":19719.322940464404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"0223719c-db20-45db-9e65-000acf7bcc12","savedPayload":{"position":{"x":11930.848100173684,"y":19882.191278234022},"targetPosition":{"x":11891.746871748512,"y":19719.322940464404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"c28009dd-8548-415b-8150-e19f086fff46","savedPayload":{"position":{"x":11804.230309443195,"y":19862.136990314044},"targetPosition":{"x":11891.746871748512,"y":19719.322940464404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","id":"8e2fa372-284e-4a46-aab9-26e53899594c","savedPayload":{"position":{"x":11728.878533978894,"y":19758.424168889575},"targetPosition":{"x":11891.746871748512,"y":19719.322940464404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Bars Count","code":"{\n \"codeName\": \"barsCount\",\n \"isString\": false\n}","id":"aae7b07a-5726-4370-b86f-0b676c5cb929","savedPayload":{"position":{"x":11748.93282189887,"y":19631.80637815909},"targetPosition":{"x":11891.746871748512,"y":19719.322940464404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Amount","code":"{\n \"codeName\": \"firstAmount\",\n \"isString\": false\n}","id":"cfbcb334-5dce-4186-9d91-889a6eaa21fa","savedPayload":{"position":{"x":11852.64564332334,"y":19556.454602694786},"targetPosition":{"x":11891.746871748512,"y":19719.322940464404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Amount","code":"{\n \"codeName\": \"lastAmount\",\n \"isString\": false\n}","id":"707911c8-e786-4d6b-a13a-8966263c8df2","savedPayload":{"position":{"x":11979.263434053828,"y":19576.508890614765},"targetPosition":{"x":11891.746871748512,"y":19719.322940464404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"af6daf93-5959-410e-ad1f-75e0e5475be8","savedPayload":{"position":{"x":11891.746871748512,"y":19719.322940464404},"targetPosition":{"x":12543.220222826985,"y":19562.91802676372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"id":"846e9572-c4d6-4c7e-942e-c82402c5ecea","savedPayload":{"position":{"x":12543.220222826985,"y":19562.91802676372},"targetPosition":{"x":12814.234885739084,"y":19366.014348445042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Volume Patterns","id":"cfd94d21-cb45-446b-9764-cc67cca712b2"}}}],"id":"841b4675-d110-4269-abb9-d53f9124e5c1","savedPayload":{"position":{"x":12814.234885739084,"y":19366.014348445042},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"P"}}},{"type":"Indicator Bot","name":"Chris","code":"{\n\"codeName\": \"AAChris\",\n\"repo\": \"AAChris-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces a single file for each time frame covering all the market.\",\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"b8c1f684-7327-488b-8c76-4a73d811e312","savedPayload":{"position":{"x":12699.229527345695,"y":20147.594322761757},"targetPosition":{"x":12938.855187606889,"y":20048.338124388963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"fa1205c0-3b6e-4064-aca4-ffdaba7e1bd4","savedPayload":{"position":{"x":12672.00759190602,"y":20048.338124388963},"targetPosition":{"x":12938.855187606889,"y":20048.338124388963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}}],"id":"72887b4d-8868-4f0c-a051-81b83c366c99","savedPayload":{"position":{"x":12938.855187606889,"y":20048.338124388963},"targetPosition":{"x":12603.916389236521,"y":19634.72315466813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"603f6167-ef54-4464-9b7b-5ff7f59c24e7","savedPayload":{"position":{"x":12390.749087975255,"y":20292.001558934764},"targetPosition":{"x":12882.002152712668,"y":20088.51787696318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"79c51f8f-95eb-451c-98ac-cce4028e23e2","savedPayload":{"position":{"x":12353.144825031568,"y":20158.14326501979},"targetPosition":{"x":12882.002152712668,"y":20088.51787696318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"25d943b0-45aa-45b3-b8b1-f83d5a8b636f","savedPayload":{"position":{"x":12356.512140880619,"y":20019.33580444826},"targetPosition":{"x":12882.002152712668,"y":20088.51787696318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"bd55a584-c9dd-4f2e-836c-a34a16ef01dc","savedPayload":{"position":{"x":12882.002152712668,"y":20088.51787696318},"targetPosition":{"x":12603.916389236521,"y":19634.72315466813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c","savedPayload":{"position":{"x":12820.390993305431,"y":20120.933076023255},"targetPosition":{"x":12603.916389236521,"y":19634.72315466813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"a2cf5c7f-ffbf-4c38-9640-699fd3a37454","savedPayload":{"position":{"x":12073.97683170607,"y":19593.0160069766},"targetPosition":{"x":12603.916389236521,"y":19634.72315466813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":"4a9c8cc7-0ebf-43eb-b7f9-0b280630ff67","savedPayload":{"position":{"x":12687.174412477876,"y":20160.393625017085},"targetPosition":{"x":12603.916389236521,"y":19634.72315466813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"id":"941a0543-0cc0-4a5d-a782-728d2835c100","savedPayload":{"position":{"x":12603.916389236521,"y":19634.72315466813},"targetPosition":{"x":12459.599986523914,"y":19310.583207098043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces a Daily File at each time frame.\",\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"1f8cdcbe-c7dc-49fd-b106-e59bb4fb4ad9","savedPayload":{"position":{"x":12166.739230795083,"y":20291.426538002605},"targetPosition":{"x":12413.684128652767,"y":20189.138612151113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"6362cf0d-c71e-4d08-8dea-c9b8d5d0e38b","savedPayload":{"position":{"x":12147.882925887065,"y":20189.138612151113},"targetPosition":{"x":12413.684128652767,"y":20189.138612151113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}}],"id":"3ab24229-73fe-439a-9684-986aac94f220","savedPayload":{"position":{"x":12413.684128652767,"y":20189.138612151113},"targetPosition":{"x":12385.829728024919,"y":19657.644986416417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"aee6dca7-b8e8-4a33-9bc6-37830080a3a2","savedPayload":{"position":{"x":11852.013260908414,"y":20392.044738941004},"targetPosition":{"x":12344.071991237666,"y":20188.227339354544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"40701c78-7ace-40a8-a943-7b76d73147ce","savedPayload":{"position":{"x":11821.746737752303,"y":20292.124292067496},"targetPosition":{"x":12344.071991237666,"y":20188.227339354544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"442d1d63-f28a-4bff-8dda-9bab7a5ad708","savedPayload":{"position":{"x":11810.854097775395,"y":20188.227339354544},"targetPosition":{"x":12344.071991237666,"y":20188.227339354544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"7323fef7-870a-48b6-b96f-586111253b40"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"603dbf64-0ee0-45b6-a1b8-14065b398893","savedPayload":{"position":{"x":11823.084954125423,"y":20084.596574428433},"targetPosition":{"x":12344.071991237666,"y":20188.227339354544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"312620aa-b556-43c4-9603-6a80acb7ab00","savedPayload":{"position":{"x":12344.071991237666,"y":20188.227339354544},"targetPosition":{"x":12385.829728024919,"y":19657.644986416417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"7323fef7-870a-48b6-b96f-586111253b40","savedPayload":{"position":{"x":12275.174340276428,"y":20178.23765539398},"targetPosition":{"x":12385.829728024919,"y":19657.644986416417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"7ec89351-b852-416a-961a-7e66717c6473","savedPayload":{"position":{"x":11857.791743640137,"y":19616.087495777105},"targetPosition":{"x":12385.829728024919,"y":19657.644986416417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":"acebc3ed-4f3f-4a4b-b403-f16cbe987dde","savedPayload":{"position":{"x":12144.205533708475,"y":20131.859168566087},"targetPosition":{"x":12385.829728024919,"y":19657.644986416417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca","savedPayload":{"position":{"x":12385.829728024919,"y":19657.644986416417},"targetPosition":{"x":12459.599986523914,"y":19310.583207098043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Bollinger Bands","code":"{\n\"codeName\": \"Bollinger-Bands\",\n\"singularVariableName\": \"bollingerBand\",\n\"pluralVariableName\": \"bollingerBands\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"AAMasters/AAChris/@Exchange/Output/Bollinger-Bands/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719","savedPayload":{"position":{"x":12086.276826445754,"y":19885.450461482946},"targetPosition":{"x":12195.920798201068,"y":19548.001014661106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"AAMasters/AAChris/@Exchange/Output/Bollinger-Bands/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAChris/@Exchange/Output/Bollinger-Bands/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"506104fa-e99a-4a46-930e-176bce311aff","savedPayload":{"position":{"x":12002.674510588899,"y":19845.574202342323},"targetPosition":{"x":12195.920798201068,"y":19548.001014661106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"1e7186ee-c481-401d-827f-a30ee7434d92","savedPayload":{"position":{"x":11845.726963466945,"y":20032.12142999651},"targetPosition":{"x":11668.562421555378,"y":20022.836629787227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"15f90f2e-80f0-4575-94d8-6d8957eceee1","savedPayload":{"position":{"x":11787.27132533691,"y":20154.67622394865},"targetPosition":{"x":11668.562421555378,"y":20022.836629787227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Moving Average","code":"{\n \"codeName\": \"movingAverage\",\n \"isString\": false\n}","id":"9786a9cd-1eff-4b5c-ae7c-1dde51659f82","savedPayload":{"position":{"x":11659.277621346095,"y":20200.001171698794},"targetPosition":{"x":11668.562421555378,"y":20022.836629787227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Standard Deviation","code":"{\n \"codeName\": \"standardDeviation\",\n \"isString\": false\n}","id":"e92d7855-bb18-494e-ab37-a895bbcb8287","savedPayload":{"position":{"x":11536.722827393956,"y":20141.54553356876},"targetPosition":{"x":11668.562421555378,"y":20022.836629787227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Deviation","code":"{\n \"codeName\": \"deviation\",\n \"isString\": false\n}","id":"03043530-caa1-416e-8303-840b732e516e","savedPayload":{"position":{"x":11491.397879643811,"y":20013.551829577944},"targetPosition":{"x":11668.562421555378,"y":20022.836629787227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"isCalculated\": true\n}","formula":{"type":"Formula","code":"variable.direction","id":"f72926d9-c869-4b7c-ba1e-b36d134e2bc6","savedPayload":{"position":{"x":11431.144613992315,"y":19759.157441464384},"targetPosition":{"x":11549.853517773847,"y":19890.997035625805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"856f24c9-f5f1-491b-98e7-6e1d3c5c5874","savedPayload":{"position":{"x":11549.853517773847,"y":19890.997035625805},"targetPosition":{"x":11668.562421555378,"y":20022.836629787227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Slope","code":"{\n \"codeName\": \"slope\",\n \"isString\": true,\n \"isCalculated\": true\n}","formula":{"type":"Formula","code":"variable.slope","id":"fac935fe-b448-4b34-aed7-b35f70808911","savedPayload":{"position":{"x":11687.132021973945,"y":19668.507545964094},"targetPosition":{"x":11677.847221764661,"y":19845.67208787566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4c027b0c-da8a-4146-a51a-d0a7a126150b","savedPayload":{"position":{"x":11677.847221764661,"y":19845.67208787566},"targetPosition":{"x":11668.562421555378,"y":20022.836629787227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"b5a5ec97-7246-42bd-97e4-28fb4a148b2c","savedPayload":{"position":{"x":11668.562421555378,"y":20022.836629787227},"targetPosition":{"x":12195.920798201068,"y":19548.001014661106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"calculations":{"type":"Calculations Procedure","name":"New Calculations Procedure","initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"variable.lastMovingAverage = 0\nvariable.SIDE_TOLERANCE = 0.5 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.SMALL_SLOPE = 1.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.MEDIUM_SLOPE = 2.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.HIGH_SLOPE = 4.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\n","id":"f00ac417-cd99-493c-b959-35eddd6fe4f3","savedPayload":{"position":{"x":11842.63880926416,"y":20417.741978518334},"targetPosition":{"x":11861.208409682724,"y":20063.4128946952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d144ab2f-5b4e-4153-806a-d471e9f281dd","savedPayload":{"position":{"x":11861.208409682724,"y":20063.4128946952},"targetPosition":{"x":11879.778010101289,"y":19709.083810872067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"\nif (variable.lastMovingAverage > product.bollingerBand.movingAverage) { variable.direction = \"Down\" }\nif (variable.lastMovingAverage < product.bollingerBand.movingAverage) { variable.direction = \"Up\" }\nif (variable.lastMovingAverage === product.bollingerBand.movingAverage) { variable.direction = \"Side\" }\n\nvariable.delta = Math.abs(product.bollingerBand.movingAverage - variable.lastMovingAverage)\n\nvariable.slope = \"Extreme\"\nif (variable.delta < product.bollingerBand.movingAverage * variable.HIGH_SLOPE / 100) { variable.slope = \"Steep\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.MEDIUM_SLOPE / 100) { variable.slope = \"Medium\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.SMALL_SLOPE / 100) { variable.slope = \"Gentle\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.SIDE_TOLERANCE / 100) { variable.slope = \"Side\" }\n\nvariable.lastMovingAverage = product.bollingerBand.movingAverage","id":"14fc0c9c-cd10-4931-95b5-4bc7d549942a","savedPayload":{"position":{"x":11284.631634738858,"y":19322.59123564773},"targetPosition":{"x":11582.204822420073,"y":19515.8375232599},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8a669548-845b-4d80-ae96-29f68e9c9ac7","savedPayload":{"position":{"x":11582.204822420073,"y":19515.8375232599},"targetPosition":{"x":11879.778010101289,"y":19709.083810872067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d72c7cb2-8886-4101-a83a-f9788b8400a0","savedPayload":{"position":{"x":11879.778010101289,"y":19709.083810872067},"targetPosition":{"x":12195.920798201068,"y":19548.001014661106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","id":"139484b3-3a3f-4268-801e-a8c441746c7a","savedPayload":{"position":{"x":11848.859018882693,"y":19621.7712731601},"targetPosition":{"x":12195.920798201068,"y":19548.001014661106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"29088877-8d63-4217-8d34-8742afc262f4","savedPayload":{"position":{"x":12195.920798201068,"y":19548.001014661106},"targetPosition":{"x":12459.599986523914,"y":19310.583207098043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Bollinger Bands","id":"a11bfdf8-595c-4b50-b259-6a9f777d0ea8"}}},{"type":"Product Definition","name":"Percentage Bandwidth","code":"{\n \"codeName\": \"Percentage-Bandwidth\",\n \"singularVariableName\": \"percentageBandwidth\",\n \"pluralVariableName\": \"percentageBandwidths\"\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\": \"AAMasters/AAChris/@Exchange/Output/Percentage-Bandwidth/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"207e9481-0730-4304-a938-cfe223d70856","savedPayload":{"position":{"x":11794.910558358122,"y":19516.974760533012},"targetPosition":{"x":12106.72835619056,"y":19347.671509951182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"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\": \"AAMasters/AAChris/@Exchange/Output/Percentage-Bandwidth/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAChris/@Exchange/Output/Percentage-Bandwidth/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea","savedPayload":{"position":{"x":11753.856725857207,"y":19384.75981280432},"targetPosition":{"x":12106.72835619056,"y":19347.671509951182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"7c793ff3-0356-4f05-b471-4510e9cdaf58","savedPayload":{"position":{"x":11467.735443145299,"y":19318.631389229547},"targetPosition":{"x":11426.32044437994,"y":19146.12550439391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"b02c38c3-216c-4a83-903d-d50a599b55dc","savedPayload":{"position":{"x":11297.633465192643,"y":19268.24488784023},"targetPosition":{"x":11426.32044437994,"y":19146.12550439391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Value","code":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","id":"2c279136-20b1-4f9c-9d35-6a4fd36a4a99","savedPayload":{"position":{"x":11256.218466427286,"y":19095.73900300459},"targetPosition":{"x":11426.32044437994,"y":19146.12550439391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Moving Average","code":"{\n \"codeName\": \"movingAverage\",\n \"isString\": false\n}","id":"a9e3bbb1-9eaf-4ab1-93bb-ee27357daa76","savedPayload":{"position":{"x":11384.905445614582,"y":18973.61961955827},"targetPosition":{"x":11426.32044437994,"y":19146.12550439391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Bandwidth","code":"{\n \"codeName\": \"bandwidth\",\n \"isString\": false\n}","id":"90d9694f-ed29-4b2e-8c75-c4bdcf35e36a","savedPayload":{"position":{"x":11555.007423567238,"y":19024.00612094759},"targetPosition":{"x":11426.32044437994,"y":19146.12550439391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"d04d8ca7-18d0-4360-babf-7c49c3c97f50","savedPayload":{"position":{"x":11426.32044437994,"y":19146.12550439391},"targetPosition":{"x":12106.72835619056,"y":19347.671509951182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068","savedPayload":{"position":{"x":12106.72835619056,"y":19347.671509951182},"targetPosition":{"x":12459.599986523914,"y":19310.583207098043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Percentage B","id":"06b2f3f6-b138-415f-8974-31c22a930f92"}}}],"id":"1b7ecdbd-82e9-4a27-8fdd-467c0ca6bf23","savedPayload":{"position":{"x":12459.599986523914,"y":19310.583207098043},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4},"uiObject":{"shortcutKey":"c"}}},{"type":"Indicator Bot","name":"Paula","code":"{\n\"codeName\": \"AAPaula\",\n\"repo\": \"AAPaula-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces for each market two files with bollinger channels respectively.\",\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":"Bollinger Channels Objects","id":"d804e799-7c12-42f5-8de2-52a3a7d5daa4","savedPayload":{"position":{"x":12006.263063007409,"y":19976.87832445274},"targetPosition":{"x":12377.776449703491,"y":19822.992441080063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"610cd062-ab88-4892-b711-0fb430305c61"}}},{"type":"Output Dataset","name":"Bollinger Channels","id":"e524685d-8da0-41f6-839d-9a4100e6e3fe","savedPayload":{"position":{"x":11987.194174225217,"y":19900.68408615198},"targetPosition":{"x":12377.776449703491,"y":19822.992441080063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Output Dataset","name":"Bollinger Sub-Channels Objects","id":"eb0e7947-95e4-4f4a-87ea-1fb430b8b503","savedPayload":{"position":{"x":11977.271778622608,"y":19822.992441080063},"targetPosition":{"x":12377.776449703491,"y":19822.992441080063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"869f615e-0cc0-44fd-8648-4a951c23a410"}}},{"type":"Output Dataset","name":"Bollinger Sub-Channels Objects","id":"dc96b9ac-f8d5-4bf8-a135-45cd5d6369f1","savedPayload":{"position":{"x":11986.687775581646,"y":19745.200067055113},"targetPosition":{"x":12377.776449703491,"y":19822.992441080063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}}],"id":"dd39a54a-3714-446a-9a41-dfd83557664c","savedPayload":{"position":{"x":12377.776449703491,"y":19822.992441080063},"targetPosition":{"x":12152.933889213153,"y":19493.208974408924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"ae627a69-4089-432d-b379-1b12ce4bd75e","savedPayload":{"position":{"x":11916.390039222188,"y":20022.533078356286},"targetPosition":{"x":12284.760883305311,"y":19869.948878754232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"af8aded9-002a-475a-88f5-d29573740969"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"4a603114-d464-46db-90a1-62304274117a","savedPayload":{"position":{"x":11889.91942862399,"y":19921.930742414068},"targetPosition":{"x":12284.760883305311,"y":19869.948878754232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Chris Bollinger Bands","id":"ea27be54-93a3-48e3-8c52-72bc397b6c66","savedPayload":{"position":{"x":11889.425886273022,"y":19817.902039011227},"targetPosition":{"x":12284.760883305311,"y":19869.948878754232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}}],"id":"8b509294-6028-40e2-88a8-655a34245ed8","savedPayload":{"position":{"x":12284.760883305311,"y":19869.948878754232},"targetPosition":{"x":12152.933889213153,"y":19493.208974408924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"af8aded9-002a-475a-88f5-d29573740969","savedPayload":{"position":{"x":12182.761525114158,"y":19891.231114539398},"targetPosition":{"x":12152.933889213153,"y":19493.208974408924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"f4720e04-5def-4c0b-be42-33e50ac6a6b7","savedPayload":{"position":{"x":11754.085525899693,"y":19430.037599611165},"targetPosition":{"x":12152.933889213153,"y":19493.208974408924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"4a9c8cc7-0ebf-43eb-b7f9-0b280630ff67"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"671530dc-5ba5-4c8d-bc23-f228e22c56b3","savedPayload":{"position":{"x":11979.754309573018,"y":19852.82007698107},"targetPosition":{"x":12152.933889213153,"y":19493.208974408924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"28be432d-80ca-46b3-859a-55541e24b2b4","savedPayload":{"position":{"x":12152.933889213153,"y":19493.208974408924},"targetPosition":{"x":12123.106253312148,"y":19095.18683427845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces for each market two files with bollinger channels respectively at each day of the market history.\",\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":"New Output Dataset","id":"64430a93-38c2-4c71-8085-71661bbf804e","savedPayload":{"position":{"x":12665.29470822313,"y":20058.754368682585},"targetPosition":{"x":12066.517385594956,"y":20058.754368682585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"64910fea-c92a-4a55-850a-aa62d98b478e"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"b536a078-e32a-4489-93f6-75107a90b527","savedPayload":{"position":{"x":12066.517385594956,"y":20657.59516068981},"targetPosition":{"x":12066.517385594956,"y":20058.754368682585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"d5bcc7c4-2798-4c34-9504-cc4617b64a04","savedPayload":{"position":{"x":11463.980032045714,"y":20058.754368682585},"targetPosition":{"x":12066.517385594956,"y":20058.754368682585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"029479ae-275d-4854-ad3e-66948656a053"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"57898dc1-83a2-4ee9-8a0b-6674f988f0fa","savedPayload":{"position":{"x":12066.517385594956,"y":19462.72338706443},"targetPosition":{"x":12066.517385594956,"y":20058.754368682585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}}],"id":"b8fc5ac0-021d-4230-aa59-9876c5f0f3e1","savedPayload":{"position":{"x":12066.517385594956,"y":20058.754368682585},"targetPosition":{"x":11977.284690250699,"y":19466.73411746567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"3cb29ee1-02de-452a-a79f-2451700fe335","savedPayload":{"position":{"x":11356.328867306012,"y":20291.11884060848},"targetPosition":{"x":11910.250739131785,"y":20061.676888803155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"7323fef7-870a-48b6-b96f-586111253b40"}}},{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"d5f34469-0ae1-45e6-acd9-4155d5940c77","savedPayload":{"position":{"x":11890.102103161676,"y":20660.045073316574},"targetPosition":{"x":11910.250739131785,"y":20061.676888803155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"c542a73e-a350-431f-ad3e-10f3ebef8ec7"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"7f6266a5-bddb-4d49-962d-100b1993043d","savedPayload":{"position":{"x":11310.070508632514,"y":20061.676888803155},"targetPosition":{"x":11910.250739131785,"y":20061.676888803155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"b1dd07bf-a698-4bbb-995a-356c929a1e94"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"073e24ab-6b47-482a-b117-0d3554f63c1f","savedPayload":{"position":{"x":11324.679966754233,"y":19945.1996202012},"targetPosition":{"x":11910.250739131785,"y":20061.676888803155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}}],"id":"c0cb34fe-9268-4ebb-a8ce-7d53a13a6d4d","savedPayload":{"position":{"x":11910.250739131785,"y":20061.676888803155},"targetPosition":{"x":11977.284690250699,"y":19466.73411746567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"b1dd07bf-a698-4bbb-995a-356c929a1e94","savedPayload":{"position":{"x":11758.552345658525,"y":20024.05504224649},"targetPosition":{"x":11977.284690250699,"y":19466.73411746567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"4548cff9-f388-4f4f-b148-665d22ffaf9e","savedPayload":{"position":{"x":11385.417873993323,"y":19372.99162302608},"targetPosition":{"x":11977.284690250699,"y":19466.73411746567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"acebc3ed-4f3f-4a4b-b403-f16cbe987dde"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"34e17fad-2c62-4c45-875c-774ac6b6cc99","savedPayload":{"position":{"x":11509.196460814132,"y":19840.022024090413},"targetPosition":{"x":11977.284690250699,"y":19466.73411746567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"id":"bc15b49d-4547-4bac-a28b-193eb0158fe3","savedPayload":{"position":{"x":11977.284690250699,"y":19466.73411746567},"targetPosition":{"x":12123.106253312148,"y":19095.18683427845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Bollinger Channels Objects","code":"{\n \"codeName\": \"Bollinger-Channels-Objects\",\n \"singularVariableName\": \"bollingerChannelsObject\",\n \"pluralVariableName\": \"bollingerChannelsObjects\"\n}","datasets":[{"type":"Dataset Definition","name":"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\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Channels-Objects/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"610cd062-ab88-4892-b711-0fb430305c61","savedPayload":{"position":{"x":11693.069191778519,"y":19741.395458530576},"targetPosition":{"x":11830.517240236673,"y":19366.669764358787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"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\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Channels-Objects/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Channels-Objects/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"64910fea-c92a-4a55-850a-aa62d98b478e","savedPayload":{"position":{"x":11583.999770370461,"y":19680.581294806852},"targetPosition":{"x":11830.517240236673,"y":19366.669764358787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"06edb099-ff64-4528-b8c6-599154bc2ddf","savedPayload":{"position":{"x":11366.028368770643,"y":19832.764254176465},"targetPosition":{"x":11167.60515276556,"y":19811.408802306472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"94656d1f-508a-4e94-a8d2-013690aac596","savedPayload":{"position":{"x":11305.879134910763,"y":19955.312012263996},"targetPosition":{"x":11167.60515276556,"y":19811.408802306472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","id":"edc0f697-f5e2-446f-bae8-8db7adf91d23","savedPayload":{"position":{"x":11181.029968061008,"y":20010.525859106372},"targetPosition":{"x":11167.60515276556,"y":19811.408802306472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Period","code":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","id":"eb733f85-6cf5-485e-9bd3-2bf78733c492","savedPayload":{"position":{"x":11049.89918093431,"y":19972.570622132487},"targetPosition":{"x":11167.60515276556,"y":19811.408802306472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Moving Average","code":"{\n \"codeName\": \"firstMovingAverage\",\n \"isString\": false\n}","id":"a67a15ee-6f7f-48bd-9d55-82c57efc993b","savedPayload":{"position":{"x":10973.844326183616,"y":19859.205978547892},"targetPosition":{"x":11167.60515276556,"y":19811.408802306472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Moving Average","code":"{\n \"codeName\": \"lastMovingAverage\",\n \"isString\": false\n}","id":"0f05bffe-d668-4d25-ab67-d55a4a7c8f5d","savedPayload":{"position":{"x":10988.452315602333,"y":19723.476504993494},"targetPosition":{"x":11167.60515276556,"y":19811.408802306472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Deviation","code":"{\n \"codeName\": \"firstDeviation\",\n \"isString\": false\n}","id":"eae84509-b689-4a76-9277-eed72af491dd","savedPayload":{"position":{"x":11086.887908591727,"y":19628.891530610468},"targetPosition":{"x":11167.60515276556,"y":19811.408802306472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Deviation","code":"{\n \"codeName\": \"lastDeviation\",\n \"isString\": false\n}","id":"d5c32d1f-9e3c-48e8-8025-a17d57c0812e","savedPayload":{"position":{"x":11223.0919972023,"y":19619.70841610753},"targetPosition":{"x":11167.60515276556,"y":19811.408802306472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"6c3e68b0-b781-4c53-9ff7-67c3f747ac8a","savedPayload":{"position":{"x":11167.60515276556,"y":19811.408802306472},"targetPosition":{"x":11830.517240236673,"y":19366.669764358787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"\n\nif (record.next !== undefined) {\n\n if (\n record.current.direction === record.next.direction) {\n\n if (variable.channel === undefined) {\n\n variable.channel = {\n begin: undefined,\n end: undefined,\n direction: undefined,\n period: 0,\n firstMovingAverage: 0,\n lastMovingAverage: 0,\n firstDeviation: 0,\n lastDeviation: 0\n }\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 2\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.next.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.next.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.next.deviation\n\n } else {\n\n variable.channel.period++\n variable.channel.end = record.next.end\n variable.channel.lastMovingAverage = record.next.movingAverage\n variable.channel.lastDeviation = record.next.deviation\n\n }\n } else {\n\n if (variable.channel !== undefined) {\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n }\n} else {\n if (variable.channel !== undefined) {\n variable.channel.period++\n variable.channel.end = record.current.end\n variable.channel.lastMovingAverage = record.current.movingAverage\n variable.channel.lastDeviation = record.current.deviation\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n}","id":"b81d6adc-e721-4089-b4c3-2fd772f33d25","savedPayload":{"position":{"x":10678.669068274638,"y":19693.851053287544},"targetPosition":{"x":11062.61845892865,"y":19584.790623644625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a2b92c75-e272-4d05-b098-121a70371450","savedPayload":{"position":{"x":11062.61845892865,"y":19584.790623644625},"targetPosition":{"x":11446.567849582661,"y":19475.730194001706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"116ccf8c-26bc-4b86-99e6-bb3075527713","savedPayload":{"position":{"x":11446.567849582661,"y":19475.730194001706},"targetPosition":{"x":11830.517240236673,"y":19366.669764358787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"1f111f72-624f-4166-9f99-ab8d785d5267","savedPayload":{"position":{"x":11830.517240236673,"y":19366.669764358787},"targetPosition":{"x":12123.106253312148,"y":19095.18683427845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Plotter Module","name":"Bollinger Channels Objects","id":"52881346-3e4b-45e0-92d2-af130d381b8e"}}},{"type":"Product Definition","name":"Bollinger Channels","code":"{\n \"codeName\": \"Bollinger-Channels\",\n \"singularVariableName\": \"bollingerChannel\",\n \"pluralVariableName\": \"bollingerChannels\"\n}","datasets":[{"type":"Dataset Definition","name":"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\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Channels/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"22c1f2c6-3838-4657-add8-2e01d7056917","savedPayload":{"position":{"x":11455.276834685585,"y":19490.814598682333},"targetPosition":{"x":11741.700632631004,"y":19212.83488742986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"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\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Channels/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Channels/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec","savedPayload":{"position":{"x":11383.394958304552,"y":19388.699482055817},"targetPosition":{"x":11741.700632631004,"y":19212.83488742986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"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","code":"record.current.begin","id":"b243e3c4-e528-4e7b-9644-b03e47c8ca34","savedPayload":{"position":{"x":11127.337037572994,"y":19684.209814069858},"targetPosition":{"x":11039.404740260015,"y":19505.05697690663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"74268e18-735f-405b-b9db-412ce6cf7438","savedPayload":{"position":{"x":11039.404740260015,"y":19505.05697690663},"targetPosition":{"x":10951.472442947037,"y":19325.904139743405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"bc705d0f-6df6-45f6-8d3a-44b81bf785bd","savedPayload":{"position":{"x":10665.048645001618,"y":19603.883850995873},"targetPosition":{"x":10808.260543974327,"y":19464.89399536964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ad08f6a7-5d37-4fd3-9d84-5eebddcd8cb5","savedPayload":{"position":{"x":10808.260543974327,"y":19464.89399536964},"targetPosition":{"x":10951.472442947037,"y":19325.904139743405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","formula":{"type":"Formula","code":"record.current.direction","id":"7b7fd5fc-c820-4c1b-ae3e-400d7b90bb0b","savedPayload":{"position":{"x":10598.58820600398,"y":19139.39937515386},"targetPosition":{"x":10775.030324475509,"y":19232.65175744863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"31720cda-be3c-453e-8c6e-c4816299c440","savedPayload":{"position":{"x":10775.030324475509,"y":19232.65175744863},"targetPosition":{"x":10951.472442947037,"y":19325.904139743405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Period","code":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.period","id":"9c44699b-a743-4f46-82f6-0351e8b1a206","savedPayload":{"position":{"x":11019.801788367575,"y":18932.658144910798},"targetPosition":{"x":10985.637115657306,"y":19129.2811423271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8af98ad4-3062-49a1-bff6-593bd9638f72","savedPayload":{"position":{"x":10985.637115657306,"y":19129.2811423271},"targetPosition":{"x":10951.472442947037,"y":19325.904139743405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"9106250d-b042-4e96-9121-c760b4c1eab2","savedPayload":{"position":{"x":10951.472442947037,"y":19325.904139743405},"targetPosition":{"x":11741.700632631004,"y":19212.83488742986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"if (record.previous !== undefined) {\n if (record.current.direction === record.previous.direction) {\n variable.period++\n } else {\n variable.period = 1\n }\n}","id":"8f05a74a-f85c-4eb1-9de1-3363d2e3cb8a","savedPayload":{"position":{"x":11062.392071268496,"y":18404.30593820046},"targetPosition":{"x":11405.031787430506,"y":18609.023638475504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7e54fecc-8443-4aad-a541-0b6a3fcac877","savedPayload":{"position":{"x":11405.031787430506,"y":18609.023638475504},"targetPosition":{"x":11747.671503592515,"y":18813.741338750548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"variable.period = 1","id":"491600d9-228d-41b8-bedb-22b8ba22a7c9","savedPayload":{"position":{"x":12444.892677839558,"y":18424.989641942007},"targetPosition":{"x":12096.282090716037,"y":18619.365490346278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3c3de682-9ac0-4bf9-b1ff-97a3e0cb24b4","savedPayload":{"position":{"x":12096.282090716037,"y":18619.365490346278},"targetPosition":{"x":11747.671503592515,"y":18813.741338750548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9ace6abd-5ef9-4c37-9dbc-7aefc8b8b905","savedPayload":{"position":{"x":11747.671503592515,"y":18813.741338750548},"targetPosition":{"x":11741.700632631004,"y":19212.83488742986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"94bc3958-cc85-43a1-a178-103e84f42910","savedPayload":{"position":{"x":11741.700632631004,"y":19212.83488742986},"targetPosition":{"x":12123.106253312148,"y":19095.18683427845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","code":"{\n \"codeName\": \"Bollinger-Sub-Channels-Objects\",\n \"singularVariableName\": \"bollingerSubChannelsObject\",\n \"pluralVariableName\": \"bollingerSubChannelsObjects\"\n}","datasets":[{"type":"Dataset Definition","name":"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\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Sub-Channels-Objects/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"869f615e-0cc0-44fd-8648-4a951c23a410","savedPayload":{"position":{"x":11349.756284341966,"y":19161.874808037785},"targetPosition":{"x":11728.426085834202,"y":19035.698370715614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"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\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Sub-Channels-Objects/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Sub-Channels-Objects/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"029479ae-275d-4854-ad3e-66948656a053","savedPayload":{"position":{"x":11329.299040178583,"y":19038.68388971608},"targetPosition":{"x":11728.426085834202,"y":19035.698370715614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"8f0513f5-d78e-4efd-a554-a6ee2a4781ac","savedPayload":{"position":{"x":11085.904341834956,"y":18955.275944676516},"targetPosition":{"x":10967.396178417033,"y":18794.703085270943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"677f9a11-1fa3-4880-ad4f-81a4490d82e8","savedPayload":{"position":{"x":10968.888937917267,"y":18994.266608098755},"targetPosition":{"x":10967.396178417033,"y":18794.703085270943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","id":"610f6b9f-9404-4603-a42b-80de31498f2f","savedPayload":{"position":{"x":10851.303350607517,"y":18957.03078871543},"targetPosition":{"x":10967.396178417033,"y":18794.703085270943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Slope","code":"{\n \"codeName\": \"slope\",\n \"isString\": true\n}","id":"65600005-8272-4297-8716-b08841eb5e73","savedPayload":{"position":{"x":10778.061277670915,"y":18857.791303932026},"targetPosition":{"x":10967.396178417033,"y":18794.703085270943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Period","code":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","id":"ef18438f-7a1f-4432-8fce-494bc9b5ae01","savedPayload":{"position":{"x":10777.13870156274,"y":18734.454263909774},"targetPosition":{"x":10967.396178417033,"y":18794.703085270943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Moving Average","code":"{\n \"codeName\": \"firstMovingAverage\",\n \"isString\": false\n}","id":"e5694d55-735b-4cb2-919e-02a71679c682","savedPayload":{"position":{"x":10848.888014999111,"y":18634.13022586537},"targetPosition":{"x":10967.396178417033,"y":18794.703085270943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Moving Average","code":"{\n \"codeName\": \"lastMovingAverage\",\n \"isString\": false\n}","id":"d49bae2d-b519-49ba-8fd2-9a3a4c2e8dc3","savedPayload":{"position":{"x":10965.9034189168,"y":18595.13956244313},"targetPosition":{"x":10967.396178417033,"y":18794.703085270943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Deviation","code":"{\n \"codeName\": \"firstDeviation\",\n \"isString\": false\n}","id":"a11b4d44-937d-456e-b2bd-9cd025289c34","savedPayload":{"position":{"x":11083.48900622655,"y":18632.375381826456},"targetPosition":{"x":10967.396178417033,"y":18794.703085270943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Deviation","code":"{\n \"codeName\": \"lastDeviation\",\n \"isString\": false\n}","id":"4d1b7a3f-c452-4002-ab8c-bfa7d396ac2c","savedPayload":{"position":{"x":11156.731079163152,"y":18731.61486660986},"targetPosition":{"x":10967.396178417033,"y":18794.703085270943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"a2ff91c2-cfee-487c-959d-fd3ed3dea861","savedPayload":{"position":{"x":10967.396178417033,"y":18794.703085270943},"targetPosition":{"x":11728.426085834202,"y":19035.698370715614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"if (record.next !== undefined) {\n\n if (\n record.current.direction === record.next.direction &&\n record.current.slope === record.next.slope) {\n\n if (variable.channel === undefined) {\n\n variable.channel = {\n begin: undefined,\n end: undefined,\n direction: undefined,\n slope: undefined,\n period: 0,\n firstMovingAverage: 0,\n lastMovingAverage: 0,\n firstDeviation: 0,\n lastDeviation: 0\n }\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 2\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.next.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.next.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.next.deviation\n\n } else {\n\n variable.channel.period++\n variable.channel.end = record.next.end\n variable.channel.lastMovingAverage = record.next.movingAverage\n variable.channel.lastDeviation = record.next.deviation\n\n }\n } else {\n\n if (variable.channel !== undefined) {\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n }\n\n} else {\n if (variable.channel !== undefined) {\n variable.channel.period++\n variable.channel.end = record.current.end\n variable.channel.lastMovingAverage = record.current.movingAverage\n variable.channel.lastDeviation = record.current.deviation\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n}","id":"a1af769c-2a2d-4e78-8f0d-8dfb773982f0","savedPayload":{"position":{"x":12264.045395861982,"y":17964.757773949048},"targetPosition":{"x":12085.505625852722,"y":18321.737972871237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"128aac86-66b5-4685-a75d-4e60ba697c90","savedPayload":{"position":{"x":12085.505625852722,"y":18321.737972871237},"targetPosition":{"x":11906.965855843462,"y":18678.718171793425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5bfe184e-396e-431a-a640-76c05d1c6e06","savedPayload":{"position":{"x":11906.965855843462,"y":18678.718171793425},"targetPosition":{"x":11728.426085834202,"y":19035.698370715614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"080c87fc-4546-4482-ab11-180a33f6d9ab","savedPayload":{"position":{"x":11728.426085834202,"y":19035.698370715614},"targetPosition":{"x":12123.106253312148,"y":19095.18683427845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Bollinger Sub Channels Objects","id":"f8c4b699-1f40-4832-b427-68da3341daa8"}}},{"type":"Product Definition","name":"Bollinger Sub-Channels","code":"{\n \"codeName\": \"Bollinger-Sub-Channels\",\n \"singularVariableName\": \"bollingerSubChannel\",\n \"pluralVariableName\": \"bollingerSubChannels\"\n}","datasets":[{"type":"Dataset Definition","name":"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\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Sub-Channels/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3","savedPayload":{"position":{"x":11397.40717986784,"y":18819.726646315874},"targetPosition":{"x":11793.322786641009,"y":18870.344273788112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"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\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Sub-Channels/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAPaula/@Exchange/Output/Bollinger-Sub-Channels/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"ca71e765-0f66-4b18-b500-847b9d16169b","savedPayload":{"position":{"x":11432.426376020298,"y":18699.85939851006},"targetPosition":{"x":11793.322786641009,"y":18870.344273788112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"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","code":"record.current.begin","id":"421aeb2e-dd1b-44ec-bf78-00d8691d4110","savedPayload":{"position":{"x":11288.703956136376,"y":18751.1902779376},"targetPosition":{"x":11323.100751926033,"y":18605.519369122598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2a101e7-8183-42b4-94c4-99bfcbf2c3c2","savedPayload":{"position":{"x":11323.100751926033,"y":18605.519369122598},"targetPosition":{"x":11357.49754771569,"y":18459.848460307596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"febf55a5-de85-4830-b4fe-df78acfc60b5","savedPayload":{"position":{"x":11070.791336673718,"y":18545.94237119734},"targetPosition":{"x":11214.144442194704,"y":18502.895415752468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0cc9b985-b780-41ef-838b-7f764824f244","savedPayload":{"position":{"x":11214.144442194704,"y":18502.895415752468},"targetPosition":{"x":11357.49754771569,"y":18459.848460307596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","formula":{"type":"Formula","code":"record.current.direction","id":"73113162-c56d-4ca1-9e8b-f6a5bf84c30f","savedPayload":{"position":{"x":11139.58492825303,"y":18254.600553567336},"targetPosition":{"x":11248.54123798436,"y":18357.224506937466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"91f3e346-3d02-48f9-aa0c-e55bae62f870","savedPayload":{"position":{"x":11248.54123798436,"y":18357.224506937466},"targetPosition":{"x":11357.49754771569,"y":18459.848460307596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Slope","code":"{\n \"codeName\": \"slope\",\n \"isString\": true\n}","formula":{"type":"Formula","code":"record.current.slope","id":"f9e484d0-138a-4d19-a876-a6067f5a1619","savedPayload":{"position":{"x":11426.291139295003,"y":18168.506642677592},"targetPosition":{"x":11391.894343505346,"y":18314.177551492594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"478a7021-7233-4eb4-958d-f127c6a4891c","savedPayload":{"position":{"x":11391.894343505346,"y":18314.177551492594},"targetPosition":{"x":11357.49754771569,"y":18459.848460307596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Period","code":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.period","id":"35c1cfa6-c691-40b0-b680-bd7c94be19e3","savedPayload":{"position":{"x":11644.203758757661,"y":18373.754549417852},"targetPosition":{"x":11500.850653236675,"y":18416.801504862724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"61f63128-268f-4679-a0ef-e9b53a0a655b","savedPayload":{"position":{"x":11500.850653236675,"y":18416.801504862724},"targetPosition":{"x":11357.49754771569,"y":18459.848460307596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"afe778f1-4343-4102-8eb4-0b9340d7ad5b","savedPayload":{"position":{"x":11357.49754771569,"y":18459.848460307596},"targetPosition":{"x":11793.322786641009,"y":18870.344273788112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"if (record.previous !== undefined) {\n if (record.current.direction === record.previous.direction && record.current.slope === record.previous.slope) {\n variable.period++\n } else {\n variable.period = 1\n }\n}","id":"c450c940-f800-414b-a2c4-bda3481f55c7","savedPayload":{"position":{"x":11129.932773025153,"y":17876.229705199505},"targetPosition":{"x":11365.746362846225,"y":18198.25961491782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a580c9a8-c70a-483e-8dd3-d3b62464f8f4","savedPayload":{"position":{"x":11365.746362846225,"y":18198.25961491782},"targetPosition":{"x":11601.559952667296,"y":18520.289524636133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"variable.period = 1","id":"e0efa286-41a0-45e0-8ce3-dfc27b4dce3e","savedPayload":{"position":{"x":11312.69802692657,"y":17776.109415087845},"targetPosition":{"x":11457.128989796933,"y":18148.19946986199},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2decc091-6c76-458b-be8e-39e3e72cecd6","savedPayload":{"position":{"x":11457.128989796933,"y":18148.19946986199},"targetPosition":{"x":11601.559952667296,"y":18520.289524636133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"f16f2ab8-7ba2-4acf-bf85-8ed89bd1e5af","savedPayload":{"position":{"x":11601.559952667296,"y":18520.289524636133},"targetPosition":{"x":11793.322786641009,"y":18870.344273788112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"79ce9c05-8a4c-4b58-850f-288037acc702","savedPayload":{"position":{"x":11793.322786641009,"y":18870.344273788112},"targetPosition":{"x":12123.106253312148,"y":19095.18683427845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"bd0f325d-6f98-468b-8b7b-99a42a175d80","savedPayload":{"position":{"x":12123.106253312148,"y":19095.18683427845},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"tradingBots":[{"type":"Trading Bot","name":"Jason","code":"{\n\"codeName\": \"AAJason\",\n\"repo\": \"AAJason-Trading-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period","code":"{\n \"codeName\": \"Multi-Period\",\n \"startMode\": {\n \"userDefined\": {\n \"run\": \"true\"\n }\n },\n \"deadWaitTime\": 0,\n \"liveWaitTime\": 60000,\n \"normalWaitTime\": 5000,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period\",\n \"validPeriods\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"startDate\": {},\n \"endDate\": {}\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"2448e10f-8851-4f99-bbc3-4114045de8c0","savedPayload":{"position":{"x":12623.07739013146,"y":20140.853579740375},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"d7335089-1f50-4d48-bcbe-115136a88e6a"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"d1b73084-294b-46f5-a2c4-da08b994b770","savedPayload":{"position":{"x":12445.937511125754,"y":20624.171552356136},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"274082a4-1695-4e9b-a0ff-9464fa2d986f"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"156aa7e6-0514-465e-9734-3983a51ab69c","savedPayload":{"position":{"x":12001.356544917504,"y":20886.144876023685},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"52f26c43-552c-4557-af7a-878b951f5731"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"8067fbac-fbc3-4712-9c24-4b4b9a24d78d","savedPayload":{"position":{"x":11494.446615495835,"y":20791.22993779903},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"afb38dc6-0437-4215-8a7d-3091cd3c74fb"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"72529350-c20e-4f28-a308-2611df7a6468","savedPayload":{"position":{"x":11163.890315606232,"y":20397.835224171682},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"cb317eb0-047c-4076-bd46-7add2423aa87"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"1b491b01-465a-4f98-831d-a587fc428b58","savedPayload":{"position":{"x":11173.257415266777,"y":19887.28128076691},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"41498979-9228-4151-8b94-0d8acdf257e8"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"5711ecc2-5192-4d97-a13d-5269264ea825","savedPayload":{"position":{"x":11492.310076767595,"y":19486.776628052066},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"823a30de-093f-4c39-9181-5727c81bbad3"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"3be12bcb-4634-4933-9ae1-bad5089b8062","savedPayload":{"position":{"x":12000.8881535357,"y":19398.218662985157},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"486698b4-c159-4bb7-8d4a-7057aa94e903"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"43aa8bfe-8aed-4cbb-98d7-342d857fb3d9","savedPayload":{"position":{"x":12447.09200435376,"y":19656.566872282794},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Oficial History","id":"3ad0f044-95e9-4ae7-9169-9dacfc13c011"}}}],"id":"58e53ed7-a9ab-4327-a7b5-cc80d2a3e222","savedPayload":{"position":{"x":11869.94158089557,"y":20140.853579740375},"targetPosition":{"x":11771.487866093823,"y":19393.023370621944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"8788fac1-b7a9-403b-a7d6-367c71ac9919","savedPayload":{"position":{"x":11673.034151292077,"y":20898.69318844958},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2addf3d0-ce67-4700-a2bb-aa9998cd5e77"}}},{"type":"Status Dependency","name":"New Status Dependency","code":"{\"mainUtility\": \"Self Reference|Market Starting Point|Market Ending Point\"}","id":"7c757472-f226-4e5c-a8fc-e598947424a3","savedPayload":{"position":{"x":11504.997188003015,"y":20877.071619436992},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a1317697-3b4f-4b41-bbb6-0a43fd08fa28"}}},{"type":"Status Dependency","name":"Olivia","code":"{\n\"mainUtility\": \"Market Ending Point\"\n}","id":"f1fdebab-b7be-411a-ac75-0280185b09d3","savedPayload":{"position":{"x":11339.110396228529,"y":20834.253401953614},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Charly","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"1915e12c-8285-453f-874d-131b5617a999","savedPayload":{"position":{"x":11206.092270051773,"y":20726.380178809326},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Market","id":"5bc225fd-2469-426b-8690-9d1ddff24bcd","savedPayload":{"position":{"x":11083.94317659732,"y":20610.63795569024},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Market","id":"713606e5-61b8-4597-a878-6d16f4aa9c16","savedPayload":{"position":{"x":10993.182385996195,"y":20468.252934458364},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}},{"type":"Data Dependency","name":"Bollinger Channels Market","id":"23995773-d176-4440-bb23-f1fbbffbb61f","savedPayload":{"position":{"x":10938.030859944958,"y":20308.61328464564},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Market","id":"3c59a984-a0ac-4fa4-a70b-ba5b5e2e2133","savedPayload":{"position":{"x":10916.184652091197,"y":20140.853579740375},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}},{"type":"Data Dependency","name":"Candles Multi-Period-Market","id":"71c00672-f101-4b5b-b8db-b42b20b1fa92","savedPayload":{"position":{"x":10950.107198387177,"y":19975.850220279077},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Daily","id":"85a073ae-2e57-4e5f-881f-b4ebd47fb6df","savedPayload":{"position":{"x":10991.896199805611,"y":19812.83483039794},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Daily","id":"782c081a-df9b-4a3f-a74f-c104146d6f35","savedPayload":{"position":{"x":11081.456565433527,"y":19669.086197558885},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}},{"type":"Data Dependency","name":"Bollinger Channels Daily","id":"f04756ad-8cff-46d2-91e1-9fbdbfcdfdb7","savedPayload":{"position":{"x":11204.338364160209,"y":19553.12765224741},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Daily","id":"63d8b075-b89d-41da-8d1e-231c2288fd1c","savedPayload":{"position":{"x":11346.335692011915,"y":19462.457238817904},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}},{"type":"Data Dependency","name":"Candles Multi-Period-Daily","id":"e0b50719-a6c6-4d8a-bf0f-4120bb02cda0","savedPayload":{"position":{"x":11505.34516609678,"y":19406.160131687375},"targetPosition":{"x":11673.034151292077,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"0c08b52a-8f7a-40cb-b424-3471225a2e7b","savedPayload":{"position":{"x":11673.034151292077,"y":20140.853579740375},"targetPosition":{"x":11771.487866093823,"y":19393.023370621944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"2addf3d0-ce67-4700-a2bb-aa9998cd5e77","savedPayload":{"position":{"x":11482.836179649867,"y":20089.89018683681},"targetPosition":{"x":11771.487866093823,"y":19393.023370621944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"3245ffee-1ffd-405c-8c81-bd960be73d42","savedPayload":{"position":{"x":11312.309343419347,"y":19991.436472035064},"targetPosition":{"x":11771.487866093823,"y":19393.023370621944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"92813b2f-21f3-4891-ae0d-db922ec3cc18","savedPayload":{"position":{"x":11173.074764680705,"y":19852.20189329642},"targetPosition":{"x":11771.487866093823,"y":19393.023370621944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"6f95cc67-bad0-48dc-bb82-0075c43cb202","savedPayload":{"position":{"x":11771.487866093823,"y":19393.023370621944},"targetPosition":{"x":12060.13955253778,"y":18696.15655440708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},{"type":"Process Definition","name":"Context","code":"{\n\"codeName\": \"Context\"\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[],"id":"441aec7b-d710-4aa3-8c81-1acd8912b8fa","savedPayload":{"position":{"x":11331.5579230302,"y":19958.096954175533},"targetPosition":{"x":11526.780782276906,"y":19229.51532466795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[],"dataDependencies":[],"id":"d982ba6b-a59d-4934-abb2-912dc8e20660","savedPayload":{"position":{"x":11149.639179020125,"y":19882.74374315668},"targetPosition":{"x":11526.780782276906,"y":19229.51532466795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"a1317697-3b4f-4b41-bbb6-0a43fd08fa28","savedPayload":{"position":{"x":10993.422012016033,"y":19762.874094928822},"targetPosition":{"x":11526.780782276906,"y":19229.51532466795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"c3d58fd6-f0ce-41a4-b9cd-05b9f30ad640","savedPayload":{"position":{"x":10873.552363788178,"y":19606.65692792473},"targetPosition":{"x":11526.780782276906,"y":19229.51532466795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"c8086f00-19a8-4f0d-9a5d-44469da5caf2","savedPayload":{"position":{"x":10798.199152769326,"y":19424.73818391466},"targetPosition":{"x":11526.780782276906,"y":19229.51532466795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"24317ebe-1ed4-48bc-a7ae-518de665b43f","savedPayload":{"position":{"x":11526.780782276906,"y":19229.51532466795},"targetPosition":{"x":12060.13955253778,"y":18696.15655440708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Simulation","code":"{\n \"codeName\": \"Trading-Simulation\",\n \"singularVariableName\": \"tradingSimulation\",\n \"pluralVariableName\": \"tradingSimulations\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Trading-Simulation/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"d7335089-1f50-4d48-bcbe-115136a88e6a","savedPayload":{"position":{"x":11049.69095367984,"y":19194.33688925379},"targetPosition":{"x":11363.272736322915,"y":18984.808240851034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Trading-Simulation/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Trading-Simulation/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"274082a4-1695-4e9b-a0ff-9464fa2d986f","savedPayload":{"position":{"x":11014.839328215483,"y":19129.13408407301},"targetPosition":{"x":11363.272736322915,"y":18984.808240851034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"5332a4a9-98de-4406-ad5e-d9a6a1ff5cee","savedPayload":{"position":{"x":11377.065566704507,"y":19099.46120934351},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"70392162-bb77-48e0-9bba-22e8ed84f055","savedPayload":{"position":{"x":11373.19505738521,"y":19214.87595931803},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Type","code":"{\n \"codeName\": \"type\",\n \"isString\": true\n}","id":"6a4b1d81-2b7d-4a02-9d13-d3cb2442710f","savedPayload":{"position":{"x":11351.75192982298,"y":19328.3472668562},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Market Rate","code":"{\n \"codeName\": \"marketRate\",\n \"isString\": false\n}","id":"6a4b5c8e-8294-438c-a2da-ad812e59a131","savedPayload":{"position":{"x":11313.238792753522,"y":19437.215460683143},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Amount","code":"{\n \"codeName\": \"amount\",\n \"isString\": false\n}","id":"c7186621-e504-4cf5-9f74-0ff177d7aa24","savedPayload":{"position":{"x":11258.558361467522,"y":19538.928762607957},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Balance A","code":"{\n \"codeName\": \"balanceA\",\n \"isString\": false\n}","id":"64bddfff-11f9-4052-98c0-ab7b42a7615f","savedPayload":{"position":{"x":11188.99229892934,"y":19631.103099041728},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Balance B","code":"{\n \"codeName\": \"balanceB\",\n \"isString\": false\n}","id":"69dff994-7889-4c0c-9847-dd3949ff6a6f","savedPayload":{"position":{"x":11106.171174683412,"y":19711.577981661783},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Profit","code":"{\n \"codeName\": \"profit\",\n \"isString\": false\n}","id":"1fa2f30d-669a-45bd-9d11-9a62b82640ec","savedPayload":{"position":{"x":11012.036245686131,"y":19778.467147426865},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Last Trade Profit Loss","code":"{\n \"codeName\": \"lastTradeProfitLoss\",\n \"isString\": false\n}","id":"0805787c-8b11-4cda-8166-ab8d9cad0a7b","savedPayload":{"position":{"x":10908.793954888128,"y":19830.202770984066},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Stop Loss","code":"{\n \"codeName\": \"stopLoss\",\n \"isString\": false\n}","id":"92c16033-3882-4c75-bfe7-3b1b793e59ab","savedPayload":{"position":{"x":10798.8642140816,"y":19865.572213166284},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Roundtrips","code":"{\n \"codeName\": \"roundtrips\",\n \"isString\": false\n}","id":"6381add6-79c2-44e6-b590-c1dcfb99e2a1","savedPayload":{"position":{"x":10684.823683218923,"y":19883.746444226515},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Hits","code":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","id":"b4290398-e1e5-44b5-b61a-d267ad9b8316","savedPayload":{"position":{"x":10569.34537568725,"y":19884.299475592477},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Fails","code":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","id":"56099414-6c12-4e67-8f88-5182242967c4","savedPayload":{"position":{"x":10455.136005140244,"y":19867.218344677676},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Hit Ratio","code":"{\n \"codeName\": \"hitRatio\",\n \"isString\": false\n}","id":"2213cf96-502e-4aa4-938a-96acb0f92557","savedPayload":{"position":{"x":10344.872542424157,"y":19832.90341871346},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"ROI","code":"{\n \"codeName\": \"ROI\",\n \"isString\": false\n}","id":"b41213a7-07ad-426d-8bd3-fd4925594f11","savedPayload":{"position":{"x":10241.139469650074,"y":19782.15901048045},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Periods","code":"{\n \"codeName\": \"periods\",\n \"isString\": false\n}","id":"f41a7319-6b9a-46b3-ba04-8a58bc91e397","savedPayload":{"position":{"x":10146.368202123746,"y":19716.174525898656},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Days","code":"{\n \"codeName\": \"days\",\n \"isString\": false\n}","id":"67d293ba-6aea-40cc-bbb8-99f8f0cd5876","savedPayload":{"position":{"x":10062.780098031586,"y":19636.496585360826},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Anualized Rate Of Return","code":"{\n \"codeName\": \"anualizedRateOfReturn\",\n \"isString\": false\n}","id":"d78c501d-91c3-415a-850c-9115e0552230","savedPayload":{"position":{"x":9992.334391687526,"y":19544.992772261274},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Trade Position Rate","code":"{\n \"codeName\": \"tradePositionRate\",\n \"isString\": false\n}","id":"7912c4d4-d85d-48c3-9953-f0c194fbe4ac","savedPayload":{"position":{"x":9936.682270741256,"y":19443.807858424014},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Last Trade ROI","code":"{\n \"codeName\": \"lastTradeROI\",\n \"isString\": false\n}","id":"9996b0ef-da23-4c37-bbc5-b3d78baa8b4c","savedPayload":{"position":{"x":9897.128173739207,"y":19335.31353246904},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Current Strategy Index","code":"{\n \"codeName\": \"currentStrategyIndex\",\n \"isString\": false\n}","id":"6ff9ddc3-5989-425b-b406-6649c152ab24","savedPayload":{"position":{"x":9874.599215190608,"y":19222.052809441208},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Strategy Stage Number","code":"{\n \"codeName\": \"strategyStageNumber\",\n \"isString\": false\n}","id":"288a10b5-4c77-43aa-a548-c24629b3f7ee","savedPayload":{"position":{"x":9869.623454789182,"y":19106.680424692953},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Take Profit","code":"{\n \"codeName\": \"takeProfit\",\n \"isString\": false\n}","id":"66f26d4d-28d0-4896-88b0-890fc9a25ea9","savedPayload":{"position":{"x":9882.317520141476,"y":18991.900609137676},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Stop Loss Phase","code":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false\n}","id":"71f92e69-779c-4643-9f7a-2a82f960f4e5","savedPayload":{"position":{"x":9912.383873114622,"y":18880.40370436913},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Take Profit Phase","code":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false\n}","id":"7d9ebb36-97b5-4bdf-95c9-40c52cb85f0e","savedPayload":{"position":{"x":9959.117783877993,"y":18774.803103334703},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Execution Record","code":"{\n \"codeName\": \"executionRecord\",\n \"isString\": true\n}","id":"a138bd75-7a4c-4dda-8977-5ac63f432b1f","savedPayload":{"position":{"x":10021.423849173118,"y":18677.573994619714},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Trade Position Size","code":"{\n \"codeName\": \"tradePositionSize\",\n \"isString\": false\n}","id":"d8c2810d-7c00-4383-b033-881a2c85fff2","savedPayload":{"position":{"x":10097.841667637653,"y":18590.995346124873},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Initial Balance A","code":"{\n \"codeName\": \"initialBalanceA\",\n \"isString\": false\n}","id":"9539791d-7864-48e4-801e-a798dbbdc4bb","savedPayload":{"position":{"x":10186.580070375529,"y":18517.096487990242},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Minimum Balance A","code":"{\n \"codeName\": \"minimumBalanceA\",\n \"isString\": false\n}","id":"e523f9bf-5f97-4089-b693-f861949641f8","savedPayload":{"position":{"x":10285.559104437749,"y":18457.609546816726},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Maximum Balance A","code":"{\n \"codeName\": \"maximumBalanceA\",\n \"isString\": false\n}","id":"0ff4c6e9-93c6-4da2-b5ed-86e225524f66","savedPayload":{"position":{"x":10392.45878515664,"y":18413.92884608664},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Initial Balance B","code":"{\n \"codeName\": \"initialBalanceB\",\n \"isString\": false\n}","id":"7c3b05c2-530e-453b-b776-7d55514456ef","savedPayload":{"position":{"x":10504.773474620113,"y":18387.078224403056},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Minimum Balance B","code":"{\n \"codeName\": \"minimumBalanceB\",\n \"isString\": false\n}","id":"f56fac84-b690-4aa2-a305-a430dde115c6","savedPayload":{"position":{"x":10619.870611700666,"y":18377.6870375807},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Maximum Balance B","code":"{\n \"codeName\": \"maximumBalanceB\",\n \"isString\": false\n}","id":"42605779-f1a6-48b7-992d-05124c2f5c99","savedPayload":{"position":{"x":10735.052417056935,"y":18385.97540707909},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Base Asset","code":"{\n \"codeName\": \"baseAsset\",\n \"isString\": true\n}","id":"3a26c1da-2c55-421a-a311-ba66a095cf70","savedPayload":{"position":{"x":10847.619126794945,"y":18411.749060542083},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Position Periods","code":"{\n \"codeName\": \"positionPeriods\",\n \"isString\": false\n}","id":"ad4cc73a-3cfe-48f3-9f77-8eea811acb0f","savedPayload":{"position":{"x":10954.932272645556,"y":18454.403885377236},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Position Days","code":"{\n \"codeName\": \"positionDays\",\n \"isString\": false\n}","id":"29a59888-daca-4440-aca1-7942f27426ad","savedPayload":{"position":{"x":11054.47652542443,"y":18512.94008864297},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Distance To Last Trigger On","code":"{\n \"codeName\": \"distanceToLastTriggerOn\",\n \"isString\": false\n}","id":"b3c41567-e36b-46ff-824d-aca57b0c6f57","savedPayload":{"position":{"x":11143.918652216229,"y":18585.985631347718},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Distance ToLast Trigger Off","code":"{\n \"codeName\": \"distanceToLastTriggerOff\",\n \"isString\": false\n}","id":"30280e51-780a-4593-b392-181ec71e6c95","savedPayload":{"position":{"x":11221.162205376588,"y":18671.828387881014},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Distance To Last Take Position","code":"{\n \"codeName\": \"distanceToLastTakePosition\",\n \"isString\": false\n}","id":"28dd29f5-c161-4132-be23-59f08a2ca8cc","savedPayload":{"position":{"x":11284.396661488021,"y":18768.456276786663},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Distance To Last Close Position","code":"{\n \"codeName\": \"distanceToLastClosePosition\",\n \"isString\": false\n}","id":"da0f85d8-ae29-4a25-b88e-f65fbc7b643c","savedPayload":{"position":{"x":11332.13985849432,"y":18873.60442224672},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"9886dcec-c49a-4b0e-af1d-8996a68fc2e1","savedPayload":{"position":{"x":10623.482870119064,"y":19131.961594501125},"targetPosition":{"x":11363.272736322915,"y":18984.808240851034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"q"}}},"id":"a3201051-46ba-4a92-aef3-a6c787b771fd","savedPayload":{"position":{"x":11363.272736322915,"y":18984.808240851034},"targetPosition":{"x":12060.13955253778,"y":18696.15655440708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Trading Simulation","id":"7864b9e4-3150-4d1d-abd9-0a43a9fe4c4f"}}},{"type":"Product Definition","name":"Conditions","code":"{\n \"codeName\": \"Simulation-Conditions\",\n \"singularVariableName\": \"simulationCondition\",\n \"pluralVariableName\": \"simulationConditions\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Simulation-Conditions/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"52f26c43-552c-4557-af7a-878b951f5731","savedPayload":{"position":{"x":10935.96141292229,"y":18769.733231232123},"targetPosition":{"x":11305.856346024217,"y":18696.15655440708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Simulation-Conditions/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Simulation-Conditions/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"afb38dc6-0437-4215-8a7d-3091cd3c74fb","savedPayload":{"position":{"x":10928.714742767435,"y":18696.15655440708},"targetPosition":{"x":11305.856346024217,"y":18696.15655440708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Current Strategy Index","code":"{\n \"codeName\": \"currentStrategyIndex\",\n \"isString\": false\n}","id":"bbfaa8e4-eac8-4f0d-a8b1-85844f96c564","savedPayload":{"position":{"x":10670.830804021743,"y":18705.79409207853},"targetPosition":{"x":10566.066479820365,"y":18549.00320075699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Strategy Stage Number","code":"{\n \"codeName\": \"strategyStageNumber\",\n \"isString\": false\n}","id":"b9b14fcf-e09b-4036-85d9-8f40304a7d13","savedPayload":{"position":{"x":10529.278141407844,"y":18733.950667307952},"targetPosition":{"x":10566.066479820365,"y":18549.00320075699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Stop Loss Phase","code":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false\n}","id":"115e6942-c0f3-45e7-a2ba-8b661a95af3e","savedPayload":{"position":{"x":10409.275588498827,"y":18653.767524958366},"targetPosition":{"x":10566.066479820365,"y":18549.00320075699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Take Profit Phase","code":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false\n}","id":"599f27b7-7cd8-483b-81c9-bd131e9ab964","savedPayload":{"position":{"x":10381.119013269403,"y":18512.214862344466},"targetPosition":{"x":10566.066479820365,"y":18549.00320075699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Conditions Array Values","code":"{\n \"codeName\": \"conditionsArrayValues\",\n \"isString\": false\n}","id":"1359d846-f978-4a6a-9e94-4f23fcdde80b","savedPayload":{"position":{"x":10461.302155618987,"y":18392.21230943545},"targetPosition":{"x":10566.066479820365,"y":18549.00320075699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Formulas Errors","code":"{\n \"codeName\": \"formulasErrors\",\n \"isString\": false\n}","id":"1d4b7300-013b-4874-ba78-c77bb9aac9be","savedPayload":{"position":{"x":10602.854818232887,"y":18364.055734206027},"targetPosition":{"x":10566.066479820365,"y":18549.00320075699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Formulas Values","code":"{\n \"codeName\": \"formulasValues\",\n \"isString\": false\n}","id":"5306f8cc-6c59-477a-ac58-303eea4142cf","savedPayload":{"position":{"x":10722.857371141903,"y":18444.238876555613},"targetPosition":{"x":10566.066479820365,"y":18549.00320075699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"2f2a6b6d-6c24-4b04-936b-3fdb66afc498","savedPayload":{"position":{"x":10566.066479820365,"y":18549.00320075699},"targetPosition":{"x":11305.856346024217,"y":18696.15655440708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0","savedPayload":{"position":{"x":11305.856346024217,"y":18696.15655440708},"targetPosition":{"x":12060.13955253778,"y":18696.15655440708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Conditions","id":"546d0a94-e878-41c1-a6e6-7dd28832f79b"}}},{"type":"Product Definition","name":"Strategies","code":"{\n \"codeName\": \"Simulation-Strategies\",\n \"singularVariableName\": \"simulationStrategy\",\n \"pluralVariableName\": \"simulationStrategies\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Simulation-Strategies/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"cb317eb0-047c-4076-bd46-7add2423aa87","savedPayload":{"position":{"x":10993.377803220988,"y":18333.928191138082},"targetPosition":{"x":11363.272736322915,"y":18407.504867963125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Simulation-Strategies/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Simulation-Strategies/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"41498979-9228-4151-8b94-0d8acdf257e8","savedPayload":{"position":{"x":11014.839328215483,"y":18263.179024741148},"targetPosition":{"x":11363.272736322915,"y":18407.504867963125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"77ad2d38-fbe8-480b-a8a0-0757a09f09d4","savedPayload":{"position":{"x":10751.958645899958,"y":18176.351113895194},"targetPosition":{"x":10736.109171036764,"y":17988.447571157612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"23b7aa0b-5be6-4e07-a858-d89b588eec97","savedPayload":{"position":{"x":10599.082251599262,"y":18117.995132216252},"targetPosition":{"x":10736.109171036764,"y":17988.447571157612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Status","code":"{\n \"codeName\": \"status\",\n \"isString\": false\n}","id":"fae7e152-d3b6-4508-a4de-a0db478ca92d","savedPayload":{"position":{"x":10549.389922474767,"y":17962.0871947715},"targetPosition":{"x":10736.109171036764,"y":17988.447571157612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Number","code":"{\n \"codeName\": \"number\",\n \"isString\": false\n}","id":"6c18d6ae-089b-483f-979f-e434991bcae0","savedPayload":{"position":{"x":10640.300995896005,"y":17826.02915839917},"targetPosition":{"x":10736.109171036764,"y":17988.447571157612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin Rate","code":"{\n \"codeName\": \"beginRate\",\n \"isString\": false\n}","id":"2d17ff8b-946c-45bd-b665-426e7ed5ec64","savedPayload":{"position":{"x":10803.357579328842,"y":17812.275499565785},"targetPosition":{"x":10736.109171036764,"y":17988.447571157612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End Rate","code":"{\n \"codeName\": \"endRate\",\n \"isString\": false\n}","id":"60112244-d5d6-41df-8e89-685366751ecd","savedPayload":{"position":{"x":10915.774739700208,"y":17931.183003896393},"targetPosition":{"x":10736.109171036764,"y":17988.447571157612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"8d502c73-b428-4428-93cc-6336d63dd21d","savedPayload":{"position":{"x":10736.109171036764,"y":17988.447571157612},"targetPosition":{"x":11363.272736322915,"y":18407.504867963125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"36051f0f-5161-48a6-9d13-eb1766b5566b","savedPayload":{"position":{"x":11363.272736322915,"y":18407.504867963125},"targetPosition":{"x":12060.13955253778,"y":18696.15655440708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Strategies","id":"9b0c4f4b-d67c-48ae-97f1-bd614e85ced8"}}},{"type":"Product Definition","name":"Trades","code":"{\n \"codeName\": \"Simulation-Trades\",\n \"singularVariableName\": \"simulationTrade\",\n \"pluralVariableName\": \"simulationTrades\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Simulation-Trades/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"823a30de-093f-4c39-9181-5727c81bbad3","savedPayload":{"position":{"x":11213.19899963383,"y":17953.269135743452},"targetPosition":{"x":11526.780782276906,"y":18162.79778414621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Simulation-Trades/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"AAMasters/AAJason/@Exchange/Output/@Session/Simulation-Trades/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"486698b4-c159-4bb7-8d4a-7057aa94e903","savedPayload":{"position":{"x":11260.10139714647,"y":17896.118399015773},"targetPosition":{"x":11526.780782276906,"y":18162.79778414621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"1481ecbc-72f4-4ae6-a80e-63e57be003c8","savedPayload":{"position":{"x":11070.935147058872,"y":17720.58168541102},"targetPosition":{"x":11107.723485471393,"y":17535.634218860057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"cdc28bbd-202e-4363-bf88-dc6a981b54b5","savedPayload":{"position":{"x":10950.932594149856,"y":17640.398543061434},"targetPosition":{"x":11107.723485471393,"y":17535.634218860057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Status","code":"{\n \"codeName\": \"status\",\n \"isString\": false\n}","id":"6b5b99b5-421a-42b2-a621-8b778742783d","savedPayload":{"position":{"x":10922.776018920431,"y":17498.845880447534},"targetPosition":{"x":11107.723485471393,"y":17535.634218860057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Trade ROI","code":"{\n \"codeName\": \"lastTradeROI\",\n \"isString\": false\n}","id":"4219b9f2-492d-4eab-9472-1f8195eb216a","savedPayload":{"position":{"x":11002.959161270015,"y":17378.843327538518},"targetPosition":{"x":11107.723485471393,"y":17535.634218860057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Exit Type","code":"{\n \"codeName\": \"exitType\",\n \"isString\": false\n}","id":"c5612569-dc10-4153-aff5-dccfadbf2d16","savedPayload":{"position":{"x":11144.511823883915,"y":17350.686752309095},"targetPosition":{"x":11107.723485471393,"y":17535.634218860057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin Rate","code":"{\n \"codeName\": \"beginRate\",\n \"isString\": false\n}","id":"fafe1ef3-e00e-482b-8bfb-c61171478260","savedPayload":{"position":{"x":11264.514376792931,"y":17430.86989465868},"targetPosition":{"x":11107.723485471393,"y":17535.634218860057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End Rate","code":"{\n \"codeName\": \"endRate\",\n \"isString\": false\n}","id":"24385194-d717-4c93-a938-4ba3f6be3c67","savedPayload":{"position":{"x":11292.670952022356,"y":17572.42255727258},"targetPosition":{"x":11107.723485471393,"y":17535.634218860057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"7201c4b3-e6c0-49eb-8f8d-bb24c51f3786","savedPayload":{"position":{"x":11107.723485471393,"y":17535.634218860057},"targetPosition":{"x":11526.780782276906,"y":18162.79778414621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"a26dc922-ca08-43ef-983e-029b76f39163","savedPayload":{"position":{"x":11526.780782276906,"y":18162.79778414621},"targetPosition":{"x":12060.13955253778,"y":18696.15655440708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Trades","id":"382004c6-e318-4d9d-9791-505f329f1e54"}}},{"type":"Product Definition","name":"Execution","code":"{\n \"codeName\": \"Live-Trading-History\",\n \"singularVariableName\": \"liveTradingHistory\",\n \"pluralVariableName\": \"liveTradingHistory\"\n}","datasets":[{"type":"Dataset Definition","name":"Oficial History","code":"{\n \"codeName\": \"Oficial History\",\n \"type\": \"File Sequence\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\",\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@DataMine/@Bot/Poloniex/Output/@Session/Trading-Process\",\n \"fileName\": \"Execution.History.Live.@Sequence.json\"\n}","id":"3ad0f044-95e9-4ae7-9169-9dacfc13c011","savedPayload":{"position":{"x":11582.917064465431,"y":17672.67552894785},"targetPosition":{"x":11771.487866093823,"y":17999.289738192216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[],"id":"848b3eb1-afc1-406a-ab21-15ecbc893766","savedPayload":{"position":{"x":11576.265006847116,"y":17270.708108684634},"targetPosition":{"x":11771.487866093823,"y":17999.289738192216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"05ce9ca7-8b5b-4974-a45e-ca319fc85330","savedPayload":{"position":{"x":11771.487866093823,"y":17999.289738192216},"targetPosition":{"x":12060.13955253778,"y":18696.15655440708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Simulation Execution","id":"96dede74-e7bc-4c50-a9ba-2bec8a5f4884"}}}],"id":"b4f01468-c3e6-405e-8152-e460f597f98a","savedPayload":{"position":{"x":12060.13955253778,"y":18696.15655440708},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"j"}}}],"plotters":[{"type":"Plotter","name":"Plotters-Candles-Volumes","code":"{\n\"codeName\": \"PlottersCandlesVolumes\"\n}","modules":[{"type":"Plotter Module","name":"Candles","code":"{\n\"codeName\": \"Candles\",\n\"isLegacy\": true,\n\"icon\": \"candles\"\n}","panels":[{"type":"Plotter Panel","name":"New Plotter Panel","code":"{ \n\"codeName\": \"CandlePanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd","savedPayload":{"position":{"x":11422.333955206532,"y":18323.14921874969},"targetPosition":{"x":11795.325742789815,"y":18323.14921874969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3","savedPayload":{"position":{"x":11795.325742789815,"y":18323.14921874969},"targetPosition":{"x":12168.317530373099,"y":18323.14921874969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Plotter Module","name":"Volumes","code":"{\n\"codeName\": \"Volumes\",\n\"isLegacy\": true,\n\"icon\": \"volume\"\n}","panels":[{"type":"Plotter Panel","name":"New Plotter Panel","code":"{ \n\"codeName\": \"VolumePanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"42dbd098-4550-44a0-987f-54a28dd5f40b","savedPayload":{"position":{"x":11795.325742789815,"y":17677.108491849503},"targetPosition":{"x":11981.821636581457,"y":18000.128855299597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1","savedPayload":{"position":{"x":11981.821636581457,"y":18000.128855299597},"targetPosition":{"x":12168.317530373099,"y":18323.14921874969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"e4347543-21b5-4274-b690-e6b3b5899862","savedPayload":{"position":{"x":12168.317530373099,"y":18323.14921874969},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},{"type":"Plotter","name":"Plotters-Stairs-Patterns","code":"{\n\"codeName\": \"PlottersStairsPatterns\"\n}","modules":[{"type":"Plotter Module","name":"Candles Patterns","code":"{\n\"codeName\": \"CandleStairs\",\n\"isLegacy\": true,\n\"icon\": \"trend\"\n}","panels":[],"id":"a41043f2-f2a5-4c8f-b372-d8eda1ca58df","savedPayload":{"position":{"x":12071.336364713046,"y":17807.19750302056},"targetPosition":{"x":12416.200606275283,"y":18006.304965720396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Plotter Module","name":"Volume Patterns","code":"{\n\"codeName\": \"VolumeStairs\",\n\"isLegacy\": true,\n\"icon\": \"trend\"\n}","panels":[],"id":"cfd94d21-cb45-446b-9764-cc67cca712b2","savedPayload":{"position":{"x":12416.200606275283,"y":17608.090040320727},"targetPosition":{"x":12416.200606275283,"y":18006.304965720396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"b3b5fed4-ddff-406a-83b9-b33968b820a8","savedPayload":{"position":{"x":12416.200606275283,"y":18006.304965720396},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"Plotters-Bollinger-Bands","code":"{\n\"codeName\" : \"PlottersBollingerBands\"\n}","modules":[{"type":"Plotter Module","name":"Percentage B","code":"{\n\t\"codeName\": \"Percentage Bandwidth\",\n \"icon\": \"histogram\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"Begin Previous Value","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","id":"ad85e84e-166f-41c7-bc08-b6a50ca4524d","savedPayload":{"position":{"x":11798.664733306687,"y":16329.73639419282},"targetPosition":{"x":11719.751700635175,"y":16624.243841502244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"534c2cd4-d020-43cf-9284-433a57fdcfce","savedPayload":{"position":{"x":11719.751700635175,"y":16624.243841502244},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End Value","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","id":"1e029480-c6d7-4455-9ae9-5677b99752de","savedPayload":{"position":{"x":12024.593894014306,"y":16444.853051356265},"targetPosition":{"x":11832.716280988985,"y":16681.802170083967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5b05abcc-76cf-4f9d-82e5-671ab7471678","savedPayload":{"position":{"x":11832.716280988985,"y":16681.802170083967},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Begin Previous MA","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.movingAverage","id":"7bafa19b-086c-41cf-b2e4-a41485841f4c","savedPayload":{"position":{"x":12184.168289830985,"y":16641.911019006082},"targetPosition":{"x":11912.503478897324,"y":16780.331153908875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0993c95f-2054-48d8-9977-2d4eb24dabf7","savedPayload":{"position":{"x":11912.503478897324,"y":16780.331153908875},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End MA","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.movingAverage","id":"412d8820-facc-4065-a235-d35d86c3b569","savedPayload":{"position":{"x":12249.796058032149,"y":16886.837184320182},"targetPosition":{"x":11945.317362997906,"y":16902.794236565926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"35bdf97d-abf8-4f1e-922c-d853e6980b0c","savedPayload":{"position":{"x":11945.317362997906,"y":16902.794236565926},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Being Previous Bandwidth","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.bandwidth * 250","id":"cbd72abc-e6c4-44d6-bd58-1bab7c0b2960","savedPayload":{"position":{"x":12210.12956128626,"y":17137.281588231395},"targetPosition":{"x":11925.484114624962,"y":17028.016438521532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"943da81e-c0ca-4213-ba8a-5dbafd3ead18","savedPayload":{"position":{"x":11925.484114624962,"y":17028.016438521532},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End Bandwidth","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bandwidth * 250","id":"6ac14886-32ee-490f-a600-4f704458f24e","savedPayload":{"position":{"x":12072.027497239491,"y":17349.940118087492},"targetPosition":{"x":11856.433082601578,"y":17134.34570344958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cdf38478-d5d4-410e-98fd-14b7b74bfd8b","savedPayload":{"position":{"x":11856.433082601578,"y":17134.34570344958},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Begin 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","id":"54cece5b-472f-4c86-b6b6-83342e2890f7","savedPayload":{"position":{"x":11859.368967383394,"y":17488.042182134268},"targetPosition":{"x":11750.10381767353,"y":17203.39673547297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8e21c88b-bfb7-41dd-9cbe-678d5dc4fc54","savedPayload":{"position":{"x":11750.10381767353,"y":17203.39673547297},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","id":"1572cfc8-0318-43b5-8405-a04cc00cbd16","savedPayload":{"position":{"x":11608.924563472177,"y":17527.708678880153},"targetPosition":{"x":11624.88161571792,"y":17223.22998384591},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"75670aaa-849d-4156-af74-61a25ce49713","savedPayload":{"position":{"x":11624.88161571792,"y":17223.22998384591},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Begin 30","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","id":"6039db7e-9c71-4906-b999-3d7848989c5a","savedPayload":{"position":{"x":11363.99839815808,"y":17462.08091067899},"targetPosition":{"x":11502.418533060873,"y":17190.41609974533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd","savedPayload":{"position":{"x":11502.418533060873,"y":17190.41609974533},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End 30","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","id":"89393793-42d5-4dea-bca5-aee8f3349659","savedPayload":{"position":{"x":11166.94043050826,"y":17302.50651486231},"targetPosition":{"x":11403.889549235962,"y":17110.62890183699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5","savedPayload":{"position":{"x":11403.889549235962,"y":17110.62890183699},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Begin 70","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","id":"c616cf49-abaf-490e-a3b7-f978442c8b4a","savedPayload":{"position":{"x":11051.823773344815,"y":17076.577354154695},"targetPosition":{"x":11346.33122065424,"y":16997.664321483182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"827e424f-3036-4645-9246-94b4bb0ebaea","savedPayload":{"position":{"x":11346.33122065424,"y":16997.664321483182},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End 70","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","id":"d3003e73-9318-4282-a293-d61c0d98bd4b","savedPayload":{"position":{"x":11038.553142493296,"y":16823.358632944473},"targetPosition":{"x":11339.69590522848,"y":16871.05496087807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"84bdd434-48af-4f4a-8f14-62df15022d05","savedPayload":{"position":{"x":11339.69590522848,"y":16871.05496087807},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Begin 100","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","id":"8d13712b-3f9e-424e-b85c-e6794ce39ca9","savedPayload":{"position":{"x":11129.423150587827,"y":16586.63416854877},"targetPosition":{"x":11385.130909275746,"y":16752.69272868022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ec589261-f564-4ad0-b866-8c63b8a15150","savedPayload":{"position":{"x":11385.130909275746,"y":16752.69272868022},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End 100","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","id":"8c06033c-c2b7-42a7-b509-e45a1b7edf42","savedPayload":{"position":{"x":11308.721547700763,"y":16407.335771435835},"targetPosition":{"x":11474.780107832214,"y":16663.043530123752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8949ce4a-bdad-47c2-a85f-0728ed7f9746","savedPayload":{"position":{"x":11474.780107832214,"y":16663.043530123752},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"9388e24f-4147-4878-8754-b6f6b8807813","savedPayload":{"position":{"x":11640.838667963664,"y":16918.75128881167},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"Area From 0 to 30","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"05578d4b-01e3-42fc-a4dd-b473414f467d","savedPayload":{"position":{"x":12015.983267262163,"y":16556.216469783474},"targetPosition":{"x":11711.504572227921,"y":16572.173522029218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"14810299-01f6-443c-8bbf-de8450c9efd6","savedPayload":{"position":{"x":11711.504572227921,"y":16572.173522029218},"targetPosition":{"x":11407.025877193679,"y":16588.13057427496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"d8eda99d-df16-4e21-b621-6f547914c461","savedPayload":{"position":{"x":11501.659952572274,"y":16879.384310123463},"targetPosition":{"x":11407.025877193679,"y":16588.13057427496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"8e21c88b-bfb7-41dd-9cbe-678d5dc4fc54"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"3a844186-fa2d-45e3-9453-d11750bafb51","savedPayload":{"position":{"x":11160.39038906725,"y":16767.321745314173},"targetPosition":{"x":11407.025877193679,"y":16588.13057427496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"75670aaa-849d-4156-af74-61a25ce49713"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"95d52cc3-0a06-4181-bcd7-1e65b41194d8","savedPayload":{"position":{"x":11161.51079469252,"y":16409.753425571125},"targetPosition":{"x":11407.025877193679,"y":16588.13057427496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a65fe0bd-5517-45b2-ac29-16bd198653a5","savedPayload":{"position":{"x":11501.389064509836,"y":16297.710546156639},"targetPosition":{"x":11407.025877193679,"y":16588.13057427496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}}],"id":"d76f185f-5219-4f0b-adb3-9a339b0468c6","savedPayload":{"position":{"x":11407.025877193679,"y":16588.13057427496},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Polygon","name":"Area From 30 to 70","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"2bdd38d2-0e04-4760-a8e7-af12d8a3baa7","savedPayload":{"position":{"x":11785.196718538647,"y":16787.00301850699},"targetPosition":{"x":11529.488959850729,"y":16620.944458375543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"de6f5e6b-a281-4d29-af86-72f7a545257d","savedPayload":{"position":{"x":11529.488959850729,"y":16620.944458375543},"targetPosition":{"x":11273.78120116281,"y":16454.885898244094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e9bfd52e-bc47-469f-8187-4e79d79ba866","savedPayload":{"position":{"x":11367.150636662353,"y":16742.247472756382},"targetPosition":{"x":11273.78120116281,"y":16454.885898244094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"f562f71b-2e79-4fa0-a9d5-e1d5c4ba12b4","savedPayload":{"position":{"x":11025.588084081412,"y":16635.208752961946},"targetPosition":{"x":11273.78120116281,"y":16454.885898244094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"3c79161c-e899-4147-bd75-21805b23f76f","savedPayload":{"position":{"x":11025.946626144962,"y":16274.823539583493},"targetPosition":{"x":11273.78120116281,"y":16454.885898244094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"4cd041c2-e445-46eb-99bf-c3ceee94f101","savedPayload":{"position":{"x":11368.230251727324,"y":16164.201610219856},"targetPosition":{"x":11273.78120116281,"y":16454.885898244094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}}],"id":"1a7969dd-af18-4e44-b4c9-96dd2be57f7c","savedPayload":{"position":{"x":11273.78120116281,"y":16454.885898244094},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Polygon","name":"Area From 70 to 100","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"b34d9e0e-ed4a-4b99-8e29-b7ed66a3658e","savedPayload":{"position":{"x":11462.833548781016,"y":16838.060328730302},"targetPosition":{"x":11353.568399071151,"y":16553.414882069002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c35b477-500f-4c85-867f-630e2105278f","savedPayload":{"position":{"x":11353.568399071151,"y":16553.414882069002},"targetPosition":{"x":11244.303249361286,"y":16268.769435407705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"1777fb76-c1e2-415d-a517-2e365401490c","savedPayload":{"position":{"x":11339.043341576393,"y":16560.349457528606},"targetPosition":{"x":11244.303249361286,"y":16268.769435407705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"4652d8cf-d922-44a3-b8cf-c6d329883ca0","savedPayload":{"position":{"x":10999.304496302737,"y":16446.771448813026},"targetPosition":{"x":11244.303249361286,"y":16268.769435407705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"ef3e750e-8380-40a2-830b-3f364960e44e","savedPayload":{"position":{"x":10996.554060330434,"y":16088.769113297953},"targetPosition":{"x":11244.303249361286,"y":16268.769435407705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"8949ce4a-bdad-47c2-a85f-0728ed7f9746"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"c8905f10-3c25-4fec-978a-ef356c0ad395","savedPayload":{"position":{"x":11339.196506073104,"y":15976.7180214368},"targetPosition":{"x":11244.303249361286,"y":16268.769435407705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"ec589261-f564-4ad0-b866-8c63b8a15150"}}}],"id":"cb1bcd11-0fb0-4377-bff2-dee4630e0f3f","savedPayload":{"position":{"x":11244.303249361286,"y":16268.769435407705},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"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.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"3f69a3f7-af79-47a2-9e0b-17524fc986d8","savedPayload":{"position":{"x":10898.66276818273,"y":16532.060177979212},"targetPosition":{"x":11114.257182820644,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"30e98617-1cfd-4fa7-814c-a5898caac0da","savedPayload":{"position":{"x":11114.257182820644,"y":16316.4657633413},"targetPosition":{"x":11329.851597458557,"y":16100.871348703387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2f5d4ab1-0d70-4baa-988a-2b7077e7b1e6","savedPayload":{"position":{"x":11177.507135756872,"y":16364.739696622437},"targetPosition":{"x":11329.851597458557,"y":16100.871348703387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b23626ca-e521-4fad-9a8b-8c9f30711de7","savedPayload":{"position":{"x":11177.62118852089,"y":15837.20054596636},"targetPosition":{"x":11329.851597458557,"y":16100.871348703387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}}],"id":"857043cc-f467-44d2-89eb-2e73f35f638d","savedPayload":{"position":{"x":11329.851597458557,"y":16100.871348703387},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"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.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"9e67e8dc-0a07-4d57-be52-6023ff9087da","savedPayload":{"position":{"x":10895.464158692504,"y":16110.715656473312},"targetPosition":{"x":11196.606921427689,"y":16063.019328539714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"767e0eba-ad98-49a9-a08d-58b5ebfaf655","savedPayload":{"position":{"x":11196.606921427689,"y":16063.019328539714},"targetPosition":{"x":11497.749684162873,"y":16015.323000606117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"9bed0cf3-56c3-4508-88c8-5dede6e574df","savedPayload":{"position":{"x":11347.165732741281,"y":16276.142055272796},"targetPosition":{"x":11497.749684162873,"y":16015.323000606117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"1ce29315-82a5-4b62-8e85-be087a037d73","savedPayload":{"position":{"x":11344.979388799968,"y":15750.717087150262},"targetPosition":{"x":11497.749684162873,"y":16015.323000606117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}}],"id":"984a1917-1d81-4142-a50f-269a18a07c9d","savedPayload":{"position":{"x":11497.749684162873,"y":16015.323000606117},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Polygon","name":"Bandwidth","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 2,\n \"lineDash\": [2,2],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n }\n}","id":"ccb32f55-1b5e-4813-b614-0581593434a7","savedPayload":{"position":{"x":11140.536525131942,"y":15767.960682602057},"targetPosition":{"x":11412.201336065602,"y":15906.380817504849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"57a26967-b019-4352-9d9d-cc10668837c4","savedPayload":{"position":{"x":11412.201336065602,"y":15906.380817504849},"targetPosition":{"x":11683.866146999262,"y":16044.80095240764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"0d8a9c6b-b0e6-4ce1-b1ad-71bd2a506a55","savedPayload":{"position":{"x":11530.220336341705,"y":16310.923302836638},"targetPosition":{"x":11683.866146999262,"y":16044.80095240764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Being Previous Bandwidth","id":"943da81e-c0ca-4213-ba8a-5dbafd3ead18"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"38f87d68-5678-46bd-9e26-45b8a8ee75f1","savedPayload":{"position":{"x":11532.535445857793,"y":15782.688489285596},"targetPosition":{"x":11683.866146999262,"y":16044.80095240764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bandwidth","id":"cdf38478-d5d4-410e-98fd-14b7b74bfd8b"}}}],"id":"0f7a4004-177c-4412-b0ef-2608f3c13da6","savedPayload":{"position":{"x":11683.866146999262,"y":16044.80095240764},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Polygon","name":"Value","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.85,\n \"lineWidth\": 2.25,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"6e43dca6-e750-49ff-b025-2a76185e5914","savedPayload":{"position":{"x":11540.270553224545,"y":15634.716006571187},"targetPosition":{"x":11678.690688127339,"y":15906.380817504847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"56c0efd0-d13a-4c29-98f2-d27cb6071099","savedPayload":{"position":{"x":11678.690688127339,"y":15906.380817504847},"targetPosition":{"x":11817.11082303013,"y":16178.045628438507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"68e8f2a3-54ee-4fb7-abd2-add6496c08e0","savedPayload":{"position":{"x":11663.524639896592,"y":16444.064700966373},"targetPosition":{"x":11817.11082303013,"y":16178.045628438507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Previous Value","id":"534c2cd4-d020-43cf-9284-433a57fdcfce"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a01aa765-6bd5-49d7-afbe-44d543191f76","savedPayload":{"position":{"x":11663.433753532934,"y":15911.86913611107},"targetPosition":{"x":11817.11082303013,"y":16178.045628438507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End Value","id":"5b05abcc-76cf-4f9d-82e5-671ab7471678"}}}],"id":"4598a671-83b9-4460-9e65-175df73eba71","savedPayload":{"position":{"x":11817.11082303013,"y":16178.045628438507},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Polygon","name":"Moving Average","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.55,\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":"544bf8f4-dfd5-4cd7-aba3-a47f6b477da8","savedPayload":{"position":{"x":11657.335984037549,"y":15871.141715514392},"targetPosition":{"x":11894.28510276525,"y":16063.019328539713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.previous.movingAverage > record.movingAverage","style":{"type":"Style","name":"New Style","code":"{\n \"opacity\": 0.55,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","id":"c89114e1-7181-4091-8c2d-0301a8b00478","savedPayload":{"position":{"x":12463.575996087846,"y":15844.489029119983},"targetPosition":{"x":12178.930549426548,"y":15953.754178829848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"12891c27-2ec5-4a56-892e-1d29a277d5da","savedPayload":{"position":{"x":12178.930549426548,"y":15953.754178829848},"targetPosition":{"x":11894.28510276525,"y":16063.019328539713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"c9847967-ecf5-4f6a-9fe7-2759ca4795b6","savedPayload":{"position":{"x":11894.28510276525,"y":16063.019328539713},"targetPosition":{"x":11846.588774831655,"y":16364.162091274897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"a"}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"81660820-6035-481b-a909-9e89e145d61f","savedPayload":{"position":{"x":11693.560313543983,"y":16629.21516122923},"targetPosition":{"x":11846.588774831655,"y":16364.162091274897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Previous MA","id":"0993c95f-2054-48d8-9977-2d4eb24dabf7"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2d18f4cf-e5d4-4bde-9a69-85b87c410125","savedPayload":{"position":{"x":11694.51365411027,"y":16100.760255618286},"targetPosition":{"x":11846.588774831655,"y":16364.162091274897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End MA","id":"35bdf97d-abf8-4f1e-922c-d853e6980b0c"}}}],"id":"69c19382-ed5b-48d1-9249-426a8e1e4e51","savedPayload":{"position":{"x":11846.588774831655,"y":16364.162091274897},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"da344cd9-3c37-449a-b5be-6c65814f8562","savedPayload":{"position":{"x":11545.44601209647,"y":16316.4657633413},"targetPosition":{"x":12407.823670648124,"y":17178.843421892954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"%B Panel","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"%B Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","id":"c6ca5acc-cc3d-4802-8627-d3461747e731","savedPayload":{"position":{"x":12650.84025431045,"y":15664.281161507663},"targetPosition":{"x":11837.782800569581,"y":15664.281161507663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d34065b9-ce7c-4971-8270-d0819da6b188","savedPayload":{"position":{"x":11837.782800569581,"y":15664.281161507663},"targetPosition":{"x":12197.388916857426,"y":16393.490229067822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Panel Data","name":"Bandwidth","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.bandwidth","id":"5193f538-5133-4561-a9e4-939cfa4d9af9","savedPayload":{"position":{"x":11776.51940927603,"y":14822.783843417554},"targetPosition":{"x":11986.954163066728,"y":15608.137036242688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ba215bbb-99c2-4433-83f8-47f2b00ee378","savedPayload":{"position":{"x":11986.954163066728,"y":15608.137036242688},"targetPosition":{"x":12197.388916857426,"y":16393.490229067822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Panel Data","name":"Moving Average","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.movingAverage","id":"d721b3b0-ffe7-459f-b146-954073605f0e","savedPayload":{"position":{"x":12091.035913420337,"y":14770.856958425855},"targetPosition":{"x":12144.212415138882,"y":15582.173593746838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8705ee2c-1bd8-4e90-b841-d2864f83f14b","savedPayload":{"position":{"x":12144.212415138882,"y":15582.173593746838},"targetPosition":{"x":12197.388916857426,"y":16393.490229067822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}],"id":"36548f31-d96c-4c80-b923-dea5dd5b56c7","savedPayload":{"position":{"x":12197.388916857426,"y":16393.490229067822},"targetPosition":{"x":12407.823670648124,"y":17178.843421892954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"06b2f3f6-b138-415f-8974-31c22a930f92","savedPayload":{"position":{"x":12407.823670648124,"y":17178.843421892954},"targetPosition":{"x":12814.352397518558,"y":17882.971831568837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Bollinger Bands","code":"{\n\"codeName\": \"BollingerBands\",\n\"isLegacy\": true,\n\"icon\": \"band\"\n}","panels":[{"type":"Plotter Panel","name":"New Plotter Panel","code":"{ \n\"codeName\": \"BollingerBandsPanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"de7b7008-6f66-4d7d-96dd-1aa7b1ede335","savedPayload":{"position":{"x":13627.409851259426,"y":16474.71501221707},"targetPosition":{"x":13220.881124388992,"y":17178.843421892954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"a11bfdf8-595c-4b50-b259-6a9f777d0ea8","savedPayload":{"position":{"x":13220.881124388992,"y":17178.843421892954},"targetPosition":{"x":12814.352397518558,"y":17882.971831568837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"abd0f050-2f42-4c50-81a9-ffb0d6442cef","savedPayload":{"position":{"x":12814.352397518558,"y":17882.971831568837},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"Plotters-Bollinger-Channels-Objects","code":"{\n\"codeName\" : \"Plotter Bollinger Channels\"\n}","modules":[{"type":"Plotter Module","name":"Bollinger Channels Objects","code":"{\n\"codeName\": \"Bollinger-Channels-Objects\",\n \"icon\": \"trend\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"New Point","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMovingAverage - record.firstDeviation","id":"8117b381-e9c7-41e3-8a51-ed49a1ca6868","savedPayload":{"position":{"x":12477.858762841848,"y":15241.010586639093},"targetPosition":{"x":12747.175958936436,"y":15524.492188138473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9be61e7d-ae1e-4b39-9ebf-27285a5a67a9","savedPayload":{"position":{"x":12747.231784421363,"y":15518.834121663833},"targetPosition":{"x":13016.507270654547,"y":15802.591277281728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"New Point","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMovingAverage - record.lastDeviation","id":"69cb3498-4e18-458a-b48e-e65c98b183be","savedPayload":{"position":{"x":12573.919874713878,"y":15163.030803760583},"targetPosition":{"x":12795.633556208106,"y":15484.98323665807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f87b3204-8901-4774-afcb-b4e5394e255d","savedPayload":{"position":{"x":12794.936411334369,"y":15480.203676480156},"targetPosition":{"x":13016.507270654547,"y":15802.591277281728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"New Point","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMovingAverage + record.lastDeviation","id":"4c7b46d8-f76b-4039-af87-345c3f72a0a4","savedPayload":{"position":{"x":12681.335925369847,"y":15101.487644194955},"targetPosition":{"x":12849.448600650969,"y":15454.065895809776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5ce82101-6f77-4f54-bef5-d97edae6d44b","savedPayload":{"position":{"x":12848.09684815536,"y":15449.511483971319},"targetPosition":{"x":13016.507270654547,"y":15802.591277281728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"New Point","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMovingAverage + record.lastDeviation","id":"89e5dbc2-33ed-42b9-9b9b-376097e04aff","savedPayload":{"position":{"x":12797.438156329015,"y":15056.888196274407},"targetPosition":{"x":12908.184062418313,"y":15431.753989781018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"45dbe6c3-9433-4b6d-8aa5-691cf6eba8a1","savedPayload":{"position":{"x":12905.404108500426,"y":15427.513287778436},"targetPosition":{"x":13016.507270654547,"y":15802.591277281728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"703b0e1b-e2d6-457a-95d6-7b6516b2f772","savedPayload":{"position":{"x":13016.507270654547,"y":15802.591277281728},"targetPosition":{"x":13407.694452001888,"y":16480.14735064498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"New Polygon","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.2\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"09105647-a665-4fb4-910d-49bcf90eb91e","savedPayload":{"position":{"x":13052.085139747272,"y":15317.979894198314},"targetPosition":{"x":13769.627721556893,"y":15020.764025232562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n}","id":"ad17706f-09f0-4424-b5f3-b66fb2c76160","savedPayload":{"position":{"x":12262.95594786772,"y":15382.483915000896},"targetPosition":{"x":13016.291834712307,"y":15201.623970116729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3975ecc2-db5b-4cab-a9ab-9e13b2da3015","savedPayload":{"position":{"x":13016.291834712307,"y":15201.623970116729},"targetPosition":{"x":13769.627721556893,"y":15020.764025232562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR. GREEN\"\n}","id":"0b263642-8fc7-4fdc-a915-9480c8493e68","savedPayload":{"position":{"x":15918.017025723926,"y":14811.861393767766},"targetPosition":{"x":13737.83116502451,"y":14247.46652513543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e218ed70-9da7-43c5-9c23-9e010e08b5b5","savedPayload":{"position":{"x":12998.062622296247,"y":15081.48751547068},"targetPosition":{"x":13769.627721556893,"y":15020.764025232562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","id":"ce3abe3f-eb38-4e0f-94bb-9c397ed78f49","savedPayload":{"position":{"x":12222.537951504992,"y":14899.005419718571},"targetPosition":{"x":12996.082836530943,"y":14959.884722475566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"251d5031-13f9-493b-aa35-126f5221bb21","savedPayload":{"position":{"x":12996.082836530943,"y":14959.884722475566},"targetPosition":{"x":13769.627721556893,"y":15020.764025232562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Style Condition","name":"New Style Condition","code":"atMousePosition === true","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.1\n}","id":"2ea26fbc-74c5-4fb5-b64f-c4c7b289003c","savedPayload":{"position":{"x":12264.344966608167,"y":14659.377609359773},"targetPosition":{"x":13016.98634408253,"y":14840.070817296168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"8a0f9c00-67be-47fa-9cde-ec6c499c9bec","savedPayload":{"position":{"x":13016.98634408253,"y":14840.070817296168},"targetPosition":{"x":13769.627721556893,"y":15020.764025232562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}],"id":"f2d2ac14-9859-4228-81d9-280c639c1b37","savedPayload":{"position":{"x":13769.627721556893,"y":15020.764025232562},"targetPosition":{"x":13798.881633349227,"y":15802.591277281728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","id":"d85d9603-7ff2-4d45-aa58-9b8ebe23a65f","savedPayload":{"position":{"x":13923.390455048271,"y":14650.461351817496},"targetPosition":{"x":13942.73139981311,"y":15039.916205728387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.DARK\"\n}","id":"d09de0b4-f477-42e9-a944-6bde9a9a68dd","savedPayload":{"position":{"x":13623.166410273745,"y":14800.189084942645},"targetPosition":{"x":13983.872740115954,"y":14650.77963108818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"08167019-4685-45ca-8572-74706f2fb971","savedPayload":{"position":{"x":13983.872740115954,"y":14650.77963108818},"targetPosition":{"x":13942.73139981311,"y":15039.916205728387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n}","id":"ebab2c53-c230-4622-a5d1-a3e0bd1d4139","savedPayload":{"position":{"x":14456.549675420274,"y":14663.759762598289},"targetPosition":{"x":14044.988211403384,"y":14663.759762598289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5b721945-b84b-4e19-a7db-777bc1c1fee1","savedPayload":{"position":{"x":14044.988211403384,"y":14663.759762598289},"targetPosition":{"x":13942.73139981311,"y":15039.916205728387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","id":"8bef9d11-9184-420e-a841-97a19f6a160b","savedPayload":{"position":{"x":14518.110234412208,"y":14684.365128783205},"targetPosition":{"x":14104.979161944493,"y":14684.365128783205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a530140d-d0bb-4989-8ca8-d9846adbc91d","savedPayload":{"position":{"x":14104.979161944493,"y":14684.365128783205},"targetPosition":{"x":13942.73139981311,"y":15039.916205728387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"add24099-1310-4e86-99fc-9db01a272b6e","savedPayload":{"position":{"x":13944.334108520856,"y":15033.856458980676},"targetPosition":{"x":13798.881633349227,"y":15802.591277281728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"7be4c16d-772a-4750-9735-09d3d9e16037","savedPayload":{"position":{"x":13042.018090393694,"y":16005.392252397221},"targetPosition":{"x":13798.881633349227,"y":15802.591277281728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"9be61e7d-ae1e-4b39-9ebf-27285a5a67a9"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"1a592de1-eb28-41eb-8ddb-b22e5034be53","savedPayload":{"position":{"x":13018.493071709334,"y":15802.591277281728},"targetPosition":{"x":13798.881633349227,"y":15802.591277281728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"f87b3204-8901-4774-afcb-b4e5394e255d"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e90a30b1-cd5d-4331-bf74-7cfd4242db34","savedPayload":{"position":{"x":13041.965076288065,"y":15599.776097079444},"targetPosition":{"x":13798.881633349227,"y":15802.591277281728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"5ce82101-6f77-4f54-bef5-d97edae6d44b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"ae4311e5-a02d-46d7-a41c-79e6945f9f21","savedPayload":{"position":{"x":13121.223688794198,"y":15411.345280574395},"targetPosition":{"x":13798.881633349227,"y":15802.591277281728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"45dbe6c3-9433-4b6d-8aa5-691cf6eba8a1"}}}],"id":"6e21446c-93e7-44ad-814d-3cd2fa8f8baf","savedPayload":{"position":{"x":13798.881633349227,"y":15802.591277281728},"targetPosition":{"x":13407.694452001888,"y":16480.14735064498},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"0b08f6f6-2317-42fb-ab3a-db8957d76dfa","savedPayload":{"position":{"x":13407.694452001888,"y":16480.14735064498},"targetPosition":{"x":13407.694452001888,"y":17262.521713339658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":"o"}}},"panels":[{"type":"Plotter Panel","name":"Channel Panel","code":"{ \n\"codeName\": \"\"\n}","javascriptCode":{"type":"Javascript Code","code":" printLabel('Direction', X_AXIS, PANEL_HEIGHT * 0.05, '1')\n printLabel(currentRecord.data.direction, X_AXIS, PANEL_HEIGHT * 0.10, '0.50')\n\n printLabel('Periods', X_AXIS, PANEL_HEIGHT * 0.15, '1')\n printLabel(currentRecord.data.period, X_AXIS, PANEL_HEIGHT * 0.20, '0.50')\n\n let fixedValue = ''\n\n fixedValue = currentRecord.data.firstMovingAverage\n if (fixedValue !== undefined) { fixedValue = fixedValue.toFixed(2) } else { fixedValue = '' }\n\n printLabel('Initial Moving Average', X_AXIS, PANEL_HEIGHT * 0.25, '1')\n printLabel(fixedValue, X_AXIS, PANEL_HEIGHT * 0.30, '0.50')\n\n fixedValue = currentRecord.data.lastMovingAverage\n if (fixedValue !== undefined) { fixedValue = fixedValue.toFixed(2) } else { fixedValue = '' }\n\n printLabel('Final Moving Average', X_AXIS, PANEL_HEIGHT * 0.35, '1')\n printLabel(fixedValue, X_AXIS, PANEL_HEIGHT * 0.40, '0.50')","id":"ab8e6fc4-e617-4f43-bd23-9887616a3bf2","savedPayload":{"position":{"x":13798.881633349229,"y":16584.965639976406},"targetPosition":{"x":13603.288042675558,"y":16923.743676658032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"09c8f781-3e54-4bed-bd9a-83e8179fdd66","savedPayload":{"position":{"x":13603.288042675558,"y":16923.743676658032},"targetPosition":{"x":13407.694452001888,"y":17262.521713339658},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}}],"id":"52881346-3e4b-45e0-92d2-af130d381b8e","savedPayload":{"position":{"x":13407.694452001888,"y":17262.521713339658},"targetPosition":{"x":13205.201066536558,"y":18018.2373160929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Bollinger Sub Channels Objects","code":"{\n\"codeName\": \"Bollinger-Sub-Channels-Objects\",\n\"icon\": \"trend\"\n}","javascriptCode":{"type":"Javascript Code","code":"/* Definition of the points we are going to use while drawing */\nlet point1\nlet point2\nlet point3\nlet point4\n\npoint1 = {\n x: record.begin,\n y: record.firstMovingAverage - record.firstDeviation\n}\n\npoint2 = {\n x: record.end,\n y: record.lastMovingAverage - record.lastDeviation\n}\n\npoint3 = {\n x: record.end,\n y: record.lastMovingAverage + record.lastDeviation\n}\n\npoint4 = {\n x: record.begin,\n y: record.firstMovingAverage + record.firstDeviation\n}\n\n/* Contributing to Auto-Scale*/\ncoordinateSystem.reportYValue(record.firstMovingAverage - record.firstDeviation)\ncoordinateSystem.reportYValue(record.lastMovingAverage - record.lastDeviation)\ncoordinateSystem.reportYValue(record.lastMovingAverage + record.lastDeviation)\ncoordinateSystem.reportYValue(record.firstMovingAverage + record.firstDeviation)\n\n/*\nThe information we store in files is independent from the charing system and its coordinate systems.\nThat means that the first thing we allways need to do is to trasform these points to the coordinate system of the timeline.\n*/\npoint1 = coordinateSystem.transformThisPoint(point1)\npoint2 = coordinateSystem.transformThisPoint(point2)\npoint3 = coordinateSystem.transformThisPoint(point3)\npoint4 = coordinateSystem.transformThisPoint(point4)\n\n/*\nThe browser canvas object does not care about our timeline and its coordinate system. In order to draw on a html canvas we\nneed the points to be converted into the canvas coordinate system.\nNext we transform again to the screen coordinate system.\n*/\npoint1 = transformThisPoint(point1, thisObject.container)\npoint2 = transformThisPoint(point2, thisObject.container)\npoint3 = transformThisPoint(point3, thisObject.container)\npoint4 = transformThisPoint(point4, thisObject.container)\n\n/* We make sure the points do not fall outside the canvas.chartingSpace.viewport visible area. This step allways need to be done. */\npoint1 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point1)\npoint2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2)\npoint3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3)\npoint4 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point4)\n\npoint1 = thisObject.fitFunction(point1);\npoint2 = thisObject.fitFunction(point2);\npoint3 = thisObject.fitFunction(point3);\npoint4 = thisObject.fitFunction(point4);\n\n/*\nNow that we have our 4 points as coordinates of the actual screen (or html canvas object), we can actaully start drawing.\nFirst we are going to draw the shape backgound.\n*/\nbrowserCanvasContext.beginPath()\n\nbrowserCanvasContext.moveTo(point1.x, point1.y)\nbrowserCanvasContext.lineTo(point2.x, point2.y)\nbrowserCanvasContext.lineTo(point3.x, point3.y)\nbrowserCanvasContext.lineTo(point4.x, point4.y)\n\nbrowserCanvasContext.closePath()\n\nlet opacity = '0.25' // The backgound will be quite transparent. Possible values goes from 0..1\n\n/* Depending on the direction of the channel, we use a different color for the border lines. */\nif (record.direction === 'Side') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.DARK + ', ' + opacity + ')' }\nif (record.direction === 'Up') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')' }\nif (record.direction === 'Down') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')' }\n\nswitch (record.slope) {\n case 'Side': {\n opacity = '0.1';\n break;\n }\n case 'Gentle': {\n opacity = '0.1';\n break;\n }\n case 'Medium': {\n opacity = '0.15';\n break;\n }\n case 'Steep': {\n opacity = '0.2';\n break;\n }\n case 'Extreme': {\n opacity = '0.25';\n break;\n }\n}\n\n/* Depending on the direction of the channel, we use a different color for the background. */\nif (record.direction === 'Side' || record.slope === 'Side') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.LIGHT + ', ' + opacity + ')'; }\nif (record.direction === 'Up') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + opacity + ')' }\nif (record.direction === 'Down') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')' }\n\n/* If the mouse is positioned in betwheen the begining and ending of our object, we can opt for changing the color of that specific object. */\nif (atMousePosition) {\n browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', 0.1)'\n}\n\nbrowserCanvasContext.fill() // This is what actually apply the previous instructions on the html canvas object of the browser.\n\n/* Second we are going to draw the shape borders. */\nbrowserCanvasContext.beginPath()\n\nbrowserCanvasContext.moveTo(point1.x, point1.y)\nbrowserCanvasContext.lineTo(point2.x, point2.y)\nbrowserCanvasContext.lineTo(point3.x, point3.y)\nbrowserCanvasContext.lineTo(point4.x, point4.y)\n\nbrowserCanvasContext.closePath()\n\nbrowserCanvasContext.lineWidth = 1 // We use 1 as standard line width\nbrowserCanvasContext.setLineDash([0, 0]) // We do not want dashed lines in this case.\nbrowserCanvasContext.stroke() // This actually draw the borders of our shape.","id":"63406674-a797-430a-96c7-e5bcacb286bc","savedPayload":{"position":{"x":14149.610465171809,"y":16787.459025441734},"targetPosition":{"x":13758.42328382447,"y":17465.015098804986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"Sub-Channel Panel","code":"{ \n\"codeName\": \"\"\n}","javascriptCode":{"type":"Javascript Code","code":"printLabel('Direction', X_AXIS, PANEL_HEIGHT * 0.05, '1');\nprintLabel(currentRecord.data.direction, X_AXIS, PANEL_HEIGHT * 0.10, '0.50');\n\nprintLabel('Periods', X_AXIS, PANEL_HEIGHT * 0.15, '1');\nprintLabel(currentRecord.data.period, X_AXIS, PANEL_HEIGHT * 0.20, '0.50');\n\nlet fixedValue = '';\n\nfixedValue = currentRecord.data.firstMovingAverage;\nif (fixedValue !== undefined) { fixedValue = fixedValue.toFixed(2); } else { fixedValue = ''; }\n\nprintLabel('Initial Moving Average', X_AXIS, PANEL_HEIGHT * 0.25, '1');\nprintLabel(fixedValue, X_AXIS, PANEL_HEIGHT * 0.30, '0.50');\n\nfixedValue = currentRecord.data.lastMovingAverage;\nif (fixedValue !== undefined) { fixedValue = fixedValue.toFixed(2); } else { fixedValue = ''; }\n\nprintLabel('Final Moving Average', X_AXIS, PANEL_HEIGHT * 0.35, '1');\nprintLabel(fixedValue, X_AXIS, PANEL_HEIGHT * 0.40, '0.50');\n\nprintLabel('Slope', X_AXIS, PANEL_HEIGHT * 0.45, '1');\nprintLabel(currentRecord.data.slope, X_AXIS, PANEL_HEIGHT * 0.50, '0.50');","id":"60b78d10-ba3e-4530-b6d6-22dd3bafbdc0","savedPayload":{"position":{"x":15113.535430550974,"y":16682.640736110305},"targetPosition":{"x":14435.979357187722,"y":17073.827917457646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0ce6611c-1e9a-4fb6-8a5f-809c8b65f89a","savedPayload":{"position":{"x":14435.979357187722,"y":17073.827917457646},"targetPosition":{"x":13758.42328382447,"y":17465.015098804986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"f8c4b699-1f40-4832-b427-68da3341daa8","savedPayload":{"position":{"x":13758.42328382447,"y":17465.015098804986},"targetPosition":{"x":13205.201066536558,"y":18018.2373160929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":"x"}}}],"id":"343f37be-cc77-4513-a296-7925edfcf0c4","savedPayload":{"position":{"x":13205.201066536558,"y":18018.2373160929},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"Plotters-Trading-Simulation","code":"{\n\"codeName\" : \"PlottersTradingSimulation\"\n}","modules":[{"type":"Plotter Module","name":"Trading Simulation","code":"{\n\"codeName\": \"TradingSimulation\",\n\"isLegacy\": true,\n\"icon\": \"placeholder\"\n}","panels":[{"type":"Plotter Panel","name":"Trading Simulation Panel","code":"{ \n\"codeName\": \"TradingSimulationPanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"0061c7b0-341d-41a7-a0a6-b675f25b7da8","savedPayload":{"position":{"x":14342.76375606883,"y":16867.102031281032},"targetPosition":{"x":13933.172920653573,"y":17576.534168534843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"7864b9e4-3150-4d1d-abd9-0a43a9fe4c4f","savedPayload":{"position":{"x":13933.172920653573,"y":17576.534168534843},"targetPosition":{"x":13523.582085238315,"y":18285.966305788654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Conditions","code":"{\n\"codeName\": \"Conditions\",\n\"isLegacy\": true,\n\"icon\": \"band\"\n}","panels":[],"id":"546d0a94-e878-41c1-a6e6-7dd28832f79b","savedPayload":{"position":{"x":14102.8309997063,"y":17706.717391320668},"targetPosition":{"x":13523.582085238315,"y":18285.966305788654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Strategies","code":"{\n\"codeName\": \"Strategies\",\n\"isLegacy\": true,\n\"icon\": \"quality\"\n}","panels":[],"id":"9b0c4f4b-d67c-48ae-97f1-bd614e85ced8","savedPayload":{"position":{"x":14233.014222492126,"y":17876.375470373394},"targetPosition":{"x":13523.582085238315,"y":18285.966305788654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Trades","code":"{\n\"codeName\": \"Trades\",\n\"isLegacy\": true,\n\"icon\": \"band\"\n}","panels":[],"id":"382004c6-e318-4d9d-9791-505f329f1e54","savedPayload":{"position":{"x":14314.850817516142,"y":18073.94648797881},"targetPosition":{"x":13523.582085238315,"y":18285.966305788654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Simulation Execution","code":"{\n\"codeName\": \"SimulationExecution\",\n\"isLegacy\": true,\n\"icon\": \"band\"\n}","panels":[{"type":"Plotter Panel","name":"Simulation Execution Panel","code":"{ \n\"codeName\": \"SimulationExecutionPanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"7a1177aa-d297-4452-bad5-58b681a740ca","savedPayload":{"position":{"x":15161.94542689935,"y":18285.966305788654},"targetPosition":{"x":14342.763756068833,"y":18285.966305788654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"96dede74-e7bc-4c50-a9ba-2bec8a5f4884","savedPayload":{"position":{"x":14342.763756068833,"y":18285.966305788654},"targetPosition":{"x":13523.582085238315,"y":18285.966305788654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"90f0675d-f4d1-480f-aa75-c8162d53ea0f","savedPayload":{"position":{"x":13523.582085238315,"y":18285.966305788654},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959","savedPayload":{"position":{"x":12814.422748313864,"y":18696.02928226611},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"m"}}},{"type":"Data Mine","name":"Sparta","code":"{\n\"codeName\": \"Sparta\"\n}","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"SMA","code":"{\n\"codeName\": \"SMA\",\n\"repo\": \"SMA-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs 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":"New Output Dataset","id":"5302effb-1f09-4a30-9f71-6956b8b9ca88","savedPayload":{"position":{"x":25425.299873361433,"y":18034.75491985799},"targetPosition":{"x":25670.518338358357,"y":17789.536454861067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"8221593c-6298-4b4c-bfc2-cffbc9e5cd0f","savedPayload":{"position":{"x":25334.754210686813,"y":17879.504181718},"targetPosition":{"x":25670.518338358357,"y":17789.536454861067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"aabd0857-b4fc-404a-8967-967475ed3993","savedPayload":{"position":{"x":25338.000079984096,"y":17700.43845606108},"targetPosition":{"x":25670.518338358357,"y":17789.536454861067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}}],"id":"85a56739-9351-444b-95e9-a57470dca38a","savedPayload":{"position":{"x":25670.518338358357,"y":17789.536454861067},"targetPosition":{"x":25901.621733779666,"y":18046.20277803549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"d49d1e94-1960-4121-8e40-be8af52947ee","savedPayload":{"position":{"x":25514.890047077395,"y":17613.655457489494},"targetPosition":{"x":25758.005234282704,"y":17370.540270284186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"81346f2f-13f2-46f4-85f5-a04b4d80f455"}}},{"type":"Status Dependency","name":"Ending: Olivia","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"f7cf0949-06fc-4c98-a399-61fac1671c6e","savedPayload":{"position":{"x":25425.5002254308,"y":17459.634718885358},"targetPosition":{"x":25758.005234282704,"y":17370.540270284186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Olivia Candles","id":"4228fdf3-e992-46b2-a91e-de95108a753d","savedPayload":{"position":{"x":25425.034922617997,"y":17281.321144170088},"targetPosition":{"x":25758.005234282704,"y":17370.540270284186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"f404e748-b631-4cc5-975c-2a0736e55c0d","savedPayload":{"position":{"x":25758.005234282704,"y":17370.540270284186},"targetPosition":{"x":25901.621733779666,"y":18046.20277803549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"81346f2f-13f2-46f4-85f5-a04b4d80f455","savedPayload":{"position":{"x":26008.34959223401,"y":17717.728205112584},"targetPosition":{"x":25901.621733779666,"y":18046.20277803549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Olivia","id":"2bce272e-2712-4f28-9736-03b51929aba2","savedPayload":{"position":{"x":25571.436307248652,"y":17938.9190295465},"targetPosition":{"x":25901.621733779666,"y":18046.20277803549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"b569db86-9ab5-4ba2-be41-357a9bce84b4","savedPayload":{"position":{"x":26239.45298765532,"y":17974.394528287008},"targetPosition":{"x":25901.621733779666,"y":18046.20277803549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297","savedPayload":{"position":{"x":25901.621733779666,"y":18046.20277803549},"targetPosition":{"x":25688.16601687098,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\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":"New Output Dataset","id":"417d3141-1e22-4ee6-b2d6-531a55b95c88","savedPayload":{"position":{"x":25710.88519496718,"y":18071.61813461787},"targetPosition":{"x":25953.70478347516,"y":17828.79854610989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"022edfeb-ec62-4cd9-85bf-20e9f444e3c1","savedPayload":{"position":{"x":25622.020739314274,"y":17917.67301788509},"targetPosition":{"x":25953.70478347516,"y":17828.79854610989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"42e89cd9-acbe-49cd-b6f6-7671317796d6","savedPayload":{"position":{"x":25620.1945010826,"y":17739.43473527533},"targetPosition":{"x":25953.70478347516,"y":17828.79854610989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}}],"id":"ad03dff7-56b2-4980-bc14-1b6c41fdf6cf","savedPayload":{"position":{"x":25953.70478347516,"y":17828.79854610989},"targetPosition":{"x":26094.182917883903,"y":18144.317601921382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"d674a833-b9c8-4bdb-84de-e007ab243860","savedPayload":{"position":{"x":25921.67586056493,"y":17702.055279073007},"targetPosition":{"x":26166.386707546964,"y":17457.344432090973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"d2727d60-b26b-4e8b-a635-fbe78bc81240"}}},{"type":"Status Dependency","name":"Ending: Olivia","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"ba857809-2273-4280-aa19-4b50837abccb","savedPayload":{"position":{"x":25849.141220119607,"y":17588.75181558505},"targetPosition":{"x":26166.386707546964,"y":17457.344432090973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Starting: Charly","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"40e12ba8-59dc-4eaf-a30d-07bb8192e0a6","savedPayload":{"position":{"x":25820.38785957576,"y":17457.344432090973},"targetPosition":{"x":26166.386707546964,"y":17457.344432090973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Olivia Candles","id":"5f5e40cb-841e-4b18-a249-a04d541d31a0","savedPayload":{"position":{"x":25846.60695395367,"y":17324.887321180304},"targetPosition":{"x":26166.386707546964,"y":17457.344432090973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"b6aae3c7-2d70-4ffd-a5e5-951f0a565b13","savedPayload":{"position":{"x":26166.386707546964,"y":17457.344432090973},"targetPosition":{"x":26094.182917883903,"y":18144.317601921382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"d2727d60-b26b-4e8b-a635-fbe78bc81240","savedPayload":{"position":{"x":26297.191368390366,"y":17864.90044094142},"targetPosition":{"x":26094.182917883903,"y":18144.317601921382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Olivia","id":"8b753072-e4c9-4671-a5ce-eea9e1c1ba0f","savedPayload":{"position":{"x":25766.556475283192,"y":18037.86531771369},"targetPosition":{"x":26094.182917883903,"y":18144.317601921382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"87c9e783-adc5-40e3-b1fb-fdb2994c1217","savedPayload":{"position":{"x":26437.669502799108,"y":18180.419496752915},"targetPosition":{"x":26094.182917883903,"y":18144.317601921382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f","savedPayload":{"position":{"x":26094.182917883903,"y":18144.317601921382},"targetPosition":{"x":25688.16601687098,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Popular SMAs","code":"{\n \"codeName\": \"Popular-SMAs\",\n \"singularVariableName\": \"popularSMA\",\n \"pluralVariableName\": \"popularSMAs\"\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\": \"Sparta/SMA/@Exchange/Output/Popular-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c","savedPayload":{"position":{"x":26247.0003388309,"y":17951.756417817145},"targetPosition":{"x":26247.0003388309,"y":18297.13502286838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/SMA/@Exchange/Output/Popular-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/SMA/@Exchange/Output/Popular-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"2c338fe0-385f-45ab-b210-b98ef013228d","savedPayload":{"position":{"x":26450.008789337364,"y":18017.717861888417},"targetPosition":{"x":26247.0003388309,"y":18297.13502286838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"673a7fbf-1a73-4220-a561-84cf8b11c3a7","savedPayload":{"position":{"x":26800.058438324624,"y":17691.54940103405},"targetPosition":{"x":27016.241247962123,"y":17834.2504242697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"305fc918-e6df-48d7-a7b5-726e3fa8f958","savedPayload":{"position":{"x":27016.241247962123,"y":17834.2504242697},"targetPosition":{"x":27232.424057599623,"y":17976.951447505347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"002ffd5e-583c-4af5-87eb-a886fd3bc50e","savedPayload":{"position":{"x":27185.984808399386,"y":17460.969129014902},"targetPosition":{"x":27209.204432999504,"y":17718.960288260125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a305a94d-3af9-430a-8642-5ffb1229710f","savedPayload":{"position":{"x":27209.204432999504,"y":17718.960288260125},"targetPosition":{"x":27232.424057599623,"y":17976.951447505347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA20","code":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma20","id":"5adb676d-35a8-47b2-aa47-dc0e6edf8a81","savedPayload":{"position":{"x":27606.880880309975,"y":17618.934066940205},"targetPosition":{"x":27419.6524689548,"y":17797.942757222776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1657736e-6bc4-4279-9e65-5b0b0cf737cb","savedPayload":{"position":{"x":27419.6524689548,"y":17797.942757222776},"targetPosition":{"x":27232.424057599623,"y":17976.951447505347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA50","code":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma50","id":"85033109-c11c-43d2-84cc-4510dae276ca","savedPayload":{"position":{"x":27745.803327192516,"y":18046.493394654706},"targetPosition":{"x":27489.11369239607,"y":18011.722421080027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e7f1f78d-3a6d-49a2-b522-4423bd8d6a82","savedPayload":{"position":{"x":27489.11369239607,"y":18011.722421080027},"targetPosition":{"x":27232.424057599623,"y":17976.951447505347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA100","code":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma100","id":"43eebecb-65db-4e64-902a-582515e06daa","savedPayload":{"position":{"x":27498.14071304298,"y":18421.686217768536},"targetPosition":{"x":27365.2823853213,"y":18199.31883263694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"090fa9ea-f050-4315-9360-3958ce5debaa","savedPayload":{"position":{"x":27365.2823853213,"y":18199.31883263694},"targetPosition":{"x":27232.424057599623,"y":17976.951447505347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA200","code":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma200","id":"5bdf982c-5480-4f90-9ec2-7708bf2d4943","savedPayload":{"position":{"x":27050.38803771262,"y":18461.984687938162},"targetPosition":{"x":27141.40604765612,"y":18219.468067721755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8146fe70-3592-4f27-af4a-d3d8e93268d1","savedPayload":{"position":{"x":27141.40604765612,"y":18219.468067721755},"targetPosition":{"x":27232.424057599623,"y":17976.951447505347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"1b29d760-f7fe-48a5-928c-212a6f9a2486","savedPayload":{"position":{"x":27232.424057599623,"y":17976.951447505347},"targetPosition":{"x":26247.0003388309,"y":18297.13502286838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma20 = calculateSMA(20)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma200 = calculateSMA(200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"a9904080-6677-45e0-bcac-f336e882380a","savedPayload":{"position":{"x":26913.30616562946,"y":18332.054631574247},"targetPosition":{"x":26744.390538691634,"y":18367.958756448486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"f"}}},"id":"52a2ea69-6420-40f6-90f0-3330d33e6f67","savedPayload":{"position":{"x":26744.390538691634,"y":18367.958756448486},"targetPosition":{"x":26575.47491175381,"y":18403.862881322726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"2790fd06-6fe8-4175-bbfc-854d9909aeb4","savedPayload":{"position":{"x":26806.57830717512,"y":18660.52920449715},"targetPosition":{"x":26691.026609464465,"y":18532.196042909938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6d5772df-819e-4968-9e27-61981c08f0e2","savedPayload":{"position":{"x":26691.026609464465,"y":18532.196042909938},"targetPosition":{"x":26575.47491175381,"y":18403.862881322726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"f1f881ff-a04f-4663-9747-2042d4581953","savedPayload":{"position":{"x":26575.47491175381,"y":18403.862881322726},"targetPosition":{"x":26247.0003388309,"y":18297.13502286838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34","savedPayload":{"position":{"x":26247.0003388309,"y":18297.13502286838},"targetPosition":{"x":25688.16601687098,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"SMA Popular","id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa"}}},{"type":"Product Definition","name":"Base7 SMAs","code":"{\n \"codeName\": \"Base7-SMAs\",\n \"singularVariableName\": \"base7SMA\",\n \"pluralVariableName\": \"base7SMAs\"\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\": \"Sparta/SMA/@Exchange/Output/Base7-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59","savedPayload":{"position":{"x":26451.84302117114,"y":18161.22163404971},"targetPosition":{"x":26345.115162716793,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/SMA/@Exchange/Output/Base7-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/SMA/@Exchange/Output/Base7-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d","savedPayload":{"position":{"x":26624.532323696756,"y":18286.687756466155},"targetPosition":{"x":26345.115162716793,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"6d7e37c5-d80e-44a3-8484-f532bcfc7819","savedPayload":{"position":{"x":26907.972394153254,"y":18278.979005359502},"targetPosition":{"x":27144.611686011875,"y":18384.33760616606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"87203f0b-0fb8-4875-8127-d715198bf01b","savedPayload":{"position":{"x":27144.611686011875,"y":18384.33760616606},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"bf74ad1e-a569-4428-a387-b0f39bb63759","savedPayload":{"position":{"x":27034.59588473853,"y":18104.696722210978},"targetPosition":{"x":27207.923431304513,"y":18297.196464591798},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0bc477f0-8b7d-4c75-8613-0cc63a25a79d","savedPayload":{"position":{"x":27207.923431304513,"y":18297.196464591798},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA7","code":"{\n \"codeName\": \"sma7\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma7","id":"1a89def9-4270-4584-93c3-86ca30cb184c","savedPayload":{"position":{"x":27221.15919018898,"y":17996.984347588255},"targetPosition":{"x":27301.205084029738,"y":18243.340277280437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a87dddd8-9806-45be-b9a9-0e3196da48a7","savedPayload":{"position":{"x":27301.205084029738,"y":18243.340277280437},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA14","code":"{\n \"codeName\": \"sma14\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma14","id":"c0b78d39-a652-4d13-9fce-1b56d4e6ffbb","savedPayload":{"position":{"x":27435.403820117794,"y":17974.466329599814},"targetPosition":{"x":27408.327398994144,"y":18232.081268286216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"114a04b9-e5b6-4f60-ad99-760c10275f9e","savedPayload":{"position":{"x":27408.327398994144,"y":18232.081268286216},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA21","code":"{\n \"codeName\": \"sma21\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma21","id":"4740139a-d2d7-4050-a0f6-145eef002bed","savedPayload":{"position":{"x":27640.284931658924,"y":18041.036238125616},"targetPosition":{"x":27510.76795476471,"y":18265.366222549117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ac8182cd-7f7b-44e9-a91c-b470be594ef0","savedPayload":{"position":{"x":27510.76795476471,"y":18265.366222549117},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA28","code":"{\n \"codeName\": \"sma28\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma28","id":"0a2f17a1-2663-477a-8c28-015592a67a7e","savedPayload":{"position":{"x":27800.37671934044,"y":18185.183531212922},"targetPosition":{"x":27590.813848605467,"y":18337.43986909277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"81c852eb-9b3e-4505-b81a-f236b39d770d","savedPayload":{"position":{"x":27590.813848605467,"y":18337.43986909277},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA35","code":"{\n \"codeName\": \"sma35\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma35","id":"1a30763f-6398-475f-b232-ff0da4ad41fa","savedPayload":{"position":{"x":27887.997858683975,"y":18381.983832349895},"targetPosition":{"x":27634.624418277235,"y":18435.840019661257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a8a4dd40-6286-46b0-8f4d-61893d2d9234","savedPayload":{"position":{"x":27634.624418277235,"y":18435.840019661257},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA70","code":"{\n \"codeName\": \"sma70\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma70","id":"07471d43-2432-4961-81b5-4aa1bb399df4","savedPayload":{"position":{"x":27887.997858683975,"y":18597.40858159534},"targetPosition":{"x":27634.624418277235,"y":18543.55239428398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9dbc330c-e654-4591-92d0-c3e92262436e","savedPayload":{"position":{"x":27634.624418277235,"y":18543.55239428398},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA140","code":"{\n \"codeName\": \"sma140\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma140","id":"0ef6719d-cfa8-458e-a137-6bd2e77aa6fd","savedPayload":{"position":{"x":27800.37671934044,"y":18794.208882732313},"targetPosition":{"x":27590.813848605467,"y":18641.952544852466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"93814c2c-8fff-4415-9934-1356bf555015","savedPayload":{"position":{"x":27590.813848605467,"y":18641.952544852466},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA210","code":"{\n \"codeName\": \"sma210\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma210","id":"037c98d5-1eef-4928-ade0-a70021337aa5","savedPayload":{"position":{"x":27640.284931658924,"y":18938.35617581962},"targetPosition":{"x":27510.76795476471,"y":18714.02619139612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"efbcaa0c-2bf3-44e6-aae3-4f73c6255c69","savedPayload":{"position":{"x":27510.76795476471,"y":18714.02619139612},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA280","code":"{\n \"codeName\": \"sma280\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma280","id":"2bdc1e1e-b6a3-4e68-90b5-e88e64684804","savedPayload":{"position":{"x":27435.403820117794,"y":19004.92608434542},"targetPosition":{"x":27408.327398994144,"y":18747.31114565902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6b302071-d15f-43b3-9ab2-4b970a379ebc","savedPayload":{"position":{"x":27408.327398994144,"y":18747.31114565902},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA350","code":"{\n \"codeName\": \"sma350\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma350","id":"18baf5c6-5aa5-4f66-8637-9966fdf4acf4","savedPayload":{"position":{"x":27221.15919018898,"y":18982.40806635698},"targetPosition":{"x":27301.205084029738,"y":18736.0521366648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f1de76b8-1665-4142-b8fc-712203bad655","savedPayload":{"position":{"x":27301.205084029738,"y":18736.0521366648},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA700","code":"{\n \"codeName\": \"sma700\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma700","id":"c8f08ae8-f608-40f1-8df3-e4eb537a89ed","savedPayload":{"position":{"x":27034.59588473853,"y":18874.695691734258},"targetPosition":{"x":27207.923431304513,"y":18682.195949353438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"83b3c070-c0cb-4a4b-86ea-0b6292f57c13","savedPayload":{"position":{"x":27207.923431304513,"y":18682.195949353438},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA1400","code":"{\n \"codeName\": \"sma1400\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1400","id":"ca4c686e-61d0-4dc0-96f9-9ee80d856422","savedPayload":{"position":{"x":26907.972394153254,"y":18700.413408585733},"targetPosition":{"x":27144.611686011875,"y":18595.054807779175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e07922ab-0abb-4216-a534-07db74399c2a","savedPayload":{"position":{"x":27144.611686011875,"y":18595.054807779175},"targetPosition":{"x":27381.250977870495,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"f3c4fe44-c417-4c98-9547-4b0c062f7bd7","savedPayload":{"position":{"x":27381.250977870495,"y":18489.696206972618},"targetPosition":{"x":26345.115162716793,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1400.push(candle.close) // Add the current close value to the last 1400 array.\n\nif (variable.last1400.length > 1400) {\n variable.last1400.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1400 elements.\n}\n\nvariable.sma7 = calculateSMA(7)\nvariable.sma14 = calculateSMA(14)\nvariable.sma21 = calculateSMA(21)\nvariable.sma28 = calculateSMA(28)\nvariable.sma35 = calculateSMA(35)\nvariable.sma70 = calculateSMA(70)\nvariable.sma140 = calculateSMA(140)\nvariable.sma210 = calculateSMA(210)\nvariable.sma280 = calculateSMA(280)\nvariable.sma350 = calculateSMA(350)\nvariable.sma700 = calculateSMA(700)\nvariable.sma1400 = calculateSMA(1400)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1400.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1400.length - periods; i < variable.last1400.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1400[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1400.length=\" + variable.last1400.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1400[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"27796e5a-2553-47c6-bddd-c8deaed05c2f","savedPayload":{"position":{"x":26968.01890861196,"y":18728.806552310612},"targetPosition":{"x":26796.27561615436,"y":18710.755604894846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e5d799ba-3a4f-45fb-8533-4c3de5d7886f","savedPayload":{"position":{"x":26796.27561615436,"y":18710.755604894846},"targetPosition":{"x":26624.532323696756,"y":18692.70465747908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1400 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1400 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"17ee3425-2a07-4523-b005-bac9dbf75184","savedPayload":{"position":{"x":26765.010458105495,"y":19008.223713290572},"targetPosition":{"x":26694.771390901125,"y":18850.464185384826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9e9e5c8c-98e2-4bbf-884a-071449177692","savedPayload":{"position":{"x":26694.771390901125,"y":18850.464185384826},"targetPosition":{"x":26624.532323696756,"y":18692.70465747908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"6bd8fef6-49f7-45c5-9f9f-944785f8578e","savedPayload":{"position":{"x":26624.532323696756,"y":18692.70465747908},"targetPosition":{"x":26345.115162716793,"y":18489.696206972618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6","savedPayload":{"position":{"x":26345.115162716793,"y":18489.696206972618},"targetPosition":{"x":25688.16601687098,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"SMA Base 7","id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd"}}},{"type":"Product Definition","name":"Base11 SMAs","code":"{\n \"codeName\": \"Base11-SMAs\",\n \"singularVariableName\": \"base11SMA\",\n \"pluralVariableName\": \"base11SMAs\"\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\": \"Sparta/SMA/@Exchange/Output/Base11-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"af9b9cef-2a74-486f-b79e-047d68669a1f","savedPayload":{"position":{"x":26581.931677479908,"y":18423.734762901342},"targetPosition":{"x":26378.923226973446,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/SMA/@Exchange/Output/Base11-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/SMA/@Exchange/Output/Base11-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e","savedPayload":{"position":{"x":26707.397799896353,"y":18596.42406542696},"targetPosition":{"x":26378.923226973446,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"a6c93c64-52da-4dad-bff9-9f6d9b4606b9","savedPayload":{"position":{"x":27129.149037482333,"y":18561.73361362075},"targetPosition":{"x":27246.74799161225,"y":18792.534556432543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5e8f3d9c-8284-4b92-b7f5-ad7498e5ef3d","savedPayload":{"position":{"x":27246.74799161225,"y":18792.534556432543},"targetPosition":{"x":27364.346945742167,"y":19023.33549924434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"ac16b3d1-e3b0-4b79-9047-cd137c6eeafc","savedPayload":{"position":{"x":27524.43873342368,"y":18530.623639859976},"targetPosition":{"x":27444.392839582924,"y":18776.979569552157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"43337725-24dd-4c1a-ae8d-2562a028d02d","savedPayload":{"position":{"x":27444.392839582924,"y":18776.979569552157},"targetPosition":{"x":27364.346945742167,"y":19023.33549924434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA11","code":"{\n \"codeName\": \"sma11\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma11","id":"87a1e288-0966-46e9-8a4f-1ddbb3f8976c","savedPayload":{"position":{"x":27825.948831365757,"y":18788.137590984505},"targetPosition":{"x":27595.147888553962,"y":18905.73654511442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6a67dbd9-1e8e-4100-849f-5ea77ea67985","savedPayload":{"position":{"x":27595.147888553962,"y":18905.73654511442},"targetPosition":{"x":27364.346945742167,"y":19023.33549924434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA22","code":"{\n \"codeName\": \"sma22\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma22","id":"8652042b-c373-4024-9fbf-c582a55134e0","savedPayload":{"position":{"x":27857.05880512653,"y":19183.427286925853},"targetPosition":{"x":27610.70287543435,"y":19103.381393085096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a5665ca1-e399-4e8a-8e04-8c0b153702e4","savedPayload":{"position":{"x":27610.70287543435,"y":19103.381393085096},"targetPosition":{"x":27364.346945742167,"y":19023.33549924434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA33","code":"{\n \"codeName\": \"sma33\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma33","id":"738317b6-dcb4-4699-a48c-170491515eb5","savedPayload":{"position":{"x":27599.544854002,"y":19484.937384867928},"targetPosition":{"x":27481.945899872084,"y":19254.136442056133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f35c54ed-6469-4cfa-94cf-f94f1c916e91","savedPayload":{"position":{"x":27481.945899872084,"y":19254.136442056133},"targetPosition":{"x":27364.346945742167,"y":19023.33549924434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA55","code":"{\n \"codeName\": \"sma55\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma55","id":"675e9f6c-1e0d-4d09-ab69-88252ef60fe2","savedPayload":{"position":{"x":27204.255158060652,"y":19516.0473586287},"targetPosition":{"x":27284.30105190141,"y":19269.69142893652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c17d77b3-4d80-462d-88ba-ef421928dde1","savedPayload":{"position":{"x":27284.30105190141,"y":19269.69142893652},"targetPosition":{"x":27364.346945742167,"y":19023.33549924434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA111","code":"{\n \"codeName\": \"sma111\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma111","id":"b32a4356-312c-4536-b30b-63bad302e857","savedPayload":{"position":{"x":26902.745060118577,"y":19258.533407504172},"targetPosition":{"x":27133.546002930372,"y":19140.934453374255},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f49152b4-5306-41d2-966b-dba92eef2590","savedPayload":{"position":{"x":27133.546002930372,"y":19140.934453374255},"targetPosition":{"x":27364.346945742167,"y":19023.33549924434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"a099f207-16db-4f66-adfb-1529fa350385","savedPayload":{"position":{"x":27364.346945742167,"y":19023.33549924434},"targetPosition":{"x":26378.923226973446,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma11 = calculateSMA(11)\nvariable.sma22 = calculateSMA(22)\nvariable.sma33 = calculateSMA(33)\nvariable.sma55 = calculateSMA(55)\nvariable.sma111 = calculateSMA(111)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"317788d5-11f5-48a6-ab0c-252cdcef7728","savedPayload":{"position":{"x":26897.4507332914,"y":19123.047219270007},"targetPosition":{"x":26739.691205385654,"y":19052.808152065638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cce46065-5c04-428f-823f-4cb5e67b212a","savedPayload":{"position":{"x":26739.691205385654,"y":19052.808152065638},"targetPosition":{"x":26581.931677479908,"y":18982.56908486127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"70d5537e-f682-4322-992b-99a55edb2582","savedPayload":{"position":{"x":26618.03357231144,"y":19326.055669776473},"targetPosition":{"x":26599.982624895674,"y":19154.31237731887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f0707196-a2ac-4aee-99df-48a7fe77c365","savedPayload":{"position":{"x":26599.982624895674,"y":19154.31237731887},"targetPosition":{"x":26581.931677479908,"y":18982.56908486127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"663d58c6-e03e-4923-8cc7-03cc860aa318","savedPayload":{"position":{"x":26581.931677479908,"y":18982.56908486127},"targetPosition":{"x":26378.923226973446,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"05fabbf9-7798-4a53-995e-53ae74bef3de","savedPayload":{"position":{"x":26378.923226973446,"y":18703.151923881305},"targetPosition":{"x":25688.16601687098,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"SMA Base 11","id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00"}}},{"type":"Product Definition","name":"Base5 SMAs","code":"{\n \"codeName\": \"Base5-SMAs\",\n \"singularVariableName\": \"base5SMA\",\n \"pluralVariableName\": \"base5SMAs\"\n}","datasets":[{"type":"Dataset Definition","name":"Muti-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\": \"Sparta/SMA/@Exchange/Output/Base5-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"a5d28568-fb58-469a-9820-b9f0e8eab705","savedPayload":{"position":{"x":26624.532323696756,"y":18713.59919028353},"targetPosition":{"x":26345.115162716793,"y":18916.607640789993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/SMA/@Exchange/Output/Base5-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/SMA/@Exchange/Output/Base5-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"01f32aa3-55e9-4f8c-80c7-997b52073274","savedPayload":{"position":{"x":26690.49376776803,"y":18916.607640789993},"targetPosition":{"x":26345.115162716793,"y":18916.607640789993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"949a2e58-5d07-475e-92b9-e0ef4b9fd9e7","savedPayload":{"position":{"x":26924.33269186825,"y":19076.97302346238},"targetPosition":{"x":27053.849668762465,"y":19301.30300788588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"65545f82-9022-4d4c-bd09-b900182bae75","savedPayload":{"position":{"x":27053.849668762465,"y":19301.30300788588},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"551c49da-26d4-438e-aff4-2a0ecc18ce7f","savedPayload":{"position":{"x":27129.21380340938,"y":19010.403114936576},"targetPosition":{"x":27156.29022453303,"y":19268.01805362298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"74445dab-2c42-4c71-b179-04b98b5a8e27","savedPayload":{"position":{"x":27156.29022453303,"y":19268.01805362298},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA5","code":"{\n \"codeName\": \"sma5\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma5","id":"1c996969-c249-4b55-845c-62205e91fc68","savedPayload":{"position":{"x":27343.458433338194,"y":19032.921132925017},"targetPosition":{"x":27263.412539497436,"y":19279.2770626172},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3b9f6fbf-20d8-4952-b5e8-34937746fef7","savedPayload":{"position":{"x":27263.412539497436,"y":19279.2770626172},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA10","code":"{\n \"codeName\": \"sma10\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma10","id":"d16592d7-2f02-49ae-8857-dd7098990f20","savedPayload":{"position":{"x":27530.021738788644,"y":19140.63350754774},"targetPosition":{"x":27356.69419222266,"y":19333.13324992856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"73cb2d83-d59b-457e-af00-68a8d0e2b016","savedPayload":{"position":{"x":27356.69419222266,"y":19333.13324992856},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA15","code":"{\n \"codeName\": \"sma15\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma15","id":"147ea31e-2735-4bae-b6a9-99072ed3d7a5","savedPayload":{"position":{"x":27656.64522937392,"y":19314.915790696265},"targetPosition":{"x":27420.0059375153,"y":19420.274391502822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"666f82ef-a002-4067-9edb-6ddbe2861056","savedPayload":{"position":{"x":27420.0059375153,"y":19420.274391502822},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA20","code":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma20","id":"f2507a4f-7f65-4d22-b062-1834c9269285","savedPayload":{"position":{"x":27701.43455323353,"y":19525.63299230938},"targetPosition":{"x":27442.400599445104,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a6a82705-0a6c-425e-afab-099a63570ada","savedPayload":{"position":{"x":27442.400599445104,"y":19525.63299230938},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA25","code":"{\n \"codeName\": \"sma25\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma25","id":"53aead0b-0c80-4e74-b19b-7290672f7444","savedPayload":{"position":{"x":27656.64522937392,"y":19736.350193922495},"targetPosition":{"x":27420.0059375153,"y":19630.991593115938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cbc6da93-d064-4762-a32f-ae1071a1ebe2","savedPayload":{"position":{"x":27420.0059375153,"y":19630.991593115938},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA50","code":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma50","id":"0c126131-e3bd-4d43-a037-53e54e268300","savedPayload":{"position":{"x":27530.021738788644,"y":19910.63247707102},"targetPosition":{"x":27356.69419222266,"y":19718.1327346902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1cda317e-4b82-4bd9-8b07-71ad7365e524","savedPayload":{"position":{"x":27356.69419222266,"y":19718.1327346902},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA100","code":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma100","id":"77c897e8-ab38-4c88-a215-e67d53401196","savedPayload":{"position":{"x":27343.458433338194,"y":20018.344851693742},"targetPosition":{"x":27263.412539497436,"y":19771.98892200156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f7a66586-158d-40e2-be75-1077a91b0d7e","savedPayload":{"position":{"x":27263.412539497436,"y":19771.98892200156},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA150","code":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma150","id":"1e5d6df6-a1af-49f0-a06e-08c362b1cd34","savedPayload":{"position":{"x":27129.21380340938,"y":20040.862869682183},"targetPosition":{"x":27156.29022453303,"y":19783.24793099578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"83260971-1089-4349-9019-29ea469a9d24","savedPayload":{"position":{"x":27156.29022453303,"y":19783.24793099578},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA200","code":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma200","id":"bc63f986-17dd-48fb-892b-7f2d2b033cc5","savedPayload":{"position":{"x":26924.33269186825,"y":19974.29296115638},"targetPosition":{"x":27053.849668762465,"y":19749.96297673288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"07a55760-46cf-44e8-b2f9-f55a6bb5a81c","savedPayload":{"position":{"x":27053.849668762465,"y":19749.96297673288},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA250","code":"{\n \"codeName\": \"sma250\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma250","id":"1bdc84fd-9eac-4b07-9ff6-56f80ec08553","savedPayload":{"position":{"x":26764.240904186736,"y":19830.145668069075},"targetPosition":{"x":26973.803774921707,"y":19677.889330189228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8b672a62-1ae1-4e92-819e-597fa42da35b","savedPayload":{"position":{"x":26973.803774921707,"y":19677.889330189228},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA 500","code":"{\n \"codeName\": \"sma500\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma500","id":"0d17399e-97d1-459d-8864-6c72967f0fd4","savedPayload":{"position":{"x":26676.6197648432,"y":19633.345366932102},"targetPosition":{"x":26929.99320524994,"y":19579.48917962074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"92405f1d-9adf-4a70-af18-f2537ba2b0a0","savedPayload":{"position":{"x":26929.99320524994,"y":19579.48917962074},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA 1000","code":"{\n \"codeName\": \"sma1000\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1000","id":"e2364abc-b940-4b52-a506-587c1a5941e3","savedPayload":{"position":{"x":26676.6197648432,"y":19417.920617686657},"targetPosition":{"x":26929.99320524994,"y":19471.77680499802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5318bf3f-6e8a-46c8-8b04-3769bde03438","savedPayload":{"position":{"x":26929.99320524994,"y":19471.77680499802},"targetPosition":{"x":27183.36664565668,"y":19525.63299230938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"69298c3e-479d-4eb6-a972-35f8f079ce86","savedPayload":{"position":{"x":27183.36664565668,"y":19525.63299230938},"targetPosition":{"x":26345.115162716793,"y":18916.607640789993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1000.push(candle.close) // Add the current close value to the last 1000 array.\n\nif (variable.last1000.length > 1000) {\n variable.last1000.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1000 elements.\n}\n\nvariable.sma5 = calculateSMA(5)\nvariable.sma10 = calculateSMA(10)\nvariable.sma15 = calculateSMA(15)\nvariable.sma20 = calculateSMA(20)\nvariable.sma25 = calculateSMA(25)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma150 = calculateSMA(150)\nvariable.sma200 = calculateSMA(200)\nvariable.sma250 = calculateSMA(250)\nvariable.sma500 = calculateSMA(500)\nvariable.sma1000 = calculateSMA(1000)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1000.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1000.length - periods; i < variable.last1000.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1000[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1000.length=\" + variable.last1000.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1000[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"45ebc09e-bada-4bcd-8780-a2f56f23f037","savedPayload":{"position":{"x":26708.509344345563,"y":19476.185609134212},"targetPosition":{"x":26580.17618275835,"y":19360.633911423556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f65693cf-81ef-497e-86d2-a7ad9b74a1ca","savedPayload":{"position":{"x":26580.17618275835,"y":19360.633911423556},"targetPosition":{"x":26451.84302117114,"y":19245.0822137129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1000 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1000 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"22db43d3-db5d-43b6-80fc-1faa358bfadb","savedPayload":{"position":{"x":26380.03477142266,"y":19582.91346758855},"targetPosition":{"x":26415.9388962969,"y":19413.997840650725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"12255c95-c680-43af-be1b-61ee37e0e827","savedPayload":{"position":{"x":26415.9388962969,"y":19413.997840650725},"targetPosition":{"x":26451.84302117114,"y":19245.0822137129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"cd8c13e4-2b9e-4a42-a576-539d412f239a","savedPayload":{"position":{"x":26451.84302117114,"y":19245.0822137129},"targetPosition":{"x":26345.115162716793,"y":18916.607640789993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"2dcb55de-1673-409e-aa52-f51e7c7f8fa3","savedPayload":{"position":{"x":26345.115162716793,"y":18916.607640789993},"targetPosition":{"x":25688.16601687098,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base6 SMAs","code":"{\n \"codeName\": \"Base6-SMAs\",\n \"singularVariableName\": \"base6SMA\",\n \"pluralVariableName\": \"base6SMAs\"\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\": \"Sparta/SMA/@Exchange/Output/Base6-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c","savedPayload":{"position":{"x":26575.47491175381,"y":19002.440966439885},"targetPosition":{"x":26247.0003388309,"y":19109.16882489423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/SMA/@Exchange/Output/Base6-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/SMA/@Exchange/Output/Base6-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a","savedPayload":{"position":{"x":26575.47491175381,"y":19215.896683348576},"targetPosition":{"x":26247.0003388309,"y":19109.16882489423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Being","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.begin","id":"fc90c194-682d-4d5c-923b-89b19e49f234","savedPayload":{"position":{"x":26748.313315727566,"y":19440.673427020636},"targetPosition":{"x":26802.169503038927,"y":19694.046867427376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"37fc0238-a202-4c33-89ca-6a4e24d4e1ac","savedPayload":{"position":{"x":26802.169503038927,"y":19694.046867427376},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"c1b3c2c1-68aa-443a-8c69-c50dcd34998f","savedPayload":{"position":{"x":26963.73806497301,"y":19440.673427020636},"targetPosition":{"x":26909.88187766165,"y":19694.046867427376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7757e0dd-c3b4-48b4-bdf7-e517ce8df601","savedPayload":{"position":{"x":26909.88187766165,"y":19694.046867427376},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA6","code":"{\n \"codeName\": \"sma6\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma6","id":"8a633674-750f-492d-8bfc-ac6f2e79793a","savedPayload":{"position":{"x":27160.538366109984,"y":19528.294566364173},"targetPosition":{"x":27008.282028230136,"y":19737.857437099145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"12d5b8f1-c83c-43a3-bf45-6f85e85a6df9","savedPayload":{"position":{"x":27008.282028230136,"y":19737.857437099145},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA12","code":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma12","id":"11e2a0cd-851a-425e-b2bd-f3cff1b00c77","savedPayload":{"position":{"x":27304.68565919729,"y":19688.386354045688},"targetPosition":{"x":27080.35567477379,"y":19817.903330939902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6c1f3e32-9310-4ece-a796-cf9225172978","savedPayload":{"position":{"x":27080.35567477379,"y":19817.903330939902},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA18","code":"{\n \"codeName\": \"sma18\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma18","id":"0cbf493f-fa5f-41a8-a928-754ec9720fe0","savedPayload":{"position":{"x":27371.255567723092,"y":19893.267465586818},"targetPosition":{"x":27113.64062903669,"y":19920.343886710467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"12bf3180-d354-451d-ba14-81cdd9d95c19","savedPayload":{"position":{"x":27113.64062903669,"y":19920.343886710467},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA24","code":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma24","id":"4d677df1-74ec-417e-a518-2b8946c84542","savedPayload":{"position":{"x":27348.73754973465,"y":20107.51209551563},"targetPosition":{"x":27102.38162004247,"y":20027.466201674873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3e3a6434-aaa4-4170-8cdc-cca21c8d0863","savedPayload":{"position":{"x":27102.38162004247,"y":20027.466201674873},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA30","code":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma30","id":"3a92b258-6c21-4747-ba08-16cf9ba814ec","savedPayload":{"position":{"x":27241.02517511193,"y":20294.07540096608},"targetPosition":{"x":27048.52543273111,"y":20120.7478544001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"22bc84a6-f431-464c-a7e0-b9249b32abdf","savedPayload":{"position":{"x":27048.52543273111,"y":20120.7478544001},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA60","code":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma60","id":"d9a44db6-45eb-47f8-975b-ee8dccd0659d","savedPayload":{"position":{"x":27066.742891963404,"y":20420.698891551358},"targetPosition":{"x":26961.384291156846,"y":20184.059599692737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c3d4d569-0b7e-44b9-b2f0-84d9a91ee6b0","savedPayload":{"position":{"x":26961.384291156846,"y":20184.059599692737},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA120","code":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma120","id":"90fee0af-0e23-44de-aa16-d446857485f4","savedPayload":{"position":{"x":26856.02569035029,"y":20465.488215410965},"targetPosition":{"x":26856.02569035029,"y":20206.45426162254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4f572d61-ff96-4ccb-90ca-7a26d5cc8322","savedPayload":{"position":{"x":26856.02569035029,"y":20206.45426162254},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA180","code":"{\n \"codeName\": \"sma180\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma180","id":"031e5277-e225-4307-a247-f49dae98ac26","savedPayload":{"position":{"x":26645.308488737173,"y":20420.698891551358},"targetPosition":{"x":26750.66708954373,"y":20184.059599692737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9e3eb2e1-3cb4-4f0b-9a5a-5196bb4af3af","savedPayload":{"position":{"x":26750.66708954373,"y":20184.059599692737},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA240","code":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma240","id":"cb9604b0-3004-48d5-84fe-680747edb943","savedPayload":{"position":{"x":26471.02620558865,"y":20294.07540096608},"targetPosition":{"x":26663.52594796947,"y":20120.7478544001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"83c2137c-676d-4a43-88c1-e9a5f69cafeb","savedPayload":{"position":{"x":26663.52594796947,"y":20120.7478544001},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA300","code":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma300","id":"8c3259f1-e88b-40a2-9af2-a0e554affbd2","savedPayload":{"position":{"x":26363.313830965926,"y":20107.51209551563},"targetPosition":{"x":26609.669760658107,"y":20027.466201674873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"829bfd3a-8c69-4e51-8951-a1d7cb0b8c6f","savedPayload":{"position":{"x":26609.669760658107,"y":20027.466201674873},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA600","code":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma600","id":"501b1e82-840a-4288-801d-38a5e5c7f7cb","savedPayload":{"position":{"x":26340.795812977485,"y":19893.267465586818},"targetPosition":{"x":26598.410751663887,"y":19920.343886710467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f7174f99-231c-4188-8f4a-95a34c0c35f8","savedPayload":{"position":{"x":26598.410751663887,"y":19920.343886710467},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA1200","code":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1200","id":"0554601a-009b-47a2-8e0c-c7d6f3901a9e","savedPayload":{"position":{"x":26407.365721503287,"y":19688.386354045688},"targetPosition":{"x":26631.695705926788,"y":19817.903330939902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f6f0c544-4054-4cb4-9be1-14ffa23c5251","savedPayload":{"position":{"x":26631.695705926788,"y":19817.903330939902},"targetPosition":{"x":26856.02569035029,"y":19947.420307834116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"a84f4438-cabc-4c9a-bd9c-0338e55a6e15","savedPayload":{"position":{"x":26856.02569035029,"y":19947.420307834116},"targetPosition":{"x":26247.0003388309,"y":19109.16882489423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma6 = calculateSMA(6)\nvariable.sma12 = calculateSMA(12)\nvariable.sma18 = calculateSMA(18)\nvariable.sma24 = calculateSMA(24)\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma180 = calculateSMA(180)\nvariable.sma240 = calculateSMA(240)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"f2c97b70-717a-4f98-be7c-d76dd94b8227","savedPayload":{"position":{"x":26419.689641356515,"y":19753.654075843464},"targetPosition":{"x":26333.34499009371,"y":19604.100752894465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"96841e7b-90d9-4508-8933-4f0f9769800e","savedPayload":{"position":{"x":26333.34499009371,"y":19604.100752894465},"targetPosition":{"x":26247.0003388309,"y":19454.547429945465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"14dcff53-0599-4529-8a5d-5cf92a5c33c8","savedPayload":{"position":{"x":26074.311036305287,"y":19753.654075843464},"targetPosition":{"x":26160.655687568094,"y":19604.100752894465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2863a8f-8f38-4c47-9f48-0bd45b628fa0","savedPayload":{"position":{"x":26160.655687568094,"y":19604.100752894465},"targetPosition":{"x":26247.0003388309,"y":19454.547429945465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"948be5d9-da96-488a-bb15-f8cd94777231","savedPayload":{"position":{"x":26247.0003388309,"y":19454.547429945465},"targetPosition":{"x":26247.0003388309,"y":19109.16882489423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4ae22e54-cd02-4e2e-b638-1c5ea9a171ac","savedPayload":{"position":{"x":26247.0003388309,"y":19109.16882489423},"targetPosition":{"x":25688.16601687098,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base12 SMAs","code":"{\n \"codeName\": \"Base12-SMAs\",\n \"singularVariableName\": \"base12SMA\",\n \"pluralVariableName\": \"base12SMAs\"\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\": \"Sparta/SMA/@Exchange/Output/Base12-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6","savedPayload":{"position":{"x":26439.56152293514,"y":19261.986245841228},"targetPosition":{"x":26094.182917883903,"y":19261.986245841228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/SMA/@Exchange/Output/Base12-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/SMA/@Exchange/Output/Base12-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"92d92b3e-6870-499b-bfec-33bab220bf62","savedPayload":{"position":{"x":26373.600078863867,"y":19464.99469634769},"targetPosition":{"x":26094.182917883903,"y":19261.986245841228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"d44292f3-8960-448b-8339-32147b8bb1c3","savedPayload":{"position":{"x":26483.908440396295,"y":19734.030695017056},"targetPosition":{"x":26449.137466821616,"y":19990.720329813503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bcec1860-262e-4125-bdf4-a8f798d9d4ff","savedPayload":{"position":{"x":26449.137466821616,"y":19990.720329813503},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"91264df6-db08-498e-a039-fec9b0cd09a5","savedPayload":{"position":{"x":26699.768539718232,"y":19815.04434533495},"targetPosition":{"x":26557.067516482584,"y":20031.22715497245},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0ef8d741-e876-446e-86ac-146b4f33d8e8","savedPayload":{"position":{"x":26557.067516482584,"y":20031.22715497245},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA12","code":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma12","id":"c694dcde-b622-4d71-b2cf-e42e1b4934ec","savedPayload":{"position":{"x":26859.101263510125,"y":19981.693309166592},"targetPosition":{"x":26636.73387837853,"y":20114.55163688827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"daf8aa00-f032-412e-b319-e7c581611db0","savedPayload":{"position":{"x":26636.73387837853,"y":20114.55163688827},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA24","code":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma24","id":"445b00ba-46a1-4e79-b762-72c521223b5f","savedPayload":{"position":{"x":26930.34881173738,"y":20200.970715409712},"targetPosition":{"x":26672.35765249216,"y":20224.19034000983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"255fdffa-cdbb-428b-a54e-14448f7cda29","savedPayload":{"position":{"x":26672.35765249216,"y":20224.19034000983},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA36","code":"{\n \"codeName\": \"sma36\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma36","id":"c9c11106-98b6-4fcb-b30b-d49263a05d95","savedPayload":{"position":{"x":26899.39973367975,"y":20429.445984496953},"targetPosition":{"x":26656.883113463344,"y":20338.42797455345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"628c3c4f-7ef7-4008-bada-76e4edf6de42","savedPayload":{"position":{"x":26656.883113463344,"y":20338.42797455345},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA48","code":"{\n \"codeName\": \"sma48\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma48","id":"8e1cfb60-cb51-4625-a36b-75d64381840d","savedPayload":{"position":{"x":26772.38387381208,"y":20621.8667873203},"targetPosition":{"x":26593.375183529508,"y":20434.638375965125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1aa9fd38-51e5-4158-9bb2-31dbc8f933d0","savedPayload":{"position":{"x":26593.375183529508,"y":20434.638375965125},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA60","code":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma60","id":"6fe04671-6298-4ef4-9ef8-779eafc1645d","savedPayload":{"position":{"x":26574.45828092845,"y":20740.121823994312},"targetPosition":{"x":26494.412387087694,"y":20493.76589430213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d76d7819-b542-4ee8-98fd-539ec3325e2c","savedPayload":{"position":{"x":26494.412387087694,"y":20493.76589430213},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA120","code":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma120","id":"f8abde07-3312-4983-bff2-65ed4f475a3f","savedPayload":{"position":{"x":26344.824546097578,"y":20760.789234202843},"targetPosition":{"x":26379.595519672257,"y":20504.099599406396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0e696147-e020-4056-8ad4-40ad79cba391","savedPayload":{"position":{"x":26379.595519672257,"y":20504.099599406396},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA240","code":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma240","id":"1ea2c145-6dcf-4e8a-908a-b12e08a8d658","savedPayload":{"position":{"x":26128.96444677564,"y":20679.775583884948},"targetPosition":{"x":26271.66547001129,"y":20463.59277424745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e02938c9-f5b1-49f7-8e63-f8637f6d1d4d","savedPayload":{"position":{"x":26271.66547001129,"y":20463.59277424745},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA360","code":"{\n \"codeName\": \"sma360\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma360","id":"16ab9e8b-cb14-4a59-b7b3-0a1d13dbea5b","savedPayload":{"position":{"x":25969.631722983748,"y":20513.126620053306},"targetPosition":{"x":26191.999108115342,"y":20380.268292331628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fe671bcf-1d71-4081-a100-f4bbc59203c7","savedPayload":{"position":{"x":26191.999108115342,"y":20380.268292331628},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA480","code":"{\n \"codeName\": \"sma480\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma480","id":"135a34fc-3cc8-4555-b1b9-c8ea03150aff","savedPayload":{"position":{"x":25898.38417475649,"y":20293.849213810186},"targetPosition":{"x":26156.375334001714,"y":20270.629589210068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"85a59bf2-d419-43c9-a287-68902b8cb199","savedPayload":{"position":{"x":26156.375334001714,"y":20270.629589210068},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA600","code":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma600","id":"cacf8e3b-77d3-4697-9ca5-51cff50afb6c","savedPayload":{"position":{"x":25929.33325281412,"y":20065.373944722945},"targetPosition":{"x":26171.84987303053,"y":20156.391954666447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"608a2a98-bd6e-49e0-b202-afff3553337d","savedPayload":{"position":{"x":26171.84987303053,"y":20156.391954666447},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA1200","code":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1200","id":"2e1c84ea-2cb3-4936-8106-623dcdff8782","savedPayload":{"position":{"x":26056.349112681793,"y":19872.953141899598},"targetPosition":{"x":26235.357802964365,"y":20060.181553254773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"dda31bad-8835-446a-9015-4e15ae4cb845","savedPayload":{"position":{"x":26235.357802964365,"y":20060.181553254773},"targetPosition":{"x":26414.366493246936,"y":20247.40996460995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"f46175dc-dfd2-4e1e-a60c-554867b5f0a5","savedPayload":{"position":{"x":26414.366493246936,"y":20247.40996460995},"targetPosition":{"x":26094.182917883903,"y":19261.986245841228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma12 = calculateSMA(12)\nvariable.sma24 = calculateSMA(24)\nvariable.sma36 = calculateSMA(36)\nvariable.sma48 = calculateSMA(48)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma240 = calculateSMA(240)\nvariable.sma360 = calculateSMA(360)\nvariable.sma480 = calculateSMA(480)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"fba7176b-58ff-4bd6-95de-ad6f88de4cda","savedPayload":{"position":{"x":26059.263309178037,"y":19928.292072639786},"targetPosition":{"x":26023.359184303798,"y":19759.37644570196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"daf2fb19-bfda-4248-a0c6-8e364fe863ee","savedPayload":{"position":{"x":26023.359184303798,"y":19759.37644570196},"targetPosition":{"x":25987.455059429558,"y":19590.460818764135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"4d3f1fee-e71d-46cd-a50b-69176de5e1e8","savedPayload":{"position":{"x":25730.788736255134,"y":19821.564214185448},"targetPosition":{"x":25859.121897842346,"y":19706.01251647479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"08365c70-c9ba-481d-abb8-62dc21067754","savedPayload":{"position":{"x":25859.121897842346,"y":19706.01251647479},"targetPosition":{"x":25987.455059429558,"y":19590.460818764135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4aa28d66-d2c5-40d1-9b42-b6adb1e94d1c","savedPayload":{"position":{"x":25987.455059429558,"y":19590.460818764135},"targetPosition":{"x":26094.182917883903,"y":19261.986245841228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"723d28e9-a010-48c5-bda0-43a4c2343ddf","savedPayload":{"position":{"x":26094.182917883903,"y":19261.986245841228},"targetPosition":{"x":25688.16601687098,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base30 SMAs","code":"{\n \"codeName\": \"Base30-SMAs\",\n \"singularVariableName\": \"base30SMA\",\n \"pluralVariableName\": \"base30SMAs\"\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\": \"Sparta/SMA/@Exchange/Output/Base30-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"4c486321-22e0-4991-9a1c-571bada649ad","savedPayload":{"position":{"x":26230.096306702573,"y":19466.828928181465},"targetPosition":{"x":25901.621733779666,"y":19360.10106972712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/SMA/@Exchange/Output/Base30-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/SMA/@Exchange/Output/Base30-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"819688c9-c7bd-444b-9658-2a4379125c72","savedPayload":{"position":{"x":26104.63018428613,"y":19639.518230707083},"targetPosition":{"x":25901.621733779666,"y":19360.10106972712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"16806650-2bfb-4709-acbd-aca1549c16e8","savedPayload":{"position":{"x":26142.379895122856,"y":19937.510534419347},"targetPosition":{"x":26022.00081445126,"y":20166.873709650084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"265d3765-cd1d-4652-a0ed-01931674a151","savedPayload":{"position":{"x":26022.00081445126,"y":20166.873709650084},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"d0b81562-348b-433f-8524-f9bc909de69e","savedPayload":{"position":{"x":26327.9832631527,"y":20101.940770173638},"targetPosition":{"x":26114.802498466182,"y":20249.08882752723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fe6074be-18c6-46c0-abd4-5d31bc067798","savedPayload":{"position":{"x":26114.802498466182,"y":20249.08882752723},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA30","code":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma30","id":"2ef589ba-7f7d-4df5-91fd-9107d67a7792","savedPayload":{"position":{"x":26415.91234301662,"y":20333.790699154688},"targetPosition":{"x":26158.767038398142,"y":20365.013792017755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"72debf77-1c4b-4e8d-9a99-96951bd6d24c","savedPayload":{"position":{"x":26158.767038398142,"y":20365.013792017755},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA60","code":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma60","id":"d51798bf-2373-4f5e-b6e4-56aad8117820","savedPayload":{"position":{"x":26386.02364217807,"y":20579.946296727478},"targetPosition":{"x":26143.822687978867,"y":20488.09159080415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"78e59381-fcda-4204-a70a-4113eebdbba7","savedPayload":{"position":{"x":26143.822687978867,"y":20488.09159080415},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA90","code":"{\n \"codeName\": \"sma90\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma90","id":"a35a40dd-e5b4-4444-a8da-14eeb79e76b3","savedPayload":{"position":{"x":26245.164301801273,"y":20784.016281984605},"targetPosition":{"x":26073.39301779047,"y":20590.126583432713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"90b3598c-8f08-4dc1-ad41-a64caf0cab39","savedPayload":{"position":{"x":26073.39301779047,"y":20590.126583432713},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA120","code":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma120","id":"046bdfe3-d838-425e-8cc0-e117151bdbf8","savedPayload":{"position":{"x":26025.603499227484,"y":20899.250680613604},"targetPosition":{"x":25963.612616503575,"y":20647.743782747213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"aa9f7095-66e7-4e42-b6b2-d3a51e3b35d9","savedPayload":{"position":{"x":25963.612616503575,"y":20647.743782747213},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA150","code":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma150","id":"8129644d-2b0a-4936-8255-22dc2aada9e7","savedPayload":{"position":{"x":25777.63996833185,"y":20899.250680613604},"targetPosition":{"x":25839.630851055757,"y":20647.743782747213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b0c06b10-549c-4280-aac9-0b649ede898c","savedPayload":{"position":{"x":25839.630851055757,"y":20647.743782747213},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA300","code":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma300","id":"23ddb87c-8211-4032-8273-222af79863b5","savedPayload":{"position":{"x":25558.07916575806,"y":20784.016281984605},"targetPosition":{"x":25729.850449768863,"y":20590.126583432713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"38b8e859-eda7-4cd9-afc2-ee0e3ed297b7","savedPayload":{"position":{"x":25729.850449768863,"y":20590.126583432713},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA600","code":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma600","id":"8f07691b-ccdc-47cc-9c07-3701b61322f9","savedPayload":{"position":{"x":25417.219825381264,"y":20579.94629672747},"targetPosition":{"x":25659.420779580465,"y":20488.091590804146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cebd7a57-eebb-4e4f-9315-6f1411970e55","savedPayload":{"position":{"x":25659.420779580465,"y":20488.091590804146},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA900","code":"{\n \"codeName\": \"sma900\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma900","id":"ed66265d-f971-448f-b395-e0c12c178173","savedPayload":{"position":{"x":25387.331124542714,"y":20333.790699154688},"targetPosition":{"x":25644.47642916119,"y":20365.013792017755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fcbefbb9-2a6d-459a-8d3b-595d71caaa88","savedPayload":{"position":{"x":25644.47642916119,"y":20365.013792017755},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA1200","code":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1200","id":"3e936d3b-8f40-49da-830c-f73ea5bf271a","savedPayload":{"position":{"x":25475.260204406633,"y":20101.940770173638},"targetPosition":{"x":25688.44096909315,"y":20249.08882752723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"311d2e2d-163e-4b8e-ae99-2b2d0fbbb2aa","savedPayload":{"position":{"x":25688.44096909315,"y":20249.08882752723},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA1500","code":"{\n \"codeName\": \"sma1500\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1500","id":"d4db0dc9-12a2-41c6-8511-43cbfdcfb136","savedPayload":{"position":{"x":25660.863572436476,"y":19937.510534419347},"targetPosition":{"x":25781.24265310807,"y":20166.873709650084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b71b603d-38de-401d-b1df-ca20710dba64","savedPayload":{"position":{"x":25781.24265310807,"y":20166.873709650084},"targetPosition":{"x":25901.621733779666,"y":20396.236884880822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"229b4129-39f9-4f46-bbb5-a86a714023f8","savedPayload":{"position":{"x":25901.621733779666,"y":20396.236884880822},"targetPosition":{"x":25901.621733779666,"y":19360.10106972712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1500.push(candle.close) // Add the current close value to the last 1500 array.\n\nif (variable.last1500.length > 1500) {\n variable.last1500.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1500 elements.\n}\n\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma90 = calculateSMA(90)\nvariable.sma120 = calculateSMA(120)\nvariable.sma150 = calculateSMA(150)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma900 = calculateSMA(900)\nvariable.sma1200 = calculateSMA(1200)\nvariable.sma1500 = calculateSMA(1500)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1500.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1500.length - periods; i < variable.last1500.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1500[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1500.length=\" + variable.last1500.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1500[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"382c5abf-a91a-40c0-88c2-7e230e93ed44","savedPayload":{"position":{"x":25662.51138844167,"y":19983.004815622287},"targetPosition":{"x":25680.562335857438,"y":19811.261523164685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d3dab655-2db2-4d4c-a776-91a6ae116304","savedPayload":{"position":{"x":25680.562335857438,"y":19811.261523164685},"targetPosition":{"x":25698.613283273204,"y":19639.518230707083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1500 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1500 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"41af43f4-4f30-404d-8d9e-3ad5e752688c","savedPayload":{"position":{"x":25383.094227461712,"y":19779.99636511582},"targetPosition":{"x":25540.853755367458,"y":19709.757297911452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f8611aff-7f4f-4df8-a2ac-b92ef5633ad4","savedPayload":{"position":{"x":25540.853755367458,"y":19709.757297911452},"targetPosition":{"x":25698.613283273204,"y":19639.518230707083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"e8bebfde-97db-42d7-93a2-972366bc002c","savedPayload":{"position":{"x":25698.613283273204,"y":19639.518230707083},"targetPosition":{"x":25901.621733779666,"y":19360.10106972712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"607ebabd-9602-4e5c-803d-d4207dbd6794","savedPayload":{"position":{"x":25901.621733779666,"y":19360.10106972712},"targetPosition":{"x":25688.16601687098,"y":18703.151923881305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"c1c6f0e0-49f7-4723-bf22-dd24dfee6102","savedPayload":{"position":{"x":25688.16601687098,"y":18703.151923881305},"targetPosition":{"x":24997.408806793872,"y":18703.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Indicator Bot","name":"EMA","code":"{\n\"codeName\": \"EMA\",\n\"repo\": \"EMA-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates EMAs based on SMAs\",\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":"New Output Dataset","id":"4e72640b-d384-434c-a607-47b1c8e4c9ef","savedPayload":{"position":{"x":26115.60235736025,"y":18708.25960626623},"targetPosition":{"x":26115.60235736025,"y":18533.657666825966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"e554af82-9965-4a5d-a59a-3dc873526ad9","savedPayload":{"position":{"x":25968.42001544441,"y":18618.633431551036},"targetPosition":{"x":26115.60235736025,"y":18533.657666825966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"fcefc8e1-6900-485f-a5b0-80366450aedf","savedPayload":{"position":{"x":25968.000658826735,"y":18448.439786444793},"targetPosition":{"x":26115.60235736025,"y":18533.657666825966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}}],"id":"268cf8f3-e871-4fed-bbdb-725a070e7cb6","savedPayload":{"position":{"x":26115.60235736025,"y":18533.657666825966},"targetPosition":{"x":26097.58769431101,"y":18877.397914851892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"6c163397-f3a4-4acc-b281-567f2809b8a0","savedPayload":{"position":{"x":26472.530254019453,"y":18475.350432929434},"targetPosition":{"x":26472.530254019453,"y":18300.0370037139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8e7c0f51-727f-4a28-b516-087443ee369f"}}},{"type":"Status Dependency","name":"Ending: Olivia","code":"{ \n\"mainUtility\": \"Market Ending Point.\"\n}","id":"eb2d5251-f873-4785-80c8-3a75186e6fa9","savedPayload":{"position":{"x":26324.10445928017,"y":18385.73067626131},"targetPosition":{"x":26472.530254019453,"y":18300.0370037139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Olivia: Candles","id":"7715ed1a-35f7-4b1c-ad79-fcd2486fe2ca","savedPayload":{"position":{"x":26317.375926491175,"y":18210.458610949514},"targetPosition":{"x":26472.530254019453,"y":18300.0370037139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"39426478-777d-4ef5-a72a-2ad862c979c7","savedPayload":{"position":{"x":26472.530254019453,"y":18300.0370037139},"targetPosition":{"x":26097.58769431101,"y":18877.397914851892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"8e7c0f51-727f-4a28-b516-087443ee369f","savedPayload":{"position":{"x":26404.282812929247,"y":18721.128946680186},"targetPosition":{"x":26097.58769431101,"y":18877.397914851892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Olivia","id":"19e3e53c-0752-4cae-93bd-162e0839b32f","savedPayload":{"position":{"x":25771.521239306196,"y":18771.452501339987},"targetPosition":{"x":26097.58769431101,"y":18877.397914851892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"f865a93d-38fd-433f-92e6-ccb7f2d33b05","savedPayload":{"position":{"x":26386.268149880005,"y":19064.869194706116},"targetPosition":{"x":26097.58769431101,"y":18877.397914851892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"278c34a7-199d-400e-8a06-087149e3d391","savedPayload":{"position":{"x":26097.58769431101,"y":18877.397914851892},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates EMAs based on SMAs.\",\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":"New Output Dataset","id":"24f5e41a-5839-4174-8e74-2fcde5c2f6a4","savedPayload":{"position":{"x":26287.500313919612,"y":18930.148088498147},"targetPosition":{"x":26287.500313919612,"y":18760.893051968393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"cf348b8d-e3cb-4841-b064-6bf2a8b54062","savedPayload":{"position":{"x":26137.924363503975,"y":18847.250767205154},"targetPosition":{"x":26287.500313919612,"y":18760.893051968393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"49d8444c-a216-4d81-8039-fa15683ed461","savedPayload":{"position":{"x":26138.55565548226,"y":18674.89981332523},"targetPosition":{"x":26287.500313919612,"y":18760.893051968393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}}],"id":"3864c37f-f9dc-433d-96e4-e36a6720adf1","savedPayload":{"position":{"x":26287.500313919612,"y":18760.893051968393},"targetPosition":{"x":26164.1457729471,"y":19082.24261773621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"2b523347-3f95-43ab-9ac8-72470000c774","savedPayload":{"position":{"x":26699.151671023646,"y":18991.14420622951},"targetPosition":{"x":26699.151671023646,"y":18649.003383808667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"fb2c8ec5-75ff-41e9-8782-60a952bd06e8"}}},{"type":"Status Dependency","name":"Starting: Charly","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"5c6a74d3-7f45-409c-a408-fe3c67c050e9","savedPayload":{"position":{"x":26455.289451831384,"y":18892.86560300093},"targetPosition":{"x":26699.151671023646,"y":18649.003383808667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Ending: Olivia","code":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","id":"dbfe665f-e805-40f4-a494-231cc265acc8","savedPayload":{"position":{"x":26353.24800642134,"y":18649.003383808667},"targetPosition":{"x":26699.151671023646,"y":18649.003383808667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"70d56a4f-6375-456e-b797-d590ab2109a3","savedPayload":{"position":{"x":26455.35192370124,"y":18405.20363648626},"targetPosition":{"x":26699.151671023646,"y":18649.003383808667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"b5b3313a-d8e6-4b64-9300-fdc6693a2cb7","savedPayload":{"position":{"x":26699.151671023646,"y":18649.003383808667},"targetPosition":{"x":26164.1457729471,"y":19082.24261773621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"fb2c8ec5-75ff-41e9-8782-60a952bd06e8","savedPayload":{"position":{"x":26504.119930883386,"y":19028.396001006666},"targetPosition":{"x":26164.1457729471,"y":19082.24261773621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Olivia","id":"41fe3adc-42c9-4f5d-b757-13cedd7e0155","savedPayload":{"position":{"x":25836.27150021464,"y":18975.709808637395},"targetPosition":{"x":26164.1457729471,"y":19082.24261773621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"e232777d-86ee-4bb4-9a6d-659f06493aa5","savedPayload":{"position":{"x":26380.76538991087,"y":19349.745566774483},"targetPosition":{"x":26164.1457729471,"y":19082.24261773621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2","savedPayload":{"position":{"x":26164.1457729471,"y":19082.24261773621},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Popular EMAs","code":"{\n \"codeName\": \"Popular-EMAs\",\n \"singularVariableName\": \"popularEMA\",\n \"pluralVariableName\": \"popularEMAs\"\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\": \"Sparta/EMA/@Exchange/Output/Popular-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c","savedPayload":{"position":{"x":26407.540397166395,"y":19054.234460435095},"targetPosition":{"x":26164.1457729471,"y":19297.62908465439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/EMA/@Exchange/Output/Popular-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/EMA/@Exchange/Output/Popular-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21","savedPayload":{"position":{"x":26504.119930883386,"y":19243.782467924844},"targetPosition":{"x":26164.1457729471,"y":19297.62908465439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"a88a6b8e-0c81-45f5-b69f-33ead2c9af2a","savedPayload":{"position":{"x":26980.663209268478,"y":19260.611978283927},"targetPosition":{"x":27032.447169035146,"y":19513.523983726715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"60b742b7-4a6b-4c3a-a924-7ae2c7c284d8","savedPayload":{"position":{"x":27032.447169035146,"y":19513.523983726715},"targetPosition":{"x":27084.231128801814,"y":19766.435989169502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"f12e6638-8bbd-4bff-b969-232c1861b45c","savedPayload":{"position":{"x":27415.126723471647,"y":19370.087216782184},"targetPosition":{"x":27249.67892613673,"y":19568.261602975843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"87688525-3fc6-4a15-806d-fd8d0f3fd876","savedPayload":{"position":{"x":27249.67892613673,"y":19568.261602975843},"targetPosition":{"x":27084.231128801814,"y":19766.435989169502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA20","code":"{\n \"codeName\": \"ema20\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema20","id":"71d926a1-6f74-452c-a8af-2df52ccfceb2","savedPayload":{"position":{"x":27600.419105848396,"y":19778.021164929636},"targetPosition":{"x":27342.325117325105,"y":19772.22857704957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5058b626-2b62-47c3-a915-12d6d451487c","savedPayload":{"position":{"x":27342.325117325105,"y":19772.22857704957},"targetPosition":{"x":27084.231128801814,"y":19766.435989169502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA50","code":"{\n \"codeName\": \"ema50\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema50","id":"7d744a34-29cc-46fa-89c9-a3258bbf79f6","savedPayload":{"position":{"x":27397.011413193246,"y":20177.231239435187},"targetPosition":{"x":27240.62127099753,"y":19971.833614302344},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1293683f-1686-47f2-8856-ce40dc753450","savedPayload":{"position":{"x":27240.62127099753,"y":19971.833614302344},"targetPosition":{"x":27084.231128801814,"y":19766.435989169502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA100","code":"{\n \"codeName\": \"ema100\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema100","id":"c0465aae-99b4-488f-801b-f0c96c30a695","savedPayload":{"position":{"x":26958.073786836303,"y":20267.10411179469},"targetPosition":{"x":27021.15245781906,"y":20016.770050482097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2b72da7-da22-46bb-8f7b-1f2b4fdc0324","savedPayload":{"position":{"x":27021.15245781906,"y":20016.770050482097},"targetPosition":{"x":27084.231128801814,"y":19766.435989169502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA200","code":"{\n \"codeName\": \"ema200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema200","id":"4ef9d626-2bf5-4a0b-bb72-6528f0ece6eb","savedPayload":{"position":{"x":26614.135212120174,"y":19979.96367604894},"targetPosition":{"x":26849.183170460994,"y":19873.19983260922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9e3b4c1a-8cff-4999-b8af-d8403ee3f614","savedPayload":{"position":{"x":26849.183170460994,"y":19873.19983260922},"targetPosition":{"x":27084.231128801814,"y":19766.435989169502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"3a6ab821-f693-4929-a0d7-ad0499d23e68","savedPayload":{"position":{"x":27084.231128801814,"y":19766.435989169502},"targetPosition":{"x":26164.1457729471,"y":19297.62908465439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},"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 \n\nvariable.ema20 = calculateEMA(20, candle.close, variable.previousEMA20)\nvariable.previousEMA20 = variable.ema20 \n \nvariable.ema50 = calculateEMA(50, candle.close, variable.previousEMA50)\nvariable.previousEMA50 = variable.ema50 \n\nvariable.ema100 = calculateEMA(100, candle.close, variable.previousEMA100)\nvariable.previousEMA100 = variable.ema100 \n\nvariable.ema200 = calculateEMA(200, candle.close, variable.previousEMA200)\nvariable.previousEMA200 = variable.ema200 \n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"25aad3fa-6c8f-46b0-8852-07a95544d6bd","savedPayload":{"position":{"x":26609.095196687802,"y":19791.79548312685},"targetPosition":{"x":26464.754968903304,"y":19698.05984319974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d4805ae2-446b-4e54-89c6-0b2e9df3fade","savedPayload":{"position":{"x":26464.754968903304,"y":19698.05984319974},"targetPosition":{"x":26320.414741118806,"y":19604.324203272627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA20 = 0\nvariable.previousEMA50 = 0\nvariable.previousEMA100 = 0\nvariable.previousEMA200 = 0","id":"c5b50764-185a-43a8-b399-62dd6d81a249","savedPayload":{"position":{"x":26302.400078069568,"y":19948.064451298553},"targetPosition":{"x":26311.407409594187,"y":19776.19432728559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6dd7dc20-5c47-4226-8abc-8551b6bd698f","savedPayload":{"position":{"x":26311.407409594187,"y":19776.19432728559},"targetPosition":{"x":26320.414741118806,"y":19604.324203272627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4c2e867a-f31c-4356-be35-138cdc902c15","savedPayload":{"position":{"x":26320.414741118806,"y":19604.324203272627},"targetPosition":{"x":26164.1457729471,"y":19297.62908465439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"d5894707-b065-429b-ba6b-78c71e6529fe","savedPayload":{"position":{"x":26164.1457729471,"y":19297.62908465439},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"EMA Popular","id":"79bf7438-f77a-4c8d-a450-67027d5fd8bc"}}},{"type":"Product Definition","name":"Base5 EMAs","code":"{\n \"codeName\": \"Base5-EMAs\",\n \"singularVariableName\": \"base5EMA\",\n \"pluralVariableName\": \"base5EMAs\"\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\": \"Sparta/EMA/@Exchange/Output/Base5-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"85e3f0ce-5331-4c0b-900a-e73aaf53d96e","savedPayload":{"position":{"x":26404.282812929247,"y":19346.204819367},"targetPosition":{"x":26097.58769431101,"y":19502.473787538707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/EMA/@Exchange/Output/Base5-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/EMA/@Exchange/Output/Base5-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"e04edb48-09ab-4f92-beb7-14ba647de7d6","savedPayload":{"position":{"x":26437.561852247294,"y":19556.320404268252},"targetPosition":{"x":26097.58769431101,"y":19502.473787538707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"6d1e00cd-ea21-4c5d-9f21-bbe4e18eaaa1","savedPayload":{"position":{"x":26642.739755510123,"y":19750.633311544865},"targetPosition":{"x":26735.25566123951,"y":19991.64548587073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7804f5d6-913b-48d3-941a-10135819f0d7","savedPayload":{"position":{"x":26735.25566123951,"y":19991.64548587073},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"615487b1-0964-4bfc-800e-f8d3471dfeb0","savedPayload":{"position":{"x":26854.79356154276,"y":19717.0472881577},"targetPosition":{"x":26841.282564255827,"y":19974.852474177147},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5aaf85b9-35bd-47f1-a2a4-dcfa881bc542","savedPayload":{"position":{"x":26841.282564255827,"y":19974.852474177147},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA5","code":"{\n \"codeName\": \"ema5\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema5","id":"1abd53a1-2924-4db2-b50c-06e36aa91e47","savedPayload":{"position":{"x":27062.17501922645,"y":19772.61498226924},"targetPosition":{"x":26944.973293097675,"y":20002.636321232916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4912e0cb-1bba-4750-a063-d8d205091281","savedPayload":{"position":{"x":26944.973293097675,"y":20002.636321232916},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA10","code":"{\n \"codeName\": \"ema10\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema10","id":"00ca97c2-f4e9-4d08-af83-3fee7e5d1887","savedPayload":{"position":{"x":27229.025990526305,"y":19907.72823475094},"targetPosition":{"x":27028.3987787476,"y":20070.192947473766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f7e888a6-a986-45fe-804d-c4cba934bd9b","savedPayload":{"position":{"x":27028.3987787476,"y":20070.192947473766},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA15","code":"{\n \"codeName\": \"ema15\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema15","id":"f259ce57-d1c2-4196-8e55-dae9f1eb78f5","savedPayload":{"position":{"x":27326.49642671108,"y":20099.02473678335},"targetPosition":{"x":27077.133996839988,"y":20165.841198489972},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9720b3bd-fcb9-4997-9fe8-9d8682aa9dc9","savedPayload":{"position":{"x":27077.133996839988,"y":20165.841198489972},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA20","code":"{\n \"codeName\": \"ema20\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema20","id":"5c7d8482-a86c-4ebc-8524-31b1a73900c3","savedPayload":{"position":{"x":27337.73280387332,"y":20313.427585290912},"targetPosition":{"x":27082.752185421108,"y":20273.042622743753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"716e98b8-640e-4653-9c50-ca0286c851c0","savedPayload":{"position":{"x":27082.752185421108,"y":20273.042622743753},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA25","code":"{\n \"codeName\": \"ema25\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema25","id":"031e3d2f-b487-4df2-9892-845d3e43916a","savedPayload":{"position":{"x":27260.792250322393,"y":20513.864579977926},"targetPosition":{"x":27044.281908645644,"y":20373.26112008726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"56be5d1d-2bd8-42dd-9861-729f4bb72ccf","savedPayload":{"position":{"x":27044.281908645644,"y":20373.26112008726},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA50","code":"{\n \"codeName\": \"ema50\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema50","id":"309f068f-74e5-4405-8267-418ea12ca20d","savedPayload":{"position":{"x":27108.978486750228,"y":20665.67834355009},"targetPosition":{"x":26968.37502685956,"y":20449.168001873342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ed5849ae-b0fe-4915-b8c3-8bdb004e5acf","savedPayload":{"position":{"x":26968.37502685956,"y":20449.168001873342},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA100","code":"{\n \"codeName\": \"ema100\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema100","id":"6b164582-e3a2-4ea0-bc0a-e362929d556f","savedPayload":{"position":{"x":26908.541492063214,"y":20742.61889710102},"targetPosition":{"x":26868.156529516054,"y":20487.638278648807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7f690611-834a-4048-bf59-5685995167e9","savedPayload":{"position":{"x":26868.156529516054,"y":20487.638278648807},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA150","code":"{\n \"codeName\": \"ema150\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema150","id":"829731e3-421a-4b49-ac4d-69cc76cdbfab","savedPayload":{"position":{"x":26694.138643555652,"y":20731.38251993878},"targetPosition":{"x":26760.955105262274,"y":20482.020090067686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6b51dbbf-76eb-484b-9535-6043984a7ed6","savedPayload":{"position":{"x":26760.955105262274,"y":20482.020090067686},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA200","code":"{\n \"codeName\": \"ema200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema200","id":"3786f9d4-064e-43ba-8098-d336cd64cfb4","savedPayload":{"position":{"x":26502.84214152324,"y":20633.912083754003},"targetPosition":{"x":26665.306854246068,"y":20433.2848719753},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9f96cb9c-ac78-4d23-80e7-650dcff0a56a","savedPayload":{"position":{"x":26665.306854246068,"y":20433.2848719753},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA250","code":"{\n \"codeName\": \"ema250\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema250","id":"710f1d8e-a59f-41d9-9576-e73e292d5cac","savedPayload":{"position":{"x":26367.72888904154,"y":20467.061112454154},"targetPosition":{"x":26597.750228005218,"y":20349.859386325374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9e3fc138-8765-46af-95a3-6ee316f49a72","savedPayload":{"position":{"x":26597.750228005218,"y":20349.859386325374},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA500","code":"{\n \"codeName\": \"ema500\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema500","id":"8be9f984-f4ad-471c-885d-b0291c74f04f","savedPayload":{"position":{"x":26312.161194930002,"y":20259.679654770458},"targetPosition":{"x":26569.96638094945,"y":20246.168657483526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"05a21cb3-24bc-42cf-8269-62f14e8f3ed1","savedPayload":{"position":{"x":26569.96638094945,"y":20246.168657483526},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1000","code":"{\n \"codeName\": \"ema1000\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1000","id":"1001e9de-822a-4a75-9526-390dc6be8fe7","savedPayload":{"position":{"x":26345.747218317167,"y":20047.62584873782},"targetPosition":{"x":26586.75939264303,"y":20140.141754467208},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cc878593-3f3d-4533-9ed1-a7c7fd0cdd99","savedPayload":{"position":{"x":26586.75939264303,"y":20140.141754467208},"targetPosition":{"x":26827.771566968895,"y":20232.657660196593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"7133bdf5-a6d6-4ca5-bc27-390fe276eca6","savedPayload":{"position":{"x":26827.771566968895,"y":20232.657660196593},"targetPosition":{"x":26097.58769431101,"y":19502.473787538707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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 \n\nvariable.ema5 = calculateEMA(5, candle.close, variable.previousEMA5)\nvariable.previousEMA5 = variable.ema5\n\nvariable.ema10 = calculateEMA(10, candle.close, variable.previousEMA10)\nvariable.previousEMA10 = variable.ema10\n\nvariable.ema15 = calculateEMA(15, candle.close, variable.previousEMA15)\nvariable.previousEMA15 = variable.ema15\n\nvariable.ema20 = calculateEMA(20, candle.close, variable.previousEMA20)\nvariable.previousEMA20 = variable.ema20\n\nvariable.ema25 = calculateEMA(25, candle.close, variable.previousEMA25)\nvariable.previousEMA25 = variable.ema25\n\nvariable.ema50 = calculateEMA(50, candle.close, variable.previousEMA50)\nvariable.previousEMA50 = variable.ema50\n\nvariable.ema100 = calculateEMA(100, candle.close, variable.previousEMA100)\nvariable.previousEMA100 = variable.ema100\n\nvariable.ema150 = calculateEMA(150, candle.close, variable.previousEMA150)\nvariable.previousEMA150 = variable.ema150\n\nvariable.ema200 = calculateEMA(200, candle.close, variable.previousEMA200)\nvariable.previousEMA200 = variable.ema200\n\nvariable.ema250 = calculateEMA(250, candle.close, variable.previousEMA250)\nvariable.previousEMA250 = variable.ema250\n\nvariable.ema500 = calculateEMA(500, candle.close, variable.previousEMA500)\nvariable.previousEMA500 = variable.ema500\n\nvariable.ema1000 = calculateEMA(1000, candle.close, variable.previousEMA1000)\nvariable.previousEMA1000 = variable.ema1000\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n","id":"3ea21697-ef5d-421a-825c-db6f04a041ce","savedPayload":{"position":{"x":26368.053928004323,"y":20109.950894513266},"targetPosition":{"x":26259.74411952244,"y":19976.19941999413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d955ad88-0ca4-443b-8d4e-fa0c322d7797","savedPayload":{"position":{"x":26259.74411952244,"y":19976.19941999413},"targetPosition":{"x":26151.434311040553,"y":19842.447945474993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA5 = 0\nvariable.previousEMA10 = 0\nvariable.previousEMA15 = 0\nvariable.previousEMA20 = 0\nvariable.previousEMA25 = 0\nvariable.previousEMA50 = 0\nvariable.previousEMA100 = 0\nvariable.previousEMA150 = 0\nvariable.previousEMA200 = 0\nvariable.previousEMA250 = 0\nvariable.previousEMA500 = 0\nvariable.previousEMA1000 = 0","id":"b951bfdc-9216-4494-8bcf-66099ea9eb8f","savedPayload":{"position":{"x":26028.07977006804,"y":20163.797511242807},"targetPosition":{"x":26089.757040554297,"y":20003.1227283589},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2aa36b6f-bde7-433d-a7b6-e646b19e2c20","savedPayload":{"position":{"x":26089.757040554297,"y":20003.1227283589},"targetPosition":{"x":26151.434311040553,"y":19842.447945474993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"54d9ab04-cfe7-433e-8c85-36a511b38d6d","savedPayload":{"position":{"x":26151.434311040553,"y":19842.447945474993},"targetPosition":{"x":26097.58769431101,"y":19502.473787538707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"9a37881e-7d9a-4279-95b2-8743de82eec5","savedPayload":{"position":{"x":26097.58769431101,"y":19502.473787538707},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base6 EMAs","code":"{\n \"codeName\": \"Base6-EMAs\",\n \"singularVariableName\": \"base6EMA\",\n \"pluralVariableName\": \"base6EMAs\"\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\": \"Sparta/EMA/@Exchange/Output/Base6-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"6b6840f7-3b76-474a-9d27-9515cbcd6499","savedPayload":{"position":{"x":26310.96086344941,"y":19622.878482904347},"targetPosition":{"x":25970.986705513125,"y":19676.72509963389},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/EMA/@Exchange/Output/Base6-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/EMA/@Exchange/Output/Base6-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"ef3d5a7d-11eb-4ead-8e24-49ac7c80b0c7","savedPayload":{"position":{"x":26277.681824131363,"y":19832.994067805597},"targetPosition":{"x":25970.986705513125,"y":19676.72509963389},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"611ac809-a75a-4550-b9a7-2f5f43cae1e8","savedPayload":{"position":{"x":26412.771615454374,"y":20081.200083449712},"targetPosition":{"x":26426.282612741306,"y":20339.00526946916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"77290003-4665-4c78-bce6-7cb50a44bb31","savedPayload":{"position":{"x":26426.282612741306,"y":20339.00526946916},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"59bd5c2f-dd37-4724-8b40-593ba56967ba","savedPayload":{"position":{"x":26624.82542148701,"y":20114.786106836877},"targetPosition":{"x":26532.309515757624,"y":20355.79828116274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"70c54561-94ce-4d2a-a56e-cf1cd4d2a2f5","savedPayload":{"position":{"x":26532.309515757624,"y":20355.79828116274},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA6","code":"{\n \"codeName\": \"ema6\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema6","id":"330b3cad-7015-4691-98ff-e6c0aaeaa807","savedPayload":{"position":{"x":26804.88554635718,"y":20231.71851915966},"targetPosition":{"x":26622.33957819271,"y":20414.264487324133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a7e48821-628f-4393-9272-055bcc8ea5f7","savedPayload":{"position":{"x":26622.33957819271,"y":20414.264487324133},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA12","code":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema12","id":"7679a1d7-49b9-4798-82d2-f00dbfd7db05","savedPayload":{"position":{"x":26921.817958679967,"y":20411.778644029833},"targetPosition":{"x":26680.805784354103,"y":20504.29454975922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"53cda9a0-2acf-4fa9-b52b-c860da5dbb32","savedPayload":{"position":{"x":26680.805784354103,"y":20504.29454975922},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA18","code":"{\n \"codeName\": \"ema18\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema18","id":"092a466e-c714-41b3-8053-a4c060520f3c","savedPayload":{"position":{"x":26955.40398206713,"y":20623.83245006247},"targetPosition":{"x":26697.598796047685,"y":20610.321452775537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"446296f9-21fa-4a92-bc49-23fb81af896b","savedPayload":{"position":{"x":26697.598796047685,"y":20610.321452775537},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA24","code":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema24","id":"f666cf13-3e37-4649-a2fc-338fabb1f7d0","savedPayload":{"position":{"x":26899.836287955593,"y":20831.213907746165},"targetPosition":{"x":26669.814948991916,"y":20714.012181617385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"518927a0-e986-4c9e-a645-75c02c2f571b","savedPayload":{"position":{"x":26669.814948991916,"y":20714.012181617385},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA30","code":"{\n \"codeName\": \"ema30\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema30","id":"3c76eaaf-56ac-4e91-9ee5-11b32219d2ea","savedPayload":{"position":{"x":26764.723035473893,"y":20998.064879046015},"targetPosition":{"x":26602.258322751066,"y":20797.43766726731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3b056114-3148-432d-908e-d82df0355b7f","savedPayload":{"position":{"x":26602.258322751066,"y":20797.43766726731},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA60","code":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema60","id":"ee78d4d5-f202-4d8e-ae88-eea38f2d0bc0","savedPayload":{"position":{"x":26573.42653344148,"y":21095.53531523079},"targetPosition":{"x":26506.61007173486,"y":20846.172885359698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"83802e58-4437-4ddc-b329-9ae962866387","savedPayload":{"position":{"x":26506.61007173486,"y":20846.172885359698},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA120","code":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema120","id":"ab81fc7a-4873-49d2-a3ef-c9c1eed99dba","savedPayload":{"position":{"x":26359.02368493392,"y":21106.77169239303},"targetPosition":{"x":26399.40864748108,"y":20851.791073940818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bec21f4d-ac0c-4b70-a565-16d065d1e89c","savedPayload":{"position":{"x":26399.40864748108,"y":20851.791073940818},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA180","code":"{\n \"codeName\": \"ema180\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema180","id":"ce0ce81c-9577-4cc6-8edd-ad99c52916aa","savedPayload":{"position":{"x":26158.586690246906,"y":21029.831138842103},"targetPosition":{"x":26299.190150137572,"y":20813.320797165354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7318a961-0663-4a33-9295-21a8ab990854","savedPayload":{"position":{"x":26299.190150137572,"y":20813.320797165354},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA240","code":"{\n \"codeName\": \"ema240\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema240","id":"f9c4fe37-e76d-4601-9933-ce1ad3e8ad3d","savedPayload":{"position":{"x":26006.77292667474,"y":20878.017375269937},"targetPosition":{"x":26223.28326835149,"y":20737.41391537927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b2bfa489-cb63-498e-8a80-a82ebf19d0e6","savedPayload":{"position":{"x":26223.28326835149,"y":20737.41391537927},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA300","code":"{\n \"codeName\": \"ema300\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema300","id":"8b93fa9d-ea11-4654-a6ac-70411f0db75a","savedPayload":{"position":{"x":25929.832373123812,"y":20677.580380582924},"targetPosition":{"x":26184.812991576026,"y":20637.195418035764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a6926058-2ae5-454e-b696-b9d49162e901","savedPayload":{"position":{"x":26184.812991576026,"y":20637.195418035764},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA600","code":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema600","id":"b67f8d22-c54d-4a21-a726-a8975c10d710","savedPayload":{"position":{"x":25941.068750286053,"y":20463.177532075362},"targetPosition":{"x":26190.431180157146,"y":20529.993993781984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cd299cac-3be1-4899-8816-70baccd30168","savedPayload":{"position":{"x":26190.431180157146,"y":20529.993993781984},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1200","code":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1200","id":"f7b1d5d4-86c8-4a90-a98a-774fe1171e73","savedPayload":{"position":{"x":26038.53918647083,"y":20271.88103004295},"targetPosition":{"x":26239.166398249534,"y":20434.345742765778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"717ba1d7-3b27-4f87-8e25-c2a26f435e67","savedPayload":{"position":{"x":26239.166398249534,"y":20434.345742765778},"targetPosition":{"x":26439.79361002824,"y":20596.810455488605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"003162cf-ab76-4dea-ac72-a4dd3a0e87ac","savedPayload":{"position":{"x":26439.79361002824,"y":20596.810455488605},"targetPosition":{"x":25970.986705513125,"y":19676.72509963389},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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 \n\nvariable.ema6 = calculateEMA(6, candle.close, variable.previousEMA6)\nvariable.previousEMA6 = variable.ema6\n\nvariable.ema12 = calculateEMA(12, candle.close, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12\n\nvariable.ema18 = calculateEMA(18, candle.close, variable.previousEMA18)\nvariable.previousEMA18 = variable.ema18\n\nvariable.ema24 = calculateEMA(24, candle.close, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24\n\nvariable.ema30 = calculateEMA(30, candle.close, variable.previousEMA30)\nvariable.previousEMA30 = variable.ema30\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema180 = calculateEMA(180, candle.close, variable.previousEMA180)\nvariable.previousEMA180 = variable.ema180\n\nvariable.ema240 = calculateEMA(240, candle.close, variable.previousEMA240)\nvariable.previousEMA240 = variable.ema240\n\nvariable.ema300 = calculateEMA(300, candle.close, variable.previousEMA300)\nvariable.previousEMA300 = variable.ema300\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"49789f74-3691-45b3-8c29-9a72500ae81c","savedPayload":{"position":{"x":26040.494629756093,"y":20338.04882333799},"targetPosition":{"x":25978.817359269837,"y":20177.374040454084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ed1c9899-0b00-4cc5-b30d-faefdbe914d6","savedPayload":{"position":{"x":25978.817359269837,"y":20177.374040454084},"targetPosition":{"x":25917.14008878358,"y":20016.699257570177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA6 = 0\nvariable.previousEMA12 = 0\nvariable.previousEMA18 = 0\nvariable.previousEMA24 = 0\nvariable.previousEMA30 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA180 = 0\nvariable.previousEMA240 = 0\nvariable.previousEMA300 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA1200 = 0","id":"db307137-4eec-41a0-93ca-af5623c7ecf5","savedPayload":{"position":{"x":25700.52047181981,"y":20284.20220660845},"targetPosition":{"x":25808.830280301696,"y":20150.450732089314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c17eb75-3069-47ad-b303-be44390e4736","savedPayload":{"position":{"x":25808.830280301696,"y":20150.450732089314},"targetPosition":{"x":25917.14008878358,"y":20016.699257570177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"bd1f404b-64bb-4f2e-95f6-8d52f40bebad","savedPayload":{"position":{"x":25917.14008878358,"y":20016.699257570177},"targetPosition":{"x":25970.986705513125,"y":19676.72509963389},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"e4267570-575b-4e59-9667-cb78aaae052c","savedPayload":{"position":{"x":25970.986705513125,"y":19676.72509963389},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base7 EMAs","code":"{\n \"codeName\": \"Base7-EMAs\",\n \"singularVariableName\": \"base7EMA\",\n \"pluralVariableName\": \"base7EMAs\"\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\": \"Sparta/EMA/@Exchange/Output/Base7-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199","savedPayload":{"position":{"x":26136.709551354226,"y":19857.17270516132},"targetPosition":{"x":25796.73539341794,"y":19803.326088431775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/EMA/@Exchange/Output/Base7-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/EMA/@Exchange/Output/Base7-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"15ccbcff-318d-46db-93f2-d649b57fd52a","savedPayload":{"position":{"x":26040.130017637235,"y":20046.72071265107},"targetPosition":{"x":25796.73539341794,"y":19803.326088431775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"b91e2094-b8f7-4f7f-a956-30de55c693b7","savedPayload":{"position":{"x":26091.908167019814,"y":20324.52370249844},"targetPosition":{"x":26025.091705313193,"y":20573.886132369535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5163d7f4-3b6c-41c3-b7f6-ec13109fcb0e","savedPayload":{"position":{"x":26025.091705313193,"y":20573.886132369535},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"ea560ee8-06c9-4348-a5b4-24992035245e","savedPayload":{"position":{"x":26283.204669052226,"y":20421.994138683218},"targetPosition":{"x":26120.7399563294,"y":20622.621350461923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4b5dcfda-66ec-4a20-9c4c-0718b51cf761","savedPayload":{"position":{"x":26120.7399563294,"y":20622.621350461923},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA7","code":"{\n \"codeName\": \"ema7\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema7","id":"90e20354-4dd5-4e56-aaf5-cf725f02c1e6","savedPayload":{"position":{"x":26418.317921533926,"y":20588.845109983067},"targetPosition":{"x":26188.29658257025,"y":20706.046836111847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4adf5737-3d1a-4610-9a31-89faddbe679e","savedPayload":{"position":{"x":26188.29658257025,"y":20706.046836111847},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA14","code":"{\n \"codeName\": \"ema14\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema14","id":"b158c3b7-a93f-4e13-8d80-dff1a7172416","savedPayload":{"position":{"x":26473.885615645464,"y":20796.226567666763},"targetPosition":{"x":26216.080429626018,"y":20809.737564953695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6c0f0982-caf3-4c7e-a729-54c511ffb65e","savedPayload":{"position":{"x":26216.080429626018,"y":20809.737564953695},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA21","code":"{\n \"codeName\": \"ema21\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema21","id":"3ce74000-2892-4b42-a12e-c8efc1504710","savedPayload":{"position":{"x":26440.2995922583,"y":21008.2803736994},"targetPosition":{"x":26199.287417932435,"y":20915.764467970013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ff999b95-7623-4eee-b11c-f53dae69f69c","savedPayload":{"position":{"x":26199.287417932435,"y":20915.764467970013},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA28","code":"{\n \"codeName\": \"ema28\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema28","id":"95ccd057-5e33-4b72-a7b0-e44479f3b195","savedPayload":{"position":{"x":26323.367179935514,"y":21188.34049856957},"targetPosition":{"x":26140.821211771043,"y":21005.7945304051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a30ef925-4ab9-45f6-98f3-6723e57fbf97","savedPayload":{"position":{"x":26140.821211771043,"y":21005.7945304051},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA35","code":"{\n \"codeName\": \"ema35\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema35","id":"83513896-dfd7-45a8-aa9a-1922dc9b5b97","savedPayload":{"position":{"x":26143.307055065343,"y":21305.272910892356},"targetPosition":{"x":26050.791149335957,"y":21064.26073656649},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2d2b734-e754-4b6c-856b-053eb5b13694","savedPayload":{"position":{"x":26050.791149335957,"y":21064.26073656649},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA70","code":"{\n \"codeName\": \"ema70\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema70","id":"23ca8b8e-400b-4638-946c-c871a632d17b","savedPayload":{"position":{"x":25931.253249032707,"y":21338.85893427952},"targetPosition":{"x":25944.76424631964,"y":21081.053748260074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"863c717d-d171-4616-ac79-dd4a5956bfb5","savedPayload":{"position":{"x":25944.76424631964,"y":21081.053748260074},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA140","code":"{\n \"codeName\": \"ema140\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema140","id":"fb446f49-e024-4246-9783-d41ea25a8a63","savedPayload":{"position":{"x":25723.87179134901,"y":21283.291240167982},"targetPosition":{"x":25841.07351747779,"y":21053.269901204305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ba2fbf20-a074-4d89-b1f8-2e00f141b25e","savedPayload":{"position":{"x":25841.07351747779,"y":21053.269901204305},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EM210","code":"{\n \"codeName\": \"ema210\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema210","id":"dd3ed495-e64d-4b76-ba8a-8a6fbaebc223","savedPayload":{"position":{"x":25557.02082004916,"y":21148.177987686282},"targetPosition":{"x":25757.648031827866,"y":20985.713274963455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fbc7524a-d8ff-40c4-9691-1397bd774535","savedPayload":{"position":{"x":25757.648031827866,"y":20985.713274963455},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA280","code":"{\n \"codeName\": \"ema280\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema280","id":"45655778-7860-46a8-9ee1-12ab9d4f463b","savedPayload":{"position":{"x":25459.550383864385,"y":20956.88148565387},"targetPosition":{"x":25708.91281373548,"y":20890.06502394725},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"49670f83-5516-4fed-bfc9-3ea4ac3a4865","savedPayload":{"position":{"x":25708.91281373548,"y":20890.06502394725},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA350","code":"{\n \"codeName\": \"ema350\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema350","id":"6203288d-a807-49ee-a209-4466b959be33","savedPayload":{"position":{"x":25448.314006702145,"y":20742.47863714631},"targetPosition":{"x":25703.294625154358,"y":20782.863599693468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4f06f627-f385-494a-bb6a-a06c62d0d20f","savedPayload":{"position":{"x":25703.294625154358,"y":20782.863599693468},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA700","code":"{\n \"codeName\": \"ema700\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema700","id":"1663af80-49b7-4593-ad91-6c79fc61f61c","savedPayload":{"position":{"x":25525.254560253074,"y":20542.041642459295},"targetPosition":{"x":25741.764901929822,"y":20682.64510234996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b3810873-e8ea-4466-b011-095b648f0064","savedPayload":{"position":{"x":25741.764901929822,"y":20682.64510234996},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1400","code":"{\n \"codeName\": \"ema1400\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1400","id":"92eee4c6-788b-4aa2-8608-5a026f9f5590","savedPayload":{"position":{"x":25677.06832382524,"y":20390.22787888713},"targetPosition":{"x":25817.671783715905,"y":20606.73822056388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"26a199f6-c167-4de7-9513-0d9c453d8108","savedPayload":{"position":{"x":25817.671783715905,"y":20606.73822056388},"targetPosition":{"x":25958.27524360657,"y":20823.248562240628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"e78e6e7a-03db-4e3b-ae8e-b1c309b6ec9e","savedPayload":{"position":{"x":25958.27524360657,"y":20823.248562240628},"targetPosition":{"x":25796.73539341794,"y":19803.326088431775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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 \n\nvariable.ema7 = calculateEMA(7, candle.close, variable.previousEMA7)\nvariable.previousEMA7 = variable.ema7\n\nvariable.ema14 = calculateEMA(14, candle.close, variable.previousEMA14)\nvariable.previousEMA14 = variable.ema14\n\nvariable.ema21 = calculateEMA(21, candle.close, variable.previousEMA21)\nvariable.previousEMA21 = variable.ema21\n\nvariable.ema28 = calculateEMA(28, candle.close, variable.previousEMA28)\nvariable.previousEMA28 = variable.ema28\n\nvariable.ema35 = calculateEMA(35, candle.close, variable.previousEMA35)\nvariable.previousEMA35 = variable.ema35\n\nvariable.ema70 = calculateEMA(70, candle.close, variable.previousEMA70)\nvariable.previousEMA70 = variable.ema70\n\nvariable.ema140 = calculateEMA(140, candle.close, variable.previousEMA140)\nvariable.previousEMA140 = variable.ema140\n\nvariable.ema210 = calculateEMA(210, candle.close, variable.previousEMA210)\nvariable.previousEMA210 = variable.ema210\n\nvariable.ema280 = calculateEMA(280, candle.close, variable.previousEMA280)\nvariable.previousEMA280 = variable.ema280\n\nvariable.ema350 = calculateEMA(350, candle.close, variable.previousEMA350)\nvariable.previousEMA350 = variable.ema350\n\nvariable.ema700 = calculateEMA(700, candle.close, variable.previousEMA700)\nvariable.previousEMA700 = variable.ema700\n\nvariable.ema1400 = calculateEMA(1400, candle.close, variable.previousEMA1400)\nvariable.previousEMA1400 = variable.ema1400\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"9eb652ba-7df8-41a2-bc5f-c6a1922d8b9c","savedPayload":{"position":{"x":25658.481088295473,"y":20453.76145507594},"targetPosition":{"x":25649.473756770854,"y":20281.891331062976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"659c5fa3-33f6-4127-b4f0-dc1bb0c25691","savedPayload":{"position":{"x":25649.473756770854,"y":20281.891331062976},"targetPosition":{"x":25640.466425246235,"y":20110.021207050013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA7 = 0\nvariable.previousEMA14 = 0\nvariable.previousEMA21 = 0\nvariable.previousEMA28 = 0\nvariable.previousEMA35 = 0\nvariable.previousEMA70 = 0\nvariable.previousEMA140 = 0\nvariable.previousEMA210 = 0\nvariable.previousEMA280 = 0\nvariable.previousEMA350 = 0\nvariable.previousEMA700 = 0\nvariable.previousEMA1400 = 0","id":"03253e10-8b5a-4d6d-abc1-1b171138444c","savedPayload":{"position":{"x":25351.78596967724,"y":20297.492486904237},"targetPosition":{"x":25496.126197461737,"y":20203.756846977125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"07d4aaa2-43ba-42a3-9a5b-73e5866c1307","savedPayload":{"position":{"x":25496.126197461737,"y":20203.756846977125},"targetPosition":{"x":25640.466425246235,"y":20110.021207050013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"91a31871-1901-4a45-9b00-c5aa30a37bf2","savedPayload":{"position":{"x":25640.466425246235,"y":20110.021207050013},"targetPosition":{"x":25796.73539341794,"y":19803.326088431775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984","savedPayload":{"position":{"x":25796.73539341794,"y":19803.326088431775},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"EMA Base 7","id":"a52a9764-3ef2-44e6-82bd-e6538058119d"}}},{"type":"Product Definition","name":"Base11 EMAs","code":"{\n \"codeName\": \"Base11-EMAs\",\n \"singularVariableName\": \"base11EMA\",\n \"pluralVariableName\": \"base11EMAs\"\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\": \"Sparta/EMA/@Exchange/Output/Base11-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"5586aa74-2ecb-4b71-83ea-d621aa400660","savedPayload":{"position":{"x":25898.58580915186,"y":20026.153135239572},"targetPosition":{"x":25591.890690533623,"y":19869.884167067867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/EMA/@Exchange/Output/Base11-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/EMA/@Exchange/Output/Base11-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3","savedPayload":{"position":{"x":25748.15965870533,"y":20176.579285686104},"targetPosition":{"x":25591.890690533623,"y":19869.884167067867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"b0559af0-2d8b-401c-8619-1eb20942ec2a","savedPayload":{"position":{"x":25848.060850852515,"y":20586.32255386944},"targetPosition":{"x":25639.205845598754,"y":20738.06459737308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"33f46215-3b1a-422a-9305-89c6ffb342f6","savedPayload":{"position":{"x":25639.205845598754,"y":20738.06459737308},"targetPosition":{"x":25430.350840344992,"y":20889.80664087672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"7bfaab7e-73a5-4086-9eb8-d4a6fdfbbbcf","savedPayload":{"position":{"x":25940.31207724942,"y":20970.576565971038},"targetPosition":{"x":25685.331458797205,"y":20930.19160342388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6155e3b0-2648-407e-b085-4eac778ca3e8","savedPayload":{"position":{"x":25685.331458797205,"y":20930.19160342388},"targetPosition":{"x":25430.350840344992,"y":20889.80664087672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA11","code":"{\n \"codeName\": \"ema11\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema11","id":"16f9f1d2-c73c-4eb6-9240-0d4015e3252a","savedPayload":{"position":{"x":25733.834927352273,"y":21307.51665138424},"targetPosition":{"x":25582.092883848632,"y":21098.66164613048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b925a6aa-04ee-465b-aa93-fc02066b4e3c","savedPayload":{"position":{"x":25582.092883848632,"y":21098.66164613048},"targetPosition":{"x":25430.350840344992,"y":20889.80664087672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA22","code":"{\n \"codeName\": \"ema22\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema22","id":"21cca6ba-53d3-4fd0-b3c9-43a71702e4f3","savedPayload":{"position":{"x":25349.580915250674,"y":21399.767877781145},"targetPosition":{"x":25389.965877797833,"y":21144.787259328932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7f02db91-5147-438c-98c9-e024fba210a2","savedPayload":{"position":{"x":25389.965877797833,"y":21144.787259328932},"targetPosition":{"x":25430.350840344992,"y":20889.80664087672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA33","code":"{\n \"codeName\": \"ema33\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema33","id":"69184123-7d64-41a6-ad3f-8f53bf358f95","savedPayload":{"position":{"x":25012.64082983747,"y":21193.290727884},"targetPosition":{"x":25221.49583509123,"y":21041.54868438036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"55be1211-a38f-4ff4-8d12-fa78fa8ba2dd","savedPayload":{"position":{"x":25221.49583509123,"y":21041.54868438036},"targetPosition":{"x":25430.350840344992,"y":20889.80664087672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA55","code":"{\n \"codeName\": \"ema55\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema55","id":"5281da7d-c090-4637-9a42-dc28599f0385","savedPayload":{"position":{"x":24920.389603440566,"y":20809.0367157824},"targetPosition":{"x":25175.37022189278,"y":20849.42167832956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"710e13ba-afd9-41c2-b7e8-f0ef7be4bb53","savedPayload":{"position":{"x":25175.37022189278,"y":20849.42167832956},"targetPosition":{"x":25430.350840344992,"y":20889.80664087672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA111","code":"{\n \"codeName\": \"ema111\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema111","id":"f0dd0fa6-ace3-44ea-a701-e36808f6e348","savedPayload":{"position":{"x":25126.866753337712,"y":20472.096630369197},"targetPosition":{"x":25278.608796841352,"y":20680.951635622958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"461f6d65-e227-4362-b62c-16b7225014f6","savedPayload":{"position":{"x":25278.608796841352,"y":20680.951635622958},"targetPosition":{"x":25430.350840344992,"y":20889.80664087672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"6a451383-677d-4da8-a15d-f746cda23991","savedPayload":{"position":{"x":25430.350840344992,"y":20889.80664087672},"targetPosition":{"x":25591.890690533623,"y":19869.884167067867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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 \n\nvariable.ema11 = calculateEMA(11, candle.close, variable.previousEMA11)\nvariable.previousEMA11 = variable.ema11\n\nvariable.ema22 = calculateEMA(22, candle.close, variable.previousEMA22)\nvariable.previousEMA22 = variable.ema22\n\nvariable.ema33 = calculateEMA(33, candle.close, variable.previousEMA33)\nvariable.previousEMA33 = variable.ema33\n\nvariable.ema55 = calculateEMA(55, candle.close, variable.previousEMA55)\nvariable.previousEMA55 = variable.ema55\n\nvariable.ema111 = calculateEMA(111, candle.close, variable.previousEMA111)\nvariable.previousEMA111 = variable.ema111\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"38ceaace-d9e5-482a-a15b-c7bb06767056","savedPayload":{"position":{"x":25259.407450705497,"y":20445.762031115282},"targetPosition":{"x":25303.951758509913,"y":20279.52041120122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"db87f908-271b-44be-8756-706c3ff98c29","savedPayload":{"position":{"x":25303.951758509913,"y":20279.52041120122},"targetPosition":{"x":25348.49606631433,"y":20113.27879128716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA11 = 0\nvariable.previousEMA22 = 0\nvariable.previousEMA33 = 0\nvariable.previousEMA55 = 0\nvariable.previousEMA111 = 0","id":"5c34d18a-ac4e-4af6-aa52-cb4c0f016e6d","savedPayload":{"position":{"x":25016.012826486207,"y":20202.36740689599},"targetPosition":{"x":25182.254446400268,"y":20157.823099091576},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f34dd488-d3ea-4bd0-b4f8-68ea81c4a635","savedPayload":{"position":{"x":25182.254446400268,"y":20157.823099091576},"targetPosition":{"x":25348.49606631433,"y":20113.27879128716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"e02efb2a-bb39-4a12-89c8-37c254e9bf5f","savedPayload":{"position":{"x":25348.49606631433,"y":20113.27879128716},"targetPosition":{"x":25591.890690533623,"y":19869.884167067867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"21df4f44-96eb-453b-8652-4ce2dc03424c","savedPayload":{"position":{"x":25591.890690533623,"y":19869.884167067867},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"EMA Base 11","id":"cef26be6-07a9-415a-8439-99d06b1e1cfb"}}},{"type":"Product Definition","name":"Base12 EMAs","code":"{\n \"codeName\": \"Base12-EMAs\",\n \"singularVariableName\": \"base12EMA\",\n \"pluralVariableName\": \"base12EMAs\"\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\": \"Sparta/EMA/@Exchange/Output/Base12-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"ea61dfed-8f93-4b4f-8575-61ca2547ea90","savedPayload":{"position":{"x":25619.89884783474,"y":20113.27879128716},"targetPosition":{"x":25376.504223615444,"y":19869.884167067867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/EMA/@Exchange/Output/Base12-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/EMA/@Exchange/Output/Base12-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"b251aca0-1996-4d13-99ed-6fb9796ec8d6","savedPayload":{"position":{"x":25430.35084034499,"y":20209.858325004152},"targetPosition":{"x":25376.504223615444,"y":19869.884167067867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"f1df9aec-05c4-40d0-a82c-d17a0e2f1596","savedPayload":{"position":{"x":25318.492569366015,"y":20477.189238531148},"targetPosition":{"x":25113.094944233173,"y":20633.579380726864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c0c9e78-796b-4845-8cbb-c153a6b7c791","savedPayload":{"position":{"x":25113.094944233173,"y":20633.579380726864},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"355a63aa-8c8c-4eca-a246-272eb464d094","savedPayload":{"position":{"x":25413.521329985906,"y":20686.401603389244},"targetPosition":{"x":25160.60932454312,"y":20738.185563155912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"256d27f8-b34e-46ca-9b5f-531823534e11","savedPayload":{"position":{"x":25160.60932454312,"y":20738.185563155912},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA12","code":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema12","id":"121d3c83-9fb4-44a1-93ed-e9755dfcc59e","savedPayload":{"position":{"x":25408.36544172552,"y":20916.12686488809},"targetPosition":{"x":25158.031380412926,"y":20853.048193905335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b386dd09-a2a1-4669-a73b-6df619dee15d","savedPayload":{"position":{"x":25158.031380412926,"y":20853.048193905335},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA24","code":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema24","id":"e4418d5e-74e5-440c-bd58-f8f18245ba6d","savedPayload":{"position":{"x":25304.04609148765,"y":21120.865117592413},"targetPosition":{"x":25105.87170529399,"y":20955.417320257497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c23ef82a-9c9a-477f-8d48-14d93f06e3c6","savedPayload":{"position":{"x":25105.87170529399,"y":20955.417320257497},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA36","code":"{\n \"codeName\": \"ema36\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema36","id":"21dc0fd4-01f5-428b-9a9e-45307981af50","savedPayload":{"position":{"x":25121.22500597977,"y":21260.06543960422},"targetPosition":{"x":25014.46116254005,"y":21025.0174812634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e613c9c6-61da-4830-9289-8b400c3b41d7","savedPayload":{"position":{"x":25014.46116254005,"y":21025.0174812634},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA48","code":"{\n \"codeName\": \"ema48\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema48","id":"6afd224b-ba9c-49eb-973f-e7e3d609e82e","savedPayload":{"position":{"x":24896.112143340197,"y":21306.157499969162},"targetPosition":{"x":24901.904731220264,"y":21048.06351144587},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e49e8056-f659-4090-91e7-0e83b4a3654e","savedPayload":{"position":{"x":24901.904731220264,"y":21048.06351144587},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA60","code":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema60","id":"2db84126-00b9-4cde-bb35-66f9fcb8bfc6","savedPayload":{"position":{"x":24673.29386684277,"y":21250.012200849935},"targetPosition":{"x":24790.49559297155,"y":21019.990861886257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"77a0ccf0-aa97-4a11-b1db-bd74d33c28b7","savedPayload":{"position":{"x":24790.49559297155,"y":21019.990861886257},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA120","code":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema120","id":"e3f30f2b-23c8-4bac-b19e-69ae740a4773","savedPayload":{"position":{"x":24496.902068834646,"y":21102.749807314012},"targetPosition":{"x":24702.29969396749,"y":20946.359665118296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fca691ac-2651-4619-af01-48a0fafcfd75","savedPayload":{"position":{"x":24702.29969396749,"y":20946.359665118296},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA240","code":"{\n \"codeName\": \"ema240\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema240","id":"99b8a3c3-7e86-40aa-ad44-82a0bdb1f208","savedPayload":{"position":{"x":24401.873308214756,"y":20893.537442455916},"targetPosition":{"x":24654.785313657543,"y":20841.753482689248},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6f194951-d813-4418-be45-420680399c17","savedPayload":{"position":{"x":24654.785313657543,"y":20841.753482689248},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA360","code":"{\n \"codeName\": \"ema360\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema360","id":"fd430a5b-2a43-40c5-ae9d-4c7f901b527d","savedPayload":{"position":{"x":24407.02919647514,"y":20663.81218095707},"targetPosition":{"x":24657.363257787736,"y":20726.890851939825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d9b00ca8-b18b-43da-9f3d-889fe101120c","savedPayload":{"position":{"x":24657.363257787736,"y":20726.890851939825},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA480","code":"{\n \"codeName\": \"ema480\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema480","id":"4601277a-9f86-41a4-81b1-21b3c13d1d34","savedPayload":{"position":{"x":24511.348546713012,"y":20459.073928252747},"targetPosition":{"x":24709.52293290667,"y":20624.521725587663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2eccd071-3101-47bb-a8e6-008703cf6848","savedPayload":{"position":{"x":24709.52293290667,"y":20624.521725587663},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA600","code":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema600","id":"5c687030-e498-4126-8ce9-0c99a427168e","savedPayload":{"position":{"x":24694.16963222089,"y":20319.87360624094},"targetPosition":{"x":24800.93347566061,"y":20554.92156458176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e715e341-88d4-477c-9d7f-b0bb85ee3022","savedPayload":{"position":{"x":24800.93347566061,"y":20554.92156458176},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1200","code":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1200","id":"7c39560e-7434-4f50-aa3d-b93e131ce066","savedPayload":{"position":{"x":24919.282494860465,"y":20273.781545875998},"targetPosition":{"x":24913.489906980398,"y":20531.87553439929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f1939b18-3af9-4376-b8ba-6f506b215f82","savedPayload":{"position":{"x":24913.489906980398,"y":20531.87553439929},"targetPosition":{"x":24907.69731910033,"y":20789.96952292258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"512144fe-195c-47ae-b5b7-8167ba61a4bb","savedPayload":{"position":{"x":24907.69731910033,"y":20789.96952292258},"targetPosition":{"x":25376.504223615444,"y":19869.884167067867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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 \n\nvariable.ema12 = calculateEMA(12, candle.close, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12\n\nvariable.ema24 = calculateEMA(24, candle.close, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24\n\nvariable.ema36 = calculateEMA(36, candle.close, variable.previousEMA36)\nvariable.previousEMA36 = variable.ema36\n\nvariable.ema48 = calculateEMA(48, candle.close, variable.previousEMA48)\nvariable.previousEMA48 = variable.ema48\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema240 = calculateEMA(240, candle.close, variable.previousEMA240)\nvariable.previousEMA240 = variable.ema240\n\nvariable.ema360 = calculateEMA(360, candle.close, variable.previousEMA360)\nvariable.previousEMA360 = variable.ema360\n\nvariable.ema480 = calculateEMA(480, candle.close, variable.previousEMA480)\nvariable.previousEMA480 = variable.ema480\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"c3936de6-e8b4-4459-8c31-d97bea84cbfa","savedPayload":{"position":{"x":24882.337825142982,"y":20314.83359080857},"targetPosition":{"x":24976.073465070094,"y":20170.49336302407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c4c50d01-1dff-4700-853a-986821fd55c5","savedPayload":{"position":{"x":24976.073465070094,"y":20170.49336302407},"targetPosition":{"x":25069.809104997206,"y":20026.153135239572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA12 = 0\nvariable.previousEMA24 = 0\nvariable.previousEMA36 = 0\nvariable.previousEMA48 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA240 = 0\nvariable.previousEMA360 = 0\nvariable.previousEMA480 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA1200 = 0\n","id":"c1639309-d20d-47cb-bb44-f6d45fd498a2","savedPayload":{"position":{"x":24726.06885697128,"y":20008.138472190334},"targetPosition":{"x":24897.938980984243,"y":20017.145803714953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6a845db8-4418-4417-80ac-11114304a476","savedPayload":{"position":{"x":24897.938980984243,"y":20017.145803714953},"targetPosition":{"x":25069.809104997206,"y":20026.153135239572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"1f5b9ce3-8278-4359-a57c-2c9e275a64cc","savedPayload":{"position":{"x":25069.809104997206,"y":20026.153135239572},"targetPosition":{"x":25376.504223615444,"y":19869.884167067867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"43d6f23d-d206-47e9-95d4-6bef34377014","savedPayload":{"position":{"x":25376.504223615444,"y":19869.884167067867},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base30 EMAs","code":"{\n \"codeName\": \"Base30-EMAs\",\n \"singularVariableName\": \"base30EMA\",\n \"pluralVariableName\": \"base30EMAs\"\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\": \"Sparta/EMA/@Exchange/Output/Base30-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"dea3491f-aae7-4419-a98f-108cf5d69b87","savedPayload":{"position":{"x":25327.92848890283,"y":20110.021207050013},"targetPosition":{"x":25171.659520731126,"y":19803.326088431775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/EMA/@Exchange/Output/Base30-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/EMA/@Exchange/Output/Base30-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"6624337b-4afd-44b8-a2ea-3f1779ddda7e","savedPayload":{"position":{"x":25117.81290400158,"y":20143.30024636806},"targetPosition":{"x":25171.659520731126,"y":19803.326088431775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"d3c4e9c3-9823-4809-997e-dc36dac93b22","savedPayload":{"position":{"x":24934.415185751488,"y":20379.90378888819},"targetPosition":{"x":24687.945416912364,"y":20456.706874988926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cdf3538e-a8e5-44e5-9263-e5ffe18e65c2","savedPayload":{"position":{"x":24687.945416912364,"y":20456.706874988926},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"af0bf0dd-e517-4723-b0cc-832261c78c76","savedPayload":{"position":{"x":24949.336279584124,"y":20626.578875911964},"targetPosition":{"x":24695.40596382868,"y":20580.044418500813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"27b3ce25-c547-4003-9a1c-2214b22e4fd8","savedPayload":{"position":{"x":24695.40596382868,"y":20580.044418500813},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA30","code":"{\n \"codeName\": \"ema30\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema30","id":"d49aaf82-1063-490d-bedb-3c63d639e097","savedPayload":{"position":{"x":24847.9126231217,"y":20851.932996151965},"targetPosition":{"x":24644.69413559747,"y":20692.721478620813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c92e3720-fc04-45ff-99e7-95abc2ddabea","savedPayload":{"position":{"x":24644.69413559747,"y":20692.721478620813},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA60","code":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema60","id":"47f6b7dc-d0e0-4707-9e20-4113af4916ce","savedPayload":{"position":{"x":24653.379153772206,"y":21004.340236472755},"targetPosition":{"x":24547.427400922723,"y":20768.92509878121},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d489aab4-6b93-490a-95b0-5b586a80960a","savedPayload":{"position":{"x":24547.427400922723,"y":20768.92509878121},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA90","code":"{\n \"codeName\": \"ema90\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema90","id":"d2ac9ce8-32ab-4802-ab41-b959112a696b","savedPayload":{"position":{"x":24410.301144981153,"y":21048.885934823204},"targetPosition":{"x":24425.888396527196,"y":20791.197947956432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7b763dc2-e990-44b7-b67f-93d27e5b7507","savedPayload":{"position":{"x":24425.888396527196,"y":20791.197947956432},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA120","code":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema120","id":"41283546-a88c-41a6-87a6-48f178b378f5","savedPayload":{"position":{"x":24174.36483915501,"y":20975.36520854507},"targetPosition":{"x":24307.920243614124,"y":20754.437584817366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"19b80a14-7510-4066-aa0a-43e8d92f8bec","savedPayload":{"position":{"x":24307.920243614124,"y":20754.437584817366},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA150","code":"{\n \"codeName\": \"ema150\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema150","id":"d82aeb70-2857-4d97-8f42-6fa22acc3ec1","savedPayload":{"position":{"x":23999.62040061783,"y":20800.620770007892},"targetPosition":{"x":24220.548024345535,"y":20667.065365548777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2dcea6aa-8e40-44d9-b540-e831f54b0e19","savedPayload":{"position":{"x":24220.548024345535,"y":20667.065365548777},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA300","code":"{\n \"codeName\": \"ema300\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema300","id":"3bfc5b00-3b36-4b7e-b549-4cac3826de4f","savedPayload":{"position":{"x":23926.099674339697,"y":20564.684464181748},"targetPosition":{"x":24183.78766120647,"y":20549.097212635705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7cc56b79-f74d-465e-8e4d-070be004c71b","savedPayload":{"position":{"x":24183.78766120647,"y":20549.097212635705},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA600","code":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema600","id":"22bc84a5-61f6-479e-a87d-b1aee1b8416d","savedPayload":{"position":{"x":23970.645372690145,"y":20321.606455390694},"targetPosition":{"x":24206.060510381692,"y":20427.558208240178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0e28ed26-69c1-4a8e-b13f-cef5faf27fc8","savedPayload":{"position":{"x":24206.060510381692,"y":20427.558208240178},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA900","code":"{\n \"codeName\": \"ema900\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema900","id":"bd0354df-70f8-44e7-b988-49c514433ee3","savedPayload":{"position":{"x":24123.052613010936,"y":20127.0729860412},"targetPosition":{"x":24282.264130542088,"y":20330.29147356543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1dfbb7b7-1ddc-4079-a17d-abef03fcd978","savedPayload":{"position":{"x":24282.264130542088,"y":20330.29147356543},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1200","code":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1200","id":"fed49d03-931b-45a8-ac59-60859500e8ea","savedPayload":{"position":{"x":24348.406733250937,"y":20025.649329578777},"targetPosition":{"x":24394.941190662088,"y":20279.57964533422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2854d03b-388d-42be-bd49-0b0ed1293a30","savedPayload":{"position":{"x":24394.941190662088,"y":20279.57964533422},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1500","code":"{\n \"codeName\": \"ema1500\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1500","id":"1486d92f-10f4-4e34-b603-b0a18408713c","savedPayload":{"position":{"x":24595.08182027471,"y":20040.570423411413},"targetPosition":{"x":24518.278734173975,"y":20287.040192250537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9936d329-ffe9-4c8a-929c-b6f4a3a38954","savedPayload":{"position":{"x":24518.278734173975,"y":20287.040192250537},"targetPosition":{"x":24441.47564807324,"y":20533.50996108966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"3dda31b0-7d30-43c2-9b91-74c25cffed38","savedPayload":{"position":{"x":24441.47564807324,"y":20533.50996108966},"targetPosition":{"x":25171.659520731126,"y":19803.326088431775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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\nvariable.ema30 = calculateEMA(30, candle.close, variable.previousEMA30)\nvariable.previousEMA30 = variable.ema30\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema90 = calculateEMA(90, candle.close, variable.previousEMA90)\nvariable.previousEMA90 = variable.ema90\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema150 = calculateEMA(150, candle.close, variable.previousEMA150)\nvariable.previousEMA150 = variable.ema150\n\nvariable.ema300 = calculateEMA(300, candle.close, variable.previousEMA300)\nvariable.previousEMA300 = variable.ema300\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema900 = calculateEMA(900, candle.close, variable.previousEMA900)\nvariable.previousEMA900 = variable.ema900\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nvariable.ema1500 = calculateEMA(1500, candle.close, variable.previousEMA1500)\nvariable.previousEMA1500 = variable.ema1500\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"df900089-7554-4b01-88d1-801706c194a5","savedPayload":{"position":{"x":24564.182413756567,"y":20073.79232212509},"targetPosition":{"x":24697.933888275704,"y":19965.482513643205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ff38e18a-c36c-4c4a-8d5b-b7230451c098","savedPayload":{"position":{"x":24697.933888275704,"y":19965.482513643205},"targetPosition":{"x":24831.68536279484,"y":19857.17270516132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA30 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA90 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA150 = 0\nvariable.previousEMA300 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA900 = 0\nvariable.previousEMA1200 = 0\nvariable.previousEMA1500 = 0\n","id":"14cfa602-002c-439e-b658-24cc8d2d1c14","savedPayload":{"position":{"x":24510.335797027026,"y":19733.818164188808},"targetPosition":{"x":24671.010579910933,"y":19795.495434675064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2489fa2c-03cb-4007-b426-88158b8ab442","savedPayload":{"position":{"x":24671.010579910933,"y":19795.495434675064},"targetPosition":{"x":24831.68536279484,"y":19857.17270516132},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"ff57a6a1-1133-4cce-abab-d958d5936360","savedPayload":{"position":{"x":24831.68536279484,"y":19857.17270516132},"targetPosition":{"x":25171.659520731126,"y":19803.326088431775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4394346c-7c25-478f-9be7-04f071dc673c","savedPayload":{"position":{"x":25171.659520731126,"y":19803.326088431775},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"274a20f7-97c3-452d-9ef7-aa35f482f5e3","savedPayload":{"position":{"x":25484.197457074533,"y":19189.9358511953},"targetPosition":{"x":24997.408806793872,"y":18703.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Indicator Bot","name":"MACD","code":"{\n\"codeName\": \"MACD\",\n\"repo\": \"MACD-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces the MACD indicator.\",\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":"New Output Dataset","id":"b1bf9ad6-e21f-43a9-b7a5-7d5dd0485b2e","savedPayload":{"position":{"x":25822.27537080829,"y":19744.04915115027},"targetPosition":{"x":25822.27537080829,"y":19426.405862198375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"a8aa057b-aa19-45cb-bca0-7c3b57a350f7","savedPayload":{"position":{"x":25599.30635854122,"y":19649.374874465444},"targetPosition":{"x":25822.27537080829,"y":19426.405862198375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"150637f5-1917-439e-916f-71e86edccd49","savedPayload":{"position":{"x":25505.981115722945,"y":19426.405862198375},"targetPosition":{"x":25822.27537080829,"y":19426.405862198375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"6854acc9-b22d-46e6-8967-e3843ca6db76","savedPayload":{"position":{"x":25598.505160904053,"y":19202.63565229414},"targetPosition":{"x":25822.27537080829,"y":19426.405862198375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89254c6c-9be2-4037-b063-467edc660d10"}}}],"id":"af39ab1b-b1c0-4869-9093-47ad8ff63494","savedPayload":{"position":{"x":25822.27537080829,"y":19426.405862198375},"targetPosition":{"x":25562.95709214861,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"7e17f51a-deed-4976-a53b-d34c2e45f92f","savedPayload":{"position":{"x":26188.909734886776,"y":19868.581500197917},"targetPosition":{"x":26188.909734886776,"y":19556.29740525088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"101cc7d6-d35b-4907-b530-f28d5e02ff0a"}}},{"type":"Status Dependency","name":"Olivia: Candles","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"473dbe5e-6332-4005-8457-c77c3f5c65d0","savedPayload":{"position":{"x":25919.899019659286,"y":19711.610814102365},"targetPosition":{"x":26188.909734886776,"y":19556.29740525088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"fa10270c-f94c-479d-9094-f974018e2029","savedPayload":{"position":{"x":25918.67521597983,"y":19400.277433015624},"targetPosition":{"x":26188.909734886776,"y":19556.29740525088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"7a34fbb2-19de-4b82-88f2-c016f6959f74","savedPayload":{"position":{"x":26188.909734886776,"y":19556.29740525088},"targetPosition":{"x":25562.95709214861,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"101cc7d6-d35b-4907-b530-f28d5e02ff0a","savedPayload":{"position":{"x":25845.729703666188,"y":19739.38218356746},"targetPosition":{"x":25562.95709214861,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"1bc17bd6-0c20-4dfe-87dd-68db36113733","savedPayload":{"position":{"x":25266.852848400384,"y":19506.995970034724},"targetPosition":{"x":25562.95709214861,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"f2eca95a-37ae-448b-8ff9-c6dc4b133245","savedPayload":{"position":{"x":25586.411425006507,"y":19916.18239233576},"targetPosition":{"x":25562.95709214861,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"44019efe-950a-4eec-a546-cd2ee26818b9","savedPayload":{"position":{"x":25562.95709214861,"y":19603.206070966673},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces the MACD indicator.\",\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":"New Output Dataset","id":"c79ae046-983f-4acf-9c73-ab7e5d24fd85","savedPayload":{"position":{"x":25699.129738239182,"y":20088.525516763035},"targetPosition":{"x":25699.129738239182,"y":19774.83809821374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"daa8862c-2eda-4846-97d5-8684673baf3f","savedPayload":{"position":{"x":25476.17821921703,"y":19997.789617235892},"targetPosition":{"x":25699.129738239182,"y":19774.83809821374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"29e18539-f188-4d29-9531-25cd3ee8f282"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"59cb9a88-ccd4-4306-8822-bf9d0e526c02","savedPayload":{"position":{"x":25384.99385655251,"y":19774.83809821374},"targetPosition":{"x":25699.129738239182,"y":19774.83809821374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"b09b8313-baaf-45f4-a0fb-b33614d58699","savedPayload":{"position":{"x":25477.650381226576,"y":19553.358741201133},"targetPosition":{"x":25699.129738239182,"y":19774.83809821374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec2611a6-699b-45a5-beec-679dd4b7734a"}}}],"id":"a95e4b61-4e49-4b99-bfb8-8bb917afe8df","savedPayload":{"position":{"x":25699.129738239182,"y":19774.83809821374},"targetPosition":{"x":25388.781306631612,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"e02fb6a2-c775-46de-bce6-a40f7d40cd5c","savedPayload":{"position":{"x":25973.09805779773,"y":20362.35050871223},"targetPosition":{"x":25973.09805779773,"y":20050.943023483214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a9d544cb-9643-4f7e-9220-d3ec7397bcdf"}}},{"type":"Status Dependency","name":"Ending: Oliva Candles","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"650627ec-3cab-4024-a17d-a43174f869e9","savedPayload":{"position":{"x":25751.424470323636,"y":20272.61661095731},"targetPosition":{"x":25973.09805779773,"y":20050.943023483214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Starting: Charly","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"62a1b4d7-e2fd-44bf-9e37-3108a7b5b956","savedPayload":{"position":{"x":25660.970238783942,"y":20050.943023483214},"targetPosition":{"x":25973.09805779773,"y":20050.943023483214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"38aa26d5-f3b2-43e6-8533-cd51d7128221","savedPayload":{"position":{"x":25749.40282616493,"y":19827.247791850412},"targetPosition":{"x":25973.09805779773,"y":20050.943023483214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"e8291604-ea73-4217-b00c-51f65bdec1d6","savedPayload":{"position":{"x":25973.09805779773,"y":20050.943023483214},"targetPosition":{"x":25388.781306631612,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"a9d544cb-9643-4f7e-9220-d3ec7397bcdf","savedPayload":{"position":{"x":25584.46602539069,"y":20066.9964737968},"targetPosition":{"x":25388.781306631612,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"35b430c4-60bd-41ff-8a3a-7907146b0238","savedPayload":{"position":{"x":25085.027679126353,"y":19722.92006140758},"targetPosition":{"x":25388.781306631612,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"c6191bb8-66bf-4d67-9d1b-9364e7e6e84e","savedPayload":{"position":{"x":25274.11759378312,"y":20113.773973369294},"targetPosition":{"x":25388.781306631612,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"8e5db945-8507-4489-9288-21cfa1e9301c","savedPayload":{"position":{"x":25388.781306631612,"y":19821.615597786233},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"MACD 122609","code":"{\n \"codeName\": \"MACD122609\",\n \"singularVariableName\": \"macd122609\",\n \"pluralVariableName\": \"macd122609s\"\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\": \"Sparta/MACD/@Exchange/Output/MACD-122609/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc","savedPayload":{"position":{"x":25425.687400686453,"y":20066.17618789333},"targetPosition":{"x":25137.090004182985,"y":19942.823740820102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/MACD/@Exchange/Output/MACD-122609/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/MACD/@Exchange/Output/MACD-122609/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796","savedPayload":{"position":{"x":25298.065453262825,"y":20212.25126031482},"targetPosition":{"x":25137.090004182985,"y":19942.823740820102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"c30a9207-3220-4aa4-b96e-64a82200e356","savedPayload":{"position":{"x":25414.081525637437,"y":20578.883065655267},"targetPosition":{"x":25233.385292103198,"y":20729.73905869839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"16c55335-8817-4121-a068-1c2d184fd814","savedPayload":{"position":{"x":25233.385292103198,"y":20729.73905869839},"targetPosition":{"x":25052.689058568958,"y":20880.59505174151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"0f82ce78-91ac-4b61-b514-bb1a67c2ef0e","savedPayload":{"position":{"x":25521.574714029663,"y":20922.79552454853},"targetPosition":{"x":25287.13188629931,"y":20901.69528814502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"dedc2ef0-61e4-45bd-921d-187c9a6f3ae1","savedPayload":{"position":{"x":25287.13188629931,"y":20901.69528814502},"targetPosition":{"x":25052.689058568958,"y":20880.59505174151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Line","code":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.line","id":"42754005-58a0-4a8b-b839-938d11aeb0ab","savedPayload":{"position":{"x":25354.401044655202,"y":21241.98751880999},"targetPosition":{"x":25203.54505161208,"y":21061.29128527575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5fe10f78-a397-4fb1-bfeb-a506d44d60ef","savedPayload":{"position":{"x":25203.54505161208,"y":21061.29128527575},"targetPosition":{"x":25052.689058568958,"y":20880.59505174151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Signal","code":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.signal","id":"588045df-e0fb-4c07-adf3-1acd832088af","savedPayload":{"position":{"x":25010.48858576194,"y":21349.480707202216},"targetPosition":{"x":25031.58882216545,"y":21115.037879471864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2926733e-3962-4e7b-a492-7fcb437f536e","savedPayload":{"position":{"x":25031.58882216545,"y":21115.037879471864},"targetPosition":{"x":25052.689058568958,"y":20880.59505174151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA12","code":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema12","id":"d9f6340c-15cd-499b-ba74-007b4c569b22","savedPayload":{"position":{"x":24691.29659150048,"y":21182.307037827755},"targetPosition":{"x":24871.99282503472,"y":21031.451044784633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"29fb3e14-c1fd-4fa6-af1a-62b1c61ff1fc","savedPayload":{"position":{"x":24871.99282503472,"y":21031.451044784633},"targetPosition":{"x":25052.689058568958,"y":20880.59505174151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA26","code":"{\n \"codeName\": \"ema26\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema26","id":"748ed791-c88b-4776-b2cb-742758821641","savedPayload":{"position":{"x":24583.803403108253,"y":20838.394578934494},"targetPosition":{"x":24818.246230838606,"y":20859.494815338003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d1b7a8ce-c89b-4e0f-ac04-0f45d575524d","savedPayload":{"position":{"x":24818.246230838606,"y":20859.494815338003},"targetPosition":{"x":25052.689058568958,"y":20880.59505174151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Histogram","code":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.histogram","id":"9652e52e-55c0-47ee-a90c-a1a700f6b989","savedPayload":{"position":{"x":24750.977072482714,"y":20519.202584673032},"targetPosition":{"x":24901.833065525836,"y":20699.89881820727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6157c979-57a2-473c-b19f-f79bb2f12c09","savedPayload":{"position":{"x":24901.833065525836,"y":20699.89881820727},"targetPosition":{"x":25052.689058568958,"y":20880.59505174151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"7985ad16-8c8a-460f-9445-711df5e062a7","savedPayload":{"position":{"x":25052.689058568958,"y":20880.59505174151},"targetPosition":{"x":25137.090004182985,"y":19942.823740820102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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\n/* SMA Calculation */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last100.push(candle.close) // Add the current close value to the last 100 array.\n\nif (variable.last100.length > 100) {\n variable.last100.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 100 elements.\n}\n\nvariable.sma12 = calculateSMA(12)\nvariable.sma26 = calculateSMA(26)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last100.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last100.length - periods; i < variable.last100.length; i++) { // Iterate through the last periods\n sum = sum + variable.last100[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last100.length=\" + variable.last100.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last100[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}\n\n/* EMA12 and EMA26 Calculation */\n\nvariable.ema12 = calculateEMA(12, variable.sma12, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12 \n \nvariable.ema26 = calculateEMA(26, variable.sma26, variable.previousEMA26)\nvariable.previousEMA26 = variable.ema26 \n\nfunction calculateEMA(periods, currentSMA, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSMA * k + previousEMA * (1-k)\n}\n\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema12 - variable.ema26\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","id":"e1e871f6-1e87-423f-8214-ece80c4295eb","savedPayload":{"position":{"x":24869.939228064424,"y":20487.11543971257},"targetPosition":{"x":24900.266291802764,"y":20333.146806309873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c3390f8c-4865-42b1-aa00-eaa49d293121","savedPayload":{"position":{"x":24900.266291802764,"y":20333.146806309873},"targetPosition":{"x":24930.593355541103,"y":20179.178172907177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA12 = 0\nvariable.previousEMA26 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","id":"a9600d4d-ddc7-4639-a8bd-d5f6840a1f04","savedPayload":{"position":{"x":24633.584795977345,"y":20280.61879107069},"targetPosition":{"x":24782.089075759224,"y":20229.898481988934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f8ff5320-c74f-4f6e-8b15-f7284242f24e","savedPayload":{"position":{"x":24782.089075759224,"y":20229.898481988934},"targetPosition":{"x":24930.593355541103,"y":20179.178172907177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"c69aae16-d38f-4d9a-8174-4e664a22e579","savedPayload":{"position":{"x":24930.593355541103,"y":20179.178172907177},"targetPosition":{"x":25137.090004182985,"y":19942.823740820102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119","savedPayload":{"position":{"x":25137.090004182985,"y":19942.823740820102},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"MACD 031016","code":"{\n \"codeName\": \"MACD031016\",\n \"singularVariableName\": \"macd031016\",\n \"pluralVariableName\": \"macd031016s\"\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\": \"Sparta/MACD/@Exchange/Output/MACD-031016/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745","savedPayload":{"position":{"x":25064.230382685804,"y":20179.178172907177},"targetPosition":{"x":24857.733734043923,"y":19942.823740820102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/MACD/@Exchange/Output/MACD-031016/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/MACD/@Exchange/Output/MACD-031016/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"ec2611a6-699b-45a5-beec-679dd4b7734a","savedPayload":{"position":{"x":24885.86738258193,"y":20255.414177793904},"targetPosition":{"x":24857.733734043923,"y":19942.823740820102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"7e2e4448-6bc6-4c1c-9a7f-54185fea3831","savedPayload":{"position":{"x":24831.318673387235,"y":20636.075507668138},"targetPosition":{"x":24603.06303009582,"y":20693.590903486198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"399e67a5-1b3c-4f13-b1a8-c8333b013471","savedPayload":{"position":{"x":24603.06303009582,"y":20693.590903486198},"targetPosition":{"x":24374.8073868044,"y":20751.106299304258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"0e12c2f0-25f8-48c6-9920-4291c0154f92","savedPayload":{"position":{"x":24778.948666046483,"y":20992.56947292402},"targetPosition":{"x":24576.878026425442,"y":20871.83788611414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1588b3ba-04e6-498f-baeb-857c55bf0c2f","savedPayload":{"position":{"x":24576.878026425442,"y":20871.83788611414},"targetPosition":{"x":24374.8073868044,"y":20751.106299304258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Line","code":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.line","id":"5d5b5bb6-fcd8-4834-9da9-858c8fc756d6","savedPayload":{"position":{"x":24489.83817844052,"y":21207.617585887092},"targetPosition":{"x":24432.32278262246,"y":20979.361942595675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a1c75f48-5568-46da-a828-6d26a69b5021","savedPayload":{"position":{"x":24432.32278262246,"y":20979.361942595675},"targetPosition":{"x":24374.8073868044,"y":20751.106299304258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Signal","code":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.signal","id":"a42bb9fd-fb33-4c25-b3d3-7ce7c8839e08","savedPayload":{"position":{"x":24133.34421318464,"y":21155.24757854634},"targetPosition":{"x":24254.07579999452,"y":20953.1769389253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7d0b5eee-4b62-4e35-a421-e3825b0cdb2c","savedPayload":{"position":{"x":24254.07579999452,"y":20953.1769389253},"targetPosition":{"x":24374.8073868044,"y":20751.106299304258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA3","code":"{\n \"codeName\": \"ema3\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema3","id":"c725639d-6fa1-480f-b962-90be561f8464","savedPayload":{"position":{"x":23918.296100221567,"y":20866.137090940378},"targetPosition":{"x":24146.551743512984,"y":20808.621695122318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4406003b-bf04-4d4e-b9e5-fb444be155ee","savedPayload":{"position":{"x":24146.551743512984,"y":20808.621695122318},"targetPosition":{"x":24374.8073868044,"y":20751.106299304258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA10","code":"{\n \"codeName\": \"ema10\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema10","id":"fbfc968a-1b7e-48f6-935b-b40fe63bdc85","savedPayload":{"position":{"x":23970.66610756232,"y":20509.643125684495},"targetPosition":{"x":24172.73674718336,"y":20630.374712494377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d5cc4f53-cc80-457a-842f-a2259450f02f","savedPayload":{"position":{"x":24172.73674718336,"y":20630.374712494377},"targetPosition":{"x":24374.8073868044,"y":20751.106299304258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Histogram","code":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.histogram","id":"9724655b-b624-425d-b21c-87c69ede1d0a","savedPayload":{"position":{"x":24259.77659516828,"y":20294.595012721424},"targetPosition":{"x":24317.29199098634,"y":20522.85065601284},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d0f070bb-08a6-4c05-8e49-49f7b6a3aa15","savedPayload":{"position":{"x":24317.29199098634,"y":20522.85065601284},"targetPosition":{"x":24374.8073868044,"y":20751.106299304258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"b5df9321-87e6-4c0b-892b-0af0e9b47d8d","savedPayload":{"position":{"x":24374.8073868044,"y":20751.106299304258},"targetPosition":{"x":24857.733734043923,"y":19942.823740820102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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\n/* SMA Calculation */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last100.push(candle.close) // Add the current close value to the last 100 array.\n\nif (variable.last100.length > 100) {\n variable.last100.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 100 elements.\n}\n\nvariable.sma3 = calculateSMA(3)\nvariable.sma10 = calculateSMA(10)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last100.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last100.length - periods; i < variable.last100.length; i++) { // Iterate through the last periods\n sum = sum + variable.last100[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last100.length=\" + variable.last100.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last100[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}\n\n/* EMA3 and EMA10 Calculation */\n\nvariable.ema3 = calculateEMA(3, variable.sma3, variable.previousEMA3)\nvariable.previousEMA3 = variable.ema3 \n \nvariable.ema10 = calculateEMA(10, variable.sma10, variable.previousEMA10)\nvariable.previousEMA10 = variable.ema10 \n\nfunction calculateEMA(periods, currentSMA, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSMA * k + previousEMA * (1-k)\n}\n\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema3 - variable.ema10\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA16 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(16, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","id":"6e3e0c8a-7600-4cf4-aa00-a29c8e94b42a","savedPayload":{"position":{"x":24380.879884239017,"y":20317.301238929456},"targetPosition":{"x":24475.008110889736,"y":20191.738713411392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ba2052e5-b0b2-4cae-b4a8-3212eb5cbe62","savedPayload":{"position":{"x":24475.008110889736,"y":20191.738713411392},"targetPosition":{"x":24569.136337540454,"y":20066.17618789333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA3 = 0\nvariable.previousEMA10 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","id":"e009ff8c-ac89-4cff-b3c4-27777ff2173c","savedPayload":{"position":{"x":24257.527437165787,"y":20028.703842425984},"targetPosition":{"x":24413.33188735312,"y":20047.440015159656},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fba3e3c4-5cf5-4925-9e02-36981e662f0d","savedPayload":{"position":{"x":24413.33188735312,"y":20047.440015159656},"targetPosition":{"x":24569.136337540454,"y":20066.17618789333},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"6659182a-7112-4c25-8fac-69f8745f9d2f","savedPayload":{"position":{"x":24569.136337540454,"y":20066.17618789333},"targetPosition":{"x":24857.733734043923,"y":19942.823740820102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a","savedPayload":{"position":{"x":24857.733734043923,"y":19942.823740820102},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"MACD 081709","code":"{\n \"codeName\": \"MACD081709\",\n \"singularVariableName\": \"macd081709\",\n \"pluralVariableName\": \"macd081709s\"\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\": \"Sparta/MACD/@Exchange/Output/MACD-081709/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6","savedPayload":{"position":{"x":24689.53913859687,"y":20124.15912091543},"targetPosition":{"x":24606.042431595295,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/MACD/@Exchange/Output/MACD-081709/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/MACD/@Exchange/Output/MACD-081709/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"29e18539-f188-4d29-9531-25cd3ee8f282","savedPayload":{"position":{"x":24495.762065461964,"y":20115.456582526334},"targetPosition":{"x":24606.042431595295,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"94ec28d4-c1bc-4c6d-8887-75877f9a2343","savedPayload":{"position":{"x":24281.452615549988,"y":20434.752792047922},"targetPosition":{"x":24050.846392027015,"y":20387.535961119116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5135ffe3-47fa-4642-8c46-0994438d7e7a","savedPayload":{"position":{"x":24050.846392027015,"y":20387.535961119116},"targetPosition":{"x":23820.240168504042,"y":20340.31913019031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"d3388f28-900d-452f-b83c-936c50b4344e","savedPayload":{"position":{"x":24079.59193470608,"y":20733.220261735936},"targetPosition":{"x":23949.91605160506,"y":20536.76969596312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8056d769-ea76-4ec0-88ff-952921e48d2c","savedPayload":{"position":{"x":23949.91605160506,"y":20536.76969596312},"targetPosition":{"x":23820.240168504042,"y":20340.31913019031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Line","code":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.line","id":"3864df8c-ee73-4f0e-be03-718954a4dbfc","savedPayload":{"position":{"x":23725.80650664643,"y":20801.531577236256},"targetPosition":{"x":23773.023337575236,"y":20570.925353713283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a69347ff-6f46-464a-834a-4d441b8ff291","savedPayload":{"position":{"x":23773.023337575236,"y":20570.925353713283},"targetPosition":{"x":23820.240168504042,"y":20340.31913019031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Signal","code":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.signal","id":"9db26074-5aaf-4f3e-83aa-bb1064981c64","savedPayload":{"position":{"x":23427.33903695842,"y":20599.67089639235},"targetPosition":{"x":23623.78960273123,"y":20469.99501329133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cf022fb7-6c7e-432d-ae6a-fe0f4ed28116","savedPayload":{"position":{"x":23623.78960273123,"y":20469.99501329133},"targetPosition":{"x":23820.240168504042,"y":20340.31913019031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA8","code":"{\n \"codeName\": \"ema8\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema8","id":"93f62cc4-1f47-4b75-8a7c-c8dbd75b0c9f","savedPayload":{"position":{"x":23359.027721458096,"y":20245.885468332697},"targetPosition":{"x":23589.63394498107,"y":20293.102299261504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"80e1f38f-36c5-440e-a12b-f9154efede9f","savedPayload":{"position":{"x":23589.63394498107,"y":20293.102299261504},"targetPosition":{"x":23820.240168504042,"y":20340.31913019031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA17","code":"{\n \"codeName\": \"ema17\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema17","id":"73b43260-1688-460b-862c-b8fb7406cc10","savedPayload":{"position":{"x":23560.888402302004,"y":19947.417998644683},"targetPosition":{"x":23690.564285403023,"y":20143.8685644175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a2552af4-df0a-4fcf-85ae-1e35dbcb2608","savedPayload":{"position":{"x":23690.564285403023,"y":20143.8685644175},"targetPosition":{"x":23820.240168504042,"y":20340.31913019031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Histogram","code":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.histogram","id":"94cb6751-f4a9-4bad-a8a9-d53d3375a77c","savedPayload":{"position":{"x":23914.673830361655,"y":19879.106683144364},"targetPosition":{"x":23867.45699943285,"y":20109.712906667337},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"52e3a47c-f282-4edc-83cb-8bce988e054b","savedPayload":{"position":{"x":23867.45699943285,"y":20109.712906667337},"targetPosition":{"x":23820.240168504042,"y":20340.31913019031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"f5a29a3d-06eb-4298-80d0-3d6e22957829","savedPayload":{"position":{"x":23820.240168504042,"y":20340.31913019031},"targetPosition":{"x":24606.042431595295,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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\n/* SMA Calculation */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last100.push(candle.close) // Add the current close value to the last 100 array.\n\nif (variable.last100.length > 100) {\n variable.last100.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 100 elements.\n}\n\nvariable.sma8 = calculateSMA(8)\nvariable.sma17 = calculateSMA(17)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last100.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last100.length - periods; i < variable.last100.length; i++) { // Iterate through the last periods\n sum = sum + variable.last100[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last100.length=\" + variable.last100.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last100[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}\n\n/* EMA8 and EMA17 Calculation */\n\nvariable.ema8 = calculateEMA(8, variable.sma8, variable.previousEMA8)\nvariable.previousEMA8 = variable.ema8 \n \nvariable.ema17 = calculateEMA(17, variable.sma17, variable.previousEMA17)\nvariable.previousEMA17 = variable.ema17 \n\nfunction calculateEMA(periods, currentSMA, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSMA * k + previousEMA * (1-k)\n}\n\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema8 - variable.ema17\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","id":"0290fa4a-851b-4e21-b35e-61e106fc8f81","savedPayload":{"position":{"x":24013.932261286584,"y":19952.109033946792},"targetPosition":{"x":24153.218401154565,"y":19879.821814415533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2a30807-83b5-4c99-8f27-55783b4487ce","savedPayload":{"position":{"x":24153.218401154565,"y":19879.821814415533},"targetPosition":{"x":24292.504541022547,"y":19807.534594884273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA8 = 0\nvariable.previousEMA17 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","id":"b8dca759-eb3d-4b8b-8a20-99679727f272","savedPayload":{"position":{"x":24028.01326418854,"y":19638.571143374043},"targetPosition":{"x":24160.258902605543,"y":19723.05286912916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a16923a7-9b13-4526-818d-9278fdc509a0","savedPayload":{"position":{"x":24160.258902605543,"y":19723.05286912916},"targetPosition":{"x":24292.504541022547,"y":19807.534594884273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"8136f190-cf6a-4ca3-8620-7153ad82a295","savedPayload":{"position":{"x":24292.504541022547,"y":19807.534594884273},"targetPosition":{"x":24606.042431595295,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750","savedPayload":{"position":{"x":24606.042431595295,"y":19821.615597786233},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"MACD 245209","code":"{\n \"codeName\": \"MACD245209\",\n \"singularVariableName\": \"macd245209\",\n \"pluralVariableName\": \"macd245209s\"\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\": \"Sparta/MACD/@Exchange/Output/MACD-245209/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"89254c6c-9be2-4037-b063-467edc660d10","savedPayload":{"position":{"x":24375.82586459799,"y":19912.01622992944},"targetPosition":{"x":24431.8666460783,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/MACD/@Exchange/Output/MACD-245209/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/MACD/@Exchange/Output/MACD-245209/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08","savedPayload":{"position":{"x":24205.014644286268,"y":19820.09879272211},"targetPosition":{"x":24431.8666460783,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"adee537e-2c4d-4454-9006-05171c09313a","savedPayload":{"position":{"x":23873.391068545,"y":20014.789351684274},"targetPosition":{"x":23686.108655558925,"y":19872.19216645048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"38a52afc-8a7c-49c9-8068-dbe438ac64d0","savedPayload":{"position":{"x":23686.108655558925,"y":19872.19216645048},"targetPosition":{"x":23498.82624257285,"y":19729.594981216687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"83439522-7972-454e-af41-d516ee51b26f","savedPayload":{"position":{"x":23562.020697697855,"y":20196.115182969414},"targetPosition":{"x":23530.423470135353,"y":19962.85508209305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"03c98b2f-4e9c-4800-9d9b-5c6ef3f94665","savedPayload":{"position":{"x":23530.423470135353,"y":19962.85508209305},"targetPosition":{"x":23498.82624257285,"y":19729.594981216687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Line","code":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.line","id":"6aa9ee37-3044-444c-bc27-e09dd444f182","savedPayload":{"position":{"x":23213.631872105263,"y":20104.159807188837},"targetPosition":{"x":23356.229057339056,"y":19916.877394202762},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c9237bcd-4d76-4460-bcbb-8474843efc03","savedPayload":{"position":{"x":23356.229057339056,"y":19916.877394202762},"targetPosition":{"x":23498.82624257285,"y":19729.594981216687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Signal","code":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.signal","id":"35ac625e-5516-4a15-b92d-f3a5dc4d8ec0","savedPayload":{"position":{"x":23032.306040820124,"y":19792.789436341693},"targetPosition":{"x":23265.566141696487,"y":19761.19220877919},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8dd22ed9-76d1-4108-8a7f-ed4c03d7eede","savedPayload":{"position":{"x":23265.566141696487,"y":19761.19220877919},"targetPosition":{"x":23498.82624257285,"y":19729.594981216687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA24","code":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema24","id":"e56fbdd1-4b1c-484b-bcbb-6b9ec6414080","savedPayload":{"position":{"x":23124.2614166007,"y":19444.4006107491},"targetPosition":{"x":23311.543829586775,"y":19586.997795982894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"57f32362-cb33-471d-a855-2c3cddb88bf9","savedPayload":{"position":{"x":23311.543829586775,"y":19586.997795982894},"targetPosition":{"x":23498.82624257285,"y":19729.594981216687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA52","code":"{\n \"codeName\": \"ema52\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema52","id":"619feddc-3ff2-4a97-aa8b-a924b80bd099","savedPayload":{"position":{"x":23435.631787447845,"y":19263.07477946396},"targetPosition":{"x":23467.229015010347,"y":19496.334880340324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"93f3c29f-178d-44fb-8f64-21e617d2387e","savedPayload":{"position":{"x":23467.229015010347,"y":19496.334880340324},"targetPosition":{"x":23498.82624257285,"y":19729.594981216687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Histogram","code":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.histogram","id":"615f9b7a-676f-444b-8fc8-8355c8c8aef6","savedPayload":{"position":{"x":24639.603724443197,"y":18231.33567732809},"targetPosition":{"x":24069.214983508024,"y":18980.46532927239},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"650fc7dc-1ea8-426d-a720-89efdec4292e","savedPayload":{"position":{"x":24069.214983508024,"y":18980.46532927239},"targetPosition":{"x":23498.82624257285,"y":19729.594981216687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"371d2f8e-8868-4933-baee-9827c0496fc1","savedPayload":{"position":{"x":23498.82624257285,"y":19729.594981216687},"targetPosition":{"x":24431.8666460783,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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\n/* SMA Calculation */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last100.push(candle.close) // Add the current close value to the last 100 array.\n\nif (variable.last100.length > 100) {\n variable.last100.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 100 elements.\n}\n\nvariable.sma24 = calculateSMA(24)\nvariable.sma52 = calculateSMA(52)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last100.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last100.length - periods; i < variable.last100.length; i++) { // Iterate through the last periods\n sum = sum + variable.last100[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last100.length=\" + variable.last100.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last100[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}\n\n/* EMA24 and EMA52 Calculation */\n\nvariable.ema24 = calculateEMA(24, variable.sma24, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24 \n \nvariable.ema52 = calculateEMA(52, variable.sma52, variable.previousEMA52)\nvariable.previousEMA52 = variable.ema52 \n\nfunction calculateEMA(periods, currentSMA, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSMA * k + previousEMA * (1-k)\n}\n\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema24 - variable.ema52\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","id":"4f4e66a9-4791-494a-ada7-72f3d5db7415","savedPayload":{"position":{"x":23841.77483625011,"y":19463.869619749872},"targetPosition":{"x":23998.6315611021,"y":19459.17507657815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d8e07801-1e77-44a5-a232-fd672264f252","savedPayload":{"position":{"x":23998.6315611021,"y":19459.17507657815},"targetPosition":{"x":24155.488285954085,"y":19454.48053340643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA24 = 0\nvariable.previousEMA52 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","id":"5f25ca07-07ce-49a7-a397-5d2f3e89c0c3","savedPayload":{"position":{"x":23990.50037381035,"y":19187.491259625654},"targetPosition":{"x":24072.994329882218,"y":19320.985896516042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"dd01ebc2-8204-4b51-83d9-92d416521553","savedPayload":{"position":{"x":24072.994329882218,"y":19320.985896516042},"targetPosition":{"x":24155.488285954085,"y":19454.48053340643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"e1a8b841-84d8-4ddd-822b-d81fe2b9a313","savedPayload":{"position":{"x":24155.488285954085,"y":19454.48053340643},"targetPosition":{"x":24431.8666460783,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"47984765-8180-45cf-a9eb-f0a8b22d165d","savedPayload":{"position":{"x":24431.8666460783,"y":19603.206070966673},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"7724b857-30aa-4d3c-9ab7-e70895229f2a","savedPayload":{"position":{"x":24997.411869113454,"y":19330.853845765098},"targetPosition":{"x":24997.408806793872,"y":18703.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Indicator Bot","name":"RSI","code":"{\n\"codeName\": \"RSI\",\n\"repo\": \"RSI-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":"New Output Dataset","id":"41eb05b7-0222-49b7-9b62-f14f43302f8f","savedPayload":{"position":{"x":25152.95693373368,"y":20069.378408814446},"targetPosition":{"x":24806.08181220858,"y":20069.378408814446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}}],"id":"35d2683b-470d-44e0-97bb-6075e6b5cc92","savedPayload":{"position":{"x":24806.08181220858,"y":20069.378408814446},"targetPosition":{"x":24503.803780802005,"y":19894.85810601175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Ending: Olivia","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"ea692963-60c5-445b-921c-f2be614186d7","savedPayload":{"position":{"x":24678.3240836047,"y":20546.46122727091},"targetPosition":{"x":24678.3240836047,"y":20197.136137418325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"4211e16a-a54f-4049-941e-fd3be8244852","savedPayload":{"position":{"x":24376.152773801554,"y":20371.594824474552},"targetPosition":{"x":24678.3240836047,"y":20197.136137418325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"bbff3247-937a-429e-9959-c896b8207f26"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"9d9b2836-9eab-437b-9426-2cef828cd0e3","savedPayload":{"position":{"x":24375.91690886677,"y":20022.541273678507},"targetPosition":{"x":24678.3240836047,"y":20197.136137418325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"1a42abe3-eaab-444f-8687-c3930dc28a06","savedPayload":{"position":{"x":24678.3240836047,"y":20197.136137418325},"targetPosition":{"x":24503.803780802005,"y":19894.85810601175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"bbff3247-937a-429e-9959-c896b8207f26","savedPayload":{"position":{"x":24503.803780802005,"y":20243.89871161714},"targetPosition":{"x":24503.803780802005,"y":19894.85810601175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"b2babf3e-22f6-4064-b4e5-840eec9ff707","savedPayload":{"position":{"x":24171.303009915824,"y":19786.822056538207},"targetPosition":{"x":24503.803780802005,"y":19894.85810601175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"ae4d9310-3446-41b3-88b9-90978defd305","savedPayload":{"position":{"x":24201.52574939543,"y":20069.378408814446},"targetPosition":{"x":24503.803780802005,"y":19894.85810601175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"96f31416-5090-428a-be83-985a0b3ab275","savedPayload":{"position":{"x":24503.803780802005,"y":19894.85810601175},"targetPosition":{"x":24503.803780802005,"y":19196.77689480097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"New Output Dataset","id":"7539f591-7ca7-4fd5-9142-a6b470f8ef8e","savedPayload":{"position":{"x":24277.85727407329,"y":20027.542188444855},"targetPosition":{"x":24100.524178780735,"y":20027.542188444855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}}],"id":"f5a20865-68a4-4e3f-8547-afc741d7fb85","savedPayload":{"position":{"x":24100.524178780735,"y":20027.542188444855},"targetPosition":{"x":24010.185822535943,"y":19690.39485306703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"632dbd10-6cf7-453a-8e5c-4a74d33fcaf4","savedPayload":{"position":{"x":23919.84746629115,"y":20199.190240846434},"targetPosition":{"x":23919.84746629115,"y":20027.542188444855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2d1d4e5a-49c3-4d9a-958a-195d3f0949c2"}}},{"type":"Status Dependency","name":"Ending: Olivia","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"5a1a8917-5d85-4f33-b552-a314ee6c54db","savedPayload":{"position":{"x":23793.326191315973,"y":20154.063463420032},"targetPosition":{"x":23919.84746629115,"y":20027.542188444855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Starting: Charly","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"9ea493a4-33b1-445e-975d-b202994079c8","savedPayload":{"position":{"x":23747.84310378886,"y":20027.542188444855},"targetPosition":{"x":23919.84746629115,"y":20027.542188444855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"86af23c8-eb30-499a-9d88-39e0e9df06e5","savedPayload":{"position":{"x":23796.65850181071,"y":19904.353223964416},"targetPosition":{"x":23919.84746629115,"y":20027.542188444855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"6e2f9722-24f9-40dc-9e38-f4dcbbbeb38a","savedPayload":{"position":{"x":23919.84746629115,"y":20027.542188444855},"targetPosition":{"x":24010.185822535943,"y":19690.39485306703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"2d1d4e5a-49c3-4d9a-958a-195d3f0949c2","savedPayload":{"position":{"x":23763.37684340291,"y":19937.203832200063},"targetPosition":{"x":24010.185822535943,"y":19690.39485306703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"525140eb-d037-4b8d-9eef-f01574ca49ff","savedPayload":{"position":{"x":23677.82947960066,"y":19582.40573107942},"targetPosition":{"x":24010.185822535943,"y":19690.39485306703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"9162d141-5486-4a0d-a3e4-71c74060beb8","savedPayload":{"position":{"x":23673.03848715812,"y":19600.05649682224},"targetPosition":{"x":24010.185822535943,"y":19690.39485306703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"f1177bcd-22dc-425b-8f30-878844aa82b8","savedPayload":{"position":{"x":24010.185822535943,"y":19690.39485306703},"targetPosition":{"x":24503.803780802005,"y":19196.77689480097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"RSI14","code":"{\n \"codeName\": \"RSI-14\",\n \"singularVariableName\": \"rsi14\",\n \"pluralVariableName\": \"rsi14s\"\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\": \"Sparta/RSI/@Exchange/Output/RSI-14/Multi-Period-Market/@Period\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\"\n}","id":"5ec62760-e144-4496-98ab-0415a4b315ec","savedPayload":{"position":{"x":23600.56164916514,"y":19479.156676462655},"targetPosition":{"x":23805.722569591224,"y":19196.77689480097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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\": \"Sparta/RSI/@Exchange/Output/RSI-14/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"@BaseAsset_@QuotedAsset.json\",\n \"dataRange\": {\n \"filePath\": \"Sparta/RSI/@Exchange/Output/RSI-14/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.@BaseAsset_@QuotedAsset.json\"\n }\n}","id":"f1556d09-f134-4678-83fb-04002d1dcd34","savedPayload":{"position":{"x":23473.76522717861,"y":19304.63637365996},"targetPosition":{"x":23805.722569591224,"y":19196.77689480097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"069fdb18-b72b-4fd2-9255-061f7a4f0b7e","savedPayload":{"position":{"x":22830.810427964938,"y":19139.519056051173},"targetPosition":{"x":22986.309156365467,"y":19060.288496567082},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"309f6917-c246-4d84-89ac-abca872eb828","savedPayload":{"position":{"x":22986.309156365467,"y":19060.288496567082},"targetPosition":{"x":23141.807884765996,"y":18981.05793708299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"2128f049-e006-4e71-b9a5-91655bfcb290","savedPayload":{"position":{"x":22809.850542353382,"y":18873.198458224},"targetPosition":{"x":22975.82921355969,"y":18927.128197653496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"38a593cc-3232-4977-9597-18939c86bb5d","savedPayload":{"position":{"x":22975.82921355969,"y":18927.128197653496},"targetPosition":{"x":23141.807884765996,"y":18981.05793708299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Value","code":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.value","id":"c5e2ca09-53a7-4655-b0dc-242b7fbd11f0","savedPayload":{"position":{"x":22983.346765797814,"y":18670.060480281933},"targetPosition":{"x":23062.577325281905,"y":18825.55920868246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5988292a-69bf-4e2d-833b-dccb78aa32a8","savedPayload":{"position":{"x":23062.577325281905,"y":18825.55920868246},"targetPosition":{"x":23141.807884765996,"y":18981.05793708299},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}}],"id":"b12a20d9-1b6a-4525-b50c-8edf1fc3bff8","savedPayload":{"position":{"x":23141.807884765996,"y":18981.05793708299},"targetPosition":{"x":23805.722569591224,"y":19196.77689480097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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\n/* \nCalculation method credit: https://www.macroption.com/rsi-calculation/\n\nRSI Calculation Formula\n\n RSI = 100 – 100 / ( 1 + RS )\n RS = Relative Strength = AvgU / AvgD\n AvgU = average of all up moves in the last N price bars\n AvgD = average of all down moves in the last N price bars\n N = the period of RSI\n There are 3 different commonly used methods for the exact calculation of AvgU and AvgD (see details below)\n\nRSI Calculation Step by Step\n\n Calculate up moves and down moves (get U and D)\n Average the up moves and down moves (get AvgU and AvgD)\n Calculate Relative Strength (get RS)\n Calculate the Relative Strength Index (get RSI)\n*/\n\n/* Calculating Up Moves and Down Moves */\n\n//let candle = record.current // Our main dependencies are candles \n//let candlePrevious = record.previous\n\nif (record.previous !== undefined) {\n if (record.current.close > record.previous.close) {\n variable.last14U.push(record.current.close - record.previous.close) // Add win to last 14 array.\n } else {\n variable.last14U.push(0) // Add 0 to keep proper count of records in the last 14 array.\n }\n \n if (record.current.close < record.previous.close) {\n variable.last14D.push(record.previous.close - record.current.close) // Add win to last 14 array.\n } else {\n variable.last14D.push(0) // Add 0 to keep proper count of records in the last 14 array.\n }\n \n if (variable.last14U.length > 14) {\n variable.last14U.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements.\n }\n \n if (variable.last14D.length > 14) {\n variable.last14D.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements.\n }\n \n /* Calculating Averages of Up Moves and Down Moves */\n \n variable.avgU = calculateAVGU(14)\n variable.avgD = calculateAVGD(14)\n \n /* Calculating Relative Strength */\n \n if (variable.avgD > 0) {\n relativeStrength = variable.avgU / variable.avgD\n } else {\n relativeStrength = 0\n }\n\n /* Calculating RSI */\n\n relativeStrengthIndex = 100 - 100 / ( 1 + relativeStrength)\n\n if (relativeStrengthIndex !== undefined) {\n variable.value = relativeStrengthIndex.toFixed(2)\n } else {\n variable.value = 0\n }\n} else {\n variable.value = 0\n}\n\nfunction calculateAVGU(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last14U.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sumU = 0 // Initialize sum variable. \n for (let j = variable.last14U.length - periods; j < variable.last14U.length; j++) { // Iterate through the last periods\n sumU = sumU + variable.last14U[j]\n }\n let averageU = sumU / periods\n return averageU\n}\n\nfunction calculateAVGD(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last14D.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sumD = 0 // Initialize sum variable. \n for (let i = variable.last14D.length - periods; i < variable.last14D.length; i++) { // Iterate through the last periods\n sumD = sumD + variable.last14D[i]\n }\n let averageD = sumD / periods\n return averageD\n}","id":"a00ed092-3bc1-4288-979d-34c204713d65","savedPayload":{"position":{"x":23281.697189381517,"y":18772.42950891821},"targetPosition":{"x":23441.12941927333,"y":18843.413311028748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c2f8b23a-4e60-4181-9c19-ed243eb151cb","savedPayload":{"position":{"x":23441.12941927333,"y":18843.413311028748},"targetPosition":{"x":23600.56164916514,"y":18914.397113139286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* \nWe keep two separate arrays to store last 14 price increments or losses.\n*/\n\nvariable.last14U = []\nvariable.last14D = []","id":"59da2324-377e-4307-a6d1-b9cf170733ba","savedPayload":{"position":{"x":23564.076971043196,"y":18567.268588492127},"targetPosition":{"x":23582.31931010417,"y":18740.832850815706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"aca0a380-6355-42b9-876b-6932d6d13105","savedPayload":{"position":{"x":23582.31931010417,"y":18740.832850815706},"targetPosition":{"x":23600.56164916514,"y":18914.397113139286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"5c066df5-2a29-4c74-b7bc-dc5ea1329089","savedPayload":{"position":{"x":23600.56164916514,"y":18914.397113139286},"targetPosition":{"x":23805.722569591224,"y":19196.77689480097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7","savedPayload":{"position":{"x":23805.722569591224,"y":19196.77689480097},"targetPosition":{"x":24503.803780802005,"y":19196.77689480097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"RSI 14","id":"72403d40-2a64-4e51-8eaf-b1a872e4474e"}}}],"id":"276e2181-0c8d-4d56-94e0-1999ec317cb5","savedPayload":{"position":{"x":24503.803780802005,"y":19196.77689480097},"targetPosition":{"x":24997.408806793872,"y":18703.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"tradingBots":[],"plotters":[{"type":"Plotter","name":"SMA","code":"{\n\"codeName\": \"Plotter SMA\"\n}","modules":[{"type":"Plotter Module","name":"SMA Popular","code":"{\n\t\"codeName\": \"SMA-Popular\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"SMA 20 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma20","id":"81557791-d18b-472c-b152-612294f281cc","savedPayload":{"position":{"x":22445.677746949652,"y":19915.354614811506},"targetPosition":{"x":23504.748552868714,"y":19822.697925422322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b932c738-3b05-4b1f-a822-2ba7bae30252","savedPayload":{"position":{"x":23504.748552868714,"y":19822.697925422322},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 20 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma20","id":"dd573845-585b-4a89-8518-425173e02916","savedPayload":{"position":{"x":22822.111603512225,"y":18510.484336430884},"targetPosition":{"x":23692.96548115,"y":19120.26278623201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440","savedPayload":{"position":{"x":23692.96548115,"y":19120.26278623201},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 50 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma50","id":"054b7477-497f-46f9-b33e-de27dc3d494f","savedPayload":{"position":{"x":24013.509875693773,"y":17676.258285239346},"targetPosition":{"x":24288.664617240775,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"00efabf8-701d-44b1-a590-b8399149dfbb","savedPayload":{"position":{"x":24288.664617240775,"y":18703.149760636243},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 50 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma50","id":"2e18404b-0350-4720-95d1-77533ced3986","savedPayload":{"position":{"x":25462.404071023644,"y":17803.020101979222},"targetPosition":{"x":25013.11171490571,"y":18766.53066900618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"084b4468-49d2-4ad2-a716-ebc338c34248","savedPayload":{"position":{"x":25013.11171490571,"y":18766.53066900618},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 100 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma100","id":"9e730b8b-7f20-41df-9126-9d9aae2f8ca6","savedPayload":{"position":{"x":26490.840492841693,"y":18831.45652379727},"targetPosition":{"x":25527.329925814734,"y":19280.748879915205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bbacba1b-6b2d-48b7-a440-986a04c61858","savedPayload":{"position":{"x":25527.329925814734,"y":19280.748879915205},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 100 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma100","id":"922d462b-1e9f-4766-859d-330041428bc0","savedPayload":{"position":{"x":26617.60230958157,"y":20280.350719127142},"targetPosition":{"x":25590.710834184672,"y":20005.19597758014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"270a8be8-ad51-4061-abe1-a4c7234eb88a","savedPayload":{"position":{"x":25590.710834184672,"y":20005.19597758014},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 200 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma200","id":"4278cffb-da8c-458e-b014-449f8487204b","savedPayload":{"position":{"x":25783.37625839003,"y":21471.74899130869},"targetPosition":{"x":25173.597808588904,"y":20600.895113670915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cd242031-8d7a-4cee-a680-156b0be7c7c7","savedPayload":{"position":{"x":25173.597808588904,"y":20600.895113670915},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 200 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma200","id":"a3b73c57-a9b2-4a55-9232-9bacf741a933","savedPayload":{"position":{"x":24378.50598000941,"y":21848.182847871263},"targetPosition":{"x":24471.162669398593,"y":20789.1120419522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7","savedPayload":{"position":{"x":24471.162669398593,"y":20789.1120419522},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"6755d98f-e1de-4ae9-b688-d06ab9cc543e","savedPayload":{"position":{"x":24563.819358787776,"y":19730.04123603314},"targetPosition":{"x":23812.08262493788,"y":20481.777969883035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 20","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":"6368c66e-47fc-486d-8c03-e2ed303de825","savedPayload":{"position":{"x":25389.28358342878,"y":18703.149760636243},"targetPosition":{"x":25114.12884188178,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"b0d22693-8100-49e9-b92e-11a8a55a5480","savedPayload":{"position":{"x":25114.12884188178,"y":19730.04123603314},"targetPosition":{"x":24838.974100334777,"y":20756.932711430036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"d9dae274-33d5-403d-a5ff-5514104df62e","savedPayload":{"position":{"x":24305.70643314365,"y":21680.5794050388},"targetPosition":{"x":24838.974100334777,"y":20756.932711430036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 End","id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"45823ead-7d67-409c-8160-ea36496c412e","savedPayload":{"position":{"x":24306.411388868648,"y":19834.50703695406},"targetPosition":{"x":24838.974100334777,"y":20756.932711430036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 Begin","id":"b932c738-3b05-4b1f-a822-2ba7bae30252"}}}],"id":"ffe11ebb-d04f-4bf6-b6ff-43382be7c347","savedPayload":{"position":{"x":24838.974100334777,"y":20756.932711430036},"targetPosition":{"x":23812.08262493788,"y":20481.777969883035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 50","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":"b0de67a4-9a26-40ce-aa19-f5336145f871","savedPayload":{"position":{"x":26177.245126226353,"y":21233.51470373293},"targetPosition":{"x":25114.12884188178,"y":21233.51470373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"f06c2d68-11d4-40e0-99df-43a758ca0123","savedPayload":{"position":{"x":25114.12884188178,"y":21233.51470373293},"targetPosition":{"x":24087.237366484882,"y":21508.66944527993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"baf11fde-1f46-4e77-a8fe-d19a3ee8a4b2","savedPayload":{"position":{"x":23555.30646527127,"y":22430.000792297807},"targetPosition":{"x":24087.237366484882,"y":21508.66944527993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 End","id":"084b4468-49d2-4ad2-a716-ebc338c34248"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"bb6ef8cd-1473-4200-9c0e-35b5eab40259","savedPayload":{"position":{"x":23556.10616735958,"y":20588.723222909928},"targetPosition":{"x":24087.237366484882,"y":21508.66944527993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 Begin","id":"00efabf8-701d-44b1-a590-b8399149dfbb"}}}],"id":"c867bef2-aa91-4753-9b27-68f88d42370e","savedPayload":{"position":{"x":24087.237366484882,"y":21508.66944527993},"targetPosition":{"x":23812.08262493788,"y":20481.777969883035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 100","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.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":"b03ef9cb-fef3-4a54-bf5a-a85528fa2699","savedPayload":{"position":{"x":24875.198909282455,"y":21985.251437582825},"targetPosition":{"x":23812.08262493788,"y":21985.251437582825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"baf25122-e7de-4283-b638-cfe2766220ac","savedPayload":{"position":{"x":23812.08262493788,"y":21985.251437582825},"targetPosition":{"x":23060.345891087985,"y":21233.51470373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"8657980b-1796-4291-bba6-87520122b302","savedPayload":{"position":{"x":22529.228363094433,"y":22153.43724700815},"targetPosition":{"x":23060.345891087985,"y":21233.51470373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 Begin","id":"bbacba1b-6b2d-48b7-a440-986a04c61858"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"45403abf-a4b1-4f8a-9d18-8ee72fef1792","savedPayload":{"position":{"x":22528.430670991213,"y":20312.21051720614},"targetPosition":{"x":23060.345891087985,"y":21233.51470373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 End","id":"270a8be8-ad51-4061-abe1-a4c7234eb88a"}}}],"id":"7473f9b9-7737-4ee1-8418-39b96d8365c3","savedPayload":{"position":{"x":23060.345891087985,"y":21233.51470373293},"targetPosition":{"x":23812.08262493788,"y":20481.777969883035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 200","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.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":"9475aa23-1561-45f6-8129-9d7ffaf0bb22","savedPayload":{"position":{"x":22234.88166644698,"y":22260.406179129826},"targetPosition":{"x":22510.036407993983,"y":21233.51470373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"9007d9ad-f2b5-45fb-a7b3-b9579c74866d","savedPayload":{"position":{"x":22510.036407993983,"y":21233.51470373293},"targetPosition":{"x":22785.191149540984,"y":20206.623228336033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"0b3d001b-060a-4d72-94e7-d8e9f76ef1ae","savedPayload":{"position":{"x":22254.427255000875,"y":21125.93326050263},"targetPosition":{"x":22785.191149540984,"y":20206.623228336033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 Begin","id":"cd242031-8d7a-4cee-a680-156b0be7c7c7"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"178f2776-a5db-4cb9-b8c7-11ecb471bf12","savedPayload":{"position":{"x":22253.422268046197,"y":19285.57250770299},"targetPosition":{"x":22785.191149540984,"y":20206.623228336033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 End","id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7"}}}],"id":"5dbe47bb-9414-4edd-be08-5ab50755a852","savedPayload":{"position":{"x":22785.191149540984,"y":20206.623228336033},"targetPosition":{"x":23812.08262493788,"y":20481.777969883035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"340dc986-ccc9-4b47-ac54-294187daa2e0","savedPayload":{"position":{"x":23812.08262493788,"y":20481.777969883035},"targetPosition":{"x":23536.92788339088,"y":19454.886494486138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"Popular SMA","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"SMA 20","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma20","id":"4f901876-b274-426e-9755-529b6241890d","savedPayload":{"position":{"x":22621.314822671222,"y":21303.050393789206},"targetPosition":{"x":22565.675615332602,"y":20241.39107336417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"57d75985-febe-441b-be12-31f5eb10881b","savedPayload":{"position":{"x":22565.675615332602,"y":20241.39107336417},"targetPosition":{"x":22510.036407993983,"y":19179.731752939137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Panel Data","name":"SMA 50","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma50","id":"dc2d66e9-8dc1-4092-bfa8-e147c7cf7226","savedPayload":{"position":{"x":20525.027299684923,"y":19941.705358836705},"targetPosition":{"x":21517.531853839453,"y":19560.71855588792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"74e3faab-246a-4c05-ae0a-b68f2095aa73","savedPayload":{"position":{"x":21517.531853839453,"y":19560.71855588792},"targetPosition":{"x":22510.036407993983,"y":19179.731752939137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Panel Data","name":"SMA 100","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma100","id":"1b045b3c-13a9-4091-a804-0040340cf1be","savedPayload":{"position":{"x":21171.954896403622,"y":17527.33869906408},"targetPosition":{"x":21840.995652198802,"y":18353.535226001608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f46c7caf-8907-4cc4-b048-efe691a24049","savedPayload":{"position":{"x":21840.995652198802,"y":18353.535226001608},"targetPosition":{"x":22510.036407993983,"y":19179.731752939137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Panel Data","name":"SMA 200","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma200","id":"ef7a7e7d-dec3-4da6-9646-d087e03b7a71","savedPayload":{"position":{"x":23668.065662422363,"y":17396.523076972546},"targetPosition":{"x":23089.051035208173,"y":18288.12741495584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8e1108c8-e8a4-4ae8-b6b1-765c4292580a","savedPayload":{"position":{"x":23089.051035208173,"y":18288.12741495584},"targetPosition":{"x":22510.036407993983,"y":19179.731752939137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"7fc74763-c245-4b23-8121-7fe0d1e8e1db","savedPayload":{"position":{"x":22510.036407993983,"y":19179.731752939137},"targetPosition":{"x":23536.92788339088,"y":19454.886494486138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa","savedPayload":{"position":{"x":23536.92788339088,"y":19454.886494486138},"targetPosition":{"x":24288.664617240775,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},{"type":"Plotter Module","name":"SMA Base 11","code":"{\n\t\"codeName\": \"SMA-Base11\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"SMA 11 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma11","id":"ab8c79b6-26ed-436e-a9ed-5581e48403a9","savedPayload":{"position":{"x":23104.383409877213,"y":18947.68491838069},"targetPosition":{"x":23182.201204245008,"y":19055.4068731373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"77d02772-853e-4e30-9efe-7bea8e829d51","savedPayload":{"position":{"x":23182.201204245008,"y":19055.4068731373},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 11 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma11","id":"e7f8c6de-4085-4886-ad93-c207274eb90c","savedPayload":{"position":{"x":23245.567781109778,"y":18897.74292596976},"targetPosition":{"x":23252.79338986129,"y":19030.435876931835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"185ca2e7-b561-4ce4-b219-bd54496885b5","savedPayload":{"position":{"x":23252.79338986129,"y":19030.435876931835},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 22 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma22","id":"0c62dd54-916a-4187-be47-0715604a0632","savedPayload":{"position":{"x":23391.340311792133,"y":18932.059082292566},"targetPosition":{"x":23325.679655202468,"y":19047.593955093238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578","savedPayload":{"position":{"x":23325.679655202468,"y":19047.593955093238},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 22 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma22","id":"f1d537b7-09a0-4031-8565-02ea33b66261","savedPayload":{"position":{"x":23495.41925341211,"y":19039.738250182992},"targetPosition":{"x":23377.719126012456,"y":19101.43353903845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951","savedPayload":{"position":{"x":23377.719126012456,"y":19101.43353903845},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 33 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma33","id":"5cbdb800-4b2b-49e6-a8ef-678587ecd626","savedPayload":{"position":{"x":23524.76027739203,"y":19186.59305466048},"targetPosition":{"x":23392.389638002416,"y":19174.860941277195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810","savedPayload":{"position":{"x":23392.389638002416,"y":19174.860941277195},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 33 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma33","id":"d7051dab-455d-4d02-8e0b-59139c3546d3","savedPayload":{"position":{"x":23470.047815932034,"y":19325.998132929883},"targetPosition":{"x":23365.033407272418,"y":19244.563480411896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ce242fe6-2b52-4b89-a203-ce398b3545fd","savedPayload":{"position":{"x":23365.033407272418,"y":19244.563480411896},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 55 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma55","id":"2c8a5860-2c8c-4a04-b0aa-d353817d3dab","savedPayload":{"position":{"x":23348.652688965885,"y":19413.693357629876},"targetPosition":{"x":23304.335843789344,"y":19288.411092761893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532","savedPayload":{"position":{"x":23304.335843789344,"y":19288.411092761893},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 55 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma55","id":"62dfcbf0-e773-41db-80e0-bf46d47d977f","savedPayload":{"position":{"x":23199.11699156837,"y":19421.836114543075},"targetPosition":{"x":23229.567995090587,"y":19292.482471218493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a","savedPayload":{"position":{"x":23229.567995090587,"y":19292.482471218493},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 111 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma111","id":"b496251d-8005-4d21-9be0-1dec58cb58ba","savedPayload":{"position":{"x":23068.91725109444,"y":19347.8411358835},"targetPosition":{"x":23164.46812485362,"y":19255.484981888705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"62ed1060-3233-4175-a4cc-8ad04a123105","savedPayload":{"position":{"x":23164.46812485362,"y":19255.484981888705},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 11 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma111","id":"3e765b91-17a0-4b30-bcfb-d7491afa9635","savedPayload":{"position":{"x":22999.390965197163,"y":19215.20130455203},"targetPosition":{"x":23129.704981904983,"y":19189.16506622297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bdee0fe7-c635-483d-b547-6271410cc35a","savedPayload":{"position":{"x":23129.704981904983,"y":19189.16506622297},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"853ae08f-85ed-48e9-82d9-7f00184ff7e7","savedPayload":{"position":{"x":23260.018998612803,"y":19163.12882789391},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 11","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":"a36a0be4-c3be-4e17-8459-ce24d08c60d4","savedPayload":{"position":{"x":22675.56013112633,"y":19614.934495709436},"targetPosition":{"x":22673.075247451146,"y":19482.068194451465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"bc76dbe0-28fe-4811-b396-583cc810ad8c","savedPayload":{"position":{"x":22673.075247451146,"y":19482.068194451465},"targetPosition":{"x":22668.105480100778,"y":19216.33559193552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"007b0aa7-d129-4b66-97b1-a223b61465a9","savedPayload":{"position":{"x":22411.70604576943,"y":19285.0376133044},"targetPosition":{"x":22668.105480100778,"y":19216.33559193552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 Begin","id":"77d02772-853e-4e30-9efe-7bea8e829d51"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"8bf6c449-35d6-44c0-ac25-0da059e0c7d0","savedPayload":{"position":{"x":22413.13060514304,"y":19148.015280100368},"targetPosition":{"x":22668.105480100778,"y":19216.33559193552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"185ca2e7-b561-4ce4-b219-bd54496885b5"}}}],"id":"82eff706-25ff-45ba-b066-0f20b64e26e1","savedPayload":{"position":{"x":22668.105480100778,"y":19216.33559193552},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 22","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":"48b5e69c-d187-40f8-aee9-89f02ac7b442","savedPayload":{"position":{"x":22404.146458351162,"y":19512.064165086373},"targetPosition":{"x":22459.556183111992,"y":19391.277613439335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"13b6ae03-77c1-473a-9cd9-eee42cab5005","savedPayload":{"position":{"x":22459.556183111992,"y":19391.277613439335},"targetPosition":{"x":22570.375632633648,"y":19149.70451014526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5101118b-d0b2-46b3-b752-c1e8f3e09842","savedPayload":{"position":{"x":22325.174677473038,"y":19215.405908063887},"targetPosition":{"x":22570.375632633648,"y":19149.70451014526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 End","id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5d1290b9-98c2-4925-9da4-fcdf50d13c5b","savedPayload":{"position":{"x":22315.94012362794,"y":19081.52872098138},"targetPosition":{"x":22570.375632633648,"y":19149.70451014526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 Begin","id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578"}}}],"id":"b7186c69-0a02-4820-bb58-1e2cee5790b3","savedPayload":{"position":{"x":22570.375632633648,"y":19149.70451014526},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 33","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.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":"a8183072-9dc8-4f7c-b72b-742477e4c8fd","savedPayload":{"position":{"x":22204.24495255267,"y":19301.61922057285},"targetPosition":{"x":22306.574710204954,"y":19216.835676440285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"98a87528-cb66-4e15-a3b0-aadb8d25fcec","savedPayload":{"position":{"x":22306.574710204954,"y":19216.835676440285},"targetPosition":{"x":22511.234225509517,"y":19047.268588175153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"242e470b-2971-40b2-9f06-a95bf95e23fc","savedPayload":{"position":{"x":22254.197913212734,"y":19116.14126048055},"targetPosition":{"x":22511.234225509517,"y":19047.268588175153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 End","id":"ce242fe6-2b52-4b89-a203-ce398b3545fd"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"106e4253-deab-440c-828a-ea55aea78c97","savedPayload":{"position":{"x":22261.20656242211,"y":18980.27387776544},"targetPosition":{"x":22511.234225509517,"y":19047.268588175153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 Begin","id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810"}}}],"id":"53f19bad-dcb0-476f-8b32-0d332d1ad130","savedPayload":{"position":{"x":22511.234225509517,"y":19047.268588175153},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 55","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.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":"ea853676-6bdc-4723-a515-1a4c683fa1fa","savedPayload":{"position":{"x":22115.448558585336,"y":19025.280864367633},"targetPosition":{"x":22244.430685633917,"y":18993.292748466924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"1fd3b244-b5ae-4a96-add5-50b228eac931","savedPayload":{"position":{"x":22244.430685633917,"y":18993.292748466924},"targetPosition":{"x":22502.39493973108,"y":18929.31651666551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"c0102a15-8594-4582-9714-75e555e3f2ac","savedPayload":{"position":{"x":22248.013708413502,"y":18997.477762166687},"targetPosition":{"x":22502.39493973108,"y":18929.31651666551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 End","id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"aa781190-aa71-4407-bc72-db67ffd67c7e","savedPayload":{"position":{"x":22245.41200628502,"y":18860.458147180056},"targetPosition":{"x":22502.39493973108,"y":18929.31651666551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 Begin","id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532"}}}],"id":"8341d899-4df1-47f8-8e0d-bb87b76ed622","savedPayload":{"position":{"x":22502.39493973108,"y":18929.31651666551},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 111","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.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"85056d46-5dd2-4dc2-9c40-55ef936aeea8","savedPayload":{"position":{"x":22155.34449129069,"y":18737.7812969847},"targetPosition":{"x":22285.432495611618,"y":18764.92424797848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"bd5b197d-7425-461d-a2ab-5ad6446d00ee","savedPayload":{"position":{"x":22285.432495611618,"y":18764.92424797848},"targetPosition":{"x":22545.60850425348,"y":18819.210149966046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"fbd2d02d-d58e-4d04-a5a6-9bbc6e877244","savedPayload":{"position":{"x":22291.08163242037,"y":18887.410419725747},"targetPosition":{"x":22545.60850425348,"y":18819.210149966046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"bdee0fe7-c635-483d-b547-6271410cc35a"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e79d988b-7d4a-4201-839a-a95f99dc26fe","savedPayload":{"position":{"x":22285.543335014772,"y":18749.52589788907},"targetPosition":{"x":22545.60850425348,"y":18819.210149966046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 111 Begin","id":"62ed1060-3233-4175-a4cc-8ad04a123105"}}}],"id":"5745a180-5f94-4109-b8e5-41b2c21e9f1a","savedPayload":{"position":{"x":22545.60850425348,"y":18819.210149966046},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"ade8af76-e9e6-4dda-8921-c3c5cc8a0ecc","savedPayload":{"position":{"x":22765.205478186537,"y":18968.928831722387},"targetPosition":{"x":23225.5483328962,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 11","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"SMA 11","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma11","id":"bce6e5ba-e93b-4c0f-9013-db467727e721","savedPayload":{"position":{"x":22765.205478186537,"y":18703.149760636243},"targetPosition":{"x":22765.205478186537,"y":18570.26022509317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f4794965-6a35-4289-9e0e-718b931028de","savedPayload":{"position":{"x":22765.205478186537,"y":18570.26022509317},"targetPosition":{"x":22765.205478186537,"y":18437.370689550098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 22","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma22","id":"e8837d50-025b-4bbc-8199-328df7afbdda","savedPayload":{"position":{"x":22535.03405083171,"y":18570.26022509317},"targetPosition":{"x":22650.119764509123,"y":18503.815457321634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2b4712d6-5952-4bd0-bcac-7d396d95f842","savedPayload":{"position":{"x":22650.119764509123,"y":18503.815457321634},"targetPosition":{"x":22765.205478186537,"y":18437.370689550098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 33","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma33","id":"825bc681-cb31-4d26-85af-4f692538fc9d","savedPayload":{"position":{"x":22535.03405083171,"y":18304.481154007026},"targetPosition":{"x":22650.119764509123,"y":18370.925921778562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"377ff3cb-9d7b-45aa-a2c1-3cabf3540c8e","savedPayload":{"position":{"x":22650.119764509123,"y":18370.925921778562},"targetPosition":{"x":22765.205478186537,"y":18437.370689550098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 55","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma55","id":"24c4a804-6686-43ab-a664-db08d860034c","savedPayload":{"position":{"x":22765.205478186537,"y":18171.591618463954},"targetPosition":{"x":22765.205478186537,"y":18304.481154007026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4b0485d9-4d37-4402-939b-eb878c6750ec","savedPayload":{"position":{"x":22765.205478186537,"y":18304.481154007026},"targetPosition":{"x":22765.205478186537,"y":18437.370689550098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 111","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma111","id":"3d21e771-7edd-4460-aa23-da3c7880a629","savedPayload":{"position":{"x":22995.376905541365,"y":18304.481154007026},"targetPosition":{"x":22880.29119186395,"y":18370.925921778562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"738b01bd-a4da-4f90-a816-c021eeb81030","savedPayload":{"position":{"x":22880.29119186395,"y":18370.925921778562},"targetPosition":{"x":22765.205478186537,"y":18437.370689550098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"fc702308-8514-4e8d-85d3-5d052aad782c","savedPayload":{"position":{"x":22765.205478186537,"y":18437.370689550098},"targetPosition":{"x":23225.5483328962,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00","savedPayload":{"position":{"x":23225.5483328962,"y":18703.149760636243},"targetPosition":{"x":24288.664617240775,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},{"type":"Plotter Module","name":"SMA Base 7","code":"{\n\t\"codeName\": \"SMA-Base7\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"SMA 7 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma7","id":"b459dee1-24d0-4794-9c4d-d9c58972f6e6","savedPayload":{"position":{"x":23526.8384356021,"y":18095.61365382551},"targetPosition":{"x":23651.028657572213,"y":18330.593021844124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340","savedPayload":{"position":{"x":23651.028657572213,"y":18330.593021844124},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 7 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma7","id":"3994ef79-ab0b-4552-bbde-f754a86f2e04","savedPayload":{"position":{"x":23676.396051030544,"y":18043.28118079008},"targetPosition":{"x":23725.807465286434,"y":18304.42678532641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9","savedPayload":{"position":{"x":23725.807465286434,"y":18304.42678532641},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 14 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma14","id":"78e7fbfb-c210-44b6-8399-1567f81c73c9","savedPayload":{"position":{"x":23834.73450844909,"y":18037.356573717967},"targetPosition":{"x":23804.976693995708,"y":18301.464481790354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d5f823d6-8b99-44b5-99dc-04724a531323","savedPayload":{"position":{"x":23804.976693995708,"y":18301.464481790354},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 14 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma14","id":"40d386cb-84a9-49b0-b28e-3d39e9e274cb","savedPayload":{"position":{"x":23987.78474105924,"y":18078.366259947252},"targetPosition":{"x":23881.501810300782,"y":18321.969324904996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8","savedPayload":{"position":{"x":23881.501810300782,"y":18321.969324904996},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 21 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma21","id":"6d2cd604-9a38-4ab7-b19d-9e9e3ae8ad25","savedPayload":{"position":{"x":24121.94756404369,"y":18162.666348888415},"targetPosition":{"x":23948.583221793007,"y":18364.119369375578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1","savedPayload":{"position":{"x":23948.583221793007,"y":18364.119369375578},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 21 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma21","id":"1de80488-5eeb-491c-bd5f-e5bd7569dc59","savedPayload":{"position":{"x":24225.302021816427,"y":18282.766407694187},"targetPosition":{"x":24000.260450679376,"y":18424.169398778464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"df7e58c1-c042-443b-bfd3-69d57894d358","savedPayload":{"position":{"x":24000.260450679376,"y":18424.169398778464},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 28 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma28","id":"93b50d69-b003-4590-b098-ff59dc226e22","savedPayload":{"position":{"x":24288.664617240775,"y":18427.99501908924},"targetPosition":{"x":24031.94174839155,"y":18496.78370447599},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88","savedPayload":{"position":{"x":24031.94174839155,"y":18496.78370447599},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 28 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma28","id":"36ddca01-d7c2-44e4-bac6-1efd92721b56","savedPayload":{"position":{"x":24306.4053056511,"y":18585.44798362587},"targetPosition":{"x":24040.812092596712,"y":18575.510186744305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7678774b-b068-4757-962b-8e126342898a","savedPayload":{"position":{"x":24040.812092596712,"y":18575.510186744305},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 35 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma35","id":"e631b84b-646b-41f7-b87b-7cb4fbf8ac76","savedPayload":{"position":{"x":24276.94774902843,"y":18741.134914434035},"targetPosition":{"x":24026.083314285377,"y":18653.353652148387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"93613bd9-2dbb-493c-a72e-414b0398733e","savedPayload":{"position":{"x":24026.083314285377,"y":18653.353652148387},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 35 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma35","id":"89e3900f-eeaf-47cb-97f6-9093b2f39811","savedPayload":{"position":{"x":24202.909380551042,"y":18881.22234449059},"targetPosition":{"x":23989.06413004668,"y":18723.397367176665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f620fdbe-48b5-4831-995d-b3c721738d1b","savedPayload":{"position":{"x":23989.06413004668,"y":18723.397367176665},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 70 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma70","id":"cacaceaf-b19d-4b2a-81b3-5ac6b44877b7","savedPayload":{"position":{"x":24090.868834170178,"y":18993.26289087146},"targetPosition":{"x":23933.043856856253,"y":18779.4176403671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21","savedPayload":{"position":{"x":23933.043856856253,"y":18779.4176403671},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 70 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma70","id":"8658d660-52c4-41f8-b423-db569ff19941","savedPayload":{"position":{"x":23950.78140411362,"y":19067.301259348846},"targetPosition":{"x":23863.00014182797,"y":18816.436824605793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8392e1ff-33a6-4b95-baad-3f146bd3c121","savedPayload":{"position":{"x":23863.00014182797,"y":18816.436824605793},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 140 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma140","id":"a56e674e-ec4f-4448-a8bc-bfbc3a02eea4","savedPayload":{"position":{"x":23795.094473305453,"y":19096.758815971516},"targetPosition":{"x":23785.15667642389,"y":18831.165602917128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"39e65adb-6125-4e9a-8f15-5403b21aac40","savedPayload":{"position":{"x":23785.15667642389,"y":18831.165602917128},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 140 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma140","id":"9aeb4594-c7e0-41e1-83b3-8df31b0d44b0","savedPayload":{"position":{"x":23637.641508768826,"y":19079.01812756119},"targetPosition":{"x":23706.430194155575,"y":18822.295258711965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7559cbf5-acba-4a60-91b4-d95f90293f22","savedPayload":{"position":{"x":23706.430194155575,"y":18822.295258711965},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 210 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma210","id":"8856ee41-b264-4468-9dac-eb808b483df3","savedPayload":{"position":{"x":23492.41289737377,"y":19015.655532136843},"targetPosition":{"x":23633.815888458048,"y":18790.61396099979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"479df802-576f-45f1-8322-6b2e493c5ecc","savedPayload":{"position":{"x":23633.815888458048,"y":18790.61396099979},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 210 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma210","id":"f4fa8a22-fe87-4174-bf51-cb574381ca0d","savedPayload":{"position":{"x":23372.312838568,"y":18912.301074364106},"targetPosition":{"x":23573.765859055162,"y":18738.936732113423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10","savedPayload":{"position":{"x":23573.765859055162,"y":18738.936732113423},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 280 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma280","id":"49f183b2-f8d1-4055-947d-291b7787d846","savedPayload":{"position":{"x":23288.012749626836,"y":18778.138251379656},"targetPosition":{"x":23531.61581458458,"y":18671.8553206212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e","savedPayload":{"position":{"x":23531.61581458458,"y":18671.8553206212},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 280 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma280","id":"012f6580-f9e9-47f6-b6f4-82598b8e8aa7","savedPayload":{"position":{"x":23247.00306339755,"y":18625.088018769507},"targetPosition":{"x":23511.110971469938,"y":18595.330204316124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34","savedPayload":{"position":{"x":23511.110971469938,"y":18595.330204316124},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 350 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma350","id":"4a3f6588-26e3-446b-ac4e-54ad3bc9ef3c","savedPayload":{"position":{"x":23252.927670469664,"y":18466.74956135096},"targetPosition":{"x":23514.073275005994,"y":18516.16097560685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f3c05d30-da2e-449e-8471-dcc216f4e630","savedPayload":{"position":{"x":23514.073275005994,"y":18516.16097560685},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 350 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma350","id":"1157762f-1236-43b1-a399-06d59a992d55","savedPayload":{"position":{"x":23305.260143505093,"y":18317.191945922517},"targetPosition":{"x":23540.23951152371,"y":18441.38216789263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d6598381-9b15-4cb3-afba-b85ed6770ce3","savedPayload":{"position":{"x":23540.23951152371,"y":18441.38216789263},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"e561ee2d-8458-4001-8904-61cd2a3a815e","savedPayload":{"position":{"x":23775.218879542324,"y":18565.57238986274},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 7","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":"38522e0c-85c4-49ae-93ac-9a04470855e0","savedPayload":{"position":{"x":22426.12536808489,"y":18521.18485472898},"targetPosition":{"x":22499.95483831242,"y":18410.69124413192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"fcc0c4b0-28ea-4482-8da8-16a0c88c1e52","savedPayload":{"position":{"x":22499.95483831242,"y":18410.69124413192},"targetPosition":{"x":22647.61377876748,"y":18189.704022937793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"f11dbba2-2bd3-4d0a-a182-2ef78a492d32","savedPayload":{"position":{"x":22393.22914329763,"y":18257.866180578825},"targetPosition":{"x":22647.61377876748,"y":18189.704022937793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 End","id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"c50700bc-305d-4cb6-b1bf-1c03c7459d2b","savedPayload":{"position":{"x":22384.965683459995,"y":18155.12574520399},"targetPosition":{"x":22647.61377876748,"y":18189.704022937793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 Begin","id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340"}}}],"id":"62ad882d-f16d-4476-8c17-0f6e2d6e2b76","savedPayload":{"position":{"x":22647.61377876748,"y":18189.704022937793},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 14","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":"14a21030-fa6b-44ef-8cb2-e4f3cb79126e","savedPayload":{"position":{"x":22263.404362526744,"y":18342.475204491737},"targetPosition":{"x":22363.31600534542,"y":18254.855045360822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"ca2fa8f2-f6a1-4084-8606-a35495dfd596","savedPayload":{"position":{"x":22363.31600534542,"y":18254.855045360822},"targetPosition":{"x":22563.139290982766,"y":18079.61472709899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e7d170e8-3d4f-4a55-883a-3a3394fef2af","savedPayload":{"position":{"x":22310.466780048806,"y":18147.31812235329},"targetPosition":{"x":22563.139290982766,"y":18079.61472709899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 Begin","id":"d5f823d6-8b99-44b5-99dc-04724a531323"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2383789a-4600-4b8b-a49b-51cbeb46d4f1","savedPayload":{"position":{"x":22299.20607069332,"y":18044.8672594516},"targetPosition":{"x":22563.139290982766,"y":18079.61472709899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 End","id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8"}}}],"id":"ab179cef-53c3-46f7-a83b-af29ccd8bc90","savedPayload":{"position":{"x":22563.139290982766,"y":18079.61472709899},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 21","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.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":"f8f0733e-0890-4d54-8d77-1b1fc8b8c92b","savedPayload":{"position":{"x":22152.481401803416,"y":18127.739642643817},"targetPosition":{"x":22271.666403866937,"y":18068.96410402466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"a0f2de63-1abd-4945-9c8c-84e21fd121e0","savedPayload":{"position":{"x":22271.666403866937,"y":18068.96410402466},"targetPosition":{"x":22510.03640799398,"y":17951.413026786347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"69c3f249-07bf-4a03-b8a1-9d74d0255f23","savedPayload":{"position":{"x":22242.814745001044,"y":17986.593426128824},"targetPosition":{"x":22510.03640799398,"y":17951.413026786347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 End","id":"df7e58c1-c042-443b-bfd3-69d57894d358"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"959961b9-9bf9-48ce-9ee0-08d2d6a62b8e","savedPayload":{"position":{"x":22247.20768156017,"y":17916.810968513622},"targetPosition":{"x":22510.03640799398,"y":17951.413026786347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 Begin","id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1"}}}],"id":"9a17429f-8213-4a7e-8167-dc36d761973e","savedPayload":{"position":{"x":22510.03640799398,"y":17951.413026786347},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 28","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.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":"713c60e9-ee11-4551-ab62-58ce9c16e066","savedPayload":{"position":{"x":22100.915702379338,"y":17891.61204285786},"targetPosition":{"x":22231.251802759605,"y":17865.686580576188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"725a4d2f-0838-4d78-a8fa-a2b129feda2f","savedPayload":{"position":{"x":22231.251802759605,"y":17865.686580576188},"targetPosition":{"x":22491.92400352014,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"f4c161f4-6510-47a2-97f7-3f9f848d9892","savedPayload":{"position":{"x":22229.16331765731,"y":17848.428756574463},"targetPosition":{"x":22491.92400352014,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 Begin","id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b1b22a6f-0a69-401f-90ea-2306baee0ea2","savedPayload":{"position":{"x":22226.599147979254,"y":17778.90497610887},"targetPosition":{"x":22491.92400352014,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 End","id":"7678774b-b068-4757-962b-8e126342898a"}}}],"id":"4f6e0c60-00a8-4a76-b1b1-4eaa25c5824c","savedPayload":{"position":{"x":22491.92400352014,"y":17813.835656012845},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 35","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.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"73f591c5-286b-4441-aa59-f647f738e40e","savedPayload":{"position":{"x":21979.61637260723,"y":17641.492719373517},"targetPosition":{"x":22244.826390300605,"y":17658.87550230643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c56cb10-43c9-447b-8b8a-30dae8e7fab8","savedPayload":{"position":{"x":22244.826390300605,"y":17658.87550230643},"targetPosition":{"x":22510.03640799398,"y":17676.258285239343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"3ad24108-1339-4c6d-abc6-27a9aa5bc046","savedPayload":{"position":{"x":22247.04973297709,"y":17710.88113783752},"targetPosition":{"x":22510.03640799398,"y":17676.258285239343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 End","id":"f620fdbe-48b5-4831-995d-b3c721738d1b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"abfdefe3-b9d4-4816-b2cc-7aa64bb69734","savedPayload":{"position":{"x":22248.236369101152,"y":17641.791656250625},"targetPosition":{"x":22510.03640799398,"y":17676.258285239343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 Begin","id":"93613bd9-2dbb-493c-a72e-414b0398733e"}}}],"id":"a8a09eca-7bee-4f17-b7db-1f43f419441c","savedPayload":{"position":{"x":22510.03640799398,"y":17676.258285239343},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 70","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.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"9ac33f9d-bce7-407a-8de9-3334bb263b69","savedPayload":{"position":{"x":22059.790870581386,"y":17377.192819929296},"targetPosition":{"x":22311.465080782076,"y":17462.624702428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ea184e1f-5a0f-4ed3-b3ed-6ba18e7237f9","savedPayload":{"position":{"x":22311.465080782076,"y":17462.624702428},"targetPosition":{"x":22563.139290982766,"y":17548.0565849267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5505dd50-5ad7-48fc-9256-14cab581d92f","savedPayload":{"position":{"x":22296.90932146149,"y":17583.106425346792},"targetPosition":{"x":22563.139290982766,"y":17548.0565849267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 Begin","id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b255b251-b73a-469c-a41f-e273d2909af2","savedPayload":{"position":{"x":22301.563910862686,"y":17513.61953282652},"targetPosition":{"x":22563.139290982766,"y":17548.0565849267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 End","id":"8392e1ff-33a6-4b95-baad-3f146bd3c121"}}}],"id":"31cf093b-6de4-4e4a-a8f4-f3ff989dd374","savedPayload":{"position":{"x":22563.139290982766,"y":17548.0565849267},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 140","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.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"e9088da2-eb17-4e48-9fba-5bd00fba6a2b","savedPayload":{"position":{"x":22205.63933637923,"y":17142.649408177775},"targetPosition":{"x":22426.626557573356,"y":17290.308348632836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b93ae9ca-6c4e-47db-a998-045e845ab9cd","savedPayload":{"position":{"x":22426.626557573356,"y":17290.308348632836},"targetPosition":{"x":22647.61377876748,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e1bdea5b-664c-4146-adf6-858405354f8c","savedPayload":{"position":{"x":22386.214834678496,"y":17472.38111294392},"targetPosition":{"x":22647.61377876748,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 Begin","id":"39e65adb-6125-4e9a-8f15-5403b21aac40"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"3d994072-d0b7-4065-a8be-3c718de28086","savedPayload":{"position":{"x":22385.325100838836,"y":17403.436329549695},"targetPosition":{"x":22647.61377876748,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 End","id":"7559cbf5-acba-4a60-91b4-d95f90293f22"}}}],"id":"41a149aa-efdf-4f53-82cf-cce9e904a000","savedPayload":{"position":{"x":22647.61377876748,"y":17437.967289087897},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 210","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.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"08949257-633e-4013-b770-bbb798972d2d","savedPayload":{"position":{"x":22407.22243808262,"y":16953.84623002849},"targetPosition":{"x":22582.462756344452,"y":17153.669515665835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"53e088d8-8ec5-4dbe-b732-c65f31005105","savedPayload":{"position":{"x":22582.462756344452,"y":17153.669515665835},"targetPosition":{"x":22757.703074606285,"y":17353.492801303182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"15882e16-4782-48e8-9cac-fbb1d07ae51d","savedPayload":{"position":{"x":22493.397929461273,"y":17388.289233786723},"targetPosition":{"x":22757.703074606285,"y":17353.492801303182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 Begin","id":"479df802-576f-45f1-8322-6b2e493c5ecc"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a6f51174-ea46-4282-a476-4e809f456682","savedPayload":{"position":{"x":22494.28745075909,"y":17318.813476520158},"targetPosition":{"x":22757.703074606285,"y":17353.492801303182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 End","id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10"}}}],"id":"c3ee15c5-a5b3-4318-bc09-a9fd03592d83","savedPayload":{"position":{"x":22757.703074606285,"y":17353.492801303182},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 280","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":"942d9600-7935-4ca6-81d8-9bd014df736f","savedPayload":{"position":{"x":22650.8026204423,"y":16823.64991006031},"targetPosition":{"x":22768.353697680614,"y":17062.019914187353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1c6e0c3f-8ac7-4b0b-9da8-0f7faf9befd1","savedPayload":{"position":{"x":22768.353697680614,"y":17062.019914187353},"targetPosition":{"x":22885.904774918927,"y":17300.389918314395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"cc54382b-cf2b-42c7-8958-8816809dd7ba","savedPayload":{"position":{"x":22620.738094062068,"y":17335.29977412616},"targetPosition":{"x":22885.904774918927,"y":17300.389918314395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 Begin","id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"3629786a-8eed-4cff-9780-0e685aeed577","savedPayload":{"position":{"x":22619.44743743275,"y":17265.310144333853},"targetPosition":{"x":22885.904774918927,"y":17300.389918314395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 End","id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34"}}}],"id":"3bbf5574-e89c-4538-a95c-2da58e5a74d7","savedPayload":{"position":{"x":22885.904774918927,"y":17300.389918314395},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 350","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.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"8142bd21-31e4-4edd-97d5-217e30321e0a","savedPayload":{"position":{"x":22919.780296565743,"y":16760.933112319486},"targetPosition":{"x":22971.631221129086,"y":17021.60531308002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6eade211-19cf-48a7-87ac-faf30e387e10","savedPayload":{"position":{"x":22971.631221129086,"y":17021.60531308002},"targetPosition":{"x":23023.48214569243,"y":17282.277513840556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"f16d8eac-9e78-4167-b087-9803637412a6","savedPayload":{"position":{"x":22762.793005223954,"y":17316.597890277142},"targetPosition":{"x":23023.48214569243,"y":17282.277513840556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 End","id":"d6598381-9b15-4cb3-afba-b85ed6770ce3"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b94a339d-5abf-4563-a693-edb5d812c24e","savedPayload":{"position":{"x":22759.242138816488,"y":17247.489656972826},"targetPosition":{"x":23023.48214569243,"y":17282.277513840556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 Begin","id":"f3c05d30-da2e-449e-8471-dcc216f4e630"}}}],"id":"046240f2-f70b-471d-b07b-0e7490222f0d","savedPayload":{"position":{"x":23023.48214569243,"y":17282.277513840556},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"391b803a-4b4e-4c0b-bb6b-b4d68e989c9c","savedPayload":{"position":{"x":23023.48214569243,"y":17813.835656012845},"targetPosition":{"x":23536.92788339088,"y":17951.413026786347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 7","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"SMA 7","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma7","id":"1c683838-c882-49bd-997a-2f4255347854","savedPayload":{"position":{"x":23318.424375543604,"y":17691.12628056505},"targetPosition":{"x":23358.88744408049,"y":17564.546784826474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c26c14bd-b9ab-4121-89b2-eb3044534cf2","savedPayload":{"position":{"x":23358.88744408049,"y":17564.546784826474},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 14","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma14","id":"1060ea54-bb29-4c3b-8db0-522893543a36","savedPayload":{"position":{"x":23194.40302980724,"y":17607.186212134944},"targetPosition":{"x":23296.876771212308,"y":17522.57675061142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"94b29f18-cad5-49df-8b87-d6ef10f5ae61","savedPayload":{"position":{"x":23296.876771212308,"y":17522.57675061142},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 21","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma21","id":"c0287e9c-4b88-4b92-b6ac-f17474649958","savedPayload":{"position":{"x":23135.451061773383,"y":17469.520331281175},"targetPosition":{"x":23267.40078719538,"y":17453.743810184536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ffcb7173-b2bf-4d5d-90e5-6f8b26af4b86","savedPayload":{"position":{"x":23267.40078719538,"y":17453.743810184536},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 28","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma28","id":"9f1615e0-e437-4221-8e9a-a6dcb4556022","savedPayload":{"position":{"x":23160.285304758072,"y":17321.83658247418},"targetPosition":{"x":23279.817908687724,"y":17379.90193578104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"186d8c1a-5eef-44a1-aa09-b28e4f5b6b0e","savedPayload":{"position":{"x":23279.817908687724,"y":17379.90193578104},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 35","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma35","id":"423f3069-d5a3-4d29-bb35-68802f367c50","savedPayload":{"position":{"x":23261.02106208405,"y":17211.02351247668},"targetPosition":{"x":23330.185787350714,"y":17324.49540078229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6b047d8e-451d-4267-adc4-6e9496aa0025","savedPayload":{"position":{"x":23330.185787350714,"y":17324.49540078229},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 70","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma70","id":"62ed074e-5b1a-4306-b411-cd436680147d","savedPayload":{"position":{"x":23405.675442565167,"y":17172.26348804514},"targetPosition":{"x":23402.512977591272,"y":17305.11538856652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9676685c-f20e-4d65-a0fe-8551e80132ee","savedPayload":{"position":{"x":23402.512977591272,"y":17305.11538856652},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 140","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma140","id":"2200abd2-2897-4eff-9804-f599c0e18f42","savedPayload":{"position":{"x":23548.321702477682,"y":17217.862543071333},"targetPosition":{"x":23473.83610754753,"y":17327.914916079615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a44d3c89-8463-4493-b195-70ee4146bbdb","savedPayload":{"position":{"x":23473.83610754753,"y":17327.914916079615},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 210","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma210","id":"38e3066f-1951-4c96-8a36-3bcf778328bd","savedPayload":{"position":{"x":23643.67066218968,"y":17333.34329977196},"targetPosition":{"x":23521.51058740353,"y":17385.65529442993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"44198c4d-4d98-43a2-9c03-2d8794b9edac","savedPayload":{"position":{"x":23521.51058740353,"y":17385.65529442993},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 280","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma280","id":"eca55243-4492-4983-9e03-04694437c8ae","savedPayload":{"position":{"x":23661.449700696154,"y":17482.041433842616},"targetPosition":{"x":23530.400106656765,"y":17460.004361465257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"96706885-fa55-4fad-82bd-fb43a2f331d7","savedPayload":{"position":{"x":23530.400106656765,"y":17460.004361465257},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 350","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma350","id":"64ea1867-2fb1-4191-a4c7-b5ac37f7be7a","savedPayload":{"position":{"x":23596.01409889198,"y":17616.746338366673},"targetPosition":{"x":23497.68230575468,"y":17527.356813727285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9f208b33-3d80-4d2e-ad88-13139a8e93f8","savedPayload":{"position":{"x":23497.68230575468,"y":17527.356813727285},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"b73ac725-eea1-4aa2-974c-937de300b456","savedPayload":{"position":{"x":23399.350512617377,"y":17437.967289087897},"targetPosition":{"x":23536.92788339088,"y":17951.413026786347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd","savedPayload":{"position":{"x":23536.92788339088,"y":17951.413026786347},"targetPosition":{"x":24288.664617240775,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{}}}],"id":"9b2443b7-9276-4fa3-b4b3-b9b991d886d8","savedPayload":{"position":{"x":24288.664617240775,"y":18703.149760636243},"targetPosition":{"x":24997.408806793872,"y":18703.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"RSI","code":"{\n\"codeName\": \"Plotter RSI\"\n}","modules":[{"type":"Plotter Module","name":"RSI 14","code":"{\n\t\"codeName\": \"RSI 14\",\n\t\"slot\": {\n\t\t\"number\": 3,\n\t\t\"minValue\": 0,\n\t\t\"maxValue\": 100\n\t},\n \"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":"88e15149-215e-42c8-bc00-78b63343daa0","savedPayload":{"position":{"x":23240.357027150625,"y":17546.51720501776},"targetPosition":{"x":23298.93482331367,"y":17665.924623773477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e376a028-b688-4bb5-a100-00be6d161bd6","savedPayload":{"position":{"x":23298.93482331367,"y":17665.924623773477},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","id":"6904030c-e751-4eb9-844a-d1cf45caa1f2","savedPayload":{"position":{"x":23334.538152926063,"y":17520.322357205052},"targetPosition":{"x":23346.02538620139,"y":17652.827199867123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f562d9d7-357b-4677-ac4b-3ddbb735ca2b","savedPayload":{"position":{"x":23346.02538620139,"y":17652.827199867123},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 20","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 20","id":"4fc2797d-7023-461e-912e-23f2834d4141","savedPayload":{"position":{"x":23431.82210771508,"y":17529.918535864726},"targetPosition":{"x":23394.667363595898,"y":17657.62528919696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb","savedPayload":{"position":{"x":23394.667363595898,"y":17657.62528919696},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 20","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 20","id":"e6640285-69e5-4a37-8907-9d8bbcc2008b","savedPayload":{"position":{"x":23519.070154354413,"y":17574.009723894535},"targetPosition":{"x":23438.291386915564,"y":17679.670883211864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c9de9989-11da-44a7-bcbf-137435767d90","savedPayload":{"position":{"x":23438.291386915564,"y":17679.670883211864},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 30","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","id":"db815155-dbec-4824-9132-470a173d328b","savedPayload":{"position":{"x":23584.498960687313,"y":17646.641162033342},"targetPosition":{"x":23471.005790082014,"y":17715.986602281268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09","savedPayload":{"position":{"x":23471.005790082014,"y":17715.986602281268},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 30","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","id":"db6c3539-81f5-465d-9d79-8004a60ac5fb","savedPayload":{"position":{"x":23619.27200386498,"y":17738.003572095815},"targetPosition":{"x":23488.392311670847,"y":17761.667807312504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ac82bb81-5d37-4eea-ab52-0f698de71014","savedPayload":{"position":{"x":23488.392311670847,"y":17761.667807312504},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 50","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 50","id":"a6a8718f-2c9a-4c5f-af7a-7029bddfb839","savedPayload":{"position":{"x":23618.692991722193,"y":17835.757954346427},"targetPosition":{"x":23488.102805599454,"y":17810.54499843781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a0cdc721-996a-44b2-b619-bbc0ef97cd62","savedPayload":{"position":{"x":23488.102805599454,"y":17810.54499843781},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 50","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 50","id":"c996c1b4-2b1f-4d11-acd4-8aba4d3e3e5d","savedPayload":{"position":{"x":23582.840123057256,"y":17926.702037786494},"targetPosition":{"x":23470.176371266985,"y":17856.017040157843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"59a77a0b-bcee-4c1e-855c-854c3d3bc521","savedPayload":{"position":{"x":23470.176371266985,"y":17856.017040157843},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 70","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","id":"bdcd3323-0da6-4667-95c2-b017623500af","savedPayload":{"position":{"x":23516.55552645096,"y":17998.55332000888},"targetPosition":{"x":23437.034072963837,"y":17891.942681269036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"228edebc-3b5b-4760-9791-2229cb76a662","savedPayload":{"position":{"x":23437.034072963837,"y":17891.942681269036},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 70","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","id":"9977888b-2cf4-472e-8468-d6705690a57c","savedPayload":{"position":{"x":23428.791303970625,"y":18041.607887207745},"targetPosition":{"x":23393.15196172367,"y":17913.46996486847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680","savedPayload":{"position":{"x":23393.15196172367,"y":17913.46996486847},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 80","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 80","id":"75cda528-f689-4d21-a8ed-ba08705d5ec7","savedPayload":{"position":{"x":23331.400500180564,"y":18050.050981509292},"targetPosition":{"x":23344.45655982864,"y":17917.691512019243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e7b453a3-5312-48e6-8797-6d96e058766b","savedPayload":{"position":{"x":23344.45655982864,"y":17917.691512019243},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Eng 80","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 80","id":"df4c7f58-96c7-4ffb-9ce3-ff1b35ddf3c3","savedPayload":{"position":{"x":23237.53628279369,"y":18022.7423162433},"targetPosition":{"x":23297.524451135203,"y":17904.037179386247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7","savedPayload":{"position":{"x":23297.524451135203,"y":17904.037179386247},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 100","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","id":"79f20ec4-c499-41ca-aa79-f56fe5b7bcbc","savedPayload":{"position":{"x":23159.87553448769,"y":17963.37007797648},"targetPosition":{"x":23258.694076982203,"y":17874.351060252837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7d5d4922-1d7d-45a3-b5ff-75d14016ee1d","savedPayload":{"position":{"x":23258.694076982203,"y":17874.351060252837},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 100","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","id":"58d10fb8-87e5-4a4c-95ab-99be2f5b14ea","savedPayload":{"position":{"x":23108.906769654357,"y":17879.95281647969},"targetPosition":{"x":23233.209694565536,"y":17832.64242950444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"dc11ae4c-bce1-4e88-986a-457a3612102a","savedPayload":{"position":{"x":23233.209694565536,"y":17832.64242950444},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"RSI Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","id":"e068d3fa-623c-4349-a10f-4abdd6263b07","savedPayload":{"position":{"x":23091.513602412102,"y":17783.756495149082},"targetPosition":{"x":23224.51311094441,"y":17784.544268839138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7f687c2f-3a91-4b53-b00d-8a651e82c97d","savedPayload":{"position":{"x":23224.51311094441,"y":17784.544268839138},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"RSI End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","id":"bb45d3f0-e6e7-473a-b2f4-7016c65bd7ee","savedPayload":{"position":{"x":23110.045076375856,"y":17687.772960222563},"targetPosition":{"x":23233.778847926285,"y":17736.552501375878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f5d97a45-0db5-4d48-bf32-efdd6b2726c0","savedPayload":{"position":{"x":23233.778847926285,"y":17736.552501375878},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"ff9f35c7-b1ca-446e-905c-c971ca51dfbe","savedPayload":{"position":{"x":23357.512619476714,"y":17785.332042529193},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"polygons":[{"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":"9e7202ce-11e7-4526-80d5-52f0dbdcb91c","savedPayload":{"position":{"x":22403.29113295244,"y":18714.5739557557},"targetPosition":{"x":22324.154224890033,"y":18460.614688921018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"8716fe80-7aa5-4707-93d9-f47ac26e9a53","savedPayload":{"position":{"x":22324.154224890033,"y":18460.614688921018},"targetPosition":{"x":22245.017316827627,"y":18206.655422086336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"89a7b82e-5d1d-4359-80a8-0b85d997a62c","savedPayload":{"position":{"x":22090.003979210003,"y":18420.01297741513},"targetPosition":{"x":22245.017316827627,"y":18206.655422086336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"e376a028-b688-4bb5-a100-00be6d161bd6"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"4ddfe945-d3dd-431a-a0bf-477d2f0c0af1","savedPayload":{"position":{"x":21999.510283750325,"y":18286.425492696857},"targetPosition":{"x":22245.017316827627,"y":18206.655422086336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"f562d9d7-357b-4677-ac4b-3ddbb735ca2b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"1fd4c8e3-47e3-4e05-8739-a34e8239b178","savedPayload":{"position":{"x":21986.182845243395,"y":18122.555004204583},"targetPosition":{"x":22245.017316827627,"y":18206.655422086336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2920b1c1-1d61-44b8-b31a-31e2d87fa9e4","savedPayload":{"position":{"x":22085.35675111536,"y":17986.90150602777},"targetPosition":{"x":22245.017316827627,"y":18206.655422086336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}}],"id":"0dce63e6-acf6-482e-bcf9-3e44b7487cbf","savedPayload":{"position":{"x":22245.017316827627,"y":18206.655422086336},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"f95287c0-8123-4025-8018-370eb91b6189","savedPayload":{"position":{"x":21722.273273433944,"y":18725.20026870736},"targetPosition":{"x":21841.12331059994,"y":18487.224160464266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c46a4519-e917-410e-98d7-faf0ad80a99a","savedPayload":{"position":{"x":21841.12331059994,"y":18487.224160464266},"targetPosition":{"x":22078.823384931937,"y":18011.27194397808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"eb76ec36-eae3-424a-9105-d26eefca1b67","savedPayload":{"position":{"x":21603.738675112225,"y":18253.3396942969},"targetPosition":{"x":22078.823384931937,"y":18011.27194397808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"6facb2b7-b324-4e01-a53f-5d72541ba64f","savedPayload":{"position":{"x":21567.334233878464,"y":18177.4648435648},"targetPosition":{"x":22078.823384931937,"y":18011.27194397808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2e7bfaf4-7828-4021-9895-58882a03987e","savedPayload":{"position":{"x":21559.6420162626,"y":17929.04169347446},"targetPosition":{"x":22078.823384931937,"y":18011.27194397808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"dc11ae4c-bce1-4e88-986a-457a3612102a"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"d2a601ff-7a5d-414e-bc06-be93e13e6ddb","savedPayload":{"position":{"x":21605.189397851213,"y":17769.943373814935},"targetPosition":{"x":22078.823384931937,"y":18011.27194397808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"7d5d4922-1d7d-45a3-b5ff-75d14016ee1d"}}}],"id":"2429edaa-20db-4fd9-b834-c84953e78bf3","savedPayload":{"position":{"x":22078.823384931937,"y":18011.27194397808},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"f1ac3d45-3f00-4269-a41f-872bcbc99620","savedPayload":{"position":{"x":21892.294317569398,"y":18174.262920481062},"targetPosition":{"x":21916.26856954835,"y":18043.439661466193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1aa28d17-1653-496a-8b8a-35fdf6691e0b","savedPayload":{"position":{"x":21916.26856954835,"y":18043.439661466193},"targetPosition":{"x":21964.21707350625,"y":17781.793143436455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2e88069b-6333-45f8-8199-021fe3896667","savedPayload":{"position":{"x":21805.873414144186,"y":17999.734493403645},"targetPosition":{"x":21964.21707350625,"y":17781.793143436455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"cdea2bf9-a545-4877-8d65-5a027352bb8a","savedPayload":{"position":{"x":21712.87598642991,"y":17863.458813100147},"targetPosition":{"x":21964.21707350625,"y":17781.793143436455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"bfb22589-c1af-4822-8944-1767e3e691bc","savedPayload":{"position":{"x":21717.07075862455,"y":17701.490437880013},"targetPosition":{"x":21964.21707350625,"y":17781.793143436455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"208c9dfc-a7fb-41ab-becc-3b68104e07ed","savedPayload":{"position":{"x":21808.476068806427,"y":17567.4340402916},"targetPosition":{"x":21964.21707350625,"y":17781.793143436455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}}],"id":"4a0db3d1-061d-4587-9c05-f42c09c0b271","savedPayload":{"position":{"x":21964.21707350625,"y":17781.793143436455},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"6335d57f-9462-4d19-b954-2f511308b9c8","savedPayload":{"position":{"x":21476.19989789142,"y":17842.525519699513},"targetPosition":{"x":21692.029391342523,"y":17687.04050696347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b01a727e-5773-47c2-b094-c19ad0ac71f4","savedPayload":{"position":{"x":21692.029391342523,"y":17687.04050696347},"targetPosition":{"x":21907.858884793626,"y":17531.555494227425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"c59e52e4-9b7e-4985-ab53-35f5cd29f250","savedPayload":{"position":{"x":21431.96464526564,"y":17774.03572053473},"targetPosition":{"x":21907.858884793626,"y":17531.555494227425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"957f8c1e-cb14-4241-b805-abfdc50c07d0","savedPayload":{"position":{"x":21383.63023703137,"y":17614.58515520534},"targetPosition":{"x":21907.858884793626,"y":17531.555494227425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"37688deb-5377-4f52-bde8-5e8abbf6e25f","savedPayload":{"position":{"x":21379.810682316307,"y":17447.920875213676},"targetPosition":{"x":21907.858884793626,"y":17531.555494227425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"6d346213-f33f-4b5a-a519-5e1c3fb42e50","savedPayload":{"position":{"x":21433.869162464787,"y":17290.045667902083},"targetPosition":{"x":21907.858884793626,"y":17531.555494227425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}}],"id":"5835d367-23bc-4039-b2c1-1a23f3ca652f","savedPayload":{"position":{"x":21907.858884793626,"y":17531.555494227425},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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.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":"6ad882da-10d9-427c-8fb5-3a7c55b678a1","savedPayload":{"position":{"x":21397.78410534176,"y":17407.614283917603},"targetPosition":{"x":21655.404128605063,"y":17341.358091431895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fa05777f-6288-4dd2-9b7a-61194bc43681","savedPayload":{"position":{"x":21655.404128605063,"y":17341.358091431895},"targetPosition":{"x":21913.024151868365,"y":17275.101898946188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a9a9dd2d-d7f8-4a25-b81d-d1e2a2f9d5a6","savedPayload":{"position":{"x":21656.27115412015,"y":17343.898657347094},"targetPosition":{"x":21913.024151868365,"y":17275.101898946188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a717c7d2-3bc7-4d8c-9e9f-e1fb75fd0d42","savedPayload":{"position":{"x":21653.467329931944,"y":17205.553858118335},"targetPosition":{"x":21913.024151868365,"y":17275.101898946188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}}],"id":"27aab97e-ce7f-47fc-bd22-d9b70ffec2d1","savedPayload":{"position":{"x":21913.024151868365,"y":17275.101898946188},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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.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":"0b1d6f25-076c-4495-b462-435a8d1900d2","savedPayload":{"position":{"x":21314.437192406836,"y":17034.03251074652},"targetPosition":{"x":21447.432291562083,"y":17032.693310273135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"id":"6cb61271-a82a-47a1-ac0c-404dc28b05e5","savedPayload":{"position":{"x":21447.432291562083,"y":17032.693310273135},"targetPosition":{"x":21979.412688183067,"y":17027.33650837959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e656c0ce-1b57-420e-84f5-cd62a9bb602d","savedPayload":{"position":{"x":21463.74466081027,"y":17165.509339876684},"targetPosition":{"x":21979.412688183067,"y":17027.33650837959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"8e2ee705-7be7-4705-a32f-242a5c1d286d","savedPayload":{"position":{"x":21467.038492815787,"y":16890.04625650838},"targetPosition":{"x":21979.412688183067,"y":17027.33650837959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}}],"id":"18e4afd3-7536-405b-97b6-d36ec7ddc692","savedPayload":{"position":{"x":21979.412688183067,"y":17027.33650837959},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"68ca10ec-d83d-4f61-b9ee-6a0f3a74cb12","savedPayload":{"position":{"x":21585.36225358581,"y":16680.548447397614},"targetPosition":{"x":21844.26424345272,"y":16741.603496917214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fefbf0c0-287c-4bb7-81a7-6b745dcfcf3b","savedPayload":{"position":{"x":21844.26424345272,"y":16741.603496917214},"targetPosition":{"x":22103.16623331963,"y":16802.658546436815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"cfa25adf-05eb-49d0-956a-69e4fde9bacf","savedPayload":{"position":{"x":21848.698223574953,"y":16870.843044147456},"targetPosition":{"x":22103.16623331963,"y":16802.658546436815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 50","id":"a0cdc721-996a-44b2-b619-bbc0ef97cd62"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"de1447aa-e70f-419b-bab5-d94b333612c7","savedPayload":{"position":{"x":21848.775075386555,"y":16734.49464110703},"targetPosition":{"x":22103.16623331963,"y":16802.658546436815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 50","id":"59a77a0b-bcee-4c1e-855c-854c3d3bc521"}}}],"id":"bbe48886-b71e-4507-b6e8-7f073b691a6a","savedPayload":{"position":{"x":22103.16623331963,"y":16802.658546436815},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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.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":"913293ac-040f-4348-ade4-5b3103fe1375","savedPayload":{"position":{"x":21566.790664532433,"y":16250.4048722929},"targetPosition":{"x":21803.55800337514,"y":16371.64507472687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"8640a48e-f7ca-419c-a687-3f52c3a5afa9","savedPayload":{"position":{"x":21803.55800337514,"y":16371.64507472687},"targetPosition":{"x":22277.092681060552,"y":16614.125479594808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"bc77b107-0a70-4038-86a6-3034ab4e86dd","savedPayload":{"position":{"x":21763.97926208456,"y":16751.613805834997},"targetPosition":{"x":22277.092681060552,"y":16614.125479594808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"36882cd2-2ec4-4d2d-af00-98b4c54bf1e7","savedPayload":{"position":{"x":21763.101396832768,"y":16476.401930069336},"targetPosition":{"x":22277.092681060552,"y":16614.125479594808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}}],"id":"508b71cf-79d3-4db4-a6d3-0b26226ad5b9","savedPayload":{"position":{"x":22277.092681060552,"y":16614.125479594808},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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.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":"9506c6ad-440b-45a1-aadf-89004f5311fb","savedPayload":{"position":{"x":21986.455684213193,"y":16304.224459059176},"targetPosition":{"x":22238.76987133662,"y":16388.4593117339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"59804538-89e9-485a-a2b1-88ff78eb5661","savedPayload":{"position":{"x":22238.76987133662,"y":16388.4593117339},"targetPosition":{"x":22491.084058460045,"y":16472.694164408622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"23df3ac4-6427-4a69-a5a3-8230186b46f3","savedPayload":{"position":{"x":22260.079291893548,"y":16606.064828569873},"targetPosition":{"x":22491.084058460045,"y":16472.694164408622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"7a5139be-30b6-4eab-994a-bb8b74be455d","savedPayload":{"position":{"x":22260.475803630503,"y":16339.552426405437},"targetPosition":{"x":22491.084058460045,"y":16472.694164408622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}}],"id":"8499947d-a392-40ed-be9d-225a28429642","savedPayload":{"position":{"x":22491.084058460045,"y":16472.694164408622},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"RSI 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":"90fe9ece-e33a-4e2e-904a-779327e7155a","savedPayload":{"position":{"x":22221.75270857099,"y":15781.516828216818},"targetPosition":{"x":22426.096093687043,"y":15951.81580175512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"(record.previous.value < 20 && record.value < 20) || (record.previous.value > 80 && record.value > 80)","style":{"type":"Style","name":"New Style","code":"{\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","id":"58f58e7a-3056-49c7-9117-f2a514d4479e","savedPayload":{"position":{"x":22242.461942013728,"y":15452.5059419939},"targetPosition":{"x":22334.279017850386,"y":15702.16087187451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9fcf2614-7ec8-407f-93a2-3c749f6683ef","savedPayload":{"position":{"x":22334.279017850386,"y":15702.16087187451},"targetPosition":{"x":22426.096093687043,"y":15951.81580175512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}}],"id":"6dc77d6e-5aa6-41ab-b247-43c4391fcc96","savedPayload":{"position":{"x":22426.096093687043,"y":15951.81580175512},"targetPosition":{"x":22732.703964490658,"y":16386.584074834955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5312ee43-9c15-4d4b-9255-5fb7259c5734","savedPayload":{"position":{"x":22270.28223237588,"y":16653.563386350554},"targetPosition":{"x":22732.703964490658,"y":16386.584074834955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"RSI Begin","id":"7f687c2f-3a91-4b53-b00d-8a651e82c97d"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"01981eaa-b1c6-41e1-84b4-2dc8106ac095","savedPayload":{"position":{"x":22218.529135888064,"y":16248.811344742478},"targetPosition":{"x":22732.703964490658,"y":16386.584074834955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"RSI End","id":"f5d97a45-0db5-4d48-bf32-efdd6b2726c0"}}}],"id":"e8eb9949-277b-4493-a9f4-cbcb502aacbc","savedPayload":{"position":{"x":22732.703964490658,"y":16386.584074834955},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"5b04f4bb-2cc4-48a5-b421-667c96b2dd27","savedPayload":{"position":{"x":22646.448872911464,"y":16154.378970306223},"targetPosition":{"x":22760.26935809648,"y":16223.18585229828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"208ca141-b231-4a70-8b31-eeae09576822","savedPayload":{"position":{"x":22760.26935809648,"y":16223.18585229828},"targetPosition":{"x":22987.910328466518,"y":16360.799616282393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"7956c253-3704-46c0-b188-f6662bb58904","savedPayload":{"position":{"x":22833.3587966876,"y":16573.521550404024},"targetPosition":{"x":22987.910328466518,"y":16360.799616282393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b043ae0f-a172-4ebe-922b-a895b8a888c9","savedPayload":{"position":{"x":22734.21758464987,"y":16443.22938553979},"targetPosition":{"x":22987.910328466518,"y":16360.799616282393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5830f66c-dca5-4f62-8102-d7d8ea588d0d","savedPayload":{"position":{"x":22736.70260692296,"y":16279.1772797071},"targetPosition":{"x":22987.910328466518,"y":16360.799616282393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a8eb0500-2421-4879-9459-2ecdb4ae09d5","savedPayload":{"position":{"x":22833.614760574186,"y":16148.429986226556},"targetPosition":{"x":22987.910328466518,"y":16360.799616282393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}}],"id":"b294fd86-15d6-4bc8-9379-0532df288eee","savedPayload":{"position":{"x":22987.910328466518,"y":16360.799616282393},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"bc1170cc-a04b-4453-bd28-0e522f747617","savedPayload":{"position":{"x":22966.48420712404,"y":17424.598597380987},"targetPosition":{"x":23994.243516745708,"y":17699.98587440768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"RSI 14","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"RSI 14","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","id":"fbec83cc-a090-491b-8cfb-833d40b2b843","savedPayload":{"position":{"x":23856.54987823236,"y":17186.106219596844},"targetPosition":{"x":23902.44775773681,"y":17357.399437867123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e5fd8d57-8920-417e-8b9b-c1e0d6868a7a","savedPayload":{"position":{"x":23902.44775773681,"y":17357.399437867123},"targetPosition":{"x":23948.34563724126,"y":17528.692656137402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"ff06d653-f886-44f4-8b28-82bab51aa98d","savedPayload":{"position":{"x":23948.34563724126,"y":17528.692656137402},"targetPosition":{"x":23994.243516745708,"y":17699.98587440768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}}],"id":"72403d40-2a64-4e51-8eaf-b1a872e4474e","savedPayload":{"position":{"x":23994.243516745708,"y":17699.98587440768},"targetPosition":{"x":24495.824871809025,"y":18201.567229471},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"bbc529df-b938-47b5-8cb7-a5579c859b99","savedPayload":{"position":{"x":24495.824871809025,"y":18201.567229471},"targetPosition":{"x":24997.408806793872,"y":18703.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"MACD PENDING","code":"{}","modules":[],"id":"24146ce7-bc0d-461a-8a43-0d2bd3059886","savedPayload":{"position":{"x":24997.412692145277,"y":18052.567094093436},"targetPosition":{"x":24997.408806793872,"y":18703.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"EMA","code":"{\n\"codeName\": \"Plotter EMA\"\n}","modules":[{"type":"Plotter Module","name":"EMA Popular","code":"{\n\t\"codeName\": \"EMA-Popular\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"EMA 20 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema20","id":"7bf83ec0-5a84-4a81-a111-19d913e12135","savedPayload":{"position":{"x":25122.72765094104,"y":17373.219525390607},"targetPosition":{"x":24956.372815200848,"y":17433.76773392628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6e1ff74e-36ba-460c-9f78-c8ee0b5e0837","savedPayload":{"position":{"x":24956.372815200848,"y":17433.76773392628},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 20 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema20","id":"12164218-7531-4063-bbd3-32855e7f7847","savedPayload":{"position":{"x":25122.72765094104,"y":17615.412359533304},"targetPosition":{"x":24956.372815200848,"y":17554.86415099763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"83f1d130-42bd-45ae-9078-ed3f825531bb","savedPayload":{"position":{"x":24956.372815200848,"y":17554.86415099763},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 50 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema50","id":"580ad5c4-aee7-4af2-b85d-0ef86d020823","savedPayload":{"position":{"x":24967.04909799925,"y":17800.942834291545},"targetPosition":{"x":24878.533538729953,"y":17647.62938837675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7084c0a2-8874-46a7-b240-d9605a7baf49","savedPayload":{"position":{"x":24878.533538729953,"y":17647.62938837675},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 50 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema50","id":"1e7a4d05-3daf-4d0a-97ff-b53e35eab2aa","savedPayload":{"position":{"x":24728.53571721153,"y":17842.999178584414},"targetPosition":{"x":24759.276848336092,"y":17668.657560523185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3861b379-3e51-43e2-b607-e3b7fba16a34","savedPayload":{"position":{"x":24759.276848336092,"y":17668.657560523185},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 100 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema100","id":"b50c3599-e7bd-45ef-b348-4ddf85460bbf","savedPayload":{"position":{"x":24518.790570229405,"y":17721.902761513065},"targetPosition":{"x":24654.40427484503,"y":17608.10935198751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d3b1e9cb-8098-4e62-94ea-4e89852b4f6a","savedPayload":{"position":{"x":24654.40427484503,"y":17608.10935198751},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 100 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema100","id":"f5cf8bb1-98bf-4c38-9e7c-f31678a656e4","savedPayload":{"position":{"x":24435.955742383467,"y":17494.315942461955},"targetPosition":{"x":24612.98686092206,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"32ca337a-699d-4c2f-9b6a-73d9a4481e78","savedPayload":{"position":{"x":24612.98686092206,"y":17494.315942461955},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 200 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema200","id":"451d4c20-a9ad-4b8d-a116-fae9406ee356","savedPayload":{"position":{"x":24518.790570229405,"y":17266.729123410845},"targetPosition":{"x":24654.40427484503,"y":17380.5225329364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"33d1fe7c-ff86-440a-8b42-0de9c296a632","savedPayload":{"position":{"x":24654.40427484503,"y":17380.5225329364},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 200 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema200","id":"24e42cf3-2dc8-4257-a511-7dc52dc6f060","savedPayload":{"position":{"x":24728.53571721153,"y":17145.632706339497},"targetPosition":{"x":24759.276848336092,"y":17319.974324400726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"87e2a3ab-afc2-44cb-b2ca-03a715a4d673","savedPayload":{"position":{"x":24759.276848336092,"y":17319.974324400726},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"dd70bea3-9a52-4b2b-a364-31917b08d98d","savedPayload":{"position":{"x":24790.017979460656,"y":17494.315942461955},"targetPosition":{"x":25144.08021653784,"y":16881.06215880277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 20","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":"d468c2f1-2586-4fe4-aa0c-fc3737d992f5","savedPayload":{"position":{"x":24486.42013915156,"y":16657.81664464958},"targetPosition":{"x":24661.936731929905,"y":16680.92384245688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"23236076-e29a-451e-8c95-e3812064279c","savedPayload":{"position":{"x":24661.936731929905,"y":16680.92384245688},"targetPosition":{"x":24837.45332470825,"y":16704.031040264177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5f877b66-2ca6-4a8f-967e-70948cefc9ea","savedPayload":{"position":{"x":24685.1014327267,"y":16791.991446111275},"targetPosition":{"x":24837.45332470825,"y":16704.031040264177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 20 Begin","id":"6e1ff74e-36ba-460c-9f78-c8ee0b5e0837"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"d5971215-2792-4415-bfea-2e4b2b5b98fe","savedPayload":{"position":{"x":24664.20069743425,"y":16657.60813869954},"targetPosition":{"x":24837.45332470825,"y":16704.031040264177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 20 End","id":"83f1d130-42bd-45ae-9078-ed3f825531bb"}}}],"id":"17ca2f43-9ddf-47f8-9929-e4612b00dd4f","savedPayload":{"position":{"x":24837.45332470825,"y":16704.031040264177},"targetPosition":{"x":25144.08021653784,"y":16881.06215880277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 50","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":"330fba24-ff59-48d2-a297-b4e6903efc3d","savedPayload":{"position":{"x":24686.152639543077,"y":16358.89583357205},"targetPosition":{"x":24826.600868771162,"y":16466.665550272617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"0806f6fe-730c-4fde-b730-dcdf31825733","savedPayload":{"position":{"x":24826.600868771162,"y":16466.665550272617},"targetPosition":{"x":24967.049097999246,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b00cf575-af36-4653-97ec-441912af5bb8","savedPayload":{"position":{"x":24797.46698737198,"y":16619.874656566524},"targetPosition":{"x":24967.049097999246,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 50 End","id":"3861b379-3e51-43e2-b607-e3b7fba16a34"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"da71a6f7-2917-4c07-bd77-dc1b0334c5ec","savedPayload":{"position":{"x":24795.830339814802,"y":16528.5573389886},"targetPosition":{"x":24967.049097999246,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 50 Begin","id":"7084c0a2-8874-46a7-b240-d9605a7baf49"}}}],"id":"36482493-d7f7-4a41-9588-a348e3204025","savedPayload":{"position":{"x":24967.049097999246,"y":16574.43526697318},"targetPosition":{"x":25144.08021653784,"y":16881.06215880277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 100","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.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":"278d84a3-2d10-4db3-90cc-b38f6af88ecf","savedPayload":{"position":{"x":25008.58646438228,"y":16199.889067654814},"targetPosition":{"x":25076.33334046006,"y":16363.4444946902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"612138e2-6896-4f8f-956a-d5bf1b8c043a","savedPayload":{"position":{"x":25076.33334046006,"y":16363.4444946902},"targetPosition":{"x":25144.08021653784,"y":16526.999921725586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"fc01c5ca-4323-4a71-9d83-1f288b80e8ed","savedPayload":{"position":{"x":24970.752932913194,"y":16573.442827399092},"targetPosition":{"x":25144.08021653784,"y":16526.999921725586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 100 Begin","id":"d3b1e9cb-8098-4e62-94ea-4e89852b4f6a"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"fbd76a9e-5a2e-4cb8-a2ed-35d2616d9a2e","savedPayload":{"position":{"x":24970.879875708724,"y":16480.59103027163},"targetPosition":{"x":25144.08021653784,"y":16526.999921725586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 100 End","id":"32ca337a-699d-4c2f-9b6a-73d9a4481e78"}}}],"id":"37a16b86-6ee7-4dfa-b32a-c8b9bcb9b484","savedPayload":{"position":{"x":25144.08021653784,"y":16526.999921725586},"targetPosition":{"x":25144.08021653784,"y":16881.06215880277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 200","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.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":"b170fc33-32c4-452d-919d-cf2df82c224f","savedPayload":{"position":{"x":25367.32573069103,"y":16223.40208141649},"targetPosition":{"x":25344.218532883733,"y":16398.918674194836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"ad1ad1fa-9fe8-4a56-aade-dcade3d90c38","savedPayload":{"position":{"x":25344.218532883733,"y":16398.918674194836},"targetPosition":{"x":25321.111335076435,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a98d63cf-bb2b-43f0-80cd-680c59ef741a","savedPayload":{"position":{"x":25150.799914783533,"y":16620.070074502462},"targetPosition":{"x":25321.111335076435,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 200 End","id":"87e2a3ab-afc2-44cb-b2ca-03a715a4d673"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"c9ce7524-76dd-4399-92d8-58d1d757ed89","savedPayload":{"position":{"x":25148.382884479535,"y":16528.15281812586},"targetPosition":{"x":25321.111335076435,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 200 Begin","id":"33d1fe7c-ff86-440a-8b42-0de9c296a632"}}}],"id":"2e225665-d05d-46cd-91d0-4b36803bcf67","savedPayload":{"position":{"x":25321.111335076435,"y":16574.43526697318},"targetPosition":{"x":25144.08021653784,"y":16881.06215880277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"5ea59fb9-f0d6-438b-b1a7-a62ed1750004","savedPayload":{"position":{"x":25144.08021653784,"y":16881.06215880277},"targetPosition":{"x":25498.142453615026,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"EMA Popular","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"EMA 20","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema20","id":"c79a60a8-e960-4a7d-86b0-bb8d65272b30","savedPayload":{"position":{"x":25328.848444446125,"y":17114.07537226693},"targetPosition":{"x":25502.011008299873,"y":17150.882211449647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"80fa0565-6440-406f-a49d-57adcdaf20ae","savedPayload":{"position":{"x":25502.011008299873,"y":17150.882211449647},"targetPosition":{"x":25675.17357215362,"y":17187.689050632365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 50","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema50","id":"ad4b2bc1-bc45-4a8f-b07f-aa0f79f5e884","savedPayload":{"position":{"x":25638.163990610836,"y":16835.566403536035},"targetPosition":{"x":25656.66878138223,"y":17011.6277270842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f43975ff-c552-42b8-a504-d2b6a3a46b18","savedPayload":{"position":{"x":25656.66878138223,"y":17011.6277270842},"targetPosition":{"x":25675.17357215362,"y":17187.689050632365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 100","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema100","id":"2bfe0bed-a18d-452e-a59a-9ddbd135dd0a","savedPayload":{"position":{"x":25998.62552055826,"y":17043.678964883682},"targetPosition":{"x":25836.89954635594,"y":17115.684007758024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9507a099-6a7f-4d00-8b6e-623a7003055c","savedPayload":{"position":{"x":25836.89954635594,"y":17115.684007758024},"targetPosition":{"x":25675.17357215362,"y":17187.689050632365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 200","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema200","id":"ee01f76f-2b56-4d87-a278-4dd98436dca7","savedPayload":{"position":{"x":25912.08745153785,"y":17450.808570013225},"targetPosition":{"x":25793.630511845735,"y":17319.248810322795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5bf57692-7070-4a12-9bc3-487a841125b0","savedPayload":{"position":{"x":25793.630511845735,"y":17319.248810322795},"targetPosition":{"x":25675.17357215362,"y":17187.689050632365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"a819c354-b152-4946-a403-62a8cf0f650f","savedPayload":{"position":{"x":25675.17357215362,"y":17187.689050632365},"targetPosition":{"x":25498.142453615026,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"79bf7438-f77a-4c8d-a450-67027d5fd8bc","savedPayload":{"position":{"x":25498.142453615026,"y":17494.315942461955},"targetPosition":{"x":25498.142453615026,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"EMA Base 11","code":"{\n\t\"codeName\": \"EMA-Base11\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"EMA 11 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema11","id":"41b049dc-e0da-471f-82f7-5f2c1eb61f90","savedPayload":{"position":{"x":25882.649202189947,"y":17357.236931557},"targetPosition":{"x":25707.873604075186,"y":17329.06767110074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c961312c-6bb2-4b38-a142-9f03d0b3eba4","savedPayload":{"position":{"x":25707.873604075186,"y":17329.06767110074},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 11 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema11","id":"55db8355-8155-4c70-85b5-4a629aeefa45","savedPayload":{"position":{"x":25796.700280693498,"y":17537.27503486873},"targetPosition":{"x":25664.899143326962,"y":17419.086722756605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"750547e8-4963-4008-aa2b-8edc565afd79","savedPayload":{"position":{"x":25664.899143326962,"y":17419.086722756605},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 22 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema22","id":"bda3c179-331d-444e-9b1e-e3cfd1a26bb7","savedPayload":{"position":{"x":25627.05949949396,"y":17642.265230146684},"targetPosition":{"x":25580.078752727193,"y":17471.581820395582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8ac0329a-2d0d-483f-a047-305198817a24","savedPayload":{"position":{"x":25580.078752727193,"y":17471.581820395582},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 22 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema22","id":"08508d15-658f-40da-a580-76a5b512414d","savedPayload":{"position":{"x":25427.58660799772,"y":17638.87387221537},"targetPosition":{"x":25480.342306979073,"y":17469.886141429924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"adc1fb05-93dd-4a32-98dd-30577e4a68de","savedPayload":{"position":{"x":25480.342306979073,"y":17469.886141429924},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 33 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema33","id":"bceee9f7-3824-498c-beb1-866463df7a7e","savedPayload":{"position":{"x":25261.612839846726,"y":17528.177693255802},"targetPosition":{"x":25397.355422903576,"y":17414.53805195014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"25fd3a99-95c4-4514-b7f3-d195c9ee3189","savedPayload":{"position":{"x":25397.355422903576,"y":17414.53805195014},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 33 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema33","id":"6c2cc6ab-b520-4d47-8165-db2abfd53ed8","savedPayload":{"position":{"x":25181.83369371431,"y":17345.32194794581},"targetPosition":{"x":25357.46584983737,"y":17323.110179295145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0fe0c9b1-3079-499b-ad49-1b13e1e0af82","savedPayload":{"position":{"x":25357.46584983737,"y":17323.110179295145},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 55 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema55","id":"5df6eee6-f3a0-406f-be6c-2e6bce745054","savedPayload":{"position":{"x":25213.578484805003,"y":17148.36204342436},"targetPosition":{"x":25373.338245382714,"y":17224.63022703442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"27b05f8b-84e9-4ab2-944d-46b10c2a978c","savedPayload":{"position":{"x":25373.338245382714,"y":17224.63022703442},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 55 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema55","id":"508f7fdf-3889-4b3f-bec4-9ee071f7aa21","savedPayload":{"position":{"x":25346.768466245492,"y":16999.83135772483},"targetPosition":{"x":25439.93323610296,"y":17150.364884184655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1eeef11e-809a-4e49-8b3b-48a955f42ce3","savedPayload":{"position":{"x":25439.93323610296,"y":17150.364884184655},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 111 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema111","id":"b9f04b17-af03-4983-8266-0e63f8f3271c","savedPayload":{"position":{"x":25539.116760003853,"y":16946.887334089148},"targetPosition":{"x":25536.10738298214,"y":17123.892872366814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cb15539c-b3a0-4641-9417-861c48bd62ac","savedPayload":{"position":{"x":25536.10738298214,"y":17123.892872366814},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 11 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema111","id":"abc69976-c994-40d1-a923-fd64ded26938","savedPayload":{"position":{"x":25729.55414187992,"y":17006.33932593704},"targetPosition":{"x":25631.326073920172,"y":17153.61886829076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"afa38489-5525-4f32-b766-cfe85d683a65","savedPayload":{"position":{"x":25631.326073920172,"y":17153.61886829076},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"573429d9-05d9-41ea-9fac-5eaf95fcc06c","savedPayload":{"position":{"x":25533.098005960426,"y":17300.89841064448},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 20","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":"02c6627c-956c-4022-a3f9-a132627d02d8","savedPayload":{"position":{"x":25388.969880501543,"y":15877.415732747875},"targetPosition":{"x":25643.96736124485,"y":16123.050324242371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"48f091c0-5895-4615-a56d-f779d35b60c6","savedPayload":{"position":{"x":25643.96736124485,"y":16123.050324242371},"targetPosition":{"x":25898.964841988156,"y":16368.684915736867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"1143164d-0f70-46f0-80fe-6107db66ce29","savedPayload":{"position":{"x":25558.506532298255,"y":16459.910444874742},"targetPosition":{"x":25898.964841988156,"y":16368.684915736867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 End","id":"750547e8-4963-4008-aa2b-8edc565afd79"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"31fd051d-973f-4d8c-b9d3-ac1c13621ab0","savedPayload":{"position":{"x":25556.067319050962,"y":16276.805801379214},"targetPosition":{"x":25898.964841988156,"y":16368.684915736867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 Begin","id":"c961312c-6bb2-4b38-a142-9f03d0b3eba4"}}}],"id":"01f54960-957d-490a-91c7-cfd01f2bf806","savedPayload":{"position":{"x":25898.964841988156,"y":16368.684915736867},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 20","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":"76712d22-b3a8-490e-a964-b1f51641d472","savedPayload":{"position":{"x":25962.27991815498,"y":15646.199034650295},"targetPosition":{"x":26085.447854684004,"y":15978.147414877229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"61487dfb-c30e-41b5-b3bb-a52bbe476c22","savedPayload":{"position":{"x":26085.447854684004,"y":15978.147414877229},"targetPosition":{"x":26208.615791213026,"y":16310.095795104162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"bd3f3676-7a98-43ca-b661-395e53cc2d9c","savedPayload":{"position":{"x":25867.288703637394,"y":16401.55411257492},"targetPosition":{"x":26208.615791213026,"y":16310.095795104162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 22 End","id":"adc1fb05-93dd-4a32-98dd-30577e4a68de"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"6a2c8c60-7c69-4372-bc67-b5bac89eb8a5","savedPayload":{"position":{"x":25865.67641928282,"y":16218.205467342626},"targetPosition":{"x":26208.615791213026,"y":16310.095795104162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 22 Begin","id":"8ac0329a-2d0d-483f-a047-305198817a24"}}}],"id":"c9043797-16f8-4dc7-85c0-bd9d995dcec1","savedPayload":{"position":{"x":26208.615791213026,"y":16310.095795104162},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 20","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.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":"9ee24b06-2b0b-472a-9272-23f52d3ddc05","savedPayload":{"position":{"x":26579.135579253696,"y":15686.629890735887},"targetPosition":{"x":26546.079051183246,"y":16039.145611911594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"12acb041-6cf9-4cab-bc99-7d3413860838","savedPayload":{"position":{"x":26546.079051183246,"y":16039.145611911594},"targetPosition":{"x":26513.022523112795,"y":16391.6613330873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e5ec4acb-cef0-48cc-8eb4-432547dc0541","savedPayload":{"position":{"x":26172.94824492539,"y":16482.78396129421},"targetPosition":{"x":26513.022523112795,"y":16391.6613330873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 33 End","id":"0fe0c9b1-3079-499b-ad49-1b13e1e0af82"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"46dfb895-487c-4a14-a8f4-e39f77a98f34","savedPayload":{"position":{"x":26169.477006298872,"y":16299.608589293677},"targetPosition":{"x":26513.022523112795,"y":16391.6613330873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 33 Begin","id":"25fd3a99-95c4-4514-b7f3-d195c9ee3189"}}}],"id":"d6e73bfe-e6af-4fff-b482-df4889701cf7","savedPayload":{"position":{"x":26513.022523112795,"y":16391.6613330873},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 20","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.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":"cb42e26b-ace9-47f5-a272-15645af64e39","savedPayload":{"position":{"x":27117.361034878857,"y":15990.700474104993},"targetPosition":{"x":26400.860365574452,"y":16551.012078938453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"cd8235f2-8641-4f92-9029-d30375e43f1f","savedPayload":{"position":{"x":26934.627293005,"y":16293.963474329023},"targetPosition":{"x":26751.893551131143,"y":16597.226474553052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"fff3b40f-45a5-424f-bbe3-b62c4811423d","savedPayload":{"position":{"x":26407.90264645962,"y":16689.398559663437},"targetPosition":{"x":26751.893551131143,"y":16597.226474553052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 55 End","id":"1eeef11e-809a-4e49-8b3b-48a955f42ce3"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e644af79-d267-4c8b-bebd-2d919eb5efd9","savedPayload":{"position":{"x":26412.630188513438,"y":16506.321130518172},"targetPosition":{"x":26751.893551131143,"y":16597.226474553052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 55 Begin","id":"27b05f8b-84e9-4ab2-944d-46b10c2a978c"}}}],"id":"001084ac-f732-465a-aea1-bb8c63770971","savedPayload":{"position":{"x":26751.893551131143,"y":16597.226474553052},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 20","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.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"5d5e3413-6b2a-49e0-8b7e-14441b448203","savedPayload":{"position":{"x":27470.354132641878,"y":16498.18587654038},"targetPosition":{"x":27174.135835625006,"y":16692.131199341744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"d1c5bddf-9fc3-47b8-b026-a0fd18fc7efd","savedPayload":{"position":{"x":27174.135835625006,"y":16692.131199341744},"targetPosition":{"x":26877.917538608133,"y":16886.076522143107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2aed0f5f-77bd-4297-a131-77c0c08914d5","savedPayload":{"position":{"x":26569.238243983225,"y":17064.29259598806},"targetPosition":{"x":26877.917538608133,"y":16886.076522143107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 End","id":"afa38489-5525-4f32-b766-cfe85d683a65"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"dff4ca7d-4499-4a8a-834b-7315e9e784e4","savedPayload":{"position":{"x":26537.97704397342,"y":16794.9897411311},"targetPosition":{"x":26877.917538608133,"y":16886.076522143107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 111 Begin","id":"cb15539c-b3a0-4641-9417-861c48bd62ac"}}}],"id":"47ab5422-37ad-4070-a2eb-248bbe9b007f","savedPayload":{"position":{"x":26877.917538608133,"y":16886.076522143107},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"951aba38-5a6a-43df-8f70-f311d621c98d","savedPayload":{"position":{"x":26182.138171428098,"y":17017.72508120454},"targetPosition":{"x":25998.862071213738,"y":17701.72079901761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"EMA 11","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"EMA 11","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema11","id":"ee21f97e-daa4-45b8-bebd-5c53d872534b","savedPayload":{"position":{"x":26090.500121320914,"y":17359.72294011107},"targetPosition":{"x":26215.680025720594,"y":17484.90284451075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a96b4bae-0ce3-4dc6-88df-af120452af6b","savedPayload":{"position":{"x":26215.680025720594,"y":17484.90284451075},"targetPosition":{"x":26340.859930120274,"y":17610.08274891043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 22","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema22","id":"583909a2-6932-4bfa-952d-a0c81123cc3f","savedPayload":{"position":{"x":26432.49798022745,"y":17268.084890003895},"targetPosition":{"x":26386.678955173862,"y":17439.083819457162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2a2f4d65-a013-4c73-b851-1c9ac3dceb9f","savedPayload":{"position":{"x":26386.678955173862,"y":17439.083819457162},"targetPosition":{"x":26340.859930120274,"y":17610.08274891043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 33","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema33","id":"067efa03-229a-49e1-9dff-579ead9e6603","savedPayload":{"position":{"x":26682.85778902681,"y":17518.444698803254},"targetPosition":{"x":26511.858859573542,"y":17564.263723856842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a51bde01-b164-49bd-99fc-d048468e4cc0","savedPayload":{"position":{"x":26511.858859573542,"y":17564.263723856842},"targetPosition":{"x":26340.859930120274,"y":17610.08274891043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 55","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema55","id":"4663f0f2-cf79-4a80-b4c0-33c41bca9d88","savedPayload":{"position":{"x":26591.219738919634,"y":17860.44255770979},"targetPosition":{"x":26466.039834519954,"y":17735.26265331011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"782092b0-9e6c-4de0-aec6-0d6b47fac8b4","savedPayload":{"position":{"x":26466.039834519954,"y":17735.26265331011},"targetPosition":{"x":26340.859930120274,"y":17610.08274891043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 111","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema111","id":"8064c04e-1499-4c01-b056-aac2a1aecc01","savedPayload":{"position":{"x":26249.221880013098,"y":17952.080607816966},"targetPosition":{"x":26295.040905066686,"y":17781.0816783637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c4a358f-23b6-433c-98de-623caad85051","savedPayload":{"position":{"x":26295.040905066686,"y":17781.0816783637},"targetPosition":{"x":26340.859930120274,"y":17610.08274891043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"efc451e7-a5c0-4377-877c-a6b1a60a6604","savedPayload":{"position":{"x":26340.859930120274,"y":17610.08274891043},"targetPosition":{"x":25998.862071213738,"y":17701.72079901761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"cef26be6-07a9-415a-8439-99d06b1e1cfb","savedPayload":{"position":{"x":25998.862071213738,"y":17701.72079901761},"targetPosition":{"x":25498.142453615026,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"EMA Base 7","code":"{\n\t\"codeName\": \"EMA-Base7\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"EMA 7 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema7","id":"d41ccc81-8740-46e9-9ed3-9ffc1df75ee0","savedPayload":{"position":{"x":26367.6788987123,"y":17876.6786301777},"targetPosition":{"x":26264.012563189048,"y":17733.174944475184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2bb8ca1-5fcc-4286-aba3-1d307d4f7168","savedPayload":{"position":{"x":26264.012563189048,"y":17733.174944475184},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 7 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema7","id":"91431058-cccd-40c3-bb98-dd9484a0807d","savedPayload":{"position":{"x":26179.597669762792,"y":17943.20972867557},"targetPosition":{"x":26169.971948714294,"y":17766.44049372412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8ea750de-2b74-41ea-9897-637291621ae9","savedPayload":{"position":{"x":26169.971948714294,"y":17766.44049372412},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 14 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema14","id":"753c8686-38ea-4fc2-9343-3598039aa890","savedPayload":{"position":{"x":25985.404243971687,"y":17897.494860962735},"targetPosition":{"x":26072.87523581874,"y":17743.583059867702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"77265bb0-8ba2-4c0b-a788-970cd44ddcc9","savedPayload":{"position":{"x":26072.87523581874,"y":17743.583059867702},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 14 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema14","id":"c64e3670-c41d-44d0-bc7a-05c8f0a841b6","savedPayload":{"position":{"x":25846.753661922463,"y":17754.0481745322},"targetPosition":{"x":26003.54994479413,"y":17671.859716652434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cd04ee65-bd26-4fbc-abed-76c6fc5c964b","savedPayload":{"position":{"x":26003.54994479413,"y":17671.859716652434},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 21 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema21","id":"be27efec-c4ed-43ec-925a-f7d862f999c1","savedPayload":{"position":{"x":25807.66650375756,"y":17558.41297877979},"targetPosition":{"x":25984.006365711677,"y":17574.04211877623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2f13bba0-f9c2-435f-ad66-8ad73082c502","savedPayload":{"position":{"x":25984.006365711677,"y":17574.04211877623},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 21 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema21","id":"e6af4547-c256-4f33-95fc-9d9f3cd5d111","savedPayload":{"position":{"x":25880.552666017677,"y":17372.70206606467},"targetPosition":{"x":26020.449446841736,"y":17481.18666241867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a5e04840-b217-44cb-9f8f-2629bf4d1f6e","savedPayload":{"position":{"x":26020.449446841736,"y":17481.18666241867},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 28 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema28","id":"a42e77a3-9107-4c33-853d-4ed8966f339d","savedPayload":{"position":{"x":26042.271307174226,"y":17255.877339003284},"targetPosition":{"x":26101.30876742001,"y":17422.774298887976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0d436286-6b79-4dca-a2f3-b7bd3b9a5671","savedPayload":{"position":{"x":26101.30876742001,"y":17422.774298887976},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 28 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema28","id":"0e7f0922-d9b4-4ea3-9f5f-57ad9d4c9328","savedPayload":{"position":{"x":26241.47790130933,"y":17245.02982299354},"targetPosition":{"x":26200.912064487562,"y":17417.350540883104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f50599e9-c04f-4b07-aca0-f276dd08ea94","savedPayload":{"position":{"x":26200.912064487562,"y":17417.350540883104},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 35 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema35","id":"db011cc5-705a-444a-9f7a-159466b19247","savedPayload":{"position":{"x":26414.92576231163,"y":17343.603527723648},"targetPosition":{"x":26287.635994988712,"y":17466.63739324816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d7ac980a-16ab-4077-b3f1-05cf1f4c3a39","savedPayload":{"position":{"x":26287.635994988712,"y":17466.63739324816},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 35 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema35","id":"6b3dc821-e0e9-4c09-965b-c8600bd3e9d5","savedPayload":{"position":{"x":26507.546419836908,"y":17520.301998430314},"targetPosition":{"x":26333.946323751352,"y":17554.98662860149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8992ec1b-4e8c-4f47-a08e-b6e18a0d9c31","savedPayload":{"position":{"x":26333.946323751352,"y":17554.98662860149},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"5a4d5b2f-63dc-403c-a545-6025652d9e81","savedPayload":{"position":{"x":26160.346227665796,"y":17589.67125877267},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 7","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":"496c35a4-5cf7-4def-97bc-ce71a6fc45f7","savedPayload":{"position":{"x":26807.287507091845,"y":17194.270854923914},"targetPosition":{"x":26878.08083945183,"y":17356.53089629083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"671a56e0-b5eb-4833-aa19-3dca720b5b0e","savedPayload":{"position":{"x":26878.08083945183,"y":17356.53089629083},"targetPosition":{"x":26948.874171811818,"y":17518.790937657748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b0be4203-a40d-4ee7-83e0-d1ac87f0bd31","savedPayload":{"position":{"x":26798.07034094953,"y":17605.857570000917},"targetPosition":{"x":26948.874171811818,"y":17518.790937657748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 7 End","id":"8ea750de-2b74-41ea-9897-637291621ae9"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"afe09e1e-c8fd-4fc7-8f09-324ee7d7d012","savedPayload":{"position":{"x":26793.96577809111,"y":17429.354534843365},"targetPosition":{"x":26948.874171811818,"y":17518.790937657748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 7 Begin","id":"d2bb8ca1-5fcc-4286-aba3-1d307d4f7168"}}}],"id":"45946a01-a9fb-4ea8-bb82-ef6088fad08e","savedPayload":{"position":{"x":26948.874171811818,"y":17518.790937657748},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 14","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":"9c0f7800-bf53-4a63-94ba-fccbec15d0ea","savedPayload":{"position":{"x":27300.51179833916,"y":17124.830947694885},"targetPosition":{"x":27226.696764580196,"y":17285.738864598276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"651877b1-61a2-48a2-8fc4-86e809f89d42","savedPayload":{"position":{"x":27226.696764580196,"y":17285.738864598276},"targetPosition":{"x":27079.066697062266,"y":17607.554698405056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"72f9e17d-9c36-408d-9a2e-13da010f4d97","savedPayload":{"position":{"x":26735.101804641086,"y":17699.71981355397},"targetPosition":{"x":27079.066697062266,"y":17607.554698405056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 14 End","id":"cd04ee65-bd26-4fbc-abed-76c6fc5c964b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5a24fd6f-de93-4fcd-94f7-1f7fe268e8be","savedPayload":{"position":{"x":26735.106767340985,"y":17515.390913007574},"targetPosition":{"x":27079.066697062266,"y":17607.554698405056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 14 Begin","id":"77265bb0-8ba2-4c0b-a788-970cd44ddcc9"}}}],"id":"b1689975-de58-4f84-a802-c6f13e885dc6","savedPayload":{"position":{"x":27079.066697062266,"y":17607.554698405056},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 21","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.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":"14146df5-5a4a-46b7-9db5-4957b8445915","savedPayload":{"position":{"x":27323.295132577692,"y":17430.984629038525},"targetPosition":{"x":27240.574044656518,"y":17587.500566067833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"2552b9ce-3620-4245-9803-d55ad53969da","savedPayload":{"position":{"x":27240.574044656518,"y":17587.500566067833},"targetPosition":{"x":27157.852956735343,"y":17744.01650309714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"803ffc35-a2e2-426d-a8d2-7c770e5d0a6a","savedPayload":{"position":{"x":27002.918612864254,"y":17833.467888237832},"targetPosition":{"x":27157.852956735343,"y":17744.01650309714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 21 Begin","id":"2f13bba0-f9c2-435f-ad66-8ad73082c502"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a0449481-80c2-4160-adb3-49d4327bf921","savedPayload":{"position":{"x":27001.48633730495,"y":17653.73819327673},"targetPosition":{"x":27157.852956735343,"y":17744.01650309714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 21 End","id":"a5e04840-b217-44cb-9f8f-2629bf4d1f6e"}}}],"id":"15f599b3-7620-4a0c-b9e0-29830383cd36","savedPayload":{"position":{"x":27157.852956735343,"y":17744.01650309714},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 28","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.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":"e4a06d7f-ecad-400a-acca-f3c340642354","savedPayload":{"position":{"x":27685.10575381071,"y":17773.307833854342},"targetPosition":{"x":27513.279957824718,"y":17815.92136180974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"65f345ac-2766-411d-af4f-9390e525667c","savedPayload":{"position":{"x":27513.279957824718,"y":17815.92136180974},"targetPosition":{"x":27169.62836585273,"y":17901.14841772053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"ca1f7537-47e7-4c48-a056-fedd8820a1de","savedPayload":{"position":{"x":26829.35002177139,"y":17992.325725218925},"targetPosition":{"x":27169.62836585273,"y":17901.14841772053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 28 Begin","id":"0d436286-6b79-4dca-a2f3-b7bd3b9a5671"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"80c45995-463a-442a-a6d8-92cc9971a8b9","savedPayload":{"position":{"x":26826.289460339525,"y":17809.15103525808},"targetPosition":{"x":27169.62836585273,"y":17901.14841772053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 28 End","id":"f50599e9-c04f-4b07-aca0-f276dd08ea94"}}}],"id":"e3c75e9c-a5ec-4755-9a86-909db1b690ca","savedPayload":{"position":{"x":27169.62836585273,"y":17901.14841772053},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 35","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.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"9d05ca49-9de9-4c97-b4da-891614ed84a5","savedPayload":{"position":{"x":27459.95034381283,"y":17982.00425995688},"targetPosition":{"x":27286.005502017822,"y":18014.91639972224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"56422e5e-ccaa-4c0c-b5a1-79e62ebc1e74","savedPayload":{"position":{"x":27286.005502017822,"y":18014.91639972224},"targetPosition":{"x":27112.060660222814,"y":18047.828539487597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"155db5be-8214-4154-a918-ab9469587cc7","savedPayload":{"position":{"x":26960.761015298292,"y":18135.181430213066},"targetPosition":{"x":27112.060660222814,"y":18047.828539487597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 35 Begin","id":"d7ac980a-16ab-4077-b3f1-05cf1f4c3a39"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"ee71f62a-adc7-4411-aeb1-54ca5712ce34","savedPayload":{"position":{"x":26957.990412149476,"y":17958.87604028834},"targetPosition":{"x":27112.060660222814,"y":18047.828539487597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 35 End","id":"8992ec1b-4e8c-4f47-a08e-b6e18a0d9c31"}}}],"id":"3511cc8f-eb39-4dd0-8043-9f06a8faa698","savedPayload":{"position":{"x":27112.060660222814,"y":18047.828539487597},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"8e7cd7e8-5c59-4cc2-8d9e-ea86d7554205","savedPayload":{"position":{"x":26819.52071142858,"y":17848.37817953914},"targetPosition":{"x":26206.266927769397,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"EMA Base 7","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"EMA 7","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema7","id":"9d9efe26-4895-475c-ac3c-149f0331c6f7","savedPayload":{"position":{"x":26512.893819598987,"y":18025.40929807773},"targetPosition":{"x":26512.893819598987,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"aeaebf9b-54bf-41f3-a833-b0e4fcc55c00","savedPayload":{"position":{"x":26512.893819598987,"y":18202.440416616326},"targetPosition":{"x":26512.893819598987,"y":18379.47153515492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 14","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema14","id":"7c922a65-b8a6-4ebf-a964-af3851b30367","savedPayload":{"position":{"x":26819.520711428577,"y":18202.440416616326},"targetPosition":{"x":26666.20726551378,"y":18290.955975885623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f749c1c5-25f9-4c3f-af87-c8df30a177e0","savedPayload":{"position":{"x":26666.20726551378,"y":18290.955975885623},"targetPosition":{"x":26512.893819598987,"y":18379.47153515492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 21","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema21","id":"f5a9c1c1-9331-4492-a263-1f69ff44711a","savedPayload":{"position":{"x":26819.520711428577,"y":18556.502653693515},"targetPosition":{"x":26666.20726551378,"y":18467.987094424218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"92f7a1a7-bd42-403f-9d0e-2eb907e8abea","savedPayload":{"position":{"x":26666.20726551378,"y":18467.987094424218},"targetPosition":{"x":26512.893819598987,"y":18379.47153515492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 28","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema28","id":"0fcdb422-d014-4dc8-927a-5484c5d7c34b","savedPayload":{"position":{"x":26512.893819598987,"y":18733.53377223211},"targetPosition":{"x":26512.893819598987,"y":18556.502653693515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4c51ef79-f3dd-4f24-ad22-4e38f42f3ff2","savedPayload":{"position":{"x":26512.893819598987,"y":18556.502653693515},"targetPosition":{"x":26512.893819598987,"y":18379.47153515492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 35","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema35","id":"c23e6dd3-f9d5-498f-a01c-c951b11cbdf6","savedPayload":{"position":{"x":26206.266927769397,"y":18556.502653693515},"targetPosition":{"x":26359.58037368419,"y":18467.987094424218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8cdd88af-871c-4f1b-966b-cf9d00483caa","savedPayload":{"position":{"x":26359.58037368419,"y":18467.987094424218},"targetPosition":{"x":26512.893819598987,"y":18379.47153515492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"481ef93a-bef5-4fe3-b87b-f8032a63c69f","savedPayload":{"position":{"x":26512.893819598987,"y":18379.47153515492},"targetPosition":{"x":26206.266927769397,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"a52a9764-3ef2-44e6-82bd-e6538058119d","savedPayload":{"position":{"x":26206.266927769397,"y":18202.440416616326},"targetPosition":{"x":25498.142453615026,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"6cb2807d-22bb-4f90-b4d8-c84cf84a0d5c","savedPayload":{"position":{"x":25498.142453615026,"y":18202.440416616326},"targetPosition":{"x":24997.408806793872,"y":18703.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"a"}}}],"id":"9cfffc48-486a-48cb-b641-98c82e314d3a","savedPayload":{"position":{"x":24997.408806793872,"y":18703.146004599515},"targetPosition":{"x":24997.408806793872,"y":18703.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","cryptoExchanges":{"type":"Crypto Exchanges","name":"New Crypto Exchanges","exchanges":[{"type":"Crypto Exchange","name":"Poloniex","code":"{ \n\"codeName\": \"Poloniex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"0c232a81-4c3d-4668-ae3e-cdd93819231e","savedPayload":{"position":{"x":12815.722373023604,"y":30522.942655379997},"targetPosition":{"x":12706.258490262515,"y":30348.731883949884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"4b921ee0-6a74-47a1-8027-7223dcefb12c","savedPayload":{"position":{"x":12638.304639146809,"y":30542.93283304631},"targetPosition":{"x":12706.258490262515,"y":30348.731883949884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"534af20f-cc39-46a8-847c-d78d59aafcb0","savedPayload":{"position":{"x":12512.057541166088,"y":30416.68573506559},"targetPosition":{"x":12706.258490262515,"y":30348.731883949884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"f7c3766b-8b5f-466e-abc7-3d0e1efeacd6","savedPayload":{"position":{"x":12532.047718832402,"y":30239.268001188797},"targetPosition":{"x":12706.258490262515,"y":30348.731883949884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"ca1b7306-bbf9-42c1-8f71-e6820851b86d","savedPayload":{"position":{"x":12683.222160637706,"y":30144.278803687383},"targetPosition":{"x":12706.258490262515,"y":30348.731883949884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"210ec456-911e-49ad-8ed5-deba22eace15","savedPayload":{"position":{"x":12851.743428505977,"y":30203.24694570642},"targetPosition":{"x":12706.258490262515,"y":30348.731883949884},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"3bab42fe-22d0-49f5-a83b-6b6538d1440b","savedPayload":{"position":{"x":12706.258490262515,"y":30348.731883949884},"targetPosition":{"x":13115.16465078752,"y":30394.8045431995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","markets":[{"type":"Market","name":"BTC/USDT","code":"{ \n\"baseAsset\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Tether","id":"488c24af-d8b7-4c53-b05b-2e32939f7dab","savedPayload":{"position":{"x":12268.219978328427,"y":29599.73881535844},"targetPosition":{"x":12473.75957780381,"y":29590.508021302277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4b921ee0-6a74-47a1-8027-7223dcefb12c"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"7a0c1e41-58e2-4b01-a0b3-65ac24429592","savedPayload":{"position":{"x":12302.048824198044,"y":29477.162745231555},"targetPosition":{"x":12473.75957780381,"y":29590.508021302277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"0c232a81-4c3d-4668-ae3e-cdd93819231e"}}},"superActions":[{"type":"Super Action","name":"Setup Market","id":"01c5fe0c-1d41-4e80-b21e-afd1f624a37a","savedPayload":{"position":{"x":12401.465341711206,"y":29397.880718099448},"targetPosition":{"x":12473.75957780381,"y":29590.508021302277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"dd999740-899c-4452-afe0-6f11160ed570","savedPayload":{"position":{"x":12528.495800221033,"y":29392.175773629588},"targetPosition":{"x":12473.75957780381,"y":29590.508021302277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"d4098b73-7e25-434e-8fd9-342393cbb400","savedPayload":{"position":{"x":12473.75957780381,"y":29590.508021302277},"targetPosition":{"x":12602.040592400552,"y":29751.367325681724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"b16004a9-18c8-43f2-bcde-51162bd591f4","savedPayload":{"position":{"x":12602.040592400552,"y":29751.367325681724},"targetPosition":{"x":13115.16465078752,"y":30394.8045431995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":"","id":"7feac46c-3c33-442f-9916-43d26c2b9532","savedPayload":{"position":{"x":12830.150516883336,"y":29741.54520908192},"targetPosition":{"x":12995.693913460236,"y":29863.72179587821},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"be176761-ba52-4cd9-bd76-2d808bc245dd","savedPayload":{"position":{"x":12995.693913460236,"y":29863.72179587821},"targetPosition":{"x":13161.237310037137,"y":29985.8983826745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":"99ba3409-9f1b-47b3-82bc-5be26a4b2e0a","savedPayload":{"position":{"x":13538.39676244056,"y":29821.345395742068},"targetPosition":{"x":13349.817036238848,"y":29903.621889208283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"567557e4-f7c3-47b5-ae81-a6dc13c08e96","savedPayload":{"position":{"x":13349.817036238848,"y":29903.621889208283},"targetPosition":{"x":13161.237310037137,"y":29985.8983826745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"625e9131-a43c-46e1-b48a-85840d9ddc21","savedPayload":{"position":{"x":13161.237310037137,"y":29985.8983826745},"targetPosition":{"x":13138.200980412328,"y":30190.351462937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"633f7964-aede-4f62-9ec0-2138214dcde7","savedPayload":{"position":{"x":13138.200980412328,"y":30190.351462937},"targetPosition":{"x":13115.16465078752,"y":30394.8045431995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"1298f3db-a526-48c3-af5e-f27a984f6c40","savedPayload":{"position":{"x":13115.16465078752,"y":30394.8045431995},"targetPosition":{"x":13628.288709174487,"y":31038.24176071728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},{"type":"Crypto Exchange","name":"Kraken","code":"{ \n\"codeName\": \"Kraken\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"ce20aa9e-765b-42be-96ab-4120acc82706","savedPayload":{"position":{"x":13524.538948690995,"y":30081.66808043609},"targetPosition":{"x":13592.492799806701,"y":29887.467131339665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"ed3fe790-e3b2-4337-8ddf-5b435fce6fbe","savedPayload":{"position":{"x":13398.291850710275,"y":29955.42098245537},"targetPosition":{"x":13592.492799806701,"y":29887.467131339665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"74777dca-b325-42e6-ab7e-26524c929651","savedPayload":{"position":{"x":13418.282028376589,"y":29778.003248578578},"targetPosition":{"x":13592.492799806701,"y":29887.467131339665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"25555ed6-3c5c-4ade-85f6-a64c3e371bb1","savedPayload":{"position":{"x":13569.456470181893,"y":29683.014051077163},"targetPosition":{"x":13592.492799806701,"y":29887.467131339665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"e26e4a14-2213-4178-a7c0-955cc1ae621c","savedPayload":{"position":{"x":13737.977738050164,"y":29741.982193096203},"targetPosition":{"x":13592.492799806701,"y":29887.467131339665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"a99904cd-ab9f-40fa-a3d9-587b76e99905","savedPayload":{"position":{"x":13796.945880069205,"y":29910.503460964475},"targetPosition":{"x":13592.492799806701,"y":29887.467131339665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"821b3105-448a-4d79-a74f-0d84893cf56e","savedPayload":{"position":{"x":13592.492799806701,"y":29887.467131339665},"targetPosition":{"x":13811.420565328877,"y":30235.88867419989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","markets":[{"type":"Market","name":"ETH/BTC","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":"Ether","id":"ce6df5a7-a674-4238-9a6f-fe084bcbe82a","savedPayload":{"position":{"x":13641.861251063849,"y":29333.354023357875},"targetPosition":{"x":13843.729364570338,"y":29293.592241949853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"74777dca-b325-42e6-ab7e-26524c929651"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"8f3aaa50-9d72-48af-83cf-d49f381b7d08","savedPayload":{"position":{"x":13657.043241404665,"y":29207.105098808348},"targetPosition":{"x":13843.729364570338,"y":29293.592241949853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"ce20aa9e-765b-42be-96ab-4120acc82706"}}},"superActions":[{"type":"Super Action","name":"Setup Market","id":"dae0c986-f3cd-4c37-8b2c-048fdc29cc28","savedPayload":{"position":{"x":13743.532985566819,"y":29113.891323349},"targetPosition":{"x":13843.729364570338,"y":29293.592241949853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"3d042961-9dad-4579-a14f-3b945be85dfd","savedPayload":{"position":{"x":13868.294340958651,"y":29089.317190985596},"targetPosition":{"x":13843.729364570338,"y":29293.592241949853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"f43663e0-c14d-4fb9-9655-25dff3f938c7","savedPayload":{"position":{"x":13843.729364570338,"y":29293.592241949853},"targetPosition":{"x":13994.552421483268,"y":29433.5355876825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Market","name":"BTC/USDT","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":"Bitcoin","id":"5fd7461d-eda6-46f2-814a-e7ae0cf3c2a2","savedPayload":{"position":{"x":14257.657786388969,"y":29178.18685657113},"targetPosition":{"x":14191.158442434795,"y":29372.8906617858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"ce20aa9e-765b-42be-96ab-4120acc82706"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"0d1a00db-5ddd-4b34-a920-b68a9dd4f418","savedPayload":{"position":{"x":14359.401567078916,"y":29254.45930816105},"targetPosition":{"x":14191.158442434795,"y":29372.8906617858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"ed3fe790-e3b2-4337-8ddf-5b435fce6fbe"}}},"superActions":[{"type":"Super Action","name":"Setup Market","id":"e7080e30-396f-48f1-9986-027d30f842c1","savedPayload":{"position":{"x":14396.882192528295,"y":29375.968511501967},"targetPosition":{"x":14191.158442434795,"y":29372.8906617858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d0d5f45c-fa56-43f2-b37b-6dbed2f55591","savedPayload":{"position":{"x":14355.783337735045,"y":29496.302080863574},"targetPosition":{"x":14191.158442434795,"y":29372.8906617858},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"cbb2229a-28ab-4b24-bafd-56f58fc1e38e","savedPayload":{"position":{"x":14191.158442434795,"y":29372.8906617858},"targetPosition":{"x":13994.552421483268,"y":29433.5355876825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"9826526e-8e01-4ab6-a5f3-1609a48dba34","savedPayload":{"position":{"x":13994.552421483268,"y":29433.5355876825},"targetPosition":{"x":13811.420565328877,"y":30235.88867419989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":"","id":"8b522126-169f-4b04-a3e0-b3bf9ae6c49c","savedPayload":{"position":{"x":14352.120132770739,"y":29653.153130711635},"targetPosition":{"x":14255.98112047992,"y":29835.057019694676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"67106ba1-a228-45bf-9ed9-d11875f8ee17","savedPayload":{"position":{"x":14255.98112047992,"y":29835.057019694676},"targetPosition":{"x":14159.842108189103,"y":30016.960908677716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":"2af8b76f-9927-42df-bc6a-39d58406226a","savedPayload":{"position":{"x":14571.047898292916,"y":30001.57467357186},"targetPosition":{"x":14365.44500324101,"y":30009.26779112479},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"ffca2d2e-bb0d-40ec-8f10-ec3ba497754b","savedPayload":{"position":{"x":14365.44500324101,"y":30009.26779112479},"targetPosition":{"x":14159.842108189103,"y":30016.960908677716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"13e23c02-1eda-4c43-9a69-f1a9c391a937","savedPayload":{"position":{"x":14159.842108189103,"y":30016.960908677716},"targetPosition":{"x":13985.63133675899,"y":30126.424791438803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"b9a30cc4-30b1-4a62-960a-05fab3322311","savedPayload":{"position":{"x":13985.63133675899,"y":30126.424791438803},"targetPosition":{"x":13811.420565328877,"y":30235.88867419989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"7f859060-6e77-4607-aadc-fdbd4fd785a5","savedPayload":{"position":{"x":13811.420565328877,"y":30235.88867419989},"targetPosition":{"x":13628.288709174487,"y":31038.24176071728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Crypto Exchange","name":"Bitfinex","code":"{\n \"codeName\": \"Bitfinex\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"class\": \"bitfinex2\"\n },\n {\n \"method\": \"fetchOHLCVs\",\n \"rateLimit\": 2000\n }\n ]\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"66046275-e148-4d18-8bbd-ad8dcd2ade99","savedPayload":{"position":{"x":14416.411980121018,"y":30107.387709224662},"targetPosition":{"x":14505.682159208309,"y":30292.759146175264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"27ae18d2-032b-41f8-bafc-a24fa4933194","savedPayload":{"position":{"x":14573.636010324013,"y":30098.558197078837},"targetPosition":{"x":14505.682159208309,"y":30292.759146175264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4bfba898-c803-4bb6-924f-c9b67c1667de","savedPayload":{"position":{"x":14691.053596158912,"y":30203.488967087975},"targetPosition":{"x":14505.682159208309,"y":30292.759146175264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"dc376d73-e403-43ce-9044-5ff5fcd6de4e","savedPayload":{"position":{"x":14505.682159208309,"y":30292.759146175264},"targetPosition":{"x":14369.774456976898,"y":30681.161044368117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","markets":[{"type":"Market","name":"BTC/USDT","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":"Bitcoin","id":"4d9d7d28-c531-41af-96bd-0fd83d3a958d","savedPayload":{"position":{"x":14969.685957769068,"y":29985.873083705897},"targetPosition":{"x":15126.63568036463,"y":30118.908864940062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":15077.857157759037,"y":29919.02792476861},"targetPosition":{"x":15126.63568036463,"y":30118.908864940062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":15204.660095463338,"y":29928.530491273534},"targetPosition":{"x":15126.63568036463,"y":30118.908864940062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"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":15301.66035855226,"y":30010.75112579614},"targetPosition":{"x":15126.63568036463,"y":30118.908864940062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"b734f59f-f29c-450b-a6e4-6d2345a1082a","savedPayload":{"position":{"x":15126.63568036463,"y":30118.908864940062},"targetPosition":{"x":15111.26020477931,"y":30324.080328018954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Market","name":"ETH/USDT","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":"Ether","id":"290ac053-86ee-4f35-9591-8b71afe3439a","savedPayload":{"position":{"x":15474.943393603467,"y":30370.577055742964},"targetPosition":{"x":15281.25616614459,"y":30439.981612010557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":15478.747399368183,"y":30497.678642360766},"targetPosition":{"x":15281.25616614459,"y":30439.981612010557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":15407.116466521618,"y":30602.741924434726},"targetPosition":{"x":15281.25616614459,"y":30439.981612010557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"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":15287.411176765301,"y":30645.636299182202},"targetPosition":{"x":15281.25616614459,"y":30439.981612010557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"e0b33e47-b62e-46df-ad42-5abc4a982629","savedPayload":{"position":{"x":15281.25616614459,"y":30439.981612010557},"targetPosition":{"x":15111.26020477931,"y":30324.080328018954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"dc6b67a9-30d0-4b69-9e10-dd6856e9dd4c","savedPayload":{"position":{"x":15111.26020477931,"y":30324.080328018954},"targetPosition":{"x":14369.774456976898,"y":30681.161044368117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":15076.23752007576,"y":30608.822072037216},"targetPosition":{"x":14960.336236084158,"y":30778.8180334025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":15162.496116998565,"y":30740.56732020547},"targetPosition":{"x":14960.336236084158,"y":30778.8180334025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":15130.33219744944,"y":30894.7193173941},"targetPosition":{"x":14960.336236084158,"y":30778.8180334025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bfba898-c803-4bb6-924f-c9b67c1667de"}}}],"id":"c9dfde0f-314b-4f5c-9102-12c223b09066","savedPayload":{"position":{"x":14960.336236084158,"y":30778.8180334025},"targetPosition":{"x":14758.176355169751,"y":30817.068746599525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":15026.588414767153,"y":31128.969218398324},"targetPosition":{"x":14892.382384968452,"y":30973.018982498925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"6d6d1bcf-8831-43b9-9b6c-84fb424141a0","savedPayload":{"position":{"x":14892.382384968452,"y":30973.018982498925},"targetPosition":{"x":14758.176355169751,"y":30817.068746599525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"4754bc6a-51c8-4586-853b-9813b1a87dc3","savedPayload":{"position":{"x":14758.176355169751,"y":30817.068746599525},"targetPosition":{"x":14563.975406073325,"y":30749.11489548382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"f3c4d9e5-4cd2-4629-a49f-5eeadcfa0687","savedPayload":{"position":{"x":14563.975406073325,"y":30749.11489548382},"targetPosition":{"x":14369.774456976898,"y":30681.161044368117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a","savedPayload":{"position":{"x":14369.774456976898,"y":30681.161044368117},"targetPosition":{"x":13628.288709174487,"y":31038.24176071728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Crypto Exchange","name":"Bitmex","code":"{\n \"codeName\": \"Bitmex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"5dcc2338-6347-4c17-a1cc-7dce7790b69e","savedPayload":{"position":{"x":14892.382384968452,"y":31103.46453893563},"targetPosition":{"x":14758.176355169751,"y":31259.41477483503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"US Dollar","code":"{ \n\"codeName\": \"USD\"\n}","id":"1b6defee-80cf-402d-9c1b-36e8f7b993e2","savedPayload":{"position":{"x":14960.336236084158,"y":31297.665488032057},"targetPosition":{"x":14758.176355169751,"y":31259.41477483503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"49ea825d-f7d2-4c41-803b-e454050a1e51","savedPayload":{"position":{"x":14758.176355169751,"y":31259.41477483503},"targetPosition":{"x":14369.774456976898,"y":31395.322477066442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","markets":[{"type":"Market","name":"BTC/USD","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":"Bitcoin","id":"0dbd88b2-8ff2-43b2-9401-e4c2827d467b","savedPayload":{"position":{"x":15120.089716925135,"y":31595.179163212608},"targetPosition":{"x":14925.888767828708,"y":31663.133014328312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5dcc2338-6347-4c17-a1cc-7dce7790b69e"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"US Dollar","id":"297606e3-eff2-49c2-b0c3-1e408ecac868","savedPayload":{"position":{"x":15111.260204779312,"y":31752.4031934156},"targetPosition":{"x":14925.888767828708,"y":31663.133014328312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"US Dollar","id":"1b6defee-80cf-402d-9c1b-36e8f7b993e2"}}},"superActions":[{"type":"Super Action","name":"Setup Market","id":"21103c41-39f8-411b-b7aa-4b9ded2fe87f","savedPayload":{"position":{"x":14993.842618944414,"y":31857.33396342474},"targetPosition":{"x":14925.888767828708,"y":31663.133014328312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}}],"id":"2dbc8c9c-ba14-4340-8b97-8d358d32df6b","savedPayload":{"position":{"x":14925.888767828708,"y":31663.133014328312},"targetPosition":{"x":14740.517330878105,"y":31573.862835241023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"4ac812f4-ceef-409b-b698-31e82cacaf24","savedPayload":{"position":{"x":14740.517330878105,"y":31573.862835241023},"targetPosition":{"x":14369.774456976898,"y":31395.322477066442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"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":"","id":"aa2051f5-e411-4eed-b134-4c4dad10988e","savedPayload":{"position":{"x":14817.58263100711,"y":32052.136434856697},"targetPosition":{"x":14661.63239510771,"y":31917.930405057996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"b3bda3c8-3c08-43b2-912a-4b25bafd8796","savedPayload":{"position":{"x":14661.63239510771,"y":31917.930405057996},"targetPosition":{"x":14505.68215920831,"y":31783.724375259295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":"f6f691a2-dfe1-4049-a1c1-fff0869b6b3c","savedPayload":{"position":{"x":14429.180732814257,"y":32188.044137088105},"targetPosition":{"x":14467.431446011284,"y":31985.8842561737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"e90032ed-27eb-4e1b-92fb-f9106fa6dcfc","savedPayload":{"position":{"x":14467.431446011284,"y":31985.8842561737},"targetPosition":{"x":14505.68215920831,"y":31783.724375259295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"c373f542-e203-481c-bca2-ca7e4d799e79","savedPayload":{"position":{"x":14505.68215920831,"y":31783.724375259295},"targetPosition":{"x":14437.728308092604,"y":31589.52342616287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"b2fdc423-2498-41b9-b884-8c585cfecec7","savedPayload":{"position":{"x":14437.728308092604,"y":31589.52342616287},"targetPosition":{"x":14369.774456976898,"y":31395.322477066442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"d57edcc8-cb45-4d6f-99e8-2c1f611691f6","savedPayload":{"position":{"x":14369.774456976898,"y":31395.322477066442},"targetPosition":{"x":13628.288709174487,"y":31038.24176071728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Crypto Exchange","name":"HitBTC","code":"{\n \"codeName\": \"HitBTC\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"class\": \"hitbtc2\"\n }\n ]\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"70be8065-7936-4dc2-b1ee-bfcec4f19cba","savedPayload":{"position":{"x":14136.805778564292,"y":31855.069532494344},"targetPosition":{"x":14159.842108189101,"y":32059.522612756846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"2b4ca7b9-2db8-4fbb-97ac-faf95ec775ab","savedPayload":{"position":{"x":14305.327046432563,"y":31914.037674513384},"targetPosition":{"x":14159.842108189101,"y":32059.522612756846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"69204d74-e6c0-4ea2-a4e0-2796100fbbc9","savedPayload":{"position":{"x":14364.295188451604,"y":32082.558942381656},"targetPosition":{"x":14159.842108189101,"y":32059.522612756846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"27da6570-6ccd-4efb-a882-cd744c0579f3","savedPayload":{"position":{"x":14269.30599095019,"y":32233.73338418696},"targetPosition":{"x":14159.842108189101,"y":32059.522612756846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"75339f18-5482-4302-9cf2-d0b1befc928c","savedPayload":{"position":{"x":14091.888257073395,"y":32253.723561853272},"targetPosition":{"x":14159.842108189101,"y":32059.522612756846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"05da99c0-f458-4799-9d14-df4139973233","savedPayload":{"position":{"x":13965.641159092675,"y":32127.47646387255},"targetPosition":{"x":14159.842108189101,"y":32059.522612756846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"192d1d43-de1a-4ed6-9560-0b7cc3edd29b","savedPayload":{"position":{"x":14159.842108189101,"y":32059.522612756846},"targetPosition":{"x":13811.420565328875,"y":31840.594847234668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","markets":[{"type":"Market","name":"ETH/BTC","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":"Ether","id":"e34e52e9-7f72-4267-9c3c-cfbb06c485e9","savedPayload":{"position":{"x":14247.204890102976,"y":32368.02947101798},"targetPosition":{"x":14042.929839138718,"y":32392.594447406293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"69204d74-e6c0-4ea2-a4e0-2796100fbbc9"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"2f4837e9-6e5f-474d-85cb-a42dea3c0f36","savedPayload":{"position":{"x":14222.630757739575,"y":32492.79082640981},"targetPosition":{"x":14042.929839138718,"y":32392.594447406293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"70be8065-7936-4dc2-b1ee-bfcec4f19cba"}}},"superActions":[{"type":"Super Action","name":"Setup Market","id":"0cbc02a5-67fb-46ff-9dee-6d62153246e5","savedPayload":{"position":{"x":14129.416982280223,"y":32579.280570571966},"targetPosition":{"x":14042.929839138718,"y":32392.594447406293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"ca925112-1ad4-4ff1-8c01-0f5e8627d15e","savedPayload":{"position":{"x":14003.168057730696,"y":32594.462560912783},"targetPosition":{"x":14042.929839138718,"y":32392.594447406293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"751ae593-f933-4a44-97c5-50f02aed2ffa","savedPayload":{"position":{"x":14042.929839138718,"y":32392.594447406293},"targetPosition":{"x":13902.98649340607,"y":32241.771390493363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"BTC/USDT","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":"Bitcoin","id":"4153fe7c-0403-4053-a837-8307ee8f3573","savedPayload":{"position":{"x":13965.752986587144,"y":32603.00230674514},"targetPosition":{"x":13842.341567509371,"y":32438.37741144489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"70be8065-7936-4dc2-b1ee-bfcec4f19cba"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"b6758271-06b6-4356-b767-c473bbca620a","savedPayload":{"position":{"x":13845.419417225537,"y":32644.10116153839},"targetPosition":{"x":13842.341567509371,"y":32438.37741144489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"2b4ca7b9-2db8-4fbb-97ac-faf95ec775ab"}}},"superActions":[{"type":"Super Action","name":"Setup Market","id":"ad06c72a-300c-4e2c-8df0-f4a2e0c45b8f","savedPayload":{"position":{"x":13723.910213884621,"y":32606.620536089013},"targetPosition":{"x":13842.341567509371,"y":32438.37741144489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"e392b15a-7a7b-458b-a2f1-378bcdba25fa","savedPayload":{"position":{"x":13647.6377622947,"y":32504.876755399062},"targetPosition":{"x":13842.341567509371,"y":32438.37741144489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5c44fd86-9fb9-40ed-af02-78f93b420562","savedPayload":{"position":{"x":13842.341567509371,"y":32438.37741144489},"targetPosition":{"x":13902.98649340607,"y":32241.771390493363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"6e33c5a2-1b71-481b-a28a-b4d9cece0226","savedPayload":{"position":{"x":13902.98649340607,"y":32241.771390493363},"targetPosition":{"x":13811.420565328875,"y":31840.594847234668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"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":"","id":"b8be9007-90e9-4070-9537-2105f736a66d","savedPayload":{"position":{"x":13577.106564700842,"y":32600.222180198707},"targetPosition":{"x":13584.79968225377,"y":32394.6192851468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"f1f6572a-20fe-4f6c-9578-e46e088a7668","savedPayload":{"position":{"x":13584.79968225377,"y":32394.6192851468},"targetPosition":{"x":13592.492799806698,"y":32189.016390094894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":"5cadfe23-d980-4983-9713-91b34fc58021","savedPayload":{"position":{"x":13228.685021840616,"y":32381.294414676526},"targetPosition":{"x":13410.588910823657,"y":32285.15540238571},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"d3b0ea14-7854-4f69-ac56-dab3fe81a87a","savedPayload":{"position":{"x":13410.588910823657,"y":32285.15540238571},"targetPosition":{"x":13592.492799806698,"y":32189.016390094894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"b726a347-ef0e-4ff4-90c0-b8c7d4bc06d3","savedPayload":{"position":{"x":13592.492799806698,"y":32189.016390094894},"targetPosition":{"x":13701.956682567787,"y":32014.80561866478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"ebc99cb1-8ff0-43a9-9c1a-525871c30021","savedPayload":{"position":{"x":13701.956682567787,"y":32014.80561866478},"targetPosition":{"x":13811.420565328875,"y":31840.594847234668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"f1b1fcc1-9839-4833-aefe-2e3bee456e04","savedPayload":{"position":{"x":13811.420565328875,"y":31840.594847234668},"targetPosition":{"x":13628.288709174487,"y":31038.24176071728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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","assets":[{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"b2814a75-fd57-45c4-a3cb-af276793e573","savedPayload":{"position":{"x":13306.722248280603,"y":31945.1002005166},"targetPosition":{"x":13161.23731003714,"y":32090.585138760063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"04c5f172-6976-4557-b95f-38004b5201a6","savedPayload":{"position":{"x":13365.690390299644,"y":32113.621468384874},"targetPosition":{"x":13161.23731003714,"y":32090.585138760063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4175d47c-e12c-4902-b026-f4999a6d07a4","savedPayload":{"position":{"x":13270.70119279823,"y":32264.795910190176},"targetPosition":{"x":13161.23731003714,"y":32090.585138760063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3","savedPayload":{"position":{"x":13093.283458921434,"y":32284.78608785649},"targetPosition":{"x":13161.23731003714,"y":32090.585138760063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"6dee1e7e-80f3-4597-a28a-881af206ec14","savedPayload":{"position":{"x":12967.036360940714,"y":32158.538989875768},"targetPosition":{"x":13161.23731003714,"y":32090.585138760063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"59378d33-4833-495a-89bb-f739710be7d9","savedPayload":{"position":{"x":12987.026538607028,"y":31981.121255998976},"targetPosition":{"x":13161.23731003714,"y":32090.585138760063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"f4451bbc-50ea-4558-9b3c-abd3e757a76e","savedPayload":{"position":{"x":13161.23731003714,"y":32090.585138760063},"targetPosition":{"x":13115.164650787521,"y":31681.678978235057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","markets":[{"type":"Market","name":"ETH/USDT","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":"Ether","id":"2ad20954-48bd-40db-a175-71337f616e19","savedPayload":{"position":{"x":12876.337205212703,"y":32568.40363012241},"targetPosition":{"x":12677.208329129877,"y":32516.640465406577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"01fc2c5c-9438-4c30-91a6-03a7374ef87e","savedPayload":{"position":{"x":12807.881349119712,"y":32675.562762011377},"targetPosition":{"x":12677.208329129877,"y":32516.640465406577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"cad5d1a5-e3db-43b6-b0c9-0314ec294f73","savedPayload":{"position":{"x":12689.5128408032,"y":32722.018978167504},"targetPosition":{"x":12677.208329129877,"y":32516.640465406577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"eb624e44-ff76-405e-886c-beef0e943c6e","savedPayload":{"position":{"x":12566.444427242448,"y":32690.027583007857},"targetPosition":{"x":12677.208329129877,"y":32516.640465406577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"b3179fa1-f2ec-44eb-83bc-a6f9025c0441","savedPayload":{"position":{"x":12677.208329129877,"y":32516.640465406577},"targetPosition":{"x":12602.040592400555,"y":32325.116195752835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Market","name":"BTC/USDT","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":"Bitcoin","id":"b85b1934-28e5-41f6-a6f0-4178453c48d8","savedPayload":{"position":{"x":12254.199187408889,"y":32441.02031343539},"targetPosition":{"x":12398.591841074493,"y":32294.451230478535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b2814a75-fd57-45c4-a3cb-af276793e573"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"0d96bd23-cc52-4429-81c2-b2e229e290ae","savedPayload":{"position":{"x":12195.624584992052,"y":32328.156237076564},"targetPosition":{"x":12398.591841074493,"y":32294.451230478535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"04c5f172-6976-4557-b95f-38004b5201a6"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"3e3e0239-42c3-4885-957e-91cab8d71899","savedPayload":{"position":{"x":12214.576575795403,"y":32202.41799378833},"targetPosition":{"x":12398.591841074493,"y":32294.451230478535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"83e715c5-240c-4c62-84e3-872b63c23baf","savedPayload":{"position":{"x":12303.81614348654,"y":32111.833318821093},"targetPosition":{"x":12398.591841074493,"y":32294.451230478535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f","savedPayload":{"position":{"x":12398.591841074493,"y":32294.451230478535},"targetPosition":{"x":12602.040592400555,"y":32325.116195752835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"c422d50d-ba95-4687-9be9-2c0650bef79c","savedPayload":{"position":{"x":12602.040592400555,"y":32325.116195752835},"targetPosition":{"x":13115.164650787521,"y":31681.678978235057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":12510.050128411316,"y":32053.376975607032},"targetPosition":{"x":12540.715093685614,"y":31849.928224280968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":12375.171697108713,"y":31972.104811077257},"targetPosition":{"x":12540.715093685614,"y":31849.928224280968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":12337.266342359551,"y":31819.263259006668},"targetPosition":{"x":12540.715093685614,"y":31849.928224280968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4175d47c-e12c-4902-b026-f4999a6d07a4"}}}],"id":"f7bbfcc0-2359-4de1-8ddc-5e117bde0c52","savedPayload":{"position":{"x":12540.715093685614,"y":31849.928224280968},"targetPosition":{"x":12706.258490262515,"y":31727.75163748468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":12329.099037859092,"y":31563.198650552247},"targetPosition":{"x":12517.678764060804,"y":31645.475144018463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"cf3895fd-4f0c-4bd8-8afb-886a718cc891","savedPayload":{"position":{"x":12517.678764060804,"y":31645.475144018463},"targetPosition":{"x":12706.258490262515,"y":31727.75163748468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"a718949a-e315-4bda-8523-b0b03e3ca507","savedPayload":{"position":{"x":12706.258490262515,"y":31727.75163748468},"targetPosition":{"x":12910.711570525018,"y":31704.715307859868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"a913b30b-17d3-4b2b-9c39-9c7dc67f0000","savedPayload":{"position":{"x":12910.711570525018,"y":31704.715307859868},"targetPosition":{"x":13115.164650787521,"y":31681.678978235057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"22d2b36e-7a77-40a6-8948-b7d0fb744923","savedPayload":{"position":{"x":13115.164650787521,"y":31681.678978235057},"targetPosition":{"x":13628.288709174487,"y":31038.24176071728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"0975e979-d4d5-4195-8fac-061788e6d425","savedPayload":{"position":{"x":13628.288709174487,"y":31038.24176071728},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"e"}}},"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},"uiObject":{"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":13475.09422231676,"y":25000.3630574859},"targetPosition":{"x":12809.806237131383,"y":24999.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"frame":{"position":{"x":61.04655063301436,"y":514.2166058422539}}}},"dashboards":[{"type":"Dashboard","name":"Super Action Generated","timeMachines":[{"type":"Time Machine","name":"Bitcoin, August 17 2017","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2017-08-17T00:00:00.000Z\",\n \"toDate\": \"2020-03-03T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"a0069220-44b4-4fa4-bb3f-505f8b6de439","savedPayload":{"position":{"x":12613.552195934608,"y":25108.276410671526},"targetPosition":{"x":12198.709137958991,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0,\n \"maxValue\": 19798.68,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"be4ae991-2367-49c9-b2aa-6732dba08881","savedPayload":{"position":{"x":12660.566603831146,"y":25234.32691633486},"targetPosition":{"x":12198.709137958991,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"78cc9ba2-2378-42ab-ae9b-d287112c35c6","savedPayload":{"position":{"x":12670.164066614834,"y":25368.516980184457},"targetPosition":{"x":12198.709137958991,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 7,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"e6d0881c-4748-45fa-9c24-472151ec4896","savedPayload":{"position":{"x":12862.996013414377,"y":25817.04990118773},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"592901f9-9d7e-4d02-9c3e-9941fd1cbc62"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b0bda2d2-1770-4384-acc3-c9745ccd23d6","savedPayload":{"position":{"x":12795.700211705942,"y":25811.752505968318},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"2fc1f392-7d9b-409e-9cb7-85c14e1e7c07"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5d1d6304-cf2d-4c6c-96fe-30b5e65d8251","savedPayload":{"position":{"x":12738.642861762164,"y":25776.061333805144},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"3e9c58db-ca68-4089-9a02-d99f01428a41"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"599a0696-2db3-4ef6-bcd4-94791295a3db","savedPayload":{"position":{"x":12686.126387464661,"y":25735.822456161557},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"b47bf5eb-2f3e-462f-aa45-8e5c6ae784bc"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9af4fdc7-2f3e-4ffb-8c8d-25398eba78da","savedPayload":{"position":{"x":12645.498757248492,"y":25681.89172158605},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"7f5856c1-cf3a-4525-8036-69da93e57771"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d8712fbc-6745-4ed5-986d-d1b125b77d09","savedPayload":{"position":{"x":12628.748501288848,"y":25616.243760525056},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"67a989ee-e8da-4079-9b0a-8a7509db45a5"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"32685b5e-666c-49f1-9c33-e6904252f0b1","savedPayload":{"position":{"x":12631.247715549243,"y":25549.243677955794},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"763cde69-4a76-498f-a753-87baa3b227f3"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d1610156-46a8-4a21-a5b9-2d411835a0c9","savedPayload":{"position":{"x":12649.639047883073,"y":25485.127191509797},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"079ae9a5-7138-4ab3-a1ef-c628e0ab89c3"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"14cfc1de-c7f4-42c8-8390-0594515b6640","savedPayload":{"position":{"x":12683.007959684077,"y":25426.60351650295},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"cec7c500-e69e-468a-884f-e2a27f4da93a"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f090a4d0-c51e-4310-97ab-f67ba2798ed0","savedPayload":{"position":{"x":12734.328674491515,"y":25382.353765485183},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"051e19e2-bfcc-458d-97d5-ba6c8698845e"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"b57632d3-6b76-47bd-ad08-cdeca6b21f48","savedPayload":{"position":{"x":12795.804240562027,"y":25353.729889497492},"targetPosition":{"x":12862.996013414377,"y":25582.56405285908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"bafc9397-8533-4d1b-a260-acd736973fad"}}}],"id":"9672bb89-b948-4892-8580-89bf11b8b390","savedPayload":{"position":{"x":12862.996013414377,"y":25582.56405285908},"targetPosition":{"x":12641.567054929248,"y":25499.97532130627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":540,"radius":0}}},"id":"fa0d0c3b-a70e-4612-937b-b0367d92f5f8","savedPayload":{"position":{"x":12641.567054929248,"y":25499.97532130627},"targetPosition":{"x":12198.709137958991,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": -4401.785684625735,\n \"maxValue\": 289050.59329037403,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"dc87d849-2be0-492c-be49-954cd53e3146","savedPayload":{"position":{"x":11552.281313351868,"y":25609.020235091262},"targetPosition":{"x":11750.086054555446,"y":25480.56433418319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e8765801-7216-4b73-be15-7ad8439ada63","savedPayload":{"position":{"x":11290.242631528332,"y":25565.791275025083},"targetPosition":{"x":11514.554173230104,"y":25492.90803703381},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"54e5d587-dae5-4901-8625-899f3b6eb361"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"245f626e-82c2-49d0-a308-4c520505dfe2","savedPayload":{"position":{"x":11283.85306075868,"y":25443.871001793435},"targetPosition":{"x":11514.554173230104,"y":25492.90803703381},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"fad346d0-20f9-4cf4-9663-7eb54622b5f0"}}}],"id":"beacdf21-5a37-46d8-b6ba-372eb598d46d","savedPayload":{"position":{"x":11514.554173230104,"y":25492.90803703381},"targetPosition":{"x":11750.086054555446,"y":25480.56433418319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":190,"radius":0}}},"id":"ca4166e4-ff61-4664-9f35-351eac6b6d5e","savedPayload":{"position":{"x":11750.086054555446,"y":25480.56433418319},"targetPosition":{"x":12198.709137958991,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 597.0843531206899,\n \"maxValue\": 1407.672236837253,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"fcfa7605-82cb-47d2-b0c3-86305bee7a18","savedPayload":{"position":{"x":12667.730863923029,"y":25859.270317917435},"targetPosition":{"x":12481.96324647381,"y":25713.181048829825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d164719e-f8bb-4abf-9c23-d0d5630df260","savedPayload":{"position":{"x":12403.115077940316,"y":26099.264885705827},"targetPosition":{"x":12569.798087841538,"y":25932.581875804604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"e7c4252c-3b6b-4b21-9f7a-6a6263739835"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f74e7701-d0eb-4de9-a930-6cd5c5e07f38","savedPayload":{"position":{"x":12332.394115486033,"y":25932.581875804604},"targetPosition":{"x":12569.798087841538,"y":25932.581875804604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"7e909437-bd0e-44c3-8a00-1eb542c6759a"}}}],"id":"94e0a283-b55b-4640-9942-30b5e986ebc9","savedPayload":{"position":{"x":12569.798087841538,"y":25932.581875804604},"targetPosition":{"x":12481.96324647381,"y":25713.181048829825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"4e5b68f6-195e-4472-a336-9ce706fb94e6","savedPayload":{"position":{"x":12481.96324647381,"y":25713.181048829825},"targetPosition":{"x":12198.709137958991,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"dbb41b1d-69e4-40a9-892f-753688895d08","savedPayload":{"position":{"x":12281.069820740044,"y":26164.490245533416},"targetPosition":{"x":12446.475332617434,"y":25999.084733656025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"f9f7fd12-77e6-49f8-a81c-a4cd8c738c7c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"176df515-495c-4887-ac52-2a3c55a7130b","savedPayload":{"position":{"x":12228.125898724295,"y":26089.52803051105},"targetPosition":{"x":12446.475332617434,"y":25999.084733656025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"208f3789-572c-4bf6-a6aa-367547d5aedd"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"60cf45ff-4664-4d86-89fa-0bac222a6478","savedPayload":{"position":{"x":12209.933655804565,"y":25999.084733656025},"targetPosition":{"x":12446.475332617434,"y":25999.084733656025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"4f57a067-443c-4c91-bae0-ce098f9cade6"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"e5c1840b-49b8-4675-8dd8-63f9a8bf28d6","savedPayload":{"position":{"x":12227.329841773268,"y":25908.31169921546},"targetPosition":{"x":12446.475332617434,"y":25999.084733656025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"2628ab84-c337-4723-902a-a5d0f42a661c"}}}],"id":"6adb0d2c-e175-432a-8512-f262e6131fdc","savedPayload":{"position":{"x":12446.475332617434,"y":25999.084733656025},"targetPosition":{"x":12363.88660106462,"y":25777.655775170897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"92daf517-c49c-4ce6-bcb7-80630485de7d","savedPayload":{"position":{"x":12363.88660106462,"y":25777.655775170897},"targetPosition":{"x":12198.709137958991,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"2c4782c8-6ac2-49bc-9776-1f13302797b1","savedPayload":{"position":{"x":12371.32782910603,"y":26244.360879310858},"targetPosition":{"x":12249.287820934718,"y":26041.980251184406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5b1edea6-5cd7-4a65-bc7d-73c105cd5724"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"84fbcaa5-73c9-4a5e-87e3-402193127a5a","savedPayload":{"position":{"x":12302.815712531408,"y":26272.168102854568},"targetPosition":{"x":12249.287820934718,"y":26041.980251184406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"d939ae77-56f0-4fc8-9ab6-359abad0e0a9"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"355a7df3-5149-4271-b659-badd62aeaca6","savedPayload":{"position":{"x":12229.063912976551,"y":26277.442935663734},"targetPosition":{"x":12249.287820934718,"y":26041.980251184406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e2b71867-d5d1-47d3-bb4a-73e22007631a"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"e11ef140-52bf-47d6-9c86-b453a18f54d8","savedPayload":{"position":{"x":12157.291770440892,"y":26259.669040351073},"targetPosition":{"x":12249.287820934718,"y":26041.980251184406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"470d4049-e0f1-4175-9aed-6818058ac2fd"}}}],"id":"bbc36e07-5f8f-429f-95ca-6e8eb868eb68","savedPayload":{"position":{"x":12249.287820934718,"y":26041.980251184406},"targetPosition":{"x":12232.42825994281,"y":25806.252786856483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":600,"y":80},"width":150,"height":40,"radius":0}}},"id":"d7cbf60a-3fd5-482d-b0c6-d4e2c510c4e2","savedPayload":{"position":{"x":12232.42825994281,"y":25806.252786856483},"targetPosition":{"x":12198.709137958991,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"1ab63aa5-8675-4ce3-b70f-76b1043d2fca","savedPayload":{"position":{"x":11878.618638187887,"y":26196.968143981307},"targetPosition":{"x":12048.00272516032,"y":26027.584057008873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"56000a54-eabb-4f0e-99b4-18ac1d94d78a"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"780582e8-b1ab-4441-bd66-31dcb83b922d","savedPayload":{"position":{"x":11832.042326343158,"y":26117.037783134445},"targetPosition":{"x":12048.00272516032,"y":26027.584057008873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"1017f60b-aa9b-4af3-944f-4d31d05dbfa6"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"648157de-0029-4766-a9a8-86af6bd762f6","savedPayload":{"position":{"x":11813.932968189738,"y":26027.584057008873},"targetPosition":{"x":12048.00272516032,"y":26027.584057008873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"54bc5a5d-4337-4780-a943-15ef0431ba34"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"eac485e7-f54b-497d-bef4-88d94e2d9bbc","savedPayload":{"position":{"x":11836.097367990307,"y":25939.809984129537},"targetPosition":{"x":12048.00272516032,"y":26027.584057008873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"e5743b89-597f-4101-8d71-118b327f8898"}}}],"id":"67cc3961-10b8-4842-82ff-d60c84330ed7","savedPayload":{"position":{"x":12048.00272516032,"y":26027.584057008873},"targetPosition":{"x":12098.23819609321,"y":25796.655324072795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":750,"y":80},"width":150,"height":40,"radius":0}}},"id":"7e42ed73-07c5-4007-8798-edbcb601f224","savedPayload":{"position":{"x":12098.23819609321,"y":25796.655324072795},"targetPosition":{"x":12198.709137958991,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"1dc0d224-f8e8-4563-bdef-24c442918a50","savedPayload":{"position":{"x":11916.470874307832,"y":25979.308760326312},"targetPosition":{"x":11972.187690429879,"y":25749.640916176257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"ae96e726-5c2f-4e01-b1f7-56995c9a25f6","savedPayload":{"position":{"x":11640.748528783028,"y":26089.03375697373},"targetPosition":{"x":11809.101590175173,"y":25920.680695581585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"86b1e87a-2356-4f92-adf2-4809df955a80"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"396e6847-a372-4fd5-a629-13430f2fdb31","savedPayload":{"position":{"x":11592.278450052676,"y":26010.491780856646},"targetPosition":{"x":11809.101590175173,"y":25920.680695581585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"546accc1-5ef3-463b-97f3-f473bd9bf187"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"0a43f532-d4b9-4c1c-9c41-e46494d291e1","savedPayload":{"position":{"x":11572.466516296074,"y":25920.680695581585},"targetPosition":{"x":11809.101590175173,"y":25920.680695581585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"87d5a6a8-96b3-4388-97c6-25d9c551ce06"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"239c0e82-81f3-43e7-96b7-b0dd58902957","savedPayload":{"position":{"x":11591.155553149132,"y":25830.40449117993},"targetPosition":{"x":11809.101590175173,"y":25920.680695581585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"ab2d736e-230c-43b7-b4ee-1caee0837a81"}}}],"id":"f32683b2-d60b-4527-bd86-e95712542426","savedPayload":{"position":{"x":11809.101590175173,"y":25920.680695581585},"targetPosition":{"x":11972.187690429879,"y":25749.640916176257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1770,"y":80},"width":150,"height":330,"radius":0}}},"id":"077cb061-e3c5-4b35-a411-0b4c0b3b40e3","savedPayload":{"position":{"x":11972.187690429879,"y":25749.640916176257},"targetPosition":{"x":12198.709137958991,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"2ee4dd4a-a593-46ef-8999-d7b1d3bd362e","savedPayload":{"position":{"x":12198.709137958991,"y":25334.79785820064},"targetPosition":{"x":11864.488605270433,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":545.1666666666666,"y":-337.33333333333326},"width":320,"height":120,"radius":0}}},{"type":"Time Machine","name":"Ether, August 17 2017","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2017-08-17T00:00:00.000Z\",\n \"toDate\": \"2020-03-03T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"9f26196e-8d47-4826-877d-2acc94423640","savedPayload":{"position":{"x":12318.001796325185,"y":25606.400023454495},"targetPosition":{"x":11864.488605270433,"y":25473.2365356638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0,\n \"maxValue\": 1440,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"3d0a68a7-ff52-41cd-b391-acdef2265979","savedPayload":{"position":{"x":12262.11483563576,"y":25728.775397418143},"targetPosition":{"x":11864.488605270433,"y":25473.2365356638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"2450b174-ca15-45fa-a0d9-9f76ca42c821","savedPayload":{"position":{"x":12174.014562536386,"y":25830.44853255058},"targetPosition":{"x":11864.488605270433,"y":25473.2365356638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 8,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"1434a6e3-5c83-4e68-a647-e64a94f222e9","savedPayload":{"position":{"x":12159.013203166389,"y":26348.770303308036},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"35008294-cf41-44c9-a13b-b85c001a0b7b"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3e2f9c37-e470-4a2e-a54a-82702de197f7","savedPayload":{"position":{"x":12091.828830981161,"y":26346.964405347313},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"1266801d-55f8-4e13-9a09-38935bd4bc36"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"13b4a9ee-6460-4fcb-9ecd-9e74468eda80","savedPayload":{"position":{"x":12031.640556968225,"y":26316.351152513897},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"d9c21529-18fe-47bd-9fdc-866983e2f51f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e9e2ad15-61c3-474a-ab0a-e0415f5387da","savedPayload":{"position":{"x":11974.49701620673,"y":26278.03963247788},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"0caa2082-5f28-4ac9-9eb1-db15489c4cb7"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"59fdc660-ceb9-483b-ad47-9fb6cb7edc5b","savedPayload":{"position":{"x":11944.06940498394,"y":26216.316989882493},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"4585a24d-7770-4420-ac10-c6bdf37fc0f1"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ef570658-5f36-45cb-95a1-9329a20378cd","savedPayload":{"position":{"x":11928.713342058869,"y":26151.267567480616},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"2f8348ef-9d16-4f7a-a83f-d02030a322da"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bdea1f12-b571-4290-b1c6-0bd025e4cfd3","savedPayload":{"position":{"x":11925.494558510942,"y":26084.58053399872},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"cac6af1b-0fd1-4fbb-b84b-9510d517d53f"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7eef00c6-2627-45ec-afdb-c0760c87d68c","savedPayload":{"position":{"x":11943.54949766456,"y":26019.756469087017},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"2069081b-f980-4f8e-a830-7bd37a83fe29"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e1571944-49ad-476c-a517-6f880df2df12","savedPayload":{"position":{"x":11979.582768901893,"y":25962.67809000477},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"c082fd7c-571c-48e8-8505-7aa585e2ae33"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"68b8976e-f8b7-47ef-b600-de5d7fbc292c","savedPayload":{"position":{"x":12028.909411572273,"y":25915.709994983587},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"e1ebf6c9-6bab-4ba3-ad06-e14c2c9ddecd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"83119647-dcf1-4d06-977c-446e4dd24761","savedPayload":{"position":{"x":12094.10637249614,"y":25897.103081412886},"targetPosition":{"x":12159.013203166389,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"3130824c-f6be-410d-bcd2-f7c6ea4b9d66"}}}],"id":"219ef3ee-df10-4514-bfa9-b4086ea65933","savedPayload":{"position":{"x":12159.013203166389,"y":26118.1554463433},"targetPosition":{"x":12060.83833720107,"y":25903.1824761168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":610,"radius":0}}},"id":"59e63bce-5d15-45d1-91e4-b0522b77dfc2","savedPayload":{"position":{"x":12060.83833720107,"y":25903.1824761168},"targetPosition":{"x":11864.488605270433,"y":25473.2365356638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": -29.680070879250707,\n \"maxValue\": 8874.341192895741,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"41cb6a62-d936-4bad-97de-413005a88fed","savedPayload":{"position":{"x":11213.393415372855,"y":25749.438864460953},"targetPosition":{"x":11412.626354664815,"y":25620.055480869694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"55e87488-65f3-4951-bf6c-840847a3f00c","savedPayload":{"position":{"x":10949.462750868897,"y":25705.897780844276},"targetPosition":{"x":11175.393876171705,"y":25632.48830824133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"93f633b5-d135-4202-80bb-733502ccb3ca"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"a4abf90b-974c-4eb6-8308-49889e32f913","savedPayload":{"position":{"x":10943.027045852394,"y":25583.097213742494},"targetPosition":{"x":11175.393876171705,"y":25632.48830824133},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"833dab75-0015-41f0-a169-439b2976acaf"}}}],"id":"1ca21985-0ee1-4386-958a-7894f33478c5","savedPayload":{"position":{"x":11175.393876171705,"y":25632.48830824133},"targetPosition":{"x":11412.626354664815,"y":25620.055480869694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"ac1c0da8-0be3-46f7-bc79-7a64373bc865","savedPayload":{"position":{"x":11412.626354664815,"y":25620.055480869694},"targetPosition":{"x":11864.488605270433,"y":25473.2365356638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": -33.9604859448264,\n \"maxValue\": 821.7558832501588,\n \"autoMinScale\": true,\n \"autoMaxScale\": false\n}","id":"4639175c-280a-480c-acb8-3e5cb04c30a8","savedPayload":{"position":{"x":11825.27901541209,"y":26175.743011428123},"targetPosition":{"x":11797.222186219313,"y":25941.084756574477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2460df33-2715-498c-a59c-d751814f04dc","savedPayload":{"position":{"x":11537.459706425892,"y":26325.06446027903},"targetPosition":{"x":11704.190985623076,"y":26158.333181081845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9757ef1e-7a05-4fdd-9ea7-072bd971d909"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3413cf90-4937-4218-890b-8b14e16bc8fb","savedPayload":{"position":{"x":11469.594560150075,"y":26158.333181081845},"targetPosition":{"x":11704.190985623076,"y":26158.333181081845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"74011e06-512b-4d06-87ae-da2d9b406f59"}}}],"id":"76ca012b-751c-40e0-a9f5-48986d97b038","savedPayload":{"position":{"x":11704.190985623076,"y":26158.333181081845},"targetPosition":{"x":11797.222186219313,"y":25941.084756574477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":190,"radius":0}}},"id":"402ddd1e-d0bb-48f7-b556-2f591e6f8da8","savedPayload":{"position":{"x":11797.222186219313,"y":25941.084756574477},"targetPosition":{"x":11864.488605270433,"y":25473.2365356638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"35db6f3f-963f-45e3-8fed-2f6dad035fc0","savedPayload":{"position":{"x":11400.498131265846,"y":26287.62132245193},"targetPosition":{"x":11569.964007374478,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e4ac3d13-3fd4-4dd4-b674-1365ca7f7175"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"a795c8e8-03f7-406f-9171-e9d8f7556911","savedPayload":{"position":{"x":11352.80803735032,"y":26208.10439427759},"targetPosition":{"x":11569.964007374478,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"9a8c0690-77f2-4cdf-8da6-5e581995e436"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b9785d09-31f1-4c4b-8b44-137a14251867","savedPayload":{"position":{"x":11334.861843805693,"y":26118.1554463433},"targetPosition":{"x":11569.964007374478,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"25bfcb3b-bbe3-4485-83f8-fea7747cabb4"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"69bafbb4-ebca-46c4-a954-9c69d96d98bd","savedPayload":{"position":{"x":11354.426609225908,"y":26028.87693283155},"targetPosition":{"x":11569.964007374478,"y":26118.1554463433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"2360d9de-88d5-4680-8272-e3949d066ce9"}}}],"id":"2f9e2807-0c53-43b9-85dc-0648fcbddce4","savedPayload":{"position":{"x":11569.964007374478,"y":26118.1554463433},"targetPosition":{"x":11668.138873339796,"y":25903.1824761168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":450,"y":80},"width":150,"height":190,"radius":0}}},"id":"d59c1433-d818-4345-b8e6-96dcbf38173c","savedPayload":{"position":{"x":11668.138873339796,"y":25903.1824761168},"targetPosition":{"x":11864.488605270433,"y":25473.2365356638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"a6662c8d-df3c-43fc-ba90-1ed87257f609","savedPayload":{"position":{"x":11343.390272196493,"y":26238.454562876974},"targetPosition":{"x":11400.199669371505,"y":26009.05453099397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5b1edea6-5cd7-4a65-bc7d-73c105cd5724"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"1a58014b-2610-46ad-8573-f5d930f8672b","savedPayload":{"position":{"x":11275.282213639408,"y":26209.67185698734},"targetPosition":{"x":11400.199669371505,"y":26009.05453099397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"d939ae77-56f0-4fc8-9ab6-359abad0e0a9"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"b8cfab7f-cde4-43a3-b4d5-1c1bb43fb9e7","savedPayload":{"position":{"x":11219.401946000471,"y":26161.25132944638},"targetPosition":{"x":11400.199669371505,"y":26009.05453099397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e2b71867-d5d1-47d3-bb4a-73e22007631a"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"a1b20564-d7e9-4695-a251-7ccaf7bbb3ff","savedPayload":{"position":{"x":11181.219419216903,"y":26097.93271885544},"targetPosition":{"x":11400.199669371505,"y":26009.05453099397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"470d4049-e0f1-4175-9aed-6818058ac2fd"}}}],"id":"5836372c-2db3-48a9-bdde-02752333fd46","savedPayload":{"position":{"x":11400.199669371505,"y":26009.05453099397},"targetPosition":{"x":11554.96264800448,"y":25830.44853255058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":600,"y":80},"width":150,"height":40,"radius":0}}},"id":"c9c9f9a3-8ca1-41fe-b3f6-05935c0a33eb","savedPayload":{"position":{"x":11554.96264800448,"y":25830.44853255058},"targetPosition":{"x":11864.488605270433,"y":25473.2365356638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 1,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"81ad62d5-fcc2-49e2-bfe8-043b2453e7c1","savedPayload":{"position":{"x":11097.441730407316,"y":26027.15235761044},"targetPosition":{"x":11268.049259722442,"y":25856.544828295315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5f3820e7-130d-4475-a8b7-852580edfcf5"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"ffde5f00-8ea2-4b44-a9f9-fd6ead4a9f44","savedPayload":{"position":{"x":11060.663726568795,"y":25942.44672876753},"targetPosition":{"x":11268.049259722442,"y":25856.544828295315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"5716f1f6-88b4-47ba-bf83-6c2e956ce4e4"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"91ec9f87-19c5-48bf-bf8a-0b36ff8dcd8e","savedPayload":{"position":{"x":11019.74969377351,"y":25856.544828295315},"targetPosition":{"x":11268.049259722442,"y":25856.544828295315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e52469b7-751a-4fcf-82b9-b3401186a1d6"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"7ce4a6f4-9edb-4dc0-b200-050875d15f2d","savedPayload":{"position":{"x":11050.311611802674,"y":25766.354941487727},"targetPosition":{"x":11268.049259722442,"y":25856.544828295315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"880548a9-2bac-4458-8265-e04451f724df"}}}],"id":"a18a7eea-d750-47f8-af70-ebee0474aebe","savedPayload":{"position":{"x":11268.049259722442,"y":25856.544828295315},"targetPosition":{"x":11466.862374905106,"y":25728.775397418143},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":750,"y":80},"width":150,"height":120,"radius":0}}},"id":"f90dd021-e54d-41c8-a668-3c9b338df14a","savedPayload":{"position":{"x":11466.862374905106,"y":25728.775397418143},"targetPosition":{"x":11864.488605270433,"y":25473.2365356638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"93e2d288-e06c-423f-9a59-1ca4f726fb24","savedPayload":{"position":{"x":11209.17798569066,"y":25729.40197496747},"targetPosition":{"x":11410.975414215682,"y":25606.400023454495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4a8f9b9f-bbbc-46c9-aace-4b581b562d85","savedPayload":{"position":{"x":11007.399483720488,"y":25779.337379134944},"targetPosition":{"x":11174.712738938151,"y":25612.024123917283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"ede479e0-1fcd-4de3-a99d-8b296b2360d9"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"bcd9e3c4-33c7-4f0f-8714-1f6cc59ceb82","savedPayload":{"position":{"x":10955.163919963745,"y":25702.964222339477},"targetPosition":{"x":11174.712738938151,"y":25612.024123917283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"478298e6-ae4c-4572-8660-f77e589564da"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"e1aa9a28-678d-40ed-8840-b1139d2379c3","savedPayload":{"position":{"x":10939.169330269622,"y":25612.024123917283},"targetPosition":{"x":11174.712738938151,"y":25612.024123917283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"74cd1f5b-826b-442c-a55f-4f35d8e504d7"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"32b86954-cf37-478c-b4f9-d8691d58867d","savedPayload":{"position":{"x":10956.11408522569,"y":25521.477596833083},"targetPosition":{"x":11174.712738938151,"y":25612.024123917283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"4d3a9603-3944-4461-b7b7-7a4cf3c58c62"}}}],"id":"08736391-9316-480c-ad50-83e0331de474","savedPayload":{"position":{"x":11174.712738938151,"y":25612.024123917283},"targetPosition":{"x":11410.975414215682,"y":25606.400023454495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1096,"y":80},"width":150,"height":330,"radius":0}}},"id":"ac3bb21b-2652-4ec2-867f-62a63a7a16b3","savedPayload":{"position":{"x":11410.975414215682,"y":25606.400023454495},"targetPosition":{"x":11864.488605270433,"y":25473.2365356638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"a47a8c27-1bfe-4ef8-be4d-b688b6ae9e4f","savedPayload":{"position":{"x":11864.488605270433,"y":25473.2365356638},"targetPosition":{"x":11864.488605270433,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":545,"y":-145.5},"width":320,"height":120,"radius":0}}},{"type":"Time Machine","name":"Ether & Bitcoin Multi-market Demo, August 17 2017","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2017-08-17T00:00:00.000Z\",\n \"toDate\": \"2020-03-02T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"0cfff7fa-722f-4162-9e01-ff90ac3ae8ea","savedPayload":{"position":{"x":11652.601278012255,"y":25791.351596319575},"targetPosition":{"x":11530.268072581875,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0,\n \"maxValue\": 19798.68,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"7c89ac28-b2c5-48b4-a29f-109382524d5c","savedPayload":{"position":{"x":11407.934867151496,"y":25791.351596319575},"targetPosition":{"x":11530.268072581875,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"f4932dda-6021-420f-9a2e-42a0588e2307","savedPayload":{"position":{"x":11196.047539893318,"y":25669.018390889196},"targetPosition":{"x":11530.268072581875,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"BTC Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 3,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"76f1e118-8ee8-4f64-a978-c09f6169e900","savedPayload":{"position":{"x":10845.437465403471,"y":25757.477472317038},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"592901f9-9d7e-4d02-9c3e-9941fd1cbc62"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3b32cdb9-5b53-4564-8961-bc2b6a64d1ab","savedPayload":{"position":{"x":10778.121237005374,"y":25747.55568637176},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"2fc1f392-7d9b-409e-9cb7-85c14e1e7c07"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"602d1394-72af-4646-bd65-5698f16db00a","savedPayload":{"position":{"x":10717.528485622142,"y":25717.32792386226},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"3e9c58db-ca68-4089-9a02-d99f01428a41"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"511f78f7-9079-4362-9851-6df6f1710871","savedPayload":{"position":{"x":10666.108300945762,"y":25673.68727189764},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"b47bf5eb-2f3e-462f-aa45-8e5c6ae784bc"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"802f46c0-0b64-498d-bfee-4ce8f2978257","savedPayload":{"position":{"x":10631.67132490942,"y":25615.921391639746},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"7f5856c1-cf3a-4525-8036-69da93e57771"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2482fae9-79fb-43bc-ae78-5a56fe9e4698","savedPayload":{"position":{"x":10613.989948677416,"y":25551.574795450455},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"67a989ee-e8da-4079-9b0a-8a7509db45a5"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3c5ddd7c-2cf7-4aaa-b1ae-38b3bae891a7","savedPayload":{"position":{"x":10623.514707508752,"y":25486.38999081745},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"763cde69-4a76-498f-a753-87baa3b227f3"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8a108cdf-eab2-477c-8fe1-3191ea80881a","savedPayload":{"position":{"x":10632.921181175694,"y":25421.244731284063},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"079ae9a5-7138-4ab3-a1ef-c628e0ab89c3"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ca3b3f5e-4f61-4fff-9ae4-a86eb4777542","savedPayload":{"position":{"x":10667.04391338937,"y":25363.718773592114},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"cec7c500-e69e-468a-884f-e2a27f4da93a"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e2df642c-2c1e-404f-ab76-9a60aa9c6007","savedPayload":{"position":{"x":10714.400045843206,"y":25314.399461514113},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"051e19e2-bfcc-458d-97d5-ba6c8698845e"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"f2844c5d-1231-472b-be90-990969d26d5e","savedPayload":{"position":{"x":10779.983417151483,"y":25295.381649480772},"targetPosition":{"x":10845.437465403471,"y":25518.29766634621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"bafc9397-8533-4d1b-a260-acd736973fad"}}}],"id":"db84cbb9-4f3e-4b5a-857a-16dc8a078da1","savedPayload":{"position":{"x":10845.437465403471,"y":25518.29766634621},"targetPosition":{"x":11073.714334462938,"y":25457.13106363102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"f55ec722-e701-4ef4-8ac6-26c17145bbc9","savedPayload":{"position":{"x":11073.714334462938,"y":25457.13106363102},"targetPosition":{"x":11530.268072581875,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"ETH Indicators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": -0.5505642568314215,\n \"maxValue\": 3582.6302357431687\n}","id":"03ee0c2b-a034-4ec5-8691-5c623642a1a2","savedPayload":{"position":{"x":10617.160596344002,"y":25334.79785820064},"targetPosition":{"x":11073.714334462938,"y":25212.46465277026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 7,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"ae5ec780-0f71-468b-a643-6b350a9b46d6","savedPayload":{"position":{"x":10906.60406811866,"y":25283.545729816527},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"35008294-cf41-44c9-a13b-b85c001a0b7b"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"loading\",\n \"showPanels\": false\n}","id":"14d8cb94-77ea-421e-85c6-f8fd3485f63a","savedPayload":{"position":{"x":10839.4935316986,"y":25273.911883906792},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"1266801d-55f8-4e13-9a09-38935bd4bc36"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"73c57aa2-9ae2-4759-94fe-68c15c9e3d83","savedPayload":{"position":{"x":10778.936381537542,"y":25244.00918439371},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"d9c21529-18fe-47bd-9fdc-866983e2f51f"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"931a55bd-a65f-45c6-913d-dea63607b503","savedPayload":{"position":{"x":10727.400086233414,"y":25200.635520660904},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"0caa2082-5f28-4ac9-9eb1-db15489c4cb7"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"04edff6e-d513-44f7-81e2-7be00e938c2c","savedPayload":{"position":{"x":10689.6473673965,"y":25144.435191753433},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"4585a24d-7770-4420-ac10-c6bdf37fc0f1"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ed1467a6-0d18-4c07-be84-c621673a52f8","savedPayload":{"position":{"x":10672.509023489436,"y":25079.012172575447},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"2f8348ef-9d16-4f7a-a83f-d02030a322da"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a8866400-8283-4399-919d-3dbcfbdc67b4","savedPayload":{"position":{"x":10672.990196633156,"y":25011.765782530234},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"cac6af1b-0fd1-4fbb-b84b-9510d517d53f"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"47079260-d5f9-4612-8a40-3af99840afb0","savedPayload":{"position":{"x":10684.850102129229,"y":24944.08274345918},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"2069081b-f980-4f8e-a830-7bd37a83fe29"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7b6cdb6e-5248-4c07-b9c9-e6968cb86f1d","savedPayload":{"position":{"x":10725.7253659751,"y":24888.6220988266},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"c082fd7c-571c-48e8-8505-7aa585e2ae33"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ce85d1a3-c45f-4126-abf4-9a180174f8e9","savedPayload":{"position":{"x":10778.058085560311,"y":24845.332933241218},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"e1ebf6c9-6bab-4ba3-ad06-e14c2c9ddecd"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"ff119344-cf90-454e-a4c2-172cf8a8963a","savedPayload":{"position":{"x":10839.689493588236,"y":24817.46427385201},"targetPosition":{"x":10906.60406811866,"y":25045.35438642598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"3130824c-f6be-410d-bcd2-f7c6ea4b9d66"}}}],"id":"8266e2a4-e807-4b56-b9c9-8d08a1e3a3ed","savedPayload":{"position":{"x":10906.60406811866,"y":25045.35438642598},"targetPosition":{"x":11073.714334462938,"y":25212.46465277026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4cab485c-8e4f-4d1a-922d-2b68f32048b2","savedPayload":{"position":{"x":11073.714334462938,"y":25212.46465277026},"targetPosition":{"x":11530.268072581875,"y":25334.79785820064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"3ebe702b-784b-454b-afaf-632eaf22ff7d","savedPayload":{"position":{"x":11530.268072581875,"y":25334.79785820064},"targetPosition":{"x":11864.488605270433,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":544,"y":46.35714285714286},"width":321,"height":120,"radius":0}}},{"type":"Time Machine","name":"Bitcoin, ~ One Year History","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-03-11T00:00:00.000Z\",\n \"toDate\": \"2020-03-03T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"35e1855b-04a0-4cb8-9997-66684e663fb3","savedPayload":{"position":{"x":11258.66590732802,"y":25454.090516566834},"targetPosition":{"x":11391.829395118715,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0,\n \"maxValue\": 13969,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"37180234-8778-4007-b3ad-4ddba83dab97","savedPayload":{"position":{"x":11136.290533364374,"y":25398.20355587741},"targetPosition":{"x":11391.829395118715,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"5f982560-9a78-4e3a-8b83-e4136d800f51","savedPayload":{"position":{"x":11034.617398231934,"y":25310.103282778036},"targetPosition":{"x":11391.829395118715,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 5,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"76dde214-5848-427c-be6f-3f8835e62f65","savedPayload":{"position":{"x":10746.910484439219,"y":25533.489268300047},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"09620607-67e8-4b2e-9193-f1283f4a702a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6a75a04d-4d5c-4923-bed5-c5f586bc6c67","savedPayload":{"position":{"x":10679.137169477212,"y":25525.916637311366},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"7af7b172-fdc3-4c23-88f1-57724de75689"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bf39f7f2-db28-425a-a455-6fee718bd414","savedPayload":{"position":{"x":10619.200730257928,"y":25493.822179839353},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"ab4e5b35-eac9-4010-b632-138c7c125a21"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3cf9f0f9-8db0-494f-964c-d8d40af08c67","savedPayload":{"position":{"x":10579.330219422796,"y":25440.31104964164},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"174ad887-17bd-4e5a-a4eb-6ad5f746ad6e"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"69d525df-a20b-4972-aaa5-3a79dec334ed","savedPayload":{"position":{"x":10510.745831251335,"y":25402.954706704644},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"04d74201-ebcd-4f5e-97f7-ec40d6d0fb64"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d9b472f3-a815-4140-9499-949872da59b4","savedPayload":{"position":{"x":10538.597909465132,"y":25325.05275005551},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"17ad4694-82b8-466e-9ec2-f5a1311a8d8b"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4319c6d3-d60c-49d9-8ea5-d38a8a702c6f","savedPayload":{"position":{"x":10496.701829690062,"y":25259.127349885428},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"011387e9-3ca6-4940-8b04-91e85788ea79"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"89c58507-bdd0-43ba-8844-9638017ffaf7","savedPayload":{"position":{"x":10539.61267384808,"y":25200.432185402155},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"2ae0795a-c099-4255-808a-ad483439587a"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ee946302-e4dc-425d-8bbb-41d456ff67db","savedPayload":{"position":{"x":10562.828377633896,"y":25135.593869868306},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"6ce57b1b-16c5-4e1f-b4c4-59eefa064a1a"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"adcd1377-94ae-4ae8-b2fc-606426efb26c","savedPayload":{"position":{"x":10618.812445776914,"y":25095.77748453091},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"4f8ca46d-452a-443b-a6e8-b276d110f3a6"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"49ebde05-848e-459c-8098-e9231ee5cae7","savedPayload":{"position":{"x":10682.072649069663,"y":25074.28453489274},"targetPosition":{"x":10746.910484439219,"y":25295.101923408038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"9c183e9e-4d3b-414a-9827-6756b383f954"}}}],"id":"712486f6-ae76-4892-bd30-febb91379092","savedPayload":{"position":{"x":10746.910484439219,"y":25295.101923408038},"targetPosition":{"x":10961.883454665718,"y":25196.92705744272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":400,"radius":0}}},"id":"867ba685-9680-44c6-a2f2-e043a8012f4c","savedPayload":{"position":{"x":10961.883454665718,"y":25196.92705744272},"targetPosition":{"x":11391.829395118715,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": -13816.137797939064,\n \"maxValue\": 4808.43069703133,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"82a4ba8c-fffb-4acc-afd2-da7e541f4ae4","savedPayload":{"position":{"x":10746.04613551571,"y":25274.52627025644},"targetPosition":{"x":10943.653641994892,"y":25146.19845507603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d3a7348c-bb8b-40bc-a756-00557dcae14f","savedPayload":{"position":{"x":10484.268737253306,"y":25231.3404145768},"targetPosition":{"x":10708.356613815218,"y":25158.529849794828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"847157cd-6269-4861-b344-446247f13c1a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"2cc45c67-91f1-47d4-90da-350ed20c28d5","savedPayload":{"position":{"x":10477.885537641505,"y":25109.541710278954},"targetPosition":{"x":10708.356613815218,"y":25158.529849794828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"a92f6068-6a21-4019-8d3e-90880619c74e"}}}],"id":"55863a9b-5adf-43a1-8f3f-ad9bef972ea1","savedPayload":{"position":{"x":10708.356613815218,"y":25158.529849794828},"targetPosition":{"x":10943.653641994892,"y":25146.19845507603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":190,"radius":0}}},"id":"9d55cc7e-7b11-4f1c-bbd3-bf1c5ed74c52","savedPayload":{"position":{"x":10943.653641994892,"y":25146.19845507603},"targetPosition":{"x":11391.829395118715,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": -1364.2949370080412,\n \"maxValue\": 331.2142171414505,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"2666b83e-582d-4b73-b0f0-440a0c991c7a","savedPayload":{"position":{"x":10689.322919354392,"y":24961.36773565374},"targetPosition":{"x":10923.981174208038,"y":24933.310906460963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d9132d0e-08a8-429b-b993-8f7900c74fbf","savedPayload":{"position":{"x":10537.802033171232,"y":25009.210422394164},"targetPosition":{"x":10706.73274970067,"y":24840.279705864727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"6ffa7670-2f62-4763-9a3f-1820e3ac2293"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"753fa488-213a-47d2-a2a3-f217b5cf3842","savedPayload":{"position":{"x":10471.949940348122,"y":24840.279705864727},"targetPosition":{"x":10706.73274970067,"y":24840.279705864727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"1ce59d6d-5339-4858-a5f7-eca99f50f35d"}}}],"id":"4c51ebc8-1028-4672-864d-8db52478a529","savedPayload":{"position":{"x":10706.73274970067,"y":24840.279705864727},"targetPosition":{"x":10923.981174208038,"y":24933.310906460963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":190,"radius":0}}},"id":"d859dcf4-a6a3-460b-84e8-565d7079cfbb","savedPayload":{"position":{"x":10923.981174208038,"y":24933.310906460963},"targetPosition":{"x":11391.829395118715,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"bb47c83d-ccdc-41ce-9ce4-f9e8b6657b94","savedPayload":{"position":{"x":10582.2201084953,"y":24870.74310356005},"targetPosition":{"x":10746.910484439219,"y":24706.05272761613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"65cd38ba-9a99-40f0-8593-1925669fd691"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"e62a40ce-6aae-487c-a94c-fd01db714478","savedPayload":{"position":{"x":10528.806728235371,"y":24796.39426144028},"targetPosition":{"x":10746.910484439219,"y":24706.05272761613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"42972429-0b47-4bd6-8799-2428bffa4774"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b6ffa89f-7af7-4858-9fc5-20bb45657000","savedPayload":{"position":{"x":10508.043757068297,"y":24706.05272761613},"targetPosition":{"x":10746.910484439219,"y":24706.05272761613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"07f541ae-a1f5-46da-b5aa-66e83549896b"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"6bedbc21-0d8e-404e-a6d0-1b6c90a01480","savedPayload":{"position":{"x":10526.144444798747,"y":24614.60843988565},"targetPosition":{"x":10746.910484439219,"y":24706.05272761613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"0e29b6a1-bc13-4f2f-b56b-790b2bb3dfd1"}}}],"id":"caffde22-137f-4787-aac1-a4205b81dbb6","savedPayload":{"position":{"x":10746.910484439219,"y":24706.05272761613},"targetPosition":{"x":10961.883454665718,"y":24804.227593581447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":450,"y":80},"width":150,"height":40,"radius":0}}},"id":"a6029531-0212-4d44-ab63-88131572ea71","savedPayload":{"position":{"x":10961.883454665718,"y":24804.227593581447},"targetPosition":{"x":11391.829395118715,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"75df179c-a61e-4b8f-b3bd-bcc6cf4ee0ed","savedPayload":{"position":{"x":10626.61136790554,"y":24479.478992438144},"targetPosition":{"x":10856.011399788544,"y":24536.288389613153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5b1edea6-5cd7-4a65-bc7d-73c105cd5724"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"a4c10d07-e2b0-4119-8b55-79d3c20fbb73","savedPayload":{"position":{"x":10655.39407379517,"y":24411.370933881055},"targetPosition":{"x":10856.011399788544,"y":24536.288389613153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"d939ae77-56f0-4fc8-9ab6-359abad0e0a9"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"b0a3ce26-36fc-4d23-b7de-e54e30aaa3c1","savedPayload":{"position":{"x":10703.814601336137,"y":24355.49066624212},"targetPosition":{"x":10856.011399788544,"y":24536.288389613153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e2b71867-d5d1-47d3-bb4a-73e22007631a"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"ebe4819d-e1d5-4eb5-895f-80f3e77ac1e2","savedPayload":{"position":{"x":10767.133211927072,"y":24317.30813945855},"targetPosition":{"x":10856.011399788544,"y":24536.288389613153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"470d4049-e0f1-4175-9aed-6818058ac2fd"}}}],"id":"840b1e93-6538-4d35-93fd-79f5832a121a","savedPayload":{"position":{"x":10856.011399788544,"y":24536.288389613153},"targetPosition":{"x":11034.617398231934,"y":24691.05136824613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":600,"y":80},"width":150,"height":40,"radius":0}}},"id":"6994ae16-67f4-4f1d-8eb4-61f8536d5d72","savedPayload":{"position":{"x":11034.617398231934,"y":24691.05136824613},"targetPosition":{"x":11391.829395118715,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"bf2bf5dd-779d-4442-80b3-cf8993fc6464","savedPayload":{"position":{"x":10839.880812127309,"y":24572.778270323986},"targetPosition":{"x":11008.521102487202,"y":24404.137979964093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c858c974-0222-44d4-b81d-031d114a66d1"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"99db489a-6ad0-4e0a-a42b-77d1b4f77a93","savedPayload":{"position":{"x":10789.309649368019,"y":24494.938336873573},"targetPosition":{"x":11008.521102487202,"y":24404.137979964093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"6f940a8b-ff20-433a-8f55-5f10b28b69f0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"2d99d1a7-908e-42ae-b8e8-64f511754e27","savedPayload":{"position":{"x":10774.164288830954,"y":24404.137979964093},"targetPosition":{"x":11008.521102487202,"y":24404.137979964093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"f6256868-3111-43e4-85d2-f27bdb4ffa43"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"b04c5e4b-fbb8-4d93-85c8-493f73794be6","savedPayload":{"position":{"x":10791.797336306836,"y":24314.368056723608},"targetPosition":{"x":11008.521102487202,"y":24404.137979964093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"4892f3d3-b060-4a19-aa06-611f6150d265"}}}],"id":"4df2f86b-c05f-40c7-ab33-450b70868cb6","savedPayload":{"position":{"x":11008.521102487202,"y":24404.137979964093},"targetPosition":{"x":11136.290533364374,"y":24602.951095146756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1084,"y":80},"width":150,"height":40,"radius":0}}},"id":"dd5050e7-7efe-45c6-b4f1-058fad0c7a0c","savedPayload":{"position":{"x":11136.290533364374,"y":24602.951095146756},"targetPosition":{"x":11391.829395118715,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"6c066987-2b21-4ec7-ac2b-7e959be98817","savedPayload":{"position":{"x":11135.663955815047,"y":24345.266705932314},"targetPosition":{"x":11258.66590732802,"y":24547.064134457334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"20dc5447-b9f9-4059-b296-e8afe97807bd","savedPayload":{"position":{"x":11089.938637285451,"y":24473.904628759585},"targetPosition":{"x":11253.041806865234,"y":24310.801459179802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"8f49b276-aad8-406c-af28-4aaa1a611dbd"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"37e5ed4d-23e1-44c7-9221-b9385a3b8ae4","savedPayload":{"position":{"x":11033.907310452456,"y":24401.569939577774},"targetPosition":{"x":11253.041806865234,"y":24310.801459179802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"2e5ab20e-2550-42e5-8e15-833c038d6816"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"2bf5f23b-9867-44e3-bf0d-20ea7ca36910","savedPayload":{"position":{"x":11015.269268068534,"y":24310.801459179802},"targetPosition":{"x":11253.041806865234,"y":24310.801459179802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"c9aa704a-9f97-460c-bd6c-fca0f01f0fc8"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"691e1d20-836f-4e33-a1d7-b49de59a3106","savedPayload":{"position":{"x":11034.824226071527,"y":24220.412777666803},"targetPosition":{"x":11253.041806865234,"y":24310.801459179802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"a3267b2e-ef81-472c-9c8d-ffb3b82c29b7"}}}],"id":"f881da8b-76b6-4446-8319-f7186a5e3b3a","savedPayload":{"position":{"x":11253.041806865234,"y":24310.801459179802},"targetPosition":{"x":11258.66590732802,"y":24547.064134457334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":750,"y":80},"width":150,"height":40,"radius":0}}},"id":"c217e38e-7589-49d6-9e80-291f7232f660","savedPayload":{"position":{"x":11258.66590732802,"y":24547.064134457334},"targetPosition":{"x":11391.829395118715,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"f3511f43-782b-4039-a730-a270d9960d38","savedPayload":{"position":{"x":11391.829395118715,"y":25000.577325512084},"targetPosition":{"x":11864.488605270433,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":945,"y":-337.8333333333333},"width":320,"height":120,"radius":0}}},{"type":"Time Machine","name":"Ether, ~One Year History","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-03-11T00:00:00.000Z\",\n \"toDate\": \"2020-03-03T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"7bb21e27-5640-4b91-a441-16d8e1f83984","savedPayload":{"position":{"x":11115.425014606259,"y":24892.878240352642},"targetPosition":{"x":11530.268072581875,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0,\n \"maxValue\": 366.05,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"0f239d80-f3ea-43d0-bd0e-8165cf58fda1","savedPayload":{"position":{"x":11068.41060670972,"y":24766.82773468931},"targetPosition":{"x":11530.268072581875,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"486401ee-a77e-4678-befd-d3f45de0c520","savedPayload":{"position":{"x":11058.813143926032,"y":24632.63767083971},"targetPosition":{"x":11530.268072581875,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 6,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"b697d904-bf23-47da-ae8a-3daef37d098b","savedPayload":{"position":{"x":10865.98119712649,"y":24653.13069441547},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"ff7fa4dd-80fb-4f9a-a437-12b38b00553d"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"90da673b-805e-424c-9f62-7605c3820e3f","savedPayload":{"position":{"x":10799.875540848105,"y":24643.72578817078},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"8fd83d8c-cc2a-4b31-8340-2a37ff59d355"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9bda7419-bbe7-4ae4-9e1b-7164635c46ad","savedPayload":{"position":{"x":10738.704497791754,"y":24616.637008102},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"021bc9da-72cf-453a-acb2-1b31b05bb8a2"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cf0e58d5-5cf0-4b17-977b-4b185b59024a","savedPayload":{"position":{"x":10686.563821730486,"y":24574.056638929655},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"e3380402-b1c2-42ed-a715-5a036a0e88af"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6fc9bab6-70ea-410f-a91d-13fbc6c4b70a","savedPayload":{"position":{"x":10647.754955489592,"y":24518.251183401662},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"eb6fec22-3628-40d1-9379-7076eb21ccfb"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"17d698b7-76df-42f2-b41f-a57b9b2b4397","savedPayload":{"position":{"x":10632.473261183626,"y":24452.16397082924},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"d7c3d02a-e16c-4681-9f47-0d5ae8381a88"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9dd0dd5f-7210-4fd1-a55a-ff697673c49d","savedPayload":{"position":{"x":10632.748666012754,"y":24385.056822737424},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"9ff8217e-6075-40e2-bece-8c95a9456089"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"24c58fa3-ee6d-4b32-ada1-14bda6e7b81d","savedPayload":{"position":{"x":10650.29249624802,"y":24320.088868963194},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"82271f8e-149d-4d34-be28-0786cd0286f9"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ed8384c4-f9c7-4aed-9387-8a9a976a3d7d","savedPayload":{"position":{"x":10687.941358239472,"y":24264.318199580313},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"77f72406-a311-4090-89c8-6d00dbb7fcc2"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"92e645f9-0c0f-4945-abbd-7e7f07d1dbfb","savedPayload":{"position":{"x":10738.223171468759,"y":24219.795229850282},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"8dd72f23-ad3c-47f2-898d-d3da7de4323e"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"6ee955f5-d73f-460e-84bb-0b5aa21f95c9","savedPayload":{"position":{"x":10799.07105243856,"y":24190.71557224917},"targetPosition":{"x":10865.98119712649,"y":24418.590598165087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"f02c66da-7871-4009-9837-34b9a3d11cc3"}}}],"id":"7d08dc92-0e4d-4693-b907-c21343fe3893","savedPayload":{"position":{"x":10865.98119712649,"y":24418.590598165087},"targetPosition":{"x":11087.410155611618,"y":24501.1793297179},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":582,"y":80},"width":150,"height":470,"radius":0}}},"id":"c496b36a-d05c-44ef-93f8-19a4c1241d22","savedPayload":{"position":{"x":11087.410155611618,"y":24501.1793297179},"targetPosition":{"x":11530.268072581875,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": -664.0915859232209,\n \"maxValue\": 8239.929677851771,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"c112fea0-46d3-45df-ae7a-5fe135571269","savedPayload":{"position":{"x":10880.300383213706,"y":24942.080822476753},"targetPosition":{"x":11079.188311134038,"y":24812.92149188997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Volumes","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d81d8ed1-541d-4e06-9912-987427c50033","savedPayload":{"position":{"x":10616.826767031673,"y":24898.615138886973},"targetPosition":{"x":10842.36664775559,"y":24825.33278935375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4195f92d-61a8-49ed-97aa-1226306eee53"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"15df9757-6349-4f4a-9fa4-21cfe8025825","savedPayload":{"position":{"x":10610.402206715555,"y":24776.02722533657},"targetPosition":{"x":10842.36664775559,"y":24825.33278935375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"7f3ae634-45c2-4449-a430-19cd38ba9efe"}}}],"id":"ed7916cc-3ace-4d89-82e6-ae2262e1c082","savedPayload":{"position":{"x":10842.36664775559,"y":24825.33278935375},"targetPosition":{"x":11079.188311134038,"y":24812.92149188997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":732,"y":80},"width":150,"height":190,"radius":0}}},"id":"547db4c1-81eb-4c94-8559-935d633dba78","savedPayload":{"position":{"x":11079.188311134038,"y":24812.92149188997},"targetPosition":{"x":11530.268072581875,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": -166.98318429323444,\n \"maxValue\": 643.6046994233286,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"5057e23a-0d3f-4dd9-9e6a-c48920828a2c","savedPayload":{"position":{"x":11061.24634661784,"y":24141.884333106733},"targetPosition":{"x":11247.013964067059,"y":24287.973602194343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Percentage Bandwidth","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a0bb369b-7e47-4691-8e75-c72b02ac5a37","savedPayload":{"position":{"x":10990.2185719689,"y":24237.533325949993},"targetPosition":{"x":11159.17912269933,"y":24068.572775219563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"109e4657-22ce-4cd3-9d06-00d80f27aca5"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"22771681-bf62-411e-9471-06b708bb3388","savedPayload":{"position":{"x":10921.075968715013,"y":24068.572775219563},"targetPosition":{"x":11159.17912269933,"y":24068.572775219563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"bcd350a1-3e92-42c6-ab65-b6508de84b50"}}}],"id":"e7dfb187-3761-4460-aaed-bc95e13d0dca","savedPayload":{"position":{"x":11159.17912269933,"y":24068.572775219563},"targetPosition":{"x":11247.013964067059,"y":24287.973602194343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":918,"y":80},"width":150,"height":190,"radius":0}}},"id":"632fa132-732e-4f55-b4d7-6b053e6ebe81","savedPayload":{"position":{"x":11247.013964067059,"y":24287.973602194343},"targetPosition":{"x":11530.268072581875,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"21896f22-8875-4e41-921c-357a0d6f6c52","savedPayload":{"position":{"x":11114.924629720235,"y":24169.64716557134},"targetPosition":{"x":11282.501877923432,"y":24002.069917368142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"2858cc5d-81ad-4354-b35b-c022c626e600"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"19716081-ff92-4c10-a840-cb90288151cb","savedPayload":{"position":{"x":11062.82885515231,"y":24093.061462687434},"targetPosition":{"x":11282.501877923432,"y":24002.069917368142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0dfe277f-4252-4c5f-90bc-da05b214baf6"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b63b5e54-a9df-484b-965a-4e8e1533dfcf","savedPayload":{"position":{"x":11046.15078014829,"y":24002.069917368142},"targetPosition":{"x":11282.501877923432,"y":24002.069917368142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ccc20f7c-ec74-4fbb-8b80-95ce4a7a7d1b"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"3f65dcf5-c3c5-4eec-9c04-c4206dd40b45","savedPayload":{"position":{"x":11061.686790760665,"y":23910.605313488726},"targetPosition":{"x":11282.501877923432,"y":24002.069917368142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"536c524c-a229-4929-a418-9ec35be6e39a"}}}],"id":"29a1d717-2a11-44bb-b13a-efcfb3e0b7c5","savedPayload":{"position":{"x":11282.501877923432,"y":24002.069917368142},"targetPosition":{"x":11365.090609476247,"y":24223.49887585327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":768,"y":80},"width":150,"height":40,"radius":0}}},"id":"35fda5a3-fd1e-4a99-868f-591ae75a5a7d","savedPayload":{"position":{"x":11365.090609476247,"y":24223.49887585327},"targetPosition":{"x":11530.268072581875,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"5d5ec19d-bf1b-41dd-88ae-51ad1472ab53","savedPayload":{"position":{"x":11357.649381434836,"y":23756.79377171331},"targetPosition":{"x":11479.689389606148,"y":23959.17439983976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5b1edea6-5cd7-4a65-bc7d-73c105cd5724"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"6325a80e-2c7e-4ab0-8c32-5e597306f76b","savedPayload":{"position":{"x":11426.161498009458,"y":23728.9865481696},"targetPosition":{"x":11479.689389606148,"y":23959.17439983976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"d939ae77-56f0-4fc8-9ab6-359abad0e0a9"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"8a199712-110d-4917-a88e-2feabf981214","savedPayload":{"position":{"x":11499.913297564315,"y":23723.711715360434},"targetPosition":{"x":11479.689389606148,"y":23959.17439983976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e2b71867-d5d1-47d3-bb4a-73e22007631a"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"83b0937f-224c-4282-b8d8-368cca2485fb","savedPayload":{"position":{"x":11571.685440099975,"y":23741.485610673095},"targetPosition":{"x":11479.689389606148,"y":23959.17439983976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"470d4049-e0f1-4175-9aed-6818058ac2fd"}}}],"id":"a32d9013-23d6-42d3-93bc-5f4d08ec14b2","savedPayload":{"position":{"x":11479.689389606148,"y":23959.17439983976},"targetPosition":{"x":11496.548950598057,"y":24194.901864167685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":918,"y":80},"width":150,"height":40,"radius":0}}},"id":"74c5eaf1-6339-490a-ba24-68ab16dbe9a3","savedPayload":{"position":{"x":11496.548950598057,"y":24194.901864167685},"targetPosition":{"x":11530.268072581875,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"98f7cf85-19d6-4f04-951a-41aab5d2ddde","savedPayload":{"position":{"x":11512.629138175682,"y":24141.91594122016},"targetPosition":{"x":11680.974485380546,"y":23973.570594015295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"9d5a7433-eb7d-4107-8188-131940bc9e39"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"6389786f-d6b7-4ffd-b522-a640a19500fc","savedPayload":{"position":{"x":11462.314493630041,"y":24064.142528146742},"targetPosition":{"x":11680.974485380546,"y":23973.570594015295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"e5d4f9e5-4782-44c9-bb0a-877cb36b30b9"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"860347ca-d270-4a78-aafb-895cd00cfbcb","savedPayload":{"position":{"x":11444.849254197641,"y":23973.570594015295},"targetPosition":{"x":11680.974485380546,"y":23973.570594015295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"d06fb416-37b5-4c16-863c-1e2b23ca04ec"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"0a8b40e3-abbd-49b2-a4eb-86e0e397fa7a","savedPayload":{"position":{"x":11464.701349119763,"y":23883.987327799114},"targetPosition":{"x":11680.974485380546,"y":23973.570594015295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"64be9816-2463-43a6-a934-808c7c6bf23a"}}}],"id":"999e3ed3-532e-4978-a801-ed2cd474cf11","savedPayload":{"position":{"x":11680.974485380546,"y":23973.570594015295},"targetPosition":{"x":11630.739014447656,"y":24204.499326951372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":768,"y":80},"width":150,"height":40,"radius":0}}},"id":"45bc31b6-3293-4077-8b44-d63bb8840cb7","savedPayload":{"position":{"x":11630.739014447656,"y":24204.499326951372},"targetPosition":{"x":11530.268072581875,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"83825231-1c48-4c24-9fa9-4c503b4b9f58","savedPayload":{"position":{"x":11812.506336233035,"y":24021.845890697856},"targetPosition":{"x":11756.789520110988,"y":24251.51373484791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"31c6d913-c471-4a87-941b-2b7db29ac4b5","savedPayload":{"position":{"x":11750.704585271047,"y":24249.64499053723},"targetPosition":{"x":11919.875620365694,"y":24080.473955442583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"fddce204-922c-4ffd-8840-03f31ba1d5a0"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"38910be7-c10e-4196-ba22-6a764b0d6de7","savedPayload":{"position":{"x":11703.599552367159,"y":24170.0584360243},"targetPosition":{"x":11919.875620365694,"y":24080.473955442583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"f26355ba-9fb4-44ad-886a-947eb9f3cbbe"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"99097efd-37b2-4743-ad03-884c66d7daac","savedPayload":{"position":{"x":11686.267281705454,"y":24080.473955442583},"targetPosition":{"x":11919.875620365694,"y":24080.473955442583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"b276f268-22e3-49dc-a199-840af6ac06b7"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"abab0488-6c0b-4863-b6a1-b585c5a2a55d","savedPayload":{"position":{"x":11698.974012029006,"y":23988.9735133195},"targetPosition":{"x":11919.875620365694,"y":24080.473955442583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c428326e-c5ce-4110-94ab-2fab6f0f83b1"}}}],"id":"f764e44d-5792-42ed-a96a-0aed92b1d322","savedPayload":{"position":{"x":11919.875620365694,"y":24080.473955442583},"targetPosition":{"x":11756.789520110988,"y":24251.51373484791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":286,"y":80},"width":150,"height":40,"radius":0}}},"id":"69b337c4-f44a-4d93-a9a1-cf7a48586519","savedPayload":{"position":{"x":11756.789520110988,"y":24251.51373484791},"targetPosition":{"x":11530.268072581875,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"8ac08d4c-b2ba-4309-8ad6-40541d03dac1","savedPayload":{"position":{"x":11530.268072581875,"y":24666.356792823528},"targetPosition":{"x":11864.488605270433,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":944.6666666666666,"y":-145.43333333333334},"width":320,"height":120,"radius":0}}},{"type":"Time Machine","name":"Bitcoin, Multi-exchange Demo","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2017-08-17T00:00:00.000Z\",\n \"toDate\": \"2020-03-02T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"40684348-58b1-4afa-8fe6-1d47093cc8a3","savedPayload":{"position":{"x":11455.153721946357,"y":24291.58851028451},"targetPosition":{"x":11864.488605270433,"y":24527.918115360368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0,\n \"maxValue\": 19798.68,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"ada75387-b14e-4778-bc8c-fa347743a4f7","savedPayload":{"position":{"x":11628.159000194573,"y":24118.583232036293},"targetPosition":{"x":11864.488605270433,"y":24527.918115360368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"96d85e22-6519-45e4-bc85-865af2b6080f","savedPayload":{"position":{"x":11864.488605270433,"y":24055.25890520865},"targetPosition":{"x":11864.488605270433,"y":24527.918115360368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"BINANCE Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 3,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"02015616-7616-4ea9-a445-ffc82c4484e0","savedPayload":{"position":{"x":12218.98301288422,"y":24148.809809397077},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"592901f9-9d7e-4d02-9c3e-9941fd1cbc62"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8063acd5-d478-469e-b4ed-241496fe6d1c","savedPayload":{"position":{"x":12151.854489616344,"y":24142.534545433144},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"2fc1f392-7d9b-409e-9cb7-85c14e1e7c07"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"15560524-68ac-4b15-8a71-7f13cadac6ae","savedPayload":{"position":{"x":12091.714760256004,"y":24111.949056979272},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"3e9c58db-ca68-4089-9a02-d99f01428a41"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3e70b05c-8410-42ec-bd28-447596ace50a","savedPayload":{"position":{"x":12042.896990938698,"y":24066.495196941938},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"b47bf5eb-2f3e-462f-aa45-8e5c6ae784bc"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"852c7c3a-8379-49b2-b833-5e574b312ef2","savedPayload":{"position":{"x":12005.863054275542,"y":24011.244414288678},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"7f5856c1-cf3a-4525-8036-69da93e57771"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"13c7c648-2f35-4366-9591-cbb8785d2e50","savedPayload":{"position":{"x":11982.2859904025,"y":23947.947684460367},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"67a989ee-e8da-4079-9b0a-8a7509db45a5"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d545b651-1ae7-457a-9105-0198bdc33f38","savedPayload":{"position":{"x":11985.959070833993,"y":23880.41200552629},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"763cde69-4a76-498f-a753-87baa3b227f3"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c45a101a-3e73-4d63-b3f0-d05bfa6ec39f","savedPayload":{"position":{"x":12004.19590735205,"y":23815.82580597072},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"079ae9a5-7138-4ab3-a1ef-c628e0ab89c3"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a0baef96-5daf-489d-a18c-79b53134391b","savedPayload":{"position":{"x":12039.9605708102,"y":23758.791961281215},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"cec7c500-e69e-468a-884f-e2a27f4da93a"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"747e963b-72d6-46c5-a790-6bc8b4cb472d","savedPayload":{"position":{"x":12092.367779806276,"y":23716.89864202361},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"051e19e2-bfcc-458d-97d5-ba6c8698845e"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"26bd054a-f51b-4ada-90b4-6d68b7f55afe","savedPayload":{"position":{"x":12152.78990243685,"y":23688.482758821265},"targetPosition":{"x":12218.98301288422,"y":23913.915790374256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"bafc9397-8533-4d1b-a260-acd736973fad"}}}],"id":"d261cf73-1c0e-41ee-9621-e792a7e2a4f9","savedPayload":{"position":{"x":12218.98301288422,"y":23913.915790374256},"targetPosition":{"x":12100.818210346291,"y":24118.583232036293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"363460bd-b93b-47b4-85f5-0ed7f43617c6","savedPayload":{"position":{"x":12100.818210346291,"y":24118.583232036293},"targetPosition":{"x":11864.488605270433,"y":24527.918115360368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"BITFINEX Indicators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"autoMinScale\": true,\n \"autoMaxScale\": true,\n \"minValue\": 0,\n \"maxValue\": 13969\n}","id":"740a0966-2abc-43b2-b989-8ec8db4b1d2e","savedPayload":{"position":{"x":12510.153093670366,"y":23882.253626960435},"targetPosition":{"x":12273.823488594508,"y":24291.58851028451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"5953adb5-8829-49f6-a07a-08a119ee8fe2","savedPayload":{"position":{"x":12478.490930256545,"y":24660.0318458452},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"09620607-67e8-4b2e-9193-f1283f4a702a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"88e59325-c16d-4a5e-8948-e854b7f6e935","savedPayload":{"position":{"x":12409.328485215758,"y":24645.298969308227},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"7af7b172-fdc3-4c23-88f1-57724de75689"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1753d9d3-0a9a-4039-9aa0-b16c3554adc1","savedPayload":{"position":{"x":12349.24928674522,"y":24610.857235579326},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"ab4e5b35-eac9-4010-b632-138c7c125a21"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3f9a2f17-ada6-4030-9c88-ca274bea5731","savedPayload":{"position":{"x":12301.310530164015,"y":24563.28100345257},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"174ad887-17bd-4e5a-a4eb-6ad5f746ad6e"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7b6428cd-4e1d-4895-bf15-b9edd2258a26","savedPayload":{"position":{"x":12264.6738365564,"y":24507.400307665506},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"04d74201-ebcd-4f5e-97f7-ec40d6d0fb64"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"649c9437-afaa-470a-a197-05df6c4c4526","savedPayload":{"position":{"x":12243.769155000704,"y":24443.501209232196},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"17ad4694-82b8-466e-9ec2-f5a1311a8d8b"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ecef1771-7e22-4c8b-86c2-12c07980563a","savedPayload":{"position":{"x":12246.58076848703,"y":24376.40966540312},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"011387e9-3ca6-4940-8b04-91e85788ea79"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8e71dd8f-f82b-48b3-a3c2-116fb95971af","savedPayload":{"position":{"x":12264.442998441373,"y":24312.000897744547},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"2ae0795a-c099-4255-808a-ad483439587a"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2b7f1927-76d0-4ac7-81b8-507993bf7a4b","savedPayload":{"position":{"x":12300.74314073003,"y":24255.733976449086},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"6ce57b1b-16c5-4e1f-b4c4-59eefa064a1a"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"00d3716d-1dae-424f-ba36-f0de1ea118df","savedPayload":{"position":{"x":12358.114392323363,"y":24222.443763604777},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"4f8ca46d-452a-443b-a6e8-b276d110f3a6"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"15a29aec-8a5c-4564-be62-85afcb8a4ec1","savedPayload":{"position":{"x":12414.20427699857,"y":24190.81307819085},"targetPosition":{"x":12478.490930256545,"y":24409.75331282244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"9c183e9e-4d3b-414a-9827-6756b383f954"}}}],"id":"ed0f93a7-6236-4817-8b59-39cab7bff71b","savedPayload":{"position":{"x":12478.490930256545,"y":24409.75331282244},"targetPosition":{"x":12273.823488594508,"y":24291.58851028451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"411ee3f8-baec-4723-8de7-46e32d6f40ff","savedPayload":{"position":{"x":12273.823488594508,"y":24291.58851028451},"targetPosition":{"x":11864.488605270433,"y":24527.918115360368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"899c7df4-1555-4ff4-afae-6021fa7399da","savedPayload":{"position":{"x":11864.488605270433,"y":24527.918115360368},"targetPosition":{"x":11864.488605270433,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":544,"y":238.0757575757575},"width":720.5714285714284,"height":120,"radius":0}}},{"type":"Time Machine","name":"Bitcoin, Multi-time frame Demo. Zoom in and play...","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-03-11T00:00:00.000Z\",\n \"toDate\": \"2020-03-03T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"46990920-0204-4b73-9d2e-423a1d627410","savedPayload":{"position":{"x":12076.375932528612,"y":24209.803054704593},"targetPosition":{"x":12198.709137958991,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0,\n \"maxValue\": 13969,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"29e51c27-e0be-4987-96d9-15d9dd1369ca","savedPayload":{"position":{"x":12321.04234338937,"y":24209.803054704593},"targetPosition":{"x":12198.709137958991,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"daf96f75-fa5e-460b-9803-972bf6c418b1","savedPayload":{"position":{"x":12532.929670647549,"y":24332.136260134972},"targetPosition":{"x":12198.709137958991,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"ALT-Time Frame Indicators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 1427.153561075258,\n \"maxValue\": 18189.953561075257\n}","id":"cdcaa678-15a0-4f07-9a2a-bf86af1bb380","savedPayload":{"position":{"x":12891.592481153786,"y":24134.688704069074},"targetPosition":{"x":12655.262876077928,"y":24544.02358739315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"06-hs\"}","id":"cd621551-fbb1-4238-97ca-0ad9032be9a7","savedPayload":{"position":{"x":13111.816614196865,"y":24421.69038196277},"targetPosition":{"x":12655.262876077928,"y":24544.02358739315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 5,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"8d440628-e3aa-479e-9d52-aeaf592b4664","savedPayload":{"position":{"x":12859.930317739965,"y":24917.743383991095},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"09620607-67e8-4b2e-9193-f1283f4a702a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b47211cc-a14b-45af-aa7e-4fce7c9d9647","savedPayload":{"position":{"x":12793.893052171337,"y":24887.09066256929},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"7af7b172-fdc3-4c23-88f1-57724de75689"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"386b5a05-52cb-43a7-a16d-2c9ce08882c1","savedPayload":{"position":{"x":12732.19360355246,"y":24860.95059695092},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"ab4e5b35-eac9-4010-b632-138c7c125a21"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d44ad451-12ab-4733-bec6-d6614aba7996","savedPayload":{"position":{"x":12681.822658178991,"y":24816.51955546436},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"174ad887-17bd-4e5a-a4eb-6ad5f746ad6e"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9d49be78-44c4-49ed-a247-93efbe8f1704","savedPayload":{"position":{"x":12647.87310453323,"y":24759.031674282665},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"04d74201-ebcd-4f5e-97f7-ec40d6d0fb64"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"111158e6-cb0b-43df-9558-3de9eff743e8","savedPayload":{"position":{"x":12625.175072356356,"y":24695.941098618703},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"17ad4694-82b8-466e-9ec2-f5a1311a8d8b"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b006d151-b8f7-4bf3-a32e-74b36de91574","savedPayload":{"position":{"x":12626.844678743128,"y":24628.675734401386},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"011387e9-3ca6-4940-8b04-91e85788ea79"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f5e0c8f7-cc18-4b8f-ba42-96f2ad9b617f","savedPayload":{"position":{"x":12643.043918305648,"y":24563.139690126027},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"2ae0795a-c099-4255-808a-ad483439587a"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4255e303-fe44-4fec-b684-54a5a10818eb","savedPayload":{"position":{"x":12681.872874597499,"y":24507.900737172124},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"6ce57b1b-16c5-4e1f-b4c4-59eefa064a1a"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"58ce63a5-a38a-460a-b5e7-4ec397f5c820","savedPayload":{"position":{"x":12741.435150946025,"y":24477.806311348915},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"4f8ca46d-452a-443b-a6e8-b276d110f3a6"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"7149d0fc-9c60-47ae-8d50-1a39d11155f4","savedPayload":{"position":{"x":12792.728831608742,"y":24433.321146179576},"targetPosition":{"x":12859.930317739965,"y":24662.188389931078},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"9c183e9e-4d3b-414a-9827-6756b383f954"}}}],"id":"a0e03e2f-563b-425e-8fea-f92dd1226fdb","savedPayload":{"position":{"x":12859.930317739965,"y":24662.188389931078},"targetPosition":{"x":12655.262876077928,"y":24544.02358739315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"cefe24f0-b979-4678-9512-5f41b41aa93d","savedPayload":{"position":{"x":12655.262876077928,"y":24544.02358739315},"targetPosition":{"x":12198.709137958991,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 5,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"Candles","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"9dbdaa9c-dba7-4330-9206-dc159260f2c7","savedPayload":{"position":{"x":12883.539745137396,"y":25087.576884236074},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"09620607-67e8-4b2e-9193-f1283f4a702a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e43623de-96c0-4b54-a614-b01daedd2ab2","savedPayload":{"position":{"x":12816.766825483586,"y":25077.26428133745},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"7af7b172-fdc3-4c23-88f1-57724de75689"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a9eeaf0c-4a07-40d7-b50a-130c08d6848e","savedPayload":{"position":{"x":12756.496003081644,"y":25047.5405223043},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"ab4e5b35-eac9-4010-b632-138c7c125a21"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6c27ac6f-e8ae-477b-8be3-096daa93c1a6","savedPayload":{"position":{"x":12704.930143179443,"y":25004.622702065215},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"174ad887-17bd-4e5a-a4eb-6ad5f746ad6e"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a6f52372-15c1-4f5d-93ce-1d77066bef3e","savedPayload":{"position":{"x":12668.912682767888,"y":24947.87349610924},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"04d74201-ebcd-4f5e-97f7-ec40d6d0fb64"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"49149e71-f745-4203-ae0e-a69609f3ead4","savedPayload":{"position":{"x":12650.68468451111,"y":24883.336104334037},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"17ad4694-82b8-466e-9ec2-f5a1311a8d8b"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ac88dd0f-4ba0-4590-b355-aadd0eb4d229","savedPayload":{"position":{"x":12651.188781175264,"y":24816.449575762534},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"011387e9-3ca6-4940-8b04-91e85788ea79"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"dcf6b991-0952-4b99-b055-8092c12ac707","savedPayload":{"position":{"x":12669.30273950717,"y":24752.017838773092},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"2ae0795a-c099-4255-808a-ad483439587a"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"305017ee-4980-4fcb-963f-474e109df51b","savedPayload":{"position":{"x":12705.293969077395,"y":24695.405756808137},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"6ce57b1b-16c5-4e1f-b4c4-59eefa064a1a"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"97459d9c-b895-4856-a533-06ef5ae0bd8f","savedPayload":{"position":{"x":12755.818237870642,"y":24651.118056379823},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"4f8ca46d-452a-443b-a6e8-b276d110f3a6"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"168f0b5d-7230-42b3-83e3-455d774934ef","savedPayload":{"position":{"x":12817.303928004525,"y":24624.278123802276},"targetPosition":{"x":12883.539745137396,"y":24849.856600969095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"9c183e9e-4d3b-414a-9827-6756b383f954"}}}],"id":"ee58dd45-9e90-4a59-817a-a1b2ca785355","savedPayload":{"position":{"x":12883.539745137396,"y":24849.856600969095},"targetPosition":{"x":12655.262876077928,"y":24788.689998253907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"bbc2ef55-2453-4c7e-8406-971190f8d265","savedPayload":{"position":{"x":12655.262876077928,"y":24788.689998253907},"targetPosition":{"x":12198.709137958991,"y":24666.356792823528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"89ded7f7-5444-45a8-84d4-12574e78ff5c","savedPayload":{"position":{"x":12198.709137958991,"y":24666.356792823528},"targetPosition":{"x":11864.488605270433,"y":25000.577325512084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":944.4166666666667,"y":46.28333333333333},"width":320,"height":120,"radius":0}}}],"id":"64fa2a31-21ea-4b56-a625-dc4082876a89","savedPayload":{"position":{"x":11864.488605270433,"y":25000.577325512084},"targetPosition":{"x":12809.806237131383,"y":24999.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":0},"uiObject":{"shortcutKey":"t"}}}],"id":"c53a4385-3fb3-49d5-b506-99bcaef2c141","savedPayload":{"position":{"x":12809.806237131383,"y":24999.35640053908},"targetPosition":{"x":12809.806237131383,"y":24999.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0},"uiObject":{"shortcutKey":"c"}}},{"type":"Trading System","name":"Bull run rider - USDT- SDA v.0.0.3","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":39368.60927102921,"y":18023.89151555148},"targetPosition":{"x":39582.77367689719,"y":18012.667634638467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a1c434c4-5787-4906-8157-1e355999bba8","savedPayload":{"position":{"x":39582.77367689719,"y":18012.667634638467},"targetPosition":{"x":39796.93808276517,"y":18001.443753725453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":39563.33334489774,"y":17641.724002502317},"targetPosition":{"x":39680.135713831456,"y":17821.583878113885},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f69f2608-49bd-4b04-b8f8-497675f819fe","savedPayload":{"position":{"x":39680.135713831456,"y":17821.583878113885},"targetPosition":{"x":39796.93808276517,"y":18001.443753725453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"1dfb0689-df0c-4184-9c09-683d012c9dfe","savedPayload":{"position":{"x":39796.93808276517,"y":18001.443753725453},"targetPosition":{"x":39988.02183928975,"y":18098.805790659724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"32d2ee8c-71bd-4e4c-8671-04bbc4a16734","savedPayload":{"position":{"x":39988.02183928975,"y":18098.805790659724},"targetPosition":{"x":40370.18935233891,"y":18293.529864528264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":40038.83303500505,"y":17273.71998173083},"targetPosition":{"x":40105.10429847182,"y":17477.681958290315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b527026c-4be3-4baf-bbde-83ebfd17e567","savedPayload":{"position":{"x":40105.10429847182,"y":17477.681958290315},"targetPosition":{"x":40171.37556193859,"y":17681.643934849802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"41cbb7ba-020c-4e96-a6a7-c3ef8c25b6fd","savedPayload":{"position":{"x":40171.37556193859,"y":17681.643934849802},"targetPosition":{"x":40237.64682540536,"y":17885.60591140929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"1af9fdb8-7316-4374-84f2-1b946741b5c6","savedPayload":{"position":{"x":40237.64682540536,"y":17885.60591140929},"targetPosition":{"x":40370.18935233891,"y":18293.529864528264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":40383.71639679698,"y":17394.127832988084},"targetPosition":{"x":40522.99592996935,"y":17557.203213971305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e022ab25-c7d3-439b-bfd7-1217c6abfbfe","savedPayload":{"position":{"x":40522.99592996935,"y":17557.203213971305},"targetPosition":{"x":40662.27546314172,"y":17720.278594954525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":40529.73293620818,"y":17312.35464183555},"targetPosition":{"x":40596.00419967495,"y":17516.316618395038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"793426fb-7c1e-40c6-a41e-2acb0943aece","savedPayload":{"position":{"x":40596.00419967495,"y":17516.316618395038},"targetPosition":{"x":40662.27546314172,"y":17720.278594954525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":40695.927873844004,"y":17292.68417470554},"targetPosition":{"x":40679.10166849286,"y":17506.481384830033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"abdce7c6-67e2-4fbf-a4c3-e5526c13b6ca","savedPayload":{"position":{"x":40679.10166849286,"y":17506.481384830033},"targetPosition":{"x":40662.27546314172,"y":17720.278594954525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":40856.999537010255,"y":17338.11108190537},"targetPosition":{"x":40759.63750007599,"y":17529.194838429947},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2d4d8745-13d1-47bd-8f42-faace8bfd7cb","savedPayload":{"position":{"x":40759.63750007599,"y":17529.194838429947},"targetPosition":{"x":40662.27546314172,"y":17720.278594954525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"01a5065a-b7af-4cbe-8678-033694f77d69","savedPayload":{"position":{"x":40988.42622510817,"y":17441.719528609796},"targetPosition":{"x":40825.35084412494,"y":17580.99906178216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5f433ebc-f0ae-4095-93f5-6de3e03c0683","savedPayload":{"position":{"x":40825.35084412494,"y":17580.99906178216},"targetPosition":{"x":40662.27546314172,"y":17720.278594954525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.movingAverage >= 85","id":"98b5b2b2-fbc0-4d1f-af0f-0d7eee6dc94b","savedPayload":{"position":{"x":41070.199416260686,"y":17587.73606802098},"targetPosition":{"x":40866.2374397012,"y":17654.00733148775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7ef29297-9eb3-4b6e-a69e-58e5afbfaff9","savedPayload":{"position":{"x":40866.2374397012,"y":17654.00733148775},"targetPosition":{"x":40662.27546314172,"y":17720.278594954525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":41089.8698833907,"y":17753.931005656803},"targetPosition":{"x":40876.07267326621,"y":17737.104800305664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"24a4f2dc-268f-4e27-97f7-f4a0cd89e710","savedPayload":{"position":{"x":40876.07267326621,"y":17737.104800305664},"targetPosition":{"x":40662.27546314172,"y":17720.278594954525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"c3b9135a-1e58-486e-b444-1bdd743effa5","savedPayload":{"position":{"x":40662.27546314172,"y":17720.278594954525},"targetPosition":{"x":40564.91342620745,"y":17911.362351479103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"830b1089-fef6-4e79-9ad2-a45c14574b84","savedPayload":{"position":{"x":40564.91342620745,"y":17911.362351479103},"targetPosition":{"x":40370.18935233891,"y":18293.529864528264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"8ffee2fe-23fb-4e58-8bb9-09b0c2aaa621","savedPayload":{"position":{"x":40370.18935233891,"y":18293.529864528264},"targetPosition":{"x":40502.731879272455,"y":18701.453817647238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}}],"id":"2f0906a5-35ac-4681-9a75-d455789d198d","savedPayload":{"position":{"x":40631.39830360865,"y":18323.287515868124},"targetPosition":{"x":40827.31572179066,"y":18236.0594613419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":26654.042876521682,"y":25634.48571644396},"targetPosition":{"x":26865.23476136167,"y":25586.94732586733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"c6bffce6-17a9-484d-a8f7-5a3a4f5bd18d","savedPayload":{"position":{"x":26930.276024828443,"y":25385.915349307845},"targetPosition":{"x":26865.23476136167,"y":25586.94732586733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"73450f7c-f2df-4c92-a14d-e39d460d09c7","savedPayload":{"position":{"x":26865.23476136167,"y":25586.94732586733},"targetPosition":{"x":40683.81510041744,"y":18076.685875359042},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"784fc53e-e6ea-4658-80c7-62139549c49a","savedPayload":{"position":{"x":40683.81510041744,"y":18076.685875359042},"targetPosition":{"x":40827.31572179066,"y":18236.0594613419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"positionSize":{"type":"Position Size","name":"Position Size","formula":{"type":"Formula","code":"balanceQuotedAsset","id":"51c900a5-97d0-4d54-9af2-d2a8b56338ef","savedPayload":{"position":{"x":41041.77403532393,"y":17864.60676619674},"targetPosition":{"x":40934.544878557295,"y":18050.33311376932},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"31b90dc3-5e56-4485-afd1-7f0017805c7a","savedPayload":{"position":{"x":40934.544878557295,"y":18050.33311376932},"targetPosition":{"x":40827.31572179066,"y":18236.0594613419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":41246.85949147064,"y":18325.236242495157},"targetPosition":{"x":41037.08760663065,"y":18280.64785191853},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5368a5cc-a6a1-46fa-996c-76a00c003dd1","savedPayload":{"position":{"x":41037.08760663065,"y":18280.64785191853},"targetPosition":{"x":40827.31572179066,"y":18236.0594613419},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b0e61bb8-915c-4089-839c-0cbb27143a5a","savedPayload":{"position":{"x":40827.31572179066,"y":18236.0594613419},"targetPosition":{"x":40849.732719739266,"y":18449.342949794493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"openExecution":{"type":"Open Execution","id":"adafb7bb-4f7f-4275-b6dd-36e9d03441ce","savedPayload":{"position":{"x":41045.65013792128,"y":18536.571004320715},"targetPosition":{"x":40849.732719739266,"y":18449.342949794493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4743e572-e0ec-4641-8881-86eef4337ed7","savedPayload":{"position":{"x":40849.732719739266,"y":18449.342949794493},"targetPosition":{"x":40502.731879272455,"y":18701.453817647238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"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":41263.984554051895,"y":18565.82508799495},"targetPosition":{"x":41241.56755610329,"y":18779.10857644754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"49858221-6783-4a5c-abdd-a715ee64491d","savedPayload":{"position":{"x":41415.0679763367,"y":18905.164010373912},"targetPosition":{"x":41241.56755610329,"y":18779.10857644754},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"1c0100eb-a29a-4024-b7b9-d24164bc43eb","savedPayload":{"position":{"x":41241.56755610329,"y":18779.10857644754},"targetPosition":{"x":41045.65013792128,"y":18866.33663097376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"17cd97a5-9ae0-46fb-86a7-a6b2824510c4","savedPayload":{"position":{"x":41045.65013792128,"y":18866.33663097376},"targetPosition":{"x":40849.732719739266,"y":18953.564685499983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"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":41129.48256636026,"y":19845.526018710505},"targetPosition":{"x":40782.48172589345,"y":19593.41515085776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"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":39861.398646820904,"y":20125.025293909715},"targetPosition":{"x":40028.06405908416,"y":19990.06230417307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6b58a29a-27a3-4728-96bf-f1cffc915b93","savedPayload":{"position":{"x":40028.06405908416,"y":19990.06230417307},"targetPosition":{"x":40194.72947134741,"y":19855.099314436422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":39771.093519706395,"y":19922.19665753844},"targetPosition":{"x":39982.9114955269,"y":19888.64798598743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d6f645b9-dded-4dc8-9361-edbb5e9362d7","savedPayload":{"position":{"x":39982.9114955269,"y":19888.64798598743},"targetPosition":{"x":40194.72947134741,"y":19855.099314436422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"11d3b6ff-1092-4d0c-aee7-06fd7fa1fdd4","savedPayload":{"position":{"x":40194.72947134741,"y":19855.099314436422},"targetPosition":{"x":40390.646889529424,"y":19767.8712599102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"262eb093-e91f-48c0-b975-43b2bb998c3e","savedPayload":{"position":{"x":40390.646889529424,"y":19767.8712599102},"targetPosition":{"x":40782.48172589345,"y":19593.41515085776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"f23e15b8-7fc2-4b64-a091-7a889776d29a","savedPayload":{"position":{"x":40782.48172589345,"y":19593.41515085776},"targetPosition":{"x":40827.31572179066,"y":19166.848173952574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},{"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":41084.64857046305,"y":20272.09299561569},"targetPosition":{"x":40737.647729996235,"y":20019.982127762945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"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":39927.03661351622,"y":20676.402067018844},"targetPosition":{"x":40053.09204744259,"y":20502.901646785438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f3b04fbc-e688-4e48-9d5f-96ea5ef0c8cb","savedPayload":{"position":{"x":40053.09204744259,"y":20502.901646785438},"targetPosition":{"x":40179.14748136896,"y":20329.401226552032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.percentageBandwidth.movingAverage < 70","id":"fe5f5c24-785d-4b05-aa61-50d738d9cd81","savedPayload":{"position":{"x":39787.31264500493,"y":20503.857335604476},"targetPosition":{"x":39983.230063186944,"y":20416.629281078254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6b3364b5-d25b-4e29-b126-b7f85b401c3f","savedPayload":{"position":{"x":39983.230063186944,"y":20416.629281078254},"targetPosition":{"x":40179.14748136896,"y":20329.401226552032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"04b8d0ea-5b40-4f88-9482-75170e16b454","savedPayload":{"position":{"x":40179.14748136896,"y":20329.401226552032},"targetPosition":{"x":40345.81289363221,"y":20194.438236815386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},{"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":39710.35896617069,"y":20295.084251468412},"targetPosition":{"x":39922.176941991194,"y":20261.535579917403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7f353c88-8c2e-4bcb-85ce-28276752daeb","savedPayload":{"position":{"x":39922.176941991194,"y":20261.535579917403},"targetPosition":{"x":40133.9949178117,"y":20227.986908366394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"f9d261e8-528e-4469-9eb0-1765ec1adea4","savedPayload":{"position":{"x":40133.9949178117,"y":20227.986908366394},"targetPosition":{"x":40345.81289363221,"y":20194.438236815386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"41adecfe-df45-4c0b-a6c6-9af24919657d","savedPayload":{"position":{"x":40345.81289363221,"y":20194.438236815386},"targetPosition":{"x":40737.647729996235,"y":20019.982127762945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"cc74b1fd-2a75-4d59-a30a-070a6f530237","savedPayload":{"position":{"x":40737.647729996235,"y":20019.982127762945},"targetPosition":{"x":40782.48172589345,"y":19593.41515085776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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":41039.81457456583,"y":20698.659972520876},"targetPosition":{"x":40692.81373409902,"y":20446.54910466813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"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":39713.22664318896,"y":20882.689377299237},"targetPosition":{"x":39909.14406137097,"y":20795.461322773015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"63de0e84-99e1-4ebb-a639-070aaec25769","savedPayload":{"position":{"x":39909.14406137097,"y":20795.461322773015},"targetPosition":{"x":40105.061479552984,"y":20708.233268246793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"b2193069-9399-49ef-b0a5-a27cdf12f0f5","savedPayload":{"position":{"x":40105.061479552984,"y":20708.233268246793},"targetPosition":{"x":40300.978897734996,"y":20621.00521372057},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"e7f20b10-01fe-4aa8-9857-421f22ea3a4c","savedPayload":{"position":{"x":40300.978897734996,"y":20621.00521372057},"targetPosition":{"x":40692.81373409902,"y":20446.54910466813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"1c5a8e29-6bfc-4010-be09-19c2b96bfe70","savedPayload":{"position":{"x":40692.81373409902,"y":20446.54910466813},"targetPosition":{"x":40737.647729996235,"y":20019.982127762945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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":40994.98057866862,"y":21125.22694942606},"targetPosition":{"x":40647.97973820181,"y":20873.116081573316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"e39fdef7-ea4f-4b5d-bb01-7edac296c69c","savedPayload":{"position":{"x":40256.14490183778,"y":21047.572190625757},"targetPosition":{"x":40647.97973820181,"y":20873.116081573316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"f9b759a6-ab55-4344-963a-9608c2fbe429","savedPayload":{"position":{"x":40647.97973820181,"y":20873.116081573316},"targetPosition":{"x":40692.81373409902,"y":20446.54910466813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"b6bb374a-2c9d-4b84-8ddd-84f075656cca","savedPayload":{"position":{"x":40827.31572179066,"y":19166.848173952574},"targetPosition":{"x":40849.732719739266,"y":18953.564685499983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1d90afee-eb99-4627-a823-027589c6d2c9","savedPayload":{"position":{"x":40849.732719739266,"y":18953.564685499983},"targetPosition":{"x":40502.731879272455,"y":18701.453817647238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"closeStage":{"type":"Close Stage","closeExecution":{"type":"Close Execution","id":"17ad00f9-a9c4-4e9a-b399-39db314232e1","savedPayload":{"position":{"x":40171.3755619386,"y":19721.263700444673},"targetPosition":{"x":40237.64682540537,"y":19517.301723885186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"id":"575f8df0-55d4-4e22-a8e0-84b2973be70a","savedPayload":{"position":{"x":40237.64682540537,"y":19517.301723885186},"targetPosition":{"x":40502.731879272455,"y":18701.453817647238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"97bedd6e-ed17-4ea9-a3be-b6cadfea4d4d","savedPayload":{"position":{"x":40502.731879272455,"y":18701.453817647238},"targetPosition":{"x":39644.898649352486,"y":18701.25},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"name\": \"USDT\",\n\"initialBalance\": 1000,\n\"minimumBalance\": 10,\n\"maximumBalance\": 100000\n}","id":"8150ec53-592d-4200-93d1-b16a5a9f8c81","savedPayload":{"position":{"x":39198.3445639226,"y":18952.401759598597},"targetPosition":{"x":39116.739485191036,"y":18701.24715223657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"23db4e5b-5955-48a7-a6ee-753b5052a325","savedPayload":{"position":{"x":38903.09461541719,"y":18856.469236017438},"targetPosition":{"x":39116.739485191036,"y":18701.24715223657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"71d8af67-a7b7-4154-acac-bc664f841010","savedPayload":{"position":{"x":38903.09461541719,"y":18546.025068455703},"targetPosition":{"x":39116.739485191036,"y":18701.24715223657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"032309c9-4c3b-4a42-8d67-b297db6e17e7","savedPayload":{"position":{"x":39198.3445639226,"y":18450.092544874544},"targetPosition":{"x":39116.739485191036,"y":18701.24715223657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ddfbcdad-885d-4490-9087-a9a70c758158","savedPayload":{"position":{"x":39116.739485191036,"y":18701.24715223657},"targetPosition":{"x":39644.898649352486,"y":18701.25},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"56432995-eb04-4929-850f-6530233a3be3","savedPayload":{"position":{"x":39644.898649352486,"y":18701.25},"targetPosition":{"x":39644.898649352486,"y":18701.25},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"b"}}},{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","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.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":"91f3043a-8e9e-43e0-aca3-d740f527e043","savedPayload":{"position":{"x":39603.740814903496,"y":24607.59399990364},"targetPosition":{"x":39786.32860207713,"y":24514.560875571806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d61ab29a-c3c4-4e3b-8825-245a322c431a","savedPayload":{"position":{"x":39786.32860207713,"y":24514.560875571806},"targetPosition":{"x":39968.91638925076,"y":24421.52775123997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","id":"03a5e03d-c910-4e6c-b63f-0d018e413b02","savedPayload":{"position":{"x":39564.1161467593,"y":24357.413691389724},"targetPosition":{"x":39766.51626800503,"y":24389.470721314847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"16fc43c1-d0c3-42e3-9ba8-cba5c21bafd5","savedPayload":{"position":{"x":39766.51626800503,"y":24389.470721314847},"targetPosition":{"x":39968.91638925076,"y":24421.52775123997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"09012cab-d69d-4763-b014-7f984c1784dc","savedPayload":{"position":{"x":39679.11141259263,"y":24131.722774581853},"targetPosition":{"x":39824.013900921695,"y":24276.62526291091},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"89b8b2f6-b215-4e21-a2c8-4aebb11c2e92","savedPayload":{"position":{"x":39824.013900921695,"y":24276.62526291091},"targetPosition":{"x":39968.91638925076,"y":24421.52775123997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"5c98aae6-6601-405b-bc15-e8242092ccd1","savedPayload":{"position":{"x":39904.8023294005,"y":24016.72750874851},"targetPosition":{"x":39936.85935932563,"y":24219.12762999424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"895c4234-e3a8-477d-a5a9-582d81feecc0","savedPayload":{"position":{"x":39936.85935932563,"y":24219.12762999424},"targetPosition":{"x":39968.91638925076,"y":24421.52775123997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"aac48055-7ba2-43af-9b39-7bf71195a3e2","savedPayload":{"position":{"x":39968.91638925076,"y":24421.52775123997},"targetPosition":{"x":40151.50417642439,"y":24514.560875571806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"announcements":[],"id":"42e0cd22-e34e-4d51-9252-10bc615949b5","savedPayload":{"position":{"x":40151.50417642439,"y":24514.560875571806},"targetPosition":{"x":40334.09196359802,"y":24607.59399990364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"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":"33996f6e-f51b-4667-9f26-36fc8b586eca","savedPayload":{"position":{"x":40080.793126068784,"y":23828.0203376543},"targetPosition":{"x":40144.11783545109,"y":24022.913753216635},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c5a3356f-a6a5-4f5e-8854-a9af8dc981d6","savedPayload":{"position":{"x":40144.11783545109,"y":24022.913753216635},"targetPosition":{"x":40207.4425448334,"y":24217.80716877897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"1986b226-45b8-41f1-8a36-dee2dcd5724c","savedPayload":{"position":{"x":40207.4425448334,"y":24217.80716877897},"targetPosition":{"x":40270.76725421571,"y":24412.700584341306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"announcements":[],"id":"d006b092-ccb8-4385-bc24-cd732f749b80","savedPayload":{"position":{"x":40270.76725421571,"y":24412.700584341306},"targetPosition":{"x":40334.09196359802,"y":24607.59399990364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"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.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":"c370c93e-2300-48ad-acc3-42f530112d42","savedPayload":{"position":{"x":39919.20157478083,"y":23627.91980364617},"targetPosition":{"x":40112.370557593116,"y":23696.324528096862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0bd29ab1-c151-4577-9054-7a0fc2532f7e","savedPayload":{"position":{"x":40112.370557593116,"y":23696.324528096862},"targetPosition":{"x":40498.708523217676,"y":23833.133976998244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"7e5c95e6-9024-4f7a-b99b-98509b0cf8bd","savedPayload":{"position":{"x":40041.84597883714,"y":23421.77309434981},"targetPosition":{"x":40194.13349363065,"y":23558.893388565954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0dc65813-69aa-4ce5-bbfe-dc08e6ee5fdc","savedPayload":{"position":{"x":40194.13349363065,"y":23558.893388565954},"targetPosition":{"x":40498.708523217676,"y":23833.133976998244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"a347b184-3b9c-43d7-9c58-18e272fa7cc7","savedPayload":{"position":{"x":40234.04356380611,"y":23278.252350440987},"targetPosition":{"x":40322.2652169433,"y":23463.21289262674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"abd817cd-4111-41fa-be60-ea1919c64715","savedPayload":{"position":{"x":40322.2652169433,"y":23463.21289262674},"targetPosition":{"x":40498.708523217676,"y":23833.133976998244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","id":"3e2c9f8c-1b2d-419c-9d19-934b87857165","savedPayload":{"position":{"x":40466.53398965165,"y":23219.20730416104},"targetPosition":{"x":40477.25883417366,"y":23423.849528440107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"28755f4a-480d-45a5-8144-5fb7bbdf09f5","savedPayload":{"position":{"x":40477.25883417366,"y":23423.849528440107},"targetPosition":{"x":40498.708523217676,"y":23833.133976998244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"6dd2ef8e-c7ea-4188-b2f4-d549c336ca5d","savedPayload":{"position":{"x":40703.92269656975,"y":23253.627028561405},"targetPosition":{"x":40635.51797211906,"y":23446.796011373684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c3b52801-d812-4aa8-8450-797dbade3f60","savedPayload":{"position":{"x":40635.51797211906,"y":23446.796011373684},"targetPosition":{"x":40498.708523217676,"y":23833.133976998244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","id":"0eee7c13-aee8-4238-86fd-1311ed4aa052","savedPayload":{"position":{"x":40910.06940586611,"y":23376.27143261771},"targetPosition":{"x":40772.94911164996,"y":23528.55894741122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"542e7619-1192-474e-a8a0-fb917c49cf1e","savedPayload":{"position":{"x":40772.94911164996,"y":23528.55894741122},"targetPosition":{"x":40498.708523217676,"y":23833.133976998244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","id":"990141cd-cb75-4d22-85f8-7f611655a6db","savedPayload":{"position":{"x":41053.59014977494,"y":23568.469017586674},"targetPosition":{"x":40868.62960758918,"y":23656.690670723863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"930e07f4-c28b-4c5d-90dc-d373911dd2cb","savedPayload":{"position":{"x":40868.62960758918,"y":23656.690670723863},"targetPosition":{"x":40498.708523217676,"y":23833.133976998244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"0b1fc454-e677-4b35-939b-1f23ae0f5045","savedPayload":{"position":{"x":40498.708523217676,"y":23833.133976998244},"targetPosition":{"x":40520.15821226169,"y":24242.41842555638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && chart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","id":"a3a29826-879d-4388-a108-39441c36102d","savedPayload":{"position":{"x":41069.3170048035,"y":23196.969327697407},"targetPosition":{"x":41115.414664158394,"y":23396.64022705409},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"98cbac39-2c67-472b-ac27-aec6ddb40bd8","savedPayload":{"position":{"x":41115.414664158394,"y":23396.64022705409},"targetPosition":{"x":41207.609982868176,"y":23795.982025767455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"11c71b5d-7044-4d4b-ae10-5c25cb2eabdc","savedPayload":{"position":{"x":41282.53150072211,"y":23185.79522945536},"targetPosition":{"x":41257.557661437466,"y":23389.19082822606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"cca2a8bc-e4a0-42df-8a2e-a4a457860a54","savedPayload":{"position":{"x":41257.557661437466,"y":23389.19082822606},"targetPosition":{"x":41207.609982868176,"y":23795.982025767455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.previous.previous.previous.deviation > 200","id":"1e76f618-a3ac-4fb9-83eb-97de1129e93a","savedPayload":{"position":{"x":41486.709355863684,"y":23248.218664246564},"targetPosition":{"x":41393.67623153185,"y":23430.806451420194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7a85ad66-8767-4f51-98d0-19683ad79e55","savedPayload":{"position":{"x":41393.67623153185,"y":23430.806451420194},"targetPosition":{"x":41207.609982868176,"y":23795.982025767455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"1cd7c818-45ae-447d-ad12-663c69d88d5c","savedPayload":{"position":{"x":41657.22370755396,"y":23376.710444563418},"targetPosition":{"x":41507.35246599203,"y":23516.467638298098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1c3eb902-1840-4ff9-a143-2040c3da6fbc","savedPayload":{"position":{"x":41507.35246599203,"y":23516.467638298098},"targetPosition":{"x":41207.609982868176,"y":23795.982025767455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":"b85b9bdf-ebf6-4c3a-ab00-0b82484cff3d","savedPayload":{"position":{"x":41773.50800845526,"y":23555.772565363},"targetPosition":{"x":41584.875333259566,"y":23635.842385497817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2dd164fe-9197-4b40-b8c2-c73503cc1fa7","savedPayload":{"position":{"x":41584.875333259566,"y":23635.842385497817},"targetPosition":{"x":41207.609982868176,"y":23795.982025767455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":"3cda3e1f-537c-4a9c-9fba-c221c12dd775","savedPayload":{"position":{"x":41821.536655705386,"y":23763.80749220143},"targetPosition":{"x":41616.89443142631,"y":23774.532336723438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"508ccff3-0500-4d97-8795-84ec971e9b6e","savedPayload":{"position":{"x":41616.89443142631,"y":23774.532336723438},"targetPosition":{"x":41207.609982868176,"y":23795.982025767455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","id":"49fa1f6c-31c8-4903-baca-54b00ced89ad","savedPayload":{"position":{"x":41795.51668561863,"y":23975.723142633466},"targetPosition":{"x":41599.54778470181,"y":23915.809437011463},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"d906e914-4695-4a87-9b40-bc09d420b3fa","savedPayload":{"position":{"x":41599.54778470181,"y":23915.809437011463},"targetPosition":{"x":41207.609982868176,"y":23795.982025767455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","id":"cd3f2a10-647d-4971-a96e-2b7c24df3f88","savedPayload":{"position":{"x":41698.58649060133,"y":24165.959361675097},"targetPosition":{"x":41534.92765469028,"y":24042.633583039216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"273ada5d-4442-448f-a2b4-d6505e96e201","savedPayload":{"position":{"x":41534.92765469028,"y":24042.633583039216},"targetPosition":{"x":41207.609982868176,"y":23795.982025767455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"1cc080d9-4e49-4e5a-918a-9d0b4b06d6b1","savedPayload":{"position":{"x":41207.609982868176,"y":23795.982025767455},"targetPosition":{"x":40520.15821226169,"y":24242.41842555638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5},"uiObject":{}}}],"announcements":[],"id":"7ee4a63d-8296-40a7-ab94-2f408bbe162d","savedPayload":{"position":{"x":40520.15821226169,"y":24242.41842555638},"targetPosition":{"x":40334.09196359802,"y":24607.59399990364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"8f05c030-e6a1-4e65-b44d-213f0e12fd83","savedPayload":{"position":{"x":40334.09196359802,"y":24607.59399990364},"targetPosition":{"x":40460.741382362634,"y":24997.38083102831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"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":"325e27c0-49b3-4f75-bae6-a7da8b747138","savedPayload":{"position":{"x":41738.038547550896,"y":22827.549962120618},"targetPosition":{"x":41915.50712698379,"y":22930.0114942289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"bb5c170c-3e88-41fe-a96b-c77686546a45","savedPayload":{"position":{"x":41915.50712698379,"y":22110.319237362644},"targetPosition":{"x":41915.50712698379,"y":22315.24230157921},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"419d0bf5-f46a-453c-9e1b-c68aac94ce15","savedPayload":{"position":{"x":41915.50712698379,"y":22315.24230157921},"targetPosition":{"x":41915.50712698379,"y":22520.165365795772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"a60d1fc4-6804-41a4-ab5b-0869fd254957","savedPayload":{"position":{"x":41915.50712698379,"y":22520.165365795772},"targetPosition":{"x":41915.50712698379,"y":22725.088430012336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"announcements":[],"id":"6b8bfecb-d38f-4fec-b165-5a395dd96cf8","savedPayload":{"position":{"x":41915.50712698379,"y":22725.088430012336},"targetPosition":{"x":41915.50712698379,"y":22930.0114942289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"2c76cf2c-d0b3-4e0c-a095-0cd2e35667c3","savedPayload":{"position":{"x":41915.50712698379,"y":22930.0114942289},"targetPosition":{"x":42017.968659092076,"y":23107.480073661794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"2187bbac-923c-43ef-878f-f4bdd505ca64","savedPayload":{"position":{"x":42017.968659092076,"y":23107.480073661794},"targetPosition":{"x":42120.43019120036,"y":23284.94865309469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"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":"1455910b-3b56-4ca5-bbb5-a68978564d82","savedPayload":{"position":{"x":42079.92105795341,"y":22690.14117015478},"targetPosition":{"x":42163.270777181664,"y":22877.347704636028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"eb95ec28-6163-4243-b3cc-9f84bbe818d6","savedPayload":{"position":{"x":42347.982411154706,"y":22100.160040457446},"targetPosition":{"x":42326.56211816405,"y":22303.960514686776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"19e37ed7-4d46-4d54-8541-e9b8df470f15","savedPayload":{"position":{"x":42326.56211816405,"y":22303.960514686776},"targetPosition":{"x":42305.1418251734,"y":22507.760988916107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"0609439f-0080-4227-9ce5-4f86272cab7f","savedPayload":{"position":{"x":42305.1418251734,"y":22507.760988916107},"targetPosition":{"x":42283.721532182746,"y":22711.561463145437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.movingAverage <= 30","id":"c02650b3-da09-40de-a2ba-0dcd3a471c94","savedPayload":{"position":{"x":42711.829576666154,"y":22296.639260936005},"targetPosition":{"x":42591.37882166507,"y":22462.425502426595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a67c51ff-cc4e-4819-895d-ad4700edbdf6","savedPayload":{"position":{"x":42591.37882166507,"y":22462.425502426595},"targetPosition":{"x":42470.92806666399,"y":22628.211743917185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"8d7bd4e0-2bca-4f1f-848e-b85f7ab26f29","savedPayload":{"position":{"x":42878.52901512266,"y":22671.0523298985},"targetPosition":{"x":42674.728540893324,"y":22649.632036907842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ad777013-234f-4377-bf76-8c66bf69e3d3","savedPayload":{"position":{"x":42674.728540893324,"y":22649.632036907842},"targetPosition":{"x":42470.92806666399,"y":22628.211743917185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"93197552-441f-4654-8fad-88fdcf099c11","savedPayload":{"position":{"x":42470.92806666399,"y":22628.211743917185},"targetPosition":{"x":42283.721532182746,"y":22711.561463145437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"announcements":[],"id":"7b34638f-0350-43df-987c-752b1d90a1c4","savedPayload":{"position":{"x":42283.721532182746,"y":22711.561463145437},"targetPosition":{"x":42163.270777181664,"y":22877.347704636028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"d9e9829b-0e96-421e-bfdc-06fef4b99f36","savedPayload":{"position":{"x":42163.270777181664,"y":22877.347704636028},"targetPosition":{"x":42141.85048419101,"y":23081.14817886536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"f3939260-87b7-4954-a257-2e959cdbf750","savedPayload":{"position":{"x":42141.85048419101,"y":23081.14817886536},"targetPosition":{"x":42120.43019120036,"y":23284.94865309469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"positionSize":{"type":"Position Size","name":"Position Size","formula":{"type":"Formula","code":"balanceBaseAsset","id":"e1f74751-8a7a-44f0-bed8-bd2ea6b950d6","savedPayload":{"position":{"x":42394.67077963265,"y":22980.373623507665},"targetPosition":{"x":42257.550485416505,"y":23132.661138301177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"aef470eb-c910-4327-b38f-0a2a75160629","savedPayload":{"position":{"x":42257.550485416505,"y":23132.661138301177},"targetPosition":{"x":42120.43019120036,"y":23284.94865309469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"positionRate":{"type":"Position Rate","name":"Position Rate","formula":{"type":"Formula","name":"My Formula","code":"candle.close","id":"30e1f940-ac96-4379-a4a2-4deec14620d0","savedPayload":{"position":{"x":42521.32019839727,"y":23199.73685155704},"targetPosition":{"x":42320.87519479881,"y":23242.342752325865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d50dbb9e-fd30-499d-b142-99a1fe28c88d","savedPayload":{"position":{"x":42320.87519479881,"y":23242.342752325865},"targetPosition":{"x":42120.43019120036,"y":23284.94865309469},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"7cb35db4-3b57-4733-b0aa-c70860bcef15","savedPayload":{"position":{"x":42120.43019120036,"y":23284.94865309469},"targetPosition":{"x":41787.03131428735,"y":24033.77479101967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"openExecution":{"type":"Open Execution","id":"6d182dc1-af8d-4ac7-9589-2254ed651497","savedPayload":{"position":{"x":42194.63226274601,"y":23990.934205038357},"targetPosition":{"x":41787.03131428735,"y":24033.77479101967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"74ce460e-e723-4d53-83a9-934a6a37dd56","savedPayload":{"position":{"x":41787.03131428735,"y":24033.77479101967},"targetPosition":{"x":40460.741382362634,"y":24997.38083102831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},"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":"6c22a375-194a-49d8-bb00-a8bf22103525","savedPayload":{"position":{"x":41583.98058925012,"y":24497.282515658797},"targetPosition":{"x":41541.1400032688,"y":24904.88346411746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"973915ac-44e5-42ac-9d03-9497fdb44b27","savedPayload":{"position":{"x":41872.712486249984,"y":25145.784974119622},"targetPosition":{"x":41541.1400032688,"y":24904.88346411746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"b49ec2a3-2a5e-4d55-b23e-389f3554c50d","savedPayload":{"position":{"x":41541.1400032688,"y":24904.88346411746},"targetPosition":{"x":41166.72693430631,"y":25071.582902573966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"9a369d8b-f429-4cb8-8bee-b89c5c92b61f","savedPayload":{"position":{"x":41166.72693430631,"y":25071.582902573966},"targetPosition":{"x":40792.313865343815,"y":25238.28234103047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":"fa97bc24-2ce8-4d4a-ac9b-2f8690c8cae3","savedPayload":{"position":{"x":40933.891762626416,"y":26437.96084467875},"targetPosition":{"x":40685.212400390534,"y":26257.28471217713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"80d65317-000c-41b9-b69e-6a9a5d8910f6","savedPayload":{"position":{"x":39599.41589148613,"y":26828.549890652936},"targetPosition":{"x":39730.4601178513,"y":26748.245885455173},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9b45566d-9aab-472c-bfde-22e94e52d9a1","savedPayload":{"position":{"x":39730.4601178513,"y":26748.245885455173},"targetPosition":{"x":39861.50434421646,"y":26667.94188025741},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"971cc26a-de82-431e-9b17-8d85bbd5b111","savedPayload":{"position":{"x":39861.50434421646,"y":26667.94188025741},"targetPosition":{"x":40123.592796946796,"y":26507.333869861886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.movingAverage <= 50","id":"8475e302-cb70-47bb-81c1-48834f1fe37d","savedPayload":{"position":{"x":39210.691721865616,"y":26571.374520151276},"targetPosition":{"x":39514.29190373421,"y":26523.28897526359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e2523a8d-1a30-4a32-8895-1fb6b90744cc","savedPayload":{"position":{"x":39514.29190373421,"y":26523.28897526359},"targetPosition":{"x":39817.8920856028,"y":26475.203430375903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"57b4ab24-3a0e-49a3-b3ab-b76dd6e0500b","savedPayload":{"position":{"x":39243.95560053155,"y":26254.889855362413},"targetPosition":{"x":39530.923843067176,"y":26365.046642869158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7015bad5-00e9-4194-9840-ad54ada782c2","savedPayload":{"position":{"x":39530.923843067176,"y":26365.046642869158},"targetPosition":{"x":39817.8920856028,"y":26475.203430375903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"34091fe6-7a1d-426a-a67c-94a6d31e4614","savedPayload":{"position":{"x":39817.8920856028,"y":26475.203430375903},"targetPosition":{"x":40123.592796946796,"y":26507.333869861886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"66ce8ebb-a8b6-445b-83fb-5c48d92e25ef","savedPayload":{"position":{"x":40123.592796946796,"y":26507.333869861886},"targetPosition":{"x":40685.212400390534,"y":26257.28471217713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"26e213d6-e8f7-409e-b3a5-f2826a07f10d","savedPayload":{"position":{"x":40685.212400390534,"y":26257.28471217713},"targetPosition":{"x":40749.4732793625,"y":25645.883289489135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4},"uiObject":{}}},{"type":"Phase","name":"New Phase 2","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.2","id":"be41660e-6e88-4e66-8e74-62e044974953","savedPayload":{"position":{"x":40869.63088365445,"y":27049.362267366745},"targetPosition":{"x":40620.95152141857,"y":26868.686134865125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"f2789e09-9ec0-409f-a697-488fef0f8b58","savedPayload":{"position":{"x":39492.48858675277,"y":27319.465043850785},"targetPosition":{"x":39613.049649673376,"y":27109.598150458412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2b7e6de2-2c6a-4fe9-974b-919780e238ea","savedPayload":{"position":{"x":39666.19923887933,"y":27359.64730814317},"targetPosition":{"x":39797.24346524449,"y":27279.343302945406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"e08fce1d-d263-4c1c-bb1e-a5d0ede90bfc","savedPayload":{"position":{"x":39797.24346524449,"y":27279.343302945406},"targetPosition":{"x":40059.33191797483,"y":27118.73529254988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at06hs.percentageBandwidth.movingAverage <= 50","id":"8b2740e7-f41f-490b-bfbc-da0fa4865257","savedPayload":{"position":{"x":39146.43084289365,"y":27182.77594283927},"targetPosition":{"x":39450.03102476224,"y":27134.690397951585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f10e85cf-e5c7-4f13-954f-32cc0a247fd9","savedPayload":{"position":{"x":39450.03102476224,"y":27134.690397951585},"targetPosition":{"x":39753.63120663083,"y":27086.6048530639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"10074471-5735-4022-8ff8-a167e4f96e69","savedPayload":{"position":{"x":39256.27248215907,"y":26725.25258806066},"targetPosition":{"x":39504.95184439495,"y":26905.92872056228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9111b1f9-0ff8-480a-b19c-f099114eb82e","savedPayload":{"position":{"x":39504.95184439495,"y":26905.92872056228},"targetPosition":{"x":39753.63120663083,"y":27086.6048530639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"1b3328cc-7832-4e31-9a3f-f0557c3f3740","savedPayload":{"position":{"x":39753.63120663083,"y":27086.6048530639},"targetPosition":{"x":40059.33191797483,"y":27118.73529254988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"cb4c3269-cfe5-4b10-8fce-3693ebce8fb3","savedPayload":{"position":{"x":40059.33191797483,"y":27118.73529254988},"targetPosition":{"x":40620.95152141857,"y":26868.686134865125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"c45fab06-15c4-4ae3-8af9-ca3148944fb7","savedPayload":{"position":{"x":40620.95152141857,"y":26868.686134865125},"targetPosition":{"x":40685.212400390534,"y":26257.28471217713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Phase","name":"New Phase 3","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.15","id":"f257c92b-e243-4153-9b75-91abf0bcc4be","savedPayload":{"position":{"x":40805.37000468248,"y":27660.76369005474},"targetPosition":{"x":40556.6906424466,"y":27480.08755755312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"eed4bc15-1ffe-4dfb-aa88-1bec01929e28","savedPayload":{"position":{"x":39470.8941335422,"y":28051.352736028926},"targetPosition":{"x":39601.93835990736,"y":27971.048730831164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"712dddfd-f468-4ad5-b569-e28f243367b8","savedPayload":{"position":{"x":39601.93835990736,"y":27971.048730831164},"targetPosition":{"x":39732.98258627253,"y":27890.7447256334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"9035c77b-e5cf-4bc8-8a84-76ecc54827f7","savedPayload":{"position":{"x":39732.98258627253,"y":27890.7447256334},"targetPosition":{"x":39995.07103900286,"y":27730.136715237877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"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":"40836274-d061-4e98-84dc-5c188a0fefe4","savedPayload":{"position":{"x":39233.97005485598,"y":27770.13459308342},"targetPosition":{"x":39385.77014579027,"y":27746.09182063958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2d0105b0-0df8-441f-852b-fb0896f88ec9","savedPayload":{"position":{"x":39385.77014579027,"y":27746.09182063958},"targetPosition":{"x":39689.370327658864,"y":27698.006275751894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.direction === \"Up\"","id":"e1001e25-b7e5-4d7b-b5ca-775cc6cda9bf","savedPayload":{"position":{"x":39115.43384258762,"y":27477.692700738404},"targetPosition":{"x":39402.40208512324,"y":27587.84948824515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ccf1b2b7-163e-4a85-93c1-19257fd6e20a","savedPayload":{"position":{"x":39402.40208512324,"y":27587.84948824515},"targetPosition":{"x":39689.370327658864,"y":27698.006275751894},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"8b04526c-dfd1-47b4-bcad-9ba28baefe45","savedPayload":{"position":{"x":39689.370327658864,"y":27698.006275751894},"targetPosition":{"x":39995.07103900286,"y":27730.136715237877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"78aa3111-f3c0-4feb-a53a-04180e8ba325","savedPayload":{"position":{"x":39995.07103900286,"y":27730.136715237877},"targetPosition":{"x":40556.6906424466,"y":27480.08755755312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"fcbdcd00-6012-47ca-a8da-285cd600dd83","savedPayload":{"position":{"x":40556.6906424466,"y":27480.08755755312},"targetPosition":{"x":40620.95152141857,"y":26868.686134865125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Phase","name":"New Phase 4","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.1","id":"b00ddf15-fa75-4934-bf11-c5b99aec50a5","savedPayload":{"position":{"x":40741.109125710514,"y":28272.165112742736},"targetPosition":{"x":40492.42976347463,"y":28091.488980241116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"9d7506a6-637d-4a5e-963e-8c490b6334ae","savedPayload":{"position":{"x":39691.36977909782,"y":28582.45015351916},"targetPosition":{"x":39537.677480935396,"y":28582.45015351916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9faa3fee-2cf4-4b5b-963b-66b89f9f5d39","savedPayload":{"position":{"x":39537.677480935396,"y":28582.45015351916},"targetPosition":{"x":39668.72170730056,"y":28502.146148321397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"51f36e74-2151-434f-928b-0c0c812da7fc","savedPayload":{"position":{"x":39668.72170730056,"y":28502.146148321397},"targetPosition":{"x":39930.810160030895,"y":28341.538137925872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"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":"29020fef-a868-4770-90dd-2d7d54f62a17","savedPayload":{"position":{"x":39169.70917588401,"y":28381.536015771417},"targetPosition":{"x":39321.509266818306,"y":28357.493243327575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0c67fea5-096a-4244-adb7-e25fb99c8fa9","savedPayload":{"position":{"x":39321.509266818306,"y":28357.493243327575},"targetPosition":{"x":39625.1094486869,"y":28309.40769843989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"bb21a25d-5adc-4778-90e1-8e88707f5690","savedPayload":{"position":{"x":39051.17296361565,"y":28089.0941234264},"targetPosition":{"x":39338.141206151275,"y":28199.250910933144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"51a7a52b-b5a0-444a-9c3f-a5c1107364d4","savedPayload":{"position":{"x":39338.141206151275,"y":28199.250910933144},"targetPosition":{"x":39625.1094486869,"y":28309.40769843989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"1ecbddb7-0567-4982-b153-3cfdf52da4ea","savedPayload":{"position":{"x":39625.1094486869,"y":28309.40769843989},"targetPosition":{"x":39930.810160030895,"y":28341.538137925872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"27cc93d7-5c3a-4627-b3db-9063e1776674","savedPayload":{"position":{"x":39930.810160030895,"y":28341.538137925872},"targetPosition":{"x":40492.42976347463,"y":28091.488980241116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"b648d940-c4d5-4299-a857-6f1570099fe0","savedPayload":{"position":{"x":40492.42976347463,"y":28091.488980241116},"targetPosition":{"x":40556.6906424466,"y":27480.08755755312},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Phase","name":"New Phase 5","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.75","id":"37c7be8d-2dcb-4b20-93e4-61fd7f879a6d","savedPayload":{"position":{"x":40581.86118266509,"y":28436.68753377977},"targetPosition":{"x":41107.198956124324,"y":28091.488980241116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"51509a6b-a17e-41f1-a622-1a8d828bea9f","savedPayload":{"position":{"x":40979.87608746199,"y":29058.60218352698},"targetPosition":{"x":41088.552953708786,"y":28949.925317280184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bbdb3a24-2801-4804-b576-9400a1090ebd","savedPayload":{"position":{"x":41088.552953708786,"y":28949.925317280184},"targetPosition":{"x":41197.22981995558,"y":28841.24845103339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"e4b34544-1f64-4353-a5ad-2a0aea1c58c6","savedPayload":{"position":{"x":41197.22981995558,"y":28841.24845103339},"targetPosition":{"x":41414.58355244917,"y":28623.8947185398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},{"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":"6a21d221-46fd-4414-ba7a-72cdb98a9414","savedPayload":{"position":{"x":41117.672832255565,"y":28703.45170623982},"targetPosition":{"x":40810.28823593072,"y":28703.45170623982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c44b4d80-d0d6-4203-b3d8-980cf6f9cd68","savedPayload":{"position":{"x":40810.28823593072,"y":28703.45170623982},"targetPosition":{"x":41107.198956124324,"y":28623.8947185398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"5eb799d7-3e87-497d-81cc-7f71c1cb6ff9","savedPayload":{"position":{"x":41038.35647425627,"y":28544.33773083978},"targetPosition":{"x":40810.28823593072,"y":28544.33773083978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3d5f2f28-18ab-492c-92c3-83935147c659","savedPayload":{"position":{"x":40810.28823593072,"y":28544.33773083978},"targetPosition":{"x":41107.198956124324,"y":28623.8947185398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"18043e6e-16ab-4838-bb12-29838d4cce6b","savedPayload":{"position":{"x":41107.198956124324,"y":28623.8947185398},"targetPosition":{"x":41414.58355244917,"y":28623.8947185398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"5fee368f-24dd-427d-bd52-a53ecfb4459d","savedPayload":{"position":{"x":41414.58355244917,"y":28623.8947185398},"targetPosition":{"x":41107.198956124324,"y":28091.488980241116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"68fdfa18-7975-4055-89bc-53b9b616d7cf","savedPayload":{"position":{"x":41107.198956124324,"y":28091.488980241116},"targetPosition":{"x":40492.42976347463,"y":28091.488980241116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Phase","name":"New Phase 6","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.25","id":"7fac596f-9e80-469a-91f7-8c60321ce178","savedPayload":{"position":{"x":41196.63037531478,"y":28436.68753377977},"targetPosition":{"x":41042.93807715236,"y":28702.89040292911},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"461b716a-4ac7-46b7-b0b7-57fe129a34e9","savedPayload":{"position":{"x":41177.39373363757,"y":28976.787695673043},"targetPosition":{"x":41461.38007079133,"y":28859.156703295295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ec86d2bb-5e22-4f31-aeee-9ff98dd3f006","savedPayload":{"position":{"x":41461.38007079133,"y":28859.156703295295},"targetPosition":{"x":41745.3664079451,"y":28741.525710917547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}],"id":"d7a37efb-0d64-40ad-8e83-da1f3da2f2db","savedPayload":{"position":{"x":41745.3664079451,"y":28741.525710917547},"targetPosition":{"x":42029.35274509886,"y":28623.8947185398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"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":"b0e55bcf-7dde-4ae3-a63b-ce82f1f0e9a5","savedPayload":{"position":{"x":41112.458391790555,"y":28704.138200350557},"targetPosition":{"x":41417.213270282286,"y":28664.016459445178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e3fba252-1cc9-48b1-b9cc-bb6a32faf7b3","savedPayload":{"position":{"x":41417.213270282286,"y":28664.016459445178},"targetPosition":{"x":41721.968148774016,"y":28623.8947185398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"42a3cac4-9fe8-4791-92ab-2805c4a57798","savedPayload":{"position":{"x":41653.12566690596,"y":28544.33773083978},"targetPosition":{"x":41425.05742858041,"y":28544.33773083978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ee9a30e4-4128-4911-b03c-e1aebc1aa173","savedPayload":{"position":{"x":41425.05742858041,"y":28544.33773083978},"targetPosition":{"x":41721.968148774016,"y":28623.8947185398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"684a6ca0-83ad-4856-a759-fcd342f4ac8c","savedPayload":{"position":{"x":41721.968148774016,"y":28623.8947185398},"targetPosition":{"x":42029.35274509886,"y":28623.8947185398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"1e0fe692-2762-4a39-bcd2-292d4156874a","savedPayload":{"position":{"x":42029.35274509886,"y":28623.8947185398},"targetPosition":{"x":41721.968148774016,"y":28091.488980241116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"9a426f1b-c3fd-4ec5-aa9e-7c1198587936","savedPayload":{"position":{"x":41721.968148774016,"y":28091.488980241116},"targetPosition":{"x":41107.198956124324,"y":28091.488980241116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"08b4002d-8c18-418a-9772-598e73d909da","savedPayload":{"position":{"x":42336.73734142371,"y":28091.488980241116},"targetPosition":{"x":42029.35274509886,"y":28091.488980241116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"35945d37-6095-4690-b29c-7dd41c2ad489","savedPayload":{"position":{"x":42029.35274509886,"y":28091.488980241116},"targetPosition":{"x":41721.968148774016,"y":28091.488980241116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"4710a2d0-16e7-40d3-b0c3-b2116c569f8d","savedPayload":{"position":{"x":40749.4732793625,"y":25645.883289489135},"targetPosition":{"x":40792.313865343815,"y":25238.28234103047},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0301fddf-32a4-4b93-beda-a5ca48eb26b1","savedPayload":{"position":{"x":40792.313865343815,"y":25238.28234103047},"targetPosition":{"x":40460.741382362634,"y":24997.38083102831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"closeStage":{"type":"Close Stage","closeExecution":{"type":"Close Execution","id":"a5785489-49fe-4a19-8671-c1d875a1dee4","savedPayload":{"position":{"x":40334.09196359802,"y":25387.16766215298},"targetPosition":{"x":40397.416672980326,"y":25192.274246590645},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"927e7d87-c522-4bf4-a872-04d5a18180ff","savedPayload":{"position":{"x":40397.416672980326,"y":25192.274246590645},"targetPosition":{"x":40460.741382362634,"y":24997.38083102831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"id":"a04f9080-32e5-4e0b-8896-713016ba3fda","savedPayload":{"position":{"x":40460.741382362634,"y":24997.38083102831},"targetPosition":{"x":39641.04913415892,"y":24997.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"name\": \"BTC\",\n\"initialBalance\": 0.1,\n\"minimumBalance\": 0.001,\n\"maximumBalance\": 100\n}","id":"346fb744-2838-4913-99eb-3f68e7be0407","savedPayload":{"position":{"x":38868.92191250437,"y":25196.226230767323},"targetPosition":{"x":38804.27776688104,"y":24997.272008007643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-07-01T00:00:00.000Z\",\n\"finalDatetime\": \"2019-08-01T00:00:00.000Z\"\n}","id":"e4604c77-6bdf-4be6-a7bd-10a9fca4135c","savedPayload":{"position":{"x":38635.03719646546,"y":25120.232479878443},"targetPosition":{"x":38804.27776688104,"y":24997.272008007643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"fbd3a8c4-08e6-4ee3-a9ec-9a87e1c6102f","savedPayload":{"position":{"x":38635.03719646546,"y":24874.311536136844},"targetPosition":{"x":38804.27776688104,"y":24997.272008007643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"df98a4fc-c1ad-4eee-bf9e-d8a6825ed2fe","savedPayload":{"position":{"x":38868.92191250437,"y":24798.317785247964},"targetPosition":{"x":38804.27776688104,"y":24997.272008007643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"id":"5a021e03-57ff-4915-a551-c6ef14c963c3","savedPayload":{"position":{"x":38804.27776688104,"y":24997.272008007643},"targetPosition":{"x":39641.04913415892,"y":24997.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a239a374-497a-43f9-8382-5277410b1c2d","savedPayload":{"position":{"x":39641.04913415892,"y":24997.5},"targetPosition":{"x":39641.04913415892,"y":24997.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"w"}}},{"type":"Super Scripts","name":"New Super Scripts","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":40642.57240322065,"y":29434.544415235618},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40558.71545100897,"y":29428.4174696837},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"90ee9733-ab7e-41a0-ac78-4a7661a27017","savedPayload":{"position":{"x":40477.774263639694,"y":29404.698005770817},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"9ade8e93-9071-422b-8cce-7a50d6dad739","savedPayload":{"position":{"x":40402.170242226835,"y":29366.627361641196},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"b5ef2cf7-3d35-45ec-848c-31970b59c04e","savedPayload":{"position":{"x":40336.05187230642,"y":29313.36063305485},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40284.80447204805,"y":29245.892991082736},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40248.13474903424,"y":29170.221528015263},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40218.25846999608,"y":29091.241391110492},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40215.62952786508,"y":29006.84010214062},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40220.70730857348,"y":28922.92591744951},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40246.39036608476,"y":28842.736129190333},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40286.42080589547,"y":28768.867212947098},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40337.80558584465,"y":28702.073284764625},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40401.90514586337,"y":28646.656097894822},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40478.055885240145,"y":28609.662093197694},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40558.30289194192,"y":28583.188660106935},"targetPosition":{"x":40642.57240322065,"y":29006.84010214062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"3c9e658e-9350-4b43-b95c-1dc9fbb7de7b","savedPayload":{"position":{"x":40642.57240322065,"y":29006.84010214062},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"922126c5-3b95-4c76-90ce-c85435c49624","savedPayload":{"position":{"x":40832.69992216912,"y":29392.380571366022},"targetPosition":{"x":41022.827441117595,"y":29777.921040591424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"79c82a1e-4c4e-4622-b762-4ccbfdac46b7","savedPayload":{"position":{"x":40599.331563398926,"y":29833.67533061105},"targetPosition":{"x":41022.827441117595,"y":29777.921040591424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 target.singleMarketData.push(templateClone)\n setup(templateClone, target)\n templateClone.payload.referenceParent = market\n\n return templateClone\n }\n}","id":"255fc8f9-413a-4334-b6f5-d944d57fb27c","savedPayload":{"position":{"x":40994.71246787278,"y":29348.96944058102},"targetPosition":{"x":41022.827441117595,"y":29777.921040591424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"4dd2897c-d7e2-4fa2-a92f-4d0cf49a6370","savedPayload":{"position":{"x":41022.827441117595,"y":29777.921040591424},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":41035.685894634975,"y":28909.921866679873},"targetPosition":{"x":41035.685894634975,"y":28694.595676926525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40881.57217799159,"y":28848.70939356991},"targetPosition":{"x":41035.685894634975,"y":28694.595676926525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40821.069704235575,"y":28694.595676926525},"targetPosition":{"x":41035.685894634975,"y":28694.595676926525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40883.732858478885,"y":28542.642640770435},"targetPosition":{"x":41035.685894634975,"y":28694.595676926525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"0497555c-1024-4c2c-8be4-9c8917bed11f","savedPayload":{"position":{"x":41035.685894634975,"y":28694.595676926525},"targetPosition":{"x":41077.617827008624,"y":28905.40173652971},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"5d4fb545-1392-4651-8f54-32b3b0b2278f","savedPayload":{"position":{"x":41077.617827008624,"y":28905.40173652971},"targetPosition":{"x":41161.48169175592,"y":29327.013855736088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"726cd3f8-cfce-4e06-8e13-f4b2523e6e57","savedPayload":{"position":{"x":41161.48169175592,"y":29327.013855736088},"targetPosition":{"x":41245.34555650322,"y":29748.625974942464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"d5bc03d5-baeb-4ab0-91a6-cc61d0122474","savedPayload":{"position":{"x":40819.5655464382,"y":29804.68097669031},"targetPosition":{"x":41245.34555650322,"y":29748.625974942464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 target.sessionReferences.push(templateClone)\n setup(templateClone, target)\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":41329.20942125052,"y":29327.013855736088},"targetPosition":{"x":41245.34555650322,"y":29748.625974942464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"caa968ef-9a38-4fb4-998f-cb7e27a3eedd","savedPayload":{"position":{"x":41245.34555650322,"y":29748.625974942464},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":41538.15110500089,"y":28919.398218334398},"targetPosition":{"x":41538.15110500089,"y":28705.54204056541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":41387.4342087151,"y":28856.2589368512},"targetPosition":{"x":41538.15110500089,"y":28705.54204056541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":41321.009289143905,"y":28705.54204056541},"targetPosition":{"x":41538.15110500089,"y":28705.54204056541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":41387.28338714923,"y":28554.674322713756},"targetPosition":{"x":41538.15110500089,"y":28705.54204056541},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"4844333d-4238-412b-b2f3-403d78d1aaa8","savedPayload":{"position":{"x":41538.15110500089,"y":28705.54204056541},"targetPosition":{"x":41524.09361837848,"y":28920.017840570614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"9bf71a35-9ee8-4679-89c7-e9894c3963cd","savedPayload":{"position":{"x":41524.09361837848,"y":28920.017840570614},"targetPosition":{"x":41495.97864513366,"y":29348.96944058102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"f7b51fbd-c90d-4b5a-9242-9de2a40f4733","savedPayload":{"position":{"x":41495.97864513366,"y":29348.96944058102},"targetPosition":{"x":41467.863671888845,"y":29777.921040591424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"b7adb316-4430-4933-80ef-c8e239a947fc","savedPayload":{"position":{"x":41042.087042222236,"y":29833.975597301378},"targetPosition":{"x":41467.863671888845,"y":29777.921040591424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 target.sessionReferences.push(templateClone)\n setup(templateClone, target)\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":41657.99119083732,"y":29392.380571366022},"targetPosition":{"x":41467.863671888845,"y":29777.921040591424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"ce8531c2-42df-4c54-b4ea-48d7ca9861e5","savedPayload":{"position":{"x":41467.863671888845,"y":29777.921040591424},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":42020.66210112073,"y":29059.208270556446},"targetPosition":{"x":42020.66210112073,"y":28846.162981852303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":41868.60760123041,"y":28998.217481742624},"targetPosition":{"x":42020.66210112073,"y":28846.162981852303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":41802.737471385946,"y":28846.162981852303},"targetPosition":{"x":42020.66210112073,"y":28846.162981852303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":41867.10928436206,"y":28692.610165093633},"targetPosition":{"x":42020.66210112073,"y":28846.162981852303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"f267f52b-25be-4822-90b7-88bf3121d009","savedPayload":{"position":{"x":42020.66210112073,"y":28846.162981852303},"targetPosition":{"x":41951.57318998449,"y":29049.692350927184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"a095996a-c30e-45e8-8598-7b6010b2095b","savedPayload":{"position":{"x":41951.57318998449,"y":29049.692350927184},"targetPosition":{"x":41813.395367712,"y":29456.751089076944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"9df1f12f-0030-4c41-98e2-d07482ff8d22","savedPayload":{"position":{"x":41813.395367712,"y":29456.751089076944},"targetPosition":{"x":41675.21754543951,"y":29863.809827226705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"b5554d40-5014-45ec-b996-e74e05c5e872","savedPayload":{"position":{"x":41248.552068592326,"y":29919.981402887955},"targetPosition":{"x":41675.21754543951,"y":29863.809827226705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 target.sessionReferences.push(templateClone)\n setup(templateClone, target)\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":41958.6518423734,"y":29540.61495382424},"targetPosition":{"x":41675.21754543951,"y":29863.809827226705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"3e9a2343-49bb-43d5-adda-0072b01313f1","savedPayload":{"position":{"x":41675.21754543951,"y":29863.809827226705},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Template Script","name":"Install Fordward 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":42450.336555996066,"y":29319.616558596437},"targetPosition":{"x":42450.336555996066,"y":29106.87541602559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":42296.47754640923,"y":29260.734425612423},"targetPosition":{"x":42450.336555996066,"y":29106.87541602559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":42233.0004060084,"y":29106.87541602559},"targetPosition":{"x":42450.336555996066,"y":29106.87541602559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":42296.996302885986,"y":28953.53516291551},"targetPosition":{"x":42450.336555996066,"y":29106.87541602559},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"a70a92df-4abe-421d-92b2-ef70a756441c","savedPayload":{"position":{"x":42450.336555996066,"y":29106.87541602559},"targetPosition":{"x":42330.9245154651,"y":29285.58816401588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"3a96fe18-f607-4a4e-9921-31b507475885","savedPayload":{"position":{"x":42330.9245154651,"y":29285.58816401588},"targetPosition":{"x":42092.10043440316,"y":29643.013659996464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"f6114149-90fb-45a7-a42a-6ab052a9980a","savedPayload":{"position":{"x":42092.10043440316,"y":29643.013659996464},"targetPosition":{"x":41853.27635334122,"y":30000.43915597705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"315b67c6-84cf-4370-a4fd-a8209c2532c9","savedPayload":{"position":{"x":41429.60586301525,"y":30056.21643418254},"targetPosition":{"x":41853.27635334122,"y":30000.43915597705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 target.sessionReferences.push(templateClone)\n setup(templateClone, target)\n templateClone.singleMarketData.payload.referenceParent = market\n\n templateClone.templateType = 'Fordward Testing Session'\n return templateClone\n }\n}","id":"8635fe81-b9b5-4a95-a6d0-950584c2787c","savedPayload":{"position":{"x":42210.701849321806,"y":29761.615074915113},"targetPosition":{"x":41853.27635334122,"y":30000.43915597705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"3bb7924d-49b4-4748-83f5-5067dd8f3ef5","savedPayload":{"position":{"x":41853.27635334122,"y":30000.43915597705},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"9904d0ca-1702-4121-b881-bde07e69c5c5","savedPayload":{"position":{"x":42947.52532825395,"y":28563.25438575989},"targetPosition":{"x":43578.77643890065,"y":28861.642654850388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"92020ee5-36d8-490e-8876-05b649a4899a","savedPayload":{"position":{"x":43137.65098740071,"y":28594.50128240567},"targetPosition":{"x":43578.77643890065,"y":28861.642654850388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"ea948ef4-722e-4f0d-b396-ecf1e1dbfcd6","savedPayload":{"position":{"x":43330.421222013414,"y":28499.437522931436},"targetPosition":{"x":43578.77643890065,"y":28861.642654850388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"e71f78e9-0e8f-4e8e-b288-7ed2df568fbd","savedPayload":{"position":{"x":43509.133970003706,"y":28618.8495634624},"targetPosition":{"x":43578.77643890065,"y":28861.642654850388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"d516764e-6226-4c5c-af98-1d69bb220407","savedPayload":{"position":{"x":43328.73475073856,"y":28602.93531435019},"targetPosition":{"x":43578.77643890065,"y":28861.642654850388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"128fcb52-8448-4753-b3f3-eaeec767bf11","savedPayload":{"position":{"x":43582.160555840404,"y":28860.403982081058},"targetPosition":{"x":43395.88962514443,"y":28967.94755406058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e57886bf-eb36-44a4-a127-5a0f748cddf9","savedPayload":{"position":{"x":43395.88962514443,"y":28967.94755406058},"targetPosition":{"x":43209.61869444846,"y":29075.491126040106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"3e56a680-2df7-42c3-833a-577faad73c78","savedPayload":{"position":{"x":43395.88962514443,"y":29183.03469801963},"targetPosition":{"x":43209.61869444846,"y":29075.491126040106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"dfbee4d4-8a74-44c9-9765-4f8828f68c01","savedPayload":{"position":{"x":43209.61869444846,"y":29075.491126040106},"targetPosition":{"x":42994.53155048941,"y":29075.491126040106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"c0ebddd5-f723-4835-bd6d-8d83f2be9523","savedPayload":{"position":{"x":42994.53155048941,"y":29075.491126040106},"targetPosition":{"x":42875.119509958444,"y":29254.203874030398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"2730f389-9da6-4aa8-81bd-1710aa8067ae","savedPayload":{"position":{"x":42875.119509958444,"y":29254.203874030398},"targetPosition":{"x":42636.295428896505,"y":29611.62937001098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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\": 0.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"68a0a7c2-5ae9-4e3b-aece-d084c5ca3f8c","savedPayload":{"position":{"x":43432.02500622186,"y":28892.014319294693},"targetPosition":{"x":43646.20044840925,"y":28873.948836133455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"ee41f7ae-ad58-4b39-9ed7-0a228483abc7","savedPayload":{"position":{"x":43498.54008091537,"y":28717.76337717653},"targetPosition":{"x":43646.20044840925,"y":28873.948836133455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2018-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2019-12-31T23:59:59.999Z\"\n}","id":"77250f44-0384-4b8c-bd36-df1bd7f8163d","savedPayload":{"position":{"x":43676.24642405435,"y":28661.123271255678},"targetPosition":{"x":43646.20044840925,"y":28873.948836133455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"233c48b6-0280-4dc9-a056-654a1074f216","savedPayload":{"position":{"x":43831.32753470635,"y":28764.745156538145},"targetPosition":{"x":43646.20044840925,"y":28873.948836133455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"f983fdde-961a-4622-bed9-34d9293a66d9","savedPayload":{"position":{"x":43847.004173472276,"y":28950.599639904984},"targetPosition":{"x":43646.20044840925,"y":28873.948836133455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"d41144f5-090e-4e2c-b2a9-58a55f4429c7","savedPayload":{"position":{"x":43711.47151161623,"y":29078.73450464041},"targetPosition":{"x":43646.20044840925,"y":28873.948836133455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"501b00ff-1206-43d9-9a8b-01c8009d9f7c","savedPayload":{"position":{"x":43795.32039351716,"y":29113.88191980196},"targetPosition":{"x":43611.241349019045,"y":29220.160005695117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"db99117f-d601-4e71-a4c3-8b9e7ce9fa4c","savedPayload":{"position":{"x":43611.241349019045,"y":29220.160005695117},"targetPosition":{"x":43427.16230452093,"y":29326.438091588276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"6f56d362-cf8b-4a77-9f0f-20e0f9ed3a0a","savedPayload":{"position":{"x":43611.241349019045,"y":29432.716177481434},"targetPosition":{"x":43427.16230452093,"y":29326.438091588276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"c0911d05-6777-4631-a1d0-8a4e5b03b591","savedPayload":{"position":{"x":43427.16230452093,"y":29326.438091588276},"targetPosition":{"x":43214.60613273461,"y":29326.438091588276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"cd81744a-3830-4f7a-b5f5-ad463342cb00","savedPayload":{"position":{"x":43214.60613273461,"y":29326.438091588276},"targetPosition":{"x":43021.835898121906,"y":29421.501851062512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1bbf8d5b-1310-4aa1-b97e-fb6c2c56c61e","savedPayload":{"position":{"x":43021.835898121906,"y":29421.501851062512},"targetPosition":{"x":42636.295428896505,"y":29611.62937001098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"d14c333f-8616-4e54-807e-99750f6082d6","savedPayload":{"position":{"x":42636.295428896505,"y":29611.62937001098},"targetPosition":{"x":42313.100555494035,"y":29895.06366694487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"d1632ba7-4823-4174-9caf-8979360c7399","savedPayload":{"position":{"x":42313.100555494035,"y":29895.06366694487},"targetPosition":{"x":41989.905682091565,"y":30178.497963878755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"cce4bcd5-fa0e-4dda-82a7-28cbf76432a4","savedPayload":{"position":{"x":41561.74486062159,"y":30234.86640539435},"targetPosition":{"x":41989.905682091565,"y":30178.497963878755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 target.taskManagers.push(templateClone)\n setup(templateClone, target)\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":42396.964420241326,"y":30040.320141606266},"targetPosition":{"x":41989.905682091565,"y":30178.497963878755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"414cdf9f-dc5b-4c23-ac5c-0e7a098b2143","savedPayload":{"position":{"x":41989.905682091565,"y":30178.497963878755},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"13814644-70d4-48bb-ab83-6eca9afa1505","savedPayload":{"position":{"x":43420.63691665188,"y":29073.601399888597},"targetPosition":{"x":43631.442976255064,"y":29031.66946751495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"2c4e0754-9b53-4520-97cd-6f2f4e6f1be5","savedPayload":{"position":{"x":43489.72582778812,"y":28870.072030813713},"targetPosition":{"x":43631.442976255064,"y":29031.66946751495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"5ca81018-5c1f-4f4f-ac76-3ca8a353f8d7","savedPayload":{"position":{"x":43700.531887391306,"y":28828.140098440068},"targetPosition":{"x":43631.442976255064,"y":29031.66946751495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"7752fa57-fc50-44c4-9039-bf8adb59b594","savedPayload":{"position":{"x":43842.24903585825,"y":28989.7375351413},"targetPosition":{"x":43631.442976255064,"y":29031.66946751495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"5a1a81c6-37bd-4cdc-9cf7-2a4610ede63f","savedPayload":{"position":{"x":43773.16012472201,"y":29193.266904216183},"targetPosition":{"x":43631.442976255064,"y":29031.66946751495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6e43df5f-8866-400e-89a2-aa421be07a46","savedPayload":{"position":{"x":43924.10200733492,"y":29363.59935389905},"targetPosition":{"x":43736.30786242444,"y":29472.022354015353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"47651cad-aee5-405e-9d40-b4787c49d09e","savedPayload":{"position":{"x":43736.30786242444,"y":29472.022354015353},"targetPosition":{"x":43548.51371751395,"y":29580.445354131654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","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":43914.877273188955,"y":29354.86434091741},"targetPosition":{"x":43704.07121358577,"y":29396.79627329106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"ac49275e-4fe1-480f-be02-37665547a777","savedPayload":{"position":{"x":43736.30786242444,"y":29688.868354247956},"targetPosition":{"x":43548.51371751395,"y":29580.445354131654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"57deee32-22b7-4eec-8c9a-9b971d1aeb1a","savedPayload":{"position":{"x":43548.51371751395,"y":29580.445354131654},"targetPosition":{"x":43331.66771728135,"y":29580.445354131654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"8910dee0-b699-4a35-85ee-a2b3bbdac18e","savedPayload":{"position":{"x":43331.66771728135,"y":29580.445354131654},"targetPosition":{"x":43170.07028058012,"y":29722.1625025986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"70fd8717-56d5-4ad8-b6ed-3050decedf19","savedPayload":{"position":{"x":43170.07028058012,"y":29722.1625025986},"targetPosition":{"x":42846.87540717765,"y":30005.596799532486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"20934090-980d-42d7-8f5a-ed8a42d18023","savedPayload":{"position":{"x":43809.76514991798,"y":29485.34586196776},"targetPosition":{"x":44013.29451899286,"y":29554.434773104003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"17f9ceac-c3a9-4a05-8bc3-3ccf91ad4c72","savedPayload":{"position":{"x":43971.36258661921,"y":29343.628713500817},"targetPosition":{"x":44013.29451899286,"y":29554.434773104003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"76a1028a-e120-4b8b-a8ba-e7ed1daf08d3","savedPayload":{"position":{"x":44174.89195569409,"y":29412.717624637058},"targetPosition":{"x":44013.29451899286,"y":29554.434773104003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"2433390c-f57d-4719-907c-91ca54666f49","savedPayload":{"position":{"x":44216.82388806774,"y":29623.52368424025},"targetPosition":{"x":44013.29451899286,"y":29554.434773104003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"71a1b270-9cf6-41b4-8962-98f2a3da2bc7","savedPayload":{"position":{"x":44055.22645136651,"y":29765.24083270719},"targetPosition":{"x":44013.29451899286,"y":29554.434773104003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"52e15fb1-6977-4c1f-b244-b4f40c01b6f3","savedPayload":{"position":{"x":44068.717663047195,"y":29664.056816605393},"targetPosition":{"x":43881.87771742028,"y":29771.928909508468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"e70a2d0f-329a-410e-b3ed-fbf1968cac32","savedPayload":{"position":{"x":43881.87771742028,"y":29771.928909508468},"targetPosition":{"x":43695.03777179336,"y":29879.801002411543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-hands buster - BTC - SDA v.0.0.3","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":44097.158383740156,"y":29976.046892310384},"targetPosition":{"x":43893.629014665275,"y":29906.95798117414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"a6c24af9-77fd-4179-bb83-22928acce259","savedPayload":{"position":{"x":43881.87771742028,"y":29987.673095314618},"targetPosition":{"x":43695.03777179336,"y":29879.801002411543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"6053e090-2c8e-4c1b-8eb4-eb3032f5cb9d","savedPayload":{"position":{"x":43695.03777179336,"y":29879.801002411543},"targetPosition":{"x":43479.29358598721,"y":29879.801002411543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"67b86977-56e8-4cb9-aa4f-0ae1b8d6d9f3","savedPayload":{"position":{"x":43479.29358598721,"y":29879.801002411543},"targetPosition":{"x":43268.48752638402,"y":29921.732934785192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"8b8401d2-fbd3-4514-9a24-6236941f8572","savedPayload":{"position":{"x":43268.48752638402,"y":29921.732934785192},"targetPosition":{"x":42846.87540717765,"y":30005.596799532486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"122a1f16-06c2-4e63-9c9b-0b1b6532ef6e","savedPayload":{"position":{"x":42846.87540717765,"y":30005.596799532486},"targetPosition":{"x":42461.33493795225,"y":30195.724318480956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"l"}}},"id":"7154ffab-e458-47a9-98ab-716d7db899c2","savedPayload":{"position":{"x":42461.33493795225,"y":30195.724318480956},"targetPosition":{"x":42075.79446872685,"y":30385.851837429425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"efbaa91d-f097-4fda-b373-8b9394dae215","savedPayload":{"position":{"x":41649.40100490827,"y":30441.987601896082},"targetPosition":{"x":42075.79446872685,"y":30385.851837429425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 target.taskManagers.push(templateClone)\n setup(templateClone, target)\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":"7504b088-dc0b-4a67-b673-150524eb3430","savedPayload":{"position":{"x":42504.74606873725,"y":30357.736864184608},"targetPosition":{"x":42075.79446872685,"y":30385.851837429425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"aaef47a3-030f-4bba-a297-72973f84a6a7","savedPayload":{"position":{"x":42075.79446872685,"y":30385.851837429425},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Charly","code":" {\n \"repo\": \"AACharly-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fa969ad9-f967-4c42-9a7b-e3ca5c53a2a4","savedPayload":{"position":{"x":43586.58172072834,"y":29830.05411609582},"targetPosition":{"x":43371.08111346281,"y":29830.05411609582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"7321618d-f188-4909-ae51-bff16e83e85c","savedPayload":{"position":{"x":43371.08111346281,"y":29830.05411609582},"targetPosition":{"x":43155.58050619728,"y":29830.05411609582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"66324e06-a787-4389-ba0a-f6158224532e","savedPayload":{"position":{"x":43155.58050619728,"y":29830.05411609582},"targetPosition":{"x":43086.49159506104,"y":30033.5834851707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"02b2b5ef-8fbb-4234-847b-9e9381e39e40","savedPayload":{"position":{"x":43086.49159506104,"y":30033.5834851707},"targetPosition":{"x":42948.31377278855,"y":30440.64222332046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Olivia","code":" {\n \"repo\": \"AAOlivia-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"65a2cdb9-af06-458b-ae81-52a922d32874","savedPayload":{"position":{"x":43131.10948826534,"y":30317.487372546537},"targetPosition":{"x":43282.107785578795,"y":30166.489075233083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"fe3e9758-12d8-46da-a7e9-968a340f0ae5","savedPayload":{"position":{"x":43282.107785578795,"y":30166.489075233083},"targetPosition":{"x":43433.10608289225,"y":30015.49077791963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5ba98b0e-e71d-4c91-a3b2-ca98f7bf3e1b","savedPayload":{"position":{"x":43001.69017011438,"y":30015.49077791963},"targetPosition":{"x":43217.398126503314,"y":30015.49077791963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"e3fe5518-65d4-4413-9d1f-624025766f97","savedPayload":{"position":{"x":43217.398126503314,"y":30015.49077791963},"targetPosition":{"x":43433.10608289225,"y":30015.49077791963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"80415df6-6aca-42d5-b91d-6d5d6326f72f","savedPayload":{"position":{"x":43433.10608289225,"y":30015.49077791963},"targetPosition":{"x":43271.50864619102,"y":30157.207926386574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"a2a8253d-ea54-431a-a623-627a9d80c96d","savedPayload":{"position":{"x":43271.50864619102,"y":30157.207926386574},"targetPosition":{"x":42948.31377278855,"y":30440.64222332046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Tom","code":" {\n \"repo\": \"AATom-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9b578904-5f8d-4011-ac4e-a0ad42f78a3d","savedPayload":{"position":{"x":43279.75627392052,"y":30615.822103877108},"targetPosition":{"x":43430.24411275931,"y":30465.334265038313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"2430f966-d667-43de-ad9e-1a0a748fc252","savedPayload":{"position":{"x":43430.24411275931,"y":30465.334265038313},"targetPosition":{"x":43580.73195159811,"y":30314.846426199518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ab1d35fe-8782-42de-8017-2fc10bc5342c","savedPayload":{"position":{"x":43146.22832577916,"y":30314.846426199518},"targetPosition":{"x":43363.48013868863,"y":30314.846426199518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"0d5c61fd-1073-4f08-b951-65a1d040e0f2","savedPayload":{"position":{"x":43363.48013868863,"y":30314.846426199518},"targetPosition":{"x":43580.73195159811,"y":30314.846426199518},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"9be6d863-a4df-4b43-ba48-96f5a8b252a9","savedPayload":{"position":{"x":43580.73195159811,"y":30314.846426199518},"targetPosition":{"x":43369.92589199492,"y":30356.778358573167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1efe1e8c-fec4-406e-8b8a-51feabd90934","savedPayload":{"position":{"x":43369.92589199492,"y":30356.778358573167},"targetPosition":{"x":42948.31377278855,"y":30440.64222332046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Chris","code":" {\n \"repo\": \"AAChris-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"936109e1-9d5f-4738-9eee-26e98c6675a9","savedPayload":{"position":{"x":43255.090767312286,"y":30951.7200694301},"targetPosition":{"x":43406.99632366274,"y":30799.814513079647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"69c2cfe4-3a79-45d0-8742-ff3f368431f6","savedPayload":{"position":{"x":43406.99632366274,"y":30799.814513079647},"targetPosition":{"x":43558.90188001319,"y":30647.908956729196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"75d8a16d-5ff3-4771-b32a-bf5ea071e7fc","savedPayload":{"position":{"x":43129.19127349289,"y":30647.908956729196},"targetPosition":{"x":43344.04657675304,"y":30647.908956729196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c437054a-3447-486b-ab42-b267b800f96a","savedPayload":{"position":{"x":43344.04657675304,"y":30647.908956729196},"targetPosition":{"x":43558.90188001319,"y":30647.908956729196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"9604d5b6-af02-4ac3-91aa-fa82dcd316bf","savedPayload":{"position":{"x":43558.90188001319,"y":30647.908956729196},"targetPosition":{"x":43355.37251093831,"y":30578.82004559295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ed9d924d-7a8b-46da-a4e9-eb121329fe49","savedPayload":{"position":{"x":43355.37251093831,"y":30578.82004559295},"targetPosition":{"x":42948.31377278855,"y":30440.64222332046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Paula","code":" {\n \"repo\": \"AAPaula-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6e4bd29a-ffe6-4bbd-a114-62a0efe82a12","savedPayload":{"position":{"x":43069.53954095851,"y":31229.360210655035},"targetPosition":{"x":43221.50237957395,"y":31077.3973720396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"b3c5ca8e-cc9d-4662-96cb-82d7c5801f67","savedPayload":{"position":{"x":43221.50237957395,"y":31077.3973720396},"targetPosition":{"x":43373.46521818938,"y":30925.434533424163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d6995a0d-dffd-4213-b159-1919fa35f1b8","savedPayload":{"position":{"x":42943.15963823166,"y":30925.434533424163},"targetPosition":{"x":43158.31242821052,"y":30925.434533424163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"d640b042-3b50-4f02-961a-9f4e9aab1015","savedPayload":{"position":{"x":43158.31242821052,"y":30925.434533424163},"targetPosition":{"x":43373.46521818938,"y":30925.434533424163},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"88c5bffa-e658-4a99-89b3-b3b03d40d2e6","savedPayload":{"position":{"x":43373.46521818938,"y":30925.434533424163},"targetPosition":{"x":43231.74806972244,"y":30763.837096722928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"10972cbd-be85-4344-bf34-8aab4dc3a23b","savedPayload":{"position":{"x":43231.74806972244,"y":30763.837096722928},"targetPosition":{"x":42948.31377278855,"y":30440.64222332046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"8e0023df-5beb-4187-a53b-908c363861f9","savedPayload":{"position":{"x":42948.31377278855,"y":30440.64222332046},"targetPosition":{"x":42526.701653582175,"y":30524.506088067756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"j"}}},"id":"930ad389-2e02-405d-a608-628df967e702","savedPayload":{"position":{"x":42526.701653582175,"y":30524.506088067756},"targetPosition":{"x":42105.0895343758,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"216101a4-697c-41c6-989c-a5f8f181c624","savedPayload":{"position":{"x":41680.49637114778,"y":30664.26870321255},"targetPosition":{"x":42105.0895343758,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 target.taskManagers.push(templateClone)\n setup(templateClone, target)\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":42526.701653582175,"y":30692.233817562344},"targetPosition":{"x":42105.0895343758,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"ddd80520-a052-464b-a7b8-23b72387086f","savedPayload":{"position":{"x":42105.0895343758,"y":30608.36995281505},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"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":43041.85494250644,"y":30695.520763012515},"targetPosition":{"x":43193.93399231567,"y":30543.441713203283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"4829d508-b32b-402c-8d27-4493549196b5","savedPayload":{"position":{"x":43193.93399231567,"y":30543.441713203283},"targetPosition":{"x":43346.013042124905,"y":30391.362663394048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"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":42921.55935688707,"y":30391.362663394048},"targetPosition":{"x":43133.78619950599,"y":30391.362663394048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"5f34959e-a63c-4298-8323-a16f75e23431","savedPayload":{"position":{"x":43133.78619950599,"y":30391.362663394048},"targetPosition":{"x":43346.013042124905,"y":30391.362663394048},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"6db29c31-152b-472a-852e-0e4a36bec524","savedPayload":{"position":{"x":43346.013042124905,"y":30391.362663394048},"targetPosition":{"x":43208.57458433249,"y":30556.614447159467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"20c34f88-6b58-474b-b69d-02712765c0db","savedPayload":{"position":{"x":43208.57458433249,"y":30556.614447159467},"targetPosition":{"x":42933.697668747656,"y":30887.11801469031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"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":43255.8568622852,"y":31031.20504100764},"targetPosition":{"x":43407.26117968706,"y":30879.800723605782},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"31761ef4-c98b-4657-a37f-652eff5340ea","savedPayload":{"position":{"x":43407.26117968706,"y":30879.800723605782},"targetPosition":{"x":43558.66549708892,"y":30728.396406203923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"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":43131.402550357016,"y":30728.396406203923},"targetPosition":{"x":43345.03402372297,"y":30728.396406203923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c4d61b48-9c23-47f1-937b-1729767a26f6","savedPayload":{"position":{"x":43345.03402372297,"y":30728.396406203923},"targetPosition":{"x":43558.66549708892,"y":30728.396406203923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"34656b7b-826e-4ebd-943a-407d8c91ea24","savedPayload":{"position":{"x":43558.66549708892,"y":30728.396406203923},"targetPosition":{"x":43350.34288764183,"y":30781.30360903272},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"28be18c7-c387-435e-ae7d-dfeca201bce5","savedPayload":{"position":{"x":43350.34288764183,"y":30781.30360903272},"targetPosition":{"x":42933.697668747656,"y":30887.11801469031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"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":43229.10605724051,"y":31429.551834967817},"targetPosition":{"x":43380.85377037115,"y":31277.80412183718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"9cc4175f-28ad-4307-a8d6-0df303a02be1","savedPayload":{"position":{"x":43380.85377037115,"y":31277.80412183718},"targetPosition":{"x":43532.601483501785,"y":31126.056408706543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"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":43097.61622274041,"y":31126.056408706543},"targetPosition":{"x":43315.1088531211,"y":31126.056408706543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"a585a9e1-e18d-40b6-b364-75f01e840a4b","savedPayload":{"position":{"x":43315.1088531211,"y":31126.056408706543},"targetPosition":{"x":43532.601483501785,"y":31126.056408706543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"525c3ef8-145e-4919-bf2d-983db99a5cdb","savedPayload":{"position":{"x":43532.601483501785,"y":31126.056408706543},"targetPosition":{"x":43332.96687858374,"y":31046.4102773678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"b652ba10-fb7a-4a93-bd24-9500bb7d25ec","savedPayload":{"position":{"x":43332.96687858374,"y":31046.4102773678},"targetPosition":{"x":42933.697668747656,"y":30887.11801469031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"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":42975.92066918423,"y":31734.30596539859},"targetPosition":{"x":43126.84861892738,"y":31583.378015655435},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"16a0815f-b793-4ca8-aa09-78f9f447f110","savedPayload":{"position":{"x":43126.84861892738,"y":31583.378015655435},"targetPosition":{"x":43277.77656867054,"y":31432.45006591228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"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":42843.77365063787,"y":31432.45006591228},"targetPosition":{"x":43060.775109654205,"y":31432.45006591228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"123f248b-aa95-4d1c-a6c2-9fc70fc2b816","savedPayload":{"position":{"x":43060.775109654205,"y":31432.45006591228},"targetPosition":{"x":43277.77656867054,"y":31432.45006591228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"007d0fe3-9637-4a4f-8078-730af1716e1b","savedPayload":{"position":{"x":43277.77656867054,"y":31432.45006591228},"targetPosition":{"x":43163.083602029576,"y":31250.672715504956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"da1cddfc-5d56-46e7-b14a-0b21127cf6e3","savedPayload":{"position":{"x":43163.083602029576,"y":31250.672715504956},"targetPosition":{"x":42933.697668747656,"y":30887.11801469031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"6907a34a-7247-4717-8be3-154ebc2cacfc","savedPayload":{"position":{"x":42933.697668747656,"y":30887.11801469031},"targetPosition":{"x":42504.74606873725,"y":30859.003041445492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"j"}}},"id":"ac392204-2e14-4744-a636-063c2bf461ae","savedPayload":{"position":{"x":42504.74606873725,"y":30859.003041445492},"targetPosition":{"x":42075.79446872685,"y":30830.888068200675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"4d93f230-422c-4a10-8e6d-50381aa60aba","savedPayload":{"position":{"x":41650.877148285734,"y":30886.829494704893},"targetPosition":{"x":42075.79446872685,"y":30830.888068200675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 target.taskManagers.push(templateClone)\n setup(templateClone, target)\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":42461.33493795225,"y":31021.015587149144},"targetPosition":{"x":42075.79446872685,"y":30830.888068200675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"83556c43-8483-48e3-be7e-36f9dbb70f08","savedPayload":{"position":{"x":42075.79446872685,"y":30830.888068200675},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Template Script","name":"Install Time Machine","templateStructure":{"type":"Template Structure","name":"New Template Structure","timeMachines":{"type":"Time Machine","name":"Exchange Name","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-03-11T00:00:00.000Z\",\n \"toDate\": \"2020-02-26T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"17803b12-5233-433e-a4cb-116540a664ec","savedPayload":{"position":{"x":43458.34424520423,"y":31101.134600633337},"targetPosition":{"x":43211.08189654085,"y":31452.77540856881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0,\n \"maxValue\": 13969,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"80c9c6d4-a778-443e-9117-858b16c35f4f","savedPayload":{"position":{"x":43547.39704663223,"y":31185.040377818154},"targetPosition":{"x":43211.08189654085,"y":31452.77540856881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"84ceb28c-8051-4bf6-ac83-813610c0a019","savedPayload":{"position":{"x":43609.203594743034,"y":31290.63645491285},"targetPosition":{"x":43211.08189654085,"y":31452.77540856881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"78a3073b-2dc1-4e42-8f8c-eb9ea3158ee1","savedPayload":{"position":{"x":43886.97514177673,"y":31175.496006429035},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"92da5a14-4b22-4d5b-af51-82d005b24d71"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"f7811329-11a3-4458-9c01-9ac8d524a91b","savedPayload":{"position":{"x":43940.716855326915,"y":31191.623940544236},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"e06f774c-612d-402b-9aee-3cb9ef1b7981"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cb8cd3cc-d656-4ebc-80c5-e400b513d67b","savedPayload":{"position":{"x":43988.453147886896,"y":31221.111707614025},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"c65d2cd5-e939-4c47-96e2-0ab1feab25af"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8249f8f3-2ff3-44e3-9f06-259fbb54a27a","savedPayload":{"position":{"x":44026.93087000666,"y":31261.949765043442},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"6f493518-ef10-4085-b39d-eba102aa3673"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"521b64ee-aecd-4000-b59a-7a2c53f77f17","savedPayload":{"position":{"x":44053.52782851119,"y":31311.35506670675},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"8d2c0ef3-ef88-427d-87ac-f5b97a222619"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"cbe342cd-c4ef-43bb-9d1f-851e703ed221","savedPayload":{"position":{"x":44066.43148463196,"y":31365.960722941716},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"a3aadea9-6d33-4849-9e47-27a99cece79d"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2fe88a83-3e5a-4de5-b075-e686c790efa5","savedPayload":{"position":{"x":44064.76247552864,"y":31422.045448516037},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"02f2a6b1-7b09-4cda-bb63-3154c982d919"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c75e7ba6-c5db-473f-af60-67e73dcffd08","savedPayload":{"position":{"x":44048.63454141344,"y":31475.787162066223},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"c1f37817-0fd4-467f-99fc-d6239876fa10"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bfe546ba-4a8a-412a-aa51-8a3c7c7e5fd7","savedPayload":{"position":{"x":44019.146774343644,"y":31523.5234546262},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"cac2a4a1-e5eb-4871-ba16-2b4dbd716d71"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"03e74648-5dca-40de-8a8e-031f848f7614","savedPayload":{"position":{"x":43978.30871691423,"y":31562.00117674597},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"d85707cd-1d3b-4028-a9be-593cb93e4424"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"400f1cc1-adab-470f-a267-eb9aff06f607","savedPayload":{"position":{"x":43928.90341525093,"y":31588.5981352505},"targetPosition":{"x":43852.594087609184,"y":31387.66439434849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"9f8f8f4d-884c-42a0-afd9-4e0c9e744a4a"}}}],"id":"85c1edee-5d32-4d0c-b247-0dffa5a828d9","savedPayload":{"position":{"x":43852.594087609184,"y":31387.66439434849},"targetPosition":{"x":43638.75669058641,"y":31409.36806575526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"f74ef697-ea15-4fd0-912b-185719b401aa","savedPayload":{"position":{"x":43638.75669058641,"y":31409.36806575526},"targetPosition":{"x":43211.08189654085,"y":31452.77540856881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0,\n \"maxValue\": 8904.021263774992,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"e8af5bc6-6f95-4d4d-b7ba-d9c9dfcbcf41","savedPayload":{"position":{"x":42626.076817724665,"y":31700.941525650105},"targetPosition":{"x":42805.08640520389,"y":31584.691340285943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ad6ab014-ff11-49a5-88f9-83d78a10d409","savedPayload":{"position":{"x":44038.840044008095,"y":31663.79984006282},"targetPosition":{"x":43827.549933230446,"y":31624.379403667714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"3e5c01a9-28f9-46ce-a292-f9899c640886"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"44d0031b-045a-4689-9904-66f438e59704","savedPayload":{"position":{"x":43990.82231853477,"y":31764.16355840297},"targetPosition":{"x":43827.549933230446,"y":31624.379403667714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"804c3734-dfff-4d4c-b47a-b3138a701b1a"}}}],"id":"04d849b4-359a-4d0e-93e6-f7782fae3015","savedPayload":{"position":{"x":42591.93446224383,"y":31595.862160266344},"targetPosition":{"x":42805.08640520389,"y":31584.691340285943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"05a4c8f4-4113-4ca7-8cb9-08d47ea30b95","savedPayload":{"position":{"x":42805.08640520389,"y":31584.691340285943},"targetPosition":{"x":43211.08189654085,"y":31452.77540856881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": -106.52683796603947,\n \"maxValue\": 704.0610457505236,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"d0b66513-4348-481a-96b9-5a458c1799c5","savedPayload":{"position":{"x":43804.624765911336,"y":31691.914768803133},"targetPosition":{"x":43594.332609236815,"y":31647.477278334045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d6cb0ca0-66a9-40bb-ae7c-e560e211090c","savedPayload":{"position":{"x":43945.857570247004,"y":31888.45828718058},"targetPosition":{"x":43754.23221389902,"y":31791.107352297964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"cb98bb5c-771d-4790-a423-8e1bf386d0f6"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"662dfd84-ea7f-49b2-b383-981a2fc76bbb","savedPayload":{"position":{"x":43871.50917306431,"y":31971.228413162466},"targetPosition":{"x":43754.23221389902,"y":31791.107352297964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"3eaf3ae7-4017-4976-9d51-25789e825684"}}}],"id":"a46cad26-33b2-4465-a9ff-ca62bd7990c9","savedPayload":{"position":{"x":43754.23221389902,"y":31791.107352297964},"targetPosition":{"x":43594.332609236815,"y":31647.477278334045},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"d4d04e92-2053-443d-b371-77b5053ae9f6","savedPayload":{"position":{"x":43594.332609236815,"y":31647.477278334045},"targetPosition":{"x":43211.08189654085,"y":31452.77540856881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"32ed1aaf-ce90-4a16-97fc-dca01c9e4590","savedPayload":{"position":{"x":43886.69215218092,"y":31955.268339190716},"targetPosition":{"x":43680.39066210149,"y":31894.95932735153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"b215e796-0c49-4a17-b5bc-122b5a0edc35"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"f367a192-4aa2-4b3e-a720-a250ea27163c","savedPayload":{"position":{"x":43857.95852899066,"y":32016.067272451928},"targetPosition":{"x":43680.39066210149,"y":31894.95932735153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"d12bba1c-e344-4969-9a7a-4d9a4251c03b"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"648644f7-944d-478c-93f0-26e377e883dc","savedPayload":{"position":{"x":43811.843325801216,"y":32065.01131623804},"targetPosition":{"x":43680.39066210149,"y":31894.95932735153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"75f161cd-8bde-44fa-8823-4a5508e3e2ba"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"27fe6aaf-afdb-45a9-8298-90828bda4139","savedPayload":{"position":{"x":43752.86062000428,"y":32097.309486530066},"targetPosition":{"x":43680.39066210149,"y":31894.95932735153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"acc355a3-05b0-4829-8ea2-117aeac531f9"}}}],"id":"2035991e-18d9-48ec-800f-aaeca9f26314","savedPayload":{"position":{"x":43680.39066210149,"y":31894.95932735153},"targetPosition":{"x":43523.95440691461,"y":31747.56468775729},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ac391c92-b7f6-4b36-b386-32164fcc0e70","savedPayload":{"position":{"x":43523.95440691461,"y":31747.56468775729},"targetPosition":{"x":43211.08189654085,"y":31452.77540856881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"05184109-c34b-454c-968e-bca7129c8bd7","savedPayload":{"position":{"x":43717.75657159054,"y":32125.255249541256},"targetPosition":{"x":43536.80275351916,"y":32009.26733015565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5b1edea6-5cd7-4a65-bc7d-73c105cd5724"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"4f3ad3c6-3fda-4bb1-93c6-b814e54728e4","savedPayload":{"position":{"x":43673.05782311209,"y":32175.496201679936},"targetPosition":{"x":43536.80275351916,"y":32009.26733015565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"d939ae77-56f0-4fc8-9ab6-359abad0e0a9"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"aa6a28f5-1b82-4fc0-b34a-43a544eb9c04","savedPayload":{"position":{"x":43615.02147907699,"y":32209.465513689167},"targetPosition":{"x":43536.80275351916,"y":32009.26733015565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e2b71867-d5d1-47d3-bb4a-73e22007631a"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"db2f4e73-0629-41dc-a211-54811b130637","savedPayload":{"position":{"x":43549.32854120238,"y":32223.838032631375},"targetPosition":{"x":43536.80275351916,"y":32009.26733015565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"470d4049-e0f1-4175-9aed-6818058ac2fd"}}}],"id":"3fd83190-6a75-421d-9cd9-1af3d01d6812","savedPayload":{"position":{"x":43536.80275351916,"y":32009.26733015565},"targetPosition":{"x":43428.22913452639,"y":31823.770022960038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"e4620cab-c8a8-4692-8a87-702c8578b849","savedPayload":{"position":{"x":43428.22913452639,"y":31823.770022960038},"targetPosition":{"x":43211.08189654085,"y":31452.77540856881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b989cc14-edcd-480e-9d2c-c63861eff297","savedPayload":{"position":{"x":43507.77322213795,"y":32240.761842567816},"targetPosition":{"x":43366.82687824097,"y":32078.491667057693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c162e824-5107-4f0e-b44b-f55212eff426"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"0b6eb614-264a-4131-b106-7ae08c3b6d44","savedPayload":{"position":{"x":43450.730575139336,"y":32276.374590436135},"targetPosition":{"x":43366.82687824097,"y":32078.491667057693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0d33e322-d317-46b3-8e50-222239df34a2"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"5864a5d2-a880-4c19-826e-186d4e15cc1b","savedPayload":{"position":{"x":43385.47484969688,"y":32292.617179032775},"targetPosition":{"x":43366.82687824097,"y":32078.491667057693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e3fb3a6b-021f-49bd-8c47-985ea8417155"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"b7710b76-e985-4144-81ef-b5414467a7fb","savedPayload":{"position":{"x":43318.39373088026,"y":32287.899670617124},"targetPosition":{"x":43366.82687824097,"y":32078.491667057693},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"3b46528a-54c0-4bac-b544-fb8f6ffae71a"}}}],"id":"fc4e03ab-9f31-4314-bea8-2afbe8d8989d","savedPayload":{"position":{"x":43366.82687824097,"y":32078.491667057693},"targetPosition":{"x":43314.91188434093,"y":31869.919580894733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"be8eab06-6de6-40b7-a267-7c0299f6e7ed","savedPayload":{"position":{"x":43314.91188434093,"y":31869.919580894733},"targetPosition":{"x":43211.08189654085,"y":31452.77540856881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"04-hs\"}","id":"008574fa-4127-4179-a3f0-0ca2b5a0d6b6","savedPayload":{"position":{"x":43240.119701919815,"y":32092.023073603737},"targetPosition":{"x":43193.18294604462,"y":31882.2745988395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": \"up\"\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"29625811-1f96-4aca-9f55-949a4f17f94a","savedPayload":{"position":{"x":43164.85217530689,"y":32299.307986098927},"targetPosition":{"x":43128.957131621646,"y":32087.390484327967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"6946f3ca-7f42-4ddb-a08c-2347081719a6"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"b7e495a1-bab6-4063-9422-8f299f2a1371","savedPayload":{"position":{"x":43097.609237368495,"y":32300.0281838168},"targetPosition":{"x":43128.957131621646,"y":32087.390484327967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"2b67f1aa-5970-4031-b0bc-66e02c825dc6"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"0db10219-d82f-450d-9356-ca97ac5b8750","savedPayload":{"position":{"x":43033.43484973321,"y":32279.93392197474},"targetPosition":{"x":43128.957131621646,"y":32087.390484327967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"18b095b3-815c-4a68-a9ae-2be99c48b969"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"1bdc41ea-1945-42dc-a000-eadcd672427a","savedPayload":{"position":{"x":42978.61084859204,"y":32240.9921669268},"targetPosition":{"x":43128.957131621646,"y":32087.390484327967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"e798a55c-ee25-4271-b4be-b2efd61fbef3"}}}],"id":"0fe1a0bb-eb64-4391-96b5-54b822751480","savedPayload":{"position":{"x":43128.957131621646,"y":32087.390484327967},"targetPosition":{"x":43193.18294604462,"y":31882.2745988395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"bc992fc5-5902-4338-bf55-9e9d5fc7216b","savedPayload":{"position":{"x":43193.18294604462,"y":31882.2745988395},"targetPosition":{"x":43211.08189654085,"y":31452.77540856881},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"7877838c-4825-44f7-8b98-0d48684f082c","savedPayload":{"position":{"x":43211.08189654085,"y":31452.77540856881},"targetPosition":{"x":42804.023158391086,"y":31314.59758629632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"e6469c64-26cb-4a30-951d-a68147cf1ba5","savedPayload":{"position":{"x":42804.023158391086,"y":31314.59758629632},"targetPosition":{"x":41989.905682091565,"y":31038.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"c01a6962-8b0e-4b06-8705-8751660aabbf","savedPayload":{"position":{"x":41565.72783955222,"y":31094.086014142882},"targetPosition":{"x":41989.905682091565,"y":31038.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":42313.100555494035,"y":31321.67623868523},"targetPosition":{"x":41989.905682091565,"y":31038.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"41c01e94-6c5c-4b71-9c70-8d962c86fec0","savedPayload":{"position":{"x":41989.905682091565,"y":31038.241941751345},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"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 have a child Exchange Accounts.')\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 singleMarketData\n let backSessionReference\n let paperSessionReference\n let liveSessionReference\n let fordwardSessionReference\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.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 'Fordward Testing Session': {\n fordwardSessionReference = 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 'Dashboard': {\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('Fordward Testing Session', productionEnvironmentTaskManager)\n fordwardSessionReference.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, 'Bollinger Channels Objects')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 3: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Sub-Channels Objects')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 4: {\n let dataProduct = findDataProduct(singleMarketData, 'Candle-Stairs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 5: {\n let dataProduct = findDataProduct(singleMarketData, 'Popular SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 6: {\n let dataProduct = findDataProduct(singleMarketData, 'Base7 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 7: {\n let dataProduct = findDataProduct(singleMarketData, 'Base11 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 8: {\n let dataProduct = findDataProduct(singleMarketData, 'Popular EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 9: {\n let dataProduct = findDataProduct(singleMarketData, 'Base7 EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 10: {\n let dataProduct = findDataProduct(singleMarketData, 'Base11 EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\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 }\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 }\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 'Fordward Trading': {\n setupSessionReference(timelineChart, fordwardSessionReference)\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 }\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 + ' ' + exchangeAndMarket\n }\n\n testingEnvironmentTaskManager.name = testingEnvironmentTaskManager.name + ' ' + exchangeAndMarket\n productionEnvironmentTaskManager.name = productionEnvironmentTaskManager.name + ' ' + exchangeAndMarket\n return true\n }\n}\n/*\nEnd Manster Script\n*/","id":"d234c201-4b50-48c6-be9d-f3b141c8cc16","savedPayload":{"position":{"x":41549.31095492222,"y":30912.33535123405},"targetPosition":{"x":41245.34555650322,"y":30608.36995281505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"95b24e48-3b10-47cb-b149-8667571f4a83","savedPayload":{"position":{"x":41245.34555650322,"y":30608.36995281505},"targetPosition":{"x":40500.785430914875,"y":31038.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"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":41389.78563844188,"y":31287.85895353978},"targetPosition":{"x":41586.38593482346,"y":31206.424444411958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 k = 0; k < target.taskManagers.length; k++) {\n let taskManager = target.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 for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"9d020e32-68e5-4123-b0ad-cb443d778905","savedPayload":{"position":{"x":41784.96090091254,"y":31124.17200031008},"targetPosition":{"x":41586.38593482346,"y":31206.424444411958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"12eb790b-7f24-48bf-a4f0-34159f3d1863","savedPayload":{"position":{"x":41586.38593482346,"y":31206.424444411958},"targetPosition":{"x":41245.34555650322,"y":31468.113930687636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":41458.77218080637,"y":31440.442271787455},"targetPosition":{"x":41660.57001261503,"y":31356.854872994823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 k = 0; k < target.taskManagers.length; k++) {\n let taskManager = target.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 for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"9f9515a8-2e47-4a6f-acc3-6e4e01a610b2","savedPayload":{"position":{"x":41875.50600708318,"y":31356.854872994823},"targetPosition":{"x":41660.57001261503,"y":31356.854872994823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"29b330a4-d4f6-45ac-8b41-090740dc418f","savedPayload":{"position":{"x":41660.57001261503,"y":31356.854872994823},"targetPosition":{"x":41245.34555650322,"y":31468.113930687636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":41472.70295166897,"y":31606.58445807857},"targetPosition":{"x":41671.539930982646,"y":31524.22348454555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 k = 0; k < target.taskManagers.length; k++) {\n let taskManager = target.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 for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"2d8e00e3-836a-426d-9f78-db3262bd7454","savedPayload":{"position":{"x":41870.114897071726,"y":31606.475928647425},"targetPosition":{"x":41671.539930982646,"y":31524.22348454555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"e8e96f57-041e-4c0d-a2bf-5a8e444636b1","savedPayload":{"position":{"x":41671.539930982646,"y":31524.22348454555},"targetPosition":{"x":41245.34555650322,"y":31468.113930687636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":41416.312139693866,"y":31766.436698696085},"targetPosition":{"x":41617.625619297396,"y":31683.04992515578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 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 for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"cf8f6b69-70f8-4035-801d-276c1e2d6b5d","savedPayload":{"position":{"x":41769.6083185069,"y":31835.03262436528},"targetPosition":{"x":41617.625619297396,"y":31683.04992515578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"c78e76fc-311b-4ac7-942f-af9629ea8b76","savedPayload":{"position":{"x":41617.625619297396,"y":31683.04992515578},"targetPosition":{"x":41245.34555650322,"y":31468.113930687636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":41310.976247033104,"y":31890.364521228326},"targetPosition":{"x":41507.0350427789,"y":31809.15430900788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 i = 0; i < target.singleMarketData.length; i++) {\n let singleMarketData = target.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 for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"168466d3-1446-4b45-a647-ad962d1d5f2c","savedPayload":{"position":{"x":41589.28748688078,"y":32007.72927509696},"targetPosition":{"x":41507.0350427789,"y":31809.15430900788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"f23edd8e-b0f9-4531-9550-69cdb0616bcc","savedPayload":{"position":{"x":41507.0350427789,"y":31809.15430900788},"targetPosition":{"x":41245.34555650322,"y":31468.113930687636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Template Script","name":"Delete Session References","templateTarget":{"type":"Template Target","name":"New Template Target","id":"4fe33613-3b67-4e0f-a4b4-6caa4e6dd163","savedPayload":{"position":{"x":41156.24089579564,"y":31966.331756368392},"targetPosition":{"x":41356.60461419603,"y":31883.33838679945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 i = 0; i < target.sessionReferences.length; i++) {\n let sessionReference = target.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 for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"f2cc52fd-cea8-437f-aa7d-a4d1100bb92e","savedPayload":{"position":{"x":41356.60461419603,"y":32098.274381267594},"targetPosition":{"x":41356.60461419603,"y":31883.33838679945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"f8ffadd5-8eda-4c4e-be1c-c49b98045b42","savedPayload":{"position":{"x":41356.60461419603,"y":31883.33838679945},"targetPosition":{"x":41245.34555650322,"y":31468.113930687636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"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 (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\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":41189.2360026453,"y":31894.308305167062},"targetPosition":{"x":41245.34555650322,"y":31468.113930687636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"c25d0331-8ac0-4834-aa77-743487455d45","savedPayload":{"position":{"x":41245.34555650322,"y":31468.113930687636},"targetPosition":{"x":40500.785430914875,"y":31038.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"1dd2a75d-7d97-4994-8c95-b392d933b1c1","savedPayload":{"position":{"x":40500.785430914875,"y":31038.241941751345},"targetPosition":{"x":39641.041459281856,"y":31038.13836154292},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"17b5ea06-62d8-4a79-b0ba-f9d3b997c17f","savedPayload":{"position":{"x":39641.041459281856,"y":31038.13836154292},"targetPosition":{"x":39641.041459281856,"y":31038.13836154292},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"z"}}},{"type":"Task","name":"Paper BRR","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 BRR","code":"{\n\"folderName\": \"Paper-BRR\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"be2e08e5-f3dc-457f-97c1-931feda5b5b8","savedPayload":{"position":{"x":27510.832093498415,"y":33403.73451771177},"targetPosition":{"x":27942.62754809453,"y":33573.201745602404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"ece1e81f-6b55-4696-b0fb-27136f930db3"}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"f732b2cc-7b60-4965-9b5b-06b5aa0471c2","savedPayload":{"position":{"x":27796.359812031045,"y":33137.60582571987},"targetPosition":{"x":27931.931036467882,"y":33577.116940589636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"977da1ed-2bdd-49c3-9a03-51f8c5cd26e9"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"4b96bb2f-cbf8-4d93-8447-daa02e92c7d8","savedPayload":{"position":{"x":28191.027387105823,"y":33197.09239128332},"targetPosition":{"x":27931.931036467882,"y":33577.116940589636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"921cf123-8f82-4cab-9269-0650982542c7","savedPayload":{"position":{"x":28405.190884482476,"y":33538.53741568747},"targetPosition":{"x":27942.62754809453,"y":33573.201745602404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"dd5cd787-bea2-4ad1-8968-e19795a4be3f","savedPayload":{"position":{"x":28258.132735492323,"y":33913.23546843572},"targetPosition":{"x":27942.62754809453,"y":33573.201745602404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"065ce7af-4ca0-4035-9b55-93224aceb7f3","savedPayload":{"position":{"x":27873.49274525869,"y":34031.88119246661},"targetPosition":{"x":27942.62754809453,"y":33573.201745602404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d3039293-9139-4cc9-a641-7aea66c4c005","savedPayload":{"position":{"x":27931.931036467882,"y":33577.116940589636},"targetPosition":{"x":27533.606818346478,"y":33807.08953514678},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3838f62b-65b8-4a43-b293-0f4895200e34","savedPayload":{"position":{"x":27533.606818346478,"y":33807.08953514678},"targetPosition":{"x":27135.282600225073,"y":34037.06212970392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Bull run rider - USDT- SDA v.0.0.3","id":"56432995-eb04-4929-850f-6530233a3be3"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e022542c-6b0e-44d8-b947-11728aadef51","savedPayload":{"position":{"x":27533.606818346478,"y":34267.03472426106},"targetPosition":{"x":27135.282600225073,"y":34037.06212970392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"bcaae6ca-374b-40dd-abbd-8dfc8d9630b2","savedPayload":{"position":{"x":27135.282600225073,"y":34037.06212970392},"targetPosition":{"x":26675.33741111079,"y":34037.06212970392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"52e84af4-450d-4e06-89c6-54c2f62637a6","savedPayload":{"position":{"x":26675.33741111079,"y":34037.06212970392},"targetPosition":{"x":26211.47702700928,"y":34037.06212970392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"ab7c62d7-b942-4c1e-b902-c5965928b5d8","savedPayload":{"position":{"x":26211.47702700928,"y":34037.06212970392},"targetPosition":{"x":26211.47702700928,"y":34037.06212970392},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Task","name":"Back BRR","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 BRR","code":"{\n\"folderName\": \"Back-BRR\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{\n\"initialBalance\": 0.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"d12aef85-df19-4847-a39d-04228d66ca19","savedPayload":{"position":{"x":27887.25619928987,"y":32925.22749231302},"targetPosition":{"x":28445.066617594508,"y":33144.151948956554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"ece1e81f-6b55-4696-b0fb-27136f930db3"}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"16fda8cc-1857-4131-a027-011762315854","savedPayload":{"position":{"x":28268.439542897137,"y":32571.541036582617},"targetPosition":{"x":28445.066617594508,"y":33144.151948956554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"977da1ed-2bdd-49c3-9a03-51f8c5cd26e9"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2018-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2019-12-31T23:59:59.999Z\"\n}","id":"797c24e8-c8e8-49a1-9ecd-56b944855946","savedPayload":{"position":{"x":28782.62667628724,"y":32649.04227700374},"targetPosition":{"x":28445.066617594508,"y":33144.151948956554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"f1ed7120-6342-4405-b7e3-2378a1039e82","savedPayload":{"position":{"x":29042.62420051139,"y":33099.37119880209},"targetPosition":{"x":28445.066617594508,"y":33144.151948956554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"0274f2fc-35e3-4576-be63-f8e262e868f8","savedPayload":{"position":{"x":28852.648676845834,"y":33583.42093882758},"targetPosition":{"x":28445.066617594508,"y":33144.151948956554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"4d2c2906-6082-4ffc-bbee-9a5fceecdc1c","savedPayload":{"position":{"x":28355.755549405196,"y":33736.692170025766},"targetPosition":{"x":28445.066617594508,"y":33144.151948956554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"137b748d-b491-4d1c-9081-2c3182022881","savedPayload":{"position":{"x":28445.066617594508,"y":33144.151948956554},"targetPosition":{"x":27926.11547792489,"y":33443.768529141074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a69fc2be-c8af-452b-937f-9d42cffed759","savedPayload":{"position":{"x":27926.11547792489,"y":33443.768529141074},"targetPosition":{"x":27407.16433825527,"y":33743.385109325594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Bull run rider - USDT- SDA v.0.0.3","id":"56432995-eb04-4929-850f-6530233a3be3"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"99e8b845-03df-4af9-9ca2-1adf6db982c2","savedPayload":{"position":{"x":27926.11547792489,"y":34043.001689510114},"targetPosition":{"x":27407.16433825527,"y":33743.385109325594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"4e3c965c-0369-4bc4-b2ca-ba8512ddb15e","savedPayload":{"position":{"x":27407.16433825527,"y":33743.385109325594},"targetPosition":{"x":26807.931177886232,"y":33743.385109325594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"b9d5dcbe-35d3-4d1a-b0ed-d8bf257c574d","savedPayload":{"position":{"x":26807.931177886232,"y":33743.385109325594},"targetPosition":{"x":26212.085673665595,"y":33743.385109325594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ac0107a6-b5a1-424a-b275-eaf5b6c9af4f","savedPayload":{"position":{"x":26212.085673665595,"y":33743.385109325594},"targetPosition":{"x":26212.085673665595,"y":33743.385109325594},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},{"type":"Task","name":"Live Trading BRR","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 BRR","code":"{\n\"folderName\": \"Live-BRR\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{\n\"initialBalance\": 0.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100000\n}","id":"a721c4dd-6bcd-4489-8a04-c938154e5b86","savedPayload":{"position":{"x":26891.07246703676,"y":33862.178790635095},"targetPosition":{"x":27005.1161220768,"y":33906.937626960105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"ece1e81f-6b55-4696-b0fb-27136f930db3"}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 10000000\n}","id":"fefae6c8-44f6-461c-8cd6-fb85f0a562bb","savedPayload":{"position":{"x":26969.004933550168,"y":33789.86802908237},"targetPosition":{"x":27005.1161220768,"y":33906.937626960105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"977da1ed-2bdd-49c3-9a03-51f8c5cd26e9"}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{ \n\n}","id":"f7fc686d-0c65-4420-9681-249615860ff4","savedPayload":{"position":{"x":27074.129861558133,"y":33805.71306251617},"targetPosition":{"x":27005.1161220768,"y":33906.937626960105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"b0250b65-4309-46a5-a22a-190644655af0","savedPayload":{"position":{"x":27127.286036112928,"y":33897.78225758108},"targetPosition":{"x":27005.1161220768,"y":33906.937626960105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"b01e9675-78cc-415f-a46c-2ccba3b0085f","savedPayload":{"position":{"x":27088.445773586434,"y":33996.74563252389},"targetPosition":{"x":27005.1161220768,"y":33906.937626960105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"93044513-6709-43f9-8fbb-692fb877f107","savedPayload":{"position":{"x":26986.85658385807,"y":34028.081747527714},"targetPosition":{"x":27005.1161220768,"y":33906.937626960105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"45e6cb80-3c2d-469b-873e-eea045c4da7b","savedPayload":{"position":{"x":27025.917175860715,"y":33899.32391284971},"targetPosition":{"x":26913.22458278227,"y":33964.38701179923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"446a5c32-1684-4b01-8fd9-8063be179b63","savedPayload":{"position":{"x":26913.22458278227,"y":33964.38701179923},"targetPosition":{"x":26800.531989703824,"y":34029.450110748745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Bull run rider - USDT- SDA v.0.0.3","id":"56432995-eb04-4929-850f-6530233a3be3"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","keyInstance":{"type":"Key Instance","name":"","id":"af6dd318-25b8-4d96-9c0d-c084c3bbd2e8","savedPayload":{"position":{"x":27025.917175860715,"y":34159.57630864778},"targetPosition":{"x":26913.22458278227,"y":34094.51320969826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"afceb9c6-35ad-4d32-b803-5a67c453571b","savedPayload":{"position":{"x":26913.22458278227,"y":34094.51320969826},"targetPosition":{"x":26800.531989703824,"y":34029.450110748745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"320142da-f976-4d15-80b0-f5a722d17b82","savedPayload":{"position":{"x":26800.531989703824,"y":34029.450110748745},"targetPosition":{"x":26670.40579180479,"y":34029.450110748745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"74d5adeb-7a6f-4ece-a04e-b634f2435c18","savedPayload":{"position":{"x":26670.40579180479,"y":34029.450110748745},"targetPosition":{"x":26547.893308016155,"y":34029.450110748745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"f6914ca3-9557-4257-a8d3-208e203918d7","savedPayload":{"position":{"x":26547.893308016155,"y":34029.450110748745},"targetPosition":{"x":26547.893308016155,"y":34029.450110748745},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Task","name":"Fwd BRR","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Fordward Testing Session","name":"Fwd BRR","code":"{\n\"folderName\": \"Fwd-BRR\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100000\n}","id":"c7dbacb9-dae8-49e4-af00-730f29dc6886","savedPayload":{"position":{"x":26722.369836272108,"y":33654.63988357608},"targetPosition":{"x":26783.02807567071,"y":33678.446488231566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"ece1e81f-6b55-4696-b0fb-27136f930db3"}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100000000\n}","id":"1346e89c-d85e-4414-9805-7901724d6eae","savedPayload":{"position":{"x":26763.82103501731,"y":33616.17879177907},"targetPosition":{"x":26783.02807567071,"y":33678.446488231566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"977da1ed-2bdd-49c3-9a03-51f8c5cd26e9"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"c1dcdc2d-ba78-4428-b360-ae924cb4e920","savedPayload":{"position":{"x":26819.735527126748,"y":33624.60654544033},"targetPosition":{"x":26783.02807567071,"y":33678.446488231566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"02ccba4e-e034-4fdc-914f-a0411dc94a83","savedPayload":{"position":{"x":26848.00855959424,"y":33673.57687415807},"targetPosition":{"x":26783.02807567071,"y":33678.446488231566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"687f13eb-2d61-43f7-8d28-32cb08804120","savedPayload":{"position":{"x":26827.349962307006,"y":33726.21412159518},"targetPosition":{"x":26783.02807567071,"y":33678.446488231566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"fbe0a7ba-188d-4292-bda4-d51bedd3a41d","savedPayload":{"position":{"x":26773.31608038092,"y":33742.881366827336},"targetPosition":{"x":26783.02807567071,"y":33678.446488231566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ee717b0f-dcb3-4dbf-b97c-a11bd2283a0a","savedPayload":{"position":{"x":26769.09589010652,"y":33683.5460220783},"targetPosition":{"x":26717.079669291183,"y":33713.57760116826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"52129a03-5a25-4d97-94c6-0eaf6798d076","savedPayload":{"position":{"x":26717.079669291183,"y":33713.57760116826},"targetPosition":{"x":26665.063448475845,"y":33743.60918025822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Bull run rider - USDT- SDA v.0.0.3","id":"56432995-eb04-4929-850f-6530233a3be3"}}},"marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"60eef585-3bf9-4d9f-a061-3e12b209fa73","savedPayload":{"position":{"x":26717.079669291183,"y":33773.640759348185},"targetPosition":{"x":26665.063448475845,"y":33743.60918025822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"04f346f0-cbdd-4cd9-b462-0623e517a8d2","savedPayload":{"position":{"x":26665.063448475845,"y":33743.60918025822},"targetPosition":{"x":26605.00029029592,"y":33743.60918025822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"7487371e-b85e-43ac-8088-992603d70e2e","savedPayload":{"position":{"x":26605.00029029592,"y":33743.60918025822},"targetPosition":{"x":26539.837598269263,"y":33743.60918025822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"cdd81041-e3cc-46d1-9d0c-65038b3e0558","savedPayload":{"position":{"x":26539.837598269263,"y":33743.60918025822},"targetPosition":{"x":26539.837598269263,"y":33743.60918025822},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Session Reference","name":"Live Trading BRR Bitfinex BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"ef0ad263-fab8-4d3c-bbeb-85620f8c2f60","savedPayload":{"position":{"x":27401.570675557978,"y":28893.917574948664},"targetPosition":{"x":27376.977382864483,"y":28927.76733837685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"9452c6bd-1b8f-46bb-9f11-b940352b3965","savedPayload":{"position":{"x":27416.770166337832,"y":28914.837879258426},"targetPosition":{"x":27376.977382864483,"y":28927.76733837685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"92a2fada-e410-49dc-a8d5-ea20cad22aaa","savedPayload":{"position":{"x":27416.770166337832,"y":28940.69679749527},"targetPosition":{"x":27376.977382864483,"y":28927.76733837685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"256eeef5-6aaa-45d8-b74d-42e8fe9f4de8","savedPayload":{"position":{"x":27401.570675557978,"y":28961.617101805034},"targetPosition":{"x":27376.977382864483,"y":28927.76733837685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"5f6bb2df-d6b3-4fab-9795-15fa65d42240","savedPayload":{"position":{"x":27376.977382864483,"y":28927.76733837685},"targetPosition":{"x":27335.136774244962,"y":28927.76733837685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"6abdde7d-869b-428f-a427-422489ea6ef3","savedPayload":{"position":{"x":27335.136774244962,"y":28927.76733837685},"targetPosition":{"x":27335.136774244962,"y":28927.76733837685},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading BRR","id":"446a5c32-1684-4b01-8fd9-8063be179b63"}}},{"type":"Session Reference","name":"Back BRR Bitfinex BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"df29386c-5072-4d98-87f9-3e7a9c674795","savedPayload":{"position":{"x":27371.480208874353,"y":28682.66353847156},"targetPosition":{"x":27359.78038051568,"y":28698.766970697052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"05467265-8214-4c84-9dc4-93cb0e7d4973","savedPayload":{"position":{"x":27378.71110046255,"y":28692.616006922442},"targetPosition":{"x":27359.78038051568,"y":28698.766970697052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"7af108a9-64b8-4b67-a272-71cf29925d33","savedPayload":{"position":{"x":27378.71110046255,"y":28704.91793447166},"targetPosition":{"x":27359.78038051568,"y":28698.766970697052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"8bf99e46-f6d5-4bc8-ac05-eff3420e9867","savedPayload":{"position":{"x":27371.480208874353,"y":28714.870402922545},"targetPosition":{"x":27359.78038051568,"y":28698.766970697052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"524c5d78-54a0-4dfd-9b30-09c173c7cd77","savedPayload":{"position":{"x":27359.78038051568,"y":28698.766970697052},"targetPosition":{"x":27339.87544361391,"y":28698.766970697052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"217ef84e-4f62-4063-9cd5-000d88dbc85d","savedPayload":{"position":{"x":27339.87544361391,"y":28698.766970697052},"targetPosition":{"x":27339.87544361391,"y":28698.766970697052},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back BRR","id":"a69fc2be-c8af-452b-937f-9d42cffed759"}}},{"type":"Session Reference","name":"Paper BRR Bitfinex BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"7103746f-8a09-4571-8832-3d0774bedf1c","savedPayload":{"position":{"x":27751.249641740527,"y":28613.303527563992},"targetPosition":{"x":27689.983686459276,"y":28697.628880753502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"183a7e38-f695-4a13-ada0-d199e60ad124","savedPayload":{"position":{"x":27789.11408445757,"y":28665.419461948448},"targetPosition":{"x":27689.983686459276,"y":28697.628880753502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"2915ad4a-4619-441a-a6b8-6f331c850bff","savedPayload":{"position":{"x":27789.11408445757,"y":28729.838299558556},"targetPosition":{"x":27689.983686459276,"y":28697.628880753502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"47100b41-0414-40ac-af27-bd18c3788683","savedPayload":{"position":{"x":27751.249641740527,"y":28781.95423394301},"targetPosition":{"x":27689.983686459276,"y":28697.628880753502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"dc0921aa-4381-48b7-a6fc-23532dfbb61b","savedPayload":{"position":{"x":27689.983686459276,"y":28697.628880753502},"targetPosition":{"x":27585.751817690365,"y":28697.628880753502},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c0969c68-ea47-4ee7-b375-1e4641c2b96c","savedPayload":{"position":{"x":27585.751817690365,"y":28697.628880753502},"targetPosition":{"x":27585.751817690365,"y":28697.628880753502},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper BRR","id":"3838f62b-65b8-4a43-b293-0f4895200e34"}}},{"type":"Session Reference","name":"Fwd BRR Bitfinex BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Bitfinex BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"27ecfd22-3fb9-4aa7-bd9d-8792f4b0148d","savedPayload":{"position":{"x":27713.905527941122,"y":28870.840258811935},"targetPosition":{"x":27668.240574122785,"y":28933.692675646646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"d341d230-f8a9-4e3a-b07d-300d5743c16c","savedPayload":{"position":{"x":27742.128021495548,"y":28909.685188690863},"targetPosition":{"x":27668.240574122785,"y":28933.692675646646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"88a77c8e-347d-49de-9c84-b72a12c8751a","savedPayload":{"position":{"x":27742.128021495548,"y":28957.70016260243},"targetPosition":{"x":27668.240574122785,"y":28933.692675646646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"b6e44fd8-2078-41ca-825c-63fb35f112f7","savedPayload":{"position":{"x":27713.905527941122,"y":28996.545092481356},"targetPosition":{"x":27668.240574122785,"y":28933.692675646646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"0a1702ef-6d6f-4eb2-ba85-d52dd691ddf3","savedPayload":{"position":{"x":27668.240574122785,"y":28933.692675646646},"targetPosition":{"x":27590.55071436493,"y":28933.692675646646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"00092c45-16d1-44f9-a30d-b646c200d36d","savedPayload":{"position":{"x":27590.55071436493,"y":28933.692675646646},"targetPosition":{"x":27590.55071436493,"y":28933.692675646646},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd BRR","id":"52129a03-5a25-4d97-94c6-0eaf6798d076"}}},{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Charly","code":" {\n \"repo\": \"AACharly-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"45ac29aa-5c91-4ae2-b92e-dd02ef309d60","savedPayload":{"position":{"x":29510.233020449472,"y":29759.37150931964},"targetPosition":{"x":29290.86828936895,"y":29759.365589486806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"6062ad43-605a-4508-b06a-f1d5bd9a4c4f"}}},"id":"7d387431-426c-42ee-8608-f3b437f19ff1","savedPayload":{"position":{"x":29290.86828936895,"y":29759.365589486806},"targetPosition":{"x":29071.650605545445,"y":29759.371195273452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"14b86863-ae31-408e-89e3-d2e0aecb4bcf","savedPayload":{"position":{"x":29071.650605545445,"y":29759.371195273452},"targetPosition":{"x":28633.194989516323,"y":29776.444477156412},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"d7fa44eb-fca3-4e50-9ef8-1bc1af3d83fd","savedPayload":{"position":{"x":28633.194989516323,"y":29776.444477156412},"targetPosition":{"x":28633.194989516323,"y":29776.444477156412},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}]} \ No newline at end of file +{"type":"Workspace","name":"My Workspace","rootNodes":[{"type":"Network","name":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","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":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"eaefc4a3-f4c5-4e57-b4f9-744d2dd0efe5","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"a0b24962-2c93-4b0c-9cba-6473ce33fb2e","savedPayload":{"position":{"x":24332.764474640466,"y":29157.373090743702},"targetPosition":{"x":24921.38441702524,"y":29282.42502527031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"3c8cb383-3508-49ea-b036-d50e05e816f8","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"742e9d87-db75-423d-96c6-dbd519301c2d","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"f42c266c-5f1d-4fb0-a53c-3f3dd121d72a","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"bc497a79-bc68-4c69-acc6-bbf0caa06e92","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"688a534e-234d-4f54-9761-19d6bf0c36e7","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"1b59f070-e266-48d4-9140-7907a0d4b43f","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"73655286-686f-4283-b5ee-4dd456776b78","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"603f3943-7ed0-4666-ab7d-092289ad5c16","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"1e852e91-1a64-4f41-8fe9-cc4160510eb7","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"aaa498ca-88bd-4d0e-975b-20cec893d9f1","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"2dff0170-4518-4dc2-8410-ef5c7883c025","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"1457d841-b6a7-4fe7-9970-cbb1778e5bb0","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"a219becc-1d49-4af2-a18a-25cae7f547f1","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"0356025f-afb2-49a5-98a0-768f6d6a0c4f","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"b22925b1-20f4-416b-995b-6626ef2ada1e","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"fde6601f-739b-4e84-a07e-965756c7d2dd","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"3cbf9f54-b9ab-4e31-9b50-2cb0cc85fed4","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"70b5e875-f6e2-4924-982a-22ddc3cbffa4","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"1ad74ce5-de50-4834-b081-ee8c5b0dd53f","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"1a9fbecf-b28c-4fd3-8a77-1d48e9b5e82d","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"fb2d5658-7990-415d-abaa-d8a7bd8584a4","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"7838dc0e-292e-45f7-b68b-99f791854945","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"caddb3d7-cd0f-4d65-8ea8-fcd679cd87d3","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"20a48b66-ede5-4733-a328-d2b9c2dc1c38","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"d3dd2469-ca0f-4efa-a93e-dbd963eeeb9b","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"8c7bca25-3c7e-4818-b495-3f7cfde17c2c","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"3639c029-b16d-4dbf-b63d-0c9c751b85ac","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"e6a329d2-5c5e-4b8c-a2b8-197650e6f746","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"f19d47f2-c948-481f-92ce-d268e8169551","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"7d41a2cc-af22-4dc0-9477-ec2a931b385d","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"5f03643e-a8fa-4548-8825-0838cfe80d26","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"dc27eed7-aef6-45ce-b3e9-e94e9a2bc7e0","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"57eb5355-db39-426b-bdba-c8d1b7aaeb44","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"f5c59141-7697-4a8d-89ca-72cb1bb72d54","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}}],"id":"ea20511a-ba05-42a7-ad4c-a1a61d246f38","savedPayload":{"position":{"x":24921.38441702524,"y":29282.42502527031},"targetPosition":{"x":25313.929600822896,"y":29365.81126542503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}},{"type":"Exchange Data Products","name":"New Exchange Data Products","singleMarketData":[{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"529add57-8a11-47fe-aabc-b90292ca883f","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"c767b6d2-7d35-481e-9347-a4beee79e967","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"ccb3dc31-34a6-478c-bc64-6421ca72f0c2","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"90d60f7c-d8df-49e8-b3d8-8c9b3f0d84b6","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"6790ec3b-8a61-4627-a977-795183b3477b","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"f7c28728-0555-4fe2-a94f-dbaa24364532","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"2c7374df-979b-4eb9-b1ac-bf1e7d4f23e0","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"9475a61f-243d-45bf-b51f-f97ed8429abd","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"5520fc91-4c7a-4ed0-b8ad-03318274b91e","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"decc3b92-90b0-49ef-b630-4fa1cb5fbc4b","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"ea09493d-1325-43ee-8c2a-7d8ab2e68d9f","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"93676f7f-7235-40bf-86aa-9ff0ef787ebc","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"8383209a-44a6-46a9-8b72-051330485c73","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"26938510-b396-4cd0-9707-9abe0c6dca61","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"7bfb92b2-2919-4f66-a840-446969fb27c7","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"bb720b26-c48d-44a7-8775-80da6fdd8307","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"2d2ab2b2-9d3e-460a-8b28-ef7501f294df","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"83f76595-dad8-43ee-acf5-3431fe6c6fb9","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"5d6621b3-080c-4ef8-a136-0be41a5d3982","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"eeb73456-9ffa-41d0-bdad-c2b4b6626bd2","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"f0213a4f-fef3-48c4-a676-ca76afc93721","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"52a6facc-16a5-4c25-b9a0-64e66860753d","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"08eaadc8-d9e4-44b4-9334-55e78e56a4ad","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"f06e1f15-8cb8-4256-8553-c5682217fa33","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"c9be3770-83cd-4d94-8c45-e9681a50c15c","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"59ed43fb-7968-4879-8abd-4e46ced7b934","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"6b7aab09-3233-402b-8910-7359604965cd","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"21d97130-1583-411a-b677-d560e799984d","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"8ba08147-9f41-49f7-a801-7ad909941829","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"b55158e1-ef7e-4a66-ade5-ab3dd9e24be0","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"a268c306-43e2-45c5-9d51-0af82d5f3a30","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"51e4a156-cf81-4571-92c1-ad2d9461d19a","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"e43cab43-07d4-4acf-87f2-b66c59394a61","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"d7a08d22-60f6-4360-8cca-cd48231e288f","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"d6df8a4e-8337-4956-8622-12cc11fe66db","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"f1d6411b-d15b-4631-9c28-2981a4dc817f","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"b7f4d4d7-eea3-4c14-950c-f24c6b47c3d9","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"e93c3b36-99f2-460a-b38a-491fa05c586f","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"8b70f924-5685-495a-b1cb-0c33159b2c6b","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"3db1d7e3-22ea-4519-8eb8-25e908d6f315","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"a1d3973f-a757-4291-bc87-a6d97414056b","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"77ef4625-ac78-4a6d-805d-d13cb93fab28","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"4a638d36-8d48-4d52-a834-39d40de04f67","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"b0878239-fef3-4d84-b267-9e61b930d0e2","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"3689b876-c3dc-4d7c-9b42-232b6fbd1f0b","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"ab4045e2-595f-481e-b3d9-e396feba5b74","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"241deef1-5a1c-49a6-b1a8-972396350c95","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"6d19da42-4214-4f49-b51b-1c476c6da01b","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"fe238a43-bba2-475f-a6c9-67d494f1f9f6","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"cbbc5cf8-91d3-4efe-8e18-363ac308a84d","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"5f8cd541-45cc-404f-81b3-13400d3f5913","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}}],"id":"fafa7818-00ac-4ab3-8cfa-7532d4e14a51","savedPayload":{"position":{"x":25216.929600822896,"y":29460.81126542503},"targetPosition":{"x":25313.929600822896,"y":29365.81126542503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Crypto Exchange","name":"Bitfinex","id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a"}}},{"type":"Exchange Data Products","name":"New Exchange Data Products","singleMarketData":[{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"87d60c74-a550-4dd8-acca-fd19b61cf02f","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"a3010d50-1d4f-4259-be18-28b86ead6589","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"1ce518d5-0c45-4435-ae92-dd065aec635b","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"fb8deeb9-e1a1-4a17-be2c-e7f2451db5b9","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"a5dbed70-cf13-4b1d-b3b9-a2fc3a6c68b4","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"6efc2f65-6bae-46aa-99bd-52b705bf3a1b","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"5517f47e-f000-446d-b0a4-e0b698cb783a","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"cb506d78-8632-4e25-a975-1bf51e061137","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"0620fffd-223d-46e4-8be8-ffec4c9d0103","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"0bb2d947-dda8-4490-98dc-cffdcb714cf4","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"4ebc7b29-6211-4311-876a-368dd01e2c7a","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"1791d269-3f4b-412c-8335-612f6dc48f71","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"f18e1f89-e959-4473-bbf2-2cdf382f629f","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"427efc54-389c-4bff-8b17-ae8fc14f1acd","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"caf2092a-637c-4b2a-a60a-731537c19ea3","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"02f219be-524b-48a0-8fbe-b40dbfbab0c3","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"ac93c1c9-b965-4975-95b5-9a165876667a","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"01aa1d03-ed10-4c03-9e3d-ff1f8205ef38","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"272c8829-637f-44e8-846b-1973c3b9e6c2","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"b7c724a3-3818-4b39-a3de-bfa495bd914f","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"a13f113c-7797-4d10-931c-fda5469b4aa4","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"424bee3d-18e9-42a0-9b34-41894517f1f5","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"4c14a3a0-02c0-4e52-9fcc-318c2aa02ee5","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"34363359-1009-4656-b997-5f8860eada75","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"2adc677b-7f53-45d4-b199-64616bb476bd","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"1cda9cc6-322d-4c30-87c0-5dcb9b9cf30f","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"1664f095-e511-4f6f-b99e-41207a981d90","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"fa6c7e7c-0513-415d-8209-4a315676dd2a","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"ede7a7d0-42ea-43cc-bbf6-12ba6e3767e2","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"f3bbbc37-820f-4eaa-a10e-7ec938729af8","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"2d65df45-6fd4-423b-b3b0-fa5078ae8861","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"cd9480bb-117b-4d4a-8cbe-60b32f43521b","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"d5da7000-fc80-450b-8589-5af46724c17e","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"3f4932ff-7468-48d4-8900-44ce5a7c778a","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"8ed6da9c-268a-4913-b665-9d5b23a97193","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"da9fefed-e22b-41ee-a0f7-2b4072e9f4b5","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"a5ecaaac-8466-4774-9e83-d6713deb6841","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"b33da754-79d2-481a-a77f-26f2321e6295","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"1db262c8-7881-40ba-a2b2-1685e3125243","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"fa168789-a413-46ad-9be1-14ce21e9416e","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"b35ad402-89e1-4793-8d50-c114ab977a4b","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"e7f89ec8-529d-4d5a-a7fc-80abd97d9cd4","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"51310dcc-57c8-4465-907a-800ea44674c0","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"daad53a3-db86-4039-b67b-95adfff5988b","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"c743bb2f-f93b-4bb0-b988-9e201a7dad78","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"c0dfe68d-b06b-4e3f-866e-a2505664cda9","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"109a8288-7c45-4446-acde-0818ed69823f","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"29380af3-5e13-458d-b9f8-68e8823e4e06","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"7711ae0a-392f-4583-a1f5-dbcd4e37c055","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"00a44ca4-769a-402d-936c-b9a99eebd51d","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"8dfec8fe-e963-4755-8fcb-86b480266578","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"24129a6d-299f-4cd8-83fe-e4f1c6b87afd","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"be103319-3dba-46a1-a512-bd75863dc1ca","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"3cfe4e2c-9d01-400b-90d3-94f9d8a1c876","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"bd886d39-31b1-4fb2-9533-c6b4cd97f8ce","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"8c9d7a33-7ade-40ab-ae2d-a8d30596ef07","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"1688bdf8-34ab-4a9b-8a24-0706486e37ac","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"114cc3d4-7a23-4b46-ad19-1475e8bbe7ff","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"783f1572-8752-4d16-8cfc-fc37fcb3fec9","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"a28f24ee-8270-4d54-b6ff-838dd162567b","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"5b223ab5-6bf4-4d60-90e7-8e43704c5298","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"9ba743d4-79ce-4c63-9819-cfd294301021","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"8cef3346-a4c9-4ef7-9cbb-718048212fb1","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"630b2f96-b9d8-40a4-876f-1d95e52cb614","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"525934a3-f98c-4523-adf2-3e399dc94207","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"1419e286-9070-427d-8b3a-c200ae5b800b","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"d9389dd2-cf10-45db-974a-2a969017a69f","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"2ce25b20-6072-4d4b-94d7-9663fcae1b37","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"7e945760-2f5e-4a6a-b8a1-63d6bf969c12","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"b4eed780-c1e0-485c-8fe8-c8d76cc7512b","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"74711701-3514-42cb-b16c-4fe04501c9da","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"dfac4da5-7323-4184-ba24-b1ff67280657","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"6715685c-74c8-4516-8ab1-49eeaece7713","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"e2488001-ea36-4401-89e5-0667a7e3dc73","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"03cc5027-94c1-478f-a2cc-a5c099e15482","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"c53e2a82-c1ba-4043-8fb9-46bad81e3cfc","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"5b06c63e-37ca-47ff-bf20-081739d9c38a","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"1e6ca400-51e0-4072-a726-0b4b901038fb","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"37f637ed-bdcd-4c8a-a38a-b3e09a643a09","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"064e73d6-2711-4df9-8855-be1add07af09","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"a28f6c49-1568-4fc2-8952-e0d190952028","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"cf2f1a70-d040-49ad-8c12-4365d65e65e4","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"930a95d1-11ce-4d45-a00b-395a7c2c15e3","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"4f1a0d64-3e63-4b11-ad98-5b03367f9aae","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"2c375869-1609-44d6-a603-2f8edfc7b823","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"676d3590-c67a-4403-a8f0-14a2538a1a5f","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"33f0c26c-98ad-491b-b098-ff37c7c59995","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"5831c8dd-fcb9-4bc0-afad-11e7937ad2e0","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"7867e419-40e4-4a5f-8f33-8c4397f75f21","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"57dbace3-f21d-4336-8b4d-c3fa743fb2bc","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"df6fd1cf-74ff-4e61-be51-9b06cab01fa8","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"cc0bb0f4-a972-4277-8224-dd5dca760dce","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"cdf3935a-785a-4c94-9797-28946470c086","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"1ac0bdc6-fedd-4286-a5b4-4fc1f2f7c1ae","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"cee8f16c-6eee-4868-9fb7-f57e8c775cf3","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"25e6dff5-3ba9-442b-b536-adcd559ee2d3","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"2dbc595f-7ff8-45a3-8e38-37c0e6c83610","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"955a28ac-68dc-4c4c-94cd-0e82151fa663","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"af11ac4b-527e-49eb-9413-69ba859a759a","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"223cab52-d985-4848-a6a8-9652e87564fd","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"0dbfb0ff-5171-442b-82ed-570da924abf6","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"484baea4-4268-499a-b352-57aebefe759e","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"aa32aafa-031f-4145-b603-5ec1bdf9f90f","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"c06b9de8-0c58-4913-8974-849a905e5712","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"44cc8cd8-ade6-461e-a794-6a65c98045db","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"871af703-3126-4ba4-a5e8-f4c4b702c37d","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"c752b09e-7799-48e6-8334-1ef08500b44f","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"f1729cb6-3281-4153-aca4-c3d55b7c3313","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"a9c259f2-f329-4e9f-ac6c-00a244911e34","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"0da64f32-5744-45c2-99f2-473c3320db7a","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"74c7c5f9-9035-417c-a18a-a045a2963ec7","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"719ba43d-5816-4c2e-8848-ef1d43ec93fc","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"7469215d-9a3e-4f84-bda0-708c1a5aad8b","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"943c6f07-bb0a-483f-bf7e-816c483ca392","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"c1f58cd1-f4f3-4304-89d7-58eabd36c39c","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"d1fbafdb-3866-48b0-a762-75c92db76b5c","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"008c4d94-dc2a-42fe-bf6f-fa301512aefa","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"1e6c556d-9ab6-4a8b-aa8f-590fde88d57f","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"50dd68da-105c-495a-82e1-ac9cb8587f51","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"c3375de6-eaac-4749-8dcf-20b3b8f6221b","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"97d13f00-a7f6-432d-97f9-b6192c2f105c","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"7d9cc2d5-7e07-4fc1-9b44-de17a50ecda7","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"586fc9e2-7af3-4c80-ae24-470dbd45f8c3","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"c61f8141-f31d-4587-9040-1fe408be3653","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"b2d24a9e-3f8d-49ae-992f-1a01665e47d3","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"7a2252ae-b840-454c-8d08-9349ab592baf","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"038207b5-89a4-4f18-8aed-79d4ac08cc71","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"f97763a9-0585-418e-a013-406b755918d1","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"7c3fdbbe-15af-4413-ba01-28731c4996f8","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"1d628676-9d0a-4cb0-9643-e0b0c7b4a39e","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"86b94c79-5dc0-405a-a0f0-49a804e81f1b","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"c32d535b-3452-4425-ac20-4b95a234b58e","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"6f573749-46ec-43db-8e10-005584abd226","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"8e3ad45a-81a9-47c9-8ab0-15ffe0d44f61","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"938311d3-031c-4d6a-9026-021f93b44a92","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"89af90bd-4c8b-4914-a6c2-239f6967a931","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"c95d0bd6-9908-46b5-9165-b7373c9ff6ff","savedPayload":{"position":{"x":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"26d9ec55-5f32-425b-9b32-73afa5d98283","savedPayload":{"position":{"x":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"8a0f0078-75f3-4d31-8501-60898501373c","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"67d43a54-0234-4008-aba9-6be0080f6fc0","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"2781934f-e6be-4037-a28c-67b8471d8ebe","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"347e842f-53c0-4e86-9fb3-c0af264be17d","savedPayload":{"position":{"x":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"f1cd18dd-5d1b-4e99-a7ae-8708c9785190","savedPayload":{"position":{"x":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"2cb92069-24c8-4f85-935b-f134bd77ae07","savedPayload":{"position":{"x":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"dccba5a5-82ae-480e-876e-616d3f52bea0","savedPayload":{"position":{"x":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"e7e18307-e621-494a-96d1-4c73fe15cfd1","savedPayload":{"position":{"x":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"3ff2c212-dabf-4dad-99ff-1f13a76f3f2d","savedPayload":{"position":{"x":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"1a108b6c-6275-4da2-80c1-59034235d9e3","savedPayload":{"position":{"x":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"a2bb8510-184f-41ed-a834-74d20eb9cb35","savedPayload":{"position":{"x":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"ad4026ae-961e-49fb-aea7-2105966287c8","savedPayload":{"position":{"x":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"69ad98a9-0532-4203-845c-4de02ccf3bb2","savedPayload":{"position":{"x":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"91ebe5fc-d3ad-4e9b-aa5b-b57029ea8629","savedPayload":{"position":{"x":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"41b7d484-2000-479d-b63e-7cdc328ea13a","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}}],"id":"324fe253-5fcc-48fb-83aa-e37fa0b3b5b8","savedPayload":{"position":{"x":25321.929600822896,"y":29358.81126542503},"targetPosition":{"x":25313.929600822896,"y":29365.81126542503},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Crypto Exchange","name":"Bittrex","id":"a9a5c7bc-797b-4cd1-b24e-a627cd396d3e"}}}],"id":"bf04ccea-266d-4115-b50e-fefdf29b873a","savedPayload":{"position":{"x":25313.929600822896,"y":29365.81126542503},"targetPosition":{"x":26098.49515065793,"y":29532.530595964006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":"i"}}},"sessionBasedData":{"type":"Session Based Data","name":"New Session Based Data","sessionReferences":[],"exchangeSessions":[{"type":"Exchange Sessions","name":"Binance","sessionReferences":[{"type":"Session Reference","name":"Back WHB Binance BTC/USDT","singleMarketData":{"type":"Single Market Data","name":"Binance BTC/USDT","dataProducts":[{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6","savedPayload":{"position":{"x":26431.893706763272,"y":27650.368210252047},"targetPosition":{"x":26706.976104840196,"y":27772.77422092837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d","savedPayload":{"position":{"x":26556.505831694896,"y":27511.84032325912},"targetPosition":{"x":26706.976104840196,"y":27772.77422092837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84","savedPayload":{"position":{"x":26738.4778274681,"y":27473.104540638138},"targetPosition":{"x":26706.976104840196,"y":27772.77422092837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5","savedPayload":{"position":{"x":26908.64408692427,"y":27548.9442952473},"targetPosition":{"x":26706.976104840196,"y":27772.77422092837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"0dea75f2-25af-4ab7-a939-5eac07617163","savedPayload":{"position":{"x":26706.976104840196,"y":27772.77422092837},"targetPosition":{"x":26769.717694093346,"y":28067.09759506577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"81409d9a-6413-4251-9762-8384d1988729","savedPayload":{"position":{"x":26769.717694093346,"y":28067.09759506577},"targetPosition":{"x":26894.877862943034,"y":28655.699011350964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"c50901b3-cfcf-4be1-92ac-2117fa236574"}}},{"type":"Session Reference","name":"Paper WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"442bd8c3-1825-4415-84bd-e2f1148b3f92","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"8ab46f29-e225-42ee-a17e-297b2ebcfdbe","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"ddb30433-09f1-44b5-afdc-28a05f218c25","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"2f5a9ed9-80b6-412f-9d24-47f49653be9b","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"1bb6fd02-26ea-4a2d-bc04-361b9c4afbf8","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"d63615d2-b6e1-46c3-90e7-ebfc1adeac17","savedPayload":{"position":{"x":27139.55814821459,"y":28105.751941053826},"targetPosition":{"x":26894.877862943034,"y":28655.699011350964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"fe83f537-1a72-4289-9520-b868d1434a27"}}},{"type":"Session Reference","name":"Live Trading WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"247187f3-1aaf-4de1-a7db-c3a550cdbad0","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"4deb0411-a8ea-465e-adcd-e0515f291a2d","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"c9cbb548-60ef-491d-b083-5825573db463","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"cec4bf02-ebee-48ad-a0cc-25629e34fd65","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"e0ddc21a-c36f-40fc-8d17-8a20ccaeaaa1","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"72531d30-b85f-438f-8228-c560b7807acb","savedPayload":{"position":{"x":27410.778653650832,"y":28355.315839080235},"targetPosition":{"x":26894.877862943034,"y":28655.699011350964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"c60011e8-9c3c-4f09-bed3-60587071d497"}}},{"type":"Session Reference","name":"Fwd WHB ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"456e8c88-ba2b-487d-aa2a-48f6c1144d22","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"6abfb364-1883-488b-ac98-ffa234013e95","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"0dbb4a2c-c32d-4bd1-a410-09ce23613604","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"cdba5840-e1d7-4909-9422-423299403f3c","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"bca2cb97-d2aa-414a-9471-d73ad85bf564","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"e320c991-815a-46db-b7d3-edc791c43623","savedPayload":{"position":{"x":27492.904747027464,"y":28718.271786733258},"targetPosition":{"x":26894.877862943034,"y":28655.699011350964},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"ab302724-6565-47fb-82f7-be0acf5fad30"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"f8e4d013-aa86-4409-a9fc-67b80e181e27","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"04934268-e9c8-47e3-a305-dd780555913b","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"215cdb1b-31c8-49c8-918a-c3d617f84c73","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"45618385-298d-4ec9-b18e-70388bb4c0b8","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"2f7e0d8d-fbc3-4c27-9770-30962f4cae05","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"203d4317-0e05-4fee-8bd6-708032b33287","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"f6a648e9-c7a4-4ca1-af21-fc19f5b76981"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"4e93196e-98ee-44b4-ba0a-6b7d3fd43cb1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"cbc043d1-db94-42b8-87e7-6c066b36c032","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"7131925a-975b-452c-a9a8-77eab9e8d2c5","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"cf5012a6-5218-475d-8593-c42bea7e8b5c","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"cd318ed4-0193-42a1-95db-fdaaed07eef1","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"d74f4983-9880-4cd5-ab9e-da0054e63e8f","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"7eeb42e9-37d6-40b6-9d62-bd2d721ef7e2"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"a97911bd-074c-47a0-97a2-48c340ded639","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"3c1f8742-2932-41b7-ab61-f41b207220f6","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"9f2da00a-ccf4-49d4-875d-cfcd42f523fa","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"44f6bd73-82ba-4a27-a2ff-31afe6396246","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"b4c491b1-2f85-4856-b173-3b1447490104","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"146b3673-e510-46f9-a146-2c5ae489daff","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"ce972539-edd5-4c4a-b3eb-c7e569d41aa0"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"c01aed23-fe08-4c48-82f9-6be921c9e110","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"6cb50d0c-6378-4c4a-a5d6-5dd96bd1647c","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"1bc40d41-edcc-4996-b7a8-02c0ef8ecae5","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"98cdab2e-3cc5-446b-84f9-b01c47b42167","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"18ff27cf-951e-49ae-b033-d7f0a1c26f20","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"7322c456-bc61-430d-9d6e-ced632025b89","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"c40c4edb-e14b-4b65-ba5d-a823cca86063"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"c2541021-f7ce-4a8d-ab59-e7002ed8391f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"23b33524-1c7c-4b75-b96f-b76132a863d3","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"caffa6da-ecf8-4d7c-81bf-18ddc03dcd82","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"d4541ddf-142a-4616-95b8-6ea51de83814","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"82acc501-0bcc-4f08-b4ef-bb0f6313afd6","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"ed868095-fe5f-4284-8eb9-17f7199ba9e4","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"8eb46fc0-ae17-4b7b-bbc8-340da3146641"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"cd2bce9c-ed05-4a42-8076-1672c0a5939f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"ec9260a3-8fc2-490f-8f3b-020a441e5c4a","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"5171e8a7-52da-4813-aacd-34684ff96a20","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"1ff5471a-5f72-4882-970f-0b984384bd30","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"9d248e47-2292-4d00-9d8d-7b8cab486294","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"2fb9b8f1-aeb5-46f0-93b8-3771e99e4891","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"57777b2f-a99e-408f-912f-83dd773289a4"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"942399ea-e76b-4471-87da-6795a0c0c38a","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"e837c17c-091c-4723-b7db-f44aac865f6d","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"38b73766-b1d6-462a-939c-f90ce1ba039c","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"365a59c3-31dc-488a-ae77-26e866bef67a","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"f3e5dfa9-3cf7-4549-b5c0-66b09f7433e1","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"51026136-6484-4ad9-9182-5a9636ee6085","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"43da95ac-32ca-4c82-91f4-3d092425f666"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"33688087-0eb3-490e-a81a-0886589db7be","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"fbd968cf-e008-419d-8820-8bd063b69878","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"12230847-3573-40e4-97d2-16a22833f2e4","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"2f6ee551-9c68-422f-a11d-c0a1035aefe8","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"894f17ce-d674-456c-a9c1-95017a87f79d","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"450379e0-454f-4f33-8b84-94dad98b0185","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"5a87f628-8edd-4e27-8dc4-37395c6df16c"}}}],"id":"cb4c7ea2-df16-4e34-be06-c5a828424f6e","savedPayload":{"position":{"x":26894.877862943034,"y":28655.699011350964},"targetPosition":{"x":26634.686131964554,"y":28936.609962818486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Crypto Exchange","name":"Binance","id":"22d2b36e-7a77-40a6-8948-b7d0fb744923"}}},{"type":"Exchange Sessions","name":"New Exchange Sessions","sessionReferences":[{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"71f53eb1-c3a7-4234-9b38-70a584f6d83e","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"714aa739-12f7-4442-945c-60e7c90923d7","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"aa1fbe55-3ae6-4b7e-bdf3-f7455964ff81","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"4097f306-eb9b-4887-bdba-40fb05471da4","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"a7b3b4bf-0f88-4dad-a4ab-ce3b4dda9c0f","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"df647309-1675-4540-8d84-4c17a2378385","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"eb1e2927-64ea-4f23-a804-bc98ebcd8ee3"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"471a20e9-b621-4c38-9909-21cf6d35d435","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"eff9ee04-6013-4ad5-b0fc-5c8756e99277","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"0d0317f0-aaf4-48e1-b795-111590f2a7e0","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"5be31a5f-e7fc-45d7-8d3a-65cb40f5ea1a","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"e2005198-12a4-41fe-ab38-558c782e4d53","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"4aef18ff-63a6-4ee7-89fa-f99a767edf8b","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"ca56df08-c301-42dd-9946-92bc798a10d5"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"02db4bbe-c355-4700-9b48-1754ef3f00cb","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"37f9878e-b61a-4c6d-b191-d48fe94759ba","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"ec007586-7ac1-49a4-a4d9-fe1152e186a5","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"8581ab73-2853-424f-83a2-d2ff35b09c02","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"01c57899-9e84-477d-8fe5-2b7151f70119","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c37678c0-4a97-4e88-b65b-704c37ba8849","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"bc9b359d-f390-4c25-ace0-ce6d0280a3d4"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"a2247aca-d274-4fec-9fc4-2590d38d91c1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"5003719e-7064-4c4c-8dfb-dd2d1634efdc","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"6efce2dd-a754-4f92-bdd8-3a05abfc13d4","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"9d0b592a-bdbf-4b98-8ab8-b11df6c3d331","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"2233f107-1831-4479-bda8-bbac85adcc53","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"aeb5e9a3-c41d-43ed-8f8e-d17f35af8dcc","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"1655f323-8672-40b2-97e8-1b6152ce0721"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"2c0c7c7c-2dc7-471c-bb86-7e1b2a8ca54a","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"221b6ce6-1d37-47f9-b0f3-fbe8d7941a8f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"f2d4a883-71a7-4107-97ab-eb5bb759279b","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"c6488b87-96fe-4a60-b028-eff0472eb89e","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"2c2bfcd6-a828-4665-a23a-39e9c767d25e","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"7e734eb4-b1eb-49d1-8602-5e425d7b1935","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"6338f8cd-2b7d-4512-9bb4-bbf773dc8adb"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"8cd082a5-b173-4bd6-aea8-44c999fc5539","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"ace0a172-a9ab-4be0-81ae-9baba1566200","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"32786557-5691-4718-9500-89f121c5664f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"e9ccf8e4-b465-4863-a4a7-18c4bae36bba","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"2c02f49c-8109-4f8f-acbe-4b71d8ba142f","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"0c7be7cc-a45c-4bdd-9be1-3dc9f2465a7f","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"c9db993c-8ce8-4475-bb4c-a4fcfff79d59"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"aa777112-e038-437f-8141-637ecdd330ff","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"0948ab27-620e-4bcc-8f13-71f130e9269d","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"b7890686-9921-454c-9909-22da2cd55c2d","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"f667d8fa-eacd-4d74-a750-38186cfd2b9a","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"d825859d-6f7a-4f0f-9097-c7775fe44d74","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"6eb72654-cbbf-4984-8658-81d509db63e0","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"18eee886-c742-45ee-9218-4c4912c510ae"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"44e68189-8738-422a-b280-0e90f51dd765","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"c10a731c-e083-416f-a407-eec0ce13f6a1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"3d854889-79b4-4643-88bd-a3c791a14ecf","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"43c9dcac-f6d3-4ece-b5b0-d1d0faadb672","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"e9148ba3-e941-4118-a02b-26e892a81d09","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"b6830c4b-648a-4670-ae58-dad027d4a457","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"4718b2b1-acfa-4b05-ab83-ded93f58f271"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"79825272-d69c-4f65-962a-d1cb16fc4a1b","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"66218aa6-040b-475b-98c2-52c51682d4e1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"5d8963dd-6fdb-415e-82be-03e063006ef5","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"8ced75aa-e109-434c-9e06-7dc3e6724817","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"0768e489-7af6-41d7-8259-8c6956ab084b","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"99a51f99-40f3-4161-bfee-c1a27d4f4d9c","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"e830b518-f027-4922-9ae7-fb04f2861b28"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"ec75492e-8fbf-49c6-bec0-5f8f584085be","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"a244c424-f719-4dbb-9426-4ceb28b58104","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"1e4e522d-165a-4a73-8f89-b8f3d6813dee","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"760d79ec-38dd-49e1-847f-97019b47b377","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"fe770461-3317-4ae1-9b1a-f43839861af2","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"c4f23080-95f7-48df-9c70-69c8406f453f","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"8bc8646c-eb66-4b4e-9733-6b561c4e4b6d"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"70d1c9bb-e27a-450f-92e7-c6f62fc9e628","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"343122fb-2b50-414c-b37e-b48e6021a0f0","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"cf56d7bf-d9aa-4eb4-9b1b-1ec65d5b36e9","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"5fc57d3f-060a-493f-9b9f-7ca4628779b2","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"c355f4bd-f486-4c9d-a211-bb5ecaf0a08f","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"cf927fe6-d5c1-4bff-a241-555dc76445c0","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"748edc48-90cf-454c-b891-a5e0d734985c"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"fc633f2a-9158-454d-b7e0-05a669819451","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"a7c6cdcf-4154-41cf-ba34-ba8c6d9162ba","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"f821d854-1d75-4ad4-a3fd-562742b88138","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"2ebb1cfc-0cd7-482b-8cb9-3e2d90bcfb2d","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"4e680fad-4718-4b75-87f3-83be0b661e3f","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"af55fb45-ee4d-4f69-a409-98df98e04a15","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"573fc9a1-9322-4ed9-998c-348e8a8c79a1"}}}],"id":"c907f2d0-d301-458f-abfa-77b05e0b0bc7","savedPayload":{"position":{"x":26680.823240088594,"y":28921.406715640074},"targetPosition":{"x":26634.823240088594,"y":28936.406715640074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Crypto Exchange","name":"Bitfinex","id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a"}}},{"type":"Exchange Sessions","name":"New Exchange Sessions","sessionReferences":[{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"47d7c6e4-fb2a-432f-a8ad-9e5a8ac93395","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"9aeb6c6a-7e19-4b03-9ff3-129388f1453b","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"9c32e9f8-a468-48f2-9a16-dad98733015e","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"e67f387c-c066-4ae5-858f-df2f55cc2f96","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"c1691204-8400-4841-9524-05c62f8f24c5","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"69d3516d-eccc-4fe1-87e8-b26481010feb","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"8ec96291-fb32-4e48-ab8d-6b97f934a617"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"45bebf73-a3b7-4f74-88a9-b139e52f60a4","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"2ff96754-c852-4e63-ae1f-38d91b458358","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"a4b28816-fc29-4e14-8dc9-29c7274882fb","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"0dfc67b2-37d7-4230-86c1-90b04a429a86","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"b8ec8358-4306-47f9-97a8-6f6fd573659b","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"50cb37e4-c76c-47d0-aabb-fab2e59302a2","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"f6fa43f6-c590-479c-84f9-c8534e57739b"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"b67d5bcb-f0d0-4693-8ef4-4eb4f9d160f5","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"877f75ae-f356-42ef-8e14-2a987fe4bc23","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"e04efe8b-2a2c-48cb-b7cc-ba2a5efd9daf","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"c43f9bbd-cdc0-4394-9867-369c94d0ecc8","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"ab8a6477-1db9-4419-8396-14d6b08f51df","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"bc5a4897-0833-4ebc-aa28-d958a5e2c62f","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"126f3f43-3a6c-40fd-b9ff-8cc74fd45d9a"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"b5001e83-1f8c-4ad7-9219-e4b2ccb5c0a0","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"cbdc6f5d-f25e-4d0f-9162-5fbb25c556d9","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"f23f4656-f227-46ea-af5a-14c4802b9eb4","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"93d017db-d70d-47d2-a341-908958eee39b","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"63847eb9-da69-4b26-bef3-8bd0a11e7cee","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},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"bc3c00f0-11fe-4b19-850b-d0a74cc0224e","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"251bca7a-1885-4033-81e2-41b6b278b1fe"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"308e06b2-9961-4212-acb0-cf5e01ea02bb","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"1ef436ca-7524-4b07-9e29-39259bf20311","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"72cbc477-75ad-4caf-ad90-2f79ecf37af2","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"469eba59-2ad9-4a39-836a-fe078e5d4508","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"06b64eda-7499-4150-8f6a-7bb19d2e3b09","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"c76965fa-8efa-4f4d-ad14-c4003af9d8e3","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"1e81a2c2-8ba1-4d1c-8c69-591f40d85a65"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"1acc7196-881e-4f39-b46e-b0110026542b","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"298d8217-cba7-492f-8fd5-d449d3d50ac2","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"05c994e4-a5cb-4c39-9ded-c29bc61e95c4","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"679cbcee-acaa-4775-bbed-d8d802ed97e1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"1baee36c-eafd-4ea0-aa47-e94b50aa2c45","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"e264a558-d3b6-487c-b0c0-0f83feb4c26f","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"66f117bf-d69c-41ca-83b2-e3972ee186b6"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"dcebe989-5478-46df-9f29-4fc1f0e0580f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"e5b8c497-f639-4ea8-ae06-93d292bec23e","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"7dfcea84-17ac-48a7-84f8-2f418790bd95","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"5822122c-61d7-4bae-9844-66e95e5bd7a1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"26c24630-798e-4e7e-aa31-fc0c2f9560d4","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"77bcc82e-f36e-4a59-a074-ba132e5dff0c","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"fbbc0481-d662-4f84-8f89-53c8ed2c5b36"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"2cc4343e-fc10-4597-a0fc-d1e4bab07c99","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"b4997991-5f28-458a-83d2-ea1adce5b800","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"829b09a3-3ec0-405c-be2f-5bfd29cdb9bd","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"520da21b-e435-408d-af26-909751ffa982","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"dfa578b8-5c98-4007-a462-8feaa9e16789","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"0f90ca2a-6361-4199-883d-f3540feb7c48","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"232f6869-ba71-414d-a8a7-33d305fb4fe2"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"3d768e9d-96a8-4c16-b1f8-675cfdfd393f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"67d41dbf-de97-4c8f-9bec-bb7cea7d03e5","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"de8acbc9-935e-4703-bf11-306b4ea9ed54","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"b1f0e342-9392-4634-b384-3511864994cb","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"2b159d1d-ee8c-4b21-a97c-a056c94b5983","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"9a849ee5-9f08-44af-85df-59f3b603e73e","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"debce6de-6f3a-41ab-b98a-9cd300617740"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"d8e40b21-d6ae-4b71-9eab-1f8973e4d75f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"32fc39eb-41eb-4c16-a09e-6212e310bbdc","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"baa8739c-6bcd-4477-9cf1-a36abc63997c","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"ecec6a92-8670-4780-a437-c6c52f4ab4e1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"1c5ded53-622c-4188-8559-77e64c37648f","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"410c5661-089d-47d0-82b2-c5655fa230a0","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"53e3c53e-3544-4fc1-99ea-ce4b89ab196b"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"36bf6024-a93b-4eb8-8a72-6b3936a3d074","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"6a04077d-7600-47d7-8bb4-9a7d924183c5","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"1eb5df1b-d900-4a4c-a52c-08b4999e2c7c","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"c55e3a9e-4e7b-4d80-ac9f-3bfe9c298e4f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"29e02bfd-c48d-43b4-a438-41ae4fad70ef","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"373322c9-7caf-4714-882e-75dc51ee2b59","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"ace0c8b6-ea32-4556-91cf-f8204d33caa5"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"cda1bc26-fb28-4dfc-b208-c13ae90d9325","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"2747e682-1f5d-42e3-b214-aa4c44e27e38","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"624fff3f-2b3c-4661-b300-5a7bdcc11bbb","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"e14a9738-2d40-402b-8d05-deebff917392","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"2183f0ca-12b5-45bd-8be3-f4fdc3e359db","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"b27fea14-1d24-4f7b-a6ec-9610e7dda570","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"a1776e32-f373-4291-b4b4-977e015d3bea"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"d9c33815-a7d5-4815-a43d-c99515520cce","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"387fd1e7-bb69-45c1-9804-cafc63bcbf61","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"eb186e22-ccfb-44d7-9a01-8991a50590b1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"420039a5-eae3-4ba7-9acc-1c1318a9eba8","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"63b3fb53-2b54-4f02-8723-44696dc11dbb","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},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"447a6583-7d65-4ae3-a50a-8ed4909b1ebc","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"05d1e879-5ec3-4025-9794-05a14a3c0d9c"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"5dd93efc-56a3-4a74-ac17-4e3e2457292e","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"a4b4d498-c891-4f58-aa46-93cc5b9c5208","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"e67d54de-509a-488a-94e0-3905fb72efd8","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"a7d813d7-a2f1-4066-8bfd-85cc8b21220f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"9b8c96e7-3be9-4299-9244-ee0cd266c4ba","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},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"b5436a1a-fa7b-4e7c-939f-22c9b65323d7","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"b76f3edd-327b-4c84-954f-f4a2dbb9e7ef"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"36b67f6b-e045-4aa5-8921-33e0e89613c5","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"89e4d1f7-e908-40c6-b529-91e7aeca89f1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"376fa672-74da-438e-ae25-cb136638a7c0","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"cf095f0b-550e-42ff-9639-a219ad774d62","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"c39c7c0a-f1ff-486f-a66f-ed5776a34505","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},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"b358f612-de35-4de8-80bb-fdae48339fd0","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"71406be6-4d2b-4dac-b3b6-563aecb60f76"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"ce51cd6b-1089-4723-b906-4f585858980c","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"c34f3c05-b8eb-4d88-9f1b-4d57779df192","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"11fa0f86-67f1-4e87-b7f2-aee4e8792449","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"2ad0b0cb-2e1c-46c5-a276-aaa539522594","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"45824274-11bc-4b93-8a77-008edecf5791","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},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"4ede4f22-3097-43f7-93d3-25db7bd45bca","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"769d3c86-38f2-44f8-827d-b755435e521d"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"4d31cfaf-7392-4643-9967-d2cd5a9c1e7b","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"416f764e-fd99-473e-a32b-46028d1602df","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"cffbc046-0328-44d4-b7bb-43a668472303","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"279828ae-4faf-4889-bf99-6e5a6c953022","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"7c3936f5-9128-4406-8905-5d91881e7d94","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},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"5e5847a7-40fd-442c-83ea-f1cbb69e7ee9","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"517e6cbb-6b4f-4a6e-b436-5bc04b57e33b"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"41732108-e704-4eb2-8c6c-76f5627558b2","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"67930474-7d75-442a-aa06-5ae4d3aa4213","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"8d0ce9f5-3c5c-4d87-afa1-b03f3bf67b41","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"7f811c31-aec7-4047-b03d-47692072d780","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"441833ba-ef28-45d6-8df0-bd6cbba50660","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},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"4ffe1930-18c2-4d52-82eb-3ed0ed9d2739","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"1f0d8200-b9f8-4063-93ea-950fa2376408"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"bc094603-dfcf-4af6-9719-7e38314b5445","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"f681de6b-9560-4ad9-8db1-c409ff0a8e1d","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"c9571265-f089-4923-b80c-66754acba5ef","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"1fb22c39-722e-45a4-b378-863485fc7cff","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"f0d8ee92-babe-468b-ad00-11ec7d02d5cc","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},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"0bf3d3fe-9c74-49bb-ba97-b36b0576a754","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"344464ae-43f4-4475-947c-1b6e809d1a8a"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"5dba03b3-8b09-4fad-9c71-2ab7b7d7cbc1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"6a68c7db-ee88-48c2-9f72-6753a87603c4","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"52a03dca-0715-448e-9420-b85073bce3f0","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"7ccf95d9-f043-437e-b432-109bbc6c06de","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"722e276b-b023-4b9f-99e4-c2a82570aecb","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},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"650a7708-fc76-485a-8342-686b92b8f638","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"3592ab1f-2cb0-417f-8501-a4347c9dbbb6"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"0abfcce3-d35a-42fd-9b46-4da30292ae18","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"c5f02796-ceec-4411-84f6-6a442fe78290","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"1bd17e94-9fa7-49f1-bb1e-ed2d9d536a87","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"af68e659-088c-4465-8d9a-89c812176539","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"62ccd3e1-5c4c-49c6-b542-189b534c7245","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"48fbc965-6b3b-47a5-9518-a6dbcac57ba5","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"186970ae-aa16-4d88-871e-f4cf4a446076"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"3b5e6c81-0d0f-4e3a-a4b3-00dd444ff6f8","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"a37b0471-9fbc-43fb-b822-247d6e3ba6d2","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"2b13c85c-dddc-4ede-9e29-6d9f04db2a1d","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"e1389279-6ed3-4c84-adaa-e8fd3895851c","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"09910cbb-1a25-4e13-8025-208e1fdb0b70","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"30fa83e3-bf4a-41ef-9b7e-dfc32543c931","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"2027c96e-4cd5-4f3c-abfe-00ac370b3879"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"bb04889f-fdff-4fd3-88a6-f97e77271c1d","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"05a7b09f-6055-493e-b2d0-887899636eca","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"f18ba50e-4f9d-4c28-8eac-183e04648fa3","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"704e9216-68aa-46f3-ac92-cdbf203c0b7f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"22947b9e-1858-4a49-ae19-ffc7ab10faae","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"6c6e7df8-3305-4500-b279-484b570eb9b3","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"80040ec1-0a2a-4680-942a-4e7c7057acd8"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"51f7f85f-bba9-4bb7-bc93-c6c5c3baf45b","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"f9f5ca96-a8e8-478a-ba27-0f195906f988","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"521f9d2c-a329-466c-a863-97c4b0677396","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"9f19d9c1-4249-4afd-b5a9-3d147d0a859f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"66ed9913-7c0c-4c32-9293-7bb87beff57c","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},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"489b21c0-458b-4dba-9e4f-8ddff4cbe3cd","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"14127bc9-ab12-4658-959a-294d889cf984"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"3418d995-3368-4cc9-bb1c-e2c53d32bd8d","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"e800ad8b-46de-4e11-b385-90bef32fa896","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"a0af9c6f-cf3a-4616-9097-a0c7d90a6226","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"e79a60ce-c2d0-4bec-8684-9b25fdd0ec1f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"20d219b1-3266-4001-b519-f990949a8936","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},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"649a1783-2353-4679-928b-80a57b35c56b","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"3d1ffc8e-a3bd-43b1-8549-359f597ea003"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"45734d6c-4eb4-47d3-a174-ca8602e9d1c5","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"312629a6-a311-4aae-82c5-e368fab3ddd1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"294c111d-4979-4069-af28-f7aa864d727c","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"9c3cf892-db60-4612-98d4-a64a652c8283","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"ccfdbdab-2c1b-484f-850e-2caa82e79728","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},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"d7306c6c-90fc-4daf-8087-0b580c8744b9","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"319aafb3-37df-4067-b99b-a77831d473c5"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"0c7e97b7-229f-4050-b1ed-c2a5ea580e99","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"c01f958c-cb21-4ce3-ab88-b6fda75beacc","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"2006d040-1a5b-42da-9a5d-f743c5e485dc","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"61050c65-666e-4c0a-bcb9-574f7c784d62","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"bb579eab-a307-4fe7-8131-04454b029b77","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},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"14324f82-fb06-4849-b3c8-d7e17fa2ad5c","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"54a5dd10-c71c-4a82-bf29-54fb0952a54f"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"8570fcc4-1540-4655-8981-a144e23c7b74","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"cba69468-1486-4701-9ce8-983b2e511338","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"3276a4db-523a-40d0-8efa-81929e56b293","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"a6624e8c-be23-40cf-9adc-01bae842fffd","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"9a78fd81-3857-492b-9070-eb5423b38a3b","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},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"3a663a4c-0536-4f14-98a3-ddd72e980ddd","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"ad00644f-bec2-438c-a5cb-afd387a641fc"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"ae350008-bc89-49fb-99c4-82bf8da52ba8","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"0403ce53-e37c-4f40-9758-779e77b3a5f1","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"d24bc71f-bccd-45a2-85a1-95a25fbbe71c","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"43088d96-085c-42ac-83de-56ca63258617","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"5369e6cc-38b9-4022-bd0f-5dabb44c393f","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},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"aec740ec-916e-402d-b259-435fd8a93ff2","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"2d5d9a7b-9354-4d65-bd84-418d3066a1b5"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"0f58ea74-8fbf-4237-b8a3-daff756c62f3","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"0bd1f467-467d-42bd-9aef-d93b45828d30","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"030d087b-5c3c-46f0-8c2d-7505f949ff01","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"33e03c0c-7631-4184-8154-5e4244db54a3","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"7ed576d7-01f4-4130-9484-aa5baf884fab","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},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"794e0f46-4d05-4d40-bfa4-e819343d1540","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"35f23a79-76ef-404c-9e74-1b2b8668a56d"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"f316a762-6150-4cdb-af7a-803cb270e003","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"35e7bc43-56a9-4d59-beb5-ecb5af48c3ec","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"d68ad125-8a89-4ed3-824c-daab0b234784","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"c5c1444b-78dc-4e15-a57c-424cfc2f9419","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"09eed18f-2e45-49fd-8f82-f7bd952b27bd","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},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"c4f8f457-417c-4086-ace0-6bc865e5e593","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"a483f435-dae1-426f-84a1-005f38a4adee"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"63735723-2048-4098-98a2-06af6ffdfdc6","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"4a2699f4-4f7a-447f-be24-304f258d8e74","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"593144bb-ccf6-443d-96ab-b703e24d938a","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"682fc355-292f-46d6-bf1d-dec01ba1dc69","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"1415d505-b94c-46dc-a63f-958fd52c9d47","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},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"5c29ab7c-7b22-4ed8-8490-60fb5fd6897e","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"18eb091c-2f27-4da8-b148-2a017a17c776"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"7d52090c-8c08-44be-b5c7-e6622a36a3fa","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"deaf1cd5-26ac-4f5a-9d5a-7f3b59f6227e","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"4652dbae-7a1a-4ac6-80a0-36f1f313db9b","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"b9cbfd0c-f343-4910-a349-722fe7c59455","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"5347c55b-8457-4c31-83e8-d13babb77ddd","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},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"1ff7bdb5-e4e9-45e3-9d7d-c051ee863d91","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},"uiObject":{},"referenceParent":{"type":"Backtesting Session","name":"Back WHB","id":"1c5ca4dd-4f3b-43f8-8df7-c0cc49d46784"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"b13a7784-3575-4440-aa82-6340188b0b72","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"751d2e31-7208-4cc4-b9cd-da19c43f06a9","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"2a9592f9-f927-45cb-903b-c84dfc5a66f9","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"fc00c932-bbb3-4378-a664-7d8c3cf8430f","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"b0d26488-5fd2-4fca-a016-7a04d70ae67c","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},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"afaa3f9d-629a-4d88-9f59-ccb115a56e0a","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},"uiObject":{},"referenceParent":{"type":"Paper Trading Session","name":"Paper WHB","id":"d97d79cf-46fb-482c-9fbd-709020923b33"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"750b507c-403a-4129-9994-9ae47e5490ca","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"4d53fa0f-3d63-487b-9038-a20cda44ea08","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"86d2eba5-d6c0-4c01-800b-7e588dbcfe9d","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"06949030-7c58-4e05-ab36-377b3af6a209","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"404a0509-2978-4a2f-a51b-bbe691dfd01b","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},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"af2645fa-1b16-4bc7-b5a2-7c1852ebe8cc","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},"uiObject":{},"referenceParent":{"type":"Live Trading Session","name":"Live Trading WHB","id":"d0eddac6-eaab-43cc-a614-e39e31bc6ba6"}}},{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"6b22c3fc-9f1c-46c5-b523-2b304a413638","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"5d5e60f6-d08f-42d4-8abe-5444ed489407","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"18608e8d-8a44-4db7-a4d8-6e8534acc63e","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"86f69bbf-ad6e-4fc2-b659-a426854215d3","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},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"1f642579-16de-4b8b-a8f9-40a8ff038883","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},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"92a5dbdc-a4af-43b6-b13c-4eb21349f81b","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Fordward Testing Session","name":"Fwd WHB","id":"6c33d084-bd54-4490-a047-92d3e75037ff"}}}],"id":"b858db34-905c-4630-8e58-3087fd02fa04","savedPayload":{"position":{"x":26588.823240088594,"y":28838.406715640074},"targetPosition":{"x":26634.823240088594,"y":28936.406715640074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Crypto Exchange","name":"Bittrex","id":"a9a5c7bc-797b-4cd1-b24e-a627cd396d3e"}}}],"id":"29ca14e5-dabe-470a-be64-ed7996bd1e55","savedPayload":{"position":{"x":26634.823240088594,"y":28936.406715640074},"targetPosition":{"x":26098.49515065793,"y":29532.530595964006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0726a9e4-23b6-4d27-a8de-e91a9665a8ba","savedPayload":{"position":{"x":26098.665191246688,"y":29532.534371844922},"targetPosition":{"x":26594.29660616895,"y":31058.190798041436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"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 Binance 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f0d1b62d-d06b-47d1-92e1-96c9bf4e56bf","savedPayload":{"position":{"x":26251.175867168226,"y":28993.11722055441},"targetPosition":{"x":26512.089816431915,"y":29143.678599268736},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"0988bed2-580c-409c-a5f2-0c38bc9607a6","savedPayload":{"position":{"x":26512.089816431915,"y":29143.678599268736},"targetPosition":{"x":26773.058046957303,"y":29294.188878918892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"e6fa136c-36b8-4336-b566-db51f8c6a532","savedPayload":{"position":{"x":26773.058046957303,"y":29294.188878918892},"targetPosition":{"x":27034.220604159294,"y":29444.678651798808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"04a99866-74bf-445b-ba21-af3f2befda1a","savedPayload":{"position":{"x":27034.220604159294,"y":29444.678651798808},"targetPosition":{"x":27555.968433228925,"y":29745.469293738013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"85447c73-b639-428a-8838-0a61b48b082f","savedPayload":{"position":{"x":26677.826209330622,"y":28536.89431091633},"targetPosition":{"x":26890.91381502073,"y":28749.938779991644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"0c576570-4a8a-4780-bd3d-e008036b1ee1","savedPayload":{"position":{"x":26890.91381502073,"y":28749.938779991644},"targetPosition":{"x":27103.991372602486,"y":28962.940168138117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"40437b0c-3abb-4290-8973-73bb8ebf548c","savedPayload":{"position":{"x":26870.17253726312,"y":28090.215620627387},"targetPosition":{"x":26987.067657805354,"y":28526.50568225552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"97582cd3-396f-426f-b880-9289367cfce0","savedPayload":{"position":{"x":26987.067657805354,"y":28526.50568225552},"targetPosition":{"x":27103.991372602486,"y":28962.940168138117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"93902e91-7f80-4a6d-b55e-68791c9b9125","savedPayload":{"position":{"x":27103.991372602486,"y":28962.940168138117},"targetPosition":{"x":27254.773590290217,"y":29223.97709140833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"032b3631-d68f-46b8-94f4-4a19255235b1","savedPayload":{"position":{"x":27254.773590290217,"y":29223.97709140833},"targetPosition":{"x":27555.968433228925,"y":29745.469293738013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"25791602-af65-4def-a1c4-083c750df7ab","savedPayload":{"position":{"x":27400.17241326824,"y":28259.538772723794},"targetPosition":{"x":27478.074403730137,"y":28550.655457668017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"765581ea-230f-4897-a01a-831a938df72e","savedPayload":{"position":{"x":27478.074403730137,"y":28550.655457668017},"targetPosition":{"x":27555.962276372233,"y":28841.721942239306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"7b8b2e7b-532a-44fd-a1ca-fe5e0e3d10de","savedPayload":{"position":{"x":27789.629360567407,"y":27968.908087188105},"targetPosition":{"x":27672.83762868678,"y":28405.244084295035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"edd2ffeb-cbdd-45b3-9e27-d9bcf787bcbd","savedPayload":{"position":{"x":27672.83762868678,"y":28405.244084295035},"targetPosition":{"x":27555.962276372233,"y":28841.721942239306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"69698029-8810-4411-9c07-6e0ac2e183f5","savedPayload":{"position":{"x":27555.962276372233,"y":28841.721942239306},"targetPosition":{"x":27555.962954175593,"y":29143.22489270746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"bd25aa62-ba59-40df-9f8f-4886421d8425","savedPayload":{"position":{"x":27555.962954175593,"y":29143.22489270746},"targetPosition":{"x":27555.968433228925,"y":29745.469293738013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"00b4b545-6d53-4d82-a186-18a7d35b52e9","savedPayload":{"position":{"x":28163.78285874353,"y":28380.751403213893},"targetPosition":{"x":28085.802313948436,"y":28671.84127945349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"ff781f76-6cc7-4d72-bf6e-eab24b698fe8","savedPayload":{"position":{"x":28085.802313948436,"y":28671.84127945349},"targetPosition":{"x":28007.837758235888,"y":28962.87251601186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"591adf75-b738-43ff-b715-3b898d9ea577","savedPayload":{"position":{"x":28646.69591181678,"y":28323.997114904283},"targetPosition":{"x":28327.337839864278,"y":28643.39938099329},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"9d987fe3-3d9b-4724-be53-045662de6523","savedPayload":{"position":{"x":28327.337839864278,"y":28643.39938099329},"targetPosition":{"x":28007.837758235888,"y":28962.87251601186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"4a5b7723-a9b9-4244-8fff-5b4456032c5e","savedPayload":{"position":{"x":28007.837758235888,"y":28962.87251601186},"targetPosition":{"x":27857.103470214646,"y":29223.93718528085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4ab65e7a-38b7-45b2-901c-c79e5f574d5c","savedPayload":{"position":{"x":27857.103470214646,"y":29223.93718528085},"targetPosition":{"x":27555.968433228925,"y":29745.469293738013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"43d18d28-f0c1-4ed4-9794-238a29ee5a88","savedPayload":{"position":{"x":28765.060817728005,"y":28868.186615519273},"targetPosition":{"x":28551.946897669593,"y":29081.17483347477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"5282ce2b-b32f-44ac-8322-c52109f0a586","savedPayload":{"position":{"x":28551.946897669593,"y":29081.17483347477},"targetPosition":{"x":28338.86156491134,"y":29294.076999276625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"f17378e1-03e4-48a1-82ad-45cf7e78b94c","savedPayload":{"position":{"x":29211.591234298503,"y":29060.51483832862},"targetPosition":{"x":28775.316860942043,"y":29177.335848740142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"b6bff527-beb5-40dc-a683-6f76f3ec00d5","savedPayload":{"position":{"x":28775.316860942043,"y":29177.335848740142},"targetPosition":{"x":28338.86156491134,"y":29294.076999276625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"isRunning":true,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"87aeb0d8-dfc9-47ef-bd6f-94b98c917e44","savedPayload":{"position":{"x":28338.86156491134,"y":29294.076999276625},"targetPosition":{"x":28077.703724954106,"y":29444.583977291706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"733c0927-266e-4cb9-98f2-993a9985bc5a","savedPayload":{"position":{"x":28077.703724954106,"y":29444.583977291706},"targetPosition":{"x":27555.968433228925,"y":29745.469293738013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":""}}}],"id":"2d98079e-b92f-46dc-9543-d8ce4bfa123a","savedPayload":{"position":{"x":26415.436956773436,"y":30370.067280403073},"targetPosition":{"x":27008.016148604005,"y":30262.239849226014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"isRunning":true,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Binance 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"e61208f4-2952-49bf-be82-163977d32a8d","savedPayload":{"position":{"x":27101.591036166952,"y":28315.761199831297},"targetPosition":{"x":27325.379580148066,"y":28517.27640370036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"7c372229-5fd3-44a5-b7bd-1bd4a57423bc","savedPayload":{"position":{"x":27325.379580148066,"y":28517.27640370036},"targetPosition":{"x":27549.179340134913,"y":28718.74280636914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"ab457fa8-2998-485e-8b96-6718cd28a4f9","savedPayload":{"position":{"x":27674.0091173583,"y":28129.553072305975},"targetPosition":{"x":27611.594473475354,"y":28424.184155973137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"7e1334c3-8240-4e47-8973-a0f7f8c71e23","savedPayload":{"position":{"x":27611.594473475354,"y":28424.184155973137},"targetPosition":{"x":27549.179340134913,"y":28718.74280636914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"422db7cf-42c4-48a1-9fb3-1d76f42e8906","savedPayload":{"position":{"x":27549.179340134913,"y":28718.74280636914},"targetPosition":{"x":27735.181210284827,"y":29291.11042076691},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3002d0b5-629b-49a4-88c7-7acaa47828cf","savedPayload":{"position":{"x":27735.181210284827,"y":29291.11042076691},"targetPosition":{"x":27921.406016011522,"y":29863.90512418266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"2a4e2d75-0128-4a35-bbf1-7adc789baa7d","savedPayload":{"position":{"x":28168.410851599314,"y":28129.41101825936},"targetPosition":{"x":28230.860896193557,"y":28424.061613603662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"42432aa2-c0c5-40dd-bb70-266285c06973","savedPayload":{"position":{"x":28230.860896193557,"y":28424.061613603662},"targetPosition":{"x":28293.337175782275,"y":28718.654535744856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"ac40007e-c7ff-49df-8fb3-d2e5a1bacb6e","savedPayload":{"position":{"x":28740.79445161879,"y":28315.50400068005},"targetPosition":{"x":28517.054712360226,"y":28517.110052486278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"6f8a11a2-d5a2-4f7b-9080-4b1ad577ebe3","savedPayload":{"position":{"x":28517.054712360226,"y":28517.110052486278},"targetPosition":{"x":28293.337175782275,"y":28718.654535744856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"841c0ee7-e105-44a9-816d-191928a06c25","savedPayload":{"position":{"x":28293.337175782275,"y":28718.654535744856},"targetPosition":{"x":28107.431453492987,"y":29291.075527994162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"345a515e-3d09-4b91-aedc-a4778e63696b","savedPayload":{"position":{"x":28107.431453492987,"y":29291.075527994162},"targetPosition":{"x":27921.406016011522,"y":29863.90512418266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"421d1f17-1b71-401a-ae45-9e278b3be2a9","savedPayload":{"position":{"x":29140.64557545473,"y":28605.979920896778},"targetPosition":{"x":29018.08695466695,"y":28881.101387507493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"0be8dc59-3aef-472c-9947-1d2ddaf5a74f","savedPayload":{"position":{"x":29018.08695466695,"y":28881.101387507493},"targetPosition":{"x":28895.58337309814,"y":29156.187848084468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"54e3b937-b1ce-4e1c-8099-8c6de5de9030","savedPayload":{"position":{"x":29494.637287669193,"y":29093.216106144962},"targetPosition":{"x":29195.084523405338,"y":29124.721274944102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"d8884179-0797-4c0a-a0a7-0985d74758c6","savedPayload":{"position":{"x":29195.084523405338,"y":29124.721274944102},"targetPosition":{"x":28895.58337309814,"y":29156.187848084468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"aebd0bf9-404f-4eb7-b225-1f06b4cf7b41","savedPayload":{"position":{"x":28895.58337309814,"y":29156.187848084468},"targetPosition":{"x":28408.66936706822,"y":29509.923535709546},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a54f190c-9fda-4355-9cae-6b7fcca795b9","savedPayload":{"position":{"x":28408.66936706822,"y":29509.923535709546},"targetPosition":{"x":27921.406016011522,"y":29863.90512418266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"13a4e981-1813-42a7-949e-fe952434d28a","savedPayload":{"position":{"x":29647.31995567389,"y":29563.058710306996},"targetPosition":{"x":29386.42387672646,"y":29713.501156832346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"caa30d63-3ba5-4ef4-acea-48b0f8aa9db4","savedPayload":{"position":{"x":29386.42387672646,"y":29713.501156832346},"targetPosition":{"x":29125.601255347876,"y":29863.940457914934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"isRunning":true},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"9366d75c-8e76-4908-bf88-0fb211e26c1c","savedPayload":{"position":{"x":29647.2515368352,"y":30164.97208213648},"targetPosition":{"x":29386.400973590786,"y":30014.46054676091},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"db4917c7-9897-45c7-a804-d4196cd7311e","savedPayload":{"position":{"x":29386.400973590786,"y":30014.46054676091},"targetPosition":{"x":29125.601255347876,"y":29863.940457914934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"isRunning":true,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"de21421d-d42d-44fa-b228-6a229aedfdd1","savedPayload":{"position":{"x":29125.601255347876,"y":29863.940457914934},"targetPosition":{"x":28523.739613473317,"y":29863.934425740816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"2b32bf29-65a0-4c6e-881d-4f4ba08027d8","savedPayload":{"position":{"x":28523.739613473317,"y":29863.934425740816},"targetPosition":{"x":27921.406016011522,"y":29863.90512418266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":true,"shortcutKey":""}}}],"id":"6b9d6ba9-ca79-4f0f-a542-30ccc99ffcf7","savedPayload":{"position":{"x":26427.297975228812,"y":30102.11840390363},"targetPosition":{"x":27008.016148604005,"y":30262.239849226014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"isRunning":true,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Binance 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"790ce100-daa0-4266-8624-d4049b059799","savedPayload":{"position":{"x":28450.495438950187,"y":28691.197767298218},"targetPosition":{"x":28388.05937678759,"y":28986.02178396805},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"2a0d3bfd-04c0-4f00-95d5-9fa7bfae7887","savedPayload":{"position":{"x":28388.05937678759,"y":28986.02178396805},"targetPosition":{"x":28325.736005128623,"y":29280.939019029895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"8f57b58a-f6b8-4acc-843b-04a787faa93e","savedPayload":{"position":{"x":28325.736005128623,"y":29280.939019029895},"targetPosition":{"x":28263.496619487985,"y":29576.191111926815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"8af7bc98-0848-4357-9f8d-de3050f4d99e","savedPayload":{"position":{"x":28263.496619487985,"y":29576.191111926815},"targetPosition":{"x":28138.875021926935,"y":30165.598322720216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"82d88e81-7b67-4960-aa78-fc6efeaf4735","savedPayload":{"position":{"x":29016.831071503748,"y":28956.23260359864},"targetPosition":{"x":28880.07088295182,"y":29224.90422567412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"984d9c06-3e2d-476f-8f9a-32851f54430d","savedPayload":{"position":{"x":28880.07088295182,"y":29224.90422567412},"targetPosition":{"x":28743.383188780663,"y":29493.54132143682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"7a8c35fe-bda9-4239-9acb-d9514cc6495a","savedPayload":{"position":{"x":29501.113701567458,"y":29001.306769235325},"targetPosition":{"x":29122.329576837423,"y":29247.369648177202},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"3121802f-c54a-4076-a09d-73c8a77fc674","savedPayload":{"position":{"x":29122.329576837423,"y":29247.369648177202},"targetPosition":{"x":28743.383188780663,"y":29493.54132143682},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"c7d909fe-024f-4e09-9a2f-c0bc07453b94","savedPayload":{"position":{"x":28743.383188780663,"y":29493.54132143682},"targetPosition":{"x":28541.697986570383,"y":29717.85479055212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7db03422-9b58-4b79-9bfa-18cd63648c13","savedPayload":{"position":{"x":28541.697986570383,"y":29717.85479055212},"targetPosition":{"x":28138.875021926935,"y":30165.598322720216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"398f7a14-ca45-4f8c-a82d-174d16e16a85","savedPayload":{"position":{"x":29504.198387076358,"y":29558.04090822969},"targetPosition":{"x":29251.31239145059,"y":29722.1792245324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"5567789a-8343-4f1a-8771-54c2b26d2ac9","savedPayload":{"position":{"x":29251.31239145059,"y":29722.1792245324},"targetPosition":{"x":28998.527288030753,"y":29886.29941775846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"5c652fdc-0cf7-4e95-9660-373c69fc099e","savedPayload":{"position":{"x":29901.003941334257,"y":29839.127416340827},"targetPosition":{"x":29449.865697251043,"y":29862.72638377672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"b96f5340-69eb-4c66-b97b-2451d38d36d2","savedPayload":{"position":{"x":29449.865697251043,"y":29862.72638377672},"targetPosition":{"x":28998.527288030753,"y":29886.29941775846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"838211c6-f9fa-485f-af31-e6fb63631a9a","savedPayload":{"position":{"x":28998.527288030753,"y":29886.29941775846},"targetPosition":{"x":28711.644020219435,"y":29979.501004474165},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"f10c857b-ba9d-4abc-b9de-c40acd651334","savedPayload":{"position":{"x":28711.644020219435,"y":29979.501004474165},"targetPosition":{"x":28138.875021926935,"y":30165.598322720216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"c1c21b38-2ebc-4fa4-b20f-98305052347a","savedPayload":{"position":{"x":29625.127311231798,"y":30322.12733689015},"targetPosition":{"x":29323.999584697238,"y":30337.73014295461},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"99ecd002-54eb-4384-aa29-f55f190fb65f","savedPayload":{"position":{"x":29323.999584697238,"y":30337.73014295461},"targetPosition":{"x":29022.99166525844,"y":30353.34217624201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"f6f316b9-90e2-4b2d-bedb-5345508115c2","savedPayload":{"position":{"x":29828.224886340337,"y":30763.320259020835},"targetPosition":{"x":29425.673132037642,"y":30558.40590017702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"d77d9de3-6b13-4b43-b392-15f917b45e8d","savedPayload":{"position":{"x":29425.673132037642,"y":30558.40590017702},"targetPosition":{"x":29022.99166525844,"y":30353.34217624201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"b4c0cd08-79e8-4bf0-b680-31698ae02f79","savedPayload":{"position":{"x":29022.99166525844,"y":30353.34217624201},"targetPosition":{"x":28727.949413206825,"y":30290.74389627046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"bf2af063-52f0-4222-851b-772b00b82306","savedPayload":{"position":{"x":28727.949413206825,"y":30290.74389627046},"targetPosition":{"x":28138.875021926935,"y":30165.598322720216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"12617542-a475-43cd-bf96-3c10c837981b","savedPayload":{"position":{"x":29347.07344712581,"y":31044.24766479718},"targetPosition":{"x":29078.467467842078,"y":30907.4528019673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"8bf24b4f-7f27-4226-a818-b73b99925ec2","savedPayload":{"position":{"x":29078.467467842078,"y":30907.4528019673},"targetPosition":{"x":28810.029287091533,"y":30770.70584542992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"ec1c092b-3c63-4395-8185-9115c14d725e","savedPayload":{"position":{"x":29302.18217551137,"y":31528.237796075777},"targetPosition":{"x":29056.03148004259,"y":31149.57321003345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"ef789b78-7b13-4ad8-bac9-169f2e85d7e7","savedPayload":{"position":{"x":29056.03148004259,"y":31149.57321003345},"targetPosition":{"x":28810.029287091533,"y":30770.70584542992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"8738ad16-e064-4fd4-8b4c-d23031c14f0f","savedPayload":{"position":{"x":28810.029287091533,"y":30770.70584542992},"targetPosition":{"x":28586.11406768882,"y":30568.867799849588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"19309103-b95c-4915-9761-260980f6c2d4","savedPayload":{"position":{"x":28586.11406768882,"y":30568.867799849588},"targetPosition":{"x":28138.875021926935,"y":30165.598322720216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"08c42324-3713-4c60-b3d8-ba4f2501ce1b","savedPayload":{"position":{"x":26554.400208622224,"y":29865.888948648906},"targetPosition":{"x":27008.016148604005,"y":30262.239849226014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Binance 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"8a9fabc6-33bd-4dd0-984e-567f150fbfde","savedPayload":{"position":{"x":29352.28155897476,"y":29273.60783708635},"targetPosition":{"x":29229.27973106906,"y":29549.157950199336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"2ee5d3e7-c201-446b-9ecd-5dbdf189fb32","savedPayload":{"position":{"x":29229.27973106906,"y":29549.157950199336},"targetPosition":{"x":29106.453475127983,"y":29825.04407455065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"2edfdf32-974c-471a-b787-f3c605bcdf71","savedPayload":{"position":{"x":30304.083031788115,"y":29698.92785493428},"targetPosition":{"x":29705.39990105646,"y":29761.87416732225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"3bcf4b90-593f-44df-ba8b-5765307ebbb1","savedPayload":{"position":{"x":29705.39990105646,"y":29761.87416732225},"targetPosition":{"x":29106.453475127983,"y":29825.04407455065},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"08fb42b9-7801-43d5-b930-2129aa68faae","savedPayload":{"position":{"x":29106.453475127983,"y":29825.04407455065},"targetPosition":{"x":28618.596414890224,"y":30179.065081006484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"39ff7844-ba51-4141-9aa7-5d47265c9336","savedPayload":{"position":{"x":28618.596414890224,"y":30179.065081006484},"targetPosition":{"x":28138.967928127608,"y":30537.046107606628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"58ed32e0-c345-428b-b9e1-df8a64f01b28","savedPayload":{"position":{"x":29864.813040557146,"y":30238.158699808006},"targetPosition":{"x":29603.180099025823,"y":30388.576866274663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"118f37de-568d-4f28-becb-be38b853d0e6","savedPayload":{"position":{"x":29603.180099025823,"y":30388.576866274663},"targetPosition":{"x":29341.655556118796,"y":30538.581773470938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"9ac494d0-492a-46b8-afd9-3ee1671d1e0b","savedPayload":{"position":{"x":30384.757575121846,"y":31140.576820039434},"targetPosition":{"x":29863.43065230231,"y":30839.825092767478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"a9ab3199-9816-4411-bae7-1752c4d68a13","savedPayload":{"position":{"x":29863.43065230231,"y":30839.825092767478},"targetPosition":{"x":29341.655556118796,"y":30538.581773470938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"3e789af3-3599-406f-9df4-872df64a724b","savedPayload":{"position":{"x":29341.655556118796,"y":30538.581773470938},"targetPosition":{"x":28742.587416226026,"y":30537.443118616895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3387f77d-91d6-431b-ae14-05ed2a91c9ce","savedPayload":{"position":{"x":28742.587416226026,"y":30537.443118616895},"targetPosition":{"x":28138.967928127608,"y":30537.046107606628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"c330cabd-3966-44b7-a7c6-b4e6697512b3","savedPayload":{"position":{"x":29713.012579695293,"y":31309.846703235995},"targetPosition":{"x":29413.083798293937,"y":31278.098864443346},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"8050a6f2-f005-45fd-b558-f45b6dee186e","savedPayload":{"position":{"x":29413.083798293937,"y":31278.098864443346},"targetPosition":{"x":29113.137420105784,"y":31246.29365140931},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"a8b8d621-73e5-4f75-97f1-3da919c037ab","savedPayload":{"position":{"x":29603.248199830592,"y":32346.072066393266},"targetPosition":{"x":29358.345084372617,"y":31796.284547906827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"54042fa5-c3fe-49e5-b567-4b8d9c48dc80","savedPayload":{"position":{"x":29358.345084372617,"y":31796.284547906827},"targetPosition":{"x":29113.137420105784,"y":31246.29365140931},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"0907ffd4-7ee5-455e-a153-56d348c9dfa7","savedPayload":{"position":{"x":29113.137420105784,"y":31246.29365140931},"targetPosition":{"x":28625.89977565306,"y":30891.779427400415},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7d6c7f68-47f9-48a8-bd6f-41bb912d4a74","savedPayload":{"position":{"x":28625.89977565306,"y":30891.779427400415},"targetPosition":{"x":28138.967928127608,"y":30537.046107606628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"a3c6dbb4-64cf-40b8-948d-ba02eb73ff38","savedPayload":{"position":{"x":28958.00452524995,"y":32086.3659181454},"targetPosition":{"x":28733.388879499496,"y":31884.193625107702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"b926004f-db46-4f14-bf63-dc342df8e3ec","savedPayload":{"position":{"x":28733.388879499496,"y":31884.193625107702},"targetPosition":{"x":28509.84253896825,"y":31682.245775539548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/BTC","id":"a1e7b61c-fe35-4ad6-9944-ead2be5736ab","savedPayload":{"position":{"x":28260.112198216862,"y":32860.22332170405},"targetPosition":{"x":28384.9492527613,"y":32271.39555695621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"a2bdab86-f06d-4a85-9625-d5904886fdb0","savedPayload":{"position":{"x":28384.9492527613,"y":32271.39555695621},"targetPosition":{"x":28509.84253896825,"y":31682.245775539548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"35fc7b66-620b-44c0-9ce5-fefc451348cc","savedPayload":{"position":{"x":28509.84253896825,"y":31682.245775539548},"targetPosition":{"x":28324.44796297972,"y":31110.154529324638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"0684277b-fa76-4801-9770-4f091eb29419","savedPayload":{"position":{"x":28324.44796297972,"y":31110.154529324638},"targetPosition":{"x":28138.967928127608,"y":30537.046107606628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"d966e95c-3600-4bc8-b52d-4f2a154e549d","savedPayload":{"position":{"x":26771.402306061416,"y":29708.220250145616},"targetPosition":{"x":27008.016148604005,"y":30262.239849226014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Binance 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"86fbc64c-2516-47b9-bbf6-f8788c042ad4","savedPayload":{"position":{"x":25711.992228843228,"y":28835.503973519455},"targetPosition":{"x":25965.980387603922,"y":28997.679637552377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"17658079-639c-43d6-8913-e32cbb2471a5","savedPayload":{"position":{"x":25965.980387603922,"y":28997.679637552377},"targetPosition":{"x":26220.051018892103,"y":29159.866653296784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"e695602d-bbe3-4694-9027-d37eef72fd44","savedPayload":{"position":{"x":26220.051018892103,"y":29159.866653296784},"targetPosition":{"x":26474.305522059305,"y":29322.155277645183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"e29496cd-e600-4104-a8d5-487601e68699","savedPayload":{"position":{"x":26474.305522059305,"y":29322.155277645183},"targetPosition":{"x":26982.170807735813,"y":29646.33592089329},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"723ec55e-7b02-4801-8d16-933a6726cbe4","savedPayload":{"position":{"x":26158.987780083946,"y":28399.011987984373},"targetPosition":{"x":26362.34227125616,"y":28621.491311212285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"5f477701-25e0-435e-9ff9-7214125406c1","savedPayload":{"position":{"x":26362.34227125616,"y":28621.491311212285},"targetPosition":{"x":26565.688095275847,"y":28843.947584986705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"3424aee7-1b52-4ded-9ca2-7dec5f8f3b8f","savedPayload":{"position":{"x":26371.222255077726,"y":27961.451237061545},"targetPosition":{"x":26468.442186844855,"y":28402.615379902512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"9a1977f5-13ed-473a-9ed2-59abf2d5333f","savedPayload":{"position":{"x":26468.442186844855,"y":28402.615379902512},"targetPosition":{"x":26565.688095275847,"y":28843.947584986705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"95055c59-5ad3-48da-a9e3-5bf12f7b8dff","savedPayload":{"position":{"x":26565.688095275847,"y":28843.947584986705},"targetPosition":{"x":26704.639335236152,"y":29111.632019447432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"cdf93888-385b-465d-a9a8-e4548d48e5f9","savedPayload":{"position":{"x":26704.639335236152,"y":29111.632019447432},"targetPosition":{"x":26982.170807735813,"y":29646.33592089329},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"0d26fbe4-154f-4c3a-b7be-7a50c7dfe378","savedPayload":{"position":{"x":26892.960539694355,"y":28154.418570089398},"targetPosition":{"x":26957.722078054187,"y":28448.82178971958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"a4b05091-e1ea-46be-a8d2-37080de39f3e","savedPayload":{"position":{"x":26957.722078054187,"y":28448.82178971958},"targetPosition":{"x":27022.483333722692,"y":28743.185776129216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"60ccfdf7-c81c-41b4-971a-fcd296d8a9a1","savedPayload":{"position":{"x":27295.07704872237,"y":27881.60396344918},"targetPosition":{"x":27158.81909695787,"y":28312.318330523714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"40f12fe7-fd25-4948-b8f5-36bc894e73a5","savedPayload":{"position":{"x":27158.81909695787,"y":28312.318330523714},"targetPosition":{"x":27022.483333722692,"y":28743.185776129216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"9c502cb5-b14d-4139-9b9d-eb566222ccb2","savedPayload":{"position":{"x":27022.483333722692,"y":28743.185776129216},"targetPosition":{"x":27009.073099702604,"y":29044.50482496574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7fdd1512-6556-46ef-8670-e132d6ab2fb1","savedPayload":{"position":{"x":27009.073099702604,"y":29044.50482496574},"targetPosition":{"x":26982.170807735813,"y":29646.33592089329},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"afb80e56-eb82-474f-b1fc-035885398063","savedPayload":{"position":{"x":27650.728195625656,"y":28309.816468140547},"targetPosition":{"x":27559.748557966916,"y":28597.191205034902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"84178774-1c48-462b-8723-c7c4fc9483c2","savedPayload":{"position":{"x":27559.748557966916,"y":28597.191205034902},"targetPosition":{"x":27468.782960622186,"y":28884.524067378366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"d69b0013-c97b-4926-9131-f600fd4a457e","savedPayload":{"position":{"x":28135.711217117074,"y":28274.808066194764},"targetPosition":{"x":27802.321661376478,"y":28579.62476475681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"ee4b0c57-5ddd-48d6-8dec-43f0e3a2cc9b","savedPayload":{"position":{"x":27802.321661376478,"y":28579.62476475681},"targetPosition":{"x":27468.782960622186,"y":28884.524067378366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"63c0c0a6-9009-4343-936e-54a11917e99e","savedPayload":{"position":{"x":27468.782960622186,"y":28884.524067378366},"targetPosition":{"x":27306.45640505809,"y":29138.679378348217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"cc042f6e-0fd5-4df2-904f-f070d55bb62f","savedPayload":{"position":{"x":27306.45640505809,"y":29138.679378348217},"targetPosition":{"x":26982.170807735813,"y":29646.33592089329},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"3bd39ff6-1f95-4bf4-8317-58bb1a06bee7","savedPayload":{"position":{"x":28229.667933865174,"y":28823.782657533557},"targetPosition":{"x":28007.175151862833,"y":29027.07975443241},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"9721eebd-7738-4a52-872e-6951445c1263","savedPayload":{"position":{"x":28007.175151862833,"y":29027.07975443241},"targetPosition":{"x":27784.70789683568,"y":29230.310587151907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"4be24050-f748-4209-9f52-8129faecda38","savedPayload":{"position":{"x":28667.132296145144,"y":29035.952811963303},"targetPosition":{"x":28226.009301899296,"y":29133.16596337056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"ba40c36d-a98b-44c9-a1de-2ad8c0bc7883","savedPayload":{"position":{"x":28226.009301899296,"y":29133.16596337056},"targetPosition":{"x":27784.70789683568,"y":29230.310587151907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"c774c938-a0db-4737-b3cb-fd84e66bf66e","savedPayload":{"position":{"x":27784.70789683568,"y":29230.310587151907},"targetPosition":{"x":27517.00540161689,"y":29369.071192220556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"35797e73-0ec0-4028-b390-ab1bc67a56dc","savedPayload":{"position":{"x":27517.00540161689,"y":29369.071192220556},"targetPosition":{"x":26982.170807735813,"y":29646.33592089329},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"03867c9d-cca5-49e9-8ba7-74b63eeb283d","savedPayload":{"position":{"x":27035.10230166217,"y":29660.375107379346},"targetPosition":{"x":27008.016148604005,"y":30262.239849226014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Binance 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"4aea3d34-0229-4bbf-81bb-165e664d4772","savedPayload":{"position":{"x":26272.445662699258,"y":28306.962467508074},"targetPosition":{"x":26521.303502174902,"y":28476.699962795563},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"1d9667f9-9661-42c5-8915-f82e04f098f5","savedPayload":{"position":{"x":26521.303502174902,"y":28476.699962795563},"targetPosition":{"x":26770.09166011307,"y":28646.447548804266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"719dcad7-d9b3-4fdd-9f4f-58f9130b0162","savedPayload":{"position":{"x":26859.402820140553,"y":27446.24382560135},"targetPosition":{"x":26814.697942167135,"y":28046.27253628945},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"881c2012-8476-4ae8-86af-afc53c43297d","savedPayload":{"position":{"x":26814.697942167135,"y":28046.27253628945},"targetPosition":{"x":26770.09166011307,"y":28646.447548804266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"bcabab07-275f-4b5e-9265-64b8a10840a9","savedPayload":{"position":{"x":26770.09166011307,"y":28646.447548804266},"targetPosition":{"x":27031.17613441115,"y":29188.72530526662},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d7ab015d-aad8-4858-a4d6-19166aa38308","savedPayload":{"position":{"x":27031.17613441115,"y":29188.72530526662},"targetPosition":{"x":27292.682792376236,"y":29731.742286735847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"d67148ae-0f25-4d1b-a579-31d195ff9bd1","savedPayload":{"position":{"x":27304.816503615177,"y":27979.285011303156},"targetPosition":{"x":27406.168516952315,"y":28262.96487666236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"fa8683e7-8366-464a-87a9-89a07ef95417","savedPayload":{"position":{"x":27406.168516952315,"y":28262.96487666236},"targetPosition":{"x":27507.483140504122,"y":28546.571595231308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"fe46098d-62f1-48fc-a68c-01db4500c22c","savedPayload":{"position":{"x":28285.33488502802,"y":27628.299012592597},"targetPosition":{"x":27896.423189702306,"y":28087.353591244493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"20377fe8-d0af-4422-af84-cb0161a26e50","savedPayload":{"position":{"x":27896.423189702306,"y":28087.353591244493},"targetPosition":{"x":27507.483140504122,"y":28546.571595231308},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"87d88bdc-6f28-4e16-a2fd-120405e2994a","savedPayload":{"position":{"x":27507.483140504122,"y":28546.571595231308},"targetPosition":{"x":27400.12253285596,"y":29138.784479655893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8824c642-7cbf-430e-a1e7-891ed4e2ab90","savedPayload":{"position":{"x":27400.12253285596,"y":29138.784479655893},"targetPosition":{"x":27292.682792376236,"y":29731.742286735847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"19d864a9-ec5d-40c1-8ae8-9bd4a6be21a1","savedPayload":{"position":{"x":28332.16477990125,"y":28321.168107943515},"targetPosition":{"x":28247.61117839914,"y":28610.326287213044},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"0eb55275-fd64-4a27-93fe-cb7903029b0a","savedPayload":{"position":{"x":28247.61117839914,"y":28610.326287213044},"targetPosition":{"x":28163.08972976579,"y":28899.407349113982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"ae322d67-564a-4e65-a38f-96895878790f","savedPayload":{"position":{"x":29332.236351939613,"y":28613.900644811827},"targetPosition":{"x":28747.710647969172,"y":28756.589809961817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"3456b823-44b1-4953-a2d6-f6b94102ef69","savedPayload":{"position":{"x":28747.710647969172,"y":28756.589809961817},"targetPosition":{"x":28163.08972976579,"y":28899.407349113982},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"52e3121f-a199-499b-a229-3f636bfe5f13","savedPayload":{"position":{"x":28163.08972976579,"y":28899.407349113982},"targetPosition":{"x":27728.11567533047,"y":29315.309454797993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e188caf5-497c-4e41-9272-91963d8cdfe1","savedPayload":{"position":{"x":27728.11567533047,"y":29315.309454797993},"targetPosition":{"x":27292.682792376236,"y":29731.742286735847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"e5516d88-cb51-458d-aa23-298cda0484d4","savedPayload":{"position":{"x":28962.822002743378,"y":29201.89277858902},"targetPosition":{"x":28724.40802167871,"y":29386.0718610892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"c681f97b-a781-4109-9635-f294f0aa2ea3","savedPayload":{"position":{"x":28724.40802167871,"y":29386.0718610892},"targetPosition":{"x":28486.07517114132,"y":29570.219339198287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance ETH/USDT","id":"7352a2f1-977c-454d-a0ee-8181e1bdc23a","savedPayload":{"position":{"x":29599.904656486156,"y":30025.814931858473},"targetPosition":{"x":29043.022806752346,"y":29797.998811436297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"8be7e229-c974-4256-92c1-4de259c17581","savedPayload":{"position":{"x":29043.022806752346,"y":29797.998811436297},"targetPosition":{"x":28486.07517114132,"y":29570.219339198287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"fe1e2ce5-20b2-41c1-af52-bb3409f702c1","savedPayload":{"position":{"x":28486.07517114132,"y":29570.219339198287},"targetPosition":{"x":27889.697381814683,"y":29650.98796831874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"d811962f-07d8-499d-a7bd-31d9185cabc6","savedPayload":{"position":{"x":27889.697381814683,"y":29650.98796831874},"targetPosition":{"x":27292.682792376236,"y":29731.742286735847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"ae433ba0-348e-41f9-a99a-89664cb3e6a0","savedPayload":{"position":{"x":27293.903714548906,"y":29732.01780043249},"targetPosition":{"x":27008.016148604005,"y":30262.239849226014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"isRunning":false,"shortcutKey":"j"}}}],"id":"4e66604a-5efb-4254-8aff-263e7688c27f","savedPayload":{"position":{"x":26997.806649856066,"y":30248.217161928074},"targetPosition":{"x":27243.528995964287,"y":30586.604273057368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"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 Bitfinex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"f9131e1e-bf69-4693-aaa7-f8af71394bc3","savedPayload":{"position":{"x":28819.64409366507,"y":29310.204371149444},"targetPosition":{"x":28697.259274111955,"y":29585.437508484112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"55a79c2d-5549-48be-8f2c-30f16dc0fd44","savedPayload":{"position":{"x":28697.259274111955,"y":29585.437508484112},"targetPosition":{"x":28574.928470254643,"y":29860.727354487226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"90b32e8d-0c0a-4e22-9501-fc5a4658d310","savedPayload":{"position":{"x":28574.928470254643,"y":29860.727354487226},"targetPosition":{"x":28452.633257312595,"y":30136.201016736995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"e98d6551-0708-46a8-bf06-d6029fad1d52","savedPayload":{"position":{"x":28452.633257312595,"y":30136.201016736995},"targetPosition":{"x":28208.095560043093,"y":30686.528641950692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"8f39f437-984a-4076-8f6b-002a2bcc0a2e","savedPayload":{"position":{"x":29318.051042777624,"y":29686.84511849177},"targetPosition":{"x":29128.48712669202,"y":29921.04995779668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"b0b0951a-1682-4ed1-aad9-9b19b3bf1e70","savedPayload":{"position":{"x":29128.48712669202,"y":29921.04995779668},"targetPosition":{"x":28938.97033930272,"y":30155.233221276663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"8e7e395a-ab45-4fc4-b4b8-3ea44223da87","savedPayload":{"position":{"x":29782.408244305683,"y":29831.44498405973},"targetPosition":{"x":29360.754673895404,"y":29993.321467195718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"550280d5-8908-4dfc-934c-9ea6546478df","savedPayload":{"position":{"x":29360.754673895404,"y":29993.321467195718},"targetPosition":{"x":28938.97033930272,"y":30155.233221276663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"041ff565-2c4c-4f72-b70c-1a8a57d7b2b2","savedPayload":{"position":{"x":28938.97033930272,"y":30155.233221276663},"targetPosition":{"x":28695.18208028708,"y":30332.473848955273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"852a469a-21a6-46de-9dc4-28e4dc44610a","savedPayload":{"position":{"x":28695.18208028708,"y":30332.473848955273},"targetPosition":{"x":28208.095560043093,"y":30686.528641950692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"cbd3d7fa-cd56-4177-be3a-cb6fbcf24da5","savedPayload":{"position":{"x":29669.416303816917,"y":30376.354402829118},"targetPosition":{"x":29388.070217924822,"y":30484.276269091784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"13816cf2-e866-4802-8dfd-ae86e6e3343d","savedPayload":{"position":{"x":29388.070217924822,"y":30484.276269091784},"targetPosition":{"x":29106.78450185431,"y":30592.184424958898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"cffb1edb-1186-422b-ac5c-cd9a7fae7f21","savedPayload":{"position":{"x":29999.21878296537,"y":30733.29359080622},"targetPosition":{"x":29553.069640990718,"y":30662.77030122671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c2cc8e2e-1b26-49ae-ad64-8286f93027ef","savedPayload":{"position":{"x":29553.069640990718,"y":30662.77030122671},"targetPosition":{"x":29106.78450185431,"y":30592.184424958898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"e90cd6a4-e44b-4fb9-a219-8a3ca47e8055","savedPayload":{"position":{"x":29106.78450185431,"y":30592.184424958898},"targetPosition":{"x":28806.982543584214,"y":30623.62422090702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"00b5afff-4997-4bcf-91f0-48ef37a69021","savedPayload":{"position":{"x":28806.982543584214,"y":30623.62422090702},"targetPosition":{"x":28208.095560043093,"y":30686.528641950692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"22a706d6-73f7-4e05-85e3-021cf9f0c5f6","savedPayload":{"position":{"x":29628.751585460337,"y":31148.274759999684},"targetPosition":{"x":29331.110858454893,"y":31101.176652994793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c070659a-d495-41f6-aea1-683db8818d5f","savedPayload":{"position":{"x":29331.110858454893,"y":31101.176652994793},"targetPosition":{"x":29033.538410766098,"y":31054.0825712066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4078e8a6-7255-4cff-8cf2-21f6d5618391","savedPayload":{"position":{"x":29735.686438178895,"y":31622.608381605703},"targetPosition":{"x":29384.65040678403,"y":31338.41466513166},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c19c948d-d5c3-4f41-a52e-ffe23667ae82","savedPayload":{"position":{"x":29384.65040678403,"y":31338.41466513166},"targetPosition":{"x":29033.538410766098,"y":31054.0825712066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"3cbb605e-c223-4429-9194-771aaea8574c","savedPayload":{"position":{"x":29033.538410766098,"y":31054.0825712066},"targetPosition":{"x":28758.183479370164,"y":30931.48046411474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"57ef67ad-a54c-4530-be94-48e23335779b","savedPayload":{"position":{"x":28758.183479370164,"y":30931.48046411474},"targetPosition":{"x":28208.095560043093,"y":30686.528641950692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"2f58dbe0-52cd-4253-ba42-50ad4b85c175","savedPayload":{"position":{"x":29206.812357964354,"y":31797.113534584707},"targetPosition":{"x":28972.714649716996,"y":31607.46669722834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"b5e1c2ef-8351-4a7b-a2c1-b326c32a987f","savedPayload":{"position":{"x":28972.714649716996,"y":31607.46669722834},"targetPosition":{"x":28738.715198136968,"y":31417.840414455204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e4529f91-ca0e-459d-bb9d-0ea356de778f","savedPayload":{"position":{"x":29062.232451494074,"y":32261.30615453916},"targetPosition":{"x":28900.43897819131,"y":31839.665482770168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"b1e65211-b804-4fce-b40d-6a4f81761bb5","savedPayload":{"position":{"x":28900.43897819131,"y":31839.665482770168},"targetPosition":{"x":28738.715198136968,"y":31417.840414455204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"34e53692-96e5-415c-9422-430f96f0610f","savedPayload":{"position":{"x":28738.715198136968,"y":31417.840414455204},"targetPosition":{"x":28561.772290517456,"y":31173.893232506747},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"6a9053d7-da47-44d9-9e34-c6aa32d60990","savedPayload":{"position":{"x":28561.772290517456,"y":31173.893232506747},"targetPosition":{"x":28208.095560043093,"y":30686.528641950692},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"a6b7ad3f-0865-41f0-9edb-e29ce1d0dc44","savedPayload":{"position":{"x":27461.21998671384,"y":29758.83090625762},"targetPosition":{"x":27568.12715964563,"y":30351.42159213987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bitfinex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c7e5efc3-669c-47dd-8f11-9e1004406ee7","savedPayload":{"position":{"x":29689.396731777448,"y":30934.683810970044},"targetPosition":{"x":29428.59802926899,"y":31085.21545516028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"b3a4fed8-2dac-4125-838a-29a2f444acbf","savedPayload":{"position":{"x":29428.59802926899,"y":31085.21545516028},"targetPosition":{"x":29167.84142917581,"y":31235.728680020766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a59d8778-5dd7-467a-b5c5-b9b4e3f49477","savedPayload":{"position":{"x":30210.372739310675,"y":31837.28299243579},"targetPosition":{"x":29689.149501610016,"y":31536.487727323325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"2baa9de0-947f-4351-b497-ac271deb74b3","savedPayload":{"position":{"x":29689.149501610016,"y":31536.487727323325},"targetPosition":{"x":29167.84142917581,"y":31235.728680020766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"aa56ee92-72e2-4d2c-b54c-9afea5eafe05","savedPayload":{"position":{"x":29167.84142917581,"y":31235.728680020766},"targetPosition":{"x":28565.972144186864,"y":31235.73530756687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e35b1926-2d8d-451e-a1d2-0aa3119ec9bb","savedPayload":{"position":{"x":28565.972144186864,"y":31235.73530756687},"targetPosition":{"x":27963.68680993616,"y":31235.912371000493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"79898004-6231-41b2-914a-f361f729f2b5","savedPayload":{"position":{"x":29536.856715432667,"y":32006.40623962035},"targetPosition":{"x":29237.351113824116,"y":31974.944568493414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"578d7709-308c-45b4-a6c8-dcce81f59fd2","savedPayload":{"position":{"x":29237.351113824116,"y":31974.944568493414},"targetPosition":{"x":28937.909418907595,"y":31943.49783381489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"325d5cf9-7c3c-4e87-b152-45a6c9e495b5","savedPayload":{"position":{"x":29427.58393401108,"y":33043.06967088085},"targetPosition":{"x":29182.78477044087,"y":32493.30336719313},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"cf8c4e54-91c7-4cf3-b018-77794a600749","savedPayload":{"position":{"x":29182.78477044087,"y":32493.30336719313},"targetPosition":{"x":28937.909418907595,"y":31943.49783381489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"96b03167-76a8-4f0d-a082-2e308e13a483","savedPayload":{"position":{"x":28937.909418907595,"y":31943.49783381489},"targetPosition":{"x":28450.98258129771,"y":31589.778611288493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5a58f5de-c3a7-4798-be1f-9e5572849fa2","savedPayload":{"position":{"x":28450.98258129771,"y":31589.778611288493},"targetPosition":{"x":27963.68680993616,"y":31235.912371000493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"02f018e9-ba31-47be-9f4f-89c308b0d54c","savedPayload":{"position":{"x":28783.15315468402,"y":32784.13944128222},"targetPosition":{"x":28559.419935735295,"y":32582.58760434374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"8f06bb38-64fa-446c-9c2f-ca30e1fc7f66","savedPayload":{"position":{"x":28559.419935735295,"y":32582.58760434374},"targetPosition":{"x":28335.73124646099,"y":32381.083539810174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"eaab360c-03bf-4efe-ba28-7e6ace3d7670","savedPayload":{"position":{"x":28085.848100436735,"y":33558.585727521975},"targetPosition":{"x":28210.81076368887,"y":32969.874464066204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"16700a31-37fe-4a53-8600-64c6f0cd43ac","savedPayload":{"position":{"x":28210.81076368887,"y":32969.874464066204},"targetPosition":{"x":28335.73124646099,"y":32381.083539810174},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"58492647-957c-489b-ad6c-ecc45a583045","savedPayload":{"position":{"x":28335.73124646099,"y":32381.083539810174},"targetPosition":{"x":28149.7897516823,"y":31808.656422748038},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6c05c115-adad-43d9-87ed-8b8c78abec7b","savedPayload":{"position":{"x":28149.7897516823,"y":31808.656422748038},"targetPosition":{"x":27963.68680993616,"y":31235.912371000493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"262393f8-2810-43db-81a9-5163694a4b56","savedPayload":{"position":{"x":27716.81467952686,"y":32970.19768630679},"targetPosition":{"x":27654.325789189454,"y":32675.560559180572},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"3f824496-11b4-47da-8382-876a1fb62d9c","savedPayload":{"position":{"x":27654.325789189454,"y":32675.560559180572},"targetPosition":{"x":27591.80691127308,"y":32380.994519809916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"12f5070a-c832-47e4-b99b-6e90c52c4540","savedPayload":{"position":{"x":26697.427999788863,"y":33186.95377684832},"targetPosition":{"x":27144.60964199939,"y":32784.181033223285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"2144ffd8-11eb-439f-a749-05ae5c2cfad1","savedPayload":{"position":{"x":27144.60964199939,"y":32784.181033223285},"targetPosition":{"x":27591.80691127308,"y":32380.994519809916},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"b3e1f6bf-94d4-43f2-9aec-f9b3c075b72d","savedPayload":{"position":{"x":27591.80691127308,"y":32380.994519809916},"targetPosition":{"x":27777.62663095034,"y":31808.59254815416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"5eeda923-146f-4526-a270-fb10dda34c45","savedPayload":{"position":{"x":27777.62663095034,"y":31808.59254815416},"targetPosition":{"x":27963.68680993616,"y":31235.912371000493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"40651d3f-521c-47d2-b2c0-b09f06529924","savedPayload":{"position":{"x":27728.534691007295,"y":29770.68165843669},"targetPosition":{"x":27568.12715964563,"y":30351.42159213987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bitfinex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"89e18f80-0a09-465f-a6ac-d8e78b486a4a","savedPayload":{"position":{"x":29190.550088359025,"y":29730.002362676685},"targetPosition":{"x":28992.40774756582,"y":29956.975926366264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"67f5f2b4-1572-4200-949c-ce3396c63683","savedPayload":{"position":{"x":28992.40774756582,"y":29956.975926366264},"targetPosition":{"x":28794.26212871572,"y":30184.045869378697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"91cd7860-825e-4bbc-8c6e-fdc25c2f5b53","savedPayload":{"position":{"x":28794.26212871572,"y":30184.045869378697},"targetPosition":{"x":28596.013200510173,"y":30411.3691312206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2c473538-b1f6-492f-a7fd-3096034efe46","savedPayload":{"position":{"x":28596.013200510173,"y":30411.3691312206},"targetPosition":{"x":28199.879190147047,"y":30865.359988195938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"9d595c37-562b-435d-9f92-89ee59960a22","savedPayload":{"position":{"x":29555.804736265924,"y":30237.202583724047},"targetPosition":{"x":29305.52220347672,"y":30405.140494649986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"c116b697-783d-45df-973a-16ea14e1d648","savedPayload":{"position":{"x":29305.52220347672,"y":30405.140494649986},"targetPosition":{"x":29055.287937907735,"y":30573.071653110183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"9dca7cf8-602b-4448-a2b4-f4ea77f01f57","savedPayload":{"position":{"x":29956.85964684062,"y":30512.33465509597},"targetPosition":{"x":29506.16104407077,"y":30542.704202773304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"74b70081-0ca7-4576-a715-5c7008537821","savedPayload":{"position":{"x":29506.16104407077,"y":30542.704202773304},"targetPosition":{"x":29055.287937907735,"y":30573.071653110183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"cfcb3802-d6fc-42da-bea7-ef778dbf4eca","savedPayload":{"position":{"x":29055.287937907735,"y":30573.071653110183},"targetPosition":{"x":28769.903890204096,"y":30670.592830375437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"52a1b043-422d-4e60-adf8-907846ca5260","savedPayload":{"position":{"x":28769.903890204096,"y":30670.592830375437},"targetPosition":{"x":28199.879190147047,"y":30865.359988195938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"3d22c3a8-19bc-4c01-a585-f90a1cf77fc0","savedPayload":{"position":{"x":29688.341320907315,"y":30999.48459349937},"targetPosition":{"x":29387.55911269396,"y":31019.621788248467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"72e9e97c-8327-4d27-b3bf-022dbc854344","savedPayload":{"position":{"x":29387.55911269396,"y":31019.621788248467},"targetPosition":{"x":29086.839271533583,"y":31039.771758622777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"cedcb62a-4b28-4492-8483-4d0c7ffd933a","savedPayload":{"position":{"x":29898.083914568862,"y":31437.719927307688},"targetPosition":{"x":29492.534839636024,"y":31238.801798975182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"0cb3cb2d-09a0-4a1c-aed2-e27eb86c5914","savedPayload":{"position":{"x":29492.534839636024,"y":31238.801798975182},"targetPosition":{"x":29086.839271533583,"y":31039.771758622777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"f4d56128-fc39-4055-9607-67b10429677c","savedPayload":{"position":{"x":29086.839271533583,"y":31039.771758622777},"targetPosition":{"x":28790.90308225019,"y":30981.619086944334},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1900281c-b995-44f8-9e12-02d62ee13b9a","savedPayload":{"position":{"x":28790.90308225019,"y":30981.619086944334},"targetPosition":{"x":28199.879190147047,"y":30865.359988195938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"a7ee63c3-1b1b-4df0-a90f-d7746610fd3f","savedPayload":{"position":{"x":29421.664749840525,"y":31725.699294492064},"targetPosition":{"x":29151.082817808634,"y":31592.886266975554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"c49f8c8d-e427-472f-868d-2cfd201640e1","savedPayload":{"position":{"x":29151.082817808634,"y":31592.886266975554},"targetPosition":{"x":28880.560528121303,"y":31460.10384346895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"3217d6a5-6b12-4a84-b7af-865e332450a5","savedPayload":{"position":{"x":29383.946015060286,"y":32210.476372524645},"targetPosition":{"x":29132.28192802562,"y":31835.38228025135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"a0cd41ea-a801-417c-9264-77a8f948d1bc","savedPayload":{"position":{"x":29132.28192802562,"y":31835.38228025135},"targetPosition":{"x":28880.560528121303,"y":31460.10384346895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"ac798b93-fc01-4014-91f5-848a260b835e","savedPayload":{"position":{"x":28880.560528121303,"y":31460.10384346895},"targetPosition":{"x":28653.469587538108,"y":31261.677084745847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"a66c35c9-14a0-4843-a286-a0b5e5163a27","savedPayload":{"position":{"x":28653.469587538108,"y":31261.677084745847},"targetPosition":{"x":28199.879190147047,"y":30865.359988195938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"28d3cf14-ea4f-4708-89a3-b2706e0a8d7f","savedPayload":{"position":{"x":28826.976935818322,"y":32221.711199321926},"targetPosition":{"x":28659.18039052936,"y":31971.36249793717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"1437e948-2bc5-43a1-a5ce-3b86f5409d38","savedPayload":{"position":{"x":28659.18039052936,"y":31971.36249793717},"targetPosition":{"x":28491.46786226464,"y":31721.058556519663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex ETH/USDT","id":"efe08393-abb5-4172-b73b-90e2235d2ba5","savedPayload":{"position":{"x":28551.907695045345,"y":32622.612370862782},"targetPosition":{"x":28521.627052010554,"y":32171.937354197846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"cd3f307c-3a28-462a-8883-ee9ad676c4ce","savedPayload":{"position":{"x":28521.627052010554,"y":32171.937354197846},"targetPosition":{"x":28491.46786226464,"y":31721.058556519663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"83f557b9-7227-4b3c-a2f9-3467ce5d8e00","savedPayload":{"position":{"x":28491.46786226464,"y":31721.058556519663},"targetPosition":{"x":28394.2544856133,"y":31435.589599745454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"1b3fef91-9894-469f-8e1c-ad3d7a40e232","savedPayload":{"position":{"x":28394.2544856133,"y":31435.589599745454},"targetPosition":{"x":28199.879190147047,"y":30865.359988195938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"69cdd06d-68f9-47b6-85d6-5ca329785f13","savedPayload":{"position":{"x":27964.621650796296,"y":29897.763744557775},"targetPosition":{"x":27568.12715964563,"y":30351.42159213987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bitfinex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"dc4b0c97-057d-4595-90dd-7db3164da34c","savedPayload":{"position":{"x":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"b8d48b47-492c-4fe9-96b3-f74e232253b1","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c63b683f-76fe-4a3a-bd02-93bf1ffb534a","savedPayload":{"position":{"x":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"b0600249-6b6b-4684-8184-3dfec123c4ba","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"33d01d6d-983e-4ff0-aaca-ed17a2890133","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5b5ed2a7-fb9b-40f1-8fa2-da9ffd3c571d","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"b5aeecb7-3327-4100-957b-506e3701384a","savedPayload":{"position":{"x":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"761924c2-8b4c-46cc-9b01-44ca9382f1b9","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fbd33492-e911-4eb5-9590-88355d079b8a","savedPayload":{"position":{"x":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"1a091a0e-71d7-4a31-b22b-c0ebd8d05e44","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"0126e928-cc2f-44b9-930f-c9955336f164","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"144df863-8d32-49ab-9d9d-d50903647330","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0f32e078-b1a2-42c9-aca6-138aaaf8b1f3","savedPayload":{"position":{"x":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"8e4f1bb9-32b3-45d2-a76b-ea733fb33d48","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"aa040e8e-f2d2-4f44-97ff-cad394c66c4d","savedPayload":{"position":{"x":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"aff95adf-cc18-44e4-bf2f-fa8aecb41862","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"7fdd4410-dfb3-461d-8d7e-f29f427577bd","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2a283a9b-ae94-46dc-9197-4ba81e627a16","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e7fbd6bc-29b9-425d-b1dc-d0fcd64631b4","savedPayload":{"position":{"x":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"84e0889e-7423-4d2a-81d9-f70508a952b8","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"dc974770-1ea2-4a93-93eb-a44a51e28cca","savedPayload":{"position":{"x":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"80b815ba-6426-43df-9618-6bb844ca669e","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"769437e5-48c0-44d6-9327-1d98f54f3237","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"ea07e8d4-a23f-4163-84bf-a5998a201fa2","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"1db13e09-5123-43b2-8f48-78bf8f84b0fc","savedPayload":{"position":{"x":28122.207438004993,"y":30114.738422990737},"targetPosition":{"x":27568.12715964563,"y":30351.42159213987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bitfinex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"25c09663-2df5-4bc5-996b-4ad963543e8a","savedPayload":{"position":{"x":43671.00027239754,"y":28856.943091676305},"targetPosition":{"x":43567.498296733465,"y":29162.3636676408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"22b1b9b1-85d2-489f-a8eb-9b7d9ffe06b1","savedPayload":{"position":{"x":43567.498296733465,"y":29162.3636676408},"targetPosition":{"x":43464.06722420924,"y":29467.842167671126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"7ba3d951-8ae7-42e6-89b3-d9d1673ed98b","savedPayload":{"position":{"x":43464.06722420924,"y":29467.842167671126},"targetPosition":{"x":43360.691361026584,"y":29773.54537737439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"a6252c05-b27a-4fa3-beb3-c0923e7588fc","savedPayload":{"position":{"x":43360.691361026584,"y":29773.54537737439},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"12364aab-eb2c-4a0e-ae59-95e91efdf522","savedPayload":{"position":{"x":44239.36337395328,"y":29209.697635104123},"targetPosition":{"x":44060.2198905935,"y":29477.959510651268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"29df818e-7f31-48bb-98ff-3a75cee8206b","savedPayload":{"position":{"x":44060.2198905935,"y":29477.959510651268},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"eb42805f-3d70-4910-bf2e-210fa391ddfd","savedPayload":{"position":{"x":44748.497652339385,"y":29318.442706041416},"targetPosition":{"x":44314.89113382611,"y":29532.287195826062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"7f325eb5-81fb-4c8e-999a-a3c1cbf674a4","savedPayload":{"position":{"x":44314.89113382611,"y":29532.287195826062},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"7b079b44-474f-4f9a-9cde-e65834c1e882","savedPayload":{"position":{"x":43881.1373749603,"y":29746.194646546814},"targetPosition":{"x":43638.5937543753,"y":29959.064822103785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0f9e042e-d95c-4ff2-ba20-c2b5b6414607","savedPayload":{"position":{"x":43638.5937543753,"y":29959.064822103785},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"f34cde8e-358e-4b5d-935e-bdb224940007","savedPayload":{"position":{"x":44681.5668151454,"y":29910.493454022107},"targetPosition":{"x":44392.18828953674,"y":30053.0939332087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"7be23256-a194-4efe-8dc0-b64759175425","savedPayload":{"position":{"x":44392.18828953674,"y":30053.0939332087},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9224d6b9-9f30-47db-b669-757a9fb36338","savedPayload":{"position":{"x":45068.0607289357,"y":30258.627798760706},"targetPosition":{"x":44585.557101487946,"y":30227.1784612219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"7aa86ce5-1c8a-4eff-a06f-44cf467cfdb0","savedPayload":{"position":{"x":44585.557101487946,"y":30227.1784612219},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"49d745ea-c104-44fc-b32f-8ffe21d6f8f4","savedPayload":{"position":{"x":44102.8905640764,"y":30195.677451532058},"targetPosition":{"x":43786.33364239331,"y":30258.56207231393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1419fd14-9c58-4fdd-86c0-0d20e9b5a4c9","savedPayload":{"position":{"x":43786.33364239331,"y":30258.56207231393},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0a8dd059-f875-4b10-a3a1-3436fa2d8eea","savedPayload":{"position":{"x":44713.87406914462,"y":30737.306304570255},"targetPosition":{"x":44391.91978758277,"y":30716.26641552209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"bfb30667-f07d-4570-a694-a72fc183046b","savedPayload":{"position":{"x":44391.91978758277,"y":30716.26641552209},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"384aa266-cc74-4f4d-8c03-f0cc82131780","savedPayload":{"position":{"x":44874.2365621043,"y":31232.47693669704},"targetPosition":{"x":44472.19774741333,"y":30963.92831312466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"a2c27ee9-ad06-40c2-9616-74c2255ea4bd","savedPayload":{"position":{"x":44472.19774741333,"y":30963.92831312466},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"5df03903-9985-4af9-a9ce-efc74aa9550f","savedPayload":{"position":{"x":44070.057249921745,"y":30695.231631186056},"targetPosition":{"x":43764.46278318986,"y":30591.515062036906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c87669c1-0cf1-4e08-af1c-9b28e3b716dc","savedPayload":{"position":{"x":43764.46278318986,"y":30591.515062036906},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0005c6ff-e933-463e-9e31-3204bdb529ee","savedPayload":{"position":{"x":44327.45578539955,"y":31470.472421210285},"targetPosition":{"x":44059.29115231958,"y":31291.213234147825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"78600560-917b-41cc-8c66-5749ec963efa","savedPayload":{"position":{"x":44059.29115231958,"y":31291.213234147825},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6a2c8676-fc05-48cf-b596-f63f4109f12b","savedPayload":{"position":{"x":44218.71377608719,"y":31979.437936210907},"targetPosition":{"x":44004.95543909178,"y":31545.819012576827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"2ff9aecc-6703-4bd9-8ced-0a302b3f7b8c","savedPayload":{"position":{"x":44004.95543909178,"y":31545.819012576827},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"61f624f7-b8f4-4a6a-bc6f-7c8e55cc4c25","savedPayload":{"position":{"x":43791.2422938607,"y":31111.98146528281},"targetPosition":{"x":43578.70277309983,"y":30869.247361706733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"dc055c14-63cd-4e5b-bb65-8ce2b02cc2d0","savedPayload":{"position":{"x":43578.70277309983,"y":30869.247361706733},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"089f9df9-ceb5-4bf8-984f-e0fc84cdcce7","savedPayload":{"position":{"x":28170.03892931507,"y":30378.472620855715},"targetPosition":{"x":27568.12715964563,"y":30351.42159213987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bitfinex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"168a4db7-d202-4229-9693-92ef52cc9ffe","savedPayload":{"position":{"x":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"d5ea0949-8a85-4ad6-8f7a-6ffdc42b1eb9","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7dc90a87-ddcf-441d-9a67-f5de59259b6d","savedPayload":{"position":{"x":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"f7408366-ca1d-4d83-a551-8c431197c417","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"290df570-11b8-4b06-b89b-65dcdcc11ff4","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ecc54a05-776b-4f9f-82a1-872b59f1c599","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9fd3d2a9-6024-46de-9fc5-b1df062acfc4","savedPayload":{"position":{"x":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"e06ac4ca-7866-4ce6-aa2b-ef93a6dead79","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"cc5ed9b3-23a0-4eae-8716-c7a09eaf6e01","savedPayload":{"position":{"x":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"de1dd2a5-405e-4006-b260-a793829b96bc","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"ecb291f3-6ff7-4006-8497-e66620be53da","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9f4b80e7-d6f7-4cd0-ae72-2ca2c9dff971","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"afb8a977-36c6-4559-800e-96b15c22ed0a","savedPayload":{"position":{"x":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"e2fd3f3b-d25d-4bc8-93cc-1e77f4e1ec8e","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"33827831-773c-4749-9755-e4ef67005a73","savedPayload":{"position":{"x":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"ad992abd-bd48-4d4b-a122-7f86ed9b42a4","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"0beadca2-532d-4c2e-99b4-fa90fb5df80f","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9c10515c-eaf2-445f-99a8-917b8ea18560","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0065af31-1d79-4aee-82c3-e4325178d19e","savedPayload":{"position":{"x":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"7db0fd8a-0f64-48fb-89ab-eb3e3b69adad","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d3554cad-5698-4144-a47c-8a3f73c18918","savedPayload":{"position":{"x":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"5b6459c6-5fea-4bfc-b0b7-590915db6e55","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"15af30b8-fb33-4e62-91ec-7a3f8d287e25","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"2f1605a2-e2ca-497c-8687-8fd5fda19913","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"c53c5447-9711-48ea-8d0b-6397d6d965b1","savedPayload":{"position":{"x":28098.512516610084,"y":30637.138700905794},"targetPosition":{"x":27568.12715964563,"y":30351.42159213987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}}],"id":"5002315a-7fbc-415a-a27a-d6c412ba5488","savedPayload":{"position":{"x":27581.783410152926,"y":30340.8988877297},"targetPosition":{"x":27243.528995964287,"y":30586.604273057368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"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 Bittrex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bittrex BTC/USDT","id":"74ee633c-e222-468c-acd6-6ad653c24303","savedPayload":{"position":{"x":29043.095014691327,"y":27718.331282784882},"targetPosition":{"x":28995.041127876968,"y":28318.230639027825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"bc4a2f5c-55d2-4432-985d-04b99600c0e0","savedPayload":{"position":{"x":28995.041127876968,"y":28318.230639027825},"targetPosition":{"x":28946.985940364357,"y":28918.164264980427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"7f4fb148-9209-4bac-b48f-7312f3c7b66d","savedPayload":{"position":{"x":28946.985940364357,"y":28918.164264980427},"targetPosition":{"x":28898.924732076382,"y":29518.166732726557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ce78198d-d205-4a74-a543-1349d576a7f9","savedPayload":{"position":{"x":28898.924732076382,"y":29518.166732726557},"targetPosition":{"x":28802.67816793728,"y":30718.51423433997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex BTC/USDT","id":"f16676c9-6e53-447f-a632-b3165e714261","savedPayload":{"position":{"x":30231.293480099677,"y":28097.623047498277},"targetPosition":{"x":30029.587295627072,"y":28664.633461754598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"16fca12e-c9e9-4244-8d01-43d0dc033a21","savedPayload":{"position":{"x":30029.587295627072,"y":28664.633461754598},"targetPosition":{"x":29827.880538199603,"y":29231.652549506285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex BTC/USDT","id":"42ca6b20-01e4-469e-bb72-1a44373ea554","savedPayload":{"position":{"x":31201.889359349785,"y":28061.78273787984},"targetPosition":{"x":30514.915511965908,"y":28646.69658358349},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"393535fa-d5f6-4ea6-8b53-120a3963fad5","savedPayload":{"position":{"x":30514.915511965908,"y":28646.69658358349},"targetPosition":{"x":29827.880538199603,"y":29231.652549506285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"750eb291-4e95-4ab2-92cf-1ddf6b180548","savedPayload":{"position":{"x":29827.880538199603,"y":29231.652549506285},"targetPosition":{"x":29486.23016588014,"y":29727.175941500438},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"873e12e5-74cf-4b51-92f4-70ad7206dec7","savedPayload":{"position":{"x":29486.23016588014,"y":29727.175941500438},"targetPosition":{"x":28802.67816793728,"y":30718.51423433997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex BTC/USDT","id":"87c733dd-9574-40aa-bd63-dfe12099fe8b","savedPayload":{"position":{"x":31350.476565558813,"y":29163.306019426873},"targetPosition":{"x":30892.246108533043,"y":29553.42788938838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"53647e8b-1e5e-4bac-a3c5-79f11875c14f","savedPayload":{"position":{"x":30892.246108533043,"y":29553.42788938838},"targetPosition":{"x":30434.01718930615,"y":29943.557873300164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex BTC/USDT","id":"77a07346-f55e-4ab3-a336-5abbf7a2a1cf","savedPayload":{"position":{"x":32208.951780298437,"y":29617.555616623613},"targetPosition":{"x":31321.52043722974,"y":29780.553800923728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"a62799ae-258b-45c5-9d6f-8d47d2485144","savedPayload":{"position":{"x":31321.52043722974,"y":29780.553800923728},"targetPosition":{"x":30434.01718930615,"y":29943.557873300164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"176967a4-cd9b-4d91-84ee-f8eef6349a6e","savedPayload":{"position":{"x":30434.01718930615,"y":29943.557873300164},"targetPosition":{"x":29890.345648263887,"y":30201.806821011643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"bbb1ca7a-4ea9-4b82-b1c8-819dd14d1ecb","savedPayload":{"position":{"x":29890.345648263887,"y":30201.806821011643},"targetPosition":{"x":28802.67816793728,"y":30718.51423433997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex BTC/USDT","id":"5534c32d-2efc-4881-b33d-050e6130eb2e","savedPayload":{"position":{"x":31786.900222927514,"y":30645.420121604584},"targetPosition":{"x":31194.962119284857,"y":30754.09566025256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"ebea2890-9b30-4262-9d7f-d3151c734487","savedPayload":{"position":{"x":31194.962119284857,"y":30754.09566025256},"targetPosition":{"x":30603.02260591822,"y":30862.780801177338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex BTC/USDT","id":"89df841a-6500-4b96-925b-18d4177aac5d","savedPayload":{"position":{"x":32303.235682521117,"y":31467.65202066492},"targetPosition":{"x":31453.161127691987,"y":31165.231241667385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"ec1d9e8b-00d8-4439-92ba-86a6a84154bf","savedPayload":{"position":{"x":31453.161127691987,"y":31165.231241667385},"targetPosition":{"x":30603.02260591822,"y":30862.780801177338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"2cef66e1-4c65-462a-9f6e-a916237facd7","savedPayload":{"position":{"x":30603.02260591822,"y":30862.780801177338},"targetPosition":{"x":30003.025485694634,"y":30814.736930390358},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1a635aa5-7e94-4057-ab86-d3e3c7019f50","savedPayload":{"position":{"x":30003.025485694634,"y":30814.736930390358},"targetPosition":{"x":28802.67816793728,"y":30718.51423433997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex BTC/USDT","id":"cd6947be-15f7-4497-a9c2-4bfbd3ccaf70","savedPayload":{"position":{"x":31423.621206050706,"y":32147.177666349864},"targetPosition":{"x":30856.61474501926,"y":31945.455594073403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"35bc8440-0570-47ea-8fcf-0d330072200e","savedPayload":{"position":{"x":30856.61474501926,"y":31945.455594073403},"targetPosition":{"x":30289.60466111032,"y":31743.73684334325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex BTC/USDT","id":"ad849f49-70a0-422f-ba38-88d785683212","savedPayload":{"position":{"x":31459.449812855368,"y":33117.76476772443},"targetPosition":{"x":30874.543674173718,"y":32430.78462246089},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"7facc5f8-6f3f-4a01-9ba5-aa03dcf5ed99","savedPayload":{"position":{"x":30874.543674173718,"y":32430.78462246089},"targetPosition":{"x":30289.60466111032,"y":31743.73684334325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"2e15cf59-cd9e-42bd-80ea-c3edf69c781a","savedPayload":{"position":{"x":30289.60466111032,"y":31743.73684334325},"targetPosition":{"x":29794.07820742738,"y":31402.07679825351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"7d592495-188b-4a53-985f-2b1020ad88b1","savedPayload":{"position":{"x":29794.07820742738,"y":31402.07679825351},"targetPosition":{"x":28802.67816793728,"y":30718.51423433997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"3f48a4d6-5877-4c12-9b7d-8a6184b18a03","savedPayload":{"position":{"x":28792.476003769018,"y":30697.217029109284},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bittrex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7e94f422-66af-4a12-a6b8-bdb5aa40fbca","savedPayload":{"position":{"x":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"6715642d-fc4a-4e46-b2a5-ec2fceb391f5","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"571e3ce7-b393-4a89-8137-836a07a05593","savedPayload":{"position":{"x":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"578d5e48-d9c1-4203-a928-e5a2667cc47b","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"944a14f8-17c8-4ce0-aeea-dd5d18424b17","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d27ff456-b931-4855-82f4-2bd9353fd306","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"645b8d07-ee55-419b-bae0-110bb080d5b2","savedPayload":{"position":{"x":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"8fd10c0b-3f05-4d39-ad13-20487cd0ff57","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4e6dabf9-03a3-4567-98bd-8c0f5d7dbd8a","savedPayload":{"position":{"x":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"b4477cbf-2a9c-46dd-a0a1-8d67dde27c74","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"5604bdf6-0121-43da-ab94-01f402ebff94","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a5690aef-a730-4681-9dd7-873bbee6f7d7","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5f471bd0-11c6-4799-96ad-d5ebb9526e43","savedPayload":{"position":{"x":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"0c3b75d7-bdaf-484c-a5db-8da69735ddbd","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e39e83c9-1f19-4414-96f6-55cfae9b609d","savedPayload":{"position":{"x":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"2e77af2d-16a6-43c3-98ec-f1742b84e3b1","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"189898ca-62d2-4cc9-95d0-84deb36dd1d5","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"441fff02-e421-4191-8153-af724ad34f13","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d445c368-fb96-4219-b78c-716a7d4e84cc","savedPayload":{"position":{"x":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"03f85285-cb1c-4484-adb5-d206e4a5dfc6","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5ccab9e5-ca98-44d5-9048-54f1b019e545","savedPayload":{"position":{"x":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"3a438f30-b718-4cd2-85c0-8ed4da451927","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"4b243879-e084-4e63-bc90-83a84b67e07d","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"3cf14aa0-593f-400a-bc2b-8bee4f2c80ea","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"a3d13c45-542b-48e0-9c91-1d199a2a7a5d","savedPayload":{"position":{"x":28866.608357021712,"y":30882.353879359944},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bittrex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"33c06470-f186-4886-ad39-c26991baa56a","savedPayload":{"position":{"x":43671.00027239754,"y":28856.943091676305},"targetPosition":{"x":43567.498296733465,"y":29162.3636676408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"38c171ee-b9cb-45fe-b994-dc2004e4a2f0","savedPayload":{"position":{"x":43567.498296733465,"y":29162.3636676408},"targetPosition":{"x":43464.06722420924,"y":29467.842167671126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"c0fe8591-6319-4b34-bcba-3c33aeebfd6a","savedPayload":{"position":{"x":43464.06722420924,"y":29467.842167671126},"targetPosition":{"x":43360.691361026584,"y":29773.54537737439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"b769ab07-2b88-4b07-b9ad-a38cc2ca0330","savedPayload":{"position":{"x":43360.691361026584,"y":29773.54537737439},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c784525a-c5f4-46e1-9eea-7ca460f15a09","savedPayload":{"position":{"x":44239.36337395328,"y":29209.697635104123},"targetPosition":{"x":44060.2198905935,"y":29477.959510651268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"63a81574-b840-462a-8d0a-707286b7e316","savedPayload":{"position":{"x":44060.2198905935,"y":29477.959510651268},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1a1fc3d2-140a-4e77-8171-94a251ced3a8","savedPayload":{"position":{"x":44748.497652339385,"y":29318.442706041416},"targetPosition":{"x":44314.89113382611,"y":29532.287195826062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"0d5b592d-444a-4b17-a495-e706a0ee6e45","savedPayload":{"position":{"x":44314.89113382611,"y":29532.287195826062},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"e3ce6fc8-3c64-4696-ae4a-482da345c671","savedPayload":{"position":{"x":43881.1373749603,"y":29746.194646546814},"targetPosition":{"x":43638.5937543753,"y":29959.064822103785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"57937110-89f6-4b5f-bdc2-f4bf319bc94a","savedPayload":{"position":{"x":43638.5937543753,"y":29959.064822103785},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"93b90bb5-5d59-4295-aa29-e8352b0600f2","savedPayload":{"position":{"x":44681.5668151454,"y":29910.493454022107},"targetPosition":{"x":44392.18828953674,"y":30053.0939332087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"fac4b2f2-7f96-4ae4-a4d6-ed7e59f04c11","savedPayload":{"position":{"x":44392.18828953674,"y":30053.0939332087},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1f734d9a-d5b6-49d0-8925-650e26d8d088","savedPayload":{"position":{"x":45068.0607289357,"y":30258.627798760706},"targetPosition":{"x":44585.557101487946,"y":30227.1784612219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"bceebd5e-82bf-4eb5-a6dd-71409fc9510d","savedPayload":{"position":{"x":44585.557101487946,"y":30227.1784612219},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"9bd15eca-6b5d-4fcd-97a1-dc2a257905b2","savedPayload":{"position":{"x":44102.8905640764,"y":30195.677451532058},"targetPosition":{"x":43786.33364239331,"y":30258.56207231393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"d291ff4a-0b84-44f9-8b8d-9feac76a17ba","savedPayload":{"position":{"x":43786.33364239331,"y":30258.56207231393},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"292c44ce-7597-446b-970c-62d7549a053f","savedPayload":{"position":{"x":44713.87406914462,"y":30737.306304570255},"targetPosition":{"x":44391.91978758277,"y":30716.26641552209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"34619326-4026-46c7-9a24-9247e143688c","savedPayload":{"position":{"x":44391.91978758277,"y":30716.26641552209},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"85827fd5-ff50-4c3f-9ace-7cc5a30480ec","savedPayload":{"position":{"x":44874.2365621043,"y":31232.47693669704},"targetPosition":{"x":44472.19774741333,"y":30963.92831312466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"2fb65040-e83e-4667-8a66-dc4035b4a236","savedPayload":{"position":{"x":44472.19774741333,"y":30963.92831312466},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"5e244082-3ec3-47e5-bd0a-198633e8166d","savedPayload":{"position":{"x":44070.057249921745,"y":30695.231631186056},"targetPosition":{"x":43764.46278318986,"y":30591.515062036906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1052568c-4912-4d13-8553-c3ce7232b1c0","savedPayload":{"position":{"x":43764.46278318986,"y":30591.515062036906},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"dce62a8c-df39-4885-b7c5-b8edcb96033b","savedPayload":{"position":{"x":44327.45578539955,"y":31470.472421210285},"targetPosition":{"x":44059.29115231958,"y":31291.213234147825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"99615ea1-f114-45c8-b699-4a6873bd7238","savedPayload":{"position":{"x":44059.29115231958,"y":31291.213234147825},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"eed2644e-e8e6-46d4-8139-3e0c115b9af2","savedPayload":{"position":{"x":44218.71377608719,"y":31979.437936210907},"targetPosition":{"x":44004.95543909178,"y":31545.819012576827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"3dbd8a02-5c9e-4296-8535-dc0b188be39b","savedPayload":{"position":{"x":44004.95543909178,"y":31545.819012576827},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"a092cd0d-b7e8-43f6-bb29-f1f0b017c5c6","savedPayload":{"position":{"x":43791.2422938607,"y":31111.98146528281},"targetPosition":{"x":43578.70277309983,"y":30869.247361706733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"859db802-0b21-4c52-a1f0-9b71b5a5ffe9","savedPayload":{"position":{"x":43578.70277309983,"y":30869.247361706733},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"e85aac57-9471-4700-ab7f-dd245a278049","savedPayload":{"position":{"x":28909.111045127058,"y":31076.82605739963},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bittrex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"71afe131-accc-4455-bbac-94dc729ca461","savedPayload":{"position":{"x":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"261df94d-5824-4a32-9a74-bdf3fff455f3","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"98c552e8-4596-431b-af9f-a1bfa2640236","savedPayload":{"position":{"x":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"9e9c62be-9329-4b5f-8ca8-a40d3cb2a7e1","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"877482ca-c79f-46a0-9d82-cc2341fdceb3","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"27835373-c2e2-4ad6-8677-69b93cc3a174","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ea62b38c-7ac4-4316-afc2-8e2f77d4f52a","savedPayload":{"position":{"x":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"1a9011f4-3136-4b06-b35b-b356fcaafc23","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"bbe52041-24bb-4373-a230-67d9e5655d6c","savedPayload":{"position":{"x":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"b59bd56e-bedd-4f49-bc07-a7dd7d48e67d","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"f20fc39e-0d4e-408a-8434-beb9482b45cb","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6760f905-8233-4d1a-98fb-3dc9e3263c6a","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1d3068aa-db57-486d-9b20-fa23cf8a5190","savedPayload":{"position":{"x":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"79843fab-8601-477e-93b3-1e606fae3386","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"69f6344e-32ab-428f-8afc-325ce0d186e2","savedPayload":{"position":{"x":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"ff06602f-ad15-4471-a2c5-e9c57e1184aa","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"cb27d479-7bf4-43a7-b3a0-75885bd490e0","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"50a01353-6cb7-4d2c-9d9e-48b0a42cc0e0","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1e28106f-b0f0-44ac-990f-735147c7747e","savedPayload":{"position":{"x":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"c1dda9a4-5987-4670-a9a8-200a751513d7","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d3a37f2e-ee4a-4245-924b-33e1b7d9fcdd","savedPayload":{"position":{"x":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"f8ccf6e3-9310-4955-b853-dacfa8a200d5","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"d1aaadec-7271-476b-8a46-f8826ad395fb","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"3664f41b-14fb-48a1-b2f7-2254698b5bbd","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"e1cc6f40-98e9-4748-84b7-183c19cfda31","savedPayload":{"position":{"x":28919.00196025643,"y":31275.41235385068},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bittrex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e34b01ca-7360-4983-9497-f6df6b753470","savedPayload":{"position":{"x":43671.00027239754,"y":28856.943091676305},"targetPosition":{"x":43567.498296733465,"y":29162.3636676408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"52181be5-3087-4682-be8d-5bc60605c03d","savedPayload":{"position":{"x":43567.498296733465,"y":29162.3636676408},"targetPosition":{"x":43464.06722420924,"y":29467.842167671126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"81d279a9-17e6-4c3f-88d5-a7e985e0dff2","savedPayload":{"position":{"x":43464.06722420924,"y":29467.842167671126},"targetPosition":{"x":43360.691361026584,"y":29773.54537737439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1a9f8012-9d52-4eb7-a76b-2e528c57512d","savedPayload":{"position":{"x":43360.691361026584,"y":29773.54537737439},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ed448086-83a7-489a-be60-f68f6f967cf1","savedPayload":{"position":{"x":44239.36337395328,"y":29209.697635104123},"targetPosition":{"x":44060.2198905935,"y":29477.959510651268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"368d5aa6-2b14-4430-aa56-b6ed0f1c2793","savedPayload":{"position":{"x":44060.2198905935,"y":29477.959510651268},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"25e3d19e-9d07-45b9-81cd-a904aeb435f5","savedPayload":{"position":{"x":44748.497652339385,"y":29318.442706041416},"targetPosition":{"x":44314.89113382611,"y":29532.287195826062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"cc3a7444-6618-4707-98a5-dec8d5faf059","savedPayload":{"position":{"x":44314.89113382611,"y":29532.287195826062},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"171ceef5-dc2e-42ca-b9ba-7ad2b9f0913d","savedPayload":{"position":{"x":43881.1373749603,"y":29746.194646546814},"targetPosition":{"x":43638.5937543753,"y":29959.064822103785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4ea4039e-b2c4-489b-b106-98f9dc95745d","savedPayload":{"position":{"x":43638.5937543753,"y":29959.064822103785},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"09ac8f28-bad9-4b83-b152-c3d01edf84aa","savedPayload":{"position":{"x":44681.5668151454,"y":29910.493454022107},"targetPosition":{"x":44392.18828953674,"y":30053.0939332087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"3a6b9784-328d-41ad-abd1-47677258ef9b","savedPayload":{"position":{"x":44392.18828953674,"y":30053.0939332087},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6e261c4d-e0f0-4167-8aab-b6019ca8675f","savedPayload":{"position":{"x":45068.0607289357,"y":30258.627798760706},"targetPosition":{"x":44585.557101487946,"y":30227.1784612219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"42d70973-9095-43b7-963d-3de393698ca8","savedPayload":{"position":{"x":44585.557101487946,"y":30227.1784612219},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"1e92aefc-67e1-4aa6-a067-9a41fc4577f5","savedPayload":{"position":{"x":44102.8905640764,"y":30195.677451532058},"targetPosition":{"x":43786.33364239331,"y":30258.56207231393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2c696d6c-1c24-41ca-828c-90490edf6516","savedPayload":{"position":{"x":43786.33364239331,"y":30258.56207231393},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"8d4a97c8-08ba-42d9-af9e-3ccf3f6b337c","savedPayload":{"position":{"x":44713.87406914462,"y":30737.306304570255},"targetPosition":{"x":44391.91978758277,"y":30716.26641552209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"26478e87-78cf-429d-be86-16ef9180c6aa","savedPayload":{"position":{"x":44391.91978758277,"y":30716.26641552209},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ec4dabf5-f0ef-4044-8293-5c170a90986c","savedPayload":{"position":{"x":44874.2365621043,"y":31232.47693669704},"targetPosition":{"x":44472.19774741333,"y":30963.92831312466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"054b9d63-5e17-4021-be68-416c59c0cff8","savedPayload":{"position":{"x":44472.19774741333,"y":30963.92831312466},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"f1a1da28-7270-4cf9-9459-31b50fd1c729","savedPayload":{"position":{"x":44070.057249921745,"y":30695.231631186056},"targetPosition":{"x":43764.46278318986,"y":30591.515062036906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"37884fd5-91a5-4349-9cf2-34bd900cd7c0","savedPayload":{"position":{"x":43764.46278318986,"y":30591.515062036906},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d73b3bab-9f5f-431a-b3a6-d9a420e9ee37","savedPayload":{"position":{"x":44327.45578539955,"y":31470.472421210285},"targetPosition":{"x":44059.29115231958,"y":31291.213234147825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"4e3b7785-750d-46ec-b66d-b1ff1159d6bb","savedPayload":{"position":{"x":44059.29115231958,"y":31291.213234147825},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"3fb9f8a9-c034-45bf-8715-57426e65b549","savedPayload":{"position":{"x":44218.71377608719,"y":31979.437936210907},"targetPosition":{"x":44004.95543909178,"y":31545.819012576827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"c0f67bdd-9e5a-4ebf-9e0e-4089f6057bee","savedPayload":{"position":{"x":44004.95543909178,"y":31545.819012576827},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"a0fcb88e-38f0-444b-8888-9440a7f9cc35","savedPayload":{"position":{"x":43791.2422938607,"y":31111.98146528281},"targetPosition":{"x":43578.70277309983,"y":30869.247361706733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"b59a4c15-4230-4fdb-944e-fcb700927a60","savedPayload":{"position":{"x":43578.70277309983,"y":30869.247361706733},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"5e1d2729-e1fb-424e-af2f-316e13b27268","savedPayload":{"position":{"x":28896.03818527793,"y":31473.05701572512},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bittrex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"2aa24129-e4c1-4e1a-b928-b29f7796262f","savedPayload":{"position":{"x":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"e8c77914-2d56-4466-ba31-e25fa7bcee97","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"e647ef60-42d8-4d9b-8288-ce7ff94fe45a","savedPayload":{"position":{"x":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"c120ac4f-e129-485c-a571-88b5b21e73db","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"7511461b-07dc-4bf9-8889-e7670f9e9e95","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"566bd434-077f-477f-8333-78015feb7efd","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a66bf806-ca4f-4d4f-be82-33e4b215b022","savedPayload":{"position":{"x":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"cbe53718-f9c1-4973-a700-afd7c0446435","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"39c5a0c1-bb94-4f0a-a3db-174a6ac726ea","savedPayload":{"position":{"x":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"a3d9f23a-f5f2-4c23-a3f7-505fb0095c6e","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"feb37837-d51d-49cf-9eff-ec0f9521f3f8","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e8dacec5-49d3-4ba7-8493-b0a412308459","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"bbe81a56-df42-4b49-aaaf-63c10d6bbde1","savedPayload":{"position":{"x":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"88896cb6-e12d-495e-85d8-f28714991046","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"71aff374-c28e-4304-8347-19c0898e1b8e","savedPayload":{"position":{"x":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"664d9c34-aa87-4d5d-8e3d-4c9dcce6f0a5","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"f6c8aedc-52ad-49e6-8d91-da6579b29fc3","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e5b856d0-4a36-4b35-bbe0-728c60e2a95e","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"09d717a7-9be7-4317-9050-76823083d40c","savedPayload":{"position":{"x":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"49a244bd-6d71-4d7f-a84f-fdb61715e1f0","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9cea785b-49bf-4e16-a13d-3cb9c73dd448","savedPayload":{"position":{"x":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"97f99d55-7d30-4769-ad77-5a3689dc24ee","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"b1ae18d2-bbd7-4dc3-b684-8d487460e4f9","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"959b45f9-f3d8-4949-bf53-de1f578fa57e","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"c1559250-6d1c-4ace-b7df-310f67f46902","savedPayload":{"position":{"x":28840.85430777624,"y":31664.216712901052},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bittrex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"033e6c22-3038-4d4b-8979-d1ccf1d9d5b1","savedPayload":{"position":{"x":43671.00027239754,"y":28856.943091676305},"targetPosition":{"x":43567.498296733465,"y":29162.3636676408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"d28fa937-40f0-4ddd-949c-1e46a721ae53","savedPayload":{"position":{"x":43567.498296733465,"y":29162.3636676408},"targetPosition":{"x":43464.06722420924,"y":29467.842167671126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"0c4e5a78-0cba-42ba-95f5-4442cd1b1344","savedPayload":{"position":{"x":43464.06722420924,"y":29467.842167671126},"targetPosition":{"x":43360.691361026584,"y":29773.54537737439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"9639db22-c241-4d1e-bf08-72f1f2aa85c6","savedPayload":{"position":{"x":43360.691361026584,"y":29773.54537737439},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"867beed0-2b38-4502-a1bd-a10fe3f77a09","savedPayload":{"position":{"x":44239.36337395328,"y":29209.697635104123},"targetPosition":{"x":44060.2198905935,"y":29477.959510651268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"58a30262-bf8b-4f53-a37c-5f7811cf7253","savedPayload":{"position":{"x":44060.2198905935,"y":29477.959510651268},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"3cebe0ff-21f5-426d-be2b-21c1fa89ecad","savedPayload":{"position":{"x":44748.497652339385,"y":29318.442706041416},"targetPosition":{"x":44314.89113382611,"y":29532.287195826062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"51d4e9cd-c2ad-43e8-812c-dc6ad30e3fb4","savedPayload":{"position":{"x":44314.89113382611,"y":29532.287195826062},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"ddd3a978-1a6b-4b06-a087-ed8868448ba2","savedPayload":{"position":{"x":43881.1373749603,"y":29746.194646546814},"targetPosition":{"x":43638.5937543753,"y":29959.064822103785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1ba166d0-d3bb-4405-8f95-ca22bb391fe1","savedPayload":{"position":{"x":43638.5937543753,"y":29959.064822103785},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d372f978-4a4a-49cf-8d83-bdaa8a3d7481","savedPayload":{"position":{"x":44681.5668151454,"y":29910.493454022107},"targetPosition":{"x":44392.18828953674,"y":30053.0939332087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"64af5188-62e4-4506-b326-adf1706069d9","savedPayload":{"position":{"x":44392.18828953674,"y":30053.0939332087},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"36952fc2-eec7-4e7f-886c-883aadeaf12e","savedPayload":{"position":{"x":45068.0607289357,"y":30258.627798760706},"targetPosition":{"x":44585.557101487946,"y":30227.1784612219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"79c35439-7f2d-4231-a750-e2dec965230d","savedPayload":{"position":{"x":44585.557101487946,"y":30227.1784612219},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"35592cce-bcff-4f0e-9518-6ad2e8cb9e02","savedPayload":{"position":{"x":44102.8905640764,"y":30195.677451532058},"targetPosition":{"x":43786.33364239331,"y":30258.56207231393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"6a3addbe-36da-41a8-9012-eae8ebc1a6e5","savedPayload":{"position":{"x":43786.33364239331,"y":30258.56207231393},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"040762de-c934-401c-b53e-8be5f3b4f1d3","savedPayload":{"position":{"x":44713.87406914462,"y":30737.306304570255},"targetPosition":{"x":44391.91978758277,"y":30716.26641552209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"f7e14c33-7436-43f3-ae57-da34945d33bd","savedPayload":{"position":{"x":44391.91978758277,"y":30716.26641552209},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"803d2cdc-d08d-4a64-ba57-b61db2aaf021","savedPayload":{"position":{"x":44874.2365621043,"y":31232.47693669704},"targetPosition":{"x":44472.19774741333,"y":30963.92831312466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"ce67ace1-b1a7-45b3-a30a-c69bda3ae4ba","savedPayload":{"position":{"x":44472.19774741333,"y":30963.92831312466},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"2083cf4d-4779-40a9-9b3c-c673d4dc48e0","savedPayload":{"position":{"x":44070.057249921745,"y":30695.231631186056},"targetPosition":{"x":43764.46278318986,"y":30591.515062036906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"6f5e1f9e-ff49-4756-9427-9b541b74079d","savedPayload":{"position":{"x":43764.46278318986,"y":30591.515062036906},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"567baf63-fb85-4203-91a7-d36b524ec141","savedPayload":{"position":{"x":44327.45578539955,"y":31470.472421210285},"targetPosition":{"x":44059.29115231958,"y":31291.213234147825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"77aa676a-37e8-4cfb-bda8-8c897c286bb1","savedPayload":{"position":{"x":44059.29115231958,"y":31291.213234147825},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5337f919-f0e4-4ac2-874c-4fc3adae1cf8","savedPayload":{"position":{"x":44218.71377608719,"y":31979.437936210907},"targetPosition":{"x":44004.95543909178,"y":31545.819012576827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"8d8e59b9-e61d-45cc-b859-7e254b71923b","savedPayload":{"position":{"x":44004.95543909178,"y":31545.819012576827},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"4a9fceb1-78c8-4a4f-975c-8437d6cf093b","savedPayload":{"position":{"x":43791.2422938607,"y":31111.98146528281},"targetPosition":{"x":43578.70277309983,"y":30869.247361706733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"8c933133-200e-4a61-922b-2ebf24940c84","savedPayload":{"position":{"x":43578.70277309983,"y":30869.247361706733},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"18e5e431-5a6a-4ad2-b24c-4ec147912d75","savedPayload":{"position":{"x":28754.958557852497,"y":31843.68090005589},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bittrex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d057c6e7-910d-487c-b73f-1b396d7a08e0","savedPayload":{"position":{"x":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"ec7d19e8-e5f3-463a-ac03-6113e7f75603","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5e1a18d0-7d26-4cfa-82fd-798d75d2a744","savedPayload":{"position":{"x":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"b5aec427-b006-44ec-ba7e-3bd26f8e8600","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"29ce1427-7038-4021-9b09-c98ceca1fe56","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e90df51f-6857-4df1-a2b0-590f1c81be00","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"09fb92d4-1bb1-42c6-8d9f-2b5f96190237","savedPayload":{"position":{"x":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"fbccf6d6-2484-4205-920a-1580605fb8b7","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c76259d2-2635-4cb1-8965-54e24734aee8","savedPayload":{"position":{"x":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"465d4dd6-8388-4a09-8f43-7cdd6d4d058b","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"f09f1066-480f-4db2-b33d-6e2d73870a04","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"80f68263-5878-420e-bcbd-55b60990c6e5","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"33cdb11d-4793-404e-b0e2-fbf7bf0e2aaa","savedPayload":{"position":{"x":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"4ec7899a-b6bf-41f3-b9e0-0498dd797c85","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"53801ed6-be19-42f4-a769-898742c67dfc","savedPayload":{"position":{"x":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"f7b0cc38-117a-4cf7-b251-fe3ccf2b1e08","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"95ea21fe-2777-4026-b8f2-aba1c3ab91ef","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4844afc8-4e53-4918-928d-7ca2769bd2c5","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"af7181fe-63ee-48d9-9589-deb93992b4c2","savedPayload":{"position":{"x":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"f2270c70-e2f9-4e99-9f88-81bf7f91f2e7","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"bc2e3abb-e854-4fb4-9e98-5f4ad0910bc3","savedPayload":{"position":{"x":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"9f6fb466-d53f-41ca-b65a-a0bdb9c36569","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"5d52f86c-602e-4f9f-af4f-1dfe120535b0","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"e90f0a19-10ec-489a-ba8a-91149c0e293e","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"4af11604-02ce-4348-a19b-fd1e1f41ded0","savedPayload":{"position":{"x":28640.695291180997,"y":32006.556329275598},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bittrex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9a2939fa-7c09-4cb0-855b-5aefb427f9b6","savedPayload":{"position":{"x":43671.00027239754,"y":28856.943091676305},"targetPosition":{"x":43567.498296733465,"y":29162.3636676408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"56fd7e1d-80c6-4d2f-92c8-34f9dd0522b4","savedPayload":{"position":{"x":43567.498296733465,"y":29162.3636676408},"targetPosition":{"x":43464.06722420924,"y":29467.842167671126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"519f1ebb-9d5e-4dc0-b0f5-c24ea6cd7fd7","savedPayload":{"position":{"x":43464.06722420924,"y":29467.842167671126},"targetPosition":{"x":43360.691361026584,"y":29773.54537737439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"a5f01c7c-961e-4ace-8c90-60017dc78f11","savedPayload":{"position":{"x":43360.691361026584,"y":29773.54537737439},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a1c7c8f8-c9d1-40ea-9239-a0c95bd74de6","savedPayload":{"position":{"x":44239.36337395328,"y":29209.697635104123},"targetPosition":{"x":44060.2198905935,"y":29477.959510651268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"eefe7c74-b776-4557-bf73-c3d9b314c7dc","savedPayload":{"position":{"x":44060.2198905935,"y":29477.959510651268},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5fa0e9a3-749a-471e-a596-562f69fe4853","savedPayload":{"position":{"x":44748.497652339385,"y":29318.442706041416},"targetPosition":{"x":44314.89113382611,"y":29532.287195826062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"068cc474-6869-4b4b-9ee5-6446aa3a18c9","savedPayload":{"position":{"x":44314.89113382611,"y":29532.287195826062},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"e67c9be1-f9ef-424c-a47f-c07218761d02","savedPayload":{"position":{"x":43881.1373749603,"y":29746.194646546814},"targetPosition":{"x":43638.5937543753,"y":29959.064822103785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"af307a5c-e726-4804-8d10-4207e1d97fa1","savedPayload":{"position":{"x":43638.5937543753,"y":29959.064822103785},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9fe7cc5f-b30d-4dd3-86fd-854147d6a948","savedPayload":{"position":{"x":44681.5668151454,"y":29910.493454022107},"targetPosition":{"x":44392.18828953674,"y":30053.0939332087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"de4fdc9b-9773-496c-a6b2-aa955af02b3f","savedPayload":{"position":{"x":44392.18828953674,"y":30053.0939332087},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fda561a7-327e-4b9e-96f9-80fe49030dac","savedPayload":{"position":{"x":45068.0607289357,"y":30258.627798760706},"targetPosition":{"x":44585.557101487946,"y":30227.1784612219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"c4b28fbf-88cb-4e98-ac68-1ee3a044c986","savedPayload":{"position":{"x":44585.557101487946,"y":30227.1784612219},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"3011a9d6-dbb2-44bc-97a9-f82483ab0989","savedPayload":{"position":{"x":44102.8905640764,"y":30195.677451532058},"targetPosition":{"x":43786.33364239331,"y":30258.56207231393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7fad9ec4-9749-40d8-82d5-881f3fb98306","savedPayload":{"position":{"x":43786.33364239331,"y":30258.56207231393},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"21fbd54e-a8ec-4e3e-8e59-fba9e8a0eeba","savedPayload":{"position":{"x":44713.87406914462,"y":30737.306304570255},"targetPosition":{"x":44391.91978758277,"y":30716.26641552209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"9345cf72-1a27-492a-8a1f-fcc602079391","savedPayload":{"position":{"x":44391.91978758277,"y":30716.26641552209},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ce5d17b1-3ab0-42e4-95d0-a833d80c9869","savedPayload":{"position":{"x":44874.2365621043,"y":31232.47693669704},"targetPosition":{"x":44472.19774741333,"y":30963.92831312466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"dad60863-cb2b-426b-aa02-8482cab43421","savedPayload":{"position":{"x":44472.19774741333,"y":30963.92831312466},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"c0a5f5a0-3005-44cd-8346-c894ef8fc307","savedPayload":{"position":{"x":44070.057249921745,"y":30695.231631186056},"targetPosition":{"x":43764.46278318986,"y":30591.515062036906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4a79333b-5a69-451d-9481-e3c85c81abb8","savedPayload":{"position":{"x":43764.46278318986,"y":30591.515062036906},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"bb75a1ee-3e7c-46e7-946e-85b5048af35c","savedPayload":{"position":{"x":44327.45578539955,"y":31470.472421210285},"targetPosition":{"x":44059.29115231958,"y":31291.213234147825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"283c5f44-fe19-4fd2-b580-52feb1635f17","savedPayload":{"position":{"x":44059.29115231958,"y":31291.213234147825},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9f8604c7-6011-46b4-9837-f3e52f6827cf","savedPayload":{"position":{"x":44218.71377608719,"y":31979.437936210907},"targetPosition":{"x":44004.95543909178,"y":31545.819012576827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"5cc8afee-2116-41b3-a570-358e75655643","savedPayload":{"position":{"x":44004.95543909178,"y":31545.819012576827},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"885646d9-ef77-4272-8892-d653ce11d8cd","savedPayload":{"position":{"x":43791.2422938607,"y":31111.98146528281},"targetPosition":{"x":43578.70277309983,"y":30869.247361706733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"4f8b11c2-8cf8-4d32-bfce-f039509f30ca","savedPayload":{"position":{"x":43578.70277309983,"y":30869.247361706733},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"96ded8dd-5e02-4718-a9d9-a34c9f47b5a7","savedPayload":{"position":{"x":28501.181924096873,"y":32148.401307015683},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bittrex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"84c4f419-ab91-49e5-b42b-b7c3c145e278","savedPayload":{"position":{"x":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"136ae211-a150-4d6b-918f-3a7821d42dda","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4b338937-8cac-4338-97e8-e7112600add1","savedPayload":{"position":{"x":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"7acead42-77e6-4199-a029-e378de2aa9de","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"116c7781-5f3b-4303-a65a-e249dc69303a","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7da43286-af98-4d40-85f6-d94cdd34c6aa","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d1944c1f-f4f0-46f4-8d0f-ec8354403b88","savedPayload":{"position":{"x":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"94e46829-e91c-43ac-afd7-134bb8e4f08b","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"063d105c-ed6b-46ed-b208-02805695dac9","savedPayload":{"position":{"x":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"fae6031f-042a-4127-afb2-a408bb25a427","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"752130dd-e6ac-4e9a-9167-7d17ae38a0e0","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4bc8a6c7-b1ca-450b-9a42-ef1bd573b869","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1cfcbda3-954a-4bf2-8b7a-14f7238f6b43","savedPayload":{"position":{"x":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"6c5e9dcd-2d15-4323-b99a-de43e5234e03","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"98b9c3c7-95ba-43b7-b4d2-eb850c7b0c02","savedPayload":{"position":{"x":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"baf9e31f-8585-43a0-b820-b3ecf684c113","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"fe302aee-f88d-4ac9-8944-054cead21fc4","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"eb314561-f4e2-44e8-bc13-389a34c11b5f","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"106f9184-f001-4b7b-94a7-27a67ab20672","savedPayload":{"position":{"x":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"d8197523-afe8-485d-9e9a-f2b62dbcc99a","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"17a08364-d188-42db-bea3-1ad4765ebfb8","savedPayload":{"position":{"x":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"6e275dd6-276e-445a-ac09-b5f4900205b7","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"b98725dd-357e-457f-98ce-677dfd0acc86","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"b19fe746-bb85-4e34-9c12-ec15dc011052","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"ee7bfba9-b92c-4749-aed5-ea0a320bda7b","savedPayload":{"position":{"x":28340.224238212355,"y":32265.347293850096},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bittrex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bittrex ADA/USDT","id":"5d02081c-db21-4b95-ba63-208664e16f9d","savedPayload":{"position":{"x":30733.939374299916,"y":33475.16238632378},"targetPosition":{"x":30170.126392241622,"y":33264.76229533922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"747ee19b-e800-471a-8bde-6bf4cd6a2e5d","savedPayload":{"position":{"x":30170.126392241622,"y":33264.76229533922},"targetPosition":{"x":29606.27849891031,"y":33054.36046959395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"49ae9340-13d7-4567-9669-b3f42d4af34a","savedPayload":{"position":{"x":29606.27849891031,"y":33054.36046959395},"targetPosition":{"x":29042.342942300107,"y":32843.92895512127},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"bdaf59b7-91ae-4e8c-a161-532a7eefedf3","savedPayload":{"position":{"x":29042.342942300107,"y":32843.92895512127},"targetPosition":{"x":27914.12498157014,"y":32422.816300838585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex ADA/USDT","id":"45705eac-d70c-41f6-a967-cc8a77f15116","savedPayload":{"position":{"x":30043.884786106464,"y":34514.21949751616},"targetPosition":{"x":29553.752575305753,"y":34165.022593682035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"f6f94bb9-9b11-490e-b324-48b53839ef66","savedPayload":{"position":{"x":29553.752575305753,"y":34165.022593682035},"targetPosition":{"x":29063.615533483367,"y":33815.82916443632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex ADA/USDT","id":"3e818f8f-2bcc-4469-8921-529363f415f4","savedPayload":{"position":{"x":29812.736899085856,"y":35457.574699040786},"targetPosition":{"x":29438.18588745072,"y":34636.73292072938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"60273e74-42fb-4c7a-a74d-cf9191cef54d","savedPayload":{"position":{"x":29438.18588745072,"y":34636.73292072938},"targetPosition":{"x":29063.615533483367,"y":33815.82916443632},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"d774d277-5fbd-49ef-b328-d5f1e074b8a9","savedPayload":{"position":{"x":29063.615533483367,"y":33815.82916443632},"targetPosition":{"x":28680.539915612026,"y":33351.603373220074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"9011ebfe-3bb9-48b4-a7c5-0cf96b210beb","savedPayload":{"position":{"x":28680.539915612026,"y":33351.603373220074},"targetPosition":{"x":27914.12498157014,"y":32422.816300838585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex ADA/USDT","id":"73075ff4-c70e-4f1f-8b8a-b99390eeec90","savedPayload":{"position":{"x":28712.57672176949,"y":35299.029009271326},"targetPosition":{"x":28462.782317608933,"y":34751.504929407856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"e3b6d70f-df59-4cd2-ab4f-ecb99ca1f266","savedPayload":{"position":{"x":28462.782317608933,"y":34751.504929407856},"targetPosition":{"x":28212.985200902804,"y":34203.98771145505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex ADA/USDT","id":"55ce5e20-e92a-4624-8b6f-b6a5dc725682","savedPayload":{"position":{"x":28041.134033985298,"y":36000.42110653666},"targetPosition":{"x":28127.049764225965,"y":35102.235358877144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"3bcb6170-3ed1-466b-82b2-44bb38535ed3","savedPayload":{"position":{"x":28127.049764225965,"y":35102.235358877144},"targetPosition":{"x":28212.985200902804,"y":34203.98771145505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"36782314-9245-4704-bb76-c81a1adf7c23","savedPayload":{"position":{"x":28212.985200902804,"y":34203.98771145505},"targetPosition":{"x":28113.419394868437,"y":33610.38850008776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"685490dd-ed83-49b6-91a6-7d5fe033961e","savedPayload":{"position":{"x":28113.419394868437,"y":33610.38850008776},"targetPosition":{"x":27914.12498157014,"y":32422.816300838585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex ADA/USDT","id":"cc372184-2d80-4d73-86d1-0c3c5082f246","savedPayload":{"position":{"x":27168.015888272676,"y":35313.06847073368},"targetPosition":{"x":27225.314461503687,"y":34713.963020958356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"df8d9521-be99-4ddb-8262-7fb87629275e","savedPayload":{"position":{"x":27225.314461503687,"y":34713.963020958356},"targetPosition":{"x":27282.61005338748,"y":34114.86288567037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex ADA/USDT","id":"d0797a20-25dc-4d75-9cdb-820162c1cbdc","savedPayload":{"position":{"x":26235.488557458037,"y":35584.56986437952},"targetPosition":{"x":26759.023429451627,"y":34849.737873666425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"a34a28e1-91a1-428b-add0-cf75d2419148","savedPayload":{"position":{"x":26759.023429451627,"y":34849.737873666425},"targetPosition":{"x":27282.61005338748,"y":34114.86288567037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"115b4ab0-9dc0-4649-8974-75436b7085ba","savedPayload":{"position":{"x":27282.61005338748,"y":34114.86288567037},"targetPosition":{"x":27493.052255828286,"y":33550.970560410766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"fa777719-650d-4692-ab4c-0b5ba8358f83","savedPayload":{"position":{"x":27493.052255828286,"y":33550.970560410766},"targetPosition":{"x":27914.12498157014,"y":32422.816300838585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex ADA/USDT","id":"87ef1dbe-c044-4606-b525-adee61d1020a","savedPayload":{"position":{"x":25822.633673434317,"y":34552.534717046256},"targetPosition":{"x":26171.846327522653,"y":34062.409864490735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"d5de0b7b-6869-432d-aab7-e31a7f99ef8e","savedPayload":{"position":{"x":26171.846327522653,"y":34062.409864490735},"targetPosition":{"x":26521.06135516621,"y":33572.29269605903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex ADA/USDT","id":"eb6e9701-432e-42fb-b3a4-7b1ef9779188","savedPayload":{"position":{"x":24879.29810611307,"y":34321.38693791189},"targetPosition":{"x":25700.141090491183,"y":33946.839702705496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"ce12acc0-8d1c-4161-a4f3-b33ba51fd668","savedPayload":{"position":{"x":25700.141090491183,"y":33946.839702705496},"targetPosition":{"x":26521.06135516621,"y":33572.29269605903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"02519397-67d2-4aae-b15d-299339670c4b","savedPayload":{"position":{"x":26521.06135516621,"y":33572.29269605903},"targetPosition":{"x":26985.315316316,"y":33189.246218259424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"88b1d35f-d1dd-462d-a0db-ff8392deadb4","savedPayload":{"position":{"x":26985.315316316,"y":33189.246218259424},"targetPosition":{"x":27914.12498157014,"y":32422.816300838585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"bef102fc-e079-4cf5-b58a-5b9e06a2fb29","savedPayload":{"position":{"x":28162.212688805073,"y":32354.20459966562},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bittrex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"bb568dc6-22df-420a-8c4a-15e879be7892","savedPayload":{"position":{"x":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"931b03c5-815b-4f61-9402-009e1314e54a","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"06fd20bd-853f-4890-894b-9666d87030db","savedPayload":{"position":{"x":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"8e5f9b20-523c-4481-88d8-e6a06d98c273","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"89780ebc-7eaf-4de9-b801-3c704bc656f5","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6f265e27-8d1a-4bbd-820f-7b6c1b20e0c0","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ca29ffad-4b49-4347-a8ae-59030e6b7335","savedPayload":{"position":{"x":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"396a8a4c-a4c2-4346-bc1e-44803d455e6c","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"8dc4e814-3b57-4724-9590-c82d163b4a7e","savedPayload":{"position":{"x":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"47e8cab3-22b0-4b26-9478-ef8c960f44ca","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"45f86b87-d802-4a14-8eb9-309ae105605b","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f6e81a68-b747-4c2c-92b1-2c0addc2e75d","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"40731a6a-e8f6-4dad-9efe-eff33fa8bc9d","savedPayload":{"position":{"x":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"52974b74-54a7-474e-9f97-62bf949da4b7","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ff7d629e-cba5-42ce-af55-8010a3836744","savedPayload":{"position":{"x":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"cd9d1e17-0cc1-47bc-a443-d2b62a35268f","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"697b1fcc-532a-4670-a2e5-8064e221ada1","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a1b376fe-880e-41fd-83d3-47169fedfec7","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"37412ee1-14c7-4d5c-8545-56bb7f016b07","savedPayload":{"position":{"x":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"58a5adcb-1f4d-493c-bd5d-55caaca0231f","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"cf48f726-5f71-4ee1-a61b-38c3282a6629","savedPayload":{"position":{"x":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"c61fe4e0-9467-4cae-a502-4564526f2829","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"197f2d97-48ab-436d-9968-ec113e977710","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"02d90cd7-5b06-4fe0-9801-891f65e3a172","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"60699f68-1cea-4c23-84f4-db760135b0fe","savedPayload":{"position":{"x":27972.002674827432,"y":32412.54941156567},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bittrex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bittrex XLM/USDT","id":"4b82c032-7e77-4749-bec4-b5ba40de574f","savedPayload":{"position":{"x":29720.53178848747,"y":34414.09895302157},"targetPosition":{"x":29271.015388478474,"y":34014.37522127545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"d05d70d6-b099-4729-9445-64012d64f1a5","savedPayload":{"position":{"x":29271.015388478474,"y":34014.37522127545},"targetPosition":{"x":28821.4441184856,"y":33614.61242851928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"f5a21dd0-9141-4030-bb45-bbb0187050c0","savedPayload":{"position":{"x":28821.4441184856,"y":33614.61242851928},"targetPosition":{"x":28371.765541938013,"y":33214.75676311301},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c10c5cbd-3b62-49ad-89cb-d2676ce56c92","savedPayload":{"position":{"x":28371.765541938013,"y":33214.75676311301},"targetPosition":{"x":27472.0332164893,"y":32414.60982515937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex XLM/USDT","id":"7c567ca5-97b8-400e-adb6-fae38acf176c","savedPayload":{"position":{"x":28701.8585822113,"y":35133.57244402039},"targetPosition":{"x":28371.14951562399,"y":34631.05611557924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"b770ca86-6ae7-45a0-a389-0574d4a19a9f","savedPayload":{"position":{"x":28371.14951562399,"y":34631.05611557924},"targetPosition":{"x":28040.42113747029,"y":34128.52640217675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex XLM/USDT","id":"dd074206-0d90-4984-9af4-0daf1686550e","savedPayload":{"position":{"x":28145.662005816474,"y":35928.973530904594},"targetPosition":{"x":28093.04143052482,"y":35028.809741466655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"5b10bbe6-e6db-42d2-8b5a-ff76ae860a1b","savedPayload":{"position":{"x":28093.04143052482,"y":35028.809741466655},"targetPosition":{"x":28040.42113747029,"y":34128.52640217675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"828aceb0-65ec-4194-a9c9-5bf0536dde28","savedPayload":{"position":{"x":28040.42113747029,"y":34128.52640217675},"targetPosition":{"x":27851.02407490991,"y":33557.37404673646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"156598d6-5787-491d-a656-46a98188080b","savedPayload":{"position":{"x":27851.02407490991,"y":33557.37404673646},"targetPosition":{"x":27472.0332164893,"y":32414.60982515937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex XLM/USDT","id":"168b695b-b1e4-4bef-bbf5-9edc203ad488","savedPayload":{"position":{"x":27177.83323467646,"y":35384.375938401776},"targetPosition":{"x":27142.803924171258,"y":34783.765365201325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"f82a0394-a3f3-4783-a299-c33f476cd6bd","savedPayload":{"position":{"x":27142.803924171258,"y":34783.765365201325},"targetPosition":{"x":27107.762319921498,"y":34183.14993948473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex XLM/USDT","id":"93c5b8bb-4986-4272-8100-2a60162ba5d4","savedPayload":{"position":{"x":26299.097014430117,"y":35795.12102404025},"targetPosition":{"x":26703.400661632357,"y":34989.18248834854},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"b470dedc-ffd4-410a-beba-698de86c59c3","savedPayload":{"position":{"x":26703.400661632357,"y":34989.18248834854},"targetPosition":{"x":27107.762319921498,"y":34183.14993948473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"5e880b6a-187d-4ccb-84a6-f15f0c4e5398","savedPayload":{"position":{"x":27107.762319921498,"y":34183.14993948473},"targetPosition":{"x":27229.10577493822,"y":33593.78861303196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"a917d27b-0be8-46bb-92ae-ae4ad7c57003","savedPayload":{"position":{"x":27229.10577493822,"y":33593.78861303196},"targetPosition":{"x":27472.0332164893,"y":32414.60982515937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex XLM/USDT","id":"8a47d52a-1e4c-4274-ae88-6d997771d9ef","savedPayload":{"position":{"x":25732.704300874182,"y":34839.31390257776},"targetPosition":{"x":26002.458066388015,"y":34301.59723655752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"d11330c3-a7d3-4a49-9097-6ed514907b90","savedPayload":{"position":{"x":26002.458066388015,"y":34301.59723655752},"targetPosition":{"x":26272.20162166719,"y":33763.877731730216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex XLM/USDT","id":"e0288a82-7ae5-4a04-8f08-3aa02854608a","savedPayload":{"position":{"x":24765.790016546438,"y":34755.35319554778},"targetPosition":{"x":25518.94769626438,"y":34259.636935379},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"f596306e-285a-4e87-92f0-ddd781c8bf05","savedPayload":{"position":{"x":25518.94769626438,"y":34259.636935379},"targetPosition":{"x":26272.20162166719,"y":33763.877731730216},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"ab745ca1-4191-48c1-8d74-5a75ff216a0e","savedPayload":{"position":{"x":26272.20162166719,"y":33763.877731730216},"targetPosition":{"x":26672.017180851937,"y":33314.25644091367},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"34db1c10-8501-4f28-88a9-e52b1b3ef1b7","savedPayload":{"position":{"x":26672.017180851937,"y":33314.25644091367},"targetPosition":{"x":27472.0332164893,"y":32414.60982515937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex XLM/USDT","id":"304582f0-80b7-4ba0-88f5-1ea8da9ae588","savedPayload":{"position":{"x":24753.092403954768,"y":33644.34133240653},"targetPosition":{"x":25255.61762852752,"y":33313.64429721458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"19ce36a6-efd8-4746-a9e9-c95e4e986bb1","savedPayload":{"position":{"x":25255.61762852752,"y":33313.64429721458},"targetPosition":{"x":25758.137077906795,"y":32982.94437565406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex XLM/USDT","id":"22306448-ac5f-47ad-857d-cad9dd41c4a3","savedPayload":{"position":{"x":23957.708625159517,"y":33088.16589679149},"targetPosition":{"x":24857.87081257161,"y":33035.54377807836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"dc614806-6b8f-4568-baec-3c612d75b78f","savedPayload":{"position":{"x":24857.87081257161,"y":33035.54377807836},"targetPosition":{"x":25758.137077906795,"y":32982.94437565406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"ef6659c1-4d3d-448a-a0eb-6921d213aea9","savedPayload":{"position":{"x":25758.137077906795,"y":32982.94437565406},"targetPosition":{"x":26329.26046547088,"y":32793.59281549569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"0658047c-8c94-4fa8-9fbd-6a9586cc0c29","savedPayload":{"position":{"x":26329.26046547088,"y":32793.59281549569},"targetPosition":{"x":27472.0332164893,"y":32414.60982515937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"27e507fa-1f69-40a2-9537-7ab5cf4d445d","savedPayload":{"position":{"x":27774.78250545454,"y":32438.78983323358},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bittrex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6fa4b1d0-43b9-4ad0-aa0b-10ba80ce76db","savedPayload":{"position":{"x":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"8d295ce3-920c-4146-8e5a-2de42eeae9dc","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d96072db-6a19-44b7-8e00-b6accc8129c6","savedPayload":{"position":{"x":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"935b7b9c-b12e-4ab7-8038-990a7cdc1b8f","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"bf85259a-1120-4c66-a1c8-7474ddff3836","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1e138850-9e37-413d-8df8-b816f30635bb","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9fb6ec7b-79a4-4f25-a251-340e5a25672e","savedPayload":{"position":{"x":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"06fb5c9c-5923-4039-9599-85f911e47e01","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"72ef1402-7b20-4b03-8007-288d8ba3deaa","savedPayload":{"position":{"x":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"2f630285-2d3f-49ba-9013-1ff7f0ce8ba3","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"54bbedb8-f22d-4b0a-8c72-ba55c07c46e1","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7c8b29b3-4626-4ab5-8a23-6059b49a5411","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0805c89a-91af-405b-8c38-e95cd4b71b84","savedPayload":{"position":{"x":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"62372538-a347-4ce7-9ef5-953bb17dd993","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"b4c6249f-96b7-4edf-aff9-fe45b5ac2776","savedPayload":{"position":{"x":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"93a69f94-e2ae-4285-a429-e8c844d85251","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"3e8acdf7-2040-4625-ad63-181ee63263d5","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fa46f4c0-1e7c-4bd4-89ff-fbd2d59f894e","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"1349e092-d7d5-4231-b8d4-0c4f713f5826","savedPayload":{"position":{"x":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"ec695cea-78df-45b5-b29a-fef8c45f4dad","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"efb6784e-765b-4017-9528-b7cb32f3ee59","savedPayload":{"position":{"x":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"7f43af55-e42b-41a9-9238-4b1e327225d6","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"c7614624-0875-415e-b18b-af496a6604f2","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"94cb99df-e513-42be-a846-ad190f02470b","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"983331bb-8048-44df-b51f-d6429f89ac71","savedPayload":{"position":{"x":27576.09345496139,"y":32432.208490929046},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bittrex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"3fdad5f2-b147-4eb3-a4b6-f41e17b1bd3a","savedPayload":{"position":{"x":28442.315043937437,"y":34929.07650816459},"targetPosition":{"x":28167.499049222,"y":34393.719749625976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"6da9a94d-da4b-41c7-a38b-7a85990fa3cd","savedPayload":{"position":{"x":28167.499049222,"y":34393.719749625976},"targetPosition":{"x":27892.666723609287,"y":33858.334715463774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"aca20371-8fa3-47b4-b9e1-640ea000c916","savedPayload":{"position":{"x":27892.666723609287,"y":33858.334715463774},"targetPosition":{"x":27617.792229529296,"y":33322.869687477934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"d8c29306-4ca1-4d35-80b5-0335d3c5340b","savedPayload":{"position":{"x":27617.792229529296,"y":33322.869687477934},"targetPosition":{"x":27067.859960802016,"y":32251.601828206956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"92e913d9-32c4-48fe-bf77-8457fe3936b3","savedPayload":{"position":{"x":27232.796216434916,"y":35232.0231399236},"targetPosition":{"x":27105.934529649196,"y":34643.734055220295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"758eb579-f5da-44f4-86c8-0306e414226e","savedPayload":{"position":{"x":27105.934529649196,"y":34643.734055220295},"targetPosition":{"x":26979.074241004397,"y":34055.44467158406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"294d504d-7655-4af1-bf53-f0ecb5bcb4ff","savedPayload":{"position":{"x":26426.89012838953,"y":35773.39642449981},"targetPosition":{"x":26702.963842867164,"y":34914.451367317626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"db82b194-d2cd-4832-99ae-446b7097c114","savedPayload":{"position":{"x":26702.963842867164,"y":34914.451367317626},"targetPosition":{"x":26979.074241004397,"y":34055.44467158406},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"0cfca21f-fa9c-4c2c-ae94-baff57887d16","savedPayload":{"position":{"x":26979.074241004397,"y":34055.44467158406},"targetPosition":{"x":27008.626998243828,"y":33454.27563236631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"dfb22c78-d083-4fee-83e4-97b465df5876","savedPayload":{"position":{"x":27008.626998243828,"y":33454.27563236631},"targetPosition":{"x":27067.859960802016,"y":32251.601828206956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"ff57711e-8b65-481a-bcc2-dd8cf7840766","savedPayload":{"position":{"x":25720.702647434115,"y":34915.1039962151},"targetPosition":{"x":25904.850185666575,"y":34342.1641476533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"bba40d14-38bc-420b-8777-0d42bb857cbf","savedPayload":{"position":{"x":25904.850185666575,"y":34342.1641476533},"targetPosition":{"x":26088.996444373373,"y":33769.22920465037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"9cdf6ad9-36e8-4a5f-92f8-4d12522801d4","savedPayload":{"position":{"x":24751.732959683774,"y":34980.794887151416},"targetPosition":{"x":25420.332391352193,"y":34375.02846641185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"d52be753-2c8f-46ff-83b1-d81d0255e1ec","savedPayload":{"position":{"x":25420.332391352193,"y":34375.02846641185},"targetPosition":{"x":26088.996444373373,"y":33769.22920465037},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"d8889c67-ad8f-43c9-bf28-d19260066dca","savedPayload":{"position":{"x":26088.996444373373,"y":33769.22920465037},"targetPosition":{"x":26415.2128001072,"y":33263.45267619446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2d25f084-7d4d-4da3-8861-aeb90efd4e74","savedPayload":{"position":{"x":26415.2128001072,"y":33263.45267619446},"targetPosition":{"x":27067.859960802016,"y":32251.601828206956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"3748add6-bcbe-444c-91e0-790ac6fc850c","savedPayload":{"position":{"x":24569.29624916253,"y":33884.442553315166},"targetPosition":{"x":25015.28048655088,"y":33480.39899235509},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"6139abd6-67b2-47e0-a3b4-33f6567abfd6","savedPayload":{"position":{"x":25015.28048655088,"y":33480.39899235509},"targetPosition":{"x":25461.261642859517,"y":33076.35793952939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"3c7b2ad8-76fa-4b59-864e-d32d6d2e9c7e","savedPayload":{"position":{"x":23697.296240016636,"y":33456.85042303822},"targetPosition":{"x":24579.24232607756,"y":33266.603283416356},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"6154cc1e-38d8-4dbe-ac4f-bc2d5066b801","savedPayload":{"position":{"x":24579.24232607756,"y":33266.603283416356},"targetPosition":{"x":25461.261642859517,"y":33076.35793952939},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"0a3c6814-baca-4930-9300-b5e917525c8d","savedPayload":{"position":{"x":25461.261642859517,"y":33076.35793952939},"targetPosition":{"x":25996.69845372771,"y":32801.51160117288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"aae206d5-da1a-4b15-a2dd-7b4866a7fb9a","savedPayload":{"position":{"x":25996.69845372771,"y":32801.51160117288},"targetPosition":{"x":27067.859960802016,"y":32251.601828206956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"2791d3e2-dc3f-4c84-ac8d-bbf42fa2bc00","savedPayload":{"position":{"x":24087.487298832883,"y":32416.586861993186},"targetPosition":{"x":24675.78607492516,"y":32289.72268019095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"cf5b6bd3-016b-4240-b90d-ef14b9767e93","savedPayload":{"position":{"x":24675.78607492516,"y":32289.72268019095},"targetPosition":{"x":25264.07958537097,"y":32162.84940938477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"3b7e05b7-e7b3-4505-8828-7d26ce507fbd","savedPayload":{"position":{"x":23546.090093366507,"y":31610.692394981295},"targetPosition":{"x":24405.048842767785,"y":31886.76215979834},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"0f2dbc67-4370-4dde-b119-f08aad17fced","savedPayload":{"position":{"x":24405.048842767785,"y":31886.76215979834},"targetPosition":{"x":25264.07958537097,"y":32162.84940938477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"34847c6a-0667-45dd-b231-a381978fece0","savedPayload":{"position":{"x":25264.07958537097,"y":32162.84940938477},"targetPosition":{"x":25865.21261530606,"y":32192.38349852803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"970c6555-5cb7-4aeb-90d4-5de36abf34b5","savedPayload":{"position":{"x":25865.21261530606,"y":32192.38349852803},"targetPosition":{"x":27067.859960802016,"y":32251.601828206956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"072cd960-01b4-451c-a1db-e9b48a212618","savedPayload":{"position":{"x":27381.028848084818,"y":32392.981605369467},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bittrex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"5cfac2b1-8b14-44b7-92ac-04ffe2d24335","savedPayload":{"position":{"x":28110.81498153889,"y":35389.55469846644},"targetPosition":{"x":27719.530039321806,"y":34932.20007962928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"aee68de3-2d17-4a82-abb1-36865e6d3ca7","savedPayload":{"position":{"x":27719.530039321806,"y":34932.20007962928},"targetPosition":{"x":27328.599663935605,"y":34474.76308301772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"72a3ccf1-66f5-4811-bfd4-398ad6d88e75","savedPayload":{"position":{"x":26529.509058386902,"y":36741.78555309999},"targetPosition":{"x":26929.027782995283,"y":35608.50029193674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"0639b946-980b-45a5-b4d1-f4df4266786d","savedPayload":{"position":{"x":26929.027782995283,"y":35608.50029193674},"targetPosition":{"x":27328.599663935605,"y":34474.76308301772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"5de15415-65fb-4be3-8d0e-2f7e599425bf","savedPayload":{"position":{"x":27328.599663935605,"y":34474.76308301772},"targetPosition":{"x":27107.7125524003,"y":33293.85992731271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b5c08db4-91ed-40d5-8bd0-6bb8bdff79aa","savedPayload":{"position":{"x":27107.7125524003,"y":33293.85992731271},"targetPosition":{"x":26887.09612290984,"y":32109.729616768098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"9cb03a22-3922-4945-a545-71a929ba41c3","savedPayload":{"position":{"x":25949.650097213445,"y":35483.043743769056},"targetPosition":{"x":25901.899032757476,"y":34883.30731133793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"3867dd64-a0f4-4861-91d8-e6d639ef5589","savedPayload":{"position":{"x":25901.899032757476,"y":34883.30731133793},"targetPosition":{"x":25853.849125397566,"y":34283.18442931578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"25d14cd0-9243-4c1b-ae64-ef2b5cb7ec1e","savedPayload":{"position":{"x":23875.6302040181,"y":35646.82057844091},"targetPosition":{"x":24864.78060141268,"y":34964.941550762735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"559a5869-4a9c-425c-8e57-f0f92454502e","savedPayload":{"position":{"x":24864.78060141268,"y":34964.941550762735},"targetPosition":{"x":25853.849125397566,"y":34283.18442931578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"076e3a0e-1fcd-4f6a-93d2-96d61e2d0dc5","savedPayload":{"position":{"x":25853.849125397566,"y":34283.18442931578},"targetPosition":{"x":26370.165652367035,"y":33197.457010753795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"058b32a3-e33e-4d85-bb78-7d268096df1f","savedPayload":{"position":{"x":26370.165652367035,"y":33197.457010753795},"targetPosition":{"x":26887.09612290984,"y":32109.729616768098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"061f3903-16d5-4577-9d60-322ccc2a4e02","savedPayload":{"position":{"x":24147.388084293623,"y":34287.845697377285},"targetPosition":{"x":24460.47954504454,"y":33774.90571696151},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"46a67ad1-e902-4668-a631-8ee6e22117e8","savedPayload":{"position":{"x":24460.47954504454,"y":33774.90571696151},"targetPosition":{"x":24774.307069441784,"y":33261.17234285639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"95c7f5ca-e6ac-4fcc-9a7a-bdf757794e29","savedPayload":{"position":{"x":22371.296167303146,"y":33201.89201586213},"targetPosition":{"x":23572.47476853003,"y":33231.206258875114},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"3ec1ea61-ebc6-4a09-9426-b412901af922","savedPayload":{"position":{"x":23572.47476853003,"y":33231.206258875114},"targetPosition":{"x":24774.307069441784,"y":33261.17234285639},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"a7319ffe-320c-4ddd-ab3e-61eb5003ab34","savedPayload":{"position":{"x":24774.307069441784,"y":33261.17234285639},"targetPosition":{"x":25829.393878683324,"y":32685.980442765904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3157629b-e15f-4f89-8dd0-e8a67306485a","savedPayload":{"position":{"x":25829.393878683324,"y":32685.980442765904},"targetPosition":{"x":26887.09612290984,"y":32109.729616768098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"40d1d72a-9ad5-4549-bf14-0e7169ed854c","savedPayload":{"position":{"x":23389.255861548052,"y":32262.315052460064},"targetPosition":{"x":23945.112481289616,"y":32031.312524340814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"3ed49b39-ff9e-4c13-8a18-1467d3701d4f","savedPayload":{"position":{"x":23945.112481289616,"y":32031.312524340814},"targetPosition":{"x":24501.252772334083,"y":31799.826315904676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex EOS/USDT","id":"083efd78-5e50-4899-8d41-9e653f50964a","savedPayload":{"position":{"x":22592.286086618216,"y":30340.018502390714},"targetPosition":{"x":23547.123651742786,"y":31069.818979473122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"4f276e1c-552b-4a3c-a5da-031d920faa70","savedPayload":{"position":{"x":23547.123651742786,"y":31069.818979473122},"targetPosition":{"x":24501.252772334083,"y":31799.826315904676},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"3ce3832d-a281-40b9-a114-e56df685eac8","savedPayload":{"position":{"x":24501.252772334083,"y":31799.826315904676},"targetPosition":{"x":25693.534531787172,"y":31955.039699075347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"3ffb6673-e29e-47f6-b6bb-f172d2c8c80e","savedPayload":{"position":{"x":25693.534531787172,"y":31955.039699075347},"targetPosition":{"x":26887.09612290984,"y":32109.729616768098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"45b2a605-2759-4dfc-bcbf-10e21f04f63c","savedPayload":{"position":{"x":27195.06479290854,"y":32322.16899154191},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Masters Bittrex 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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bittrex TRX/USDT","id":"63594f13-9103-4e33-b872-bdd54caaff77","savedPayload":{"position":{"x":28292.478545128273,"y":34950.22826959099},"targetPosition":{"x":28038.71128865016,"y":34404.60302808226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"c08e91ad-dcfd-4611-9404-e751279e9de2","savedPayload":{"position":{"x":28038.71128865016,"y":34404.60302808226},"targetPosition":{"x":27784.92346823838,"y":33858.93457535556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"fe33bf3b-1411-45e1-a9b7-efac89542340","savedPayload":{"position":{"x":27784.92346823838,"y":33858.93457535556},"targetPosition":{"x":27531.094309205822,"y":33313.1594932607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4114d658-07fc-42fd-a3d9-95582333a204","savedPayload":{"position":{"x":27531.094309205822,"y":33313.1594932607},"targetPosition":{"x":27023.262441461557,"y":32221.253259815825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex TRX/USDT","id":"52e95608-1da2-4cdc-9db1-4d6f3b2acff5","savedPayload":{"position":{"x":27072.108872250155,"y":35205.86310147181},"targetPosition":{"x":26968.239542392977,"y":34613.10267141684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"a3ac93fd-fcd3-4474-8cd5-94e339570748","savedPayload":{"position":{"x":26968.239542392977,"y":34613.10267141684},"targetPosition":{"x":26864.375186598747,"y":34020.32675350549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex TRX/USDT","id":"48acde29-2771-47a5-a521-454f8f0fbc79","savedPayload":{"position":{"x":26245.862395216536,"y":35715.34495539866},"targetPosition":{"x":26555.096142519844,"y":34867.87664765279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"232a5548-851d-4526-a7f7-364634c9f167","savedPayload":{"position":{"x":26555.096142519844,"y":34867.87664765279},"targetPosition":{"x":26864.375186598747,"y":34020.32675350549},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"1fee29cc-e951-4602-a140-25548e949796","savedPayload":{"position":{"x":26864.375186598747,"y":34020.32675350549},"targetPosition":{"x":26917.288563590795,"y":33420.743992024036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"b1b8be6b-9d60-43cc-b66f-2c40238d20ae","savedPayload":{"position":{"x":26917.288563590795,"y":33420.743992024036},"targetPosition":{"x":27023.262441461557,"y":32221.253259815825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex TRX/USDT","id":"cbb201bb-07f8-41aa-b1f3-7f930c944221","savedPayload":{"position":{"x":25573.535895813948,"y":34830.35100865702},"targetPosition":{"x":25779.816552544205,"y":34265.032788069715},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"bafdf425-1ad5-437e-81de-0a91649d5878","savedPayload":{"position":{"x":25779.816552544205,"y":34265.032788069715},"targetPosition":{"x":25986.10262074895,"y":33699.704948033585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex TRX/USDT","id":"d10bdf93-c017-4c15-89fe-4f716ab3f94c","savedPayload":{"position":{"x":24602.86084650649,"y":34858.236674154636},"targetPosition":{"x":25294.44235864067,"y":34278.995284540775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"2df632d5-ba32-4c7b-8fbc-f395e9c07b39","savedPayload":{"position":{"x":25294.44235864067,"y":34278.995284540775},"targetPosition":{"x":25986.10262074895,"y":33699.704948033585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"bb9584f4-3c45-45f8-81df-d81a01fae40c","savedPayload":{"position":{"x":25986.10262074895,"y":33699.704948033585},"targetPosition":{"x":26331.747172977044,"y":33206.98076139213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7180f24c-3195-4df9-aff5-4d42f8d68672","savedPayload":{"position":{"x":26331.747172977044,"y":33206.98076139213},"targetPosition":{"x":27023.262441461557,"y":32221.253259815825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex TRX/USDT","id":"f1bd4d99-fce6-4d81-b84c-0b1e3517e46c","savedPayload":{"position":{"x":24463.08756433662,"y":33755.727429266546},"targetPosition":{"x":24924.43311238441,"y":33369.3539429751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"687c8a94-ab8c-4bde-812b-0b2623c0d80d","savedPayload":{"position":{"x":24924.43311238441,"y":33369.3539429751},"targetPosition":{"x":25385.78450764757,"y":32982.9668553034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex TRX/USDT","id":"a29d1664-0ca4-480f-84c7-2d413d417950","savedPayload":{"position":{"x":23608.50814894502,"y":33294.54150705894},"targetPosition":{"x":24497.10141330727,"y":33138.76063074627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"45dbd963-eac2-4971-ace7-bf4afa7743fe","savedPayload":{"position":{"x":24497.10141330727,"y":33138.76063074627},"targetPosition":{"x":25385.78450764757,"y":32982.9668553034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"bcf5bf54-6703-457e-866a-c7c6a11d7f06","savedPayload":{"position":{"x":25385.78450764757,"y":32982.9668553034},"targetPosition":{"x":25931.51283077464,"y":32729.124403910457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"00502995-58a7-484f-b7c5-27133d6901f5","savedPayload":{"position":{"x":25931.51283077464,"y":32729.124403910457},"targetPosition":{"x":27023.262441461557,"y":32221.253259815825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex TRX/USDT","id":"652799e3-76e6-48b4-9631-0bec3828f0d1","savedPayload":{"position":{"x":24038.66827314932,"y":32270.35207222454},"targetPosition":{"x":24631.449721770125,"y":32166.469644436405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"4bfc77dd-2634-40d9-b2c7-149bb97879b2","savedPayload":{"position":{"x":24631.449721770125,"y":32166.469644436405},"targetPosition":{"x":25224.24010909739,"y":32062.551568158437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bittrex TRX/USDT","id":"bf129774-d6fd-4762-9df0-35aeb0b7ca7c","savedPayload":{"position":{"x":23529.14385796462,"y":31444.09505673351},"targetPosition":{"x":24376.64276505404,"y":31753.32434676032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"55cded2f-5eb7-4434-9649-91d394e7067b","savedPayload":{"position":{"x":24376.64276505404,"y":31753.32434676032},"targetPosition":{"x":25224.24010909739,"y":32062.551568158437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"4e5de09f-d041-423c-bb1f-ea6b137c0d0c","savedPayload":{"position":{"x":25224.24010909739,"y":32062.551568158437},"targetPosition":{"x":25823.7965737304,"y":32115.376571781184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"781a9a35-3d45-4cb6-a825-17958829a7dc","savedPayload":{"position":{"x":25823.7965737304,"y":32115.376571781184},"targetPosition":{"x":27023.262441461557,"y":32221.253259815825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"4f19b249-dee2-45ff-826c-cf4f3407b24e","savedPayload":{"position":{"x":27023.247978382544,"y":32221.665686154764},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},{"type":"Task Manager","name":"Sparta Bittrex 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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"419d2133-7427-4d12-9213-9289c8f64dde","savedPayload":{"position":{"x":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"6260c386-1c0d-4eb0-805e-8758697159e7","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"0f024132-9d78-40be-a797-f72b2544e759","savedPayload":{"position":{"x":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"e12b7857-9ec6-4374-a6d2-841dc5fee271","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"21d02fca-f9b0-44cc-b36f-c4da583881fe","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b37ebd12-10de-41e8-a381-b2493720395d","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a90c7954-19ba-4351-a7f8-794072a1eab4","savedPayload":{"position":{"x":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"b70ee104-5f0a-4418-8934-2d82570571a6","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fc41c45d-32d1-4a1f-96cf-70128daed852","savedPayload":{"position":{"x":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"1ca00b6b-cbbf-4037-8d11-53265e318690","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"922f029c-21d1-41ac-bd73-f0a4faaa6fb4","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"54c8eacd-6816-4212-8b75-2a6f7fd1d577","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"c20c38cb-be4d-424f-9222-8de586e5d575","savedPayload":{"position":{"x":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"307cd254-6a99-4a36-9dff-1d29cd582ee1","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ec6d2e90-ff26-4915-96ba-2bd774686888","savedPayload":{"position":{"x":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"d84bbd4b-2d48-4532-9741-6937d1f76104","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"cf732657-856e-4783-8069-da9f2e500f30","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"68b9190d-0347-4ba9-96ee-2a5223e85369","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"31a7ab2a-da68-41e4-90e2-c35d73e51c00","savedPayload":{"position":{"x":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"eacdab20-d7a6-4ace-ae27-76d8fbad2779","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"b4e8db0d-12d8-46d3-b2b5-7104c9647f44","savedPayload":{"position":{"x":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"5787209f-7cd0-44ee-9178-c0f8593e9593","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"0b5ba770-8afb-4551-abb0-b2ea5d7a10c5","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"8cab96dd-723d-401f-9d3b-d0079ef554bd","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"2fdcddb2-1412-445b-8e73-c097b177e6b6","savedPayload":{"position":{"x":26870.089557991185,"y":32093.97016113638},"targetPosition":{"x":27715.137583744436,"y":31235.737210809606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}}],"id":"3bdfeaad-825d-4d46-b962-8a1059be2dae","savedPayload":{"position":{"x":27715.308089190494,"y":31235.844677470268},"targetPosition":{"x":27243.528995964287,"y":30586.604273057368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false},"referenceParent":{"type":"Crypto Exchange","name":"Bittrex","id":"a9a5c7bc-797b-4cd1-b24e-a627cd396d3e"}}}],"id":"7449a608-32ca-4285-94d1-c96791e2817f","savedPayload":{"position":{"x":27243.578459225453,"y":30586.48810538654},"targetPosition":{"x":26594.29660616895,"y":31058.190798041436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":true}}},"testingEnvironment":{"type":"Testing Environment","name":"New Testing Environment","taskManagers":[],"exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Binance BTC/USDT","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":"Bitcoin","code":"{ \n\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"96028eca-c0b7-4127-9a62-78017a37219a","savedPayload":{"position":{"x":29663.577850752205,"y":31134.59742944765},"targetPosition":{"x":29944.507062115445,"y":31242.7838964891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"ff4c507d-54be-4b28-b741-3c09be34b02b","savedPayload":{"position":{"x":29897.750464219433,"y":30945.107415218026},"targetPosition":{"x":29944.507062115445,"y":31242.7838964891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"9338bb06-6dc0-47f3-a460-d8c0f5174bff","savedPayload":{"position":{"x":30178.790946872603,"y":31053.173547676422},"targetPosition":{"x":29944.507062115445,"y":31242.7838964891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"bd1c12ef-14b3-4846-a585-d89217154981","savedPayload":{"position":{"x":30226.005661317395,"y":31350.550592101557},"targetPosition":{"x":29944.507062115445,"y":31242.7838964891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"8e58eaba-0360-4851-bc15-289ef95eb4f0","savedPayload":{"position":{"x":29992.014230900666,"y":31540.219005449457},"targetPosition":{"x":29944.507062115445,"y":31242.7838964891},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4eb6095a-6fe3-41df-8207-c04f4d9a5bd3","savedPayload":{"position":{"x":29944.507062115445,"y":31242.7838964891},"targetPosition":{"x":29710.56605654912,"y":31432.15007465751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fe83f537-1a72-4289-9520-b868d1434a27","savedPayload":{"position":{"x":29710.56605654912,"y":31432.15007465751},"targetPosition":{"x":29477.010356416667,"y":31621.221942687862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"ccf3c852-1dcd-4750-babb-ad0466050f09","savedPayload":{"position":{"x":29757.95766654737,"y":31729.506193576708},"targetPosition":{"x":29477.010356416667,"y":31621.221942687862},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"f053fcee-0b13-49de-bc61-86e3f72f66cb","savedPayload":{"position":{"x":29477.010356416667,"y":31621.221942687862},"targetPosition":{"x":29180.160869381256,"y":31667.900292027727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"a47408f1-2c6e-4c8f-8676-af531569a636","savedPayload":{"position":{"x":29180.160869381256,"y":31667.900292027727},"targetPosition":{"x":28761.17539214504,"y":31734.0994055797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"467bbeef-977e-43e1-9528-aef2693d6c6e","savedPayload":{"position":{"x":28761.518346621076,"y":31734.310222317647},"targetPosition":{"x":28166.719357808484,"y":31828.586399458993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 10\n}","id":"98289d84-c2f6-4296-9e09-718904bcda07","savedPayload":{"position":{"x":29785.02860271624,"y":32009.911500893148},"targetPosition":{"x":30007.075128021603,"y":32213.229826490955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"992aaeae-837c-4400-8285-8b123102f04e","savedPayload":{"position":{"x":30027.45231187636,"y":31912.651547661506},"targetPosition":{"x":30007.075128021603,"y":32213.229826490955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"ec91170f-7125-4ded-a4bb-6ce3d79009fd","savedPayload":{"position":{"x":30254.84019938209,"y":32041.7315012569},"targetPosition":{"x":30007.075128021603,"y":32213.229826490955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"3ed135a0-69c5-4029-a60a-b41401dadc0b","savedPayload":{"position":{"x":30295.742196581265,"y":32299.823136284525},"targetPosition":{"x":30007.075128021603,"y":32213.229826490955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"3ae07bb9-195e-4bc7-9982-d00e83d5e0d7","savedPayload":{"position":{"x":30119.363909264524,"y":32492.86810475001},"targetPosition":{"x":30007.075128021603,"y":32213.229826490955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"62eb188e-1ed0-4ac5-b710-6069d8b8b9a7","savedPayload":{"position":{"x":29858.810900124194,"y":32475.354761406303},"targetPosition":{"x":30007.075128021603,"y":32213.229826490955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ca7e19ce-d6fb-4773-a0b6-40ad94a196f2","savedPayload":{"position":{"x":30007.075128021603,"y":32213.229826490955},"targetPosition":{"x":29709.72259905795,"y":32260.278956888153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c50901b3-cfcf-4be1-92ac-2117fa236574","savedPayload":{"position":{"x":29709.72259905795,"y":32260.278956888153},"targetPosition":{"x":29412.712802557257,"y":32307.21925915826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"407c159d-ab6e-43dd-977d-2c5b1eccd1ae","savedPayload":{"position":{"x":29601.89272411215,"y":32541.45569070159},"targetPosition":{"x":29412.712802557257,"y":32307.21925915826},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"eaf64c9d-bc75-4619-b00d-8b41815ff6b0","savedPayload":{"position":{"x":29412.712802557257,"y":32307.21925915826},"targetPosition":{"x":29132.064070460558,"y":32199.38621024554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"bf2e8e75-5b35-412b-839f-e67244ac044c","savedPayload":{"position":{"x":29132.064070460558,"y":32199.38621024554},"targetPosition":{"x":28728.597197483636,"y":32044.447075995606},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c6f4f8db-276e-4b91-ae30-70ffe51c2cb2","savedPayload":{"position":{"x":28728.888278951228,"y":32044.547498102263},"targetPosition":{"x":28166.719357808484,"y":31828.586399458993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"9b74ab72-07e3-4c02-8dae-28ae83a58817","savedPayload":{"position":{"x":28166.719357808484,"y":31828.586399458993},"targetPosition":{"x":27567.965749494626,"y":31765.714946296986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Binance ETH/BTC","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"c6b6e113-04c5-4477-9cb0-dd9200b99102","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"166b16ec-577a-4556-a359-95fff1b54b29","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"5618249c-f2a1-4a4d-9f62-2f083ba7d661","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"6aedd351-358e-4333-9bfb-4dbc2fe1acb6","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"ac7bfdf1-3f63-4e5e-8222-fe9442ce8adf","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3503a5b2-afb7-411a-b051-9ac0bb4521a1","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7eeb42e9-37d6-40b6-9d62-bd2d721ef7e2","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"3a50a3e6-7e87-4563-94a7-799d46fe36a2","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"1bce4020-e5a3-47ca-bfae-e8376e45170e","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"ce9354f4-5455-4e7f-96a0-2d99010f7208","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"d8159e2e-db0d-4983-9a27-d7398f43687d","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"d6e8aec5-9b6f-477d-a5ce-b6939f2bb7d6","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"62cde872-77e9-41fb-893d-d53da1973903","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"613e28f5-3a5c-4032-938f-9ab43f4cb8bb","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"2be0d0ae-cdce-4746-828a-7aed79e42156","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"38b7e0ee-a21d-4c5b-bfe2-53910ba1ad34","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"96b1df8b-b1ac-4918-baa8-5e6b04ad0dbc","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9d878b19-c92c-4f5c-b083-0ab210c1e771","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f6a648e9-c7a4-4ca1-af21-fc19f5b76981","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"44812c3e-b756-4c86-8ac4-4f222f6af1d6","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"e855019f-1614-4322-a604-dba1c6deba72","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"615892d7-5d29-4ff9-8454-07fe276b94c6","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0d5bebc4-807c-46ee-9baf-bdb458d0ce45","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"f89d2878-f1c3-43da-84e1-5703791595d0","savedPayload":{"position":{"x":27812.777369234187,"y":32315.86469527812},"targetPosition":{"x":27567.965749494626,"y":31765.714946296986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Binance ETH/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"d22cc851-2e2f-43f7-97e8-55b4729ccb98","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"528715c6-338d-454c-b69d-079fe52e20a5","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"d2227af1-96d0-4be2-861d-4e8fea415631","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"b6a6e0dc-61f8-4adc-8ae1-e2ec690c123c","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"564005a5-b709-4761-97da-52f60c8f9ef6","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9b23f91d-1db1-4f28-b479-f4a43dcadf5e","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"57777b2f-a99e-408f-912f-83dd773289a4","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"914b082e-c01c-43cb-9d87-4f4acd722871","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"66e8e060-2859-45f2-98fb-8f222a1b3502","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"2128273e-8f81-40b9-a683-e66eda2eecd2","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"4035b42c-d5d3-4daf-8f84-5e878e586b03","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"183ebb99-c0be-40f8-8ee3-60269aae5a70","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"f7325fd9-ecbf-4fa1-95de-a4fe308fd9f0","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"53ad4d68-3d1b-4940-bfa3-674be118fc5f","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"1d523e9d-07fa-4d1f-bd78-e54748923951","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"73969da5-3e6c-4858-8ed0-f461967fe092","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"988b53fb-bf30-4f51-b8a8-9be381096c58","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a73b1022-6b27-4d07-9cfa-b17288cac64a","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8eb46fc0-ae17-4b7b-bbc8-340da3146641","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"4e285d09-cc14-4d29-be4a-79d6c61a47b8","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"a703c23c-cfea-4468-893f-be541ea84499","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"96cf93fa-83d3-421f-b57b-b67eac6e4f40","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4ecb1956-20f0-477e-8125-723e7900a6de","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"1b841220-d56a-4547-adc3-976f779935d4","savedPayload":{"position":{"x":42790.97313126801,"y":29465.049725756784},"targetPosition":{"x":42306.27698455388,"y":29890.065392322158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}}],"id":"4870e9f3-7667-4cae-8e10-c306614e65a9","savedPayload":{"position":{"x":27489.238435642783,"y":31190.811575640735},"targetPosition":{"x":27243.602271690488,"y":31529.57720854032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"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 Binance BTC/USDT Bitfinex BTC/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"17b5f3db-3417-4fd3-a2e4-15b1242ec8c5","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"fd822769-5f89-4719-8480-e5d454697c2a","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"c1ae8a8c-8dcd-4151-884f-38d7bbcba479","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"0c53662e-0a3e-4163-879e-25ea36db5c2b","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"d5b13e79-a790-479c-9472-d2fb2114878c","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b1b7c3e9-9731-498e-bff9-ce70dae56324","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ca56df08-c301-42dd-9946-92bc798a10d5","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"5b606c70-ed06-4ec1-9db6-11345b0b7bfd","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c2add005-ea0f-4573-81f8-b192e2a31514","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"83b400ff-e569-408c-8bea-11366afd1116","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"8527c920-4e91-4ed1-8872-a042301aa13c","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"7e2b9689-d607-454f-b005-948743367d0c","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"89726f82-f2ab-4dfb-bac3-b37babf8e800","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"c427816f-d936-4bf9-bc61-a3163642fe13"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"5223dca2-9123-4e92-9fd6-9b5767f9e9e0","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"b65b9a12-b0de-4afd-a008-6a13a94dadb1","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"bae29c8a-7061-4506-b99f-7742c2f3c03f","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"5bc43b10-4845-430c-8696-5971723205f4","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c0c380f9-fc47-4b4b-b614-b84cfbd1fa45","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"eb1e2927-64ea-4f23-a804-bc98ebcd8ee3","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"a044e4ca-d8a5-44ee-9204-5935988438dc","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"8ec5a07d-4be9-4dc1-862c-1010caa43fac","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"1a039cf8-77d5-4ea3-b59a-a51cbb556e56","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ac6e4674-0dbf-424b-80d0-572fdeb23611","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"d381d088-2859-4571-a4f4-6ea6f19d24ef","savedPayload":{"position":{"x":27138.98433756054,"y":32527.951420162568},"targetPosition":{"x":27201.77650685968,"y":31929.086906997425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bitfinex ETH/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"8506d756-126e-4566-adc4-3c9679b11030","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"02712709-2952-425b-b53e-447d75d753ed"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"3472cfaf-417a-40ba-8399-47518bcf25c8","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"9b309191-499e-4f6e-be35-e969d8b38987","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"366feff9-485a-4d33-ba74-910820c087ec","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"7e0c70c9-32fa-4bad-96ee-fce8646f93bd","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3000f9c9-797d-4048-a622-5913d2f05412","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c9db993c-8ce8-4475-bb4c-a4fcfff79d59","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"b1bfa86a-9eff-4d55-a5f4-45f195c85a59","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"90c8ba9c-1194-4630-a3d0-4483d4576bd1","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"0ae83b02-4bb2-4ca7-b17e-6f5bcafe67ad","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"1f059f0e-d0a1-40b0-ab1b-506ad0c36b43","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"fa58b882-8881-48f7-9fcf-0aaf41fa620c","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"02712709-2952-425b-b53e-447d75d753ed"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"458bc289-d305-436d-ba82-2a31b8de8791","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"c427816f-d936-4bf9-bc61-a3163642fe13"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"1fe0851c-bdc0-43fb-be74-b75723e2e3fa","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"08581207-3997-4254-adc7-04b92df0970f","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"67166506-752a-4e39-b6b7-0dcb654f1b2b","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"68afe20f-1759-4a3a-a8a6-5dd47c088328","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d9313b69-70ca-49a5-b5c6-5b106923e6f8","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6338f8cd-2b7d-4512-9bb4-bbf773dc8adb","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"88f726e7-3efa-4755-81bb-8240a9ce2339","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"9d272734-a9e4-4e85-965f-cab8b28ef9d7","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"f33df62f-b0a0-45a3-a99d-1f2b3567c54f","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7e5791af-3ca3-422c-b34c-1c9b8a1e521d","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"ee9f5764-7cc2-4666-b46f-e515d23e72f9","savedPayload":{"position":{"x":42790.97313126801,"y":29465.049725756784},"targetPosition":{"x":42306.27698455388,"y":29890.065392322158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bitfinex ETH/BTC","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"c08c2d6c-d42f-426e-9b49-eb25005477e3","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"02712709-2952-425b-b53e-447d75d753ed"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"d4065156-61b4-46f7-9287-913ebe95c9aa","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"9a7bbbd6-ef73-4b2c-afbd-247089417e2f","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"56f2f1c6-8686-4d1f-b168-4aa84f08949b","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"a0074a93-22ca-4e98-afd6-4a851868a20a","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"631cdaf9-b6db-4cb1-a19d-dca94f2d6e50","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8bc8646c-eb66-4b4e-9733-6b561c4e4b6d","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"ca552818-a5bd-4b69-a69d-7f24fb5a9eb7","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"1b372f73-6028-4b2e-a1da-d60812cc5fee","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"12fa41dc-1f5f-42fc-9c9b-42340f16888e","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"20091866-7854-4aec-bc80-f2a47855a4ea","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"284983ea-7228-4ce7-878a-492d41a11ea0","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"02712709-2952-425b-b53e-447d75d753ed"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"539f9763-3eac-4d01-841c-e5cf5d54b4e8","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"3fa7489a-e3ff-4936-94fe-1f53e45d5daf","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"a0593e5d-12c7-4065-9b2a-f81d80963d97","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"37a5f050-ac9d-47ac-8264-4cd5ebd6e156","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"2811fb56-9131-4435-85d6-1646737b8069","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"78c750e7-2d62-4534-8494-e2b9347c585b","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e830b518-f027-4922-9ae7-fb04f2861b28","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"60064729-9894-46fd-8788-d2444ba4ae94","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"a44f73fb-da4f-4970-b078-55f0e1729e57","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"0b92ff50-e66f-44ff-97ca-5ce81e143576","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"dd9ee001-3ee0-41ac-851f-00fc3e6b643a","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"145e21af-b486-47ef-ac1b-6160a8989ca5","savedPayload":{"position":{"x":42790.97313126801,"y":29465.049725756784},"targetPosition":{"x":42306.27698455388,"y":29890.065392322158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}}],"id":"c7f426b2-b0c5-4bd3-ae4b-5c4155ba779a","savedPayload":{"position":{"x":27582.004917849496,"y":31775.12496642839},"targetPosition":{"x":27243.602271690488,"y":31529.57720854032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Crypto Exchange","name":"Bitfinex","id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a"}}},{"type":"Exchange Tasks","name":"Bittrex","taskManagers":[{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bittrex BTC/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"2efe5cd5-ea99-4fad-8188-f4e8bfbe150d","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"60df7988-ac21-42b5-8f62-87d52da3f3bb","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"564aa553-bcce-4d3b-87f1-5a9da5003583","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"ca4090d6-a5b5-4c13-8d2b-209eccf57c25","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"b51a97bd-2c99-4101-80d1-a9293b37335e","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"38df6f88-3106-4c58-9a18-4384612bfd21","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f6fa43f6-c590-479c-84f9-c8534e57739b","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"0e4f8be0-d3bc-4912-ba96-e54fee6ea155","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"f8415605-a059-42dc-9868-a2e3fcc87eef","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"dcd08a03-a071-4b86-b897-e4390f3caac8","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"cb2ae584-96fd-46a0-b0d6-db8a7256cd16","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"e71587b1-d367-4fde-a534-ea26e616ff46","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"9b11f119-70f8-4963-9c9e-4a13076c746b","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"d8e17307-1312-4621-a848-0627e0bfa3e5","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"73c00b6c-b257-43d4-90e6-8cdea88cf67d","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"13a4032b-c757-4098-a2a0-88ec52213205","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"1ea3f451-798a-4ee5-ad33-bc07b0c69d59","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3978ba02-3433-4853-8877-5e03ffc2e7e4","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8ec96291-fb32-4e48-ab8d-6b97f934a617","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"aef8d3c7-4f40-41da-a8d3-6e7a44563231","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"a2cb8020-1e38-4941-a4a8-9f2fadc89b17","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"4c5bb6b7-6d79-46ba-8090-51d151fb54c8","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"5976f9c0-78ab-49d5-8252-4094d8363f67","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"3dbebf9a-0eeb-403b-a7c4-1b8a9b1a4724","savedPayload":{"position":{"x":27358.938162136717,"y":32372.849609068457},"targetPosition":{"x":26997.90137447686,"y":31867.817252764467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bittrex ETH/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"4224f7b7-d653-4a24-9a7a-1d5a32a7ccc5","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"072e1191-1702-4b07-ada1-2a56f9dc51ed","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"518ac0bf-0757-4eee-9f11-f6a98214604e","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"1a752bec-328e-4940-a6bb-e1b657e9e453","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"78956347-33fb-4b0f-93c5-9c4cca82967e","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"efb46358-5026-460d-a778-57004fa57031","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"66f117bf-d69c-41ca-83b2-e3972ee186b6","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"866a50ab-fb7e-4d40-babf-29c709e8c874","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"255b931e-a84a-4f8b-9aa5-96e226772327","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"629e7b08-3b87-46b4-8ab8-f5eb07388fc8","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"444f8370-73c7-4be4-8a2e-fc49ecb2f4b5","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"92d91f28-a5a5-4918-ad05-15e09ff801af","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"642dc2b5-cb01-43bb-a853-9c3fe2d4505f","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"e3ecfb94-fa32-4bb4-95c0-ed6cee77f7f7","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"08625261-6754-4544-a843-ff37df46edbf","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"38a22bdc-266c-4bbe-af4f-6e99f49ab219","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"7f639e0a-2f63-4300-b0bc-aa3706297ca0","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"56ce2778-68ca-4a59-a160-500bc1c52b83","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1e81a2c2-8ba1-4d1c-8c69-591f40d85a65","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5f1a3c9c-b76e-415e-90b6-3b7fcd7c064a","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"5a9e756a-22a8-4653-a9fd-67afe88f8f80","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"83048917-d49b-420b-9d26-5c26e5e507ee","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"96bba274-fd4f-4272-93fa-d2c2ff7314d2","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"61ac9b5a-6987-48e3-a70f-c23d4af596e5","savedPayload":{"position":{"x":27143.243415310226,"y":32453.79282406715},"targetPosition":{"x":26997.90137447686,"y":31867.817252764467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bittrex ETC/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"ebec5a50-bdd1-43d4-8481-9881dac39e1e","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"45db1b23-5420-43b9-8ce9-0da13f08a2dc","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"fc769b50-20d9-4dba-a600-2cae90e26c2b","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"131c004b-e15a-49b2-85aa-0ffbd9b8ff29","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"24470888-dbd0-4085-a403-71db1dc24325","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"684a824f-d87f-4179-b96a-f26e30e58d54","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"53e3c53e-3544-4fc1-99ea-ce4b89ab196b","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"4d0f53f9-8482-44b9-abea-23e342454877","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"4f0c541c-bcee-4cd8-90cb-fc0400b798f7","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"0bbb5a37-165b-4a87-b627-14e458344ab0","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"dd7800db-e5f7-4509-b2eb-fc1823a3a992","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"e6b0bc57-0bcb-4c3f-9a2e-beaaa88b6222","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"ebd3c9be-8e67-450d-aafb-9849a1292d4e","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"8687de5e-a28c-4729-bca8-c5257e455f2b","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"ca55d538-b660-419e-bd96-ae485c96eb08","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"ac96d74c-4da0-4fa2-b756-f3f4c5123319","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"2923aa26-9eee-4ac3-99a7-f39a6163c997","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5c827701-a13c-4399-9a5f-c433774222ce","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"debce6de-6f3a-41ab-b98a-9cd300617740","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"2bd580ea-6c76-473a-a972-21b973fbfcc6","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"772efd76-ee21-4500-96fe-464a24210cfc","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"16004570-7d56-421f-92de-f99e05cc9aff","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"777436e4-86dd-4f8d-accc-481d3d0f82da","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"333cb509-383f-4966-8938-fabdb5a95bf9","savedPayload":{"position":{"x":26934.72928805089,"y":32467.873084628955},"targetPosition":{"x":26997.90137447686,"y":31867.817252764467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bittrex XMR/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"38478335-d3ee-42d0-a242-966113471d28","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"7636eb55-68ff-4d66-952e-a7dec2ae4ead","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"1deb952d-16c9-4a34-992a-9cd795abfd61","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"81983386-6c12-40dd-ae37-e0e18f23bec1","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"12ad96c2-1d84-4f5e-a105-2f2189c876d5","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bc789fa7-ae6a-47b2-b1ed-3a77acd2adaf","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b76f3edd-327b-4c84-954f-f4a2dbb9e7ef","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"acf7dcd2-0a85-4792-b0f6-598d1864397a","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"c8803b48-cf70-4030-a045-3c719ef3c6af","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"093cc79d-6cf1-495a-9000-a3f8a26c9c1d","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"f5fb8572-9957-43d4-9a8e-9d4e58167135","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"82751aa6-b205-4654-ad63-cf49031ac02e","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"53885cba-d614-45c3-8aa2-53e6ce8d1f63","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"9dc379c8-7b41-40b9-af37-dc5d38527fc3","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"ba05d9fe-6082-4733-b482-1bb9b8286cb1","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"5c7f5dff-802d-48ca-b485-7682217aa2f9","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"ebfcee13-4ef9-4d1a-b527-6546837e2aef","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b66103f8-91d1-411f-91d0-7e42693937c2","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"05d1e879-5ec3-4025-9794-05a14a3c0d9c","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"49b64f58-a179-4fc0-b08b-a3090fba1afb","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"d0a0f1d1-eed1-4785-b769-8e5db0682148","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"2aa705b7-1ee5-4a01-a219-a778089990a2","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4eb0eb6e-d121-43d8-ad29-c47e6c46af79","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"674d1e62-25d7-4ecc-83e8-414aacff4a93","savedPayload":{"position":{"x":26733.597404287084,"y":32410.00991777692},"targetPosition":{"x":26997.90137447686,"y":31867.817252764467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bittrex DASH/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"6b57ac48-e8dc-47ca-9860-3bdc9e9284c1","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"46acc436-8b4b-4499-803e-5db66e2ada2b","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"1955f355-aa11-413d-9b37-5a142c41ba5f","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"f3941199-3e8f-4b04-a69d-a66141ee3428","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"e3ceecaf-f0e9-4fcf-b45a-547944cfcabd","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ed3465dc-c7f3-418d-80b9-c2d51858bd3e","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1f0d8200-b9f8-4063-93ea-950fa2376408","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"bfb2ba6b-051f-4c10-93a7-25591c611e0e","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"a2fadc64-7eb8-4e7f-9406-486f04f46533","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"9d4cd14b-1241-4577-8b99-6b9041331ede","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"eab6c6d9-9542-4a4a-8343-7028ed080481","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"bc314212-9da4-48ff-a535-233d15c53832","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"615614fa-c57e-46e1-8b1b-343613821770","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"ea9c871a-8d66-429d-ad41-754eb569b322","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"eca76e3b-4581-49a9-bee5-a9664d90fcac","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"ace3369a-2343-44e8-9fc6-c4cd02c19680","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"880949bf-3051-48da-a99d-5cf2c4a26f56","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d0bbc5b1-6d6b-4707-8b8d-bff4953e313b","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"517e6cbb-6b4f-4a6e-b436-5bc04b57e33b","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"7eb9181b-085a-44e0-8f0e-43d198014260","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"70298490-1ad9-496b-af4a-8865a8691919","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"7f23aa1c-f89a-40a0-90a4-ba95d28416c6","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"810446dd-053e-41c9-94c6-093cba9addbe","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"fc8afaa3-8163-4a8a-b014-b1b8d57fa074","savedPayload":{"position":{"x":26564.33135318738,"y":32286.869566996498},"targetPosition":{"x":26997.90137447686,"y":31867.817252764467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bittrex ADA/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"75763131-c37b-4032-a5d0-dcf70081ebc5","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"b136d15c-a7d9-4a6c-bc74-7852b3b31381","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"e77be095-0b98-4c04-a412-c82a0b6a005e","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"9e94a545-df87-4080-8f65-aea85d8f8831","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"e9ecfdaf-deed-4913-a6ff-c4d5115cfbf1","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ebcbc642-dcb9-4341-aa44-e00bb6f4a624","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2027c96e-4cd5-4f3c-abfe-00ac370b3879","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"70164d0b-f78c-44ba-85d2-7abee86b474f","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"7c9680eb-630e-426a-be98-07b9f906f6eb","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"d30ce786-8001-4c49-b330-8d7f1c1486fa","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"a8de5435-9a7a-47f3-b34d-499ca02fe379","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"ff3f02f0-85cd-4745-b520-3e3ef0186301","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"0627eb79-b5d5-4d87-b14a-f55b96b52af2","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"2220e87e-1cd7-4c44-b390-5b1b5e06e70d","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"8f98dd24-a4f4-4790-becb-3a7e7a4f75a8","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"4d8860e6-61e1-4ae0-bc31-b03376bda206","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"b862a72a-c3bf-458c-a58b-8e06281724ca","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"180851a7-fd39-4fa5-9749-74b18ab65286","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"186970ae-aa16-4d88-871e-f4cf4a446076","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"08cce2ac-e2be-4c19-bf0d-9140e1bac4f2","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"c5612d3f-2adc-4d71-882d-4bc29870b598","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"fc71863e-fd5a-4972-b374-9705da410b4b","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"50ef219f-65d9-4de7-97cf-f896452f9a59","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"e2296443-1bb9-4650-abf1-4dc882b70e46","savedPayload":{"position":{"x":26447.44907670491,"y":32113.22666792307},"targetPosition":{"x":26997.90137447686,"y":31867.817252764467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bittrex XLM/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"d9e6f747-f86e-46f9-9184-98b40d82d7fd","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"8925e912-3cb2-4e87-9663-7b291754aaf2","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"4d479692-1d1d-4527-a9c8-41ee28355785","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"6cae8573-68f5-42ee-881d-d7d15112b157","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"193f6c78-0dc0-4f8f-a824-ca33f0bb2f76","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9920c7a7-a7ee-4784-a221-38d0ec50163f","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"319aafb3-37df-4067-b99b-a77831d473c5","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"a5b73ef4-bdc8-4072-8025-930e933b18ac","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"ddb497f1-eb3d-4918-a6b5-6344a864c572","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"a9ca7dae-f9d9-43bb-a18a-af5225a507c2","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"c8f5fe98-048c-488e-b930-dadc6e0f14dc","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"e7d73579-dbb5-4a1f-8a00-1109b45b9265","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"2b5ed67d-c34d-415f-90a9-52aaf7a07637","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"77b50c17-d7a9-4edf-8407-b5fa886f9c15","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"e79d66eb-534c-48fc-b77f-2c221bf67398","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"ce25bd9b-7a7b-4826-97dc-dd6e015137e7","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"f46088b3-e0de-417d-8413-65120f1018a2","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a500dcdb-0360-43bb-aa75-00932b3bb1a7","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3d1ffc8e-a3bd-43b1-8549-359f597ea003","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"5c983e13-dcf0-4ead-bc66-9afd80c38aa3","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"ece3b026-680d-4e19-85b7-daafc153004c","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"2b53ec1b-6741-40a6-9eeb-147425324078","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"e203e345-b104-493c-8579-2ad8ad2f6a0d","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"f33779e5-f1d2-465e-85ff-6e854555118a","savedPayload":{"position":{"x":26400.967480005467,"y":31916.797830549876},"targetPosition":{"x":26997.90137447686,"y":31867.817252764467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bittrex EOS/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"c8c827a5-3844-4ef8-b8cd-e45a1caa6943","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"19cd26a3-3977-476b-b1e2-4fc0caf0b599","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"c66c89ce-5e36-4363-bc96-3725972ad738","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"764a47f4-d8fe-42fa-884a-e0d37e73bbf7","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"5a87ae2a-2a75-4128-8c8f-2f05d256d49f","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2260f64f-fa8f-4f42-bcf4-ba4c651bffb9","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"35f23a79-76ef-404c-9e74-1b2b8668a56d","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"01174c3c-b47d-40d2-a768-926992679d23","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"cd94c971-fc62-454e-9233-09e9a516f611","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"83f2e6b4-0ed3-449e-8652-782a1a2276d8","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"6521b8d0-ae89-4bc0-b6e7-cd7442db5457","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"efa9ec79-b287-47b5-a569-43483ae98ea2","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"24afed99-4967-4678-9888-2297d35c1223","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"691ceb38-f700-4f98-9f3d-99c4a19e438b","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"7fe11956-eb8c-46cc-9826-ad65eb9e91b7","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"e2601905-6607-4e10-a5ef-acc5ca001ce8","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"e326fbb6-e88e-4f9f-a808-e4b01555c313","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6a24d4ce-b930-4256-9a5d-17ca76ae4ba9","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2d5d9a7b-9354-4d65-bd84-418d3066a1b5","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"8f413326-65af-4cda-aec5-5e00ff3eace6","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"c08d0044-4b29-4981-a70d-73971e93cae7","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"6cc1b578-3a12-4c49-af69-a4e126cff8ef","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"3121f15a-1714-4038-87e5-6c81f4a1bfc9","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"32e8e7d5-dbb2-4dda-90a5-475db2263812","savedPayload":{"position":{"x":26419.392762151438,"y":31700.66620339087},"targetPosition":{"x":26997.90137447686,"y":31867.817252764467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},{"type":"Task Manager","name":"Paper & Backtesting Sessions Binance BTC/USDT Bittrex TRX/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"d410f49f-018b-452c-a7ec-d79bfc8a77c8","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"5978c793-3e5a-4788-a4c8-ea695904ed80","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"571e842f-d27a-4117-81e0-7d032b25eb23","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"5b2e8e54-4421-472b-9001-3644e6c95ba5","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"59ae6ec3-39ef-4d07-b222-92f07e80a508","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"30f9cc92-7539-4f55-9c36-53ef2ec15545","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d97d79cf-46fb-482c-9fbd-709020923b33","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"d9d6b7e1-d1e6-40f7-b0ed-c72a142364ac","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"1c205b3d-b03f-427a-87d6-5f979ef7e463","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"e36df1af-c160-4d02-85a0-748e9800e3d4","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"bb99ff40-df0b-4d9a-8783-a3fc82a1548b","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"e02af312-e800-4e1d-a4fa-3f1207475178","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"75eed4ca-d8b8-4e1a-b697-e64fafbb1890","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"95d33ab8-0354-453b-9f27-5201d0080555","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"3fcf1ee9-354c-470e-82d6-8c1225ac26be","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"46ce9cc3-e2a5-4ad8-8acc-3f3d7dcef76d","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"84a1c290-928b-4c58-86e7-0e228bee013c","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"df3e6f97-437b-42f7-a200-c9bffa7b3840","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1c5ca4dd-4f3b-43f8-8df7-c0cc49d46784","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"0a9316bf-9268-4123-94fd-60894fba9a25","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"ce4614d0-32fa-4bc3-b7ee-1e700f312573","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"9a0ab804-34c4-49e4-bb85-3be0fe80a420","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"e9f126a0-d021-4545-a022-30010e75c2a4","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"2feca733-a0f0-405c-a7c6-e2ed8844fd35","savedPayload":{"position":{"x":42790.97313126801,"y":29465.049725756784},"targetPosition":{"x":42306.27698455388,"y":29890.065392322158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}}],"id":"097faf14-deb4-4358-8482-b5ac73c8984c","savedPayload":{"position":{"x":26997.90137447686,"y":31867.817252764467},"targetPosition":{"x":27243.602271690488,"y":31529.57720854032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Crypto Exchange","name":"Bittrex","id":"a9a5c7bc-797b-4cd1-b24e-a627cd396d3e"}}}],"id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45","savedPayload":{"position":{"x":27243.585561475255,"y":31529.89359017503},"targetPosition":{"x":26594.29660616895,"y":31058.190798041436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false}}},"productionEnvironment":{"type":"Production Environment","name":"New Production Environment","taskManagers":[],"exchangeTasks":[{"type":"Exchange Tasks","name":"Binance","taskManagers":[{"type":"Task Manager","name":"Fwd & Live Sessions Binance BTC/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"9bfa364e-4290-414d-9271-1d3e5bce0b59","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"e8502144-c27c-4a19-9876-00245abcae31","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"35820cf4-85b6-4d7a-abb8-24725e5c40a1","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"e200dbee-10a5-49bf-964f-9964e3b6d9f1","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"a244fb43-bb20-4678-a75d-ae09894bbfdb","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3878148a-c7e6-4bbf-8358-795b094e2586","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ab302724-6565-47fb-82f7-be0acf5fad30","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"da798f6c-a7d2-4da1-8a10-efb4311f1d11","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"2e0af685-f6c9-4d90-89e4-729703c5feec","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"b0981ec0-fb46-475a-8468-974c470f919e","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"a8e3d15b-a7a0-4fd0-be65-e5fc590e6781","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"66c492af-aa26-43b1-893b-9c88024bf416","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"fc328cf8-4703-42b7-ad09-8939736613d7","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"99ed1e10-b9fa-42af-91f6-601b477a468d","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"742349e3-840f-442a-8311-3545835581df","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"68c2d19d-5b7e-4b94-9ec8-c4e37a7cecd5","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"a210e4a9-fa52-4b34-8075-5c92a790c76d","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e13d5ea4-7b88-4523-bfdf-04d7d6c98cae","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"c60011e8-9c3c-4f09-bed3-60587071d497","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"15e1eb29-7dc1-4d6a-8331-dcda8d964f66","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"67a6ebd8-f241-4d3c-be27-9303a22c58fb","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"8a122d46-f51f-4c7f-b5b6-a709cd8f20fe","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"43546443-e5f9-4498-bd6b-5c289a0f06dd","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"e082f87b-b44b-4739-9dd2-da1293cc47b5","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"cfa8101c-6dbd-4142-9ea9-ab2f6cc78c94","savedPayload":{"position":{"x":26347.575978428908,"y":32791.97579993825},"targetPosition":{"x":26222.431029256688,"y":32202.99569509928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Binance ETH/BTC","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"b280affe-8ecb-4d8d-a37a-d059f8914d4f","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"149b2f54-7f4a-4c62-803b-68fb33a261d7","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"32a806a3-0dde-43e4-bff5-6f93425338bf","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"7de4ebd2-5b2b-43b5-af50-2d61f5b1f646","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"d2fc7910-fd94-4e64-a8cf-03f17ce89523","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cd7bfd1e-fb68-48e5-bcf2-60f234d188d0","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c40c4edb-e14b-4b65-ba5d-a823cca86063","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"eb8a79ff-1740-4645-b133-c3f1cb0b69f2","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"8f4893ee-34d7-49da-b299-3ba0d0d1e785","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"e115327a-7b07-4e92-bee9-618a34294035","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"194de778-4ad3-41be-af3a-933f3ed50e8f","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"fa1a75bb-f2a0-47b9-99dd-ebf06afc58ee","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"c70d85d4-5227-41b3-a0fc-ec3484ff8a34","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f"}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"d7ad2d76-e918-443c-9dcb-5ed4e20a32e3","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"574e0613-be77-4e5e-a70c-df500247f6f5","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"deb5b672-98ef-4c73-b12f-21c27c88fcec","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"dcf5df69-95d1-4d14-8840-169f36fd0f1d","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b00b68e7-fc7d-4058-a834-f5ac1d40e6cb","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"ce972539-edd5-4c4a-b3eb-c7e569d41aa0","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"caaa80dd-48c1-4486-94b3-6b1610e3c211","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"05474aa7-0383-4e6e-9fe2-75e0892f2d8c","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"a4562107-8fae-46ed-912c-062d82dbeec7"}}},"id":"18913084-bec8-46fe-b6b5-591f5fb535f6","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"1f9f5546-d02f-44fb-bbb0-04db2b1306f2","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0d70a6e9-83f6-47dc-82bd-6813ad1d28ef","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"7ef04d7e-a101-4cfc-85e3-cc23c4f6d1a7","savedPayload":{"position":{"x":25774.967135691702,"y":32605.868963153993},"targetPosition":{"x":26222.431029256688,"y":32202.99569509928},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Binance ETH/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"e5e6c3a0-54bb-4756-b1a8-6272ce087ccc","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"85fa690e-3509-4ca7-847b-925a0320c459","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"e3941e61-2e7c-48b3-853d-3343502ac4b0","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"151bcf87-10d7-4d55-856d-bb027811f68d","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"e582b0bc-49a3-4b83-8c80-3d8800805df6","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bd119a84-7e18-43ab-aaab-8e88937937d0","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5a87f628-8edd-4e27-8dc4-37395c6df16c","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"712e5ce4-9684-4755-b700-2d6b7dccdf8e","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"6135549e-a37e-424d-83d0-a907e7777a03","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"9741a252-88a2-4af6-8087-209cf8ff9ed0","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"932a2a43-8192-4772-aac8-d32fc831b49e","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"b8ac187d-a4f6-49b5-9180-1d3906583e39","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"d24260e7-51b7-4a2f-a995-06d9c42ecd56","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"b3d0800f-f430-4549-86e9-68001c43fa1f"}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"89170bbe-4d00-4d29-a661-2b4c683dc271","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"ae8d2d78-d906-4caf-a6d2-e15346e09fff","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"1d4d2632-3ab9-47de-9dc6-97625fa8b464","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"0da67e6b-2854-44da-aa65-9a42468a6957","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"019678b0-2c9a-4c51-9df8-14fd9a21c10d","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"43da95ac-32ca-4c82-91f4-3d092425f666","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"cba9935e-3fdb-4909-b695-1ddffddf8c0a","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"bf44e517-012e-4c87-b0f7-cfb491d19eb9","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5f72971e-a0c3-4185-b7f5-6af0d1030895"}}},"id":"513bf053-ec5c-45e8-8cd4-062b3670fb88","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"2ed37c76-1319-4758-8ab3-1f57be492358","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"794014e3-407e-4c72-8457-eeec517b5cf1","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"82f7c58b-367f-4649-8fe7-09f1aaed8061","savedPayload":{"position":{"x":43039.645641790354,"y":29910.53304005825},"targetPosition":{"x":42461.33493795225,"y":30195.724318480956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}}],"id":"1498dd73-f19a-4602-bbfd-3fbfe23c4a9a","savedPayload":{"position":{"x":26744.188006266282,"y":31950.78588889622},"targetPosition":{"x":26346.38347383166,"y":31821.539080547664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"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 Bitfinex BTC/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"cf095836-b44c-41b4-82bc-c29d2624a163","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"104195e8-fe8f-4f86-af1f-166ca913ddab","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"5f1191c0-8294-4f74-a762-19afb6fa8c39","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"e74b0fdb-5f37-44d0-a156-2fd411bffd19","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"f29f3ed9-15e7-4c31-80bd-324794b4205f","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a1454c3d-9c9e-41b3-ad81-984fc1408638","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1655f323-8672-40b2-97e8-1b6152ce0721","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"016ae88f-d0d5-4a33-ae9d-9e2626c19aec","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"f9e676f5-d35a-47b1-ab8c-82f85a7e151e","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"ef4ed7e3-79ce-42b9-a8cd-9742f54d9a63","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"89e99118-9621-4735-9336-321c7a76413f","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"6bdee191-b85c-4168-a8df-3829dc00159b","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"7af5601a-477f-4b81-bc63-ce474858a395","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d"}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"4d338edc-4db9-4a9f-9d72-09f8a1bd6cab","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"c427816f-d936-4bf9-bc61-a3163642fe13"}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"5b4c2866-2b47-4eff-aa15-886e24ab2a41","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"073b60ee-723f-4861-b652-5714f953f921","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"275efdf4-4ac7-427a-ad73-4cac89def343","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"424f19a7-f9a1-482d-96fa-c199df59fc60","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"bc9b359d-f390-4c25-ace0-ce6d0280a3d4","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"3bc3b7de-3b5c-4be4-ac34-7dfdc69f7516","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"81d4d88b-7655-4037-8c4a-4be20cb82459","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"3bb6f57f-615d-4fda-a041-2a14b3b2fcec","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"ed3fd3d4-ed65-4fb1-bf07-1b1373429325","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"097dab43-8992-40e5-a9f6-54c75dad472b","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"42b5d015-7c07-4d12-9c9b-262a42ccf454","savedPayload":{"position":{"x":25364.872696929167,"y":32030.084526011127},"targetPosition":{"x":25953.796307394623,"y":31904.89842964492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bitfinex ETH/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"58126867-d515-413f-b359-757f3d805f03","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"02712709-2952-425b-b53e-447d75d753ed"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"3a83b65d-852d-43b9-b561-b45a68aba95c","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"3efc828e-8b61-40b2-9e44-597043a4a124","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"038ee8ed-dcf3-4677-9b34-390acf1cf61e","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"a28a2c61-4bac-4858-af7d-31feefe42cac","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7ce7d99f-d982-4939-ba4c-e3505bd2b054","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4718b2b1-acfa-4b05-ab83-ded93f58f271","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"bee59f6e-061a-4435-88c3-fa794309fad5","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"609ba524-bd93-4071-b156-d25eaf3747eb","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"0ad8d571-6437-4c76-9b44-ca63195204d6","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"166d20f3-aafe-47af-82e4-4ef0e7885807","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"cfffe090-d72e-451e-b70e-c5e599edb4dc","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"c3c8195b-8407-4ed8-87f4-7ea2ed72901a","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"02712709-2952-425b-b53e-447d75d753ed"}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"57431576-7127-49cf-9b49-3ef8ceecbbe6","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"c427816f-d936-4bf9-bc61-a3163642fe13"}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"a6670433-f472-4cd9-aa53-28d52f159a84","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"a1ba277f-0343-4b4b-bb57-e74355859ec4","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"e9d26428-5107-4346-b913-60b0da2e904d","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fbf7a45e-21ed-46e0-867d-800c6edac211","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"18eee886-c742-45ee-9218-4c4912c510ae","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"a5f6b093-8cd1-45b9-afa8-0efe30c60193","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"2254fb3d-4e6b-4fb8-92dd-140b659bad6b","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"e0b33e47-b62e-46df-ad42-5abc4a982629"}}},"id":"057397ee-b40e-4fab-b5b9-6444c7bab4c8","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"a20ca2ea-1cab-4798-81b0-a6925558ed0b","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"213cc19c-5ce1-4641-8f3c-e655db3b13e0","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"4522200e-1b52-4271-ab15-2043df688614","savedPayload":{"position":{"x":43039.645641790354,"y":29910.53304005825},"targetPosition":{"x":42461.33493795225,"y":30195.724318480956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bitfinex ETH/BTC","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"c1940c3f-ba48-4104-9953-dc9114313cc7","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"02712709-2952-425b-b53e-447d75d753ed"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"5a3933be-d3fc-4d3b-a7cf-897d34a5bbe8","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"89edc017-9931-4dfd-80fb-2a90708e9187","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"90d73d45-b2a5-43af-9219-119612f5e26f","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"c8df3c5b-4308-4ae1-9d62-a353e47355cb","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"95644f25-03be-49d7-88d4-80cd8a358fb6","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"573fc9a1-9322-4ed9-998c-348e8a8c79a1","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"561d84ec-3d00-472f-b702-f04f09cd0e32","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"4196c9fb-4f46-4e11-b77c-66e5cc0839b9","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"f256c602-e383-43be-b713-74d659d05dee","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"7075e7fa-d7a2-4070-92b8-58c1257cc78f","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"f93bbca5-7b98-48c4-a522-615af38f51c0","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"85418286-9e87-4caa-abab-5cc334b75cd9","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Ether","id":"02712709-2952-425b-b53e-447d75d753ed"}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"137bf597-9e8c-497a-8a04-056fceb8d9f3","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"dfee6cb8-deff-4d50-a62f-1060e540069d"}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"486b841a-d2f5-47e3-9840-bea524c9b8b5","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"66b1087b-5a95-4e2d-b5d8-1ca643308310","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"920df591-657f-4900-909a-5640574218a3","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fe0ae517-cf03-4224-b1a6-6f5a46014354","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"748edc48-90cf-454c-b891-a5e0d734985c","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"f8fd3722-5896-4f7c-8283-7e1c6484b1bd","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"3b50290c-4947-42b2-b723-60ebac3ba884","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/BTC","id":"8fe121d7-85a5-4782-807c-f43cfa34144f"}}},"id":"adcbb784-9fab-4bc8-8246-c3fa861cf414","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"51b159e1-bd35-4b13-9b07-48f4a24679cc","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"93483598-2103-4843-98dc-2bb08a8dc445","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"5f832231-0b07-42ff-932d-0ad84efedc4c","savedPayload":{"position":{"x":43039.645641790354,"y":29910.53304005825},"targetPosition":{"x":42461.33493795225,"y":30195.724318480956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}}],"id":"19af4102-8c6a-468f-a40f-36b3036b8e6b","savedPayload":{"position":{"x":26217.29944506455,"y":32219.280897507917},"targetPosition":{"x":26346.38347383166,"y":31821.539080547664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Crypto Exchange","name":"Bitfinex","id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a"}}},{"type":"Exchange Tasks","name":"Bittrex","taskManagers":[{"type":"Task Manager","name":"Fwd & Live Sessions Bittrex BTC/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"eb99c019-2e2c-4b27-84d1-58c037414171","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"98fdcf13-c691-45df-a511-46d14fc80b7a","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"941c2594-ba2f-4f7a-a089-e4f9bc65b221","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"8ca9576d-2581-46d8-bfad-ce1a5bff0a89","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"6771b720-7bb3-4248-af41-7580fbf1ecad","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e97f633f-5f90-4bed-81ce-d4814f176305","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"251bca7a-1885-4033-81e2-41b6b278b1fe","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"63a7dc5f-470e-4a55-9aba-edcb1460f56d","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"c526a16c-b158-45ad-aca9-d2cef8a96950","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"6c5caf30-43ac-4c4c-a6dc-81a73f341ff9","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"ec3d47f3-f3d0-45fe-a14e-d6a3e2f984af","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2d98a3fb-f4f5-4fa4-bb7c-aea70f2792f3","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"da2a723e-e339-4c82-a356-8f8a56b415cd","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"15643c15-a26d-48e1-a35c-f1813a8998af","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"b21016c7-b990-4759-aa24-472a9cef8069","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"2ad278a6-0dce-4c1f-99e2-a3a7dbaa1e8e","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"abf085a5-32e0-4460-b789-16ebcda404dd","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"507f5a68-f9d0-4955-9bf2-9664990741a0","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"126f3f43-3a6c-40fd-b9ff-8cc74fd45d9a","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"cd8885b9-21f2-427d-8624-c071a1ac28a3","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"83003d35-a7be-46ff-a3ae-9c5785454005","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b440afe2-4129-4553-8adc-a2bbbf88354d"}}},"id":"270d01d1-626a-43e6-b7bd-a80a4a6fe037","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"fe1363d2-0a64-4413-93ef-6990f79ef12b","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"95f866b7-d02d-42a7-9ff5-aeebf071483a","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"551f8118-62a2-443e-a9b7-3f206624c1c3","savedPayload":{"position":{"x":25577.906417935057,"y":32167.634636561055},"targetPosition":{"x":25948.532751351857,"y":31692.510364654187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bittrex ETH/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"316e711f-1fa6-42ac-a10e-ba0041b7b023","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"69489d34-076f-4e37-b22c-3cc65aa48c42","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"54496f5e-4901-490a-a73f-16e8d437eafc","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"8860f7bf-b0d9-4327-ba6c-b68c9730aacf","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"50185281-0f81-4e5a-a392-664a33339d90","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b7d6832d-2179-4ac7-99f8-1dfd603b736b","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"232f6869-ba71-414d-a8a7-33d305fb4fe2","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"c2bc7bac-76a8-49bb-8d12-9ec43d382981","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"95a432ec-2179-45f5-9f24-d520762a383f","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"e89cb89e-066f-4143-a8a5-305a5136b841","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"ada08f6c-7b54-493c-b76c-27148bfbca9a","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"588ce5d8-74f5-4ade-aad6-5a521363b161","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"8d325218-d4a4-4084-8b8e-e1bfeb52bb66","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"1c4cd93a-15ab-4886-b397-f0328bd545fc","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"e387c2ba-fa46-4866-8ac4-5d9121f0b011","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"d0b5245d-afe9-4d1c-8ffc-2df645ba09b6","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"73c89071-c9aa-4320-b3a3-9dd05bc6d3bc","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"199eb5de-6127-48aa-9f7b-f9cef9a58ec2","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"fbbc0481-d662-4f84-8f89-53c8ed2c5b36","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"1286ed6d-6613-4352-829e-dd718d17b31a","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"92e1e7ab-e727-484c-89e8-7466c444cb26","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETH/USDT","id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169"}}},"id":"9955f5e5-4d32-4e7b-9109-8059dfbd3610","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"5540588f-af40-4813-8017-df87a364f433","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7be3590b-20e7-4d4b-a4ae-3600c3d558df","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"f34dc6ad-44cc-4911-81b2-3aff47bfef17","savedPayload":{"position":{"x":25437.469641005486,"y":32011.938163524188},"targetPosition":{"x":25948.532751351857,"y":31692.510364654187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bittrex ETC/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"640e4be8-5805-44fd-8b8b-99cc826f5716","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"ea44b4a0-8c49-41ed-9cd9-7d9d317d262a","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"37623839-6ca4-4b55-b61a-8238670c4059","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"8d235108-ac3f-489d-b86d-b5f7142382dd","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"73cae0e7-9704-4bcb-bce2-4b5b47380cad","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"86716319-0d19-478a-9d4a-b21a354647a1","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a1776e32-f373-4291-b4b4-977e015d3bea","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"9f2f5016-f5d6-4224-8292-dfd63b846714","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"2092b455-b3f3-4c6f-983f-a0dbec227745","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"287f2c16-9e0d-4ef1-8e21-4579c8cb9b21","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"f1a73ac7-e5ef-481f-b7f1-7ce4a99910db","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"a5ae2624-b054-4b8f-9076-ad1dc5ff032a","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"1cc7c6ed-775a-4d39-8142-c58f90cc36e9","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"a59e898e-573d-4a44-8a9d-c0f774e07285","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"9573592d-8f56-446d-86ba-fceee5d099f8","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"e8976f60-d490-4758-81d7-15c8415f7f95","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"78ec24bd-a102-41b3-af4c-2d214464b0c8","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d0da7618-b0f3-423b-a8e4-7c160954571e","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"ace0c8b6-ea32-4556-91cf-f8204d33caa5","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"235545db-af1f-41e2-8388-78630d83d8b1","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"d15a0790-ab0f-437e-b39a-f2cc26e3ba89","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ETC/USDT","id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a"}}},"id":"b09f64a2-43a2-4ed6-b10a-7ed4689a14cd","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"a8c0634d-601f-46a3-84d6-c805dac9188c","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"e10efd34-1992-4598-82bd-dc17fcfb81d4","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"1b932dc8-a96a-4a3a-8931-15e5f2fcecf8","savedPayload":{"position":{"x":25358.98161272328,"y":31817.828795307996},"targetPosition":{"x":25948.532751351857,"y":31692.510364654187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bittrex XMR/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"136c9271-9c9d-43ce-b6c9-96442c738987","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"29acc844-0d8b-42bb-a981-c0ecece3645b","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"fd59f3ab-b66f-4f6b-a6b7-7c51bb2c8c46","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"992161e2-635f-4a47-bfde-0b2d419ce2f6","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"bda70fcd-7b37-4da3-9edd-f26814017c1e","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b8aed902-4360-4eed-99bc-0a07e007ef23","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"769d3c86-38f2-44f8-827d-b755435e521d","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"50c4530f-0e47-443f-8456-32d11673bf6e","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"89e5bcab-e4d0-4aab-82ef-d25180b789c2","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"135c68f9-f858-41f7-bd4c-6c7e60a224a7","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"28e0c345-a00a-407b-9386-8e24e6c6d2b1","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"f807bd5a-b0b2-4879-9569-b8d7894becc2","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"60df7e3b-48a4-4708-91f5-70fa76ae653f","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"37e8a81b-e634-4970-9cfe-34624e13f3f1","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"22f489d5-4b3f-4838-951a-b50ac8919503","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"d470ef17-dc60-4f7a-be10-651ac72c6a0a","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"45919382-6982-4814-9090-a04c0540476d","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7a793df3-48b8-428a-80aa-4ad3e54d9658","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"71406be6-4d2b-4dac-b3b6-563aecb60f76","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"67e761cf-2b91-4503-996e-2cf899c3cc9e","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"bbf02598-c889-4c52-bb1e-b3e643f4537e","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XMR/USDT","id":"35020f56-8c2c-4a78-8547-41f39c8d282f"}}},"id":"1158f4c0-b154-44c8-b564-b8d05f5a881b","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"7960afb9-0a36-4f5d-8e48-108a69197c09","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"a70e9a07-34b0-4601-aecc-46f4b2456be0","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"1210a430-e2fc-4257-a682-5478a7c7abe5","savedPayload":{"position":{"x":25351.654088659434,"y":31608.797602779276},"targetPosition":{"x":25948.532751351857,"y":31692.510364654187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bittrex DASH/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"d62980d3-eda9-4943-b8a3-ab18cc554102","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"09fcf172-d04f-4def-8707-c976413e2919","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"aec69d37-faca-4e5e-b9c7-371006c3bbb3","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"45264e19-b274-40f6-af10-2dbfecdefa64","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"2093c78b-b347-4995-8e63-afa21a2bf8ad","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7d22da19-c961-4d84-b3ce-cb842f9fd15a","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3592ab1f-2cb0-417f-8501-a4347c9dbbb6","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"91660ee0-e8c8-4c16-bebe-eaaa9568d479","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"013c30fa-8bf0-4a06-970b-120d3a65329e","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"45ceb184-49bc-4025-87a7-23bc7a97e7b8","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"cc165130-ca04-478e-9db4-9c4303903458","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"b6dade5d-2136-4800-bbd9-84efe26c8eba","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"ff793dae-5347-4d96-8a0a-e2d1d35255d6","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"425bfabf-3b2a-493a-9101-e7ba233a2b55","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"38b2b473-b324-4828-aea7-b4d06609049c","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"c7a64700-a6fa-4aab-be6a-948345a8c943","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"2d4e6ea1-f97f-4938-a36e-93983cf16444","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f0d213c2-9cee-42ca-a151-9ccfbc8d2625","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"344464ae-43f4-4475-947c-1b6e809d1a8a","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"103c8135-6baa-4ef1-a0f7-dae64f977627","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"5f67be7e-2b29-4466-aa6c-8b5a421b5abb","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"DASH/USDT","id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6"}}},"id":"417b5c12-9fa6-4a21-a561-43b5a1f69460","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"0d95dbfa-1633-4d23-82b8-54ff363854c4","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4d21656e-0f44-470a-a0a2-f3bd9d446e84","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"b4107558-3e3a-41d7-ab76-2d5c93d8d6d1","savedPayload":{"position":{"x":25416.351254931033,"y":31409.705335566385},"targetPosition":{"x":25948.532751351857,"y":31692.510364654187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bittrex ADA/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"b8f4911d-e079-4124-9db1-02de32c1cbfd","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"9ea57707-3261-452b-a3e5-77b5c46de10e","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"170af430-37f6-4aba-842f-7fd3304b504f","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"c4a683da-ecdb-4936-9a41-9f4f20911349","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"3dfaa826-4611-4a9d-a72d-d5533a9424d6","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"89e26c0e-fa64-4c74-8664-8004374c3f6c","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"14127bc9-ab12-4658-959a-294d889cf984","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"e95d8c39-bf67-4afd-acd1-e8c6bbc93e4e","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"8ee20379-6da8-4e9b-8d4a-a7cbbbec7aa1","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"9a38c591-9005-4116-8984-a1ac5433eaa4","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"e4f41fc3-d3b7-493d-8cba-c877ad239675","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4af4059c-992b-44ac-8ab3-c95651876acd","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"fd943619-9c1f-439d-9c73-1f24b3c7b4a8","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"ae79b21d-e606-4a53-a670-837eda301be7","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"ffccf1f4-35dd-4801-88d4-bb4fd28dc614","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"5c603512-2d1d-412a-b13c-aef8b6832afe","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"046ad35c-51e0-43f3-b26e-97b29312047e","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"917bc885-f724-4323-9c9b-176504d970dc","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"80040ec1-0a2a-4680-942a-4e7c7057acd8","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"8cf2edef-a0b0-44a7-a981-3f1e95dc55b5","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"d556a206-a2a4-45ee-9b16-182bf15b7e3c","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"ADA/USDT","id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f"}}},"id":"3f559d77-a1af-4859-b917-ffcc942a3e31","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"6e3cbd63-a3c5-4da0-883a-ec7c602e646d","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"8af91e51-3836-4b36-9f2e-208ae37d90e8","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"42a0597a-d384-4ed5-aed7-dca3337d1897","savedPayload":{"position":{"x":25545.233040878116,"y":31244.71221713518},"targetPosition":{"x":25948.532751351857,"y":31692.510364654187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bittrex XLM/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"557dc883-e52c-4d95-9cb6-0fa3255109f4","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"c15d0cc6-12e2-4ecc-a252-04743a131175","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"5e3b88f1-98ab-4aa0-ae37-6e5f721375f5","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"ab089d8f-eba7-46d1-8746-6b29bd1c48be","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"8e91dde9-6a08-41de-8708-38693b601707","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7c3bbfd0-5833-4d0a-ab47-e8f593a4506c","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ad00644f-bec2-438c-a5cb-afd387a641fc","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"311db9df-5823-4897-95e2-2a6354aabbdb","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"6889c14c-7eb7-4d5a-aae4-06adf4c5e642","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"1c63295f-e802-48ee-be43-5f0914046efb","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"e38db8e3-324c-4c95-ac88-a1a534053ddf","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c0715685-70d8-4753-89c7-e334e9b2b7cd","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"f8da40c7-f88e-4926-9126-099f26d55230","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"c83b16d5-ec16-418d-9a31-72282aa927e4","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"b1c1760a-d437-4b7f-96a9-fd7172bb58e6","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"ca3cc1c6-2e83-47f5-9152-e1a0e852cc56","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"9063d8d7-1684-4b21-8720-a134326f50f7","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a31a3fa1-08ea-4796-b25e-28641da9e6ae","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"54a5dd10-c71c-4a82-bf29-54fb0952a54f","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"25c21e44-4261-4efe-9dce-fc3321a80381","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"b61feec3-0723-42c1-ae08-004b997cadae","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"XLM/USDT","id":"04b82448-a05a-4991-aa02-6a29f23d0ccc"}}},"id":"1b24d1bf-85c2-4173-8053-bf305b5f6f43","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"e9520d1a-1651-4235-9fab-09e20c7f3455","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"3dd915be-3135-4ba4-8a1e-1f4d65e2d772","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"9d5fe77a-d991-4d2f-b8e6-e26d60f6ed2e","savedPayload":{"position":{"x":25722.78088556603,"y":31133.765051755174},"targetPosition":{"x":25948.532751351857,"y":31692.510364654187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bittrex EOS/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"2c8eaa89-02ea-475a-ae8e-ca1dce4bacb4","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"5b79d53a-e519-4b7a-a0c6-98ab3a731478","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"0babe464-83c1-4b2b-8d7e-13978b89548c","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"5c267443-8243-40be-8175-bfb085a9a347","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"90130c87-bf6f-4f9c-bb3c-e4967b85340e","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d81d75a0-b608-4749-ba9e-a1518a788a92","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"18eb091c-2f27-4da8-b148-2a017a17c776","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"a67a85ca-c64b-405f-86ea-c5029f166173","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"635da313-78bb-43be-8231-a12404a6d06c","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"93b5f8aa-8be4-4c32-817f-2ca578385c28","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"59e95cd7-5d57-4f59-a799-d2b01b36a4b3","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1b242792-ba96-4be6-8ddb-6e53d1b987dd","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"b120468c-db04-4423-8208-bf37f57a078c","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"bebf04d8-5174-41f3-abb6-f8a1bede710e","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"d0b5102d-a8ea-4838-b41c-0c16be88919a","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"f5ab7676-4afe-4201-bc42-13d979341ef4","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"1924049d-3580-4a5d-9513-e9f21f93f426","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6eba5816-4a61-4fd5-89ce-100b315fb9af","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"a483f435-dae1-426f-84a1-005f38a4adee","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"8f65d2db-2bf6-4ac7-bbfa-9f95f2a9522f","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"c21f9286-cec0-487a-97e2-510ceb84d1bb","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"EOS/USDT","id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7"}}},"id":"b89ba942-9e19-4380-8948-f3a9c5aac19a","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"6680ae4d-2f36-42b1-8723-c23519bfef7e","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"cdd3fa08-cca0-4e56-b924-88cf0f34d009","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"316195b4-039b-41d5-8ffe-939fc4f6e230","savedPayload":{"position":{"x":25927.91942092417,"y":31090.350235791288},"targetPosition":{"x":25948.532751351857,"y":31692.510364654187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},{"type":"Task Manager","name":"Fwd & Live Sessions Bittrex TRX/USDT","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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"f5f79f4d-7b7f-473c-8a01-167caee8b5bb","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"bd530dd2-abba-48ca-aa7a-4cdc60114f85","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"ab56cc9f-016a-41af-9046-fb864a940a41","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"771cfccf-a922-40fd-a3a7-14e05beed3fd","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"89f1b0be-4c67-4062-bcbb-fe5e2e3abfb1","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9b3c181c-13b3-4075-9a4e-4f47932297b6","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6c33d084-bd54-4490-a047-92d3e75037ff","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"fd1cff08-17e1-42d8-9b76-e5c4a4c5eceb","savedPayload":{"position":{"x":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"bb13b306-c133-4611-9800-90fa3ef87453","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"2e067b72-3c15-4039-b8cc-cece4af5979b","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"cc3bbfe5-91a5-44a1-bc24-f200db11d2a4","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"66560a54-4635-4490-add9-71d5a4325be2","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"19b1b7e4-d41d-4846-99c9-d7cdc6be7a90","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"5afc8652-55a0-4936-8c0f-2f350a167f98","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"535a3682-f5b6-403e-ba70-23650877b1d8","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"b0459097-d17e-4156-976f-ad715f908a94","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"7e889efd-a456-4ee2-9557-817edf304d79","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d043da27-adae-46c5-8b8b-cd85643199c5","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"d0eddac6-eaab-43cc-a614-e39e31bc6ba6","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"d5f7caf5-b369-4083-934c-ee2cf5b82dae","savedPayload":{"position":{"x":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"53db0740-adfe-449d-95f7-a8f4efe5c41d","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"TRX/USDT","id":"2cb30869-9de4-4855-bf78-58ac6a10a285"}}},"id":"068c111f-2b29-433b-99b9-ff24f8df6ca6","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"df45969a-75c9-470c-8b82-08b0dc263513","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ea9a45e8-63a8-4d94-87a6-79cd08ccfdf1","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"8487453e-88b9-4a5d-a298-fadd752e42dd","savedPayload":{"position":{"x":43039.645641790354,"y":29910.53304005825},"targetPosition":{"x":42461.33493795225,"y":30195.724318480956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}}],"id":"52f56284-182b-450d-921e-fe963ea2fa8a","savedPayload":{"position":{"x":25948.532751351857,"y":31692.510364654187},"targetPosition":{"x":26346.38347383166,"y":31821.539080547664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Crypto Exchange","name":"Bittrex","id":"a9a5c7bc-797b-4cd1-b24e-a627cd396d3e"}}}],"id":"32656457-f603-416a-b805-546642094dc4","savedPayload":{"position":{"x":26346.376240984104,"y":31821.485265567862},"targetPosition":{"x":26594.29660616895,"y":31058.190798041436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":"u"}}},"id":"ce601334-52c5-4ffb-ab61-49ca1943a15a","savedPayload":{"position":{"x":26594.29660616895,"y":31058.190798041436},"targetPosition":{"x":24988.356993272086,"y":31058.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"r"}}}],"id":"efbbc81b-93c8-4ce0-873e-675f39d333e8","savedPayload":{"position":{"x":24988.356993272086,"y":31058.918778615294},"targetPosition":{"x":24988.356993272086,"y":31058.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"n"}}},{"type":"Data Mine","name":"Masters","code":"{\n\"codeName\": \"Masters\"\n}","sensorBots":[{"type":"Sensor Bot","name":"Exchange Raw Data","code":"{\n\"codeName\": \"Exchange-Raw-Data\",\n\"repo\": \"Exchange-Raw-Data-Sensor-Bot\"\n}","processes":[{"type":"Process Definition","name":"Historic-Trades","code":"{\n \"codeName\": \"Historic-Trades\",\n \"description\": \"Retrieves and saves the historical trades in batches going backwards from the current time until reaching the begining of the market.\",\n \"startMode\": {\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[],"id":"e3008f15-43ae-4452-9c28-bfbb6c1a5e84","savedPayload":{"position":{"x":13889.892304785908,"y":17976.7326423862},"targetPosition":{"x":13788.99537092664,"y":18353.285125876908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"f796022a-7871-4bde-bcc7-bcf2818f1eaf","savedPayload":{"position":{"x":14299.325525762739,"y":17993.12379366583},"targetPosition":{"x":13938.17907937083,"y":17993.12379366583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"116834de-6646-4387-9f4b-4f711cea9235"}}}],"dataDependencies":[],"id":"1332b41e-7cd2-4e69-a40a-39ea47df67b5","savedPayload":{"position":{"x":13938.17907937083,"y":17993.12379366583},"targetPosition":{"x":13788.99537092664,"y":18353.285125876908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"116834de-6646-4387-9f4b-4f711cea9235","savedPayload":{"position":{"x":13983.913279342734,"y":18015.677405195172},"targetPosition":{"x":13788.99537092664,"y":18353.285125876908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"a9ea7169-fcd8-48c3-b0a9-b4e8941aa170","savedPayload":{"position":{"x":14026.312379860185,"y":18044.00757842793},"targetPosition":{"x":13788.99537092664,"y":18353.285125876908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"51908884-c7a2-46ca-8a55-209070ae5fa6","savedPayload":{"position":{"x":14064.650920558077,"y":18077.62957624547},"targetPosition":{"x":13788.99537092664,"y":18353.285125876908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"7a6a9399-474f-4a93-bcbd-28a594ef1943","savedPayload":{"position":{"x":13805.692768649584,"y":18323.43910884833},"targetPosition":{"x":13594.077462510544,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Process Definition","name":"Historic-OHLCVs","code":"{\n \"codeName\": \"Historic-OHLCVs\",\n \"description\": \"Retrieves and saves the historical trades in batches going backwards from the current time until reaching the begining of the market.\",\n \"startMode\": {\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[],"id":"dfe2556e-a765-4e38-9d30-7f91090c0069","savedPayload":{"position":{"x":13961.614739055709,"y":18088.899427882196},"targetPosition":{"x":13961.513941453737,"y":18479.227066995223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"ea39c98b-18e2-44ce-9f7f-86a8a76a688a","savedPayload":{"position":{"x":14352.059010814726,"y":17803.64652160968},"targetPosition":{"x":14156.904586110313,"y":18141.361246853907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"id":"5c7fae5a-6da6-4864-a167-f2f21d578c72","savedPayload":{"position":{"x":14156.904586110313,"y":18141.361246853907},"targetPosition":{"x":13961.513941453737,"y":18479.227066995223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e","savedPayload":{"position":{"x":14299.618349410372,"y":18284.17423598988},"targetPosition":{"x":13961.513941453737,"y":18479.227066995223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"957e7e3a-b167-40be-93b5-9ba4ceff56e5","savedPayload":{"position":{"x":14351.960966022763,"y":18479.1474467952},"targetPosition":{"x":13961.513941453737,"y":18479.227066995223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd","savedPayload":{"position":{"x":14333.1019211534,"y":18666.679456512822},"targetPosition":{"x":13961.513941453737,"y":18479.227066995223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc","savedPayload":{"position":{"x":13961.513941453737,"y":18479.227066995223},"targetPosition":{"x":13594.077462510544,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Trades","code":"{\n\"codeName\": \"Trades\"\n}","datasets":[{"type":"Dataset Definition","name":"Trades","code":"{\n\"codeName\": \"Trades\"\n}","id":"fbb7c17e-a909-4fa2-b3c5-eb8ca86297c4","savedPayload":{"position":{"x":14206.357405769984,"y":18695.35826120022},"targetPosition":{"x":14027.576059676065,"y":18691.430270941117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"38dbb942-a15b-450b-a867-02a94030965f","savedPayload":{"position":{"x":14027.576059676065,"y":18691.430270941117},"targetPosition":{"x":13594.077462510544,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Product Definition","name":"Candles","code":"{\n\"codeName\": \"Candles\"\n}","datasets":[{"type":"Dataset Definition","name":"One-Min","code":"{\n\"codeName\": \"One-Min\"\n}","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c","savedPayload":{"position":{"x":14148.648113921883,"y":19011.491223786932},"targetPosition":{"x":13979.391651907017,"y":18913.64110092483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc","savedPayload":{"position":{"x":13979.391651907017,"y":18913.64110092483},"targetPosition":{"x":13594.077462510544,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Product Definition","name":"Volumes","code":"{\n\"codeName\": \"Volumes\"\n}","datasets":[{"type":"Dataset Definition","name":"One-Min","code":"{\n\"codeName\": \"One-Min\"\n}","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86","savedPayload":{"position":{"x":13908.153482906797,"y":19235.770523368454},"targetPosition":{"x":13810.583686465992,"y":19066.49632676673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"3a43c6f3-bac0-404e-865f-822eb48c8660","savedPayload":{"position":{"x":13810.583686465992,"y":19066.49632676673},"targetPosition":{"x":13594.077462510544,"y":18690.892846558643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"af924204-66a2-47d4-9910-66ab78acb06f","savedPayload":{"position":{"x":13888.04337325749,"y":18696.024787447222},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"indicatorBots":[{"type":"Indicator Bot","name":"One Min Candles","code":"{\n\"codeName\": \"One-Min-Candles\",\n\"repo\": \"One-Min-Candles-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Single-Period-Daily","code":"{\n \"codeName\": \"Single-Period-Daily\",\n \"description\": \"Produces two data-sets with candles and volumes.\",\n \"startMode\": {\n \"noTime\": {\n \"run\": \"true\"\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000\n }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[],"id":"597f9031-4a09-4bf1-b231-cd3de597ca5e","savedPayload":{"position":{"x":15171.130056135531,"y":19110.144034165838},"targetPosition":{"x":14350.88612760958,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"429872d3-959d-4b7a-af3e-baf9d7c2f364","savedPayload":{"position":{"x":15989.632933673003,"y":19056.72872331092},"targetPosition":{"x":15178.207908660892,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"c542a73e-a350-431f-ad3e-10f3ebef8ec7"}}},{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"728daa6a-9297-4f53-974f-fa725d0aca2d","savedPayload":{"position":{"x":16005.529689712204,"y":19218.13119598718},"targetPosition":{"x":15178.207908660892,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"c542a73e-a350-431f-ad3e-10f3ebef8ec7"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"4aff6e01-e4ce-48e5-b1da-b2172599b36a","savedPayload":{"position":{"x":14370.970724070547,"y":19111.85640449044},"targetPosition":{"x":15178.207908660892,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"deaa7a7d-b186-42d8-ad64-aab8a7638ca9"}}}],"dataDependencies":[],"id":"36df0b5c-0849-4310-bae0-5ea595b335d3","savedPayload":{"position":{"x":15178.207908660892,"y":19218.13119598718},"targetPosition":{"x":14350.88612760958,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"deaa7a7d-b186-42d8-ad64-aab8a7638ca9","savedPayload":{"position":{"x":15171.130056135531,"y":19326.11835780852},"targetPosition":{"x":14350.88612760958,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"a81eb239-9b38-4a3e-b8c3-061b7462a624","savedPayload":{"position":{"x":15150.017602578511,"y":19432.257829351394},"targetPosition":{"x":14350.88612760958,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"0c63c520-011d-4c1f-95c1-c966a92a583b"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f3b263bb-1051-40d8-a69a-d8640cf9afbe","savedPayload":{"position":{"x":15115.23178792367,"y":19534.733534830295},"targetPosition":{"x":14350.88612760958,"y":19218.13119598718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"661e048c-e9e5-435e-bdf9-53dce5ebfa0f","savedPayload":{"position":{"x":14350.88612760958,"y":19218.13119598718},"targetPosition":{"x":13530.642199083628,"y":19110.144034165838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Candles","code":"{\n\"codeName\": \"Candles\"\n}","datasets":[{"type":"Dataset Definition","name":"One-Min","code":"{\n\"codeName\": \"One-Min\"\n}","id":"20d5740b-5711-4b8c-9675-a5391f5ba245","savedPayload":{"position":{"x":14247.123878578252,"y":19523.804924691496},"targetPosition":{"x":13888.88303883094,"y":19316.974479428667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"3b42a93e-c933-420d-9504-25092a0d1279","savedPayload":{"position":{"x":13888.88303883094,"y":19316.974479428667},"targetPosition":{"x":13530.642199083628,"y":19110.144034165838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},{"type":"Product Definition","name":"Volumes","code":"{\n\"codeName\": \"Volumes\"\n}","datasets":[{"type":"Dataset Definition","name":"One-Min","code":"{\n\"codeName\": \"One-Min\"\n}","id":"2788ed30-ed62-4638-9a1d-35dc7e826870","savedPayload":{"position":{"x":14034.283788766465,"y":19766.50253265859},"targetPosition":{"x":13782.462993925046,"y":19438.323283412214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"4e714023-0cfd-4945-a573-52922711cd09","savedPayload":{"position":{"x":13782.462993925046,"y":19438.323283412214},"targetPosition":{"x":13530.642199083628,"y":19110.144034165838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}}],"id":"952e8327-4c9a-422a-bf64-cd773ccc36dd","savedPayload":{"position":{"x":13796.164448360607,"y":19409.27158083979},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Indicator Bot","name":"Candles Volumes","code":"{\n\"codeName\": \"Candles-Volumes\",\n\"repo\": \"Candles-Volumes-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces different files with multi-period candles and volumes for entire markets.\",\n \"startMode\": {\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"5d82f670-e692-40ca-8d24-9273d0f5e08f","savedPayload":{"position":{"x":15079.006654153938,"y":20018.05420808236},"targetPosition":{"x":14635.035980064304,"y":20053.495990239808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"b198c9ea-3141-4407-9953-2b2ebb672450","savedPayload":{"position":{"x":15072.884395747387,"y":20134.828815174966},"targetPosition":{"x":14635.035980064304,"y":20053.495990239808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}}],"id":"d529ec20-8461-40d6-9dc3-14f9ab8b64be","savedPayload":{"position":{"x":14635.035980064304,"y":20053.495990239808},"targetPosition":{"x":13746.059465533119,"y":20008.225021249436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"ff665e30-1d31-429b-88dc-f5e623b9a5f8","savedPayload":{"position":{"x":15507.652774106258,"y":20100.04736920641},"targetPosition":{"x":14620.575180231459,"y":20170.409215986667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"6d911e31-cef3-4c4f-82e3-d7b9b1ba9541","savedPayload":{"position":{"x":15509.251237396462,"y":20216.705438773908},"targetPosition":{"x":14620.575180231459,"y":20170.409215986667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"957ffa57-d4df-4866-b99f-86cf8add689d","savedPayload":{"position":{"x":15495.561629494738,"y":20332.45860493206},"targetPosition":{"x":14620.575180231459,"y":20170.409215986667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"982efbd9-6a54-4322-9a0f-52a6483d67d9","savedPayload":{"position":{"x":15466.854061288906,"y":20445.423801463534},"targetPosition":{"x":14620.575180231459,"y":20170.409215986667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"New Data Dependency","id":"fe28906a-90b1-4a5e-88b1-110d994cb397","savedPayload":{"position":{"x":15423.487612090437,"y":20553.92911697761},"targetPosition":{"x":14620.575180231459,"y":20170.409215986667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"id":"09645f1b-96c2-4dbb-a99f-803c8ebe7a00","savedPayload":{"position":{"x":14620.575180231459,"y":20170.409215986667},"targetPosition":{"x":13746.059465533119,"y":20008.225021249436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d","savedPayload":{"position":{"x":14591.963302553779,"y":20283.109084422893},"targetPosition":{"x":13746.059465533119,"y":20008.225021249436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"c086e5db-7777-45d9-bb4d-381f9566341f","savedPayload":{"position":{"x":14549.157191129936,"y":20391.36608058737},"targetPosition":{"x":13746.059465533119,"y":20008.225021249436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"1824fa00-dd30-4cdc-acc0-01c2f29056c5","savedPayload":{"position":{"x":14491.64348912139,"y":20493.158290822998},"targetPosition":{"x":13746.059465533119,"y":20008.225021249436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1","savedPayload":{"position":{"x":13746.059465533119,"y":20008.225021249436},"targetPosition":{"x":13181.366768184702,"y":19825.47349068718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces different files with multi-period candles and volumes on a daily format.\",\n \"startMode\": {\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"f60fba20-b9d6-4362-b667-020096340e38","savedPayload":{"position":{"x":14602.406718742477,"y":21097.477124080673},"targetPosition":{"x":14222.40673113841,"y":20865.183785618567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"a507b588-ce8f-4d5c-9053-d130015560b5","savedPayload":{"position":{"x":14528.688855796987,"y":21188.489013935512},"targetPosition":{"x":14222.40673113841,"y":20865.183785618567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}}],"id":"4d806ace-6f82-449d-b908-afcd7d029a68","savedPayload":{"position":{"x":14222.40673113841,"y":20865.183785618567},"targetPosition":{"x":13530.100719825336,"y":20305.704408216847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"14730a16-e01e-4bc5-9886-0eed386152f2","savedPayload":{"position":{"x":14901.028067923653,"y":21415.674837971066},"targetPosition":{"x":14142.000749664345,"y":20951.247974807866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"1baff60d-84c4-4e27-b03d-663158ca6bba","savedPayload":{"position":{"x":14833.629785056979,"y":21511.142116637675},"targetPosition":{"x":14142.000749664345,"y":20951.247974807866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"4e77c03b-367c-450c-82ca-c7211c2fab8e","savedPayload":{"position":{"x":14754.50976522303,"y":21596.734839230354},"targetPosition":{"x":14142.000749664345,"y":20951.247974807866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"2d324ca2-acc5-4390-ae37-0d350fe8e8fa","savedPayload":{"position":{"x":14664.878795055882,"y":21671.24487902176},"targetPosition":{"x":14142.000749664345,"y":20951.247974807866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c"}}},{"type":"Data Dependency","name":"New Data Dependency","id":"4051019a-9548-4541-a7e7-11097fe3f103","savedPayload":{"position":{"x":14566.009108326103,"y":21733.53115971267},"targetPosition":{"x":14142.000749664345,"y":20951.247974807866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"One-Min","id":"73dcce78-c223-49e1-a93c-7e1ab7283f86"}}}],"id":"1e4c5a40-0c64-423f-968d-31b178056cf3","savedPayload":{"position":{"x":14142.000749664345,"y":20951.247974807866},"targetPosition":{"x":13530.100719825336,"y":20305.704408216847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7","savedPayload":{"position":{"x":14052.581768535032,"y":21025.547341955596},"targetPosition":{"x":13530.100719825336,"y":20305.704408216847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"fa826f1b-2a52-4542-89b2-7190e137ef56","savedPayload":{"position":{"x":13954.378155688615,"y":21087.892587554088},"targetPosition":{"x":13530.100719825336,"y":20305.704408216847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"f29d08f9-e7c8-490c-8fca-14851a0d3dc3","savedPayload":{"position":{"x":13847.877314456822,"y":21136.52182147118},"targetPosition":{"x":13530.100719825336,"y":20305.704408216847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d","savedPayload":{"position":{"x":13530.100719825336,"y":20305.704408216847},"targetPosition":{"x":13181.366768184702,"y":19825.47349068718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Candles","code":"{\n \"codeName\": \"Candles\",\n \"singularVariableName\": \"candle\",\n \"pluralVariableName\": \"candles\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Candles-Volumes/Output/Candles/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n}","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8","savedPayload":{"position":{"x":13301.269698777567,"y":21000.64670099328},"targetPosition":{"x":13181.198417156445,"y":20418.818619993504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Candles-Volumes/Output/Candles/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Candles-Volumes/Output/Candles/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n}","id":"678a567c-f08d-49b9-813b-4e54fd6afadb","savedPayload":{"position":{"x":13176.86861480851,"y":21012.87320425381},"targetPosition":{"x":13181.198417156445,"y":20418.818619993504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Min","code":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","id":"95264fe8-6089-4a70-bf6d-158bc43c04f3","savedPayload":{"position":{"x":13213.481832346175,"y":21446.958297592744},"targetPosition":{"x":12949.780054857996,"y":21582.758733510404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Max","code":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","id":"b716bfaa-d785-45e3-b8ca-370284ac901c","savedPayload":{"position":{"x":13220.821510921049,"y":21704.336629525606},"targetPosition":{"x":12949.780054857996,"y":21582.758733510404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Open","code":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","id":"7d809ac3-9b7d-4687-83bb-40b851e522d0","savedPayload":{"position":{"x":13023.800987262392,"y":21870.655047514225},"targetPosition":{"x":12949.780054857996,"y":21582.758733510404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Close","code":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","id":"b0ea41f8-03da-454e-8d0f-bb0f2fc5d328","savedPayload":{"position":{"x":12771.143677257978,"y":21820.34637831503},"targetPosition":{"x":12949.780054857996,"y":21582.758733510404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"21b8be1f-0437-4fc8-9bc0-31779a9ea47e","savedPayload":{"position":{"x":12652.784504326555,"y":21591.30818244656},"targetPosition":{"x":12949.780054857996,"y":21582.758733510404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"91ba9479-fdb4-42b7-ad02-1b2ac24b13d6","savedPayload":{"position":{"x":12758.213380390507,"y":21356.306575135433},"targetPosition":{"x":12949.780054857996,"y":21582.758733510404},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"65ea4bea-6b8f-4df9-8716-d8af0ce2044c","savedPayload":{"position":{"x":12949.780054857996,"y":21582.758733510404},"targetPosition":{"x":13181.198417156445,"y":20418.818619993504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":5},"uiObject":{}}},"id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7","savedPayload":{"position":{"x":13181.198417156445,"y":20418.818619993504},"targetPosition":{"x":13181.366768184702,"y":19825.47349068718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Candles","id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3"}}},{"type":"Product Definition","name":"Volumes","code":"{\n \"codeName\": \"Volumes\",\n \"singularVariableName\": \"volume\",\n \"pluralVariableName\": \"volumes\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Candles-Volumes/Output/Volumes/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Candles-Volumes/Output/Volumes/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n}","id":"2e683057-f911-4105-bc77-16f2706d1915","savedPayload":{"position":{"x":12587.593526571087,"y":20846.39612999715},"targetPosition":{"x":12832.379069307379,"y":20305.280627812524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Candles-Volumes/Output/Volumes/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n}","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1","savedPayload":{"position":{"x":12479.801140074276,"y":20783.101954989786},"targetPosition":{"x":12832.379069307379,"y":20305.280627812524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Buy","code":"{\n \"codeName\": \"buy\",\n \"isString\": false\n}","id":"bc8405e2-4a80-416c-bccf-1334e53d371b","savedPayload":{"position":{"x":12372.230601350448,"y":21018.619714626766},"targetPosition":{"x":12178.470230479468,"y":20909.426026964626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Sell","code":"{\n \"codeName\": \"sell\",\n \"isString\": false\n}","id":"f08f11a8-d092-4b7e-a7e6-c67adac04a33","savedPayload":{"position":{"x":12134.668366580652,"y":21128.194605904824},"targetPosition":{"x":12178.470230479468,"y":20909.426026964626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"8e2624b0-48ee-4d00-821e-0c6a72b3838f","savedPayload":{"position":{"x":11956.733666687507,"y":20935.579731044014},"targetPosition":{"x":12178.470230479468,"y":20909.426026964626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"62964ed9-14c4-442d-b272-602d0c714654","savedPayload":{"position":{"x":12084.81582253815,"y":20707.05597547593},"targetPosition":{"x":12178.470230479468,"y":20909.426026964626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"7edf78c7-c63d-4e7e-a643-99aaf52ac967","savedPayload":{"position":{"x":12178.470230479468,"y":20909.426026964626},"targetPosition":{"x":12832.379069307379,"y":20305.280627812524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f","savedPayload":{"position":{"x":12832.379069307379,"y":20305.280627812524},"targetPosition":{"x":13181.366768184702,"y":19825.47349068718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Volumes","id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1"}}}],"id":"285a4618-0423-4ac9-9df9-7a78be6fd915","savedPayload":{"position":{"x":13181.366768184702,"y":19825.47349068718},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"l"}}},{"type":"Indicator Bot","name":"Stairs Patterns","code":"{\n\"codeName\": \"Stairs-Patterns\",\n\"repo\": \"Stairs-Patterns-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces for each market two files with candles stairs and volumes stairs respectively.\",\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"dc5b175b-eef7-44b1-a863-7de93d17cf3a","savedPayload":{"position":{"x":13799.088322663147,"y":20511.13763314272},"targetPosition":{"x":13286.909762039617,"y":20360.029091909797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8fc77cc9-3f73-4a14-b5b0-8cc86d0a18d1"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"47cd9826-4b62-4108-ae8f-9aa3912f91d7","savedPayload":{"position":{"x":13742.496044810361,"y":20638.556283682912},"targetPosition":{"x":13286.909762039617,"y":20360.029091909797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0d84339c-22b1-4b26-978c-729a65eacf8c"}}}],"id":"8714647d-617e-4ac3-a74b-00056295c54d","savedPayload":{"position":{"x":13286.909762039617,"y":20360.029091909797},"targetPosition":{"x":12798.601229520036,"y":20143.360191544027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"10b6d300-4fa3-467c-b3e9-3bcb9e732fec","savedPayload":{"position":{"x":13686.304594206269,"y":20728.014011975512},"targetPosition":{"x":13213.676451312629,"y":20479.478471074643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"ef7219af-7454-4a57-97a0-19bc098ad645","savedPayload":{"position":{"x":13628.6768438904,"y":20815.65194431454},"targetPosition":{"x":13213.676451312629,"y":20479.478471074643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8e9083d9-2a83-4591-af42-945fefb62a34"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"92e8f5d6-c2ff-4591-8128-842c1776983a","savedPayload":{"position":{"x":13554.686462633055,"y":20890.475875975815},"targetPosition":{"x":13213.676451312629,"y":20479.478471074643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"955136c6-aab5-4118-a414-ac3bf24a3d33","savedPayload":{"position":{"x":13213.676451312629,"y":20479.478471074643},"targetPosition":{"x":12798.601229520036,"y":20143.360191544027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"8e9083d9-2a83-4591-af42-945fefb62a34","savedPayload":{"position":{"x":13112.650251748359,"y":20575.365807882878},"targetPosition":{"x":12798.601229520036,"y":20143.360191544027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"eced2d21-5c6f-4e3d-986c-131d4c2a9768","savedPayload":{"position":{"x":12990.254971758022,"y":20641.871864178083},"targetPosition":{"x":12798.601229520036,"y":20143.360191544027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"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":"16259ff0-c3a4-4775-a95e-b8d1973dba74","savedPayload":{"position":{"x":12858.129608768473,"y":20673.186799000836},"targetPosition":{"x":12798.601229520036,"y":20143.360191544027},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"2924712f-7d80-4f36-8822-71a12cb485f6","savedPayload":{"position":{"x":12798.601229520036,"y":20143.360191544027},"targetPosition":{"x":12484.523461880639,"y":19711.785876586746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces for each market two files with candles stairs and volumes stairs respectively at each day of the market history.\",\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"0aa6c915-996c-435b-9832-131bfdca2a70","savedPayload":{"position":{"x":13075.206712072502,"y":21132.246885960594},"targetPosition":{"x":12749.806931013618,"y":20708.71463680605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b15413b6-1175-452a-aa67-08e12d613041"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"45ea1cb9-4d50-4652-abd3-37c5d49f7428","savedPayload":{"position":{"x":12954.536524796515,"y":21202.009283936284},"targetPosition":{"x":12749.806931013618,"y":20708.71463680605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"63d69b29-5bca-43f6-be0e-67a50fb23827"}}}],"id":"f8c053de-33af-4986-be52-3e55a7155b74","savedPayload":{"position":{"x":12749.806931013618,"y":20708.71463680605},"targetPosition":{"x":12484.461495677986,"y":20245.54394448968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"cc29c13b-dce7-4e7b-810a-fc709bc16adf","savedPayload":{"position":{"x":12858.324965572072,"y":21240.66934491245},"targetPosition":{"x":12622.224385608668,"y":20761.634121762443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"5fd2b4e4-4826-49f5-b6bc-f9b7b6dc6eb7","savedPayload":{"position":{"x":12760.201543429946,"y":21277.65983726979},"targetPosition":{"x":12622.224385608668,"y":20761.634121762443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"0ddf959e-3b96-4528-b180-4577e69dd6d4","savedPayload":{"position":{"x":12656.353358084803,"y":21294.67522449495},"targetPosition":{"x":12622.224385608668,"y":20761.634121762443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"5bde8446-e23e-4384-a028-b6913bf7109c"}}}],"dataDependencies":[],"id":"98aa9f6a-a680-443e-a052-96a23e52b357","savedPayload":{"position":{"x":12622.224385608668,"y":20761.634121762443},"targetPosition":{"x":12484.461495677986,"y":20245.54394448968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"5bde8446-e23e-4384-a028-b6913bf7109c","savedPayload":{"position":{"x":12484.398945653791,"y":20779.7364746137},"targetPosition":{"x":12484.461495677986,"y":20245.54394448968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"4838b38c-df75-44dc-8d3b-9a0c4df26911","savedPayload":{"position":{"x":12346.272755016602,"y":20761.509033968137},"targetPosition":{"x":12484.461495677986,"y":20245.54394448968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"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":"63c476bb-a46a-4417-8549-b8ba98c5922e","savedPayload":{"position":{"x":12217.604416488073,"y":20708.01317027974},"targetPosition":{"x":12484.461495677986,"y":20245.54394448968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"80c87e44-7b3a-449d-9bf4-d14502bfa837","savedPayload":{"position":{"x":12484.461495677986,"y":20245.54394448968},"targetPosition":{"x":12484.523461880639,"y":19711.785876586746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Candle-Stairs","code":"{\n \"codeName\": \"Candle-Stairs\",\n \"singularVariableName\": \"candleStair\",\n \"pluralVariableName\": \"candleStairs\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Stairs-Patterns/Output/Candle-Stairs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n}","id":"8fc77cc9-3f73-4a14-b5b0-8cc86d0a18d1","savedPayload":{"position":{"x":12045.986191333059,"y":20662.61550749097},"targetPosition":{"x":12170.618318817362,"y":20143.24117882183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Stairs-Patterns/Output/Candle-Stairs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Stairs-Patterns/Output/Candle-Stairs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n}","id":"b15413b6-1175-452a-aa67-08e12d613041","savedPayload":{"position":{"x":11856.764143261295,"y":20575.119624751896},"targetPosition":{"x":12170.618318817362,"y":20143.24117882183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Open","code":"{\n \"codeName\": \"open\",\n \"isString\": false\n}","id":"0b931c5d-1de2-4122-9215-844a4db0415d","savedPayload":{"position":{"x":11527.009087543294,"y":20683.23760200988},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Close","code":"{\n \"codeName\": \"close\",\n \"isString\": false\n}","id":"a96e4cc4-c543-4d0e-9ad5-6f1912e32661","savedPayload":{"position":{"x":11504.85775619999,"y":20809.414031873584},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Min","code":"{\n \"codeName\": \"min\",\n \"isString\": false\n}","id":"f6cf2806-5925-43f3-83a6-1bd037916b1f","savedPayload":{"position":{"x":11426.537552298887,"y":20910.741901851394},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Max","code":"{\n \"codeName\": \"max\",\n \"isString\": false\n}","id":"bb402063-7e84-4041-848f-2c9f19b2f163","savedPayload":{"position":{"x":11310.072373468875,"y":20964.005861876136},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"310a32cb-6610-400d-9976-438720232ded","savedPayload":{"position":{"x":11182.364202759078,"y":20957.027203605212},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"e9b94bbc-9b6d-4ba2-81d7-3c4f853d0283","savedPayload":{"position":{"x":11072.333489767181,"y":20891.408319077334},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","id":"3861f1de-12c6-4e6c-988a-e084ad9072db","savedPayload":{"position":{"x":11005.38749006815,"y":20782.18491865688},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Candle Count","code":"{\n \"codeName\": \"candleCount\",\n \"isString\": false\n}","id":"27eec18a-7158-4130-a0a4-808f2b18a184","savedPayload":{"position":{"x":10996.866089870133,"y":20654.580861679402},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Min","code":"{\n \"codeName\": \"firstMin\",\n \"isString\": false\n}","id":"47e5d2f3-fa36-4131-9871-d8bcd18c1256","savedPayload":{"position":{"x":11048.72669322187,"y":20537.487608898897},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Max","code":"{\n \"codeName\": \"firstMax\",\n \"isString\": false\n}","id":"ff6e9655-245a-40c7-85c9-416172d7467a","savedPayload":{"position":{"x":11149.083986035806,"y":20457.92000662596},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Min","code":"{\n \"codeName\": \"lastMin\",\n \"isString\": false\n}","id":"6f671d69-4565-45c8-bf9e-7e08dcdef842","savedPayload":{"position":{"x":11274.737082307603,"y":20434.1283812099},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Max","code":"{\n \"codeName\": \"lastMax\",\n \"isString\": false\n}","id":"55c3ed69-91e6-4302-bc5b-0aa566a69d13","savedPayload":{"position":{"x":11397.394042463615,"y":20471.749623481894},"targetPosition":{"x":11260.52401336184,"y":20700.927958081757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"e7377c71-41cf-461e-b02c-39d6071cf6fe","savedPayload":{"position":{"x":11260.52401336184,"y":20700.927958081757},"targetPosition":{"x":12170.618318817362,"y":20143.24117882183},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"id":"642474e9-da61-4168-97dc-7f7869bebc02","savedPayload":{"position":{"x":12170.618318817362,"y":20143.24117882183},"targetPosition":{"x":12484.523461880639,"y":19711.785876586746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Candles Patterns","id":"a41043f2-f2a5-4c8f-b372-d8eda1ca58df"}}},{"type":"Product Definition","name":"Volume-Stairs","code":"{\n \"codeName\": \"Volume-Stairs\",\n \"singularVariableName\": \"volumeStair\",\n \"pluralVariableName\": \"volumeStairs\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Stairs-Patterns/Output/Volume-Stairs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n}","id":"0d84339c-22b1-4b26-978c-729a65eacf8c","savedPayload":{"position":{"x":11571.186606698688,"y":20222.731210565344},"targetPosition":{"x":11976.906369382563,"y":19876.22383451574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Stairs-Patterns/Output/Volume-Stairs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Stairs-Patterns/Output/Volume-Stairs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n}","id":"63d69b29-5bca-43f6-be0e-67a50fb23827","savedPayload":{"position":{"x":11469.12723466716,"y":20040.600851418963},"targetPosition":{"x":11976.906369382563,"y":19876.22383451574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"New Record Property","code":"{\n \"codeName\": \"type\",\n \"isString\": true\n}","id":"16846a74-8f33-492a-9c4e-9c0249ad0325","savedPayload":{"position":{"x":11085.995311601464,"y":19995.08245621777},"targetPosition":{"x":10912.854881630583,"y":19792.35532429373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"0223719c-db20-45db-9e65-000acf7bcc12","savedPayload":{"position":{"x":10891.601004439168,"y":20058.48294483119},"targetPosition":{"x":10912.854881630583,"y":19792.35532429373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"c28009dd-8548-415b-8150-e19f086fff46","savedPayload":{"position":{"x":10709.376875658874,"y":19965.70910581266},"targetPosition":{"x":10912.854881630583,"y":19792.35532429373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","id":"8e2fa372-284e-4a46-aab9-26e53899594c","savedPayload":{"position":{"x":10646.211953843456,"y":19771.350112829274},"targetPosition":{"x":10912.854881630583,"y":19792.35532429373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Bars Count","code":"{\n \"codeName\": \"barsCount\",\n \"isString\": false\n}","id":"aae7b07a-5726-4370-b86f-0b676c5cb929","savedPayload":{"position":{"x":10739.125725979664,"y":19589.04175681221},"targetPosition":{"x":10912.854881630583,"y":19792.35532429373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Amount","code":"{\n \"codeName\": \"firstAmount\",\n \"isString\": false\n}","id":"cfbcb334-5dce-4186-9d91-889a6eaa21fa","savedPayload":{"position":{"x":10933.512491456937,"y":19525.80122570087},"targetPosition":{"x":10912.854881630583,"y":19792.35532429373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Amount","code":"{\n \"codeName\": \"lastAmount\",\n \"isString\": false\n}","id":"707911c8-e786-4d6b-a13a-8966263c8df2","savedPayload":{"position":{"x":11115.784227338618,"y":19618.73744961895},"targetPosition":{"x":10912.854881630583,"y":19792.35532429373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"af6daf93-5959-410e-ad1f-75e0e5475be8","savedPayload":{"position":{"x":10912.854881630583,"y":19792.35532429373},"targetPosition":{"x":11976.906369382563,"y":19876.22383451574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"id":"846e9572-c4d6-4c7e-942e-c82402c5ecea","savedPayload":{"position":{"x":11976.906369382563,"y":19876.22383451574},"targetPosition":{"x":12484.523461880639,"y":19711.785876586746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Volume Patterns","id":"cfd94d21-cb45-446b-9764-cc67cca712b2"}}}],"id":"841b4675-d110-4269-abb9-d53f9124e5c1","savedPayload":{"position":{"x":12484.523461880639,"y":19711.785876586746},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"P"}}},{"type":"Indicator Bot","name":"Bollinger Bands","code":"{\n\"codeName\": \"Bollinger-Bands\",\n\"repo\": \"Bollinger-Bands-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces a single file for each time frame covering all the market.\",\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"b8c1f684-7327-488b-8c76-4a73d811e312","savedPayload":{"position":{"x":13166.352875222192,"y":20217.03948294015},"targetPosition":{"x":12961.538216946843,"y":20042.401544362565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"fa1205c0-3b6e-4064-aca4-ffdaba7e1bd4","savedPayload":{"position":{"x":13090.031825828393,"y":20279.001765073564},"targetPosition":{"x":12961.538216946843,"y":20042.401544362565},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}}],"id":"72887b4d-8868-4f0c-a051-81b83c366c99","savedPayload":{"position":{"x":12961.538216946843,"y":20042.401544362565},"targetPosition":{"x":12608.22160223594,"y":19642.885591450748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"603f6167-ef54-4464-9b7b-5ff7f59c24e7","savedPayload":{"position":{"x":13243.497360357895,"y":20495.59163766163},"targetPosition":{"x":12870.459166067389,"y":20112.60253426929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"79c51f8f-95eb-451c-98ac-cce4028e23e2","savedPayload":{"position":{"x":13141.838756042007,"y":20573.932379145845},"targetPosition":{"x":12870.459166067389,"y":20112.60253426929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"25d943b0-45aa-45b3-b8b1-f83d5a8b636f","savedPayload":{"position":{"x":13051.04268348895,"y":20614.712546724204},"targetPosition":{"x":12870.459166067389,"y":20112.60253426929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"bd55a584-c9dd-4f2e-836c-a34a16ef01dc","savedPayload":{"position":{"x":12870.459166067389,"y":20112.60253426929},"targetPosition":{"x":12608.22160223594,"y":19642.885591450748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c","savedPayload":{"position":{"x":12822.73602330756,"y":20133.604840555},"targetPosition":{"x":12608.22160223594,"y":19642.885591450748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"a2cf5c7f-ffbf-4c38-9640-699fd3a37454","savedPayload":{"position":{"x":12753.382229202181,"y":20158.260523819146},"targetPosition":{"x":12608.22160223594,"y":19642.885591450748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":"4a9c8cc7-0ebf-43eb-b7f9-0b280630ff67","savedPayload":{"position":{"x":12677.365470176883,"y":20171.925613787014},"targetPosition":{"x":12608.22160223594,"y":19642.885591450748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"id":"941a0543-0cc0-4a5d-a782-728d2835c100","savedPayload":{"position":{"x":12608.22160223594,"y":19642.885591450748},"targetPosition":{"x":12459.599986523914,"y":19310.583207098043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces a Daily File at each time frame.\",\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 }","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"1f8cdcbe-c7dc-49fd-b106-e59bb4fb4ad9","savedPayload":{"position":{"x":12492.515547733758,"y":20459.630734319595},"targetPosition":{"x":12429.546001894252,"y":20197.991127072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"6362cf0d-c71e-4d08-8dea-c9b8d5d0e38b","savedPayload":{"position":{"x":12394.283966699937,"y":20464.736757376417},"targetPosition":{"x":12429.546001894252,"y":20197.991127072328},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}}],"id":"3ab24229-73fe-439a-9684-986aac94f220","savedPayload":{"position":{"x":12429.546001894252,"y":20197.991127072328},"targetPosition":{"x":12383.824933955306,"y":19666.571530683697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"aee6dca7-b8e8-4a33-9bc6-37830080a3a2","savedPayload":{"position":{"x":12444.069919635782,"y":20723.728662045818},"targetPosition":{"x":12329.605565251457,"y":20201.10995568405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"40701c78-7ace-40a8-a943-7b76d73147ce","savedPayload":{"position":{"x":12316.581976443465,"y":20738.784194966112},"targetPosition":{"x":12329.605565251457,"y":20201.10995568405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"442d1d63-f28a-4bff-8dda-9bab7a5ad708","savedPayload":{"position":{"x":12234.804519112156,"y":20727.684955843833},"targetPosition":{"x":12329.605565251457,"y":20201.10995568405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"7323fef7-870a-48b6-b96f-586111253b40"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"603dbf64-0ee0-45b6-a1b8-14065b398893","savedPayload":{"position":{"x":12157.746262317076,"y":20705.885804942725},"targetPosition":{"x":12329.605565251457,"y":20201.10995568405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"312620aa-b556-43c4-9603-6a80acb7ab00","savedPayload":{"position":{"x":12329.605565251457,"y":20201.10995568405},"targetPosition":{"x":12383.824933955306,"y":19666.571530683697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"7323fef7-870a-48b6-b96f-586111253b40","savedPayload":{"position":{"x":12268.61413702272,"y":20190.165328950057},"targetPosition":{"x":12383.824933955306,"y":19666.571530683697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"7ec89351-b852-416a-961a-7e66717c6473","savedPayload":{"position":{"x":12198.015205868622,"y":20169.227061465088},"targetPosition":{"x":12383.824933955306,"y":19666.571530683697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":"acebc3ed-4f3f-4a4b-b403-f16cbe987dde","savedPayload":{"position":{"x":12128.50930839057,"y":20135.520036490543},"targetPosition":{"x":12383.824933955306,"y":19666.571530683697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{}}},"id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca","savedPayload":{"position":{"x":12383.824933955306,"y":19666.571530683697},"targetPosition":{"x":12459.599986523914,"y":19310.583207098043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Bollinger Bands","code":"{\n\"codeName\": \"Bollinger-Bands\",\n\"singularVariableName\": \"bollingerBand\",\n\"pluralVariableName\": \"bollingerBands\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Bollinger-Bands/Output/Bollinger-Bands/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n}","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719","savedPayload":{"position":{"x":12079.388978812072,"y":19896.2120230333},"targetPosition":{"x":12184.831258457341,"y":19557.03316872732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Bollinger-Bands/Output/Bollinger-Bands/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Bollinger-Bands/Output/Bollinger-Bands/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n}","id":"506104fa-e99a-4a46-930e-176bce311aff","savedPayload":{"position":{"x":11987.591036273725,"y":19852.377224537042},"targetPosition":{"x":12184.831258457341,"y":19557.03316872732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"1e7186ee-c481-401d-827f-a30ee7434d92","savedPayload":{"position":{"x":11834.304059190492,"y":20041.44932302081},"targetPosition":{"x":11657.48189250388,"y":20031.75664869102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"15f90f2e-80f0-4575-94d8-6d8957eceee1","savedPayload":{"position":{"x":11775.893750304172,"y":20164.668568632453},"targetPosition":{"x":11657.48189250388,"y":20031.75664869102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Moving Average","code":"{\n \"codeName\": \"movingAverage\",\n \"isString\": false\n}","id":"9786a9cd-1eff-4b5c-ae7c-1dde51659f82","savedPayload":{"position":{"x":11647.649071649343,"y":20210.13831610836},"targetPosition":{"x":11657.48189250388,"y":20031.75664869102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Standard Deviation","code":"{\n \"codeName\": \"standardDeviation\",\n \"isString\": false\n}","id":"e92d7855-bb18-494e-ab37-a895bbcb8287","savedPayload":{"position":{"x":11524.554903780225,"y":20151.35624373028},"targetPosition":{"x":11657.48189250388,"y":20031.75664869102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Deviation","code":"{\n \"codeName\": \"deviation\",\n \"isString\": false\n}","id":"03043530-caa1-416e-8303-840b732e516e","savedPayload":{"position":{"x":11478.974802579296,"y":20022.974428049652},"targetPosition":{"x":11657.48189250388,"y":20031.75664869102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true,\n \"isCalculated\": true\n}","formula":{"type":"Formula","code":"variable.direction","id":"f72926d9-c869-4b7c-ba1e-b36d134e2bc6","savedPayload":{"position":{"x":11418.047162721314,"y":19768.131592676407},"targetPosition":{"x":11537.664407685255,"y":19899.937313770246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"856f24c9-f5f1-491b-98e7-6e1d3c5c5874","savedPayload":{"position":{"x":11537.664407685255,"y":19899.937313770246},"targetPosition":{"x":11657.48189250388,"y":20031.75664869102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Slope","code":"{\n \"codeName\": \"slope\",\n \"isString\": true,\n \"isCalculated\": true\n}","formula":{"type":"Formula","code":"variable.slope","id":"fac935fe-b448-4b34-aed7-b35f70808911","savedPayload":{"position":{"x":11674.293248335363,"y":19677.61733864999},"targetPosition":{"x":11666.09816756768,"y":19854.61363230507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4c027b0c-da8a-4146-a51a-d0a7a126150b","savedPayload":{"position":{"x":11666.09816756768,"y":19854.61363230507},"targetPosition":{"x":11657.48189250388,"y":20031.75664869102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"b5a5ec97-7246-42bd-97e4-28fb4a148b2c","savedPayload":{"position":{"x":11657.48189250388,"y":20031.75664869102},"targetPosition":{"x":12184.831258457341,"y":19557.03316872732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"calculations":{"type":"Calculations Procedure","name":"New Calculations Procedure","initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"variable.lastMovingAverage = 0\nvariable.SIDE_TOLERANCE = 0.5 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.SMALL_SLOPE = 1.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.MEDIUM_SLOPE = 2.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\nvariable.HIGH_SLOPE = 4.0 * system.timeFrame / system.ONE_DAY_IN_MILISECONDS\n","id":"f00ac417-cd99-493c-b959-35eddd6fe4f3","savedPayload":{"position":{"x":11842.63880926416,"y":20417.741978518334},"targetPosition":{"x":11861.208409682724,"y":20063.4128946952},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d144ab2f-5b4e-4153-806a-d471e9f281dd","savedPayload":{"position":{"x":11861.208409682724,"y":20063.4128946952},"targetPosition":{"x":11879.778010101289,"y":19709.083810872067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"\nif (variable.lastMovingAverage > product.bollingerBand.movingAverage) { variable.direction = \"Down\" }\nif (variable.lastMovingAverage < product.bollingerBand.movingAverage) { variable.direction = \"Up\" }\nif (variable.lastMovingAverage === product.bollingerBand.movingAverage) { variable.direction = \"Side\" }\n\nvariable.delta = Math.abs(product.bollingerBand.movingAverage - variable.lastMovingAverage)\n\nvariable.slope = \"Extreme\"\nif (variable.delta < product.bollingerBand.movingAverage * variable.HIGH_SLOPE / 100) { variable.slope = \"Steep\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.MEDIUM_SLOPE / 100) { variable.slope = \"Medium\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.SMALL_SLOPE / 100) { variable.slope = \"Gentle\" }\nif (variable.delta < product.bollingerBand.movingAverage * variable.SIDE_TOLERANCE / 100) { variable.slope = \"Side\" }\n\nvariable.lastMovingAverage = product.bollingerBand.movingAverage","id":"14fc0c9c-cd10-4931-95b5-4bc7d549942a","savedPayload":{"position":{"x":11284.631634738858,"y":19322.59123564773},"targetPosition":{"x":11582.204822420073,"y":19515.8375232599},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8a669548-845b-4d80-ae96-29f68e9c9ac7","savedPayload":{"position":{"x":11582.204822420073,"y":19515.8375232599},"targetPosition":{"x":11879.778010101289,"y":19709.083810872067},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d72c7cb2-8886-4101-a83a-f9788b8400a0","savedPayload":{"position":{"x":11868.893491681636,"y":19718.290498200895},"targetPosition":{"x":12184.831258457341,"y":19557.03316872732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","id":"139484b3-3a3f-4268-801e-a8c441746c7a","savedPayload":{"position":{"x":11837.70428561046,"y":19628.655470982718},"targetPosition":{"x":12184.831258457341,"y":19557.03316872732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"29088877-8d63-4217-8d34-8742afc262f4","savedPayload":{"position":{"x":12184.831258457341,"y":19557.03316872732},"targetPosition":{"x":12459.599986523914,"y":19310.583207098043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Bollinger Bands","id":"a11bfdf8-595c-4b50-b259-6a9f777d0ea8"}}},{"type":"Product Definition","name":"Percentage Bandwidth","code":"{\n \"codeName\": \"Percentage-Bandwidth\",\n \"singularVariableName\": \"percentageBandwidth\",\n \"pluralVariableName\": \"percentageBandwidths\"\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/Masters/Bollinger-Bands/Output/Percentage-Bandwidth/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"207e9481-0730-4304-a938-cfe223d70856","savedPayload":{"position":{"x":11780.775066027132,"y":19517.488707434128},"targetPosition":{"x":12092.704159425433,"y":19348.392149463743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"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/Masters/Bollinger-Bands/Output/Percentage-Bandwidth/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Bollinger-Bands/Output/Percentage-Bandwidth/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea","savedPayload":{"position":{"x":11739.551724778705,"y":19384.443736748577},"targetPosition":{"x":12092.704159425433,"y":19348.392149463743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"7c793ff3-0356-4f05-b471-4510e9cdaf58","savedPayload":{"position":{"x":11452.924581737712,"y":19319.28281882382},"targetPosition":{"x":11412.339019083882,"y":19146.765478847596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"b02c38c3-216c-4a83-903d-d50a599b55dc","savedPayload":{"position":{"x":11282.562943139146,"y":19268.968726388222},"targetPosition":{"x":11412.339019083882,"y":19146.765478847596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Value","code":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","id":"2c279136-20b1-4f9c-9d35-6a4fd36a4a99","savedPayload":{"position":{"x":11241.109775440658,"y":19096.103340986803},"targetPosition":{"x":11412.339019083882,"y":19146.765478847596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Moving Average","code":"{\n \"codeName\": \"movingAverage\",\n \"isString\": false\n}","id":"a9e3bbb1-9eaf-4ab1-93bb-ee27357daa76","savedPayload":{"position":{"x":11370.241015867505,"y":18973.537394878324},"targetPosition":{"x":11412.339019083882,"y":19146.765478847596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Bandwidth","code":"{\n \"codeName\": \"bandwidth\",\n \"isString\": false\n}","id":"90d9694f-ed29-4b2e-8c75-c4bdcf35e36a","savedPayload":{"position":{"x":11540.656175625623,"y":19024.133492491113},"targetPosition":{"x":11412.339019083882,"y":19146.765478847596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"d04d8ca7-18d0-4360-babf-7c49c3c97f50","savedPayload":{"position":{"x":11412.339019083882,"y":19146.765478847596},"targetPosition":{"x":12092.704159425433,"y":19348.392149463743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068","savedPayload":{"position":{"x":12092.704159425433,"y":19348.392149463743},"targetPosition":{"x":12459.599986523914,"y":19310.583207098043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Percentage B","id":"06b2f3f6-b138-415f-8974-31c22a930f92"}}}],"id":"1b7ecdbd-82e9-4a27-8fdd-467c0ca6bf23","savedPayload":{"position":{"x":11758.037462333761,"y":19463.55585821263},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4},"uiObject":{"shortcutKey":"c"}}},{"type":"Indicator Bot","name":"Bollinger Channels","code":"{\n\"codeName\": \"Bollinger-Channels\",\n\"repo\": \"Bollinger-Channels-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces for each market two files with bollinger channels respectively.\",\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":"Bollinger Channels Objects","id":"d804e799-7c12-42f5-8de2-52a3a7d5daa4","savedPayload":{"position":{"x":12609.183832989544,"y":20496.93887059739},"targetPosition":{"x":12202.591971658716,"y":20149.18380972137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"610cd062-ab88-4892-b711-0fb430305c61"}}},{"type":"Output Dataset","name":"Bollinger Channels","id":"e524685d-8da0-41f6-839d-9a4100e6e3fe","savedPayload":{"position":{"x":12539.359608581673,"y":20566.188844007258},"targetPosition":{"x":12202.591971658716,"y":20149.18380972137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Output Dataset","name":"Bollinger Sub-Channels Objects","id":"eb0e7947-95e4-4f4a-87ea-1fb430b8b503","savedPayload":{"position":{"x":12472.26809025814,"y":20614.823932689673},"targetPosition":{"x":12202.591971658716,"y":20149.18380972137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"869f615e-0cc0-44fd-8648-4a951c23a410"}}},{"type":"Output Dataset","name":"Bollinger Sub-Channels Objects","id":"dc96b9ac-f8d5-4bf8-a135-45cd5d6369f1","savedPayload":{"position":{"x":12395.765654110715,"y":20644.552176731486},"targetPosition":{"x":12202.591971658716,"y":20149.18380972137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}}],"id":"dd39a54a-3714-446a-9a41-dfd83557664c","savedPayload":{"position":{"x":12202.591971658716,"y":20149.18380972137},"targetPosition":{"x":11901.161235613201,"y":19708.211127023107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"ae627a69-4089-432d-b379-1b12ce4bd75e","savedPayload":{"position":{"x":12327.387941641902,"y":20684.024714597606},"targetPosition":{"x":12077.480111245972,"y":20212.28494190201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"af8aded9-002a-475a-88f5-d29573740969"}}},{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"4a603114-d464-46db-90a1-62304274117a","savedPayload":{"position":{"x":12253.625561565277,"y":20716.542296945318},"targetPosition":{"x":12077.480111245972,"y":20212.28494190201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"4f8197fa-2627-46df-bd36-7d30fdb12d8c"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Bollinger Bands","id":"ea27be54-93a3-48e3-8c52-72bc397b6c66","savedPayload":{"position":{"x":12151.453685899593,"y":20741.255213326313},"targetPosition":{"x":12077.480111245972,"y":20212.28494190201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}}],"id":"8b509294-6028-40e2-88a8-655a34245ed8","savedPayload":{"position":{"x":12077.480111245972,"y":20212.28494190201},"targetPosition":{"x":11901.161235613201,"y":19708.211127023107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"af8aded9-002a-475a-88f5-d29573740969","savedPayload":{"position":{"x":11941.165519454895,"y":20240.667825242537},"targetPosition":{"x":11901.161235613201,"y":19708.211127023107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"f4720e04-5def-4c0b-be42-33e50ac6a6b7","savedPayload":{"position":{"x":11802.109988207989,"y":20232.75627054246},"targetPosition":{"x":11901.161235613201,"y":19708.211127023107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"4a9c8cc7-0ebf-43eb-b7f9-0b280630ff67"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"671530dc-5ba5-4c8d-bc23-f228e22c56b3","savedPayload":{"position":{"x":11669.413743032617,"y":20189.110083312986},"targetPosition":{"x":11901.161235613201,"y":19708.211127023107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"28be432d-80ca-46b3-859a-55541e24b2b4","savedPayload":{"position":{"x":11901.161235613201,"y":19708.211127023107},"targetPosition":{"x":11860.581940913466,"y":19175.962576335784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces for each market two files with bollinger channels respectively at each day of the market history.\",\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":"New Output Dataset","id":"64430a93-38c2-4c71-8085-71661bbf804e","savedPayload":{"position":{"x":12635.803500152893,"y":20058.754368682585},"targetPosition":{"x":12066.517385594956,"y":20058.754368682585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"64910fea-c92a-4a55-850a-aa62d98b478e"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"b536a078-e32a-4489-93f6-75107a90b527","savedPayload":{"position":{"x":12066.517385594956,"y":20661.11181684639},"targetPosition":{"x":12066.517385594956,"y":20058.754368682585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"d5bcc7c4-2798-4c34-9504-cc4617b64a04","savedPayload":{"position":{"x":11450.345994638956,"y":20058.754368682585},"targetPosition":{"x":12066.517385594956,"y":20058.754368682585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"029479ae-275d-4854-ad3e-66948656a053"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"57898dc1-83a2-4ee9-8a0b-6674f988f0fa","savedPayload":{"position":{"x":12066.517385594956,"y":19467.14858826116},"targetPosition":{"x":12066.517385594956,"y":20058.754368682585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}}],"id":"b8fc5ac0-021d-4230-aa59-9876c5f0f3e1","savedPayload":{"position":{"x":11784.837067272138,"y":20465.03266414423},"targetPosition":{"x":11665.503383788355,"y":19672.834498384953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Market Ending Point","code":"{\n \"mainUtility\": \"Market Ending Point\"\n}","id":"3cb29ee1-02de-452a-a79f-2451700fe335","savedPayload":{"position":{"x":11676.543023997145,"y":21262.502533832157},"targetPosition":{"x":11575.76658796258,"y":20468.42336867547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"7323fef7-870a-48b6-b96f-586111253b40"}}},{"type":"Status Dependency","name":"Market Starting Point","code":"{\n \"mainUtility\": \"Market Starting Point\"\n}","id":"d5f34469-0ae1-45e6-acd9-4155d5940c77","savedPayload":{"position":{"x":11548.349478356397,"y":21268.531939486948},"targetPosition":{"x":11575.76658796258,"y":20468.42336867547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Self Reference","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"7f6266a5-bddb-4d49-962d-100b1993043d","savedPayload":{"position":{"x":11422.803964505025,"y":21254.08300527702},"targetPosition":{"x":11575.76658796258,"y":20468.42336867547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"b1dd07bf-a698-4bbb-995a-356c929a1e94"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"073e24ab-6b47-482a-b117-0d3554f63c1f","savedPayload":{"position":{"x":11302.634693358146,"y":21220.653759730663},"targetPosition":{"x":11575.76658796258,"y":20468.42336867547},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}}],"id":"c0cb34fe-9268-4ebb-a8ce-7d53a13a6d4d","savedPayload":{"position":{"x":11575.76658796258,"y":20468.42336867547},"targetPosition":{"x":11665.503383788355,"y":19672.834498384953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"b1dd07bf-a698-4bbb-995a-356c929a1e94","savedPayload":{"position":{"x":11373.12939410122,"y":20418.100681063304},"targetPosition":{"x":11665.503383788355,"y":19672.834498384953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"4548cff9-f388-4f4f-b148-665d22ffaf9e","savedPayload":{"position":{"x":11190.377904414112,"y":20317.157292914464},"targetPosition":{"x":11665.503383788355,"y":19672.834498384953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"acebc3ed-4f3f-4a4b-b403-f16cbe987dde"}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"34e17fad-2c62-4c45-875c-774ac6b6cc99","savedPayload":{"position":{"x":11039.990454647781,"y":20172.163824753097},"targetPosition":{"x":11665.503383788355,"y":19672.834498384953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"id":"bc15b49d-4547-4bac-a28b-193eb0158fe3","savedPayload":{"position":{"x":11665.503383788355,"y":19672.834498384953},"targetPosition":{"x":11860.581940913466,"y":19175.962576335784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Bollinger Channels Objects","code":"{\n \"codeName\": \"Bollinger-Channels-Objects\",\n \"singularVariableName\": \"bollingerChannelsObject\",\n \"pluralVariableName\": \"bollingerChannelsObjects\"\n}","datasets":[{"type":"Dataset Definition","name":"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/Masters/Bollinger-Channels/Output/Bollinger-Channels-Objects/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"610cd062-ab88-4892-b711-0fb430305c61","savedPayload":{"position":{"x":11285.731880783253,"y":20040.192476600536},"targetPosition":{"x":11469.194956693884,"y":19538.669119604332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"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/Masters/Bollinger-Channels/Output/Bollinger-Channels-Objects/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Bollinger-Channels/Output/Bollinger-Channels-Objects/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"64910fea-c92a-4a55-850a-aa62d98b478e","savedPayload":{"position":{"x":11139.284215992273,"y":19958.456202269594},"targetPosition":{"x":11469.194956693884,"y":19538.669119604332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"06edb099-ff64-4528-b8c6-599154bc2ddf","savedPayload":{"position":{"x":10847.938329315151,"y":20162.454778891384},"targetPosition":{"x":10582.93165184794,"y":20133.585219795976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"94656d1f-508a-4e94-a8d2-013690aac596","savedPayload":{"position":{"x":10767.628373226462,"y":20326.70978149902},"targetPosition":{"x":10582.93165184794,"y":20133.585219795976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","id":"edc0f697-f5e2-446f-bae8-8db7adf91d23","savedPayload":{"position":{"x":10600.4801030351,"y":20400.621915573578},"targetPosition":{"x":10582.93165184794,"y":20133.585219795976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Period","code":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","id":"eb733f85-6cf5-485e-9bd3-2bf78733c492","savedPayload":{"position":{"x":10425.036076816183,"y":20349.764350877133},"targetPosition":{"x":10582.93165184794,"y":20133.585219795976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Moving Average","code":"{\n \"codeName\": \"firstMovingAverage\",\n \"isString\": false\n}","id":"a67a15ee-6f7f-48bd-9d55-82c57efc993b","savedPayload":{"position":{"x":10323.117516251636,"y":20197.960143399647},"targetPosition":{"x":10582.93165184794,"y":20133.585219795976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Moving Average","code":"{\n \"codeName\": \"lastMovingAverage\",\n \"isString\": false\n}","id":"0f05bffe-d668-4d25-ab67-d55a4a7c8f5d","savedPayload":{"position":{"x":10342.599173723296,"y":20016.50423817981},"targetPosition":{"x":10582.93165184794,"y":20133.585219795976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Deviation","code":"{\n \"codeName\": \"firstDeviation\",\n \"isString\": false\n}","id":"eae84509-b689-4a76-9277-eed72af491dd","savedPayload":{"position":{"x":10471.8615825767,"y":19886.476451928353},"targetPosition":{"x":10582.93165184794,"y":20133.585219795976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Deviation","code":"{\n \"codeName\": \"lastDeviation\",\n \"isString\": false\n}","id":"d5c32d1f-9e3c-48e8-8025-a17d57c0812e","savedPayload":{"position":{"x":10657.005587983138,"y":19877.499882381297},"targetPosition":{"x":10582.93165184794,"y":20133.585219795976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"6c3e68b0-b781-4c53-9ff7-67c3f747ac8a","savedPayload":{"position":{"x":10582.93165184794,"y":20133.585219795976},"targetPosition":{"x":11469.194956693884,"y":19538.669119604332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"\n\nif (record.next !== undefined) {\n\n if (\n record.current.direction === record.next.direction) {\n\n if (variable.channel === undefined) {\n\n variable.channel = {\n begin: undefined,\n end: undefined,\n direction: undefined,\n period: 0,\n firstMovingAverage: 0,\n lastMovingAverage: 0,\n firstDeviation: 0,\n lastDeviation: 0\n }\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 2\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.next.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.next.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.next.deviation\n\n } else {\n\n variable.channel.period++\n variable.channel.end = record.next.end\n variable.channel.lastMovingAverage = record.next.movingAverage\n variable.channel.lastDeviation = record.next.deviation\n\n }\n } else {\n\n if (variable.channel !== undefined) {\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n }\n} else {\n if (variable.channel !== undefined) {\n variable.channel.period++\n variable.channel.end = record.current.end\n variable.channel.lastMovingAverage = record.current.movingAverage\n variable.channel.lastDeviation = record.current.deviation\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The variable.channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n}","id":"b81d6adc-e721-4089-b4c3-2fd772f33d25","savedPayload":{"position":{"x":9910.548006115116,"y":19955.060010114117},"targetPosition":{"x":10423.996075906694,"y":19808.89618680196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a2b92c75-e272-4d05-b098-121a70371450","savedPayload":{"position":{"x":10423.996075906694,"y":19808.89618680196},"targetPosition":{"x":10933.533369970271,"y":19639.39865730084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"116ccf8c-26bc-4b86-99e6-bb3075527713","savedPayload":{"position":{"x":10933.533369970271,"y":19639.39865730084},"targetPosition":{"x":11469.194956693884,"y":19538.669119604332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"1f111f72-624f-4166-9f99-ab8d785d5267","savedPayload":{"position":{"x":11469.194956693884,"y":19538.669119604332},"targetPosition":{"x":11860.581940913466,"y":19175.962576335784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Plotter Module","name":"Bollinger Channels Objects","id":"52881346-3e4b-45e0-92d2-af130d381b8e"}}},{"type":"Product Definition","name":"Bollinger Channels","code":"{\n \"codeName\": \"Bollinger-Channels\",\n \"singularVariableName\": \"bollingerChannel\",\n \"pluralVariableName\": \"bollingerChannels\"\n}","datasets":[{"type":"Dataset Definition","name":"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/Masters/Bollinger-Channels/Output/Bollinger-Channels/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"22c1f2c6-3838-4657-add8-2e01d7056917","savedPayload":{"position":{"x":10972.730396711786,"y":19713.708072618014},"targetPosition":{"x":11350.629368542657,"y":19332.92784931643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"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/Masters/Bollinger-Channels/Output/Bollinger-Channels/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Bollinger-Channels/Output/Bollinger-Channels/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec","savedPayload":{"position":{"x":10870.068981788716,"y":19566.484502140793},"targetPosition":{"x":11350.629368542657,"y":19332.92784931643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"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","code":"record.current.begin","id":"b243e3c4-e528-4e7b-9644-b03e47c8ca34","savedPayload":{"position":{"x":10532.45923323467,"y":19961.79691551318},"targetPosition":{"x":10409.62608921782,"y":19714.989411320254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"74268e18-735f-405b-b9db-412ce6cf7438","savedPayload":{"position":{"x":10409.62608921782,"y":19714.989411320254},"targetPosition":{"x":10293.990440498059,"y":19483.978419803323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"bc705d0f-6df6-45f6-8d3a-44b81bf785bd","savedPayload":{"position":{"x":9909.745613309626,"y":19855.512906546814},"targetPosition":{"x":10101.823457209039,"y":19669.87620038028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ad08f6a7-5d37-4fd3-9d84-5eebddcd8cb5","savedPayload":{"position":{"x":10101.823457209039,"y":19669.87620038028},"targetPosition":{"x":10293.990440498059,"y":19483.978419803323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","formula":{"type":"Formula","code":"record.current.direction","id":"7b7fd5fc-c820-4c1b-ae3e-400d7b90bb0b","savedPayload":{"position":{"x":9820.819400421164,"y":19234.866098845087},"targetPosition":{"x":10057.379943794233,"y":19359.440508914297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"31720cda-be3c-453e-8c6e-c4816299c440","savedPayload":{"position":{"x":10057.379943794233,"y":19359.440508914297},"targetPosition":{"x":10293.990440498059,"y":19483.978419803323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Period","code":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.period","id":"9c44699b-a743-4f46-82f6-0351e8b1a206","savedPayload":{"position":{"x":10382.996007217434,"y":18957.80963721193},"targetPosition":{"x":10339.154134738606,"y":19221.44338608279},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8af98ad4-3062-49a1-bff6-593bd9638f72","savedPayload":{"position":{"x":10339.154134738606,"y":19221.44338608279},"targetPosition":{"x":10293.990440498059,"y":19483.978419803323},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"9106250d-b042-4e96-9121-c760b4c1eab2","savedPayload":{"position":{"x":10293.990440498059,"y":19483.978419803323},"targetPosition":{"x":11350.629368542657,"y":19332.92784931643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"if (record.previous !== undefined) {\n if (record.current.direction === record.previous.direction) {\n variable.period++\n } else {\n variable.period = 1\n }\n}","id":"8f05a74a-f85c-4eb1-9de1-3363d2e3cb8a","savedPayload":{"position":{"x":11062.392071268496,"y":18404.30593820046},"targetPosition":{"x":11405.031787430506,"y":18609.023638475504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7e54fecc-8443-4aad-a541-0b6a3fcac877","savedPayload":{"position":{"x":11405.031787430506,"y":18609.023638475504},"targetPosition":{"x":11747.671503592515,"y":18813.741338750548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"variable.period = 1","id":"491600d9-228d-41b8-bedb-22b8ba22a7c9","savedPayload":{"position":{"x":12444.892677839558,"y":18424.989641942007},"targetPosition":{"x":12096.282090716037,"y":18619.365490346278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3c3de682-9ac0-4bf9-b1ff-97a3e0cb24b4","savedPayload":{"position":{"x":12096.282090716037,"y":18619.365490346278},"targetPosition":{"x":11747.671503592515,"y":18813.741338750548},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9ace6abd-5ef9-4c37-9dbc-7aefc8b8b905","savedPayload":{"position":{"x":11358.075442907362,"y":18799.259929291788},"targetPosition":{"x":11350.629368542657,"y":19332.92784931643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"94bc3958-cc85-43a1-a178-103e84f42910","savedPayload":{"position":{"x":11350.629368542657,"y":19332.92784931643},"targetPosition":{"x":11860.581940913466,"y":19175.962576335784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","code":"{\n \"codeName\": \"Bollinger-Sub-Channels-Objects\",\n \"singularVariableName\": \"bollingerSubChannelsObject\",\n \"pluralVariableName\": \"bollingerSubChannelsObjects\"\n}","datasets":[{"type":"Dataset Definition","name":"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/Masters/Bollinger-Channels/Output/Bollinger-Sub-Channels-Objects/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"869f615e-0cc0-44fd-8648-4a951c23a410","savedPayload":{"position":{"x":10826.543408732,"y":19264.972371820157},"targetPosition":{"x":11332.969767269762,"y":19096.20353609614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"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/Masters/Bollinger-Channels/Output/Bollinger-Sub-Channels-Objects/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Bollinger-Channels/Output/Bollinger-Sub-Channels-Objects/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"029479ae-275d-4854-ad3e-66948656a053","savedPayload":{"position":{"x":10799.145669479192,"y":19099.67458546902},"targetPosition":{"x":11332.969767269762,"y":19096.20353609614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"8f0513f5-d78e-4efd-a554-a6ee2a4781ac","savedPayload":{"position":{"x":10474.667612544557,"y":18988.47291825245},"targetPosition":{"x":10315.404396141961,"y":18773.770459266718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"677f9a11-1fa3-4880-ad4f-81a4490d82e8","savedPayload":{"position":{"x":10316.675504203396,"y":19040.641766170247},"targetPosition":{"x":10315.404396141961,"y":18773.770459266718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","id":"610f6b9f-9404-4603-a42b-80de31498f2f","savedPayload":{"position":{"x":10159.4128644645,"y":18990.723739887388},"targetPosition":{"x":10315.404396141961,"y":18773.770459266718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Slope","code":"{\n \"codeName\": \"slope\",\n \"isString\": true\n}","id":"65600005-8272-4297-8716-b08841eb5e73","savedPayload":{"position":{"x":10061.256352524493,"y":18857.819821621415},"targetPosition":{"x":10315.404396141961,"y":18773.770459266718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Period","code":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","id":"ef18438f-7a1f-4432-8fce-494bc9b5ae01","savedPayload":{"position":{"x":10060.091103071118,"y":18692.807003014525},"targetPosition":{"x":10315.404396141961,"y":18773.770459266718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Moving Average","code":"{\n \"codeName\": \"firstMovingAverage\",\n \"isString\": false\n}","id":"e5694d55-735b-4cb2-919e-02a71679c682","savedPayload":{"position":{"x":10156.281674167558,"y":18558.347786290917},"targetPosition":{"x":10315.404396141961,"y":18773.770459266718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Moving Average","code":"{\n \"codeName\": \"lastMovingAverage\",\n \"isString\": false\n}","id":"d49bae2d-b519-49ba-8fd2-9a3a4c2e8dc3","savedPayload":{"position":{"x":10313.090434542934,"y":18506.067365273415},"targetPosition":{"x":10315.404396141961,"y":18773.770459266718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"First Deviation","code":"{\n \"codeName\": \"firstDeviation\",\n \"isString\": false\n}","id":"a11b4d44-937d-456e-b2bd-9cd025289c34","savedPayload":{"position":{"x":10470.366478904403,"y":18555.962649419907},"targetPosition":{"x":10315.404396141961,"y":18773.770459266718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Deviation","code":"{\n \"codeName\": \"lastDeviation\",\n \"isString\": false\n}","id":"4d1b7a3f-c452-4002-ab8c-bfa7d396ac2c","savedPayload":{"position":{"x":10568.387587132536,"y":18689.101393891986},"targetPosition":{"x":10315.404396141961,"y":18773.770459266718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"a2ff91c2-cfee-487c-959d-fd3ed3dea861","savedPayload":{"position":{"x":10315.404396141961,"y":18773.770459266718},"targetPosition":{"x":11332.969767269762,"y":19096.20353609614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":5},"uiObject":{}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"if (record.next !== undefined) {\n\n if (\n record.current.direction === record.next.direction &&\n record.current.slope === record.next.slope) {\n\n if (variable.channel === undefined) {\n\n variable.channel = {\n begin: undefined,\n end: undefined,\n direction: undefined,\n slope: undefined,\n period: 0,\n firstMovingAverage: 0,\n lastMovingAverage: 0,\n firstDeviation: 0,\n lastDeviation: 0\n }\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 2\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.next.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.next.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.next.deviation\n\n } else {\n\n variable.channel.period++\n variable.channel.end = record.next.end\n variable.channel.lastMovingAverage = record.next.movingAverage\n variable.channel.lastDeviation = record.next.deviation\n\n }\n } else {\n\n if (variable.channel !== undefined) {\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n }\n\n} else {\n if (variable.channel !== undefined) {\n variable.channel.period++\n variable.channel.end = record.current.end\n variable.channel.lastMovingAverage = record.current.movingAverage\n variable.channel.lastDeviation = record.current.deviation\n results.push(variable.channel)\n variable.channel = undefined\n } else {\n /* The channel has only one period */\n\n variable.channel = {}\n\n variable.channel.direction = record.current.direction\n variable.channel.slope = record.current.slope\n variable.channel.period = 1\n\n variable.channel.begin = record.current.begin\n variable.channel.end = record.current.end\n\n variable.channel.firstMovingAverage = record.current.movingAverage\n variable.channel.lastMovingAverage = record.current.movingAverage\n\n variable.channel.firstDeviation = record.current.deviation\n variable.channel.lastDeviation = record.current.deviation\n\n results.push(variable.channel)\n variable.channel = undefined\n }\n}","id":"a1af769c-2a2d-4e78-8f0d-8dfb773982f0","savedPayload":{"position":{"x":12047.51666540271,"y":17665.429098106295},"targetPosition":{"x":11809.299901939134,"y":18142.434452671554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"128aac86-66b5-4685-a75d-4e60ba697c90","savedPayload":{"position":{"x":11809.299901939134,"y":18142.434452671554},"targetPosition":{"x":11571.272034297981,"y":18619.170861856324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5bfe184e-396e-431a-a640-76c05d1c6e06","savedPayload":{"position":{"x":11571.272034297981,"y":18619.170861856324},"targetPosition":{"x":11332.969767269762,"y":19096.20353609614},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"080c87fc-4546-4482-ab11-180a33f6d9ab","savedPayload":{"position":{"x":11332.969767269762,"y":19096.20353609614},"targetPosition":{"x":11860.581940913466,"y":19175.962576335784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Bollinger Sub Channels Objects","id":"f8c4b699-1f40-4832-b427-68da3341daa8"}}},{"type":"Product Definition","name":"Bollinger Sub-Channels","code":"{\n \"codeName\": \"Bollinger-Sub-Channels\",\n \"singularVariableName\": \"bollingerSubChannel\",\n \"pluralVariableName\": \"bollingerSubChannels\"\n}","datasets":[{"type":"Dataset Definition","name":"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/Masters/Bollinger-Channels/Output/Bollinger-Sub-Channels/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3","savedPayload":{"position":{"x":10890.680103321032,"y":18807.384280784612},"targetPosition":{"x":11420.061199809394,"y":18875.078956023124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Dataset Definition","name":"Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Bollinger-Channels/Output/Bollinger-Sub-Channels/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Masters/Bollinger-Channels/Output/Bollinger-Sub-Channels/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n}","id":"ca71e765-0f66-4b18-b500-847b9d16169b","savedPayload":{"position":{"x":10937.735849316106,"y":18646.277609138673},"targetPosition":{"x":11420.061199809394,"y":18875.078956023124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"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","code":"record.current.begin","id":"421aeb2e-dd1b-44ec-bf78-00d8691d4110","savedPayload":{"position":{"x":11288.703956136376,"y":18751.1902779376},"targetPosition":{"x":11323.100751926033,"y":18605.519369122598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2a101e7-8183-42b4-94c4-99bfcbf2c3c2","savedPayload":{"position":{"x":11323.100751926033,"y":18605.519369122598},"targetPosition":{"x":11357.49754771569,"y":18459.848460307596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"febf55a5-de85-4830-b4fe-df78acfc60b5","savedPayload":{"position":{"x":11070.791336673718,"y":18545.94237119734},"targetPosition":{"x":11214.144442194704,"y":18502.895415752468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0cc9b985-b780-41ef-838b-7f764824f244","savedPayload":{"position":{"x":11214.144442194704,"y":18502.895415752468},"targetPosition":{"x":11357.49754771569,"y":18459.848460307596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Direction","code":"{\n \"codeName\": \"direction\",\n \"isString\": true\n}","formula":{"type":"Formula","code":"record.current.direction","id":"73113162-c56d-4ca1-9e8b-f6a5bf84c30f","savedPayload":{"position":{"x":11139.58492825303,"y":18254.600553567336},"targetPosition":{"x":11248.54123798436,"y":18357.224506937466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"91f3e346-3d02-48f9-aa0c-e55bae62f870","savedPayload":{"position":{"x":11248.54123798436,"y":18357.224506937466},"targetPosition":{"x":11357.49754771569,"y":18459.848460307596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Slope","code":"{\n \"codeName\": \"slope\",\n \"isString\": true\n}","formula":{"type":"Formula","code":"record.current.slope","id":"f9e484d0-138a-4d19-a876-a6067f5a1619","savedPayload":{"position":{"x":11426.291139295003,"y":18168.506642677592},"targetPosition":{"x":11391.894343505346,"y":18314.177551492594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"478a7021-7233-4eb4-958d-f127c6a4891c","savedPayload":{"position":{"x":11391.894343505346,"y":18314.177551492594},"targetPosition":{"x":11357.49754771569,"y":18459.848460307596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Period","code":"{\n \"codeName\": \"period\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.period","id":"35c1cfa6-c691-40b0-b680-bd7c94be19e3","savedPayload":{"position":{"x":11644.203758757661,"y":18373.754549417852},"targetPosition":{"x":11500.850653236675,"y":18416.801504862724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"61f63128-268f-4679-a0ef-e9b53a0a655b","savedPayload":{"position":{"x":11500.850653236675,"y":18416.801504862724},"targetPosition":{"x":11357.49754771569,"y":18459.848460307596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"afe778f1-4343-4102-8eb4-0b9340d7ad5b","savedPayload":{"position":{"x":10837.410868735411,"y":18325.71427720995},"targetPosition":{"x":11420.061199809394,"y":18875.078956023124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"dataBuilding":{"type":"Data Building Procedure","name":"New Data Building Procedure","loop":{"type":"Procedure Loop","name":"New Procedure Loop","javascriptCode":{"type":"Javascript Code","code":"if (record.previous !== undefined) {\n if (record.current.direction === record.previous.direction && record.current.slope === record.previous.slope) {\n variable.period++\n } else {\n variable.period = 1\n }\n}","id":"c450c940-f800-414b-a2c4-bda3481f55c7","savedPayload":{"position":{"x":10534.48579090836,"y":17547.15607574445},"targetPosition":{"x":10849.467473465855,"y":17977.404154865722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a580c9a8-c70a-483e-8dd3-d3b62464f8f4","savedPayload":{"position":{"x":10849.467473465855,"y":17977.404154865722},"targetPosition":{"x":11164.4409421777,"y":18407.402510603664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"variable.period = 1","id":"e0efa286-41a0-45e0-8ce3-dfc27b4dce3e","savedPayload":{"position":{"x":10778.755782564578,"y":17412.468040883454},"targetPosition":{"x":10971.572951426131,"y":17909.59031355818},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2decc091-6c76-458b-be8e-39e3e72cecd6","savedPayload":{"position":{"x":10971.572951426131,"y":17909.59031355818},"targetPosition":{"x":11164.4409421777,"y":18407.402510603664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"f16f2ab8-7ba2-4acf-bf85-8ed89bd1e5af","savedPayload":{"position":{"x":11164.4409421777,"y":18407.402510603664},"targetPosition":{"x":11420.061199809394,"y":18875.078956023124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"79ce9c05-8a4c-4b58-850f-288037acc702","savedPayload":{"position":{"x":11420.061199809394,"y":18875.078956023124},"targetPosition":{"x":11860.581940913466,"y":19175.962576335784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"bd0f325d-6f98-468b-8b7b-99a42a175d80","savedPayload":{"position":{"x":11602.026621474119,"y":18696.03273697464},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"tradingBots":[],"plotters":[{"type":"Plotter","name":"Plotters-Candles-Volumes","code":"{\n\"codeName\": \"PlottersCandlesVolumes\"\n}","modules":[{"type":"Plotter Module","name":"Candles","code":"{\n\"codeName\": \"Candles\",\n\"isLegacy\": true,\n\"icon\": \"candles\"\n}","panels":[{"type":"Plotter Panel","name":"New Plotter Panel","code":"{ \n\"codeName\": \"CandlePanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"9336f4e6-d56b-4ed4-819d-0bb762ba1fdd","savedPayload":{"position":{"x":11422.333955206532,"y":18323.14921874969},"targetPosition":{"x":11795.325742789815,"y":18323.14921874969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"0aed75a3-fee8-4ddc-97ff-b6768e6f12a3","savedPayload":{"position":{"x":11795.325742789815,"y":18323.14921874969},"targetPosition":{"x":12168.317530373099,"y":18323.14921874969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Plotter Module","name":"Volumes","code":"{\n\"codeName\": \"Volumes\",\n\"isLegacy\": true,\n\"icon\": \"volume\"\n}","panels":[{"type":"Plotter Panel","name":"New Plotter Panel","code":"{ \n\"codeName\": \"VolumePanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"42dbd098-4550-44a0-987f-54a28dd5f40b","savedPayload":{"position":{"x":11795.325742789815,"y":17677.108491849503},"targetPosition":{"x":11981.821636581457,"y":18000.128855299597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"a6177fb7-51d1-4b7c-bcbb-04861a5bf0c1","savedPayload":{"position":{"x":11981.821636581457,"y":18000.128855299597},"targetPosition":{"x":12168.317530373099,"y":18323.14921874969},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"e4347543-21b5-4274-b690-e6b3b5899862","savedPayload":{"position":{"x":11975.227271428108,"y":18086.332414448883},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},{"type":"Plotter","name":"Plotters-Stairs-Patterns","code":"{\n\"codeName\": \"PlottersStairsPatterns\"\n}","modules":[{"type":"Plotter Module","name":"Candles Patterns","code":"{\n\"codeName\": \"CandleStairs\",\n\"isLegacy\": true,\n\"icon\": \"trend\"\n}","panels":[],"id":"a41043f2-f2a5-4c8f-b372-d8eda1ca58df","savedPayload":{"position":{"x":12071.336364713046,"y":17807.19750302056},"targetPosition":{"x":12416.200606275283,"y":18006.304965720396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Plotter Module","name":"Volume Patterns","code":"{\n\"codeName\": \"VolumeStairs\",\n\"isLegacy\": true,\n\"icon\": \"trend\"\n}","panels":[],"id":"cfd94d21-cb45-446b-9764-cc67cca712b2","savedPayload":{"position":{"x":12416.200606275283,"y":17608.090040320727},"targetPosition":{"x":12416.200606275283,"y":18006.304965720396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"b3b5fed4-ddff-406a-83b9-b33968b820a8","savedPayload":{"position":{"x":12494.072315005495,"y":17710.022203679313},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"Plotters-Bollinger-Bands","code":"{\n\"codeName\" : \"PlottersBollingerBands\"\n}","modules":[{"type":"Plotter Module","name":"Percentage B","code":"{\n\t\"codeName\": \"Percentage Bandwidth\",\n \"icon\": \"histogram\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"Begin Previous Value","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","id":"ad85e84e-166f-41c7-bc08-b6a50ca4524d","savedPayload":{"position":{"x":11798.664733306687,"y":16329.73639419282},"targetPosition":{"x":11719.751700635175,"y":16624.243841502244},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"534c2cd4-d020-43cf-9284-433a57fdcfce","savedPayload":{"position":{"x":11719.751700635175,"y":16624.243841502244},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End Value","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","id":"1e029480-c6d7-4455-9ae9-5677b99752de","savedPayload":{"position":{"x":12024.593894014306,"y":16444.853051356265},"targetPosition":{"x":11832.716280988985,"y":16681.802170083967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5b05abcc-76cf-4f9d-82e5-671ab7471678","savedPayload":{"position":{"x":11832.716280988985,"y":16681.802170083967},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Begin Previous MA","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.movingAverage","id":"7bafa19b-086c-41cf-b2e4-a41485841f4c","savedPayload":{"position":{"x":12184.168289830985,"y":16641.911019006082},"targetPosition":{"x":11912.503478897324,"y":16780.331153908875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0993c95f-2054-48d8-9977-2d4eb24dabf7","savedPayload":{"position":{"x":11912.503478897324,"y":16780.331153908875},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End MA","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.movingAverage","id":"412d8820-facc-4065-a235-d35d86c3b569","savedPayload":{"position":{"x":12249.796058032149,"y":16886.837184320182},"targetPosition":{"x":11945.317362997906,"y":16902.794236565926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"35bdf97d-abf8-4f1e-922c-d853e6980b0c","savedPayload":{"position":{"x":11945.317362997906,"y":16902.794236565926},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Being Previous Bandwidth","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.bandwidth * 250","id":"cbd72abc-e6c4-44d6-bd58-1bab7c0b2960","savedPayload":{"position":{"x":12210.12956128626,"y":17137.281588231395},"targetPosition":{"x":11925.484114624962,"y":17028.016438521532},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"943da81e-c0ca-4213-ba8a-5dbafd3ead18","savedPayload":{"position":{"x":11925.484114624962,"y":17028.016438521532},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End Bandwidth","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.bandwidth * 250","id":"6ac14886-32ee-490f-a600-4f704458f24e","savedPayload":{"position":{"x":12072.027497239491,"y":17349.940118087492},"targetPosition":{"x":11856.433082601578,"y":17134.34570344958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cdf38478-d5d4-410e-98fd-14b7b74bfd8b","savedPayload":{"position":{"x":11856.433082601578,"y":17134.34570344958},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Begin 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 0","id":"54cece5b-472f-4c86-b6b6-83342e2890f7","savedPayload":{"position":{"x":11859.368967383394,"y":17488.042182134268},"targetPosition":{"x":11750.10381767353,"y":17203.39673547297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8e21c88b-bfb7-41dd-9cbe-678d5dc4fc54","savedPayload":{"position":{"x":11750.10381767353,"y":17203.39673547297},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","id":"1572cfc8-0318-43b5-8405-a04cc00cbd16","savedPayload":{"position":{"x":11608.924563472177,"y":17527.708678880153},"targetPosition":{"x":11624.88161571792,"y":17223.22998384591},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"75670aaa-849d-4156-af74-61a25ce49713","savedPayload":{"position":{"x":11624.88161571792,"y":17223.22998384591},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Begin 30","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","id":"6039db7e-9c71-4906-b999-3d7848989c5a","savedPayload":{"position":{"x":11363.99839815808,"y":17462.08091067899},"targetPosition":{"x":11502.418533060873,"y":17190.41609974533},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd","savedPayload":{"position":{"x":11502.418533060873,"y":17190.41609974533},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End 30","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","id":"89393793-42d5-4dea-bca5-aee8f3349659","savedPayload":{"position":{"x":11166.94043050826,"y":17302.50651486231},"targetPosition":{"x":11403.889549235962,"y":17110.62890183699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5","savedPayload":{"position":{"x":11403.889549235962,"y":17110.62890183699},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Begin 70","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","id":"c616cf49-abaf-490e-a3b7-f978442c8b4a","savedPayload":{"position":{"x":11051.823773344815,"y":17076.577354154695},"targetPosition":{"x":11346.33122065424,"y":16997.664321483182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"827e424f-3036-4645-9246-94b4bb0ebaea","savedPayload":{"position":{"x":11346.33122065424,"y":16997.664321483182},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End 70","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","id":"d3003e73-9318-4282-a293-d61c0d98bd4b","savedPayload":{"position":{"x":11038.553142493296,"y":16823.358632944473},"targetPosition":{"x":11339.69590522848,"y":16871.05496087807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"84bdd434-48af-4f4a-8f14-62df15022d05","savedPayload":{"position":{"x":11339.69590522848,"y":16871.05496087807},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"Begin 100","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","id":"8d13712b-3f9e-424e-b85c-e6794ce39ca9","savedPayload":{"position":{"x":11129.423150587827,"y":16586.63416854877},"targetPosition":{"x":11385.130909275746,"y":16752.69272868022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ec589261-f564-4ad0-b866-8c63b8a15150","savedPayload":{"position":{"x":11385.130909275746,"y":16752.69272868022},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"End 100","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","id":"8c06033c-c2b7-42a7-b509-e45a1b7edf42","savedPayload":{"position":{"x":11308.721547700763,"y":16407.335771435835},"targetPosition":{"x":11474.780107832214,"y":16663.043530123752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8949ce4a-bdad-47c2-a85f-0728ed7f9746","savedPayload":{"position":{"x":11474.780107832214,"y":16663.043530123752},"targetPosition":{"x":11640.838667963664,"y":16918.75128881167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"9388e24f-4147-4878-8754-b6f6b8807813","savedPayload":{"position":{"x":11640.838667963664,"y":16918.75128881167},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"Area From 0 to 30","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"05578d4b-01e3-42fc-a4dd-b473414f467d","savedPayload":{"position":{"x":12015.983267262163,"y":16556.216469783474},"targetPosition":{"x":11711.504572227921,"y":16572.173522029218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"14810299-01f6-443c-8bbf-de8450c9efd6","savedPayload":{"position":{"x":11711.504572227921,"y":16572.173522029218},"targetPosition":{"x":11407.025877193679,"y":16588.13057427496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"d8eda99d-df16-4e21-b621-6f547914c461","savedPayload":{"position":{"x":11505.106890553858,"y":16889.992894403047},"targetPosition":{"x":11407.025877193679,"y":16588.13057427496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"8e21c88b-bfb7-41dd-9cbe-678d5dc4fc54"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"3a844186-fa2d-45e3-9453-d11750bafb51","savedPayload":{"position":{"x":11153.09166656169,"y":16772.624577614573},"targetPosition":{"x":11407.025877193679,"y":16588.13057427496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"75670aaa-849d-4156-af74-61a25ce49713"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"95d52cc3-0a06-4181-bcd7-1e65b41194d8","savedPayload":{"position":{"x":11156.776268926033,"y":16406.313591251834},"targetPosition":{"x":11407.025877193679,"y":16588.13057427496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a65fe0bd-5517-45b2-ac29-16bd198653a5","savedPayload":{"position":{"x":11492.37308854739,"y":16325.458866947827},"targetPosition":{"x":11407.025877193679,"y":16588.13057427496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}}],"id":"d76f185f-5219-4f0b-adb3-9a339b0468c6","savedPayload":{"position":{"x":11407.025877193679,"y":16588.13057427496},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Polygon","name":"Area From 30 to 70","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.1,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"2bdd38d2-0e04-4760-a8e7-af12d8a3baa7","savedPayload":{"position":{"x":11785.196718538647,"y":16787.00301850699},"targetPosition":{"x":11529.488959850729,"y":16620.944458375543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"de6f5e6b-a281-4d29-af86-72f7a545257d","savedPayload":{"position":{"x":11529.488959850729,"y":16620.944458375543},"targetPosition":{"x":11273.78120116281,"y":16454.885898244094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e9bfd52e-bc47-469f-8187-4e79d79ba866","savedPayload":{"position":{"x":11366.72813636748,"y":16740.9471505544},"targetPosition":{"x":11273.78120116281,"y":16454.885898244094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"f562f71b-2e79-4fa0-a9d5-e1d5c4ba12b4","savedPayload":{"position":{"x":11041.128895368802,"y":16623.91769264195},"targetPosition":{"x":11273.78120116281,"y":16454.885898244094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"3c79161c-e899-4147-bd75-21805b23f76f","savedPayload":{"position":{"x":11026.169939339401,"y":16274.985786116316},"targetPosition":{"x":11273.78120116281,"y":16454.885898244094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"4cd041c2-e445-46eb-99bf-c3ceee94f101","savedPayload":{"position":{"x":11366.398268640618,"y":16169.839874406198},"targetPosition":{"x":11273.78120116281,"y":16454.885898244094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}}],"id":"1a7969dd-af18-4e44-b4c9-96dd2be57f7c","savedPayload":{"position":{"x":11273.78120116281,"y":16454.885898244094},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Polygon","name":"Area From 70 to 100","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"b34d9e0e-ed4a-4b99-8e29-b7ed66a3658e","savedPayload":{"position":{"x":11462.833548781016,"y":16838.060328730302},"targetPosition":{"x":11353.568399071151,"y":16553.414882069002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c35b477-500f-4c85-867f-630e2105278f","savedPayload":{"position":{"x":11353.568399071151,"y":16553.414882069002},"targetPosition":{"x":11244.303249361286,"y":16268.769435407705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"1777fb76-c1e2-415d-a517-2e365401490c","savedPayload":{"position":{"x":11339.438037353539,"y":16561.564206224117},"targetPosition":{"x":11244.303249361286,"y":16268.769435407705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"4652d8cf-d922-44a3-b8cf-c6d329883ca0","savedPayload":{"position":{"x":11012.529175252737,"y":16437.16315713663},"targetPosition":{"x":11244.303249361286,"y":16268.769435407705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"ef3e750e-8380-40a2-830b-3f364960e44e","savedPayload":{"position":{"x":10993.4737274419,"y":16086.531120454018},"targetPosition":{"x":11244.303249361286,"y":16268.769435407705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"8949ce4a-bdad-47c2-a85f-0728ed7f9746"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"c8905f10-3c25-4fec-978a-ef356c0ad395","savedPayload":{"position":{"x":11341.63462493217,"y":15969.214263162574},"targetPosition":{"x":11244.303249361286,"y":16268.769435407705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"ec589261-f564-4ad0-b866-8c63b8a15150"}}}],"id":"cb1bcd11-0fb0-4377-bff2-dee4630e0f3f","savedPayload":{"position":{"x":11244.303249361286,"y":16268.769435407705},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"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.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"3f69a3f7-af79-47a2-9e0b-17524fc986d8","savedPayload":{"position":{"x":10898.66276818273,"y":16532.060177979212},"targetPosition":{"x":11114.257182820644,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"30e98617-1cfd-4fa7-814c-a5898caac0da","savedPayload":{"position":{"x":11114.257182820644,"y":16316.4657633413},"targetPosition":{"x":11329.851597458557,"y":16100.871348703387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2f5d4ab1-0d70-4baa-988a-2b7077e7b1e6","savedPayload":{"position":{"x":11172.504885812235,"y":16373.403847678706},"targetPosition":{"x":11329.851597458557,"y":16100.871348703387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"ffea0ed5-39b4-4c14-b1fc-2164a6e189fd"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b23626ca-e521-4fad-9a8b-8c9f30711de7","savedPayload":{"position":{"x":11188.137622094326,"y":15855.415543229974},"targetPosition":{"x":11329.851597458557,"y":16100.871348703387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"4bc7f337-74a7-42b7-89b7-9d4edc10fca5"}}}],"id":"857043cc-f467-44d2-89eb-2e73f35f638d","savedPayload":{"position":{"x":11329.851597458557,"y":16100.871348703387},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"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.3,\n \"lineWidth\": 1,\n \"lineDash\": [3,3],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n }\n}","id":"9e67e8dc-0a07-4d57-be52-6023ff9087da","savedPayload":{"position":{"x":10895.464158692504,"y":16110.715656473312},"targetPosition":{"x":11196.606921427689,"y":16063.019328539714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"767e0eba-ad98-49a9-a08d-58b5ebfaf655","savedPayload":{"position":{"x":11196.606921427689,"y":16063.019328539714},"targetPosition":{"x":11497.749684162873,"y":16015.323000606117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"9bed0cf3-56c3-4508-88c8-5dede6e574df","savedPayload":{"position":{"x":11341.33288140851,"y":16286.244850134151},"targetPosition":{"x":11497.749684162873,"y":16015.323000606117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"84bdd434-48af-4f4a-8f14-62df15022d05"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"1ce29315-82a5-4b62-8e85-be087a037d73","savedPayload":{"position":{"x":11341.02906740415,"y":15743.874929786478},"targetPosition":{"x":11497.749684162873,"y":16015.323000606117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"827e424f-3036-4645-9246-94b4bb0ebaea"}}}],"id":"984a1917-1d81-4142-a50f-269a18a07c9d","savedPayload":{"position":{"x":11497.749684162873,"y":16015.323000606117},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Polygon","name":"Bandwidth","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 2,\n \"lineDash\": [2,2],\n \"paletteColor\": \"UI_COLOR.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREY\"\n }\n}","id":"ccb32f55-1b5e-4813-b614-0581593434a7","savedPayload":{"position":{"x":11140.536525131942,"y":15767.960682602057},"targetPosition":{"x":11412.201336065602,"y":15906.380817504849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"57a26967-b019-4352-9d9d-cc10668837c4","savedPayload":{"position":{"x":11412.201336065602,"y":15906.380817504849},"targetPosition":{"x":11683.866146999262,"y":16044.80095240764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"0d8a9c6b-b0e6-4ce1-b1ad-71bd2a506a55","savedPayload":{"position":{"x":11548.140834937649,"y":16279.884088771498},"targetPosition":{"x":11683.866146999262,"y":16044.80095240764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Being Previous Bandwidth","id":"943da81e-c0ca-4213-ba8a-5dbafd3ead18"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"38f87d68-5678-46bd-9e26-45b8a8ee75f1","savedPayload":{"position":{"x":11540.089145078058,"y":15795.771880120188},"targetPosition":{"x":11683.866146999262,"y":16044.80095240764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End Bandwidth","id":"cdf38478-d5d4-410e-98fd-14b7b74bfd8b"}}}],"id":"0f7a4004-177c-4412-b0ef-2608f3c13da6","savedPayload":{"position":{"x":11683.866146999262,"y":16044.80095240764},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Polygon","name":"Value","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GOLDEN_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.85,\n \"lineWidth\": 2.25,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"6e43dca6-e750-49ff-b025-2a76185e5914","savedPayload":{"position":{"x":11540.270553224545,"y":15634.716006571187},"targetPosition":{"x":11678.690688127339,"y":15906.380817504847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"56c0efd0-d13a-4c29-98f2-d27cb6071099","savedPayload":{"position":{"x":11678.690688127339,"y":15906.380817504847},"targetPosition":{"x":11817.11082303013,"y":16178.045628438507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"68e8f2a3-54ee-4fb7-abd2-add6496c08e0","savedPayload":{"position":{"x":11661.445643486399,"y":16447.66562837758},"targetPosition":{"x":11817.11082303013,"y":16178.045628438507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Previous Value","id":"534c2cd4-d020-43cf-9284-433a57fdcfce"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a01aa765-6bd5-49d7-afbe-44d543191f76","savedPayload":{"position":{"x":11658.588286535973,"y":15903.476541085933},"targetPosition":{"x":11817.11082303013,"y":16178.045628438507},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End Value","id":"5b05abcc-76cf-4f9d-82e5-671ab7471678"}}}],"id":"4598a671-83b9-4460-9e65-175df73eba71","savedPayload":{"position":{"x":11817.11082303013,"y":16178.045628438507},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Polygon","name":"Moving Average","polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.55,\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":"544bf8f4-dfd5-4cd7-aba3-a47f6b477da8","savedPayload":{"position":{"x":11657.335984037549,"y":15871.141715514392},"targetPosition":{"x":11894.28510276525,"y":16063.019328539713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.previous.movingAverage > record.movingAverage","style":{"type":"Style","name":"New Style","code":"{\n \"opacity\": 0.55,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","id":"c89114e1-7181-4091-8c2d-0301a8b00478","savedPayload":{"position":{"x":12463.575996087846,"y":15844.489029119983},"targetPosition":{"x":12178.930549426548,"y":15953.754178829848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"12891c27-2ec5-4a56-892e-1d29a277d5da","savedPayload":{"position":{"x":12178.930549426548,"y":15953.754178829848},"targetPosition":{"x":11894.28510276525,"y":16063.019328539713},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"c9847967-ecf5-4f6a-9fe7-2759ca4795b6","savedPayload":{"position":{"x":11894.28510276525,"y":16063.019328539713},"targetPosition":{"x":11846.588774831655,"y":16364.162091274897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"a"}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"81660820-6035-481b-a909-9e89e145d61f","savedPayload":{"position":{"x":11692.908236378724,"y":16630.344592009915},"targetPosition":{"x":11846.588774831655,"y":16364.162091274897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin Previous MA","id":"0993c95f-2054-48d8-9977-2d4eb24dabf7"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2d18f4cf-e5d4-4bde-9a69-85b87c410125","savedPayload":{"position":{"x":11687.42767611524,"y":16088.486981709582},"targetPosition":{"x":11846.588774831655,"y":16364.162091274897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"End MA","id":"35bdf97d-abf8-4f1e-922c-d853e6980b0c"}}}],"id":"69c19382-ed5b-48d1-9249-426a8e1e4e51","savedPayload":{"position":{"x":11846.588774831655,"y":16364.162091274897},"targetPosition":{"x":11545.44601209647,"y":16316.4657633413},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"da344cd9-3c37-449a-b5be-6c65814f8562","savedPayload":{"position":{"x":11545.44601209647,"y":16316.4657633413},"targetPosition":{"x":12407.823670648124,"y":17178.843421892954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"%B Panel","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"%B Value","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","id":"c6ca5acc-cc3d-4802-8627-d3461747e731","savedPayload":{"position":{"x":12650.84025431045,"y":15664.281161507663},"targetPosition":{"x":11837.782800569581,"y":15664.281161507663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d34065b9-ce7c-4971-8270-d0819da6b188","savedPayload":{"position":{"x":11837.782800569581,"y":15664.281161507663},"targetPosition":{"x":12197.388916857426,"y":16393.490229067822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Panel Data","name":"Bandwidth","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.bandwidth","id":"5193f538-5133-4561-a9e4-939cfa4d9af9","savedPayload":{"position":{"x":11776.51940927603,"y":14822.783843417554},"targetPosition":{"x":11986.954163066728,"y":15608.137036242688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ba215bbb-99c2-4433-83f8-47f2b00ee378","savedPayload":{"position":{"x":11986.954163066728,"y":15608.137036242688},"targetPosition":{"x":12197.388916857426,"y":16393.490229067822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Panel Data","name":"Moving Average","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.movingAverage","id":"d721b3b0-ffe7-459f-b146-954073605f0e","savedPayload":{"position":{"x":12091.035913420337,"y":14770.856958425855},"targetPosition":{"x":12144.212415138882,"y":15582.173593746838},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8705ee2c-1bd8-4e90-b841-d2864f83f14b","savedPayload":{"position":{"x":12144.212415138882,"y":15582.173593746838},"targetPosition":{"x":12197.388916857426,"y":16393.490229067822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}],"id":"36548f31-d96c-4c80-b923-dea5dd5b56c7","savedPayload":{"position":{"x":12197.388916857426,"y":16393.490229067822},"targetPosition":{"x":12407.823670648124,"y":17178.843421892954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"06b2f3f6-b138-415f-8974-31c22a930f92","savedPayload":{"position":{"x":12407.823670648124,"y":17178.843421892954},"targetPosition":{"x":12814.352397518558,"y":17882.971831568837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Bollinger Bands","code":"{\n\"codeName\": \"BollingerBands\",\n\"isLegacy\": true,\n\"icon\": \"band\"\n}","panels":[{"type":"Plotter Panel","name":"New Plotter Panel","code":"{ \n\"codeName\": \"BollingerBandsPanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"de7b7008-6f66-4d7d-96dd-1aa7b1ede335","savedPayload":{"position":{"x":13627.409851259426,"y":16474.71501221707},"targetPosition":{"x":13220.881124388992,"y":17178.843421892954},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"a11bfdf8-595c-4b50-b259-6a9f777d0ea8","savedPayload":{"position":{"x":13220.881124388992,"y":17178.843421892954},"targetPosition":{"x":12814.352397518558,"y":17882.971831568837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"abd0f050-2f42-4c50-81a9-ffb0d6442cef","savedPayload":{"position":{"x":13173.71065776236,"y":17590.49727507029},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"Plotters-Bollinger-Channels-Objects","code":"{\n\"codeName\" : \"Plotter Bollinger Channels\"\n}","modules":[{"type":"Plotter Module","name":"Bollinger Channels Objects","code":"{\n\"codeName\": \"Bollinger-Channels-Objects\",\n \"icon\": \"trend\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"New Point","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMovingAverage - record.firstDeviation","id":"8117b381-e9c7-41e3-8a51-ed49a1ca6868","savedPayload":{"position":{"x":12457.972863967749,"y":15261.27564789875},"targetPosition":{"x":12727.172981843396,"y":15544.452860672109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9be61e7d-ae1e-4b39-9ebf-27285a5a67a9","savedPayload":{"position":{"x":12727.172981843396,"y":15544.452860672109},"targetPosition":{"x":13017.421703815146,"y":15808.016666192396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"New Point","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMovingAverage - record.lastDeviation","id":"69cb3498-4e18-458a-b48e-e65c98b183be","savedPayload":{"position":{"x":12575.440768470678,"y":15158.021497595088},"targetPosition":{"x":12796.931188340963,"y":15479.964556926985},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f87b3204-8901-4774-afcb-b4e5394e255d","savedPayload":{"position":{"x":12796.931188340963,"y":15479.964556926985},"targetPosition":{"x":13017.421703815146,"y":15808.016666192396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"New Point","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.lastMovingAverage + record.lastDeviation","id":"4c7b46d8-f76b-4039-af87-345c3f72a0a4","savedPayload":{"position":{"x":12686.695573223435,"y":15094.909516015721},"targetPosition":{"x":12854.85221271971,"y":15447.650426555241},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5ce82101-6f77-4f54-bef5-d97edae6d44b","savedPayload":{"position":{"x":12854.85221271971,"y":15447.650426555241},"targetPosition":{"x":13017.421703815146,"y":15808.016666192396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Point","name":"New Point","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.firstMovingAverage + record.lastDeviation","id":"89e5dbc2-33ed-42b9-9b9b-376097e04aff","savedPayload":{"position":{"x":12811.977816719394,"y":15052.618360471406},"targetPosition":{"x":12922.578628328329,"y":15427.358450593125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"45dbe6c3-9433-4b6d-8aa5-691cf6eba8a1","savedPayload":{"position":{"x":12922.578628328329,"y":15427.358450593125},"targetPosition":{"x":13017.421703815146,"y":15808.016666192396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"703b0e1b-e2d6-457a-95d6-7b6516b2f772","savedPayload":{"position":{"x":13017.421703815146,"y":15808.016666192396},"targetPosition":{"x":13407.260049177843,"y":16483.22986475496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"New Polygon","polygonBody":{"type":"Polygon Body","name":"New Polygon Body","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.2\n },\n \"atMousePosition\": {\n \"opacity\": 0.2,\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\"\n }\n}","id":"09105647-a665-4fb4-910d-49bcf90eb91e","savedPayload":{"position":{"x":13537.827714470908,"y":14282.805215930734},"targetPosition":{"x":13768.423043473807,"y":15027.929968054807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.LIGHT\"\n}","id":"ad17706f-09f0-4424-b5f3-b66fb2c76160","savedPayload":{"position":{"x":13506.814517281126,"y":13490.39903036099},"targetPosition":{"x":13637.474948403811,"y":14259.150257229598},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3975ecc2-db5b-4cab-a9ab-9e13b2da3015","savedPayload":{"position":{"x":13637.522520531675,"y":14258.931062778836},"targetPosition":{"x":13768.423043473807,"y":15027.929968054807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR. GREEN\"\n}","id":"0b263642-8fc7-4fdc-a915-9480c8493e68","savedPayload":{"position":{"x":13710.0900654942,"y":13469.34618532462},"targetPosition":{"x":13739.148854642273,"y":14248.630625236017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e218ed70-9da7-43c5-9c23-9e010e08b5b5","savedPayload":{"position":{"x":13739.20208449045,"y":14248.379987562608},"targetPosition":{"x":13768.423043473807,"y":15027.929968054807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","id":"ce3abe3f-eb38-4e0f-94bb-9c397ed78f49","savedPayload":{"position":{"x":13913.633989392189,"y":13474.980270361972},"targetPosition":{"x":13840.938300569023,"y":14251.42292509724},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"251d5031-13f9-493b-aa35-126f5221bb21","savedPayload":{"position":{"x":13841.039091999231,"y":14251.21568859101},"targetPosition":{"x":13768.423043473807,"y":15027.929968054807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Style Condition","name":"New Style Condition","code":"atMousePosition === true","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.TITANIUM_YELLOW\",\n \"opacity\": 0.1\n}","id":"2ea26fbc-74c5-4fb5-b64f-c4c7b289003c","savedPayload":{"position":{"x":14113.342306675744,"y":13507.68892298906},"targetPosition":{"x":13939.788869258993,"y":14267.943813072287},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"8a0f9c00-67be-47fa-9cde-ec6c499c9bec","savedPayload":{"position":{"x":13941.960332926372,"y":14267.537818592076},"targetPosition":{"x":13768.423043473807,"y":15027.929968054807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}],"id":"f2d2ac14-9859-4228-81d9-280c639c1b37","savedPayload":{"position":{"x":13768.348638756508,"y":15027.468846584497},"targetPosition":{"x":13797.744673935174,"y":15806.81003625495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonBorder":{"type":"Polygon Border","name":"New Polygon Border","style":{"type":"Style","name":"New Style","code":"{\n \"default\": {\n \"opacity\": 0.25,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n },\n \"atMousePosition\": {\n \"opacity\": 0.35,\n \"lineWidth\": 1,\n \"lineDash\": [0,0]\n }\n}","id":"d85d9603-7ff2-4d45-aa58-9b8ebe23a65f","savedPayload":{"position":{"x":13894.784038903997,"y":14651.951937289945},"targetPosition":{"x":13942.771310110462,"y":15041.042348278603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Side'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.DARK\"\n}","id":"d09de0b4-f477-42e9-a944-6bde9a9a68dd","savedPayload":{"position":{"x":14034.474129007482,"y":14259.772845474186},"targetPosition":{"x":13989.70309976523,"y":14648.480598645128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"08167019-4685-45ca-8572-74706f2fb971","savedPayload":{"position":{"x":13989.732714786122,"y":14648.468627578794},"targetPosition":{"x":13942.771310110462,"y":15041.042348278603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Up'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.PATINATED_TURQUOISE\"\n}","id":"ebab2c53-c230-4622-a5d1-a3e0bd1d4139","savedPayload":{"position":{"x":14157.475634978478,"y":14284.780720499817},"targetPosition":{"x":14054.674007549558,"y":14661.824271166428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5b721945-b84b-4e19-a7db-777bc1c1fee1","savedPayload":{"position":{"x":14054.710545407137,"y":14661.823860440974},"targetPosition":{"x":13942.771310110462,"y":15041.042348278603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Style Condition","name":"New Style Condition","code":"record.direction === 'Down'","style":{"type":"Style","name":"New Style","code":"{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n}","id":"8bef9d11-9184-420e-a841-97a19f6a160b","savedPayload":{"position":{"x":14279.929211202916,"y":14334.446704088044},"targetPosition":{"x":14119.215155637217,"y":14690.601678953604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a530140d-d0bb-4989-8ca8-d9846adbc91d","savedPayload":{"position":{"x":14119.273730661462,"y":14690.615541774778},"targetPosition":{"x":13942.771310110462,"y":15041.042348278603},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"add24099-1310-4e86-99fc-9db01a272b6e","savedPayload":{"position":{"x":13942.714038505539,"y":15040.610317343837},"targetPosition":{"x":13797.744673935174,"y":15806.81003625495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"7be4c16d-772a-4750-9735-09d3d9e16037","savedPayload":{"position":{"x":14109.89261697098,"y":15092.159019376184},"targetPosition":{"x":13797.744673935174,"y":15806.81003625495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"9be61e7d-ae1e-4b39-9ebf-27285a5a67a9"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"1a592de1-eb28-41eb-8ddb-b22e5034be53","savedPayload":{"position":{"x":14261.145192019863,"y":15179.44700728762},"targetPosition":{"x":13797.744673935174,"y":15806.81003625495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"f87b3204-8901-4774-afcb-b4e5394e255d"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e90a30b1-cd5d-4331-bf74-7cfd4242db34","savedPayload":{"position":{"x":14389.126110764539,"y":15298.234838859564},"targetPosition":{"x":13797.744673935174,"y":15806.81003625495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"5ce82101-6f77-4f54-bef5-d97edae6d44b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"ae4311e5-a02d-46d7-a41c-79e6945f9f21","savedPayload":{"position":{"x":14487.523607967976,"y":15442.670637543595},"targetPosition":{"x":13797.744673935174,"y":15806.81003625495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"New Point","id":"45dbe6c3-9433-4b6d-8aa5-691cf6eba8a1"}}}],"id":"6e21446c-93e7-44ad-814d-3cd2fa8f8baf","savedPayload":{"position":{"x":13797.744673935174,"y":15806.81003625495},"targetPosition":{"x":13407.260049177843,"y":16483.22986475496},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"0b08f6f6-2317-42fb-ab3a-db8957d76dfa","savedPayload":{"position":{"x":13407.260049177843,"y":16483.22986475496},"targetPosition":{"x":13407.264128420697,"y":17263.100324372583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":"o"}}},"panels":[{"type":"Plotter Panel","name":"Channel Panel","code":"{ \n\"codeName\": \"\"\n}","javascriptCode":{"type":"Javascript Code","code":"printLabel('Direction', X_AXIS, PANEL_HEIGHT * 0.10, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction);\nprintLabel(currentRecord.data.direction, X_AXIS, PANEL_HEIGHT * 0.15, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction);\n\nprintLabel('Periods', X_AXIS, PANEL_HEIGHT * 0.20, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction);\nprintLabel(currentRecord.data.period, X_AXIS, PANEL_HEIGHT * 0.25, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction);\n\nlet fixedValue = ''\n\nfixedValue = currentRecord.data.firstMovingAverage\nif (fixedValue !== undefined) { fixedValue = fixedValue.toFixed(2) } else { fixedValue = '' }\n\nprintLabel('Initial Moving Average', X_AXIS, PANEL_HEIGHT * 0.30, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction);\nprintLabel(fixedValue, X_AXIS, PANEL_HEIGHT * 0.35, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction);\n\nfixedValue = currentRecord.data.lastMovingAverage\nif (fixedValue !== undefined) { fixedValue = fixedValue.toFixed(2) } else { fixedValue = '' }\n\nprintLabel('Final Moving Average', X_AXIS, PANEL_HEIGHT * 0.40, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction);\nprintLabel(fixedValue, X_AXIS, PANEL_HEIGHT * 0.45, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction);","id":"ab8e6fc4-e617-4f43-bd23-9887616a3bf2","savedPayload":{"position":{"x":13806.89442900798,"y":16570.881176016486},"targetPosition":{"x":13611.59317964498,"y":16909.069259923755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"09c8f781-3e54-4bed-bd9a-83e8179fdd66","savedPayload":{"position":{"x":13611.59317964498,"y":16909.069259923755},"targetPosition":{"x":13407.264128420697,"y":17263.100324372583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}}],"id":"52881346-3e4b-45e0-92d2-af130d381b8e","savedPayload":{"position":{"x":13407.404580672826,"y":17262.923636277297},"targetPosition":{"x":13205.201066536558,"y":18018.2373160929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Bollinger Sub Channels Objects","code":"{\n\"codeName\": \"Bollinger-Sub-Channels-Objects\",\n\"icon\": \"trend\"\n}","javascriptCode":{"type":"Javascript Code","code":"/* Definition of the points we are going to use while drawing */\nlet point1\nlet point2\nlet point3\nlet point4\n\npoint1 = {\n x: record.begin,\n y: record.firstMovingAverage - record.firstDeviation\n}\n\npoint2 = {\n x: record.end,\n y: record.lastMovingAverage - record.lastDeviation\n}\n\npoint3 = {\n x: record.end,\n y: record.lastMovingAverage + record.lastDeviation\n}\n\npoint4 = {\n x: record.begin,\n y: record.firstMovingAverage + record.firstDeviation\n}\n\n/* Contributing to Auto-Scale*/\ncoordinateSystem.reportYValue(record.firstMovingAverage - record.firstDeviation)\ncoordinateSystem.reportYValue(record.lastMovingAverage - record.lastDeviation)\ncoordinateSystem.reportYValue(record.lastMovingAverage + record.lastDeviation)\ncoordinateSystem.reportYValue(record.firstMovingAverage + record.firstDeviation)\n\n/*\nThe information we store in files is independent from the charing system and its coordinate systems.\nThat means that the first thing we allways need to do is to trasform these points to the coordinate system of the timeline.\n*/\npoint1 = coordinateSystem.transformThisPoint(point1)\npoint2 = coordinateSystem.transformThisPoint(point2)\npoint3 = coordinateSystem.transformThisPoint(point3)\npoint4 = coordinateSystem.transformThisPoint(point4)\n\n/*\nThe browser canvas object does not care about our timeline and its coordinate system. In order to draw on a html canvas we\nneed the points to be converted into the canvas coordinate system.\nNext we transform again to the screen coordinate system.\n*/\npoint1 = transformThisPoint(point1, thisObject.container)\npoint2 = transformThisPoint(point2, thisObject.container)\npoint3 = transformThisPoint(point3, thisObject.container)\npoint4 = transformThisPoint(point4, thisObject.container)\n\n/* We make sure the points do not fall outside the canvas.chartingSpace.viewport visible area. This step allways need to be done. */\npoint1 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point1)\npoint2 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point2)\npoint3 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point3)\npoint4 = canvas.chartingSpace.viewport.fitIntoVisibleArea(point4)\n\npoint1 = thisObject.fitFunction(point1);\npoint2 = thisObject.fitFunction(point2);\npoint3 = thisObject.fitFunction(point3);\npoint4 = thisObject.fitFunction(point4);\n\n/*\nNow that we have our 4 points as coordinates of the actual screen (or html canvas object), we can actaully start drawing.\nFirst we are going to draw the shape backgound.\n*/\nbrowserCanvasContext.beginPath()\n\nbrowserCanvasContext.moveTo(point1.x, point1.y)\nbrowserCanvasContext.lineTo(point2.x, point2.y)\nbrowserCanvasContext.lineTo(point3.x, point3.y)\nbrowserCanvasContext.lineTo(point4.x, point4.y)\n\nbrowserCanvasContext.closePath()\n\nlet opacity = '0.25' // The backgound will be quite transparent. Possible values goes from 0..1\n\n/* Depending on the direction of the channel, we use a different color for the border lines. */\nif (record.direction === 'Side') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.DARK + ', ' + opacity + ')' }\nif (record.direction === 'Up') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.PATINATED_TURQUOISE + ', ' + opacity + ')' }\nif (record.direction === 'Down') { browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.RED + ', ' + opacity + ')' }\n\nswitch (record.slope) {\n case 'Side': {\n opacity = '0.1';\n break;\n }\n case 'Gentle': {\n opacity = '0.1';\n break;\n }\n case 'Medium': {\n opacity = '0.15';\n break;\n }\n case 'Steep': {\n opacity = '0.2';\n break;\n }\n case 'Extreme': {\n opacity = '0.25';\n break;\n }\n}\n\n/* Depending on the direction of the channel, we use a different color for the background. */\nif (record.direction === 'Side' || record.slope === 'Side') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.LIGHT + ', ' + opacity + ')'; }\nif (record.direction === 'Up') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.GREEN + ', ' + opacity + ')' }\nif (record.direction === 'Down') { browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.RUSTED_RED + ', ' + opacity + ')' }\n\n/* If the mouse is positioned in betwheen the begining and ending of our object, we can opt for changing the color of that specific object. */\nif (atMousePosition) {\n browserCanvasContext.fillStyle = 'rgba(' + UI_COLOR.TITANIUM_YELLOW + ', 0.1)'\n}\n\nbrowserCanvasContext.fill() // This is what actually apply the previous instructions on the html canvas object of the browser.\n\n/* Second we are going to draw the shape borders. */\nbrowserCanvasContext.beginPath()\n\nbrowserCanvasContext.moveTo(point1.x, point1.y)\nbrowserCanvasContext.lineTo(point2.x, point2.y)\nbrowserCanvasContext.lineTo(point3.x, point3.y)\nbrowserCanvasContext.lineTo(point4.x, point4.y)\n\nbrowserCanvasContext.closePath()\n\nbrowserCanvasContext.lineWidth = 1 // We use 1 as standard line width\nbrowserCanvasContext.setLineDash([0, 0]) // We do not want dashed lines in this case.\nbrowserCanvasContext.stroke() // This actually draw the borders of our shape.","id":"63406674-a797-430a-96c7-e5bcacb286bc","savedPayload":{"position":{"x":14147.978915816328,"y":16789.90260683041},"targetPosition":{"x":13758.065100028565,"y":17465.43821202418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"Sub-Channel Panel","code":"{ \n\"codeName\": \"\"\n}","javascriptCode":{"type":"Javascript Code","code":"printLabel('Direction', X_AXIS, PANEL_HEIGHT * 0.10, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction);\nprintLabel(currentRecord.data.direction, X_AXIS, PANEL_HEIGHT * 0.15, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction);\n\nprintLabel('Periods', X_AXIS, PANEL_HEIGHT * 0.20, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction);\nprintLabel(currentRecord.data.period, X_AXIS, PANEL_HEIGHT * 0.25, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction);\n\nlet fixedValue = '';\n\nfixedValue = currentRecord.data.firstMovingAverage;\nif (fixedValue !== undefined) { fixedValue = fixedValue.toFixed(2); } else { fixedValue = ''; }\n\nprintLabel('Initial Moving Average', X_AXIS, PANEL_HEIGHT * 0.30, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction);\nprintLabel(fixedValue, X_AXIS, PANEL_HEIGHT * 0.35, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction);\n\nfixedValue = currentRecord.data.lastMovingAverage;\nif (fixedValue !== undefined) { fixedValue = fixedValue.toFixed(2); } else { fixedValue = ''; }\n\nprintLabel('Final Moving Average', X_AXIS, PANEL_HEIGHT * 0.40, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction);\nprintLabel(fixedValue, X_AXIS, PANEL_HEIGHT * 0.45, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction);\n\nprintLabel('Slope', X_AXIS, PANEL_HEIGHT * 0.50, '0.60', undefined, undefined, true, thisObject.container, thisObject.fitFunction);\nprintLabel(currentRecord.data.slope, X_AXIS, PANEL_HEIGHT * 0.55, '1.00', 14, undefined, true, thisObject.container, thisObject.fitFunction);","id":"60b78d10-ba3e-4530-b6d6-22dd3bafbdc0","savedPayload":{"position":{"x":15109.019268159374,"y":16685.568994145087},"targetPosition":{"x":14433.583767420794,"y":17075.486968487035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0ce6611c-1e9a-4fb6-8a5f-809c8b65f89a","savedPayload":{"position":{"x":14433.583767420794,"y":17075.486968487035},"targetPosition":{"x":13758.065100028565,"y":17465.43821202418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"f8c4b699-1f40-4832-b427-68da3341daa8","savedPayload":{"position":{"x":13758.121510424298,"y":17465.407975624767},"targetPosition":{"x":13205.201066536558,"y":18018.2373160929},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":"x"}}}],"id":"343f37be-cc77-4513-a296-7925edfcf0c4","savedPayload":{"position":{"x":13773.60679766261,"y":17999.15093710383},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"35be7b1c-a0f7-4b5f-9ee1-8fb51595e959","savedPayload":{"position":{"x":12814.422748313864,"y":18696.02928226611},"targetPosition":{"x":12814.422748313864,"y":18696.02928226611},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"m"}}},{"type":"Data Mine","name":"Sparta","code":"{\n\"codeName\": \"Sparta\"\n}","sensorBots":[],"indicatorBots":[{"type":"Indicator Bot","name":"SMA","code":"{\n\"codeName\": \"SMA\",\n\"repo\": \"SMA-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates SMAs 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":"New Output Dataset","id":"5302effb-1f09-4a30-9f71-6956b8b9ca88","savedPayload":{"position":{"x":25297.30857961789,"y":17583.505329673684},"targetPosition":{"x":25605.09743747851,"y":17729.928175159937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"8221593c-6298-4b4c-bfc2-cffbc9e5cd0f","savedPayload":{"position":{"x":25376.99782561461,"y":17476.623407449366},"targetPosition":{"x":25605.09743747851,"y":17729.928175159937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"aabd0857-b4fc-404a-8967-967475ed3993","savedPayload":{"position":{"x":25491.617192209273,"y":17408.584568823306},"targetPosition":{"x":25605.09743747851,"y":17729.928175159937},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}}],"id":"85a56739-9351-444b-95e9-a57470dca38a","savedPayload":{"position":{"x":25605.09743747851,"y":17729.928175159937},"targetPosition":{"x":25888.836821662266,"y":18045.244952584046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"SMA Multi-Period-Market","code":"{\"mainUtility\": \"Self Reference\"}","id":"d49d1e94-1960-4121-8e40-be8af52947ee","savedPayload":{"position":{"x":25554.48098393824,"y":17098.406292781012},"targetPosition":{"x":25747.690078474054,"y":17379.22303830028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"81346f2f-13f2-46f4-85f5-a04b4d80f455"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"f7cf0949-06fc-4c98-a399-61fac1671c6e","savedPayload":{"position":{"x":25676.98506827298,"y":17045.718401337454},"targetPosition":{"x":25747.690078474054,"y":17379.22303830028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"4228fdf3-e992-46b2-a91e-de95108a753d","savedPayload":{"position":{"x":25810.150164336657,"y":17044.105590241612},"targetPosition":{"x":25747.690078474054,"y":17379.22303830028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"f404e748-b631-4cc5-975c-2a0736e55c0d","savedPayload":{"position":{"x":25747.690078474054,"y":17379.22303830028},"targetPosition":{"x":25888.836821662266,"y":18045.244952584046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"81346f2f-13f2-46f4-85f5-a04b4d80f455","savedPayload":{"position":{"x":26022.366148961723,"y":17634.341834150866},"targetPosition":{"x":25888.836821662266,"y":18045.244952584046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes","id":"2bce272e-2712-4f28-9736-03b51929aba2","savedPayload":{"position":{"x":26210.042172209458,"y":17756.12217566332},"targetPosition":{"x":25888.836821662266,"y":18045.244952584046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"b569db86-9ab5-4ba2-be41-357a9bce84b4","savedPayload":{"position":{"x":26311.502132395446,"y":17955.105435678433},"targetPosition":{"x":25888.836821662266,"y":18045.244952584046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297","savedPayload":{"position":{"x":25888.74917042911,"y":18044.80795927026},"targetPosition":{"x":25678.80307912173,"y":18693.14800123772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Describe what the process does.\",\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":"New Output Dataset","id":"417d3141-1e22-4ee6-b2d6-531a55b95c88","savedPayload":{"position":{"x":25715.240047047013,"y":18067.26328253804},"targetPosition":{"x":25953.70478347516,"y":17828.79854610989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"022edfeb-ec62-4cd9-85bf-20e9f444e3c1","savedPayload":{"position":{"x":25614.9144837628,"y":17919.577133321316},"targetPosition":{"x":25953.70478347516,"y":17828.79854610989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"42e89cd9-acbe-49cd-b6f6-7671317796d6","savedPayload":{"position":{"x":25621.914579895754,"y":17739.89562900423},"targetPosition":{"x":25953.70478347516,"y":17828.79854610989},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}}],"id":"ad03dff7-56b2-4980-bc14-1b6c41fdf6cf","savedPayload":{"position":{"x":25953.70478347516,"y":17828.79854610989},"targetPosition":{"x":26094.182917883903,"y":18144.317601921382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"d674a833-b9c8-4bdb-84de-e007ab243860","savedPayload":{"position":{"x":25914.5922069681,"y":17709.138932669837},"targetPosition":{"x":26166.386707546964,"y":17457.344432090973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"d2727d60-b26b-4e8b-a635-fbe78bc81240"}}},{"type":"Status Dependency","name":"Ending: Candles Volumes","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"ba857809-2273-4280-aa19-4b50837abccb","savedPayload":{"position":{"x":25853.987225373217,"y":17586.74453448567},"targetPosition":{"x":26166.386707546964,"y":17457.344432090973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Starting: Exchange Raw Data","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"40e12ba8-59dc-4eaf-a30d-07bb8192e0a6","savedPayload":{"position":{"x":25827.125287739902,"y":17457.344432090973},"targetPosition":{"x":26166.386707546964,"y":17457.344432090973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Volumes Candles","id":"5f5e40cb-841e-4b18-a249-a04d541d31a0","savedPayload":{"position":{"x":25838.406710722295,"y":17321.49066921911},"targetPosition":{"x":26166.386707546964,"y":17457.344432090973},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"b6aae3c7-2d70-4ffd-a5e5-951f0a565b13","savedPayload":{"position":{"x":26166.386707546964,"y":17457.344432090973},"targetPosition":{"x":26094.182917883903,"y":18144.317601921382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"d2727d60-b26b-4e8b-a635-fbe78bc81240","savedPayload":{"position":{"x":26297.191368390366,"y":17864.90044094142},"targetPosition":{"x":26094.182917883903,"y":18144.317601921382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes","id":"8b753072-e4c9-4671-a5ce-eea9e1c1ba0f","savedPayload":{"position":{"x":25760.587059829155,"y":18035.925737057678},"targetPosition":{"x":26094.182917883903,"y":18144.317601921382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"87c9e783-adc5-40e3-b1fb-fdb2994c1217","savedPayload":{"position":{"x":26437.669502799108,"y":18180.419496752915},"targetPosition":{"x":26094.182917883903,"y":18144.317601921382},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f","savedPayload":{"position":{"x":26079.740353051806,"y":18142.11816931443},"targetPosition":{"x":25678.80307912173,"y":18693.14800123772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Popular SMAs","code":"{\n \"codeName\": \"Popular-SMAs\",\n \"singularVariableName\": \"popularSMA\",\n \"pluralVariableName\": \"popularSMAs\"\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/Sparta/SMA/Output/Popular-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c","savedPayload":{"position":{"x":26229.88586985282,"y":17931.76336868438},"targetPosition":{"x":26229.785221501574,"y":18293.432392097788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/SMA/Output/Popular-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/SMA/Output/Popular-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"2c338fe0-385f-45ab-b210-b98ef013228d","savedPayload":{"position":{"x":26442.67880091875,"y":18000.75331545668},"targetPosition":{"x":26229.785221501574,"y":18293.432392097788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"673a7fbf-1a73-4220-a561-84cf8b11c3a7","savedPayload":{"position":{"x":26774.958865202127,"y":17695.78979684052},"targetPosition":{"x":26988.015289353152,"y":17836.88906217859},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"305fc918-e6df-48d7-a7b5-726e3fa8f958","savedPayload":{"position":{"x":26988.015289353152,"y":17836.88906217859},"targetPosition":{"x":27201.23100970224,"y":17977.817893944633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"002ffd5e-583c-4af5-87eb-a886fd3bc50e","savedPayload":{"position":{"x":27155.964604923447,"y":17468.030306647117},"targetPosition":{"x":27178.608148483527,"y":17722.88488110957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a305a94d-3af9-430a-8642-5ffb1229710f","savedPayload":{"position":{"x":27178.608148483527,"y":17722.88488110957},"targetPosition":{"x":27201.23100970224,"y":17977.817893944633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA20","code":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma20","id":"5adb676d-35a8-47b2-aa47-dc0e6edf8a81","savedPayload":{"position":{"x":27571.240168869426,"y":17624.172400249714},"targetPosition":{"x":27386.29241484005,"y":17800.95212787294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1657736e-6bc4-4279-9e65-5b0b0cf737cb","savedPayload":{"position":{"x":27386.29241484005,"y":17800.95212787294},"targetPosition":{"x":27201.23100970224,"y":17977.817893944633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA50","code":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma50","id":"85033109-c11c-43d2-84cc-4510dae276ca","savedPayload":{"position":{"x":27708.53497792529,"y":18046.12415176712},"targetPosition":{"x":27454.952211710777,"y":18011.963563696423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e7f1f78d-3a6d-49a2-b522-4423bd8d6a82","savedPayload":{"position":{"x":27454.952211710777,"y":18011.963563696423},"targetPosition":{"x":27201.23100970224,"y":17977.817893944633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA100","code":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma100","id":"43eebecb-65db-4e64-902a-582515e06daa","savedPayload":{"position":{"x":27463.961254879494,"y":18416.838917684672},"targetPosition":{"x":27332.624745893052,"y":18197.339227427623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"090fa9ea-f050-4315-9360-3958ce5debaa","savedPayload":{"position":{"x":27332.624745893052,"y":18197.339227427623},"targetPosition":{"x":27201.23100970224,"y":17977.817893944633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA200","code":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma200","id":"5bdf982c-5480-4f90-9ec2-7708bf2d4943","savedPayload":{"position":{"x":27022.634556102104,"y":18456.49736091272},"targetPosition":{"x":27111.752840436347,"y":18217.060303932212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8146fe70-3592-4f27-af4a-d3d8e93268d1","savedPayload":{"position":{"x":27111.752840436347,"y":18217.060303932212},"targetPosition":{"x":27201.23100970224,"y":17977.817893944633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"1b29d760-f7fe-48a5-928c-212a6f9a2486","savedPayload":{"position":{"x":27201.23100970224,"y":17977.817893944633},"targetPosition":{"x":26229.785221501574,"y":18293.432392097788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma20 = calculateSMA(20)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma200 = calculateSMA(200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"a9904080-6677-45e0-bcac-f336e882380a","savedPayload":{"position":{"x":26915.50111067511,"y":18337.50000414156},"targetPosition":{"x":26749.179985453113,"y":18372.618984261215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"f"}}},"id":"52a2ea69-6420-40f6-90f0-3330d33e6f67","savedPayload":{"position":{"x":26749.179985453113,"y":18372.618984261215},"targetPosition":{"x":26582.566645198316,"y":18407.91079410829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"2790fd06-6fe8-4175-bbfc-854d9909aeb4","savedPayload":{"position":{"x":26810.774672519132,"y":18661.523526900306},"targetPosition":{"x":26696.639221906302,"y":18534.595298325075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6d5772df-819e-4968-9e27-61981c08f0e2","savedPayload":{"position":{"x":26696.639221906302,"y":18534.595298325075},"targetPosition":{"x":26582.566645198316,"y":18407.91079410829},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"f1f881ff-a04f-4663-9747-2042d4581953","savedPayload":{"position":{"x":26582.566645198316,"y":18407.91079410829},"targetPosition":{"x":26229.785221501574,"y":18293.432392097788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34","savedPayload":{"position":{"x":26230.08724850098,"y":18293.253399088855},"targetPosition":{"x":25678.80307912173,"y":18693.14800123772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"SMA Popular","id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa"}}},{"type":"Product Definition","name":"Base7 SMAs","code":"{\n \"codeName\": \"Base7-SMAs\",\n \"singularVariableName\": \"base7SMA\",\n \"pluralVariableName\": \"base7SMAs\"\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/Sparta/SMA/Output/Base7-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59","savedPayload":{"position":{"x":26437.570948132136,"y":18139.00800917211},"targetPosition":{"x":26326.091020672564,"y":18483.008592608716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/SMA/Output/Base7-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/SMA/Output/Base7-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d","savedPayload":{"position":{"x":26618.640761989995,"y":18270.364075293728},"targetPosition":{"x":26326.091020672564,"y":18483.008592608716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"6d7e37c5-d80e-44a3-8484-f532bcfc7819","savedPayload":{"position":{"x":26879.665751476776,"y":18274.999275451784},"targetPosition":{"x":27113.15382003378,"y":18379.266056090695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"87203f0b-0fb8-4875-8127-d715198bf01b","savedPayload":{"position":{"x":27113.15382003378,"y":18379.266056090695},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"bf74ad1e-a569-4428-a387-b0f39bb63759","savedPayload":{"position":{"x":27004.87630579383,"y":18101.728733603984},"targetPosition":{"x":27175.96698196033,"y":18292.376799662998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0bc477f0-8b7d-4c75-8613-0cc63a25a79d","savedPayload":{"position":{"x":27175.96698196033,"y":18292.376799662998},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA7","code":"{\n \"codeName\": \"sma7\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma7","id":"1a89def9-4270-4584-93c3-86ca30cb184c","savedPayload":{"position":{"x":27189.57213379364,"y":17994.91914338104},"targetPosition":{"x":27268.43251604105,"y":18238.886310002465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a87dddd8-9806-45be-b9a9-0e3196da48a7","savedPayload":{"position":{"x":27268.43251604105,"y":18238.886310002465},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA14","code":"{\n \"codeName\": \"sma14\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma14","id":"c0b78d39-a652-4d13-9fce-1b56d4e6ffbb","savedPayload":{"position":{"x":27401.242987291174,"y":17972.61164404626},"targetPosition":{"x":27374.342751947694,"y":18227.69947109273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"114a04b9-e5b6-4f60-ad99-760c10275f9e","savedPayload":{"position":{"x":27374.342751947694,"y":18227.69947109273},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA21","code":"{\n \"codeName\": \"sma21\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma21","id":"4740139a-d2d7-4050-a0f6-145eef002bed","savedPayload":{"position":{"x":27604.212884337983,"y":18038.5900940301},"targetPosition":{"x":27475.882819638384,"y":18260.693940656787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ac8182cd-7f7b-44e9-a91c-b470be594ef0","savedPayload":{"position":{"x":27475.882819638384,"y":18260.693940656787},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA28","code":"{\n \"codeName\": \"sma28\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma28","id":"0a2f17a1-2663-477a-8c28-015592a67a7e","savedPayload":{"position":{"x":27762.829412672214,"y":18181.45030249751},"targetPosition":{"x":27555.231158860177,"y":18332.151709029302},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"81c852eb-9b3e-4505-b81a-f236b39d770d","savedPayload":{"position":{"x":27555.231158860177,"y":18332.151709029302},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA35","code":"{\n \"codeName\": \"sma35\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma35","id":"1a30763f-6398-475f-b232-ff0da4ad41fa","savedPayload":{"position":{"x":27849.65572928127,"y":18376.485893567995},"targetPosition":{"x":27598.664611673667,"y":18429.710343799343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a8a4dd40-6286-46b0-8f4d-61893d2d9234","savedPayload":{"position":{"x":27598.664611673667,"y":18429.710343799343},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA70","code":"{\n \"codeName\": \"sma70\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma70","id":"07471d43-2432-4961-81b5-4aa1bb399df4","savedPayload":{"position":{"x":27849.66941995232,"y":18589.457479463785},"targetPosition":{"x":27598.671635780658,"y":18536.246008659917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9dbc330c-e654-4591-92d0-c3e92262436e","savedPayload":{"position":{"x":27598.671635780658,"y":18536.246008659917},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA140","code":"{\n \"codeName\": \"sma140\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma140","id":"0ef6719d-cfa8-458e-a137-6bd2e77aa6fd","savedPayload":{"position":{"x":27762.864034324368,"y":18784.499127217437},"targetPosition":{"x":27555.247512504862,"y":18633.805461538224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"93814c2c-8fff-4415-9934-1356bf555015","savedPayload":{"position":{"x":27555.247512504862,"y":18633.805461538224},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA210","code":"{\n \"codeName\": \"sma210\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma210","id":"037c98d5-1eef-4928-ade0-a70021337aa5","savedPayload":{"position":{"x":27604.26694763745,"y":18927.366413699405},"targetPosition":{"x":27475.909490340622,"y":18705.2628115567},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"efbcaa0c-2bf3-44e6-aae3-4f73c6255c69","savedPayload":{"position":{"x":27475.909490340622,"y":18705.2628115567},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA280","code":"{\n \"codeName\": \"sma280\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma280","id":"2bdc1e1e-b6a3-4e68-90b5-e88e64684804","savedPayload":{"position":{"x":27401.32894528085,"y":18993.351834498826},"targetPosition":{"x":27374.385888561937,"y":18738.25270690633},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6b302071-d15f-43b3-9ab2-4b970a379ebc","savedPayload":{"position":{"x":27374.385888561937,"y":18738.25270690633},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA350","code":"{\n \"codeName\": \"sma350\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma350","id":"18baf5c6-5aa5-4f66-8637-9966fdf4acf4","savedPayload":{"position":{"x":27189.735324052395,"y":18971.045313779177},"targetPosition":{"x":27268.505779883082,"y":18727.052736050522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f1de76b8-1665-4142-b8fc-712203bad655","savedPayload":{"position":{"x":27268.505779883082,"y":18727.052736050522},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA700","code":"{\n \"codeName\": \"sma700\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma700","id":"c8f08ae8-f608-40f1-8df3-e4eb537a89ed","savedPayload":{"position":{"x":27005.22833682058,"y":18864.300452909898},"targetPosition":{"x":27176.10531485492,"y":18673.516654168146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"83b3c070-c0cb-4a4b-86ea-0b6292f57c13","savedPayload":{"position":{"x":27176.10531485492,"y":18673.516654168146},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA1400","code":"{\n \"codeName\": \"sma1400\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1400","id":"ca4c686e-61d0-4dc0-96f9-9ee80d856422","savedPayload":{"position":{"x":26877.57798677501,"y":18689.038217413072},"targetPosition":{"x":27113.301124204227,"y":18586.52473885015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e07922ab-0abb-4216-a534-07db74399c2a","savedPayload":{"position":{"x":27113.301124204227,"y":18586.52473885015},"targetPosition":{"x":27347.404321482118,"y":18482.99174130071},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"f3c4fe44-c417-4c98-9547-4b0c062f7bd7","savedPayload":{"position":{"x":27347.404321482118,"y":18482.99174130071},"targetPosition":{"x":26326.091020672564,"y":18483.008592608716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1400.push(candle.close) // Add the current close value to the last 1400 array.\n\nif (variable.last1400.length > 1400) {\n variable.last1400.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1400 elements.\n}\n\nvariable.sma7 = calculateSMA(7)\nvariable.sma14 = calculateSMA(14)\nvariable.sma21 = calculateSMA(21)\nvariable.sma28 = calculateSMA(28)\nvariable.sma35 = calculateSMA(35)\nvariable.sma70 = calculateSMA(70)\nvariable.sma140 = calculateSMA(140)\nvariable.sma210 = calculateSMA(210)\nvariable.sma280 = calculateSMA(280)\nvariable.sma350 = calculateSMA(350)\nvariable.sma700 = calculateSMA(700)\nvariable.sma1400 = calculateSMA(1400)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1400.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1400.length - periods; i < variable.last1400.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1400[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1400.length=\" + variable.last1400.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1400[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"27796e5a-2553-47c6-bddd-c8deaed05c2f","savedPayload":{"position":{"x":26965.501440434284,"y":18738.493538379964},"targetPosition":{"x":26794.538032067732,"y":18719.04071845257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e5d799ba-3a4f-45fb-8533-4c3de5d7886f","savedPayload":{"position":{"x":26794.538032067732,"y":18719.04071845257},"targetPosition":{"x":26626.059559428737,"y":18701.10221858198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1400 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1400 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"17ee3425-2a07-4523-b005-bac9dbf75184","savedPayload":{"position":{"x":26763.91216955731,"y":19013.24286692588},"targetPosition":{"x":26694.983863517282,"y":18857.072022552227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9e9e5c8c-98e2-4bbf-884a-071449177692","savedPayload":{"position":{"x":26694.983863517282,"y":18857.072022552227},"targetPosition":{"x":26626.059559428737,"y":18701.10221858198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"6bd8fef6-49f7-45c5-9f9f-944785f8578e","savedPayload":{"position":{"x":26626.059559428737,"y":18701.10221858198},"targetPosition":{"x":26326.091020672564,"y":18483.008592608716},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6","savedPayload":{"position":{"x":26326.55599115258,"y":18482.896132284866},"targetPosition":{"x":25678.80307912173,"y":18693.14800123772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"SMA Base 7","id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd"}}},{"type":"Product Definition","name":"Base11 SMAs","code":"{\n \"codeName\": \"Base11-SMAs\",\n \"singularVariableName\": \"base11SMA\",\n \"pluralVariableName\": \"base11SMAs\"\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/Sparta/SMA/Output/Base11-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"af9b9cef-2a74-486f-b79e-047d68669a1f","savedPayload":{"position":{"x":26572.08935242545,"y":18400.32785777847},"targetPosition":{"x":26359.490279465535,"y":18693.15300435426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/SMA/Output/Base11-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/SMA/Output/Base11-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e","savedPayload":{"position":{"x":26703.52851535076,"y":18581.553583505985},"targetPosition":{"x":26359.490279465535,"y":18693.15300435426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"a6c93c64-52da-4dad-bff9-9f6d9b4606b9","savedPayload":{"position":{"x":27099.425845567253,"y":18552.862872068814},"targetPosition":{"x":27215.00998032056,"y":18780.779704704062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5e8f3d9c-8284-4b92-b7f5-ad7498e5ef3d","savedPayload":{"position":{"x":27215.00998032056,"y":18780.779704704062},"targetPosition":{"x":27330.90533370798,"y":19008.640580156043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"ac16b3d1-e3b0-4b79-9047-cd137c6eeafc","savedPayload":{"position":{"x":27489.31397448236,"y":18521.932847639313},"targetPosition":{"x":27410.1191095729,"y":18765.251680787023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"43337725-24dd-4c1a-ae8d-2562a028d02d","savedPayload":{"position":{"x":27410.1191095729,"y":18765.251680787023},"targetPosition":{"x":27330.90533370798,"y":19008.640580156043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA11","code":"{\n \"codeName\": \"sma11\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma11","id":"87a1e288-0966-46e9-8a4f-1ddbb3f8976c","savedPayload":{"position":{"x":27787.233946587578,"y":18776.460063301594},"targetPosition":{"x":27559.132701245428,"y":18892.527586651227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6a67dbd9-1e8e-4100-849f-5ea77ea67985","savedPayload":{"position":{"x":27559.132701245428,"y":18892.527586651227},"targetPosition":{"x":27330.90533370798,"y":19008.640580156043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA22","code":"{\n \"codeName\": \"sma22\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma22","id":"8652042b-c373-4024-9fbf-c582a55134e0","savedPayload":{"position":{"x":27817.960385164475,"y":19166.65997561477},"targetPosition":{"x":27574.504327729795,"y":19087.666437194595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a5665ca1-e399-4e8a-8e04-8c0b153702e4","savedPayload":{"position":{"x":27574.504327729795,"y":19087.666437194595},"targetPosition":{"x":27330.90533370798,"y":19008.640580156043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA33","code":"{\n \"codeName\": \"sma33\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma33","id":"738317b6-dcb4-4699-a48c-170491515eb5","savedPayload":{"position":{"x":27563.46375274986,"y":19464.723200197204},"targetPosition":{"x":27447.228833037454,"y":19236.72282142817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f35c54ed-6469-4cfa-94cf-f94f1c916e91","savedPayload":{"position":{"x":27447.228833037454,"y":19236.72282142817},"targetPosition":{"x":27330.90533370798,"y":19008.640580156043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA55","code":"{\n \"codeName\": \"sma55\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma55","id":"675e9f6c-1e0d-4d09-ab69-88252ef60fe2","savedPayload":{"position":{"x":27173.441729254035,"y":19495.547916495845},"targetPosition":{"x":27252.167316767056,"y":19252.10423038812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c17d77b3-4d80-462d-88ba-ef421928dde1","savedPayload":{"position":{"x":27252.167316767056,"y":19252.10423038812},"targetPosition":{"x":27330.90533370798,"y":19008.640580156043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA111","code":"{\n \"codeName\": \"sma111\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma111","id":"b32a4356-312c-4536-b30b-63bad302e857","savedPayload":{"position":{"x":26875.968698728346,"y":19241.237134319315},"targetPosition":{"x":27103.323555484112,"y":19124.658885000445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f49152b4-5306-41d2-966b-dba92eef2590","savedPayload":{"position":{"x":27103.323555484112,"y":19124.658885000445},"targetPosition":{"x":27330.90533370798,"y":19008.640580156043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"a099f207-16db-4f66-adfb-1529fa350385","savedPayload":{"position":{"x":27330.90533370798,"y":19008.640580156043},"targetPosition":{"x":26359.490279465535,"y":18693.15300435426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last200.push(candle.close) // Add the current close value to the last 200 array.\n\nif (variable.last200.length > 200) {\n variable.last200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 200 elements.\n}\n\nvariable.sma11 = calculateSMA(11)\nvariable.sma22 = calculateSMA(22)\nvariable.sma33 = calculateSMA(33)\nvariable.sma55 = calculateSMA(55)\nvariable.sma111 = calculateSMA(111)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last200.length - periods; i < variable.last200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last200.length=\" + variable.last200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"317788d5-11f5-48a6-ab0c-252cdcef7728","savedPayload":{"position":{"x":26888.203937376937,"y":19131.47405468275},"targetPosition":{"x":26732.895800358663,"y":19062.23320791784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cce46065-5c04-428f-823f-4cb5e67b212a","savedPayload":{"position":{"x":26732.895800358663,"y":19062.23320791784},"targetPosition":{"x":26577.54142731507,"y":18993.24986951388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"70d5537e-f682-4322-992b-99a55edb2582","savedPayload":{"position":{"x":26612.76524819522,"y":19332.63785923651},"targetPosition":{"x":26595.04618278594,"y":19162.627472804652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f0707196-a2ac-4aee-99df-48a7fe77c365","savedPayload":{"position":{"x":26595.04618278594,"y":19162.627472804652},"targetPosition":{"x":26577.54142731507,"y":18993.24986951388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"663d58c6-e03e-4923-8cc7-03cc860aa318","savedPayload":{"position":{"x":26577.54142731507,"y":18993.24986951388},"targetPosition":{"x":26359.490279465535,"y":18693.15300435426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"05fabbf9-7798-4a53-995e-53ae74bef3de","savedPayload":{"position":{"x":26359.832050234978,"y":18693.14753351064},"targetPosition":{"x":25678.80307912173,"y":18693.14800123772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"SMA Base 11","id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00"}}},{"type":"Product Definition","name":"Base5 SMAs","code":"{\n \"codeName\": \"Base5-SMAs\",\n \"singularVariableName\": \"base5SMA\",\n \"pluralVariableName\": \"base5SMAs\"\n}","datasets":[{"type":"Dataset Definition","name":"Muti-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/Sparta/SMA/Output/Base5-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"a5d28568-fb58-469a-9820-b9f0e8eab705","savedPayload":{"position":{"x":26638.34811088652,"y":18702.32039780213},"targetPosition":{"x":26344.32539133409,"y":18916.285843189904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/SMA/Output/Base5-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/SMA/Output/Base5-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"01f32aa3-55e9-4f8c-80c7-997b52073274","savedPayload":{"position":{"x":26707.687118799222,"y":18916.280427651804},"targetPosition":{"x":26344.32539133409,"y":18916.285843189904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"949a2e58-5d07-475e-92b9-e0ef4b9fd9e7","savedPayload":{"position":{"x":26922.615337941083,"y":19075.60171952432},"targetPosition":{"x":27051.978761252383,"y":19300.24882518766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"65545f82-9022-4d4c-bd09-b900182bae75","savedPayload":{"position":{"x":27051.978761252383,"y":19300.24882518766},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"551c49da-26d4-438e-aff4-2a0ecc18ce7f","savedPayload":{"position":{"x":27128.284926091186,"y":19008.308422076556},"targetPosition":{"x":27155.03347640118,"y":19266.523199664345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"74445dab-2c42-4c71-b179-04b98b5a8e27","savedPayload":{"position":{"x":27155.03347640118,"y":19266.523199664345},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA5","code":"{\n \"codeName\": \"sma5\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma5","id":"1c996969-c249-4b55-845c-62205e91fc68","savedPayload":{"position":{"x":27342.793500134932,"y":19030.774576374795},"targetPosition":{"x":27262.39811362158,"y":19277.74826003085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3b9f6fbf-20d8-4952-b5e8-34937746fef7","savedPayload":{"position":{"x":27262.39811362158,"y":19277.74826003085},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA10","code":"{\n \"codeName\": \"sma10\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma10","id":"d16592d7-2f02-49ae-8857-dd7098990f20","savedPayload":{"position":{"x":27529.957266313166,"y":19138.830860332244},"targetPosition":{"x":27356.03525355535,"y":19331.79022573178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"73cb2d83-d59b-457e-af00-68a8d0e2b016","savedPayload":{"position":{"x":27356.03525355535,"y":19331.79022573178},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA15","code":"{\n \"codeName\": \"sma15\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma15","id":"147ea31e-2735-4bae-b6a9-99072ed3d7a5","savedPayload":{"position":{"x":27656.995910008893,"y":19313.719441455894},"targetPosition":{"x":27419.5874708147,"y":19419.260212357807},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"666f82ef-a002-4067-9edb-6ddbe2861056","savedPayload":{"position":{"x":27419.5874708147,"y":19419.260212357807},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA20","code":"{\n \"codeName\": \"sma20\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma20","id":"f2507a4f-7f65-4d22-b062-1834c9269285","savedPayload":{"position":{"x":27701.923397779836,"y":19524.886184206778},"targetPosition":{"x":27442.064365152597,"y":19524.87647981877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a6a82705-0a6c-425e-afab-099a63570ada","savedPayload":{"position":{"x":27442.064365152597,"y":19524.87647981877},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA25","code":"{\n \"codeName\": \"sma25\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma25","id":"53aead0b-0c80-4e74-b19b-7290672f7444","savedPayload":{"position":{"x":27656.96132967847,"y":19736.249917279107},"targetPosition":{"x":27419.5773799725,"y":19630.596391684085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cbc6da93-d064-4762-a32f-ae1071a1ebe2","savedPayload":{"position":{"x":27419.5773799725,"y":19630.596391684085},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA50","code":"{\n \"codeName\": \"sma50\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma50","id":"0c126131-e3bd-4d43-a037-53e54e268300","savedPayload":{"position":{"x":27529.883728451052,"y":19911.16753754266},"targetPosition":{"x":27356.018028709237,"y":19718.083509430904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1cda317e-4b82-4bd9-8b07-71ad7365e524","savedPayload":{"position":{"x":27356.018028709237,"y":19718.083509430904},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA100","code":"{\n \"codeName\": \"sma100\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma100","id":"77c897e8-ab38-4c88-a215-e67d53401196","savedPayload":{"position":{"x":27342.665781796917,"y":20019.285104672304},"targetPosition":{"x":27262.379009529745,"y":19772.15785190104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f7a66586-158d-40e2-be75-1077a91b0d7e","savedPayload":{"position":{"x":27262.379009529745,"y":19772.15785190104},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA150","code":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma150","id":"1e5d6df6-a1af-49f0-a06e-08c362b1cd34","savedPayload":{"position":{"x":27128.09412210784,"y":20041.91556549587},"targetPosition":{"x":27155.05529169956,"y":19783.470998434554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"83260971-1089-4349-9019-29ea469a9d24","savedPayload":{"position":{"x":27155.05529169956,"y":19783.470998434554},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA200","code":"{\n \"codeName\": \"sma200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma200","id":"bc63f986-17dd-48fb-892b-7f2d2b033cc5","savedPayload":{"position":{"x":26922.536244173545,"y":19975.15491606983},"targetPosition":{"x":27052.24341054433,"y":19750.06323902814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"07a55760-46cf-44e8-b2f9-f55a6bb5a81c","savedPayload":{"position":{"x":27052.24341054433,"y":19750.06323902814},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA250","code":"{\n \"codeName\": \"sma250\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma250","id":"1bdc84fd-9eac-4b07-9ff6-56f80ec08553","savedPayload":{"position":{"x":26761.987331696364,"y":19830.580868285484},"targetPosition":{"x":26971.94059416554,"y":19677.712875101963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8b672a62-1ae1-4e92-819e-597fa42da35b","savedPayload":{"position":{"x":26971.94059416554,"y":19677.712875101963},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA 500","code":"{\n \"codeName\": \"sma500\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma500","id":"0d17399e-97d1-459d-8864-6c72967f0fd4","savedPayload":{"position":{"x":26674.27943008508,"y":19633.237444481198},"targetPosition":{"x":26928.067070837365,"y":19578.870910167938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"92405f1d-9adf-4a70-af18-f2537ba2b0a0","savedPayload":{"position":{"x":26928.067070837365,"y":19578.870910167938},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA 1000","code":"{\n \"codeName\": \"sma1000\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1000","id":"e2364abc-b940-4b52-a506-587c1a5941e3","savedPayload":{"position":{"x":26674.304963619474,"y":19415.518334744753},"targetPosition":{"x":26928.31807279781,"y":19470.571887198923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5318bf3f-6e8a-46c8-8b04-3769bde03438","savedPayload":{"position":{"x":26928.31807279781,"y":19470.571887198923},"targetPosition":{"x":27182.012420486284,"y":19524.858247589054},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"69298c3e-479d-4eb6-a972-35f8f079ce86","savedPayload":{"position":{"x":27182.012420486284,"y":19524.858247589054},"targetPosition":{"x":26344.32539133409,"y":18916.285843189904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1000.push(candle.close) // Add the current close value to the last 1000 array.\n\nif (variable.last1000.length > 1000) {\n variable.last1000.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1000 elements.\n}\n\nvariable.sma5 = calculateSMA(5)\nvariable.sma10 = calculateSMA(10)\nvariable.sma15 = calculateSMA(15)\nvariable.sma20 = calculateSMA(20)\nvariable.sma25 = calculateSMA(25)\nvariable.sma50 = calculateSMA(50)\nvariable.sma100 = calculateSMA(100)\nvariable.sma150 = calculateSMA(150)\nvariable.sma200 = calculateSMA(200)\nvariable.sma250 = calculateSMA(250)\nvariable.sma500 = calculateSMA(500)\nvariable.sma1000 = calculateSMA(1000)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1000.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1000.length - periods; i < variable.last1000.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1000[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1000.length=\" + variable.last1000.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1000[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"45ebc09e-bada-4bcd-8780-a2f56f23f037","savedPayload":{"position":{"x":26714.645942882184,"y":19501.555933303964},"targetPosition":{"x":26586.417881962847,"y":19384.65704614913},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f65693cf-81ef-497e-86d2-a7ad9b74a1ca","savedPayload":{"position":{"x":26586.417881962847,"y":19384.65704614913},"targetPosition":{"x":26458.832476332078,"y":19269.439827848597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1000 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1000 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"22db43d3-db5d-43b6-80fc-1faa358bfadb","savedPayload":{"position":{"x":26386.47265640377,"y":19607.698654482596},"targetPosition":{"x":26422.66121382351,"y":19438.37924202523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"12255c95-c680-43af-be1b-61ee37e0e827","savedPayload":{"position":{"x":26422.66121382351,"y":19438.37924202523},"targetPosition":{"x":26458.832476332078,"y":19269.439827848597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"cd8c13e4-2b9e-4a42-a576-539d412f239a","savedPayload":{"position":{"x":26458.832476332078,"y":19269.439827848597},"targetPosition":{"x":26344.32539133409,"y":18916.285843189904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"2dcb55de-1673-409e-aa52-f51e7c7f8fa3","savedPayload":{"position":{"x":26326.363656043533,"y":18903.506820228416},"targetPosition":{"x":25678.80307912173,"y":18693.14800123772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base6 SMAs","code":"{\n \"codeName\": \"Base6-SMAs\",\n \"singularVariableName\": \"base6SMA\",\n \"pluralVariableName\": \"base6SMAs\"\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/Sparta/SMA/Output/Base6-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"c0862b3d-d35a-4d3e-8d80-258b8a01c37c","savedPayload":{"position":{"x":26592.043466304898,"y":18996.000737820603},"targetPosition":{"x":26246.319899429847,"y":19108.61244124745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/SMA/Output/Base6-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/SMA/Output/Base6-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"f5050eb2-0a99-464e-b5e2-2d8f40453e9a","savedPayload":{"position":{"x":26591.97755711179,"y":19220.71082980995},"targetPosition":{"x":26246.319899429847,"y":19108.61244124745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Being","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.begin","id":"fc90c194-682d-4d5c-923b-89b19e49f234","savedPayload":{"position":{"x":26747.10960441215,"y":19438.801876147994},"targetPosition":{"x":26800.678902098272,"y":19692.50582802554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"37fc0238-a202-4c33-89ca-6a4e24d4e1ac","savedPayload":{"position":{"x":26800.678902098272,"y":19692.50582802554},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"c1b3c2c1-68aa-443a-8c69-c50dcd34998f","savedPayload":{"position":{"x":26963.14193037145,"y":19438.34722625641},"targetPosition":{"x":26908.95145036956,"y":19692.27276630368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7757e0dd-c3b4-48b4-bdf7-e517ce8df601","savedPayload":{"position":{"x":26908.95145036956,"y":19692.27276630368},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA6","code":"{\n \"codeName\": \"sma6\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma6","id":"8a633674-750f-492d-8bfc-ac6f2e79793a","savedPayload":{"position":{"x":27160.619347217806,"y":19526.14113901153},"targetPosition":{"x":27007.791994630967,"y":19736.196766344372},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"12d5b8f1-c83c-43a3-bf45-6f85e85a6df9","savedPayload":{"position":{"x":27007.791994630967,"y":19736.196766344372},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA12","code":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma12","id":"11e2a0cd-851a-425e-b2bd-f3cff1b00c77","savedPayload":{"position":{"x":27305.255361966494,"y":19686.761715412587},"targetPosition":{"x":27080.160569396896,"y":19816.533541360528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6c1f3e32-9310-4ece-a796-cf9225172978","savedPayload":{"position":{"x":27080.160569396896,"y":19816.533541360528},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA18","code":"{\n \"codeName\": \"sma18\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma18","id":"0cbf493f-fa5f-41a8-a928-754ec9720fe0","savedPayload":{"position":{"x":27372.04869366202,"y":19892.388278601287},"targetPosition":{"x":27113.583894353465,"y":19919.385179822897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"12bf3180-d354-451d-ba14-81cdd9d95c19","savedPayload":{"position":{"x":27113.583894353465,"y":19919.385179822897},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA24","code":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma24","id":"4d677df1-74ec-417e-a518-2b8946c84542","savedPayload":{"position":{"x":27349.42373215674,"y":20106.994839071056},"targetPosition":{"x":27102.27223982621,"y":20026.729643692597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3e3a6434-aaa4-4170-8cdc-cca21c8d0863","savedPayload":{"position":{"x":27102.27223982621,"y":20026.729643692597},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA30","code":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma30","id":"3a92b258-6c21-4747-ba08-16cf9ba814ec","savedPayload":{"position":{"x":27241.292638423736,"y":20294.261065109506},"targetPosition":{"x":27048.189127466314,"y":20120.396053152883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"22bc84a6-f431-464c-a7e0-b9249b32abdf","savedPayload":{"position":{"x":27048.189127466314,"y":20120.396053152883},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA60","code":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma60","id":"d9a44db6-45eb-47f8-975b-ee8dccd0659d","savedPayload":{"position":{"x":27066.350447494504,"y":20421.370324991425},"targetPosition":{"x":26960.687794471538,"y":20183.97159434327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c3d4d569-0b7e-44b9-b2f0-84d9a91ee6b0","savedPayload":{"position":{"x":26960.687794471538,"y":20183.97159434327},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA120","code":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma120","id":"90fee0af-0e23-44de-aa16-d446857485f4","savedPayload":{"position":{"x":26854.916663795033,"y":20466.3499856495},"targetPosition":{"x":26854.92428649319,"y":20206.46636289262},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4f572d61-ff96-4ccb-90ca-7a26d5cc8322","savedPayload":{"position":{"x":26854.92428649319,"y":20206.46636289262},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA180","code":"{\n \"codeName\": \"sma180\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma180","id":"031e5277-e225-4307-a247-f49dae98ac26","savedPayload":{"position":{"x":26643.794652074932,"y":20421.430045164794},"targetPosition":{"x":26749.3388205411,"y":20183.991150193935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9e3eb2e1-3cb4-4f0b-9a5a-5196bb4af3af","savedPayload":{"position":{"x":26749.3388205411,"y":20183.991150193935},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA240","code":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma240","id":"cb9604b0-3004-48d5-84fe-680747edb943","savedPayload":{"position":{"x":26468.902352177425,"y":20294.397486142738},"targetPosition":{"x":26661.8697708153,"y":20120.437139865007},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"83c2137c-676d-4a43-88c1-e9a5f69cafeb","savedPayload":{"position":{"x":26661.8697708153,"y":20120.437139865007},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA300","code":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma300","id":"8c3259f1-e88b-40a2-9af2-a0e554affbd2","savedPayload":{"position":{"x":26360.872444796285,"y":20107.27158306762},"targetPosition":{"x":26607.846707187415,"y":20026.806540615926},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"829bfd3a-8c69-4e51-8951-a1d7cb0b8c6f","savedPayload":{"position":{"x":26607.846707187415,"y":20026.806540615926},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA600","code":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma600","id":"501b1e82-840a-4288-801d-38a5e5c7f7cb","savedPayload":{"position":{"x":26338.438552811946,"y":19892.893742934313},"targetPosition":{"x":26596.66850622746,"y":19919.436582996557},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f7174f99-231c-4188-8f4a-95a34c0c35f8","savedPayload":{"position":{"x":26596.66850622746,"y":19919.436582996557},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA1200","code":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1200","id":"0554601a-009b-47a2-8e0c-c7d6f3901a9e","savedPayload":{"position":{"x":26405.93082369466,"y":19685.34374739902},"targetPosition":{"x":26630.459863911285,"y":19816.271124944742},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f6f0c544-4054-4cb4-9be1-14ffa23c5251","savedPayload":{"position":{"x":26630.459863911285,"y":19816.271124944742},"targetPosition":{"x":26854.92976386784,"y":19946.375238639615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"a84f4438-cabc-4c9a-bd9c-0338e55a6e15","savedPayload":{"position":{"x":26854.92976386784,"y":19946.375238639615},"targetPosition":{"x":26246.319899429847,"y":19108.61244124745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma6 = calculateSMA(6)\nvariable.sma12 = calculateSMA(12)\nvariable.sma18 = calculateSMA(18)\nvariable.sma24 = calculateSMA(24)\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma180 = calculateSMA(180)\nvariable.sma240 = calculateSMA(240)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"f2c97b70-717a-4f98-be7c-d76dd94b8227","savedPayload":{"position":{"x":26417.654458353034,"y":19779.647177634255},"targetPosition":{"x":26331.909836131596,"y":19628.835734641118},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"96841e7b-90d9-4508-8933-4f0f9769800e","savedPayload":{"position":{"x":26331.909836131596,"y":19628.835734641118},"targetPosition":{"x":26246.26629744302,"y":19479.848200987402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"14dcff53-0599-4529-8a5d-5cf92a5c33c8","savedPayload":{"position":{"x":26072.81910115523,"y":19779.07994531799},"targetPosition":{"x":26159.610674958716,"y":19629.2838452958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2863a8f-8f38-4c47-9f48-0bd45b628fa0","savedPayload":{"position":{"x":26159.610674958716,"y":19629.2838452958},"targetPosition":{"x":26246.26629744302,"y":19479.848200987402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"948be5d9-da96-488a-bb15-f8cd94777231","savedPayload":{"position":{"x":26246.26629744302,"y":19479.848200987402},"targetPosition":{"x":26246.319899429847,"y":19108.61244124745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4ae22e54-cd02-4e2e-b638-1c5ea9a171ac","savedPayload":{"position":{"x":26229.622219605866,"y":19093.331788596064},"targetPosition":{"x":25678.80307912173,"y":18693.14800123772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base12 SMAs","code":"{\n \"codeName\": \"Base12-SMAs\",\n \"singularVariableName\": \"base12SMA\",\n \"pluralVariableName\": \"base12SMAs\"\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/Sparta/SMA/Output/Base12-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"6ba76363-0f50-4e67-8678-3eb4fd6d07d6","savedPayload":{"position":{"x":26457.137031904982,"y":19261.086795812673},"targetPosition":{"x":26093.673701486445,"y":19261.285530629237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/SMA/Output/Base12-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/SMA/Output/Base12-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"92d92b3e-6870-499b-bfec-33bab220bf62","savedPayload":{"position":{"x":26387.81244482785,"y":19474.841704517814},"targetPosition":{"x":26093.673701486445,"y":19261.285530629237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"d44292f3-8960-448b-8339-32147b8bb1c3","savedPayload":{"position":{"x":26483.05584762204,"y":19732.064076387873},"targetPosition":{"x":26448.07720157968,"y":19988.947488215774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bcec1860-262e-4125-bdf4-a8f798d9d4ff","savedPayload":{"position":{"x":26448.07720157968,"y":19988.947488215774},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"91264df6-db08-498e-a039-fec9b0cd09a5","savedPayload":{"position":{"x":26699.869680925414,"y":19813.01134286187},"targetPosition":{"x":26556.6912085346,"y":20029.49378655064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0ef8d741-e876-446e-86ac-146b4f33d8e8","savedPayload":{"position":{"x":26556.6912085346,"y":20029.49378655064},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA12","code":"{\n \"codeName\": \"sma12\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma12","id":"c694dcde-b622-4d71-b2cf-e42e1b4934ec","savedPayload":{"position":{"x":26859.688470955654,"y":19980.04175963639},"targetPosition":{"x":26636.67440444099,"y":20113.057289758508},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"daf8aa00-f032-412e-b319-e7c581611db0","savedPayload":{"position":{"x":26636.67440444099,"y":20113.057289758508},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA24","code":"{\n \"codeName\": \"sma24\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma24","id":"445b00ba-46a1-4e79-b762-72c521223b5f","savedPayload":{"position":{"x":26931.139893856525,"y":20199.954328336302},"targetPosition":{"x":26672.43212800979,"y":20223.054171976648},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"255fdffa-cdbb-428b-a54e-14448f7cda29","savedPayload":{"position":{"x":26672.43212800979,"y":20223.054171976648},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA36","code":"{\n \"codeName\": \"sma36\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma36","id":"c9c11106-98b6-4fcb-b30b-d49263a05d95","savedPayload":{"position":{"x":26900.07225037158,"y":20428.728277252183},"targetPosition":{"x":26656.902072744633,"y":20337.480150765074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"628c3c4f-7ef7-4008-bada-76e4edf6de42","savedPayload":{"position":{"x":26656.902072744633,"y":20337.480150765074},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA48","code":"{\n \"codeName\": \"sma48\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma48","id":"8e1cfb60-cb51-4625-a36b-75d64381840d","savedPayload":{"position":{"x":26772.63875351275,"y":20621.74901742457},"targetPosition":{"x":26593.169947636492,"y":20434.01995932951},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1aa9fd38-51e5-4158-9bb2-31dbc8f933d0","savedPayload":{"position":{"x":26593.169947636492,"y":20434.01995932951},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA60","code":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma60","id":"6fe04671-6298-4ef4-9ef8-779eafc1645d","savedPayload":{"position":{"x":26574.076046262195,"y":20740.38342630494},"targetPosition":{"x":26493.86083615057,"y":20493.355141883298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d76d7819-b542-4ee8-98fd-539ec3325e2c","savedPayload":{"position":{"x":26493.86083615057,"y":20493.355141883298},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA120","code":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma120","id":"f8abde07-3312-4983-bff2-65ed4f475a3f","savedPayload":{"position":{"x":26344.107869575997,"y":20761.132890144825},"targetPosition":{"x":26378.841806279455,"y":20503.731542596386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0e696147-e020-4056-8ad4-40ad79cba391","savedPayload":{"position":{"x":26378.841806279455,"y":20503.731542596386},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA240","code":"{\n \"codeName\": \"sma240\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma240","id":"1ea2c145-6dcf-4e8a-908a-b12e08a8d658","savedPayload":{"position":{"x":26127.568363122933,"y":20679.89513100452},"targetPosition":{"x":26270.544345586906,"y":20463.09627864626},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e02938c9-f5b1-49f7-8e63-f8637f6d1d4d","savedPayload":{"position":{"x":26270.544345586906,"y":20463.09627864626},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA360","code":"{\n \"codeName\": \"sma360\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma360","id":"16ab9e8b-cb14-4a59-b7b3-0a1d13dbea5b","savedPayload":{"position":{"x":25967.74648317719,"y":20512.77906195321},"targetPosition":{"x":26190.618319110457,"y":20379.50405843278},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fe671bcf-1d71-4081-a100-f4bbc59203c7","savedPayload":{"position":{"x":26190.618319110457,"y":20379.50405843278},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA480","code":"{\n \"codeName\": \"sma480\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma480","id":"135a34fc-3cc8-4555-b1b9-c8ea03150aff","savedPayload":{"position":{"x":25896.308102866155,"y":20292.9328307564},"targetPosition":{"x":26154.905170573275,"y":20269.52646807979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"85a59bf2-d419-43c9-a287-68902b8cb199","savedPayload":{"position":{"x":26154.905170573275,"y":20269.52646807979},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA600","code":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma600","id":"cacf8e3b-77d3-4697-9ca5-51cff50afb6c","savedPayload":{"position":{"x":25927.447566113315,"y":20064.37049826199},"targetPosition":{"x":26170.53623145624,"y":20155.116768177264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"608a2a98-bd6e-49e0-b202-afff3553337d","savedPayload":{"position":{"x":26170.53623145624,"y":20155.116768177264},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA1200","code":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1200","id":"2e1c84ea-2cb3-4936-8106-623dcdff8782","savedPayload":{"position":{"x":26056.155144386878,"y":19863.932574057293},"targetPosition":{"x":26234.635350807934,"y":20058.4398508968},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"dda31bad-8835-446a-9015-4e15ae4cb845","savedPayload":{"position":{"x":26234.635350807934,"y":20058.4398508968},"targetPosition":{"x":26413.5877444023,"y":20246.152060991088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"f46175dc-dfd2-4e1e-a60c-554867b5f0a5","savedPayload":{"position":{"x":26413.5877444023,"y":20246.152060991088},"targetPosition":{"x":26093.673701486445,"y":19261.285530629237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1200.push(candle.close) // Add the current close value to the last 1200 array.\n\nif (variable.last1200.length > 1200) {\n variable.last1200.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1200 elements.\n}\n\nvariable.sma12 = calculateSMA(12)\nvariable.sma24 = calculateSMA(24)\nvariable.sma36 = calculateSMA(36)\nvariable.sma48 = calculateSMA(48)\nvariable.sma60 = calculateSMA(60)\nvariable.sma120 = calculateSMA(120)\nvariable.sma240 = calculateSMA(240)\nvariable.sma360 = calculateSMA(360)\nvariable.sma480 = calculateSMA(480)\nvariable.sma600 = calculateSMA(600)\nvariable.sma1200 = calculateSMA(1200)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1200.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1200.length - periods; i < variable.last1200.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1200[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1200.length=\" + variable.last1200.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1200[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"fba7176b-58ff-4bd6-95de-ad6f88de4cda","savedPayload":{"position":{"x":26049.127976973872,"y":19958.655898090317},"targetPosition":{"x":26014.37695571575,"y":19782.572129627613},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"daf2fb19-bfda-4248-a0c6-8e364fe863ee","savedPayload":{"position":{"x":26014.37695571575,"y":19782.572129627613},"targetPosition":{"x":25978.87712492255,"y":19614.32930997246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1200 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1200 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"4d3f1fee-e71d-46cd-a50b-69176de5e1e8","savedPayload":{"position":{"x":25721.54244598608,"y":19845.208974695634},"targetPosition":{"x":25850.311069998046,"y":19729.628302827252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"08365c70-c9ba-481d-abb8-62dc21067754","savedPayload":{"position":{"x":25850.311069998046,"y":19729.628302827252},"targetPosition":{"x":25978.87712492255,"y":19614.32930997246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4aa28d66-d2c5-40d1-9b42-b6adb1e94d1c","savedPayload":{"position":{"x":25978.87712492255,"y":19614.32930997246},"targetPosition":{"x":26093.673701486445,"y":19261.285530629237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"723d28e9-a010-48c5-bda0-43a4c2343ddf","savedPayload":{"position":{"x":26078.94459751066,"y":19243.989121320577},"targetPosition":{"x":25678.80307912173,"y":18693.14800123772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base30 SMAs","code":"{\n \"codeName\": \"Base30-SMAs\",\n \"singularVariableName\": \"base30SMA\",\n \"pluralVariableName\": \"base30SMAs\"\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/Sparta/SMA/Output/Base30-SMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"4c486321-22e0-4991-9a1c-571bada649ad","savedPayload":{"position":{"x":26247.096905785525,"y":19471.363038206546},"targetPosition":{"x":25901.235229155187,"y":19359.356188967085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/SMA/Output/Base30-SMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/SMA/Output/Base30-SMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"819688c9-c7bd-444b-9658-2a4379125c72","savedPayload":{"position":{"x":26114.8822735716,"y":19653.333010012644},"targetPosition":{"x":25901.235229155187,"y":19359.356188967085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"16806650-2bfb-4709-acbd-aca1549c16e8","savedPayload":{"position":{"x":26142.23909671494,"y":19935.84272262039},"targetPosition":{"x":26021.575454432,"y":20165.23783878607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"265d3765-cd1d-4652-a0ed-01931674a151","savedPayload":{"position":{"x":26021.575454432,"y":20165.23783878607},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"d0b81562-348b-433f-8524-f9bc909de69e","savedPayload":{"position":{"x":26328.672774590876,"y":20100.51619462151},"targetPosition":{"x":26114.951492544216,"y":20247.7042239562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fe6074be-18c6-46c0-abd4-5d31bc067798","savedPayload":{"position":{"x":26114.951492544216,"y":20247.7042239562},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA30","code":"{\n \"codeName\": \"sma30\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma30","id":"2ef589ba-7f7d-4df5-91fd-9107d67a7792","savedPayload":{"position":{"x":26416.871652030568,"y":20332.904513554422},"targetPosition":{"x":26159.099092460827,"y":20363.963991935492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"72debf77-1c4b-4e8d-9a99-96951bd6d24c","savedPayload":{"position":{"x":26159.099092460827,"y":20363.963991935492},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA60","code":"{\n \"codeName\": \"sma60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma60","id":"d51798bf-2373-4f5e-b6e4-56aad8117820","savedPayload":{"position":{"x":26386.887508557673,"y":20579.311930443782},"targetPosition":{"x":26144.116612270507,"y":20487.21275194568},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"78e59381-fcda-4204-a70a-4113eebdbba7","savedPayload":{"position":{"x":26144.116612270507,"y":20487.21275194568},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA90","code":"{\n \"codeName\": \"sma90\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma90","id":"a35a40dd-e5b4-4444-a8da-14eeb79e76b3","savedPayload":{"position":{"x":26245.61174728431,"y":20783.941824289857},"targetPosition":{"x":26073.465518653447,"y":20589.559214347784},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"90b3598c-8f08-4dc1-ad41-a64caf0cab39","savedPayload":{"position":{"x":26073.465518653447,"y":20589.559214347784},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA120","code":"{\n \"codeName\": \"sma120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma120","id":"046bdfe3-d838-425e-8cc0-e117151bdbf8","savedPayload":{"position":{"x":26025.40981396955,"y":20899.50083485338},"targetPosition":{"x":25963.337612513722,"y":20647.355952502017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"aa9f7095-66e7-4e42-b6b2-d3a51e3b35d9","savedPayload":{"position":{"x":25963.337612513722,"y":20647.355952502017},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA150","code":"{\n \"codeName\": \"sma150\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma150","id":"8129644d-2b0a-4936-8255-22dc2aada9e7","savedPayload":{"position":{"x":25777.11946967257,"y":20899.509572909832},"targetPosition":{"x":25839.15838517747,"y":20647.35982890283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b0c06b10-549c-4280-aac9-0b649ede898c","savedPayload":{"position":{"x":25839.15838517747,"y":20647.35982890283},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA300","code":"{\n \"codeName\": \"sma300\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma300","id":"23ddb87c-8211-4032-8273-222af79863b5","savedPayload":{"position":{"x":25556.922068507625,"y":20783.970929250194},"targetPosition":{"x":25729.034109547974,"y":20589.572159393727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"38b8e859-eda7-4cd9-afc2-ee0e3ed297b7","savedPayload":{"position":{"x":25729.034109547974,"y":20589.572159393727},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA600","code":"{\n \"codeName\": \"sma600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma600","id":"8f07691b-ccdc-47cc-9c07-3701b61322f9","savedPayload":{"position":{"x":25415.65544666922,"y":20579.37448408161},"targetPosition":{"x":25658.390559215066,"y":20487.242120756473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cebd7a57-eebb-4e4f-9315-6f1411970e55","savedPayload":{"position":{"x":25658.390559215066,"y":20487.242120756473},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA900","code":"{\n \"codeName\": \"sma900\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma900","id":"ed66265d-f971-448f-b395-e0c12c178173","savedPayload":{"position":{"x":25385.680468355644,"y":20333.025174497754},"targetPosition":{"x":25643.417737632426,"y":20364.01925434999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fcbefbb9-2a6d-459a-8d3b-595d71caaa88","savedPayload":{"position":{"x":25643.417737632426,"y":20364.01925434999},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA1200","code":"{\n \"codeName\": \"sma1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1200","id":"3e936d3b-8f40-49da-830c-f73ea5bf271a","savedPayload":{"position":{"x":25473.882388114595,"y":20100.750273422098},"targetPosition":{"x":25687.59505632273,"y":20247.789381533512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"311d2e2d-163e-4b8e-ae99-2b2d0fbbb2aa","savedPayload":{"position":{"x":25687.59505632273,"y":20247.789381533512},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"SMA1500","code":"{\n \"codeName\": \"sma1500\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.sma1500","id":"d4db0dc9-12a2-41c6-8511-43cbfdcfb136","savedPayload":{"position":{"x":25663.404395909267,"y":19922.66888632375},"targetPosition":{"x":25781.03828169136,"y":20165.317342078444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b71b603d-38de-401d-b1df-ca20710dba64","savedPayload":{"position":{"x":25781.03828169136,"y":20165.317342078444},"targetPosition":{"x":25901.225033565308,"y":20395.03261023538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"229b4129-39f9-4f46-bbb5-a86a714023f8","savedPayload":{"position":{"x":25901.225033565308,"y":20395.03261023538},"targetPosition":{"x":25901.235229155187,"y":19359.356188967085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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. This goes at the Code of the Procedure Loop Object */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last1500.push(candle.close) // Add the current close value to the last 1500 array.\n\nif (variable.last1500.length > 1500) {\n variable.last1500.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 1500 elements.\n}\n\nvariable.sma30 = calculateSMA(30)\nvariable.sma60 = calculateSMA(60)\nvariable.sma90 = calculateSMA(90)\nvariable.sma120 = calculateSMA(120)\nvariable.sma150 = calculateSMA(150)\nvariable.sma300 = calculateSMA(300)\nvariable.sma600 = calculateSMA(600)\nvariable.sma900 = calculateSMA(900)\nvariable.sma1200 = calculateSMA(1200)\nvariable.sma1500 = calculateSMA(1500)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last1500.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last1500.length - periods; i < variable.last1500.length; i++) { // Iterate through the last periods\n sum = sum + variable.last1500[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last1500.length=\" + variable.last1500.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last1500[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}","id":"382c5abf-a91a-40c0-88c2-7e230e93ed44","savedPayload":{"position":{"x":25643.828953745367,"y":20015.603182816194},"targetPosition":{"x":25664.94304983999,"y":19830.686825749974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d3dab655-2db2-4d4c-a776-91a6ae116304","savedPayload":{"position":{"x":25664.94304983999,"y":19830.686825749974},"targetPosition":{"x":25682.863620816468,"y":19659.698899862622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code. This goes at the Code of the Procedure Initialization Object */\n\n/* \nThis is the array where we are going to store the last 1500 elements, since we will not \nhave access to such long backwards history while processing daily files. In those situations\nwe only have access to the last 2 days of candles, which in 45 min for example, means 36\ncandles from the current day and 36 from the previous one. For that reason we will keep\nthis array with the last 200 candle.close values so that we overecome that limitation.\n*/\n\nvariable.last1500 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")","id":"41af43f4-4f30-404d-8d9e-3ad5e752688c","savedPayload":{"position":{"x":25366.91103467453,"y":19799.639712700795},"targetPosition":{"x":25525.042060579155,"y":19729.53561441655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f8611aff-7f4f-4df8-a2ac-b92ef5633ad4","savedPayload":{"position":{"x":25525.042060579155,"y":19729.53561441655},"targetPosition":{"x":25682.863620816468,"y":19659.698899862622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"e8bebfde-97db-42d7-93a2-972366bc002c","savedPayload":{"position":{"x":25682.863620816468,"y":19659.698899862622},"targetPosition":{"x":25901.235229155187,"y":19359.356188967085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"607ebabd-9602-4e5c-803d-d4207dbd6794","savedPayload":{"position":{"x":25888.979194769407,"y":19340.74153661385},"targetPosition":{"x":25678.80307912173,"y":18693.14800123772},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"c1c6f0e0-49f7-4723-bf22-dd24dfee6102","savedPayload":{"position":{"x":25678.80307912173,"y":18693.14800123772},"targetPosition":{"x":24997.408806793872,"y":18693.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Indicator Bot","name":"EMA","code":"{\n\"codeName\": \"EMA\",\n\"repo\": \"EMA-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Calculates EMAs based on SMAs\",\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":"New Output Dataset","id":"4e72640b-d384-434c-a607-47b1c8e4c9ef","savedPayload":{"position":{"x":26115.60235736025,"y":18708.765150012787},"targetPosition":{"x":26115.60235736025,"y":18533.657666825966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"e554af82-9965-4a5d-a59a-3dc873526ad9","savedPayload":{"position":{"x":25950.26505269279,"y":18629.11520418281},"targetPosition":{"x":26115.60235736025,"y":18533.657666825966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"fcefc8e1-6900-485f-a5b0-80366450aedf","savedPayload":{"position":{"x":25968.33457705678,"y":18448.632574224797},"targetPosition":{"x":26115.60235736025,"y":18533.657666825966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}}],"id":"268cf8f3-e871-4fed-bbdb-725a070e7cb6","savedPayload":{"position":{"x":26115.60235736025,"y":18533.657666825966},"targetPosition":{"x":26097.58769431101,"y":18877.397914851892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"6c163397-f3a4-4acc-b281-567f2809b8a0","savedPayload":{"position":{"x":26472.530254019453,"y":18474.512283964163},"targetPosition":{"x":26472.530254019453,"y":18300.0370037139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"8e7c0f51-727f-4a28-b516-087443ee369f"}}},{"type":"Status Dependency","name":"Ending: Candles Volumes","code":"{ \n\"mainUtility\": \"Market Ending Point.\"\n}","id":"eb2d5251-f873-4785-80c8-3a75186e6fa9","savedPayload":{"position":{"x":26331.33919941542,"y":18381.553697096704},"targetPosition":{"x":26472.530254019453,"y":18300.0370037139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Candles Volumes: Candles","id":"7715ed1a-35f7-4b1c-ad79-fcd2486fe2ca","savedPayload":{"position":{"x":26319.469283885006,"y":18211.66721140435},"targetPosition":{"x":26472.530254019453,"y":18300.0370037139},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"39426478-777d-4ef5-a72a-2ad862c979c7","savedPayload":{"position":{"x":26472.530254019453,"y":18300.0370037139},"targetPosition":{"x":26097.58769431101,"y":18877.397914851892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"8e7c0f51-727f-4a28-b516-087443ee369f","savedPayload":{"position":{"x":26404.282812929247,"y":18721.128946680186},"targetPosition":{"x":26097.58769431101,"y":18877.397914851892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes","id":"19e3e53c-0752-4cae-93bd-162e0839b32f","savedPayload":{"position":{"x":25772.448399244306,"y":18771.753753865436},"targetPosition":{"x":26097.58769431101,"y":18877.397914851892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"f865a93d-38fd-433f-92e6-ccb7f2d33b05","savedPayload":{"position":{"x":26386.268149880005,"y":19064.869194706116},"targetPosition":{"x":26097.58769431101,"y":18877.397914851892},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"278c34a7-199d-400e-8a06-087149e3d391","savedPayload":{"position":{"x":26103.78118290805,"y":18873.849198515712},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Calculates EMAs based on SMAs.\",\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":"New Output Dataset","id":"24f5e41a-5839-4174-8e74-2fcde5c2f6a4","savedPayload":{"position":{"x":26287.500313919612,"y":18944.832776060004},"targetPosition":{"x":26287.500313919612,"y":18760.893051968393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"cf348b8d-e3cb-4841-b064-6bf2a8b54062","savedPayload":{"position":{"x":26141.19432432116,"y":18845.362854447114},"targetPosition":{"x":26287.500313919612,"y":18760.893051968393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"49d8444c-a216-4d81-8039-fa15683ed461","savedPayload":{"position":{"x":26136.792577188717,"y":18673.88189959785},"targetPosition":{"x":26287.500313919612,"y":18760.893051968393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}}],"id":"3864c37f-f9dc-433d-96e4-e36a6720adf1","savedPayload":{"position":{"x":26287.500313919612,"y":18760.893051968393},"targetPosition":{"x":26164.1457729471,"y":19082.24261773621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"2b523347-3f95-43ab-9ac8-72470000c774","savedPayload":{"position":{"x":26699.151671023646,"y":18988.241500772587},"targetPosition":{"x":26699.151671023646,"y":18649.003383808667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"fb2c8ec5-75ff-41e9-8782-60a952bd06e8"}}},{"type":"Status Dependency","name":"Starting: Exchange Raw Data","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"5c6a74d3-7f45-409c-a408-fe3c67c050e9","savedPayload":{"position":{"x":26454.621008201993,"y":18893.53404663032},"targetPosition":{"x":26699.151671023646,"y":18649.003383808667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}},{"type":"Status Dependency","name":"Ending: Candles Volumes","code":"{ \n\"mainUtility\": \"Market Ending Point\"\n}","id":"dbfe665f-e805-40f4-a494-231cc265acc8","savedPayload":{"position":{"x":26350.639989286014,"y":18649.003383808667},"targetPosition":{"x":26699.151671023646,"y":18649.003383808667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"70d56a4f-6375-456e-b797-d590ab2109a3","savedPayload":{"position":{"x":26453.90518162738,"y":18403.7568944124},"targetPosition":{"x":26699.151671023646,"y":18649.003383808667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"b5b3313a-d8e6-4b64-9300-fdc6693a2cb7","savedPayload":{"position":{"x":26699.151671023646,"y":18649.003383808667},"targetPosition":{"x":26164.1457729471,"y":19082.24261773621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"fb2c8ec5-75ff-41e9-8782-60a952bd06e8","savedPayload":{"position":{"x":26504.119930883386,"y":19028.396001006666},"targetPosition":{"x":26164.1457729471,"y":19082.24261773621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"Candles Volumes","id":"41fe3adc-42c9-4f5d-b757-13cedd7e0155","savedPayload":{"position":{"x":25839.968668240213,"y":18976.911091349186},"targetPosition":{"x":26164.1457729471,"y":19082.24261773621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"e232777d-86ee-4bb4-9a6d-659f06493aa5","savedPayload":{"position":{"x":26380.76538991087,"y":19349.745566774483},"targetPosition":{"x":26164.1457729471,"y":19082.24261773621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2","savedPayload":{"position":{"x":26171.266518138942,"y":19081.493802880246},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Popular EMAs","code":"{\n \"codeName\": \"Popular-EMAs\",\n \"singularVariableName\": \"popularEMA\",\n \"pluralVariableName\": \"popularEMAs\"\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/Sparta/EMA/Output/Popular-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c","savedPayload":{"position":{"x":26429.60824923295,"y":19040.052240593683},"targetPosition":{"x":26170.41261558832,"y":19298.987027981224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/EMA/Output/Popular-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/EMA/Output/Popular-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21","savedPayload":{"position":{"x":26532.483440104603,"y":19241.965699633893},"targetPosition":{"x":26170.41261558832,"y":19298.987027981224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"a88a6b8e-0c81-45f5-b69f-33ead2c9af2a","savedPayload":{"position":{"x":26995.709307822795,"y":19260.95457303997},"targetPosition":{"x":27047.325297080555,"y":19516.614084577628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"60b742b7-4a6b-4c3a-a924-7ae2c7c284d8","savedPayload":{"position":{"x":27047.325297080555,"y":19516.614084577628},"targetPosition":{"x":27099.36008109976,"y":19772.213635787975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"f12e6638-8bbd-4bff-b969-232c1861b45c","savedPayload":{"position":{"x":27434.279963399742,"y":19371.545057810305},"targetPosition":{"x":27266.846540682098,"y":19571.86498444646},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"87688525-3fc6-4a15-806d-fd8d0f3fd876","savedPayload":{"position":{"x":27266.846540682098,"y":19571.86498444646},"targetPosition":{"x":27099.36008109976,"y":19772.213635787975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA20","code":"{\n \"codeName\": \"ema20\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema20","id":"71d926a1-6f74-452c-a8af-2df52ccfceb2","savedPayload":{"position":{"x":27621.649181460383,"y":19783.768281506014},"targetPosition":{"x":27360.56241516061,"y":19777.998714115347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5058b626-2b62-47c3-a915-12d6d451487c","savedPayload":{"position":{"x":27360.56241516061,"y":19777.998714115347},"targetPosition":{"x":27099.36008109976,"y":19772.213635787975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA50","code":"{\n \"codeName\": \"ema50\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema50","id":"7d744a34-29cc-46fa-89c9-a3258bbf79f6","savedPayload":{"position":{"x":27415.873047892146,"y":20187.685811122356},"targetPosition":{"x":27257.66338201975,"y":19979.983138540712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1293683f-1686-47f2-8856-ce40dc753450","savedPayload":{"position":{"x":27257.66338201975,"y":19979.983138540712},"targetPosition":{"x":27099.36008109976,"y":19772.213635787975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA100","code":"{\n \"codeName\": \"ema100\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema100","id":"c0465aae-99b4-488f-801b-f0c96c30a695","savedPayload":{"position":{"x":26972.45243609764,"y":20278.732728460338},"targetPosition":{"x":27035.932039543182,"y":20025.465811147184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2b72da7-da22-46bb-8f7b-1f2b4fdc0324","savedPayload":{"position":{"x":27035.932039543182,"y":20025.465811147184},"targetPosition":{"x":27099.36008109976,"y":19772.213635787975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA200","code":"{\n \"codeName\": \"ema200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema200","id":"4ef9d626-2bf5-4a0b-bb72-6528f0ece6eb","savedPayload":{"position":{"x":26624.58382090783,"y":19988.150964821627},"targetPosition":{"x":26862.08989816584,"y":19880.01958244795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9e3b4c1a-8cff-4999-b8af-d8403ee3f614","savedPayload":{"position":{"x":26862.08989816584,"y":19880.01958244795},"targetPosition":{"x":27099.36008109976,"y":19772.213635787975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"3a6ab821-f693-4929-a0d7-ad0499d23e68","savedPayload":{"position":{"x":27099.36008109976,"y":19772.213635787975},"targetPosition":{"x":26170.41261558832,"y":19298.987027981224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},"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 \n\nvariable.ema20 = calculateEMA(20, candle.close, variable.previousEMA20)\nvariable.previousEMA20 = variable.ema20 \n \nvariable.ema50 = calculateEMA(50, candle.close, variable.previousEMA50)\nvariable.previousEMA50 = variable.ema50 \n\nvariable.ema100 = calculateEMA(100, candle.close, variable.previousEMA100)\nvariable.previousEMA100 = variable.ema100 \n\nvariable.ema200 = calculateEMA(200, candle.close, variable.previousEMA200)\nvariable.previousEMA200 = variable.ema200 \n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"25aad3fa-6c8f-46b0-8852-07a95544d6bd","savedPayload":{"position":{"x":26630.846333539663,"y":19820.33557631561},"targetPosition":{"x":26485.274045492148,"y":19725.5833037013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d4805ae2-446b-4e54-89c6-0b2e9df3fade","savedPayload":{"position":{"x":26485.274045492148,"y":19725.5833037013},"targetPosition":{"x":26339.659903390453,"y":19631.198881996683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA20 = 0\nvariable.previousEMA50 = 0\nvariable.previousEMA100 = 0\nvariable.previousEMA200 = 0","id":"c5b50764-185a-43a8-b399-62dd6d81a249","savedPayload":{"position":{"x":26321.47528626242,"y":19978.91489710645},"targetPosition":{"x":26330.494223378228,"y":19804.720187495488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6dd7dc20-5c47-4226-8abc-8551b6bd698f","savedPayload":{"position":{"x":26330.494223378228,"y":19804.720187495488},"targetPosition":{"x":26339.659903390453,"y":19631.198881996683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4c2e867a-f31c-4356-be35-138cdc902c15","savedPayload":{"position":{"x":26339.659903390453,"y":19631.198881996683},"targetPosition":{"x":26170.41261558832,"y":19298.987027981224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"d5894707-b065-429b-ba6b-78c71e6529fe","savedPayload":{"position":{"x":26170.74561421784,"y":19299.063918304782},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"EMA Popular","id":"79bf7438-f77a-4c8d-a450-67027d5fd8bc"}}},{"type":"Product Definition","name":"Base5 EMAs","code":"{\n \"codeName\": \"Base5-EMAs\",\n \"singularVariableName\": \"base5EMA\",\n \"pluralVariableName\": \"base5EMAs\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/EMA/Output/Base5-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n}","id":"85e3f0ce-5331-4c0b-900a-e73aaf53d96e","savedPayload":{"position":{"x":26428.27349687938,"y":19339.507281806862},"targetPosition":{"x":26103.071352478662,"y":19505.313361069857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/EMA/Output/Base5-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/EMA/Output/Base5-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"e04edb48-09ab-4f92-beb7-14ba647de7d6","savedPayload":{"position":{"x":26463.606736070007,"y":19562.271445253205},"targetPosition":{"x":26103.071352478662,"y":19505.313361069857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"6d1e00cd-ea21-4c5d-9f21-bbe4e18eaaa1","savedPayload":{"position":{"x":26653.106220699457,"y":19754.832971906173},"targetPosition":{"x":26746.33902364335,"y":19998.612376581634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7804f5d6-913b-48d3-941a-10135819f0d7","savedPayload":{"position":{"x":26746.33902364335,"y":19998.612376581634},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"615487b1-0964-4bfc-800e-f8d3471dfeb0","savedPayload":{"position":{"x":26867.80253892885,"y":19720.32815582533},"targetPosition":{"x":26853.9190352779,"y":19981.321821443868},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5aaf85b9-35bd-47f1-a2a4-dcfa881bc542","savedPayload":{"position":{"x":26853.9190352779,"y":19981.321821443868},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA5","code":"{\n \"codeName\": \"ema5\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema5","id":"1abd53a1-2924-4db2-b50c-06e36aa91e47","savedPayload":{"position":{"x":27077.939063217545,"y":19776.513646461928},"targetPosition":{"x":26959.086021264273,"y":20009.42655898898},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4912e0cb-1bba-4750-a063-d8d205091281","savedPayload":{"position":{"x":26959.086021264273,"y":20009.42655898898},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA10","code":"{\n \"codeName\": \"ema10\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema10","id":"00ca97c2-f4e9-4d08-af83-3fee7e5d1887","savedPayload":{"position":{"x":27247.010226672322,"y":19913.41371588327},"targetPosition":{"x":27043.672236377206,"y":20077.894532450176},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f7e888a6-a986-45fe-804d-c4cba934bd9b","savedPayload":{"position":{"x":27043.672236377206,"y":20077.894532450176},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA15","code":"{\n \"codeName\": \"ema15\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema15","id":"f259ce57-d1c2-4196-8e55-dae9f1eb78f5","savedPayload":{"position":{"x":27345.783906199937,"y":20107.306683724968},"targetPosition":{"x":27093.089441817738,"y":20174.871717308793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9720b3bd-fcb9-4997-9fe8-9d8682aa9dc9","savedPayload":{"position":{"x":27093.089441817738,"y":20174.871717308793},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA20","code":"{\n \"codeName\": \"ema20\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema20","id":"5c7d8482-a86c-4ebc-8524-31b1a73900c3","savedPayload":{"position":{"x":27357.150834221793,"y":20324.23412345046},"targetPosition":{"x":27098.78000809631,"y":20283.372386903357},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"716e98b8-640e-4653-9c50-ca0286c851c0","savedPayload":{"position":{"x":27098.78000809631,"y":20283.372386903357},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA25","code":"{\n \"codeName\": \"ema25\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema25","id":"031e3d2f-b487-4df2-9892-845d3e43916a","savedPayload":{"position":{"x":27279.142455253157,"y":20527.417423911058},"targetPosition":{"x":27059.76475647177,"y":20384.996647739146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"56be5d1d-2bd8-42dd-9861-729f4bb72ccf","savedPayload":{"position":{"x":27059.76475647177,"y":20384.996647739146},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA50","code":"{\n \"codeName\": \"ema50\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema50","id":"309f068f-74e5-4405-8267-418ea12ca20d","savedPayload":{"position":{"x":27125.24518428757,"y":20681.318791080488},"targetPosition":{"x":26982.79165815912,"y":20461.970670643535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ed5849ae-b0fe-4915-b8c3-8bdb004e5acf","savedPayload":{"position":{"x":26982.79165815912,"y":20461.970670643535},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA100","code":"{\n \"codeName\": \"ema100\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema100","id":"6b164582-e3a2-4ea0-bc0a-e362929d556f","savedPayload":{"position":{"x":26922.0737626494,"y":20759.331808585313},"targetPosition":{"x":26881.17549245939,"y":20500.986749707285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7f690611-834a-4048-bf59-5685995167e9","savedPayload":{"position":{"x":26881.17549245939,"y":20500.986749707285},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA150","code":"{\n \"codeName\": \"ema150\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema150","id":"829731e3-421a-4b49-ac4d-69cc76cdbfab","savedPayload":{"position":{"x":26705.159865494108,"y":20747.97497772578},"targetPosition":{"x":26772.683422362446,"y":20495.30008551887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6b51dbbf-76eb-484b-9535-6043984a7ed6","savedPayload":{"position":{"x":26772.683422362446,"y":20495.30008551887},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA200","code":"{\n \"codeName\": \"ema200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema200","id":"3786f9d4-064e-43ba-8098-d336cd64cfb4","savedPayload":{"position":{"x":26511.292807242542,"y":20649.225884164483},"targetPosition":{"x":26675.723953960667,"y":20445.89447913875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9f96cb9c-ac78-4d23-80e7-650dcff0a56a","savedPayload":{"position":{"x":26675.723953960667,"y":20445.89447913875},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA250","code":"{\n \"codeName\": \"ema250\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema250","id":"710f1d8e-a59f-41d9-9576-e73e292d5cac","savedPayload":{"position":{"x":26374.426696412,"y":20480.203595794475},"targetPosition":{"x":26607.273900240063,"y":20361.32213376145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9e3fc138-8765-46af-95a3-6ee316f49a72","savedPayload":{"position":{"x":26607.273900240063,"y":20361.32213376145},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA500","code":"{\n \"codeName\": \"ema500\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema500","id":"8be9f984-f4ad-471c-885d-b0291c74f04f","savedPayload":{"position":{"x":26318.29029360284,"y":20270.176746203317},"targetPosition":{"x":26579.210811648933,"y":20256.144918367103},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"05a21cb3-24bc-42cf-8269-62f14e8f3ed1","savedPayload":{"position":{"x":26579.210811648933,"y":20256.144918367103},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1000","code":"{\n \"codeName\": \"ema1000\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1000","id":"1001e9de-822a-4a75-9526-390dc6be8fe7","savedPayload":{"position":{"x":26352.473584191117,"y":20053.196569245058},"targetPosition":{"x":26596.533896485817,"y":20148.507721230988},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cc878593-3f3d-4533-9ed1-a7c7fd0cdd99","savedPayload":{"position":{"x":26596.533896485817,"y":20148.507721230988},"targetPosition":{"x":26840.227388292515,"y":20242.46385957528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"7133bdf5-a6d6-4ca5-bc27-390fe276eca6","savedPayload":{"position":{"x":26840.227388292515,"y":20242.46385957528},"targetPosition":{"x":26103.071352478662,"y":19505.313361069857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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 \n\nvariable.ema5 = calculateEMA(5, candle.close, variable.previousEMA5)\nvariable.previousEMA5 = variable.ema5\n\nvariable.ema10 = calculateEMA(10, candle.close, variable.previousEMA10)\nvariable.previousEMA10 = variable.ema10\n\nvariable.ema15 = calculateEMA(15, candle.close, variable.previousEMA15)\nvariable.previousEMA15 = variable.ema15\n\nvariable.ema20 = calculateEMA(20, candle.close, variable.previousEMA20)\nvariable.previousEMA20 = variable.ema20\n\nvariable.ema25 = calculateEMA(25, candle.close, variable.previousEMA25)\nvariable.previousEMA25 = variable.ema25\n\nvariable.ema50 = calculateEMA(50, candle.close, variable.previousEMA50)\nvariable.previousEMA50 = variable.ema50\n\nvariable.ema100 = calculateEMA(100, candle.close, variable.previousEMA100)\nvariable.previousEMA100 = variable.ema100\n\nvariable.ema150 = calculateEMA(150, candle.close, variable.previousEMA150)\nvariable.previousEMA150 = variable.ema150\n\nvariable.ema200 = calculateEMA(200, candle.close, variable.previousEMA200)\nvariable.previousEMA200 = variable.ema200\n\nvariable.ema250 = calculateEMA(250, candle.close, variable.previousEMA250)\nvariable.previousEMA250 = variable.ema250\n\nvariable.ema500 = calculateEMA(500, candle.close, variable.previousEMA500)\nvariable.previousEMA500 = variable.ema500\n\nvariable.ema1000 = calculateEMA(1000, candle.close, variable.previousEMA1000)\nvariable.previousEMA1000 = variable.ema1000\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n","id":"3ea21697-ef5d-421a-825c-db6f04a041ce","savedPayload":{"position":{"x":26379.02790286672,"y":20144.354415632475},"targetPosition":{"x":26269.74236446048,"y":20007.33642918737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d955ad88-0ca4-443b-8d4e-fa0c322d7797","savedPayload":{"position":{"x":26269.74236446048,"y":20007.33642918737},"targetPosition":{"x":26161.017070179318,"y":19872.751150422075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA5 = 0\nvariable.previousEMA10 = 0\nvariable.previousEMA15 = 0\nvariable.previousEMA20 = 0\nvariable.previousEMA25 = 0\nvariable.previousEMA50 = 0\nvariable.previousEMA100 = 0\nvariable.previousEMA150 = 0\nvariable.previousEMA200 = 0\nvariable.previousEMA250 = 0\nvariable.previousEMA500 = 0\nvariable.previousEMA1000 = 0","id":"b951bfdc-9216-4494-8bcf-66099ea9eb8f","savedPayload":{"position":{"x":26035.748001326585,"y":20197.47790693244},"targetPosition":{"x":26098.416064473804,"y":20034.914186168095},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2aa36b6f-bde7-433d-a7b6-e646b19e2c20","savedPayload":{"position":{"x":26098.416064473804,"y":20034.914186168095},"targetPosition":{"x":26161.017070179318,"y":19872.751150422075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"54d9ab04-cfe7-433e-8c85-36a511b38d6d","savedPayload":{"position":{"x":26161.017070179318,"y":19872.751150422075},"targetPosition":{"x":26103.071352478662,"y":19505.313361069857},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"9a37881e-7d9a-4279-95b2-8743de82eec5","savedPayload":{"position":{"x":26103.50266758735,"y":19505.58545046986},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base6 EMAs","code":"{\n \"codeName\": \"Base6-EMAs\",\n \"singularVariableName\": \"base6EMA\",\n \"pluralVariableName\": \"base6EMAs\"\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/Sparta/EMA/Output/Base6-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"6b6840f7-3b76-474a-9d27-9515cbcd6499","savedPayload":{"position":{"x":26335.83249619714,"y":19623.799390125583},"targetPosition":{"x":25975.33099461369,"y":19681.082030097707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/EMA/Output/Base6-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/EMA/Output/Base6-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"ef3d5a7d-11eb-4ead-8e24-49ac7c80b0c7","savedPayload":{"position":{"x":26300.6628952495,"y":19846.677525501287},"targetPosition":{"x":25975.33099461369,"y":19681.082030097707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"611ac809-a75a-4550-b9a7-2f5f43cae1e8","savedPayload":{"position":{"x":26421.323378442543,"y":20088.210335124208},"targetPosition":{"x":26434.603214083196,"y":20348.93673527185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"77290003-4665-4c78-bce6-7cb50a44bb31","savedPayload":{"position":{"x":26434.603214083196,"y":20348.93673527185},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"59bd5c2f-dd37-4724-8b40-593ba56967ba","savedPayload":{"position":{"x":26636.2065152586,"y":20121.848061690114},"targetPosition":{"x":26542.2989980063,"y":20365.79285076943},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"70c54561-94ce-4d2a-a56e-cf1cd4d2a2f5","savedPayload":{"position":{"x":26542.2989980063,"y":20365.79285076943},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA6","code":"{\n \"codeName\": \"ema6\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema6","id":"330b3cad-7015-4691-98ff-e6c0aaeaa807","savedPayload":{"position":{"x":26818.753388461686,"y":20240.247858138566},"targetPosition":{"x":26633.668953955363,"y":20425.035975685583},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a7e48821-628f-4393-9272-055bcc8ea5f7","savedPayload":{"position":{"x":26633.668953955363,"y":20425.035975685583},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA12","code":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema12","id":"7679a1d7-49b9-4798-82d2-f00dbfd7db05","savedPayload":{"position":{"x":26937.282923181992,"y":20422.743103607638},"targetPosition":{"x":26692.980280354324,"y":20516.316384024813},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"53cda9a0-2acf-4fa9-b52b-c860da5dbb32","savedPayload":{"position":{"x":26692.980280354324,"y":20516.316384024813},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA18","code":"{\n \"codeName\": \"ema18\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema18","id":"092a466e-c714-41b3-8053-a4c060520f3c","savedPayload":{"position":{"x":26971.318039151512,"y":20637.299960796165},"targetPosition":{"x":26710.01957386616,"y":20623.64168407849},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"446296f9-21fa-4a92-bc49-23fb81af896b","savedPayload":{"position":{"x":26710.01957386616,"y":20623.64168407849},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA24","code":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema24","id":"f666cf13-3e37-4649-a2fc-338fabb1f7d0","savedPayload":{"position":{"x":26914.949200529692,"y":20847.57328117257},"targetPosition":{"x":26681.830062098074,"y":20728.816319806196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"518927a0-e986-4c9e-a645-75c02c2f571b","savedPayload":{"position":{"x":26681.830062098074,"y":20728.816319806196},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA30","code":"{\n \"codeName\": \"ema30\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema30","id":"3c76eaaf-56ac-4e91-9ee5-11b32219d2ea","savedPayload":{"position":{"x":26777.924878457696,"y":21016.7647272828},"targetPosition":{"x":26613.29476129466,"y":20813.44350889668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3b056114-3148-432d-908e-d82df0355b7f","savedPayload":{"position":{"x":26613.29476129466,"y":20813.44350889668},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA60","code":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema60","id":"ee78d4d5-f202-4d8e-ae88-eea38f2d0bc0","savedPayload":{"position":{"x":26583.940911061636,"y":21115.609063087886},"targetPosition":{"x":26516.27067859819,"y":20862.881269757036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"83802e58-4437-4ddc-b329-9ae962866387","savedPayload":{"position":{"x":26516.27067859819,"y":20862.881269757036},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA120","code":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema120","id":"ab81fc7a-4873-49d2-a3ef-c9c1eed99dba","savedPayload":{"position":{"x":26366.97428849141,"y":21127.025297290988},"targetPosition":{"x":26407.74789471418,"y":20868.58863140601},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bec21f4d-ac0c-4b70-a565-16d065d1e89c","savedPayload":{"position":{"x":26407.74789471418,"y":20868.58863140601},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA180","code":"{\n \"codeName\": \"ema180\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema180","id":"ce0ce81c-9577-4cc6-8edd-ad99c52916aa","savedPayload":{"position":{"x":26163.742354290847,"y":21049.046464716244},"targetPosition":{"x":26306.102434703447,"y":20829.578836065422},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7318a961-0663-4a33-9295-21a8ab990854","savedPayload":{"position":{"x":26306.102434703447,"y":20829.578836065422},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA240","code":"{\n \"codeName\": \"ema240\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema240","id":"f9c4fe37-e76d-4601-9933-ce1ad3e8ad3d","savedPayload":{"position":{"x":26009.83154278303,"y":20895.17773448728},"targetPosition":{"x":26229.130257274093,"y":20752.603200987316},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b2bfa489-cb63-498e-8a80-a82ebf19d0e6","savedPayload":{"position":{"x":26229.130257274093,"y":20752.603200987316},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA300","code":"{\n \"codeName\": \"ema300\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema300","id":"8b93fa9d-ea11-4654-a6ac-70411f0db75a","savedPayload":{"position":{"x":25931.873881259056,"y":20692.08628485348},"targetPosition":{"x":26190.153360211185,"y":20650.990676340134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a6926058-2ae5-454e-b696-b9d49162e901","savedPayload":{"position":{"x":26190.153360211185,"y":20650.990676340134},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA600","code":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema600","id":"b67f8d22-c54d-4a21-a726-a8975c10d710","savedPayload":{"position":{"x":25943.403781864585,"y":20475.380263830466},"targetPosition":{"x":26195.980748883732,"y":20542.463523636452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cd299cac-3be1-4899-8816-70baccd30168","savedPayload":{"position":{"x":26195.980748883732,"y":20542.463523636452},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1200","code":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1200","id":"f7b1d5d4-86c8-4a90-a98a-774fe1171e73","savedPayload":{"position":{"x":26043.205226859816,"y":20279.10761267733},"targetPosition":{"x":26245.83355741118,"y":20445.200945262663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"717ba1d7-3b27-4f87-8e25-c2a26f435e67","savedPayload":{"position":{"x":26245.83355741118,"y":20445.200945262663},"targetPosition":{"x":26448.536189033166,"y":20609.94736034233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"003162cf-ab76-4dea-ac72-a4dd3a0e87ac","savedPayload":{"position":{"x":26448.536189033166,"y":20609.94736034233},"targetPosition":{"x":25975.33099461369,"y":19681.082030097707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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 \n\nvariable.ema6 = calculateEMA(6, candle.close, variable.previousEMA6)\nvariable.previousEMA6 = variable.ema6\n\nvariable.ema12 = calculateEMA(12, candle.close, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12\n\nvariable.ema18 = calculateEMA(18, candle.close, variable.previousEMA18)\nvariable.previousEMA18 = variable.ema18\n\nvariable.ema24 = calculateEMA(24, candle.close, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24\n\nvariable.ema30 = calculateEMA(30, candle.close, variable.previousEMA30)\nvariable.previousEMA30 = variable.ema30\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema180 = calculateEMA(180, candle.close, variable.previousEMA180)\nvariable.previousEMA180 = variable.ema180\n\nvariable.ema240 = calculateEMA(240, candle.close, variable.previousEMA240)\nvariable.previousEMA240 = variable.ema240\n\nvariable.ema300 = calculateEMA(300, candle.close, variable.previousEMA300)\nvariable.previousEMA300 = variable.ema300\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"49789f74-3691-45b3-8c29-9a72500ae81c","savedPayload":{"position":{"x":26040.283871242515,"y":20374.050373228747},"targetPosition":{"x":25978.800763514122,"y":20209.978008987644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ed1c9899-0b00-4cc5-b30d-faefdbe914d6","savedPayload":{"position":{"x":25978.800763514122,"y":20209.978008987644},"targetPosition":{"x":25917.09926231119,"y":20048.309028597712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA6 = 0\nvariable.previousEMA12 = 0\nvariable.previousEMA18 = 0\nvariable.previousEMA24 = 0\nvariable.previousEMA30 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA180 = 0\nvariable.previousEMA240 = 0\nvariable.previousEMA300 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA1200 = 0","id":"db307137-4eec-41a0-93ca-af5623c7ecf5","savedPayload":{"position":{"x":25697.473184123985,"y":20318.50804568132},"targetPosition":{"x":25807.383664578443,"y":20183.247908470472},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c17eb75-3069-47ad-b303-be44390e4736","savedPayload":{"position":{"x":25807.383664578443,"y":20183.247908470472},"targetPosition":{"x":25917.09926231119,"y":20048.309028597712},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"bd1f404b-64bb-4f2e-95f6-8d52f40bebad","savedPayload":{"position":{"x":25917.09926231119,"y":20048.309028597712},"targetPosition":{"x":25975.33099461369,"y":19681.082030097707},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"e4267570-575b-4e59-9667-cb78aaae052c","savedPayload":{"position":{"x":25975.6574086798,"y":19681.471375428195},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base7 EMAs","code":"{\n \"codeName\": \"Base7-EMAs\",\n \"singularVariableName\": \"base7EMA\",\n \"pluralVariableName\": \"base7EMAs\"\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/Sparta/EMA/Output/Base7-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199","savedPayload":{"position":{"x":26161.53744148963,"y":19865.78781619823},"targetPosition":{"x":25799.556803810126,"y":19808.87495346475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/EMA/Output/Base7-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/EMA/Output/Base7-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"15ccbcff-318d-46db-93f2-d649b57fd52a","savedPayload":{"position":{"x":26058.64214494826,"y":20067.784990264787},"targetPosition":{"x":25799.556803810126,"y":19808.87495346475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"b91e2094-b8f7-4f7f-a956-30de55c693b7","savedPayload":{"position":{"x":26097.476064010476,"y":20333.815952993067},"targetPosition":{"x":26029.68879520305,"y":20585.91373624895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5163d7f4-3b6c-41c3-b7f6-ec13109fcb0e","savedPayload":{"position":{"x":26029.68879520305,"y":20585.91373624895},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"ea560ee8-06c9-4348-a5b4-24992035245e","savedPayload":{"position":{"x":26292.00632696931,"y":20432.347455321607},"targetPosition":{"x":26127.213109399425,"y":20635.30436180101},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4b5dcfda-66ec-4a20-9c4c-0718b51cf761","savedPayload":{"position":{"x":26127.213109399425,"y":20635.30436180101},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA7","code":"{\n \"codeName\": \"ema7\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema7","id":"90e20354-4dd5-4e56-aaf5-cf725f02c1e6","savedPayload":{"position":{"x":26429.099107289916,"y":20601.420101378008},"targetPosition":{"x":26195.853085798666,"y":20719.92383910343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4adf5737-3d1a-4610-9a31-89faddbe679e","savedPayload":{"position":{"x":26195.853085798666,"y":20719.92383910343},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA14","code":"{\n \"codeName\": \"ema14\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema14","id":"b158c3b7-a93f-4e13-8d80-dff1a7172416","savedPayload":{"position":{"x":26485.45434965403,"y":20811.70304287493},"targetPosition":{"x":26224.06517766433,"y":20825.1208891448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6c0f0982-caf3-4c7e-a729-54c511ffb65e","savedPayload":{"position":{"x":26224.06517766433,"y":20825.1208891448},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA21","code":"{\n \"codeName\": \"ema21\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema21","id":"3ce74000-2892-4b42-a12e-c8efc1504710","savedPayload":{"position":{"x":26451.36426792664,"y":21026.28186229961},"targetPosition":{"x":26207.024587752083,"y":20932.46282902026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ff999b95-7623-4eee-b11c-f53dae69f69c","savedPayload":{"position":{"x":26207.024587752083,"y":20932.46282902026},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA28","code":"{\n \"codeName\": \"ema28\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema28","id":"95ccd057-5e33-4b72-a7b0-e44479f3b195","savedPayload":{"position":{"x":26332.724431183997,"y":21208.920476455092},"targetPosition":{"x":26147.686890464607,"y":21023.82007566199},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a30ef925-4ab9-45f6-98f3-6723e57fbf97","savedPayload":{"position":{"x":26147.686890464607,"y":21023.82007566199},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA35","code":"{\n \"codeName\": \"ema35\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema35","id":"83513896-dfd7-45a8-aa9a-1922dc9b5b97","savedPayload":{"position":{"x":26150.049426174577,"y":21327.537696270483},"targetPosition":{"x":26056.317073970342,"y":21083.153132714735},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2d2b734-e754-4b6c-856b-053eb5b13694","savedPayload":{"position":{"x":26056.317073970342,"y":21083.153132714735},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA70","code":"{\n \"codeName\": \"ema70\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema70","id":"23ca8b8e-400b-4638-946c-c871a632d17b","savedPayload":{"position":{"x":25935.413934816977,"y":21361.620783873735},"targetPosition":{"x":25948.955445876996,"y":21100.202147359585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"863c717d-d171-4616-ac79-dd4a5956bfb5","savedPayload":{"position":{"x":25948.955445876996,"y":21100.202147359585},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA140","code":"{\n \"codeName\": \"ema140\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema140","id":"fb446f49-e024-4246-9783-d41ea25a8a63","savedPayload":{"position":{"x":25725.02845099485,"y":21305.276027389802},"targetPosition":{"x":25843.724991407147,"y":21072.016523703493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ba2fbf20-a074-4d89-b1f8-2e00f141b25e","savedPayload":{"position":{"x":25843.724991407147,"y":21072.016523703493},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EM210","code":"{\n \"codeName\": \"ema210\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema210","id":"dd3ed495-e64d-4b76-ba8a-8a6fbaebc223","savedPayload":{"position":{"x":25555.761379433407,"y":21168.259425436594},"targetPosition":{"x":25759.06405082332,"y":21003.476390099164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fbc7524a-d8ff-40c4-9691-1397bd774535","savedPayload":{"position":{"x":25759.06405082332,"y":21003.476390099164},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA280","code":"{\n \"codeName\": \"ema280\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema280","id":"45655778-7860-46a8-9ee1-12ab9d4f463b","savedPayload":{"position":{"x":25456.88850228509,"y":20974.286579158983},"targetPosition":{"x":25709.621584130673,"y":20906.440207740394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"49670f83-5516-4fed-bfc9-3ea4ac3a4865","savedPayload":{"position":{"x":25709.621584130673,"y":20906.440207740394},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA350","code":"{\n \"codeName\": \"ema350\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema350","id":"6203288d-a807-49ee-a209-4466b959be33","savedPayload":{"position":{"x":25445.512318738918,"y":20757.45102410328},"targetPosition":{"x":25703.962378827924,"y":20797.942064245795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4f06f627-f385-494a-bb6a-a06c62d0d20f","savedPayload":{"position":{"x":25703.962378827924,"y":20797.942064245795},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA700","code":"{\n \"codeName\": \"ema700\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema700","id":"1663af80-49b7-4593-ad91-6c79fc61f61c","savedPayload":{"position":{"x":25523.621450245017,"y":20554.450686774784},"targetPosition":{"x":25743.14186051521,"y":20696.286797346704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b3810873-e8ea-4466-b011-095b648f0064","savedPayload":{"position":{"x":25743.14186051521,"y":20696.286797346704},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1400","code":"{\n \"codeName\": \"ema1400\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1400","id":"92eee4c6-788b-4aa2-8608-5a026f9f5590","savedPayload":{"position":{"x":25680.30749794678,"y":20396.101145326284},"targetPosition":{"x":25820.70068144438,"y":20619.141938627912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"26a199f6-c167-4de7-9513-0d9c453d8108","savedPayload":{"position":{"x":25820.70068144438,"y":20619.141938627912},"targetPosition":{"x":25962.505030895016,"y":20838.540818596157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"e78e6e7a-03db-4e3b-ae8e-b1c309b6ec9e","savedPayload":{"position":{"x":25962.505030895016,"y":20838.540818596157},"targetPosition":{"x":25799.556803810126,"y":19808.87495346475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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 \n\nvariable.ema7 = calculateEMA(7, candle.close, variable.previousEMA7)\nvariable.previousEMA7 = variable.ema7\n\nvariable.ema14 = calculateEMA(14, candle.close, variable.previousEMA14)\nvariable.previousEMA14 = variable.ema14\n\nvariable.ema21 = calculateEMA(21, candle.close, variable.previousEMA21)\nvariable.previousEMA21 = variable.ema21\n\nvariable.ema28 = calculateEMA(28, candle.close, variable.previousEMA28)\nvariable.previousEMA28 = variable.ema28\n\nvariable.ema35 = calculateEMA(35, candle.close, variable.previousEMA35)\nvariable.previousEMA35 = variable.ema35\n\nvariable.ema70 = calculateEMA(70, candle.close, variable.previousEMA70)\nvariable.previousEMA70 = variable.ema70\n\nvariable.ema140 = calculateEMA(140, candle.close, variable.previousEMA140)\nvariable.previousEMA140 = variable.ema140\n\nvariable.ema210 = calculateEMA(210, candle.close, variable.previousEMA210)\nvariable.previousEMA210 = variable.ema210\n\nvariable.ema280 = calculateEMA(280, candle.close, variable.previousEMA280)\nvariable.previousEMA280 = variable.ema280\n\nvariable.ema350 = calculateEMA(350, candle.close, variable.previousEMA350)\nvariable.previousEMA350 = variable.ema350\n\nvariable.ema700 = calculateEMA(700, candle.close, variable.previousEMA700)\nvariable.previousEMA700 = variable.ema700\n\nvariable.ema1400 = calculateEMA(1400, candle.close, variable.previousEMA1400)\nvariable.previousEMA1400 = variable.ema1400\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"9eb652ba-7df8-41a2-bc5f-c6a1922d8b9c","savedPayload":{"position":{"x":25645.69734838427,"y":20490.96433350516},"targetPosition":{"x":25638.901788487987,"y":20313.597925711514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"659c5fa3-33f6-4127-b4f0-dc1bb0c25691","savedPayload":{"position":{"x":25638.901788487987,"y":20313.597925711514},"targetPosition":{"x":25630.31962216364,"y":20140.780600110204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA7 = 0\nvariable.previousEMA14 = 0\nvariable.previousEMA21 = 0\nvariable.previousEMA28 = 0\nvariable.previousEMA35 = 0\nvariable.previousEMA70 = 0\nvariable.previousEMA140 = 0\nvariable.previousEMA210 = 0\nvariable.previousEMA280 = 0\nvariable.previousEMA350 = 0\nvariable.previousEMA700 = 0\nvariable.previousEMA1400 = 0","id":"03253e10-8b5a-4d6d-abc1-1b171138444c","savedPayload":{"position":{"x":25337.828986497523,"y":20329.73070006669},"targetPosition":{"x":25484.18677031459,"y":20235.204341422912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"07d4aaa2-43ba-42a3-9a5b-73e5866c1307","savedPayload":{"position":{"x":25484.18677031459,"y":20235.204341422912},"targetPosition":{"x":25630.31962216364,"y":20140.780600110204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"91a31871-1901-4a45-9b00-c5aa30a37bf2","savedPayload":{"position":{"x":25630.31962216364,"y":20140.780600110204},"targetPosition":{"x":25799.556803810126,"y":19808.87495346475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984","savedPayload":{"position":{"x":25799.695965744068,"y":19809.288280852797},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"EMA Base 7","id":"a52a9764-3ef2-44e6-82bd-e6538058119d"}}},{"type":"Product Definition","name":"Base11 EMAs","code":"{\n \"codeName\": \"Base11-EMAs\",\n \"singularVariableName\": \"base11EMA\",\n \"pluralVariableName\": \"base11EMAs\"\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/Sparta/EMA/Output/Base11-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"5586aa74-2ecb-4b71-83ea-d621aa400660","savedPayload":{"position":{"x":25919.49431342299,"y":20042.252825659056},"targetPosition":{"x":25592.8037390966,"y":19876.136948044063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/EMA/Output/Base11-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/EMA/Output/Base11-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3","savedPayload":{"position":{"x":25758.983273639267,"y":20202.635210254684},"targetPosition":{"x":25592.8037390966,"y":19876.136948044063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"b0559af0-2d8b-401c-8619-1eb20942ec2a","savedPayload":{"position":{"x":25852.180408175805,"y":20599.36932969662},"targetPosition":{"x":25640.931981104044,"y":20752.607011922915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"33f46215-3b1a-422a-9305-89c6ffb342f6","savedPayload":{"position":{"x":25640.931981104044,"y":20752.607011922915},"targetPosition":{"x":25429.793050689503,"y":20905.864773734535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"7bfaab7e-73a5-4086-9eb8-d4a6fdfbbbcf","savedPayload":{"position":{"x":25945.71868354977,"y":20987.682342873624},"targetPosition":{"x":25687.779836072295,"y":20946.776791612934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6155e3b0-2648-407e-b085-4eac778ca3e8","savedPayload":{"position":{"x":25687.779836072295,"y":20946.776791612934},"targetPosition":{"x":25429.793050689503,"y":20905.864773734535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA11","code":"{\n \"codeName\": \"ema11\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema11","id":"16f9f1d2-c73c-4eb6-9240-0d4015e3252a","savedPayload":{"position":{"x":25736.728426425565,"y":21328.621048496792},"targetPosition":{"x":25583.28302002551,"y":21117.2936655806},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b925a6aa-04ee-465b-aa93-fc02066b4e3c","savedPayload":{"position":{"x":25583.28302002551,"y":21117.2936655806},"targetPosition":{"x":25429.793050689503,"y":20905.864773734535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA22","code":"{\n \"codeName\": \"ema22\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema22","id":"21cca6ba-53d3-4fd0-b3c9-43a71702e4f3","savedPayload":{"position":{"x":25348.30029697079,"y":21421.977794343435},"targetPosition":{"x":25389.036424092847,"y":21163.98413368417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7f02db91-5147-438c-98c9-e024fba210a2","savedPayload":{"position":{"x":25389.036424092847,"y":21163.98413368417},"targetPosition":{"x":25429.793050689503,"y":20905.864773734535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA33","code":"{\n \"codeName\": \"ema33\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema33","id":"69184123-7d64-41a6-ad3f-8f53bf358f95","savedPayload":{"position":{"x":25007.246557221726,"y":21213.0425963079},"targetPosition":{"x":25218.485594665704,"y":21059.496030873117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"55be1211-a38f-4ff4-8d12-fa78fa8ba2dd","savedPayload":{"position":{"x":25218.485594665704,"y":21059.496030873117},"targetPosition":{"x":25429.793050689503,"y":20905.864773734535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA55","code":"{\n \"codeName\": \"ema55\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema55","id":"5281da7d-c090-4637-9a42-dc28599f0385","savedPayload":{"position":{"x":24913.843894987836,"y":20824.786617655373},"targetPosition":{"x":25171.802736508384,"y":20865.319615483524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"710e13ba-afd9-41c2-b7e8-f0ef7be4bb53","savedPayload":{"position":{"x":25171.802736508384,"y":20865.319615483524},"targetPosition":{"x":25429.793050689503,"y":20905.864773734535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA111","code":"{\n \"codeName\": \"ema111\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema111","id":"f0dd0fa6-ace3-44ea-a701-e36808f6e348","savedPayload":{"position":{"x":25122.70030822407,"y":20484.28001230776},"targetPosition":{"x":25276.477086566916,"y":20694.931537683766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"461f6d65-e227-4362-b62c-16b7225014f6","savedPayload":{"position":{"x":25276.477086566916,"y":20694.931537683766},"targetPosition":{"x":25429.793050689503,"y":20905.864773734535},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"6a451383-677d-4da8-a15d-f746cda23991","savedPayload":{"position":{"x":25429.793050689503,"y":20905.864773734535},"targetPosition":{"x":25592.8037390966,"y":19876.136948044063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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 \n\nvariable.ema11 = calculateEMA(11, candle.close, variable.previousEMA11)\nvariable.previousEMA11 = variable.ema11\n\nvariable.ema22 = calculateEMA(22, candle.close, variable.previousEMA22)\nvariable.previousEMA22 = variable.ema22\n\nvariable.ema33 = calculateEMA(33, candle.close, variable.previousEMA33)\nvariable.previousEMA33 = variable.ema33\n\nvariable.ema55 = calculateEMA(55, candle.close, variable.previousEMA55)\nvariable.previousEMA55 = variable.ema55\n\nvariable.ema111 = calculateEMA(111, candle.close, variable.previousEMA111)\nvariable.previousEMA111 = variable.ema111\n\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"38ceaace-d9e5-482a-a15b-c7bb06767056","savedPayload":{"position":{"x":25234.355863881392,"y":20480.283795797146},"targetPosition":{"x":25279.239806576108,"y":20312.70654190839},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"db87f908-271b-44be-8756-706c3ff98c29","savedPayload":{"position":{"x":25279.239806576108,"y":20312.70654190839},"targetPosition":{"x":25324.07313887864,"y":20144.932797894275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA11 = 0\nvariable.previousEMA22 = 0\nvariable.previousEMA33 = 0\nvariable.previousEMA55 = 0\nvariable.previousEMA111 = 0","id":"5c34d18a-ac4e-4af6-aa52-cb4c0f016e6d","savedPayload":{"position":{"x":24987.68905922353,"y":20234.681536444103},"targetPosition":{"x":25156.052429401236,"y":20189.76347649246},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f34dd488-d3ea-4bd0-b4f8-68ea81c4a635","savedPayload":{"position":{"x":25156.052429401236,"y":20189.76347649246},"targetPosition":{"x":25324.07313887864,"y":20144.932797894275},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"e02efb2a-bb39-4a12-89c8-37c254e9bf5f","savedPayload":{"position":{"x":25324.07313887864,"y":20144.932797894275},"targetPosition":{"x":25592.8037390966,"y":19876.136948044063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"21df4f44-96eb-453b-8652-4ce2dc03424c","savedPayload":{"position":{"x":25592.838895490815,"y":19876.488456205352},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"EMA Base 11","id":"cef26be6-07a9-415a-8439-99d06b1e1cfb"}}},{"type":"Product Definition","name":"Base12 EMAs","code":"{\n \"codeName\": \"Base12-EMAs\",\n \"singularVariableName\": \"base12EMA\",\n \"pluralVariableName\": \"base12EMAs\"\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/Sparta/EMA/Output/Base12-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"ea61dfed-8f93-4b4f-8575-61ca2547ea90","savedPayload":{"position":{"x":25634.01146748154,"y":20133.98368450663},"targetPosition":{"x":25375.67461809943,"y":19876.082489219556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/EMA/Output/Base12-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/EMA/Output/Base12-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"b251aca0-1996-4d13-99ed-6fb9796ec8d6","savedPayload":{"position":{"x":25432.83258048018,"y":20236.634268562862},"targetPosition":{"x":25375.67461809943,"y":19876.082489219556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"f1df9aec-05c4-40d0-a82c-d17a0e2f1596","savedPayload":{"position":{"x":25318.045337821975,"y":20488.765432279037},"targetPosition":{"x":25110.2008331079,"y":20646.62417846846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c0c9e78-796b-4845-8cbb-c153a6b7c791","savedPayload":{"position":{"x":25110.2008331079,"y":20646.62417846846},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"355a63aa-8c8c-4eca-a246-272eb464d094","savedPayload":{"position":{"x":25414.80206027237,"y":20700.675445049015},"targetPosition":{"x":25158.67036728697,"y":20752.74378512766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"256d27f8-b34e-46ca-9b5f-531823534e11","savedPayload":{"position":{"x":25158.67036728697,"y":20752.74378512766},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA12","code":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema12","id":"121d3c83-9fb4-44a1-93ed-e9755dfcc59e","savedPayload":{"position":{"x":25409.68670276435,"y":20933.036442896395},"targetPosition":{"x":25156.137995289075,"y":20869.04791858283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b386dd09-a2a1-4669-a73b-6df619dee15d","savedPayload":{"position":{"x":25156.137995289075,"y":20869.04791858283},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA24","code":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema24","id":"e4418d5e-74e5-440c-bd58-f8f18245ba6d","savedPayload":{"position":{"x":25303.968609163792,"y":21140.502359291677},"targetPosition":{"x":25103.271038198993,"y":20972.83415149407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c23ef82a-9c9a-477f-8d48-14d93f06e3c6","savedPayload":{"position":{"x":25103.271038198993,"y":20972.83415149407},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA36","code":"{\n \"codeName\": \"ema36\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema36","id":"21dc0fd4-01f5-428b-9a9e-45307981af50","savedPayload":{"position":{"x":25118.656023234034,"y":21281.566627169137},"targetPosition":{"x":25010.589775510954,"y":21043.39756693327},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e613c9c6-61da-4830-9289-8b400c3b41d7","savedPayload":{"position":{"x":25010.589775510954,"y":21043.39756693327},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA48","code":"{\n \"codeName\": \"ema48\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema48","id":"6afd224b-ba9c-49eb-973f-e7e3d609e82e","savedPayload":{"position":{"x":24890.901397335503,"y":21328.2690323062},"targetPosition":{"x":24896.67592760082,"y":21066.759979803384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e49e8056-f659-4090-91e7-0e83b4a3654e","savedPayload":{"position":{"x":24896.67592760082,"y":21066.759979803384},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA60","code":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema60","id":"2db84126-00b9-4cde-bb35-66f9fcb8bfc6","savedPayload":{"position":{"x":24665.03198563619,"y":21271.351463132498},"targetPosition":{"x":24783.70716277326,"y":21038.292895962397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"77a0ccf0-aa97-4a11-b1db-bd74d33c28b7","savedPayload":{"position":{"x":24783.70716277326,"y":21038.292895962397},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA120","code":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema120","id":"e3f30f2b-23c8-4bac-b19e-69ae740a4773","savedPayload":{"position":{"x":24486.215815318217,"y":21122.088456241083},"targetPosition":{"x":24694.272623544366,"y":20963.63770625134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fca691ac-2651-4619-af01-48a0fafcfd75","savedPayload":{"position":{"x":24694.272623544366,"y":20963.63770625134},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA240","code":"{\n \"codeName\": \"ema240\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema240","id":"99b8a3c3-7e86-40aa-ad44-82a0bdb1f208","savedPayload":{"position":{"x":24389.86757387539,"y":20910.04999058508},"targetPosition":{"x":24646.088883508866,"y":20857.584834013112},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6f194951-d813-4418-be45-420680399c17","savedPayload":{"position":{"x":24646.088883508866,"y":20857.584834013112},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA360","code":"{\n \"codeName\": \"ema360\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema360","id":"fd430a5b-2a43-40c5-ae9d-4c7f901b527d","savedPayload":{"position":{"x":24395.05982507719,"y":20677.68391167689},"targetPosition":{"x":24648.699054463017,"y":20741.361303233825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d9b00ca8-b18b-43da-9f3d-889fe101120c","savedPayload":{"position":{"x":24648.699054463017,"y":20741.361303233825},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA480","code":"{\n \"codeName\": \"ema480\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema480","id":"4601277a-9f86-41a4-81b1-21b3c13d1d34","savedPayload":{"position":{"x":24500.742564271473,"y":20470.271899764408},"targetPosition":{"x":24701.58931330819,"y":20637.617549673454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2eccd071-3101-47bb-a8e6-008703cf6848","savedPayload":{"position":{"x":24701.58931330819,"y":20637.617549673454},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA600","code":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema600","id":"5c687030-e498-4126-8ce9-0c99a427168e","savedPayload":{"position":{"x":24685.946290939297,"y":20329.426863807494},"targetPosition":{"x":24794.329278851856,"y":20567.14569374995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e715e341-88d4-477c-9d7f-b0bb85ee3022","savedPayload":{"position":{"x":24794.329278851856,"y":20567.14569374995},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1200","code":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1200","id":"7c39560e-7434-4f50-aa3d-b93e131ce066","savedPayload":{"position":{"x":24920.409004912497,"y":20277.84440501114},"targetPosition":{"x":24908.624046235218,"y":20543.957275284934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f1939b18-3af9-4376-b8ba-6f506b215f82","savedPayload":{"position":{"x":24908.624046235218,"y":20543.957275284934},"targetPosition":{"x":24902.466641792904,"y":20805.047480926856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"512144fe-195c-47ae-b5b7-8167ba61a4bb","savedPayload":{"position":{"x":24902.466641792904,"y":20805.047480926856},"targetPosition":{"x":25375.67461809943,"y":19876.082489219556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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 \n\nvariable.ema12 = calculateEMA(12, candle.close, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12\n\nvariable.ema24 = calculateEMA(24, candle.close, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24\n\nvariable.ema36 = calculateEMA(36, candle.close, variable.previousEMA36)\nvariable.previousEMA36 = variable.ema36\n\nvariable.ema48 = calculateEMA(48, candle.close, variable.previousEMA48)\nvariable.previousEMA48 = variable.ema48\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema240 = calculateEMA(240, candle.close, variable.previousEMA240)\nvariable.previousEMA240 = variable.ema240\n\nvariable.ema360 = calculateEMA(360, candle.close, variable.previousEMA360)\nvariable.previousEMA360 = variable.ema360\n\nvariable.ema480 = calculateEMA(480, candle.close, variable.previousEMA480)\nvariable.previousEMA480 = variable.ema480\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"c3936de6-e8b4-4459-8c31-d97bea84cbfa","savedPayload":{"position":{"x":24848.855877077014,"y":20340.396564513452},"targetPosition":{"x":24949.95652669195,"y":20189.72998199554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c4c50d01-1dff-4700-853a-986821fd55c5","savedPayload":{"position":{"x":24949.95652669195,"y":20189.72998199554},"targetPosition":{"x":25044.249631036022,"y":20044.711356437652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA12 = 0\nvariable.previousEMA24 = 0\nvariable.previousEMA36 = 0\nvariable.previousEMA48 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA240 = 0\nvariable.previousEMA360 = 0\nvariable.previousEMA480 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA1200 = 0\n","id":"c1639309-d20d-47cb-bb44-f6d45fd498a2","savedPayload":{"position":{"x":24696.5552076711,"y":20026.065249402076},"targetPosition":{"x":24870.675534853042,"y":20035.311521396623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6a845db8-4418-4417-80ac-11114304a476","savedPayload":{"position":{"x":24870.675534853042,"y":20035.311521396623},"targetPosition":{"x":25044.249631036022,"y":20044.711356437652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"1f5b9ce3-8278-4359-a57c-2c9e275a64cc","savedPayload":{"position":{"x":25044.249631036022,"y":20044.711356437652},"targetPosition":{"x":25375.67461809943,"y":19876.082489219556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"43d6f23d-d206-47e9-95d4-6bef34377014","savedPayload":{"position":{"x":25375.520569587385,"y":19876.47539248899},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"Base30 EMAs","code":"{\n \"codeName\": \"Base30-EMAs\",\n \"singularVariableName\": \"base30EMA\",\n \"pluralVariableName\": \"base30EMAs\"\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/Sparta/EMA/Output/Base30-EMAs/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"dea3491f-aae7-4419-a98f-108cf5d69b87","savedPayload":{"position":{"x":25334.789123759663,"y":20134.223595611365},"targetPosition":{"x":25168.80206199778,"y":19809.039897768314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/EMA/Output/Base30-EMAs/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/EMA/Output/Base30-EMAs/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.son\"\n }\n }","id":"6624337b-4afd-44b8-a2ea-3f1779ddda7e","savedPayload":{"position":{"x":25111.889776070137,"y":20169.53491051002},"targetPosition":{"x":25168.80206199778,"y":19809.039897768314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"d3c4e9c3-9823-4809-997e-dc36dac93b22","savedPayload":{"position":{"x":24930.38901764507,"y":20391.054602491567},"targetPosition":{"x":24681.08086112663,"y":20468.383338495198},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cdf3538e-a8e5-44e5-9263-e5ffe18e65c2","savedPayload":{"position":{"x":24681.08086112663,"y":20468.383338495198},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"af0bf0dd-e517-4723-b0cc-832261c78c76","savedPayload":{"position":{"x":24945.89265695824,"y":20640.6910896234},"targetPosition":{"x":24688.88074994754,"y":20593.409678024957},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"27b3ce25-c547-4003-9a1c-2214b22e4fd8","savedPayload":{"position":{"x":24688.88074994754,"y":20593.409678024957},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA30","code":"{\n \"codeName\": \"ema30\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema30","id":"d49aaf82-1063-490d-bedb-3c63d639e097","savedPayload":{"position":{"x":24843.2219015558,"y":20868.982976336374},"targetPosition":{"x":24637.531377584008,"y":20707.646086643264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c92e3720-fc04-45ff-99e7-95abc2ddabea","savedPayload":{"position":{"x":24637.531377584008,"y":20707.646086643264},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA60","code":"{\n \"codeName\": \"ema60\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema60","id":"47f6b7dc-d0e0-4707-9e20-4113af4916ce","savedPayload":{"position":{"x":24646.116135895725,"y":21023.38358502606},"targetPosition":{"x":24538.95211720249,"y":20784.889019616137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d489aab4-6b93-490a-95b0-5b586a80960a","savedPayload":{"position":{"x":24538.95211720249,"y":20784.889019616137},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA90","code":"{\n \"codeName\": \"ema90\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema90","id":"d2ac9ce8-32ab-4802-ab41-b959112a696b","savedPayload":{"position":{"x":24400.231902267893,"y":21068.498123722627},"targetPosition":{"x":24415.97239060879,"y":20807.461082974514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7b763dc2-e990-44b7-b67f-93d27e5b7507","savedPayload":{"position":{"x":24415.97239060879,"y":20807.461082974514},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA120","code":"{\n \"codeName\": \"ema120\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema120","id":"41283546-a88c-41a6-87a6-48f178b378f5","savedPayload":{"position":{"x":24161.126261681817,"y":20993.9750146432},"targetPosition":{"x":24296.385241789838,"y":20770.190600654223},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"19b80a14-7510-4066-aa0a-43e8d92f8bec","savedPayload":{"position":{"x":24296.385241789838,"y":20770.190600654223},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA150","code":"{\n \"codeName\": \"ema150\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema150","id":"d82aeb70-2857-4d97-8f42-6fa22acc3ec1","savedPayload":{"position":{"x":23984.022721927846,"y":20816.88528598765},"targetPosition":{"x":24207.808797722366,"y":20681.620316382105},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2dcea6aa-8e40-44d9-b540-e831f54b0e19","savedPayload":{"position":{"x":24207.808797722366,"y":20681.620316382105},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA300","code":"{\n \"codeName\": \"ema300\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema300","id":"3bfc5b00-3b36-4b7e-b549-4cac3826de4f","savedPayload":{"position":{"x":23909.49031733467,"y":20577.785867497572},"targetPosition":{"x":24170.53639177393,"y":20562.029419668397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7cc56b79-f74d-465e-8e4d-070be004c71b","savedPayload":{"position":{"x":24170.53639177393,"y":20562.029419668397},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA600","code":"{\n \"codeName\": \"ema600\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema600","id":"22bc84a5-61f6-479e-a87d-b1aee1b8416d","savedPayload":{"position":{"x":23954.584132731816,"y":20331.96616165133},"targetPosition":{"x":24193.099248691102,"y":20439.096395122167},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0e28ed26-69c1-4a8e-b13f-cef5faf27fc8","savedPayload":{"position":{"x":24193.099248691102,"y":20439.096395122167},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA900","code":"{\n \"codeName\": \"ema900\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema900","id":"bd0354df-70f8-44e7-b988-49c514433ee3","savedPayload":{"position":{"x":24108.95433446079,"y":20134.90013162835},"targetPosition":{"x":24270.335620349582,"y":20340.53083692981},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1dfbb7b7-1ddc-4079-a17d-abef03fcd978","savedPayload":{"position":{"x":24270.335620349582,"y":20340.53083692981},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1200","code":"{\n \"codeName\": \"ema1200\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1200","id":"fed49d03-931b-45a8-ac59-60859500e8ea","savedPayload":{"position":{"x":24337.16028969718,"y":20032.32357640805},"targetPosition":{"x":24384.566904125437,"y":20289.22885751315},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2854d03b-388d-42be-bd49-0b0ed1293a30","savedPayload":{"position":{"x":24384.566904125437,"y":20289.22885751315},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA1500","code":"{\n \"codeName\": \"ema1500\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema1500","id":"1486d92f-10f4-4e34-b603-b0a18408713c","savedPayload":{"position":{"x":24598.83585043682,"y":20040.078705168664},"targetPosition":{"x":24509.642474495246,"y":20297.066926286487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9936d329-ffe9-4c8a-929c-b6f4a3a38954","savedPayload":{"position":{"x":24509.642474495246,"y":20297.066926286487},"targetPosition":{"x":24431.74012294346,"y":20546.241825271194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"3dda31b0-7d30-43c2-9b91-74c25cffed38","savedPayload":{"position":{"x":24431.74012294346,"y":20546.241825271194},"targetPosition":{"x":25168.80206199778,"y":19809.039897768314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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\nvariable.ema30 = calculateEMA(30, candle.close, variable.previousEMA30)\nvariable.previousEMA30 = variable.ema30\n\nvariable.ema60 = calculateEMA(60, candle.close, variable.previousEMA60)\nvariable.previousEMA60 = variable.ema60\n\nvariable.ema90 = calculateEMA(90, candle.close, variable.previousEMA90)\nvariable.previousEMA90 = variable.ema90\n\nvariable.ema120 = calculateEMA(120, candle.close, variable.previousEMA120)\nvariable.previousEMA120 = variable.ema120\n\nvariable.ema150 = calculateEMA(150, candle.close, variable.previousEMA150)\nvariable.previousEMA150 = variable.ema150\n\nvariable.ema300 = calculateEMA(300, candle.close, variable.previousEMA300)\nvariable.previousEMA300 = variable.ema300\n\nvariable.ema600 = calculateEMA(600, candle.close, variable.previousEMA600)\nvariable.previousEMA600 = variable.ema600\n\nvariable.ema900 = calculateEMA(900, candle.close, variable.previousEMA900)\nvariable.previousEMA900 = variable.ema900\n\nvariable.ema1200 = calculateEMA(1200, candle.close, variable.previousEMA1200)\nvariable.previousEMA1200 = variable.ema1200\n\nvariable.ema1500 = calculateEMA(1500, candle.close, variable.previousEMA1500)\nvariable.previousEMA1500 = variable.ema1500\n\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}","id":"df900089-7554-4b01-88d1-801706c194a5","savedPayload":{"position":{"x":24519.894857066374,"y":20092.785405790277},"targetPosition":{"x":24666.891877058417,"y":19975.817026822366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ff38e18a-c36c-4c4a-8d5b-b7230451c098","savedPayload":{"position":{"x":24666.891877058417,"y":19975.817026822366},"targetPosition":{"x":24801.488847619687,"y":19866.944965886792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\nvariable.previousEMA30 = 0\nvariable.previousEMA60 = 0\nvariable.previousEMA90 = 0\nvariable.previousEMA120 = 0\nvariable.previousEMA150 = 0\nvariable.previousEMA300 = 0\nvariable.previousEMA600 = 0\nvariable.previousEMA900 = 0\nvariable.previousEMA1200 = 0\nvariable.previousEMA1500 = 0\n","id":"14cfa602-002c-439e-b658-24cc8d2d1c14","savedPayload":{"position":{"x":24476.85860968777,"y":19741.809767875857},"targetPosition":{"x":24639.278560151346,"y":19804.408963566955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2489fa2c-03cb-4007-b426-88158b8ab442","savedPayload":{"position":{"x":24639.278560151346,"y":19804.408963566955},"targetPosition":{"x":24801.488847619687,"y":19866.944965886792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"ff57a6a1-1133-4cce-abab-d958d5936360","savedPayload":{"position":{"x":24801.488847619687,"y":19866.944965886792},"targetPosition":{"x":25168.80206199778,"y":19809.039897768314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"4394346c-7c25-478f-9be7-04f071dc673c","savedPayload":{"position":{"x":25168.58676034731,"y":19809.206878419613},"targetPosition":{"x":25484.197457074533,"y":19189.9358511953},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"274a20f7-97c3-452d-9ef7-aa35f482f5e3","savedPayload":{"position":{"x":25484.197457074533,"y":19189.9358511953},"targetPosition":{"x":24997.408806793872,"y":18693.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Indicator Bot","name":"MACD","code":"{\n\"codeName\": \"MACD\",\n\"repo\": \"MACD-Indicator-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces the MACD indicator.\",\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":"New Output Dataset","id":"b1bf9ad6-e21f-43a9-b7a5-7d5dd0485b2e","savedPayload":{"position":{"x":25822.27537080829,"y":19776.594709240442},"targetPosition":{"x":25822.27537080829,"y":19426.405862198375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"a8aa057b-aa19-45cb-bca0-7c3b57a350f7","savedPayload":{"position":{"x":25608.298100632546,"y":19640.383132374118},"targetPosition":{"x":25822.27537080829,"y":19426.405862198375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"150637f5-1917-439e-916f-71e86edccd49","savedPayload":{"position":{"x":25481.934601308167,"y":19426.405862198375},"targetPosition":{"x":25822.27537080829,"y":19426.405862198375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"6854acc9-b22d-46e6-8967-e3843ca6db76","savedPayload":{"position":{"x":25608.892067150526,"y":19213.02255854061},"targetPosition":{"x":25822.27537080829,"y":19426.405862198375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"89254c6c-9be2-4037-b063-467edc660d10"}}}],"id":"af39ab1b-b1c0-4869-9093-47ad8ff63494","savedPayload":{"position":{"x":25822.27537080829,"y":19426.405862198375},"targetPosition":{"x":25562.95709214861,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"7e17f51a-deed-4976-a53b-d34c2e45f92f","savedPayload":{"position":{"x":26188.909734886776,"y":19864.96017290054},"targetPosition":{"x":26188.909734886776,"y":19556.29740525088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"101cc7d6-d35b-4907-b530-f28d5e02ff0a"}}},{"type":"Status Dependency","name":"Candles Volumes: Candles","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"473dbe5e-6332-4005-8457-c77c3f5c65d0","savedPayload":{"position":{"x":25907.418875467218,"y":19718.81622871118},"targetPosition":{"x":26188.909734886776,"y":19556.29740525088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"fa10270c-f94c-479d-9094-f974018e2029","savedPayload":{"position":{"x":25913.097135826323,"y":19397.056926937435},"targetPosition":{"x":26188.909734886776,"y":19556.29740525088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"7a34fbb2-19de-4b82-88f2-c016f6959f74","savedPayload":{"position":{"x":26188.909734886776,"y":19556.29740525088},"targetPosition":{"x":25562.95709214861,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"101cc7d6-d35b-4907-b530-f28d5e02ff0a","savedPayload":{"position":{"x":25845.729703666188,"y":19739.38218356746},"targetPosition":{"x":25562.95709214861,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"1bc17bd6-0c20-4dfe-87dd-68db36113733","savedPayload":{"position":{"x":25259.691763746072,"y":19504.669192584148},"targetPosition":{"x":25562.95709214861,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"f2eca95a-37ae-448b-8ff9-c6dc4b133245","savedPayload":{"position":{"x":25586.411425006507,"y":19916.18239233576},"targetPosition":{"x":25562.95709214861,"y":19603.206070966673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"44019efe-950a-4eec-a546-cd2ee26818b9","savedPayload":{"position":{"x":25572.053635482378,"y":19607.326104497683},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Process Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"description\": \"Produces the MACD indicator.\",\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":"New Output Dataset","id":"c79ae046-983f-4acf-9c73-ab7e5d24fd85","savedPayload":{"position":{"x":25699.129738239182,"y":20100.841995308314},"targetPosition":{"x":25699.129738239182,"y":19774.83809821374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"daa8862c-2eda-4846-97d5-8684673baf3f","savedPayload":{"position":{"x":25472.948656193465,"y":20001.019180259456},"targetPosition":{"x":25699.129738239182,"y":19774.83809821374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"29e18539-f188-4d29-9531-25cd3ee8f282"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"59cb9a88-ccd4-4306-8822-bf9d0e526c02","savedPayload":{"position":{"x":25385.03003054651,"y":19774.83809821374},"targetPosition":{"x":25699.129738239182,"y":19774.83809821374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"b09b8313-baaf-45f4-a0fb-b33614d58699","savedPayload":{"position":{"x":25482.86583538395,"y":19558.574195358506},"targetPosition":{"x":25699.129738239182,"y":19774.83809821374},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"ec2611a6-699b-45a5-beec-679dd4b7734a"}}}],"id":"a95e4b61-4e49-4b99-bfb8-8bb917afe8df","savedPayload":{"position":{"x":25699.129738239182,"y":19774.83809821374},"targetPosition":{"x":25388.781306631612,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"e02fb6a2-c775-46de-bce6-a40f7d40cd5c","savedPayload":{"position":{"x":25973.09805779773,"y":20353.35729552229},"targetPosition":{"x":25973.09805779773,"y":20050.943023483214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a9d544cb-9643-4f7e-9220-d3ec7397bcdf"}}},{"type":"Status Dependency","name":"Ending: Oliva Candles","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"650627ec-3cab-4024-a17d-a43174f869e9","savedPayload":{"position":{"x":25738.273964487074,"y":20285.76711679387},"targetPosition":{"x":25973.09805779773,"y":20050.943023483214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Starting: Exchange Raw Data","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"62a1b4d7-e2fd-44bf-9e37-3108a7b5b956","savedPayload":{"position":{"x":25664.562352761674,"y":20050.943023483214},"targetPosition":{"x":25973.09805779773,"y":20050.943023483214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"38aa26d5-f3b2-43e6-8533-cd51d7128221","savedPayload":{"position":{"x":25740.398325589595,"y":19818.243291275077},"targetPosition":{"x":25973.09805779773,"y":20050.943023483214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"e8291604-ea73-4217-b00c-51f65bdec1d6","savedPayload":{"position":{"x":25973.09805779773,"y":20050.943023483214},"targetPosition":{"x":25388.781306631612,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"a9d544cb-9643-4f7e-9220-d3ec7397bcdf","savedPayload":{"position":{"x":25584.46602539069,"y":20066.9964737968},"targetPosition":{"x":25388.781306631612,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"35b430c4-60bd-41ff-8a3a-7907146b0238","savedPayload":{"position":{"x":25073.672216315324,"y":19719.230447880436},"targetPosition":{"x":25388.781306631612,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"c6191bb8-66bf-4d67-9d1b-9364e7e6e84e","savedPayload":{"position":{"x":25274.11759378312,"y":20113.773973369294},"targetPosition":{"x":25388.781306631612,"y":19821.615597786233},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"8e5db945-8507-4489-9288-21cfa1e9301c","savedPayload":{"position":{"x":25394.842389729652,"y":19829.538854669958},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"MACD 122609","code":"{\n \"codeName\": \"MACD122609\",\n \"singularVariableName\": \"macd122609\",\n \"pluralVariableName\": \"macd122609s\"\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/Sparta/MACD/Output/MACD-122609/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"01d43ed0-2a80-4eca-bee6-db2fe40470fc","savedPayload":{"position":{"x":25456.928641814597,"y":20087.88429830938},"targetPosition":{"x":25138.859386691725,"y":19951.965354381107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/MACD/Output/MACD-122609/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/MACD/Output/MACD-122609/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"dd5d3067-ff7b-4353-ba4f-c030bd3da796","savedPayload":{"position":{"x":25316.019390175075,"y":20248.92167698947},"targetPosition":{"x":25138.859386691725,"y":19951.965354381107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"c30a9207-3220-4aa4-b96e-64a82200e356","savedPayload":{"position":{"x":25420.88714750282,"y":20597.835290360465},"targetPosition":{"x":25237.028631419358,"y":20750.850700461175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"16c55335-8817-4121-a068-1c2d184fd814","savedPayload":{"position":{"x":25237.028631419358,"y":20750.850700461175},"targetPosition":{"x":25053.284124631064,"y":20904.10595957902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"0f82ce78-91ac-4b61-b514-bb1a67c2ef0e","savedPayload":{"position":{"x":25530.422137908005,"y":20947.21221147279},"targetPosition":{"x":25291.88413760668,"y":20925.6690612192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"dedc2ef0-61e4-45bd-921d-187c9a6f3ae1","savedPayload":{"position":{"x":25291.88413760668,"y":20925.6690612192},"targetPosition":{"x":25053.284124631064,"y":20904.10595957902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Line","code":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.line","id":"42754005-58a0-4a8b-b839-938d11aeb0ab","savedPayload":{"position":{"x":25360.23150229852,"y":21272.046044364502},"targetPosition":{"x":25206.78715652296,"y":21088.136298917765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5fe10f78-a397-4fb1-bfeb-a506d44d60ef","savedPayload":{"position":{"x":25206.78715652296,"y":21088.136298917765},"targetPosition":{"x":25053.284124631064,"y":20904.10595957902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Signal","code":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.signal","id":"588045df-e0fb-4c07-adf3-1acd832088af","savedPayload":{"position":{"x":25010.555020331733,"y":21381.454755610055},"targetPosition":{"x":25031.915017629304,"y":21142.856380519737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2926733e-3962-4e7b-a492-7fcb437f536e","savedPayload":{"position":{"x":25031.915017629304,"y":21142.856380519737},"targetPosition":{"x":25053.284124631064,"y":20904.10595957902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA12","code":"{\n \"codeName\": \"ema12\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema12","id":"d9f6340c-15cd-499b-ba74-007b4c569b22","savedPayload":{"position":{"x":24685.60207974923,"y":21211.319815739505},"targetPosition":{"x":24869.409900115243,"y":21057.76921979228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"29fb3e14-c1fd-4fa6-af1a-62b1c61ff1fc","savedPayload":{"position":{"x":24869.409900115243,"y":21057.76921979228},"targetPosition":{"x":25053.284124631064,"y":20904.10595957902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA26","code":"{\n \"codeName\": \"ema26\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema26","id":"748ed791-c88b-4776-b2cb-742758821641","savedPayload":{"position":{"x":24576.14201551669,"y":20861.82373222294},"targetPosition":{"x":24814.696484751268,"y":20882.97061040281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d1b7a8ce-c89b-4e0f-ac04-0f45d575524d","savedPayload":{"position":{"x":24814.696484751268,"y":20882.97061040281},"targetPosition":{"x":25053.284124631064,"y":20904.10595957902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Histogram","code":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.histogram","id":"9652e52e-55c0-47ee-a90c-a1a700f6b989","savedPayload":{"position":{"x":24744.36553502719,"y":20537.359122508216},"targetPosition":{"x":24899.989415738564,"y":20720.61506518542},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6157c979-57a2-473c-b19f-f79bb2f12c09","savedPayload":{"position":{"x":24899.989415738564,"y":20720.61506518542},"targetPosition":{"x":25053.284124631064,"y":20904.10595957902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"7985ad16-8c8a-460f-9445-711df5e062a7","savedPayload":{"position":{"x":25053.284124631064,"y":20904.10595957902},"targetPosition":{"x":25138.859386691725,"y":19951.965354381107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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\n/* SMA Calculation */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last100.push(candle.close) // Add the current close value to the last 100 array.\n\nif (variable.last100.length > 100) {\n variable.last100.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 100 elements.\n}\n\nvariable.sma12 = calculateSMA(12)\nvariable.sma26 = calculateSMA(26)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last100.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last100.length - periods; i < variable.last100.length; i++) { // Iterate through the last periods\n sum = sum + variable.last100[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last100.length=\" + variable.last100.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last100[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}\n\n/* EMA12 and EMA26 Calculation */\n\nvariable.ema12 = calculateEMA(12, variable.sma12, variable.previousEMA12)\nvariable.previousEMA12 = variable.ema12 \n \nvariable.ema26 = calculateEMA(26, variable.sma26, variable.previousEMA26)\nvariable.previousEMA26 = variable.ema26 \n\nfunction calculateEMA(periods, currentSMA, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSMA * k + previousEMA * (1-k)\n}\n\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema12 - variable.ema26\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","id":"e1e871f6-1e87-423f-8214-ece80c4295eb","savedPayload":{"position":{"x":24839.33512179215,"y":20538.85377333166},"targetPosition":{"x":24868.17836195394,"y":20382.77102892006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c3390f8c-4865-42b1-aa00-eaa49d293121","savedPayload":{"position":{"x":24868.17836195394,"y":20382.77102892006},"targetPosition":{"x":24898.89883012637,"y":20226.54681524226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA12 = 0\nvariable.previousEMA26 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","id":"a9600d4d-ddc7-4639-a8bd-d5f6840a1f04","savedPayload":{"position":{"x":24596.56393886883,"y":20329.316651153742},"targetPosition":{"x":24747.880141727466,"y":20277.89149443227},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f8ff5320-c74f-4f6e-8b15-f7284242f24e","savedPayload":{"position":{"x":24747.880141727466,"y":20277.89149443227},"targetPosition":{"x":24898.89883012637,"y":20226.54681524226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"c69aae16-d38f-4d9a-8174-4e664a22e579","savedPayload":{"position":{"x":24898.89883012637,"y":20226.54681524226},"targetPosition":{"x":25138.859386691725,"y":19951.965354381107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119","savedPayload":{"position":{"x":25138.90323599064,"y":19952.32937446419},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"MACD 031016","code":"{\n \"codeName\": \"MACD031016\",\n \"singularVariableName\": \"macd031016\",\n \"pluralVariableName\": \"macd031016s\"\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/Sparta/MACD/Output/MACD-031016/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"19b1d791-d2ea-4f25-a6e1-fe0a64450745","savedPayload":{"position":{"x":25083.425774786658,"y":20212.325576392184},"targetPosition":{"x":24855.73221607252,"y":19952.019010547087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/MACD/Output/MACD-031016/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/MACD/Output/MACD-031016/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"ec2611a6-699b-45a5-beec-679dd4b7734a","savedPayload":{"position":{"x":24886.522792058102,"y":20296.414086135017},"targetPosition":{"x":24855.73221607252,"y":19952.019010547087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"7e2e4448-6bc6-4c1c-9a7f-54185fea3831","savedPayload":{"position":{"x":24829.697399189197,"y":20656.28498045359},"targetPosition":{"x":24597.604412784858,"y":20714.34836012631},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"399e67a5-1b3c-4f13-b1a8-c8333b013471","savedPayload":{"position":{"x":24597.604412784858,"y":20714.34836012631},"targetPosition":{"x":24365.509591513688,"y":20772.660956918706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"0e12c2f0-25f8-48c6-9920-4291c0154f92","savedPayload":{"position":{"x":24776.595786063182,"y":21018.577676243192},"targetPosition":{"x":24571.080144224838,"y":20895.641792780996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1588b3ba-04e6-498f-baeb-857c55bf0c2f","savedPayload":{"position":{"x":24571.080144224838,"y":20895.641792780996},"targetPosition":{"x":24365.509591513688,"y":20772.660956918706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Line","code":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.line","id":"5d5b5bb6-fcd8-4834-9da9-858c8fc756d6","savedPayload":{"position":{"x":24482.30350284663,"y":21237.41510245544},"targetPosition":{"x":24423.90993078801,"y":21005.105296432874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a1c75f48-5568-46da-a828-6d26a69b5021","savedPayload":{"position":{"x":24423.90993078801,"y":21005.105296432874},"targetPosition":{"x":24365.509591513688,"y":20772.660956918706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Signal","code":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.signal","id":"a42bb9fd-fb33-4c25-b3d3-7ce7c8839e08","savedPayload":{"position":{"x":24119.821560153596,"y":21184.079876301046},"targetPosition":{"x":24242.63080155614,"y":20978.43662738638},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7d0b5eee-4b62-4e35-a421-e3825b0cdb2c","savedPayload":{"position":{"x":24242.63080155614,"y":20978.43662738638},"targetPosition":{"x":24365.509591513688,"y":20772.660956918706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA3","code":"{\n \"codeName\": \"ema3\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema3","id":"c725639d-6fa1-480f-b962-90be561f8464","savedPayload":{"position":{"x":23900.860500453426,"y":20889.79081365839},"targetPosition":{"x":24133.132440705114,"y":20831.261002593594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4406003b-bf04-4d4e-b9e5-fb444be155ee","savedPayload":{"position":{"x":24133.132440705114,"y":20831.261002593594},"targetPosition":{"x":24365.509591513688,"y":20772.660956918706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA10","code":"{\n \"codeName\": \"ema10\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema10","id":"fbfc968a-1b7e-48f6-935b-b40fe63bdc85","savedPayload":{"position":{"x":23954.078628142757,"y":20527.452907186173},"targetPosition":{"x":24159.778726634933,"y":20650.052099056797},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d5cc4f53-cc80-457a-842f-a2259450f02f","savedPayload":{"position":{"x":24159.778726634933,"y":20650.052099056797},"targetPosition":{"x":24365.509591513688,"y":20772.660956918706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Histogram","code":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.histogram","id":"9724655b-b624-425d-b21c-87c69ede1d0a","savedPayload":{"position":{"x":24246.368118656494,"y":20308.07276166256},"targetPosition":{"x":24307.07939926603,"y":20540.777096548543},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d0f070bb-08a6-4c05-8e49-49f7b6a3aa15","savedPayload":{"position":{"x":24307.07939926603,"y":20540.777096548543},"targetPosition":{"x":24365.509591513688,"y":20772.660956918706},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"b5df9321-87e6-4c0b-892b-0af0e9b47d8d","savedPayload":{"position":{"x":24365.509591513688,"y":20772.660956918706},"targetPosition":{"x":24855.73221607252,"y":19952.019010547087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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\n/* SMA Calculation */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last100.push(candle.close) // Add the current close value to the last 100 array.\n\nif (variable.last100.length > 100) {\n variable.last100.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 100 elements.\n}\n\nvariable.sma3 = calculateSMA(3)\nvariable.sma10 = calculateSMA(10)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last100.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last100.length - periods; i < variable.last100.length; i++) { // Iterate through the last periods\n sum = sum + variable.last100[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last100.length=\" + variable.last100.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last100[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}\n\n/* EMA3 and EMA10 Calculation */\n\nvariable.ema3 = calculateEMA(3, variable.sma3, variable.previousEMA3)\nvariable.previousEMA3 = variable.ema3 \n \nvariable.ema10 = calculateEMA(10, variable.sma10, variable.previousEMA10)\nvariable.previousEMA10 = variable.ema10 \n\nfunction calculateEMA(periods, currentSMA, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSMA * k + previousEMA * (1-k)\n}\n\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema3 - variable.ema10\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA16 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(16, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","id":"6e3e0c8a-7600-4cf4-aa00-a29c8e94b42a","savedPayload":{"position":{"x":24331.29545812212,"y":20350.64463926519},"targetPosition":{"x":24424.998861110802,"y":20222.55484868101},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ba2052e5-b0b2-4cae-b4a8-3212eb5cbe62","savedPayload":{"position":{"x":24424.998861110802,"y":20222.55484868101},"targetPosition":{"x":24520.29484371708,"y":20095.262079401775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA3 = 0\nvariable.previousEMA10 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","id":"e009ff8c-ac89-4cff-b3c4-27777ff2173c","savedPayload":{"position":{"x":24203.399267472003,"y":20056.95108880384},"targetPosition":{"x":24362.111887424322,"y":20076.09021799562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fba3e3c4-5cf5-4925-9e02-36981e662f0d","savedPayload":{"position":{"x":24362.111887424322,"y":20076.09021799562},"targetPosition":{"x":24520.29484371708,"y":20095.262079401775},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"6659182a-7112-4c25-8fac-69f8745f9d2f","savedPayload":{"position":{"x":24520.29484371708,"y":20095.262079401775},"targetPosition":{"x":24855.73221607252,"y":19952.019010547087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a","savedPayload":{"position":{"x":24855.595489414984,"y":19952.222777668794},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"MACD 081709","code":"{\n \"codeName\": \"MACD081709\",\n \"singularVariableName\": \"macd081709\",\n \"pluralVariableName\": \"macd081709s\"\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/Sparta/MACD/Output/MACD-081709/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"c390cbd3-0ba0-4507-8614-42c88f4ce7e6","savedPayload":{"position":{"x":24692.485505229804,"y":20162.39694479244},"targetPosition":{"x":24600.24698843981,"y":19829.017544449205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/MACD/Output/MACD-081709/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/MACD/Output/MACD-081709/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"29e18539-f188-4d29-9531-25cd3ee8f282","savedPayload":{"position":{"x":24478.74558161734,"y":20152.78353723121},"targetPosition":{"x":24600.24698843981,"y":19829.017544449205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"94ec28d4-c1bc-4c6d-8887-75877f9a2343","savedPayload":{"position":{"x":24271.290251825798,"y":20451.852838621257},"targetPosition":{"x":24036.939851656487,"y":20403.630277697448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5135ffe3-47fa-4642-8c46-0994438d7e7a","savedPayload":{"position":{"x":24036.939851656487,"y":20403.630277697448},"targetPosition":{"x":23802.482477702855,"y":20355.629627765375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"d3388f28-900d-452f-b83c-936c50b4344e","savedPayload":{"position":{"x":24066.0516619426,"y":20755.632585777097},"targetPosition":{"x":23934.28311927225,"y":20555.66374359566},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8056d769-ea76-4ec0-88ff-952921e48d2c","savedPayload":{"position":{"x":23934.28311927225,"y":20555.66374359566},"targetPosition":{"x":23802.482477702855,"y":20355.629627765375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Line","code":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.line","id":"3864df8c-ee73-4f0e-be03-718954a4dbfc","savedPayload":{"position":{"x":23706.39518684304,"y":20825.113401563583},"targetPosition":{"x":23754.41322828446,"y":20590.433538999896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a69347ff-6f46-464a-834a-4d441b8ff291","savedPayload":{"position":{"x":23754.41322828446,"y":20590.433538999896},"targetPosition":{"x":23802.482477702855,"y":20355.629627765375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Signal","code":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.signal","id":"9db26074-5aaf-4f3e-83aa-bb1064981c64","savedPayload":{"position":{"x":23402.545399248742,"y":20619.592741220727},"targetPosition":{"x":23602.455122081774,"y":20487.655907505577},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cf022fb7-6c7e-432d-ae6a-fe0f4ed28116","savedPayload":{"position":{"x":23602.455122081774,"y":20487.655907505577},"targetPosition":{"x":23802.482477702855,"y":20355.629627765375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA8","code":"{\n \"codeName\": \"ema8\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema8","id":"93f62cc4-1f47-4b75-8a7c-c8dbd75b0c9f","savedPayload":{"position":{"x":23332.95479723164,"y":20259.893147189618},"targetPosition":{"x":23567.657194628446,"y":20307.769185220423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"80e1f38f-36c5-440e-a12b-f9154efede9f","savedPayload":{"position":{"x":23567.657194628446,"y":20307.769185220423},"targetPosition":{"x":23802.482477702855,"y":20355.629627765375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA17","code":"{\n \"codeName\": \"ema17\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema17","id":"73b43260-1688-460b-862c-b8fb7406cc10","savedPayload":{"position":{"x":23538.312134749533,"y":19956.128577616255},"targetPosition":{"x":23670.38647410434,"y":20155.866762708905},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a2552af4-df0a-4fcf-85ae-1e35dbcb2608","savedPayload":{"position":{"x":23670.38647410434,"y":20155.866762708905},"targetPosition":{"x":23802.482477702855,"y":20355.629627765375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Histogram","code":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.histogram","id":"94cb6751-f4a9-4bad-a8a9-d53d3375a77c","savedPayload":{"position":{"x":23896.50164248748,"y":19885.425639209003},"targetPosition":{"x":23850.291872382277,"y":20121.32326348032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"52e3a47c-f282-4edc-83cb-8bce988e054b","savedPayload":{"position":{"x":23850.291872382277,"y":20121.32326348032},"targetPosition":{"x":23802.482477702855,"y":20355.629627765375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"f5a29a3d-06eb-4298-80d0-3d6e22957829","savedPayload":{"position":{"x":23802.482477702855,"y":20355.629627765375},"targetPosition":{"x":24600.24698843981,"y":19829.017544449205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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\n/* SMA Calculation */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last100.push(candle.close) // Add the current close value to the last 100 array.\n\nif (variable.last100.length > 100) {\n variable.last100.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 100 elements.\n}\n\nvariable.sma8 = calculateSMA(8)\nvariable.sma17 = calculateSMA(17)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last100.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last100.length - periods; i < variable.last100.length; i++) { // Iterate through the last periods\n sum = sum + variable.last100[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last100.length=\" + variable.last100.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last100[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}\n\n/* EMA8 and EMA17 Calculation */\n\nvariable.ema8 = calculateEMA(8, variable.sma8, variable.previousEMA8)\nvariable.previousEMA8 = variable.ema8 \n \nvariable.ema17 = calculateEMA(17, variable.sma17, variable.previousEMA17)\nvariable.previousEMA17 = variable.ema17 \n\nfunction calculateEMA(periods, currentSMA, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSMA * k + previousEMA * (1-k)\n}\n\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema8 - variable.ema17\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","id":"0290fa4a-851b-4e21-b35e-61e106fc8f81","savedPayload":{"position":{"x":23954.62398691069,"y":19960.58188610809},"targetPosition":{"x":24094.751466123394,"y":19886.02237991824},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2a30807-83b5-4c99-8f27-55783b4487ce","savedPayload":{"position":{"x":24094.751466123394,"y":19886.02237991824},"targetPosition":{"x":24236.00589667727,"y":19812.73800792499},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA8 = 0\nvariable.previousEMA17 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","id":"b8dca759-eb3d-4b8b-8a20-99679727f272","savedPayload":{"position":{"x":23967.12850417115,"y":19640.666148660388},"targetPosition":{"x":24101.741468778535,"y":19726.79622303063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a16923a7-9b13-4526-818d-9278fdc509a0","savedPayload":{"position":{"x":24101.741468778535,"y":19726.79622303063},"targetPosition":{"x":24236.00589667727,"y":19812.73800792499},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"8136f190-cf6a-4ca3-8620-7153ad82a295","savedPayload":{"position":{"x":24236.00589667727,"y":19812.73800792499},"targetPosition":{"x":24600.24698843981,"y":19829.017544449205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750","savedPayload":{"position":{"x":24600.04964040467,"y":19829.126488951013},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Product Definition","name":"MACD 245209","code":"{\n \"codeName\": \"MACD245209\",\n \"singularVariableName\": \"macd245209\",\n \"pluralVariableName\": \"macd245209s\"\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/Sparta/MACD/Output/MACD-245209/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"89254c6c-9be2-4037-b063-467edc660d10","savedPayload":{"position":{"x":24362.179189105776,"y":19947.55959586834},"targetPosition":{"x":24423.537288104162,"y":19607.170435118405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/MACD/Output/MACD-245209/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/MACD/Output/MACD-245209/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"8a9dde13-e4b8-40f3-80bc-ea51050b2f08","savedPayload":{"position":{"x":24173.534380471043,"y":19846.08761711148},"targetPosition":{"x":24423.537288104162,"y":19607.170435118405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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","code":"record.current.begin","id":"adee537e-2c4d-4454-9006-05171c09313a","savedPayload":{"position":{"x":23856.858619856546,"y":20025.4866508205},"targetPosition":{"x":23666.732556947674,"y":19880.339968470846},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"38a52afc-8a7c-49c9-8068-dbe438ac64d0","savedPayload":{"position":{"x":23666.732556947674,"y":19880.339968470846},"targetPosition":{"x":23476.39177786113,"y":19735.388860817136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"83439522-7972-454e-af41-d516ee51b26f","savedPayload":{"position":{"x":23540.20103292985,"y":20210.147361409585},"targetPosition":{"x":23508.30764291169,"y":19972.794978842874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"03c98b2f-4e9c-4800-9d9b-5c6ef3f94665","savedPayload":{"position":{"x":23508.30764291169,"y":19972.794978842874},"targetPosition":{"x":23476.39177786113,"y":19735.388860817136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Line","code":"{\n \"codeName\": \"line\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.line","id":"6aa9ee37-3044-444c-bc27-e09dd444f182","savedPayload":{"position":{"x":23186.083991071355,"y":20116.530431067786},"targetPosition":{"x":23331.20296644847,"y":19925.998740963296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c9237bcd-4d76-4460-bcbb-8474843efc03","savedPayload":{"position":{"x":23331.20296644847,"y":19925.998740963296},"targetPosition":{"x":23476.39177786113,"y":19735.388860817136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Signal","code":"{\n \"codeName\": \"signal\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.signal","id":"35ac625e-5516-4a15-b92d-f3a5dc4d8ec0","savedPayload":{"position":{"x":23001.529169043544,"y":19799.564140583283},"targetPosition":{"x":23238.908299191997,"y":19767.48730012977},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8dd22ed9-76d1-4108-8a7f-ed4c03d7eede","savedPayload":{"position":{"x":23238.908299191997,"y":19767.48730012977},"targetPosition":{"x":23476.39177786113,"y":19735.388860817136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA24","code":"{\n \"codeName\": \"ema24\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema24","id":"e56fbdd1-4b1c-484b-bcbb-6b9ec6414080","savedPayload":{"position":{"x":23095.132547856625,"y":19445.378914010656},"targetPosition":{"x":23285.73576349985,"y":19590.360514955068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"57f32362-cb33-471d-a855-2c3cddb88bf9","savedPayload":{"position":{"x":23285.73576349985,"y":19590.360514955068},"targetPosition":{"x":23476.39177786113,"y":19735.388860817136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"EMA52","code":"{\n \"codeName\": \"ema52\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.ema52","id":"619feddc-3ff2-4a97-aa8b-a924b80bd099","savedPayload":{"position":{"x":23412.0871723741,"y":19260.946329616087},"targetPosition":{"x":23444.330312195663,"y":19498.146544463554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"93f3c29f-178d-44fb-8f64-21e617d2387e","savedPayload":{"position":{"x":23444.330312195663,"y":19498.146544463554},"targetPosition":{"x":23476.39177786113,"y":19735.388860817136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Histogram","code":"{\n \"codeName\": \"histogram\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.histogram","id":"615f9b7a-676f-444b-8fc8-8355c8c8aef6","savedPayload":{"position":{"x":24632.949095941512,"y":18216.04414340753},"targetPosition":{"x":24054.71529363682,"y":18975.163021471006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"650fc7dc-1ea8-426d-a720-89efdec4292e","savedPayload":{"position":{"x":24054.71529363682,"y":18975.163021471006},"targetPosition":{"x":23476.39177786113,"y":19735.388860817136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"371d2f8e-8868-4933-baee-9827c0496fc1","savedPayload":{"position":{"x":23476.39177786113,"y":19735.388860817136},"targetPosition":{"x":24423.537288104162,"y":19607.170435118405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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\n/* SMA Calculation */\n\nlet candle = record.current // Our main dependencies are candles \nvariable.last100.push(candle.close) // Add the current close value to the last 100 array.\n\nif (variable.last100.length > 100) {\n variable.last100.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 100 elements.\n}\n\nvariable.sma24 = calculateSMA(24)\nvariable.sma52 = calculateSMA(52)\n\nfunction calculateSMA(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last100.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sum = 0 // Initialize sum variable. \n for (let i = variable.last100.length - periods; i < variable.last100.length; i++) { // Iterate through the last periods\n sum = sum + variable.last100[i]\n /*\n if (index > 18 && index < 22) { // You can debug what is going on by console logging whatever you need. \n console.log(\"index=\" + index + \" i=\" + i + \" variable.last100.length=\" + variable.last100.length + \" periods=\" + periods + \" sum=\" + sum + \" sum/periods=\" + (sum / periods) + \" currentValue=\" + (variable.last100[i]))\n }\n */\n }\n let sma = sum / periods\n return sma\n}\n\n/* EMA24 and EMA52 Calculation */\n\nvariable.ema24 = calculateEMA(24, variable.sma24, variable.previousEMA24)\nvariable.previousEMA24 = variable.ema24 \n \nvariable.ema52 = calculateEMA(52, variable.sma52, variable.previousEMA52)\nvariable.previousEMA52 = variable.ema52 \n\nfunction calculateEMA(periods, currentSMA, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSMA * k + previousEMA * (1-k)\n}\n\n\n/* MACD Line Calculation */\n\nmacdLine = variable.ema24 - variable.ema52\n\nvariable.line = macdLine.toFixed(2)\n\n/* Signal Line Calculation (EMA9 of MACD Line) */\n\nmacdSignal = calculateSignalEMA(9, variable.line, variable.previousSignal)\nvariable.signal = macdSignal.toFixed(2)\nvariable.previousSignal = variable.signal \n \nfunction calculateSignalEMA(periods, currentSignal, previousEMA) {\n let k = 2 / (periods + 1)\n return currentSignal * k + variable.previousSignal * (1-k)\n}\n\n/* Histogram Calculation */\n\nhistogram = variable.line - variable.signal\nvariable.histogram = histogram.toFixed(2)","id":"4f4e66a9-4791-494a-ada7-72f3d5db7415","savedPayload":{"position":{"x":23783.949715713927,"y":19443.663444638525},"targetPosition":{"x":23943.23003610113,"y":19439.194088021522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d8e07801-1e77-44a5-a232-fd672264f252","savedPayload":{"position":{"x":23943.23003610113,"y":19439.194088021522},"targetPosition":{"x":24102.453679542592,"y":19434.45354790322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* SMA Calculation */\n\n/* \nAlthough we don't really need to set an array to access a number of candles,\nwe will do so in order to reuse the code built for the SMA indicator, and also\nso that the same code may be used for other MACD products that may require\naccessing more candles than are available in the span of two days.\n*/\n\nvariable.last100 = []\n//console.log(timeFrameLabel + \" - Initialization of SMA - *************\")\n\n/* EMA Calculation */\n\nvariable.previousEMA24 = 0\nvariable.previousEMA52 = 0\n\n/* MACD Line calculation */\n\nvariable.previousSignal = 0","id":"5f25ca07-07ce-49a7-a397-5d2f3e89c0c3","savedPayload":{"position":{"x":23934.76658371516,"y":19163.12133170006},"targetPosition":{"x":24018.779239910768,"y":19298.904985430927},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"dd01ebc2-8204-4b51-83d9-92d416521553","savedPayload":{"position":{"x":24018.779239910768,"y":19298.904985430927},"targetPosition":{"x":24102.453679542592,"y":19434.45354790322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"e1a8b841-84d8-4ddd-822b-d81fe2b9a313","savedPayload":{"position":{"x":24102.453679542592,"y":19434.45354790322},"targetPosition":{"x":24423.537288104162,"y":19607.170435118405},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"47984765-8180-45cf-a9eb-f0a8b22d165d","savedPayload":{"position":{"x":24423.17158825232,"y":19607.312686422345},"targetPosition":{"x":24997.411869113454,"y":19330.853845765098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"7724b857-30aa-4d3c-9ab7-e70895229f2a","savedPayload":{"position":{"x":24997.411869113454,"y":19330.853845765098},"targetPosition":{"x":24997.408806793872,"y":18693.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Indicator Bot","name":"RSI","code":"{\n\"codeName\": \"RSI\",\n\"repo\": \"RSI-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":"New Output Dataset","id":"41eb05b7-0222-49b7-9b62-f14f43302f8f","savedPayload":{"position":{"x":25140.53398611951,"y":20069.378408814446},"targetPosition":{"x":24806.08181220858,"y":20069.378408814446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}}],"id":"35d2683b-470d-44e0-97bb-6075e6b5cc92","savedPayload":{"position":{"x":24806.08181220858,"y":20069.378408814446},"targetPosition":{"x":24503.803780802005,"y":19894.85810601175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Ending: Candles Volumes","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"ea692963-60c5-445b-921c-f2be614186d7","savedPayload":{"position":{"x":24678.3240836047,"y":20546.013771114212},"targetPosition":{"x":24678.3240836047,"y":20197.136137418325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"4211e16a-a54f-4049-941e-fd3be8244852","savedPayload":{"position":{"x":24379.08450458144,"y":20369.902188919597},"targetPosition":{"x":24678.3240836047,"y":20197.136137418325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"bbff3247-937a-429e-9959-c896b8207f26"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"9d9b2836-9eab-437b-9426-2cef828cd0e3","savedPayload":{"position":{"x":24372.89889115566,"y":20020.798820340577},"targetPosition":{"x":24678.3240836047,"y":20197.136137418325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}}],"id":"1a42abe3-eaab-444f-8687-c3930dc28a06","savedPayload":{"position":{"x":24678.3240836047,"y":20197.136137418325},"targetPosition":{"x":24503.803780802005,"y":19894.85810601175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"bbff3247-937a-429e-9959-c896b8207f26","savedPayload":{"position":{"x":24503.803780802005,"y":20243.89871161714},"targetPosition":{"x":24503.803780802005,"y":19894.85810601175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"b2babf3e-22f6-4064-b4e5-840eec9ff707","savedPayload":{"position":{"x":24172.514764356547,"y":19787.215779422993},"targetPosition":{"x":24503.803780802005,"y":19894.85810601175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"ae4d9310-3446-41b3-88b9-90978defd305","savedPayload":{"position":{"x":24201.52574939543,"y":20069.378408814446},"targetPosition":{"x":24503.803780802005,"y":19894.85810601175},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"96f31416-5090-428a-be83-985a0b3ab275","savedPayload":{"position":{"x":24418.813840217936,"y":19922.58678651559},"targetPosition":{"x":24418.803780802005,"y":19171.77689480097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"New Output Dataset","id":"7539f591-7ca7-4fd5-9142-a6b470f8ef8e","savedPayload":{"position":{"x":24272.716262084363,"y":20027.542188444855},"targetPosition":{"x":24100.524178780735,"y":20027.542188444855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}}],"id":"f5a20865-68a4-4e3f-8547-afc741d7fb85","savedPayload":{"position":{"x":24100.524178780735,"y":20027.542188444855},"targetPosition":{"x":24010.185822535943,"y":19690.39485306703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Self","code":"{\"mainUtility\": \"Self Reference\"}","id":"632dbd10-6cf7-453a-8e5c-4a74d33fcaf4","savedPayload":{"position":{"x":23919.84746629115,"y":20199.811835547265},"targetPosition":{"x":23919.84746629115,"y":20027.542188444855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2d1d4e5a-49c3-4d9a-958a-195d3f0949c2"}}},{"type":"Status Dependency","name":"Ending: Candles Volumes","code":"{\"mainUtility\": \"Market Ending Point\"}","id":"5a1a8917-5d85-4f33-b552-a314ee6c54db","savedPayload":{"position":{"x":23788.922287533635,"y":20158.46736720237},"targetPosition":{"x":23919.84746629115,"y":20027.542188444855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2a021da8-9feb-475e-90ab-1586968c17c7"}}},{"type":"Status Dependency","name":"Starting: Exchange Raw Data","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"9ea493a4-33b1-445e-975d-b202994079c8","savedPayload":{"position":{"x":23729.74347648289,"y":20027.542188444855},"targetPosition":{"x":23919.84746629115,"y":20027.542188444855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"New Data Dependency","id":"86af23c8-eb30-499a-9d88-39e0e9df06e5","savedPayload":{"position":{"x":23800.574839054727,"y":19908.26956120843},"targetPosition":{"x":23919.84746629115,"y":20027.542188444855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}}],"id":"6e2f9722-24f9-40dc-9e38-f4dcbbbeb38a","savedPayload":{"position":{"x":23919.84746629115,"y":20027.542188444855},"targetPosition":{"x":24010.185822535943,"y":19690.39485306703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"2d1d4e5a-49c3-4d9a-958a-195d3f0949c2","savedPayload":{"position":{"x":23763.37684340291,"y":19937.203832200063},"targetPosition":{"x":24010.185822535943,"y":19690.39485306703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"525140eb-d037-4b8d-9eef-f01574ca49ff","savedPayload":{"position":{"x":23639.51870949483,"y":19569.957807294184},"targetPosition":{"x":24010.185822535943,"y":19690.39485306703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"9162d141-5486-4a0d-a3e4-71c74060beb8","savedPayload":{"position":{"x":23673.03848715812,"y":19600.05649682224},"targetPosition":{"x":24010.185822535943,"y":19690.39485306703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"f1177bcd-22dc-425b-8f30-878844aa82b8","savedPayload":{"position":{"x":23888.105324326247,"y":19702.737315245246},"targetPosition":{"x":24418.803780802005,"y":19171.77689480097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"RSI14","code":"{\n \"codeName\": \"RSI-14\",\n \"singularVariableName\": \"rsi14\",\n \"pluralVariableName\": \"rsi14s\"\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/Sparta/RSI/Output/RSI-14/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n }","id":"5ec62760-e144-4496-98ab-0415a4b315ec","savedPayload":{"position":{"x":23448.29081682249,"y":19475.659087583346},"targetPosition":{"x":23668.814395170848,"y":19171.77955065727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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/Sparta/RSI/Output/RSI-14/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/Sparta/RSI/Output/RSI-14/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n }","id":"f1556d09-f134-4678-83fb-04002d1dcd34","savedPayload":{"position":{"x":23311.774821818733,"y":19287.703763832054},"targetPosition":{"x":23668.814395170848,"y":19171.77955065727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"069fdb18-b72b-4fd2-9255-061f7a4f0b7e","savedPayload":{"position":{"x":22620.087157635346,"y":19111.27561013918},"targetPosition":{"x":22787.70785668368,"y":19025.863057652623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"309f6917-c246-4d84-89ac-abca872eb828","savedPayload":{"position":{"x":22787.70785668368,"y":19025.863057652623},"targetPosition":{"x":22955.257754995804,"y":18940.104086639643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"record.current.end","id":"2128f049-e006-4e71-b9a5-91655bfcb290","savedPayload":{"position":{"x":22597.12208821691,"y":18824.027488482836},"targetPosition":{"x":22776.142978420547,"y":18882.06654893018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"38a593cc-3232-4977-9597-18939c86bb5d","savedPayload":{"position":{"x":22776.142978420547,"y":18882.06654893018},"targetPosition":{"x":22955.257754995804,"y":18940.104086639643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Value","code":"{\n \"codeName\": \"value\",\n \"isString\": false\n}","formula":{"type":"Formula","code":"variable.value","id":"c5e2ca09-53a7-4655-b0dc-242b7fbd11f0","savedPayload":{"position":{"x":22784.706987157,"y":18604.683643402772},"targetPosition":{"x":22870.087443791006,"y":18772.313347423486},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5988292a-69bf-4e2d-833b-dccb78aa32a8","savedPayload":{"position":{"x":22870.087443791006,"y":18772.313347423486},"targetPosition":{"x":22955.257754995804,"y":18940.104086639643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}}],"id":"b12a20d9-1b6a-4525-b50c-8edf1fc3bff8","savedPayload":{"position":{"x":22955.257754995804,"y":18940.104086639643},"targetPosition":{"x":23668.814395170848,"y":19171.77955065727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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\n/* \nCalculation method credit: https://www.macroption.com/rsi-calculation/\n\nRSI Calculation Formula\n\n RSI = 100 – 100 / ( 1 + RS )\n RS = Relative Strength = AvgU / AvgD\n AvgU = average of all up moves in the last N price bars\n AvgD = average of all down moves in the last N price bars\n N = the period of RSI\n There are 3 different commonly used methods for the exact calculation of AvgU and AvgD (see details below)\n\nRSI Calculation Step by Step\n\n Calculate up moves and down moves (get U and D)\n Average the up moves and down moves (get AvgU and AvgD)\n Calculate Relative Strength (get RS)\n Calculate the Relative Strength Index (get RSI)\n*/\n\n/* Calculating Up Moves and Down Moves */\n\n//let candle = record.current // Our main dependencies are candles \n//let candlePrevious = record.previous\n\nif (record.previous !== undefined) {\n if (record.current.close > record.previous.close) {\n variable.last14U.push(record.current.close - record.previous.close) // Add win to last 14 array.\n } else {\n variable.last14U.push(0) // Add 0 to keep proper count of records in the last 14 array.\n }\n \n if (record.current.close < record.previous.close) {\n variable.last14D.push(record.previous.close - record.current.close) // Add win to last 14 array.\n } else {\n variable.last14D.push(0) // Add 0 to keep proper count of records in the last 14 array.\n }\n \n if (variable.last14U.length > 14) {\n variable.last14U.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements.\n }\n \n if (variable.last14D.length > 14) {\n variable.last14D.splice(0, 1) // Remove the first element of the array to keep it at a maximun of 14 elements.\n }\n \n /* Calculating Averages of Up Moves and Down Moves */\n \n variable.avgU = calculateAVGU(14)\n variable.avgD = calculateAVGD(14)\n \n /* Calculating Relative Strength */\n \n if (variable.avgD > 0) {\n relativeStrength = variable.avgU / variable.avgD\n } else {\n relativeStrength = 0\n }\n\n /* Calculating RSI */\n\n relativeStrengthIndex = 100 - 100 / ( 1 + relativeStrength)\n\n if (relativeStrengthIndex !== undefined) {\n variable.value = relativeStrengthIndex.toFixed(2)\n } else {\n variable.value = 0\n }\n} else {\n variable.value = 0\n}\n\nfunction calculateAVGU(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last14U.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sumU = 0 // Initialize sum variable. \n for (let j = variable.last14U.length - periods; j < variable.last14U.length; j++) { // Iterate through the last periods\n sumU = sumU + variable.last14U[j]\n }\n let averageU = sumU / periods\n return averageU\n}\n\nfunction calculateAVGD(periods) { // Having a function avoids us to repeat code.\n /* We check we have enough values to make the calculation */\n if (variable.last14D.length < periods) { return 0 } // If we dont, we define the value is zero.\n\n let sumD = 0 // Initialize sum variable. \n for (let i = variable.last14D.length - periods; i < variable.last14D.length; i++) { // Iterate through the last periods\n sumD = sumD + variable.last14D[i]\n }\n let averageD = sumD / periods\n return averageD\n}","id":"a00ed092-3bc1-4288-979d-34c204713d65","savedPayload":{"position":{"x":23106.320780917085,"y":18715.69931910614},"targetPosition":{"x":23277.43400226564,"y":18792.358088737325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c2f8b23a-4e60-4181-9c19-ed243eb151cb","savedPayload":{"position":{"x":23277.43400226564,"y":18792.358088737325},"targetPosition":{"x":23448.66444583211,"y":18868.607423994225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"initialization":{"type":"Procedure Initialization","name":"New Procedure Initialization","javascriptCode":{"type":"Javascript Code","code":"/* Initialization Code*/\n\n/* \nWe keep two separate arrays to store last 14 price increments or losses.\n*/\n\nvariable.last14U = []\nvariable.last14D = []","id":"59da2324-377e-4307-a6d1-b9cf170733ba","savedPayload":{"position":{"x":23409.855313128275,"y":18494.94268119737},"targetPosition":{"x":23429.324923568776,"y":18681.919340987843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"aca0a380-6355-42b9-876b-6932d6d13105","savedPayload":{"position":{"x":23429.324923568776,"y":18681.919340987843},"targetPosition":{"x":23448.66444583211,"y":18868.607423994225},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"5c066df5-2a29-4c74-b7bc-dc5ea1329089","savedPayload":{"position":{"x":23448.66444583211,"y":18868.607423994225},"targetPosition":{"x":23668.814395170848,"y":19171.77955065727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7","savedPayload":{"position":{"x":23668.814395170848,"y":19171.77955065727},"targetPosition":{"x":24418.803780802005,"y":19171.77689480097},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"RSI 14","id":"72403d40-2a64-4e51-8eaf-b1a872e4474e"}}}],"id":"276e2181-0c8d-4d56-94e0-1999ec317cb5","savedPayload":{"position":{"x":24418.803780802005,"y":19171.77689480097},"targetPosition":{"x":24997.408806793872,"y":18693.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"tradingBots":[],"plotters":[{"type":"Plotter","name":"SMA","code":"{\n\"codeName\": \"Plotter SMA\"\n}","modules":[{"type":"Plotter Module","name":"SMA Popular","code":"{\n\t\"codeName\": \"SMA-Popular\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"SMA 20 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma20","id":"81557791-d18b-472c-b152-612294f281cc","savedPayload":{"position":{"x":22445.677746949652,"y":19915.354614811506},"targetPosition":{"x":23504.748552868714,"y":19822.697925422322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b932c738-3b05-4b1f-a822-2ba7bae30252","savedPayload":{"position":{"x":23504.748552868714,"y":19822.697925422322},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 20 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma20","id":"dd573845-585b-4a89-8518-425173e02916","savedPayload":{"position":{"x":22822.111603512225,"y":18510.484336430884},"targetPosition":{"x":23692.96548115,"y":19120.26278623201},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440","savedPayload":{"position":{"x":23692.96548115,"y":19120.26278623201},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 50 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma50","id":"054b7477-497f-46f9-b33e-de27dc3d494f","savedPayload":{"position":{"x":24013.509875693773,"y":17676.258285239346},"targetPosition":{"x":24288.664617240775,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"00efabf8-701d-44b1-a590-b8399149dfbb","savedPayload":{"position":{"x":24288.664617240775,"y":18703.149760636243},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 50 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma50","id":"2e18404b-0350-4720-95d1-77533ced3986","savedPayload":{"position":{"x":25462.404071023644,"y":17803.020101979222},"targetPosition":{"x":25013.11171490571,"y":18766.53066900618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"084b4468-49d2-4ad2-a716-ebc338c34248","savedPayload":{"position":{"x":25013.11171490571,"y":18766.53066900618},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 100 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma100","id":"9e730b8b-7f20-41df-9126-9d9aae2f8ca6","savedPayload":{"position":{"x":26490.840492841693,"y":18831.45652379727},"targetPosition":{"x":25527.329925814734,"y":19280.748879915205},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bbacba1b-6b2d-48b7-a440-986a04c61858","savedPayload":{"position":{"x":25527.329925814734,"y":19280.748879915205},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 100 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma100","id":"922d462b-1e9f-4766-859d-330041428bc0","savedPayload":{"position":{"x":26617.60230958157,"y":20280.350719127142},"targetPosition":{"x":25590.710834184672,"y":20005.19597758014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"270a8be8-ad51-4061-abe1-a4c7234eb88a","savedPayload":{"position":{"x":25590.710834184672,"y":20005.19597758014},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 200 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma200","id":"4278cffb-da8c-458e-b014-449f8487204b","savedPayload":{"position":{"x":25783.37625839003,"y":21471.74899130869},"targetPosition":{"x":25173.597808588904,"y":20600.895113670915},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cd242031-8d7a-4cee-a680-156b0be7c7c7","savedPayload":{"position":{"x":25173.597808588904,"y":20600.895113670915},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Point","name":"SMA 200 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma200","id":"a3b73c57-a9b2-4a55-9232-9bacf741a933","savedPayload":{"position":{"x":24378.50598000941,"y":21848.182847871263},"targetPosition":{"x":24471.162669398593,"y":20789.1120419522},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7","savedPayload":{"position":{"x":24471.162669398593,"y":20789.1120419522},"targetPosition":{"x":24563.819358787776,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"6755d98f-e1de-4ae9-b688-d06ab9cc543e","savedPayload":{"position":{"x":24563.819358787776,"y":19730.04123603314},"targetPosition":{"x":23812.08262493788,"y":20481.777969883035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 20","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":"6368c66e-47fc-486d-8c03-e2ed303de825","savedPayload":{"position":{"x":25389.28358342878,"y":18703.149760636243},"targetPosition":{"x":25114.12884188178,"y":19730.04123603314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"b0d22693-8100-49e9-b92e-11a8a55a5480","savedPayload":{"position":{"x":25114.12884188178,"y":19730.04123603314},"targetPosition":{"x":24838.974100334777,"y":20756.932711430036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"d9dae274-33d5-403d-a5ff-5514104df62e","savedPayload":{"position":{"x":24296.730303452172,"y":21696.126517719767},"targetPosition":{"x":24838.974100334777,"y":20756.932711430036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 End","id":"44ba79ce-2ad1-4bb7-87db-df0aa58e6440"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"45823ead-7d67-409c-8160-ea36496c412e","savedPayload":{"position":{"x":24312.237187395673,"y":19844.59761599752},"targetPosition":{"x":24838.974100334777,"y":20756.932711430036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 20 Begin","id":"b932c738-3b05-4b1f-a822-2ba7bae30252"}}}],"id":"ffe11ebb-d04f-4bf6-b6ff-43382be7c347","savedPayload":{"position":{"x":24838.974100334777,"y":20756.932711430036},"targetPosition":{"x":23812.08262493788,"y":20481.777969883035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 50","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":"b0de67a4-9a26-40ce-aa19-f5336145f871","savedPayload":{"position":{"x":26141.020317278675,"y":20958.35996218593},"targetPosition":{"x":25114.12884188178,"y":21233.51470373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"f06c2d68-11d4-40e0-99df-43a758ca0123","savedPayload":{"position":{"x":25114.12884188178,"y":21233.51470373293},"targetPosition":{"x":24087.237366484882,"y":21508.66944527993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"baf11fde-1f46-4e77-a8fe-d19a3ee8a4b2","savedPayload":{"position":{"x":23566.912115604508,"y":22409.899216265763},"targetPosition":{"x":24087.237366484882,"y":21508.66944527993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 End","id":"084b4468-49d2-4ad2-a716-ebc338c34248"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"bb6ef8cd-1473-4200-9c0e-35b5eab40259","savedPayload":{"position":{"x":23561.99053258393,"y":20598.9152424488},"targetPosition":{"x":24087.237366484882,"y":21508.66944527993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 50 Begin","id":"00efabf8-701d-44b1-a590-b8399149dfbb"}}}],"id":"c867bef2-aa91-4753-9b27-68f88d42370e","savedPayload":{"position":{"x":24087.237366484882,"y":21508.66944527993},"targetPosition":{"x":23812.08262493788,"y":20481.777969883035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 100","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.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":"b03ef9cb-fef3-4a54-bf5a-a85528fa2699","savedPayload":{"position":{"x":24875.198909282455,"y":21985.251437582825},"targetPosition":{"x":23812.08262493788,"y":21985.251437582825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"baf25122-e7de-4283-b638-cfe2766220ac","savedPayload":{"position":{"x":23812.08262493788,"y":21985.251437582825},"targetPosition":{"x":23060.345891087985,"y":21233.51470373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"8657980b-1796-4291-bba6-87520122b302","savedPayload":{"position":{"x":22524.820671680398,"y":22161.07159248134},"targetPosition":{"x":23060.345891087985,"y":21233.51470373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 Begin","id":"bbacba1b-6b2d-48b7-a440-986a04c61858"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"45403abf-a4b1-4f8a-9d18-8ee72fef1792","savedPayload":{"position":{"x":22534.24362538066,"y":20322.27884955074},"targetPosition":{"x":23060.345891087985,"y":21233.51470373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 100 End","id":"270a8be8-ad51-4061-abe1-a4c7234eb88a"}}}],"id":"7473f9b9-7737-4ee1-8418-39b96d8365c3","savedPayload":{"position":{"x":23060.345891087985,"y":21233.51470373293},"targetPosition":{"x":23812.08262493788,"y":20481.777969883035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 200","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.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":"9475aa23-1561-45f6-8129-9d7ffaf0bb22","savedPayload":{"position":{"x":22234.88166644698,"y":22260.406179129826},"targetPosition":{"x":22510.036407993983,"y":21233.51470373293},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"9007d9ad-f2b5-45fb-a7b3-b9579c74866d","savedPayload":{"position":{"x":22510.036407993983,"y":21233.51470373293},"targetPosition":{"x":22785.191149540984,"y":20206.623228336033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"0b3d001b-060a-4d72-94e7-d8e9f76ef1ae","savedPayload":{"position":{"x":22259.99968780733,"y":21116.281523760088},"targetPosition":{"x":22785.191149540984,"y":20206.623228336033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 Begin","id":"cd242031-8d7a-4cee-a680-156b0be7c7c7"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"178f2776-a5db-4cb9-b8c7-11ecb471bf12","savedPayload":{"position":{"x":22253.073795617576,"y":19284.96893575158},"targetPosition":{"x":22785.191149540984,"y":20206.623228336033},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 200 End","id":"328b048e-eb4a-4a02-ad95-a17cd170c4a7"}}}],"id":"5dbe47bb-9414-4edd-be08-5ab50755a852","savedPayload":{"position":{"x":22785.191149540984,"y":20206.623228336033},"targetPosition":{"x":23812.08262493788,"y":20481.777969883035},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"340dc986-ccc9-4b47-ac54-294187daa2e0","savedPayload":{"position":{"x":23812.08262493788,"y":20481.777969883035},"targetPosition":{"x":23536.92788339088,"y":19454.886494486138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"Popular SMA","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"SMA 20","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma20","id":"4f901876-b274-426e-9755-529b6241890d","savedPayload":{"position":{"x":22621.314822671222,"y":21303.050393789206},"targetPosition":{"x":22565.675615332602,"y":20241.39107336417},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"57d75985-febe-441b-be12-31f5eb10881b","savedPayload":{"position":{"x":22565.675615332602,"y":20241.39107336417},"targetPosition":{"x":22510.036407993983,"y":19179.731752939137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Panel Data","name":"SMA 50","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma50","id":"dc2d66e9-8dc1-4092-bfa8-e147c7cf7226","savedPayload":{"position":{"x":20525.027299684923,"y":19941.705358836705},"targetPosition":{"x":21517.531853839453,"y":19560.71855588792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"74e3faab-246a-4c05-ae0a-b68f2095aa73","savedPayload":{"position":{"x":21517.531853839453,"y":19560.71855588792},"targetPosition":{"x":22510.036407993983,"y":19179.731752939137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Panel Data","name":"SMA 100","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma100","id":"1b045b3c-13a9-4091-a804-0040340cf1be","savedPayload":{"position":{"x":21171.954896403622,"y":17527.33869906408},"targetPosition":{"x":21840.995652198802,"y":18353.535226001608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f46c7caf-8907-4cc4-b048-efe691a24049","savedPayload":{"position":{"x":21840.995652198802,"y":18353.535226001608},"targetPosition":{"x":22510.036407993983,"y":19179.731752939137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Panel Data","name":"SMA 200","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma200","id":"ef7a7e7d-dec3-4da6-9646-d087e03b7a71","savedPayload":{"position":{"x":23668.065662422363,"y":17396.523076972546},"targetPosition":{"x":23089.051035208173,"y":18288.12741495584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8e1108c8-e8a4-4ae8-b6b1-765c4292580a","savedPayload":{"position":{"x":23089.051035208173,"y":18288.12741495584},"targetPosition":{"x":22510.036407993983,"y":19179.731752939137},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"7fc74763-c245-4b23-8121-7fe0d1e8e1db","savedPayload":{"position":{"x":22510.036407993983,"y":19179.731752939137},"targetPosition":{"x":23536.92788339088,"y":19454.886494486138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"ddf21e96-c312-4ebe-9e2b-f56e8ea072aa","savedPayload":{"position":{"x":23536.92788339088,"y":19454.886494486138},"targetPosition":{"x":24288.664617240775,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},{"type":"Plotter Module","name":"SMA Base 11","code":"{\n\t\"codeName\": \"SMA-Base11\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"SMA 11 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma11","id":"ab8c79b6-26ed-436e-a9ed-5581e48403a9","savedPayload":{"position":{"x":23104.383409877213,"y":18947.68491838069},"targetPosition":{"x":23182.201204245008,"y":19055.4068731373},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"77d02772-853e-4e30-9efe-7bea8e829d51","savedPayload":{"position":{"x":23182.201204245008,"y":19055.4068731373},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 11 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma11","id":"e7f8c6de-4085-4886-ad93-c207274eb90c","savedPayload":{"position":{"x":23245.567781109778,"y":18897.74292596976},"targetPosition":{"x":23252.79338986129,"y":19030.435876931835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"185ca2e7-b561-4ce4-b219-bd54496885b5","savedPayload":{"position":{"x":23252.79338986129,"y":19030.435876931835},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 22 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma22","id":"0c62dd54-916a-4187-be47-0715604a0632","savedPayload":{"position":{"x":23391.340311792133,"y":18932.059082292566},"targetPosition":{"x":23325.679655202468,"y":19047.593955093238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578","savedPayload":{"position":{"x":23325.679655202468,"y":19047.593955093238},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 22 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma22","id":"f1d537b7-09a0-4031-8565-02ea33b66261","savedPayload":{"position":{"x":23495.41925341211,"y":19039.738250182992},"targetPosition":{"x":23377.719126012456,"y":19101.43353903845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951","savedPayload":{"position":{"x":23377.719126012456,"y":19101.43353903845},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 33 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma33","id":"5cbdb800-4b2b-49e6-a8ef-678587ecd626","savedPayload":{"position":{"x":23524.76027739203,"y":19186.59305466048},"targetPosition":{"x":23392.389638002416,"y":19174.860941277195},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810","savedPayload":{"position":{"x":23392.389638002416,"y":19174.860941277195},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 33 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma33","id":"d7051dab-455d-4d02-8e0b-59139c3546d3","savedPayload":{"position":{"x":23470.047815932034,"y":19325.998132929883},"targetPosition":{"x":23365.033407272418,"y":19244.563480411896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ce242fe6-2b52-4b89-a203-ce398b3545fd","savedPayload":{"position":{"x":23365.033407272418,"y":19244.563480411896},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 55 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma55","id":"2c8a5860-2c8c-4a04-b0aa-d353817d3dab","savedPayload":{"position":{"x":23348.652688965885,"y":19413.693357629876},"targetPosition":{"x":23304.335843789344,"y":19288.411092761893},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532","savedPayload":{"position":{"x":23304.335843789344,"y":19288.411092761893},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 55 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma55","id":"62dfcbf0-e773-41db-80e0-bf46d47d977f","savedPayload":{"position":{"x":23199.11699156837,"y":19421.836114543075},"targetPosition":{"x":23229.567995090587,"y":19292.482471218493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a","savedPayload":{"position":{"x":23229.567995090587,"y":19292.482471218493},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 111 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma111","id":"b496251d-8005-4d21-9be0-1dec58cb58ba","savedPayload":{"position":{"x":23068.91725109444,"y":19347.8411358835},"targetPosition":{"x":23164.46812485362,"y":19255.484981888705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"62ed1060-3233-4175-a4cc-8ad04a123105","savedPayload":{"position":{"x":23164.46812485362,"y":19255.484981888705},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 11 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma111","id":"3e765b91-17a0-4b30-bcfb-d7491afa9635","savedPayload":{"position":{"x":22999.390965197163,"y":19215.20130455203},"targetPosition":{"x":23129.704981904983,"y":19189.16506622297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bdee0fe7-c635-483d-b547-6271410cc35a","savedPayload":{"position":{"x":23129.704981904983,"y":19189.16506622297},"targetPosition":{"x":23260.018998612803,"y":19163.12882789391},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"853ae08f-85ed-48e9-82d9-7f00184ff7e7","savedPayload":{"position":{"x":23260.018998612803,"y":19163.12882789391},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 11","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":"a36a0be4-c3be-4e17-8459-ce24d08c60d4","savedPayload":{"position":{"x":22675.56013112633,"y":19614.934495709436},"targetPosition":{"x":22673.075247451146,"y":19482.068194451465},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"bc76dbe0-28fe-4811-b396-583cc810ad8c","savedPayload":{"position":{"x":22673.075247451146,"y":19482.068194451465},"targetPosition":{"x":22668.105480100778,"y":19216.33559193552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"007b0aa7-d129-4b66-97b1-a223b61465a9","savedPayload":{"position":{"x":22413.03893640781,"y":19284.68046633425},"targetPosition":{"x":22668.105480100778,"y":19216.33559193552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 Begin","id":"77d02772-853e-4e30-9efe-7bea8e829d51"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"8bf6c449-35d6-44c0-ac25-0da059e0c7d0","savedPayload":{"position":{"x":22408.724651367465,"y":19146.834708344315},"targetPosition":{"x":22668.105480100778,"y":19216.33559193552},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"185ca2e7-b561-4ce4-b219-bd54496885b5"}}}],"id":"82eff706-25ff-45ba-b066-0f20b64e26e1","savedPayload":{"position":{"x":22668.105480100778,"y":19216.33559193552},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 22","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":"48b5e69c-d187-40f8-aee9-89f02ac7b442","savedPayload":{"position":{"x":22404.146458351162,"y":19512.064165086373},"targetPosition":{"x":22459.556183111992,"y":19391.277613439335},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"13b6ae03-77c1-473a-9cd9-eee42cab5005","savedPayload":{"position":{"x":22459.556183111992,"y":19391.277613439335},"targetPosition":{"x":22570.375632633648,"y":19149.70451014526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5101118b-d0b2-46b3-b752-c1e8f3e09842","savedPayload":{"position":{"x":22352.117900917732,"y":19208.186493100387},"targetPosition":{"x":22570.375632633648,"y":19149.70451014526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 End","id":"3871971f-7f4b-49a0-a0d7-b1d08a4db951"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5d1290b9-98c2-4925-9da4-fcdf50d13c5b","savedPayload":{"position":{"x":22309.028373128054,"y":19079.676723016648},"targetPosition":{"x":22570.375632633648,"y":19149.70451014526},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 22 Begin","id":"08b23cb2-cf78-48ae-bd9a-efe0e8df4578"}}}],"id":"b7186c69-0a02-4820-bb58-1e2cee5790b3","savedPayload":{"position":{"x":22570.375632633648,"y":19149.70451014526},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 33","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.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":"a8183072-9dc8-4f7c-b72b-742477e4c8fd","savedPayload":{"position":{"x":22204.24495255267,"y":19301.61922057285},"targetPosition":{"x":22306.574710204954,"y":19216.835676440285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"98a87528-cb66-4e15-a3b0-aadb8d25fcec","savedPayload":{"position":{"x":22306.574710204954,"y":19216.835676440285},"targetPosition":{"x":22511.234225509517,"y":19047.268588175153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"242e470b-2971-40b2-9f06-a95bf95e23fc","savedPayload":{"position":{"x":22249.338940911628,"y":19117.443218184675},"targetPosition":{"x":22511.234225509517,"y":19047.268588175153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 End","id":"ce242fe6-2b52-4b89-a203-ce398b3545fd"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"106e4253-deab-440c-828a-ea55aea78c97","savedPayload":{"position":{"x":22292.056516172262,"y":18988.540097959332},"targetPosition":{"x":22511.234225509517,"y":19047.268588175153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 33 Begin","id":"2734c9f2-1347-4b5b-8dbf-f7f42eb2c810"}}}],"id":"53f19bad-dcb0-476f-8b32-0d332d1ad130","savedPayload":{"position":{"x":22511.234225509517,"y":19047.268588175153},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 55","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.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":"ea853676-6bdc-4723-a515-1a4c683fa1fa","savedPayload":{"position":{"x":22115.448558585336,"y":19025.280864367633},"targetPosition":{"x":22244.430685633917,"y":18993.292748466924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"1fd3b244-b5ae-4a96-add5-50b228eac931","savedPayload":{"position":{"x":22244.430685633917,"y":18993.292748466924},"targetPosition":{"x":22502.39493973108,"y":18929.31651666551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"c0102a15-8594-4582-9714-75e555e3f2ac","savedPayload":{"position":{"x":22233.743521655484,"y":19001.30144718434},"targetPosition":{"x":22502.39493973108,"y":18929.31651666551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 End","id":"d2e58c59-c5d7-4b42-bb66-f012da23c12a"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"aa781190-aa71-4407-bc72-db67ffd67c7e","savedPayload":{"position":{"x":22224.455639067288,"y":18854.842905507776},"targetPosition":{"x":22502.39493973108,"y":18929.31651666551},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 55 Begin","id":"bdc5f0cf-2c2f-466c-963b-19d81a13b532"}}}],"id":"8341d899-4df1-47f8-8e0d-bb87b76ed622","savedPayload":{"position":{"x":22502.39493973108,"y":18929.31651666551},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 111","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.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"85056d46-5dd2-4dc2-9c40-55ef936aeea8","savedPayload":{"position":{"x":22155.34449129069,"y":18737.7812969847},"targetPosition":{"x":22285.432495611618,"y":18764.92424797848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"bd5b197d-7425-461d-a2ab-5ad6446d00ee","savedPayload":{"position":{"x":22285.432495611618,"y":18764.92424797848},"targetPosition":{"x":22545.60850425348,"y":18819.210149966046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"fbd2d02d-d58e-4d04-a5a6-9bbc6e877244","savedPayload":{"position":{"x":22283.217396523385,"y":18889.517635383432},"targetPosition":{"x":22545.60850425348,"y":18819.210149966046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 11 End","id":"bdee0fe7-c635-483d-b547-6271410cc35a"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e79d988b-7d4a-4201-839a-a95f99dc26fe","savedPayload":{"position":{"x":22276.245885207627,"y":18747.034653721577},"targetPosition":{"x":22545.60850425348,"y":18819.210149966046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 111 Begin","id":"62ed1060-3233-4175-a4cc-8ad04a123105"}}}],"id":"5745a180-5f94-4109-b8e5-41b2c21e9f1a","savedPayload":{"position":{"x":22545.60850425348,"y":18819.210149966046},"targetPosition":{"x":22765.205478186537,"y":18968.928831722387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"ade8af76-e9e6-4dda-8921-c3c5cc8a0ecc","savedPayload":{"position":{"x":22765.205478186537,"y":18968.928831722387},"targetPosition":{"x":23225.5483328962,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 11","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"SMA 11","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma11","id":"bce6e5ba-e93b-4c0f-9013-db467727e721","savedPayload":{"position":{"x":22765.205478186537,"y":18703.149760636243},"targetPosition":{"x":22765.205478186537,"y":18570.26022509317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f4794965-6a35-4289-9e0e-718b931028de","savedPayload":{"position":{"x":22765.205478186537,"y":18570.26022509317},"targetPosition":{"x":22765.205478186537,"y":18437.370689550098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 22","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma22","id":"e8837d50-025b-4bbc-8199-328df7afbdda","savedPayload":{"position":{"x":22535.03405083171,"y":18570.26022509317},"targetPosition":{"x":22650.119764509123,"y":18503.815457321634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2b4712d6-5952-4bd0-bcac-7d396d95f842","savedPayload":{"position":{"x":22650.119764509123,"y":18503.815457321634},"targetPosition":{"x":22765.205478186537,"y":18437.370689550098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 33","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma33","id":"825bc681-cb31-4d26-85af-4f692538fc9d","savedPayload":{"position":{"x":22535.03405083171,"y":18304.481154007026},"targetPosition":{"x":22650.119764509123,"y":18370.925921778562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"377ff3cb-9d7b-45aa-a2c1-3cabf3540c8e","savedPayload":{"position":{"x":22650.119764509123,"y":18370.925921778562},"targetPosition":{"x":22765.205478186537,"y":18437.370689550098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 55","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma55","id":"24c4a804-6686-43ab-a664-db08d860034c","savedPayload":{"position":{"x":22765.205478186537,"y":18171.591618463954},"targetPosition":{"x":22765.205478186537,"y":18304.481154007026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4b0485d9-4d37-4402-939b-eb878c6750ec","savedPayload":{"position":{"x":22765.205478186537,"y":18304.481154007026},"targetPosition":{"x":22765.205478186537,"y":18437.370689550098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 111","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma111","id":"3d21e771-7edd-4460-aa23-da3c7880a629","savedPayload":{"position":{"x":22995.376905541365,"y":18304.481154007026},"targetPosition":{"x":22880.29119186395,"y":18370.925921778562},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"738b01bd-a4da-4f90-a816-c021eeb81030","savedPayload":{"position":{"x":22880.29119186395,"y":18370.925921778562},"targetPosition":{"x":22765.205478186537,"y":18437.370689550098},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"fc702308-8514-4e8d-85d3-5d052aad782c","savedPayload":{"position":{"x":22765.205478186537,"y":18437.370689550098},"targetPosition":{"x":23225.5483328962,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"4a61ac35-a1ae-40f4-b3da-f81ae796ee00","savedPayload":{"position":{"x":23225.5483328962,"y":18703.149760636243},"targetPosition":{"x":24288.664617240775,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},{"type":"Plotter Module","name":"SMA Base 7","code":"{\n\t\"codeName\": \"SMA-Base7\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"SMA 7 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma7","id":"b459dee1-24d0-4794-9c4d-d9c58972f6e6","savedPayload":{"position":{"x":23526.8384356021,"y":18095.61365382551},"targetPosition":{"x":23651.028657572213,"y":18330.593021844124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340","savedPayload":{"position":{"x":23651.028657572213,"y":18330.593021844124},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 7 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma7","id":"3994ef79-ab0b-4552-bbde-f754a86f2e04","savedPayload":{"position":{"x":23676.396051030544,"y":18043.28118079008},"targetPosition":{"x":23725.807465286434,"y":18304.42678532641},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9","savedPayload":{"position":{"x":23725.807465286434,"y":18304.42678532641},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 14 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma14","id":"78e7fbfb-c210-44b6-8399-1567f81c73c9","savedPayload":{"position":{"x":23834.73450844909,"y":18037.356573717967},"targetPosition":{"x":23804.976693995708,"y":18301.464481790354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d5f823d6-8b99-44b5-99dc-04724a531323","savedPayload":{"position":{"x":23804.976693995708,"y":18301.464481790354},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 14 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma14","id":"40d386cb-84a9-49b0-b28e-3d39e9e274cb","savedPayload":{"position":{"x":23987.78474105924,"y":18078.366259947252},"targetPosition":{"x":23881.501810300782,"y":18321.969324904996},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8","savedPayload":{"position":{"x":23881.501810300782,"y":18321.969324904996},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 21 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma21","id":"6d2cd604-9a38-4ab7-b19d-9e9e3ae8ad25","savedPayload":{"position":{"x":24121.94756404369,"y":18162.666348888415},"targetPosition":{"x":23948.583221793007,"y":18364.119369375578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1","savedPayload":{"position":{"x":23948.583221793007,"y":18364.119369375578},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 21 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma21","id":"1de80488-5eeb-491c-bd5f-e5bd7569dc59","savedPayload":{"position":{"x":24225.302021816427,"y":18282.766407694187},"targetPosition":{"x":24000.260450679376,"y":18424.169398778464},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"df7e58c1-c042-443b-bfd3-69d57894d358","savedPayload":{"position":{"x":24000.260450679376,"y":18424.169398778464},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 28 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma28","id":"93b50d69-b003-4590-b098-ff59dc226e22","savedPayload":{"position":{"x":24288.664617240775,"y":18427.99501908924},"targetPosition":{"x":24031.94174839155,"y":18496.78370447599},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88","savedPayload":{"position":{"x":24031.94174839155,"y":18496.78370447599},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 28 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma28","id":"36ddca01-d7c2-44e4-bac6-1efd92721b56","savedPayload":{"position":{"x":24306.4053056511,"y":18585.44798362587},"targetPosition":{"x":24040.812092596712,"y":18575.510186744305},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7678774b-b068-4757-962b-8e126342898a","savedPayload":{"position":{"x":24040.812092596712,"y":18575.510186744305},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 35 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma35","id":"e631b84b-646b-41f7-b87b-7cb4fbf8ac76","savedPayload":{"position":{"x":24276.94774902843,"y":18741.134914434035},"targetPosition":{"x":24026.083314285377,"y":18653.353652148387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"93613bd9-2dbb-493c-a72e-414b0398733e","savedPayload":{"position":{"x":24026.083314285377,"y":18653.353652148387},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 35 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma35","id":"89e3900f-eeaf-47cb-97f6-9093b2f39811","savedPayload":{"position":{"x":24202.909380551042,"y":18881.22234449059},"targetPosition":{"x":23989.06413004668,"y":18723.397367176665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f620fdbe-48b5-4831-995d-b3c721738d1b","savedPayload":{"position":{"x":23989.06413004668,"y":18723.397367176665},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 70 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma70","id":"cacaceaf-b19d-4b2a-81b3-5ac6b44877b7","savedPayload":{"position":{"x":24090.868834170178,"y":18993.26289087146},"targetPosition":{"x":23933.043856856253,"y":18779.4176403671},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21","savedPayload":{"position":{"x":23933.043856856253,"y":18779.4176403671},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 70 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma70","id":"8658d660-52c4-41f8-b423-db569ff19941","savedPayload":{"position":{"x":23950.78140411362,"y":19067.301259348846},"targetPosition":{"x":23863.00014182797,"y":18816.436824605793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8392e1ff-33a6-4b95-baad-3f146bd3c121","savedPayload":{"position":{"x":23863.00014182797,"y":18816.436824605793},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 140 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma140","id":"a56e674e-ec4f-4448-a8bc-bfbc3a02eea4","savedPayload":{"position":{"x":23795.094473305453,"y":19096.758815971516},"targetPosition":{"x":23785.15667642389,"y":18831.165602917128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"39e65adb-6125-4e9a-8f15-5403b21aac40","savedPayload":{"position":{"x":23785.15667642389,"y":18831.165602917128},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 140 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma140","id":"9aeb4594-c7e0-41e1-83b3-8df31b0d44b0","savedPayload":{"position":{"x":23637.641508768826,"y":19079.01812756119},"targetPosition":{"x":23706.430194155575,"y":18822.295258711965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7559cbf5-acba-4a60-91b4-d95f90293f22","savedPayload":{"position":{"x":23706.430194155575,"y":18822.295258711965},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 210 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma210","id":"8856ee41-b264-4468-9dac-eb808b483df3","savedPayload":{"position":{"x":23492.41289737377,"y":19015.655532136843},"targetPosition":{"x":23633.815888458048,"y":18790.61396099979},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"479df802-576f-45f1-8322-6b2e493c5ecc","savedPayload":{"position":{"x":23633.815888458048,"y":18790.61396099979},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 210 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma210","id":"f4fa8a22-fe87-4174-bf51-cb574381ca0d","savedPayload":{"position":{"x":23372.312838568,"y":18912.301074364106},"targetPosition":{"x":23573.765859055162,"y":18738.936732113423},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10","savedPayload":{"position":{"x":23573.765859055162,"y":18738.936732113423},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 280 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma280","id":"49f183b2-f8d1-4055-947d-291b7787d846","savedPayload":{"position":{"x":23288.012749626836,"y":18778.138251379656},"targetPosition":{"x":23531.61581458458,"y":18671.8553206212},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e","savedPayload":{"position":{"x":23531.61581458458,"y":18671.8553206212},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 280 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma280","id":"012f6580-f9e9-47f6-b6f4-82598b8e8aa7","savedPayload":{"position":{"x":23247.00306339755,"y":18625.088018769507},"targetPosition":{"x":23511.110971469938,"y":18595.330204316124},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34","savedPayload":{"position":{"x":23511.110971469938,"y":18595.330204316124},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 350 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.sma350","id":"4a3f6588-26e3-446b-ac4e-54ad3bc9ef3c","savedPayload":{"position":{"x":23252.927670469664,"y":18466.74956135096},"targetPosition":{"x":23514.073275005994,"y":18516.16097560685},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f3c05d30-da2e-449e-8471-dcc216f4e630","savedPayload":{"position":{"x":23514.073275005994,"y":18516.16097560685},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"SMA 350 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.sma350","id":"1157762f-1236-43b1-a399-06d59a992d55","savedPayload":{"position":{"x":23305.260143505093,"y":18317.191945922517},"targetPosition":{"x":23540.23951152371,"y":18441.38216789263},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d6598381-9b15-4cb3-afba-b85ed6770ce3","savedPayload":{"position":{"x":23540.23951152371,"y":18441.38216789263},"targetPosition":{"x":23775.218879542324,"y":18565.57238986274},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"e561ee2d-8458-4001-8904-61cd2a3a815e","savedPayload":{"position":{"x":23775.218879542324,"y":18565.57238986274},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 7","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":"38522e0c-85c4-49ae-93ac-9a04470855e0","savedPayload":{"position":{"x":22426.12536808489,"y":18521.18485472898},"targetPosition":{"x":22499.95483831242,"y":18410.69124413192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"fcc0c4b0-28ea-4482-8da8-16a0c88c1e52","savedPayload":{"position":{"x":22499.95483831242,"y":18410.69124413192},"targetPosition":{"x":22647.61377876748,"y":18189.704022937793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"f11dbba2-2bd3-4d0a-a182-2ef78a492d32","savedPayload":{"position":{"x":22403.292344794936,"y":18255.16975386435},"targetPosition":{"x":22647.61377876748,"y":18189.704022937793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 End","id":"a95fee99-4a06-44d7-a6c4-0eea9ccec4d9"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"c50700bc-305d-4cb6-b1bf-1c03c7459d2b","savedPayload":{"position":{"x":22378.660635299566,"y":18154.29566986626},"targetPosition":{"x":22647.61377876748,"y":18189.704022937793},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 7 Begin","id":"8d6e2d59-fe23-4ba5-ad87-d9d15ad60340"}}}],"id":"62ad882d-f16d-4476-8c17-0f6e2d6e2b76","savedPayload":{"position":{"x":22647.61377876748,"y":18189.704022937793},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 14","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":"14a21030-fa6b-44ef-8cb2-e4f3cb79126e","savedPayload":{"position":{"x":22263.404362526744,"y":18342.475204491737},"targetPosition":{"x":22363.31600534542,"y":18254.855045360822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"ca2fa8f2-f6a1-4084-8606-a35495dfd596","savedPayload":{"position":{"x":22363.31600534542,"y":18254.855045360822},"targetPosition":{"x":22563.139290982766,"y":18079.61472709899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e7d170e8-3d4f-4a55-883a-3a3394fef2af","savedPayload":{"position":{"x":22302.572750357704,"y":18149.433321234046},"targetPosition":{"x":22563.139290982766,"y":18079.61472709899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 Begin","id":"d5f823d6-8b99-44b5-99dc-04724a531323"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2383789a-4600-4b8b-a49b-51cbeb46d4f1","savedPayload":{"position":{"x":22304.83487981397,"y":18045.608306230777},"targetPosition":{"x":22563.139290982766,"y":18079.61472709899},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 14 End","id":"c6d631e7-8cd0-4ccd-b7b4-90b8dda615d8"}}}],"id":"ab179cef-53c3-46f7-a83b-af29ccd8bc90","savedPayload":{"position":{"x":22563.139290982766,"y":18079.61472709899},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 21","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.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":"f8f0733e-0890-4d54-8d77-1b1fc8b8c92b","savedPayload":{"position":{"x":22152.481401803416,"y":18127.739642643817},"targetPosition":{"x":22271.666403866937,"y":18068.96410402466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"a0f2de63-1abd-4945-9c8c-84e21fd121e0","savedPayload":{"position":{"x":22271.666403866937,"y":18068.96410402466},"targetPosition":{"x":22510.03640799398,"y":17951.413026786347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"69c3f249-07bf-4a03-b8a1-9d74d0255f23","savedPayload":{"position":{"x":22241.107576942955,"y":17986.818179067475},"targetPosition":{"x":22510.03640799398,"y":17951.413026786347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 End","id":"df7e58c1-c042-443b-bfd3-69d57894d358"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"959961b9-9bf9-48ce-9ee0-08d2d6a62b8e","savedPayload":{"position":{"x":22241.704005616142,"y":17916.08639582968},"targetPosition":{"x":22510.03640799398,"y":17951.413026786347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 21 Begin","id":"4f1044fa-67dd-42dc-ba74-61e299e1f1e1"}}}],"id":"9a17429f-8213-4a7e-8167-dc36d761973e","savedPayload":{"position":{"x":22510.03640799398,"y":17951.413026786347},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 28","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.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":"713c60e9-ee11-4551-ab62-58ce9c16e066","savedPayload":{"position":{"x":22100.915702379338,"y":17891.61204285786},"targetPosition":{"x":22231.251802759605,"y":17865.686580576188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"725a4d2f-0838-4d78-a8fa-a2b129feda2f","savedPayload":{"position":{"x":22231.251802759605,"y":17865.686580576188},"targetPosition":{"x":22491.92400352014,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"f4c161f4-6510-47a2-97f7-3f9f848d9892","savedPayload":{"position":{"x":22233.85315146217,"y":17847.811328240783},"targetPosition":{"x":22491.92400352014,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 Begin","id":"7bd742dd-7c4c-4dfe-9415-e655a5e1cc88"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b1b22a6f-0a69-401f-90ea-2306baee0ea2","savedPayload":{"position":{"x":22227.299497215477,"y":17778.997178835005},"targetPosition":{"x":22491.92400352014,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 28 End","id":"7678774b-b068-4757-962b-8e126342898a"}}}],"id":"4f6e0c60-00a8-4a76-b1b1-4eaa25c5824c","savedPayload":{"position":{"x":22491.92400352014,"y":17813.835656012845},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 35","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.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"73f591c5-286b-4441-aa59-f647f738e40e","savedPayload":{"position":{"x":21979.61637260723,"y":17641.492719373517},"targetPosition":{"x":22244.826390300605,"y":17658.87550230643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c56cb10-43c9-447b-8b8a-30dae8e7fab8","savedPayload":{"position":{"x":22244.826390300605,"y":17658.87550230643},"targetPosition":{"x":22510.03640799398,"y":17676.258285239343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"3ad24108-1339-4c6d-abc6-27a9aa5bc046","savedPayload":{"position":{"x":22274.305485833895,"y":17707.2928499003},"targetPosition":{"x":22510.03640799398,"y":17676.258285239343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 End","id":"f620fdbe-48b5-4831-995d-b3c721738d1b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"abfdefe3-b9d4-4816-b2cc-7aa64bb69734","savedPayload":{"position":{"x":22237.52527058148,"y":17640.381513378605},"targetPosition":{"x":22510.03640799398,"y":17676.258285239343},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 35 Begin","id":"93613bd9-2dbb-493c-a72e-414b0398733e"}}}],"id":"a8a09eca-7bee-4f17-b7db-1f43f419441c","savedPayload":{"position":{"x":22510.03640799398,"y":17676.258285239343},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 70","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.GREY\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"9ac33f9d-bce7-407a-8de9-3334bb263b69","savedPayload":{"position":{"x":22059.790870581386,"y":17377.192819929296},"targetPosition":{"x":22311.465080782076,"y":17462.624702428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ea184e1f-5a0f-4ed3-b3ed-6ba18e7237f9","savedPayload":{"position":{"x":22311.465080782076,"y":17462.624702428},"targetPosition":{"x":22563.139290982766,"y":17548.0565849267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5505dd50-5ad7-48fc-9256-14cab581d92f","savedPayload":{"position":{"x":22287.823390308906,"y":17584.302610875937},"targetPosition":{"x":22563.139290982766,"y":17548.0565849267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 Begin","id":"9e506a85-5f72-4a3f-a773-cd85d8b15f21"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b255b251-b73a-469c-a41f-e273d2909af2","savedPayload":{"position":{"x":22307.253474384972,"y":17514.36857807441},"targetPosition":{"x":22563.139290982766,"y":17548.0565849267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 70 End","id":"8392e1ff-33a6-4b95-baad-3f146bd3c121"}}}],"id":"31cf093b-6de4-4e4a-a8f4-f3ff989dd374","savedPayload":{"position":{"x":22563.139290982766,"y":17548.0565849267},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 140","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.PATINATED_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"e9088da2-eb17-4e48-9fba-5bd00fba6a2b","savedPayload":{"position":{"x":22205.63933637923,"y":17142.649408177775},"targetPosition":{"x":22426.626557573356,"y":17290.308348632836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b93ae9ca-6c4e-47db-a998-045e845ab9cd","savedPayload":{"position":{"x":22426.626557573356,"y":17290.308348632836},"targetPosition":{"x":22647.61377876748,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e1bdea5b-664c-4146-adf6-858405354f8c","savedPayload":{"position":{"x":22383.7342411754,"y":17472.707689274102},"targetPosition":{"x":22647.61377876748,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 Begin","id":"39e65adb-6125-4e9a-8f15-5403b21aac40"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"3d994072-d0b7-4065-a8be-3c718de28086","savedPayload":{"position":{"x":22389.44886751755,"y":17403.979233732414},"targetPosition":{"x":22647.61377876748,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 140 End","id":"7559cbf5-acba-4a60-91b4-d95f90293f22"}}}],"id":"41a149aa-efdf-4f53-82cf-cce9e904a000","savedPayload":{"position":{"x":22647.61377876748,"y":17437.967289087897},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 210","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.TITANIUM_YELLOW\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"08949257-633e-4013-b770-bbb798972d2d","savedPayload":{"position":{"x":22407.22243808262,"y":16953.84623002849},"targetPosition":{"x":22582.462756344452,"y":17153.669515665835},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"53e088d8-8ec5-4dbe-b732-c65f31005105","savedPayload":{"position":{"x":22582.462756344452,"y":17153.669515665835},"targetPosition":{"x":22757.703074606285,"y":17353.492801303182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"15882e16-4782-48e8-9cac-fbb1d07ae51d","savedPayload":{"position":{"x":22484.503847355372,"y":17389.460161909712},"targetPosition":{"x":22757.703074606285,"y":17353.492801303182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 Begin","id":"479df802-576f-45f1-8322-6b2e493c5ecc"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a6f51174-ea46-4282-a476-4e809f456682","savedPayload":{"position":{"x":22491.991768558353,"y":17318.511244224763},"targetPosition":{"x":22757.703074606285,"y":17353.492801303182},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 210 End","id":"45a926f2-4bb2-4562-b40f-bd2532ff1d10"}}}],"id":"c3ee15c5-a5b3-4318-bc09-a9fd03592d83","savedPayload":{"position":{"x":22757.703074606285,"y":17353.492801303182},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 280","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":"942d9600-7935-4ca6-81d8-9bd014df736f","savedPayload":{"position":{"x":22650.8026204423,"y":16823.64991006031},"targetPosition":{"x":22768.353697680614,"y":17062.019914187353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1c6e0c3f-8ac7-4b0b-9da8-0f7faf9befd1","savedPayload":{"position":{"x":22768.353697680614,"y":17062.019914187353},"targetPosition":{"x":22885.904774918927,"y":17300.389918314395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"cc54382b-cf2b-42c7-8958-8816809dd7ba","savedPayload":{"position":{"x":22626.2282362118,"y":17334.576983200037},"targetPosition":{"x":22885.904774918927,"y":17300.389918314395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 Begin","id":"d5e455bf-bb27-41fa-ba41-c8e7d0aa4d5e"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"3629786a-8eed-4cff-9780-0e685aeed577","savedPayload":{"position":{"x":22629.347682346903,"y":17266.61353630353},"targetPosition":{"x":22885.904774918927,"y":17300.389918314395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 280 End","id":"298d0ca9-1b4a-48d8-8efe-fda6b2fc2c34"}}}],"id":"3bbf5574-e89c-4538-a95c-2da58e5a74d7","savedPayload":{"position":{"x":22885.904774918927,"y":17300.389918314395},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 350","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.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"8142bd21-31e4-4edd-97d5-217e30321e0a","savedPayload":{"position":{"x":22919.780296565743,"y":16760.933112319486},"targetPosition":{"x":22971.631221129086,"y":17021.60531308002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6eade211-19cf-48a7-87ac-faf30e387e10","savedPayload":{"position":{"x":22971.631221129086,"y":17021.60531308002},"targetPosition":{"x":23023.48214569243,"y":17282.277513840556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"f16d8eac-9e78-4167-b087-9803637412a6","savedPayload":{"position":{"x":22771.22763798829,"y":17315.487449807486},"targetPosition":{"x":23023.48214569243,"y":17282.277513840556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 End","id":"d6598381-9b15-4cb3-afba-b85ed6770ce3"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b94a339d-5abf-4563-a693-edb5d812c24e","savedPayload":{"position":{"x":22743.690841089072,"y":17245.44228978629},"targetPosition":{"x":23023.48214569243,"y":17282.277513840556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"SMA 350 Begin","id":"f3c05d30-da2e-449e-8471-dcc216f4e630"}}}],"id":"046240f2-f70b-471d-b07b-0e7490222f0d","savedPayload":{"position":{"x":23023.48214569243,"y":17282.277513840556},"targetPosition":{"x":23023.48214569243,"y":17813.835656012845},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"391b803a-4b4e-4c0b-bb6b-b4d68e989c9c","savedPayload":{"position":{"x":23023.48214569243,"y":17813.835656012845},"targetPosition":{"x":23536.92788339088,"y":17951.413026786347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"SMA Base 7","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"SMA 7","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma7","id":"1c683838-c882-49bd-997a-2f4255347854","savedPayload":{"position":{"x":23318.424375543604,"y":17691.12628056505},"targetPosition":{"x":23358.88744408049,"y":17564.546784826474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c26c14bd-b9ab-4121-89b2-eb3044534cf2","savedPayload":{"position":{"x":23358.88744408049,"y":17564.546784826474},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 14","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma14","id":"1060ea54-bb29-4c3b-8db0-522893543a36","savedPayload":{"position":{"x":23194.40302980724,"y":17607.186212134944},"targetPosition":{"x":23296.876771212308,"y":17522.57675061142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"94b29f18-cad5-49df-8b87-d6ef10f5ae61","savedPayload":{"position":{"x":23296.876771212308,"y":17522.57675061142},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 21","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma21","id":"c0287e9c-4b88-4b92-b6ac-f17474649958","savedPayload":{"position":{"x":23135.451061773383,"y":17469.520331281175},"targetPosition":{"x":23267.40078719538,"y":17453.743810184536},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ffcb7173-b2bf-4d5d-90e5-6f8b26af4b86","savedPayload":{"position":{"x":23267.40078719538,"y":17453.743810184536},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 28","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma28","id":"9f1615e0-e437-4221-8e9a-a6dcb4556022","savedPayload":{"position":{"x":23160.285304758072,"y":17321.83658247418},"targetPosition":{"x":23279.817908687724,"y":17379.90193578104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"186d8c1a-5eef-44a1-aa09-b28e4f5b6b0e","savedPayload":{"position":{"x":23279.817908687724,"y":17379.90193578104},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 35","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma35","id":"423f3069-d5a3-4d29-bb35-68802f367c50","savedPayload":{"position":{"x":23261.02106208405,"y":17211.02351247668},"targetPosition":{"x":23330.185787350714,"y":17324.49540078229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6b047d8e-451d-4267-adc4-6e9496aa0025","savedPayload":{"position":{"x":23330.185787350714,"y":17324.49540078229},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 70","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma70","id":"62ed074e-5b1a-4306-b411-cd436680147d","savedPayload":{"position":{"x":23405.675442565167,"y":17172.26348804514},"targetPosition":{"x":23402.512977591272,"y":17305.11538856652},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9676685c-f20e-4d65-a0fe-8551e80132ee","savedPayload":{"position":{"x":23402.512977591272,"y":17305.11538856652},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 140","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma140","id":"2200abd2-2897-4eff-9804-f599c0e18f42","savedPayload":{"position":{"x":23548.321702477682,"y":17217.862543071333},"targetPosition":{"x":23473.83610754753,"y":17327.914916079615},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a44d3c89-8463-4493-b195-70ee4146bbdb","savedPayload":{"position":{"x":23473.83610754753,"y":17327.914916079615},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 210","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma210","id":"38e3066f-1951-4c96-8a36-3bcf778328bd","savedPayload":{"position":{"x":23643.67066218968,"y":17333.34329977196},"targetPosition":{"x":23521.51058740353,"y":17385.65529442993},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"44198c4d-4d98-43a2-9c03-2d8794b9edac","savedPayload":{"position":{"x":23521.51058740353,"y":17385.65529442993},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 280","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma280","id":"eca55243-4492-4983-9e03-04694437c8ae","savedPayload":{"position":{"x":23661.449700696154,"y":17482.041433842616},"targetPosition":{"x":23530.400106656765,"y":17460.004361465257},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"96706885-fa55-4fad-82bd-fb43a2f331d7","savedPayload":{"position":{"x":23530.400106656765,"y":17460.004361465257},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Panel Data","name":"SMA 350","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.sma350","id":"64ea1867-2fb1-4191-a4c7-b5ac37f7be7a","savedPayload":{"position":{"x":23596.01409889198,"y":17616.746338366673},"targetPosition":{"x":23497.68230575468,"y":17527.356813727285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9f208b33-3d80-4d2e-ad88-13139a8e93f8","savedPayload":{"position":{"x":23497.68230575468,"y":17527.356813727285},"targetPosition":{"x":23399.350512617377,"y":17437.967289087897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"b73ac725-eea1-4aa2-974c-937de300b456","savedPayload":{"position":{"x":23399.350512617377,"y":17437.967289087897},"targetPosition":{"x":23536.92788339088,"y":17951.413026786347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"515565ff-dee2-4adf-adaf-b4cfea5f5dbd","savedPayload":{"position":{"x":23536.92788339088,"y":17951.413026786347},"targetPosition":{"x":24288.664617240775,"y":18703.149760636243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{}}}],"id":"9b2443b7-9276-4fa3-b4b3-b9b991d886d8","savedPayload":{"position":{"x":24293.543828155558,"y":18693.146981692462},"targetPosition":{"x":24997.408806793872,"y":18693.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"RSI","code":"{\n\"codeName\": \"Plotter RSI\"\n}","modules":[{"type":"Plotter Module","name":"RSI 14","code":"{\n\t\"codeName\": \"RSI 14\",\n\t\"slot\": {\n\t\t\"number\": 3,\n\t\t\"minValue\": 0,\n\t\t\"maxValue\": 100\n\t},\n \"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":"88e15149-215e-42c8-bc00-78b63343daa0","savedPayload":{"position":{"x":23240.357027150625,"y":17546.51720501776},"targetPosition":{"x":23298.93482331367,"y":17665.924623773477},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e376a028-b688-4bb5-a100-00be6d161bd6","savedPayload":{"position":{"x":23298.93482331367,"y":17665.924623773477},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 0","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 0","id":"6904030c-e751-4eb9-844a-d1cf45caa1f2","savedPayload":{"position":{"x":23334.538152926063,"y":17520.322357205052},"targetPosition":{"x":23346.02538620139,"y":17652.827199867123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f562d9d7-357b-4677-ac4b-3ddbb735ca2b","savedPayload":{"position":{"x":23346.02538620139,"y":17652.827199867123},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 20","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 20","id":"4fc2797d-7023-461e-912e-23f2834d4141","savedPayload":{"position":{"x":23431.82210771508,"y":17529.918535864726},"targetPosition":{"x":23394.667363595898,"y":17657.62528919696},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb","savedPayload":{"position":{"x":23394.667363595898,"y":17657.62528919696},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 20","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 20","id":"e6640285-69e5-4a37-8907-9d8bbcc2008b","savedPayload":{"position":{"x":23519.070154354413,"y":17574.009723894535},"targetPosition":{"x":23438.291386915564,"y":17679.670883211864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c9de9989-11da-44a7-bcbf-137435767d90","savedPayload":{"position":{"x":23438.291386915564,"y":17679.670883211864},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 30","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 30","id":"db815155-dbec-4824-9132-470a173d328b","savedPayload":{"position":{"x":23584.498960687313,"y":17646.641162033342},"targetPosition":{"x":23471.005790082014,"y":17715.986602281268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09","savedPayload":{"position":{"x":23471.005790082014,"y":17715.986602281268},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 30","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 30","id":"db6c3539-81f5-465d-9d79-8004a60ac5fb","savedPayload":{"position":{"x":23619.27200386498,"y":17738.003572095815},"targetPosition":{"x":23488.392311670847,"y":17761.667807312504},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ac82bb81-5d37-4eea-ab52-0f698de71014","savedPayload":{"position":{"x":23488.392311670847,"y":17761.667807312504},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 50","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 50","id":"a6a8718f-2c9a-4c5f-af7a-7029bddfb839","savedPayload":{"position":{"x":23618.692991722193,"y":17835.757954346427},"targetPosition":{"x":23488.102805599454,"y":17810.54499843781},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a0cdc721-996a-44b2-b619-bbc0ef97cd62","savedPayload":{"position":{"x":23488.102805599454,"y":17810.54499843781},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 50","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 50","id":"c996c1b4-2b1f-4d11-acd4-8aba4d3e3e5d","savedPayload":{"position":{"x":23582.840123057256,"y":17926.702037786494},"targetPosition":{"x":23470.176371266985,"y":17856.017040157843},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"59a77a0b-bcee-4c1e-855c-854c3d3bc521","savedPayload":{"position":{"x":23470.176371266985,"y":17856.017040157843},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 70","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 70","id":"bdcd3323-0da6-4667-95c2-b017623500af","savedPayload":{"position":{"x":23516.55552645096,"y":17998.55332000888},"targetPosition":{"x":23437.034072963837,"y":17891.942681269036},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"228edebc-3b5b-4760-9791-2229cb76a662","savedPayload":{"position":{"x":23437.034072963837,"y":17891.942681269036},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 70","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 70","id":"9977888b-2cf4-472e-8468-d6705690a57c","savedPayload":{"position":{"x":23428.791303970625,"y":18041.607887207745},"targetPosition":{"x":23393.15196172367,"y":17913.46996486847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680","savedPayload":{"position":{"x":23393.15196172367,"y":17913.46996486847},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 80","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 80","id":"75cda528-f689-4d21-a8ed-ba08705d5ec7","savedPayload":{"position":{"x":23331.400500180564,"y":18050.050981509292},"targetPosition":{"x":23344.45655982864,"y":17917.691512019243},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e7b453a3-5312-48e6-8797-6d96e058766b","savedPayload":{"position":{"x":23344.45655982864,"y":17917.691512019243},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Eng 80","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 80","id":"df4c7f58-96c7-4ffb-9ce3-ff1b35ddf3c3","savedPayload":{"position":{"x":23237.53628279369,"y":18022.7423162433},"targetPosition":{"x":23297.524451135203,"y":17904.037179386247},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7","savedPayload":{"position":{"x":23297.524451135203,"y":17904.037179386247},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"Begin 100","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = 100","id":"79f20ec4-c499-41ca-aa79-f56fe5b7bcbc","savedPayload":{"position":{"x":23159.87553448769,"y":17963.37007797648},"targetPosition":{"x":23258.694076982203,"y":17874.351060252837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7d5d4922-1d7d-45a3-b5ff-75d14016ee1d","savedPayload":{"position":{"x":23258.694076982203,"y":17874.351060252837},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"End 100","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = 100","id":"58d10fb8-87e5-4a4c-95ab-99be2f5b14ea","savedPayload":{"position":{"x":23108.906769654357,"y":17879.95281647969},"targetPosition":{"x":23233.209694565536,"y":17832.64242950444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"dc11ae4c-bce1-4e88-986a-457a3612102a","savedPayload":{"position":{"x":23233.209694565536,"y":17832.64242950444},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"RSI Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.value","id":"e068d3fa-623c-4349-a10f-4abdd6263b07","savedPayload":{"position":{"x":23091.513602412102,"y":17783.756495149082},"targetPosition":{"x":23224.51311094441,"y":17784.544268839138},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7f687c2f-3a91-4b53-b00d-8a651e82c97d","savedPayload":{"position":{"x":23224.51311094441,"y":17784.544268839138},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"RSI End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.value","id":"bb45d3f0-e6e7-473a-b2f4-7016c65bd7ee","savedPayload":{"position":{"x":23110.045076375856,"y":17687.772960222563},"targetPosition":{"x":23233.778847926285,"y":17736.552501375878},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f5d97a45-0db5-4d48-bf32-efdd6b2726c0","savedPayload":{"position":{"x":23233.778847926285,"y":17736.552501375878},"targetPosition":{"x":23357.512619476714,"y":17785.332042529193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"ff9f35c7-b1ca-446e-905c-c971ca51dfbe","savedPayload":{"position":{"x":23357.512619476714,"y":17785.332042529193},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"polygons":[{"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":"9e7202ce-11e7-4526-80d5-52f0dbdcb91c","savedPayload":{"position":{"x":22403.29113295244,"y":18714.5739557557},"targetPosition":{"x":22324.154224890033,"y":18460.614688921018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"8716fe80-7aa5-4707-93d9-f47ac26e9a53","savedPayload":{"position":{"x":22324.154224890033,"y":18460.614688921018},"targetPosition":{"x":22245.017316827627,"y":18206.655422086336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"89a7b82e-5d1d-4359-80a8-0b85d997a62c","savedPayload":{"position":{"x":22093.740750496676,"y":18414.869752975213},"targetPosition":{"x":22245.017316827627,"y":18206.655422086336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 0","id":"e376a028-b688-4bb5-a100-00be6d161bd6"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"4ddfe945-d3dd-431a-a0bf-477d2f0c0af1","savedPayload":{"position":{"x":21993.63163101451,"y":18288.335582758034},"targetPosition":{"x":22245.017316827627,"y":18206.655422086336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 0","id":"f562d9d7-357b-4677-ac4b-3ddbb735ca2b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"1fd4c8e3-47e3-4e05-8739-a34e8239b178","savedPayload":{"position":{"x":21989.13278450964,"y":18123.513497574877},"targetPosition":{"x":22245.017316827627,"y":18206.655422086336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2920b1c1-1d61-44b8-b31a-31e2d87fa9e4","savedPayload":{"position":{"x":22070.226342493344,"y":17966.07628515109},"targetPosition":{"x":22245.017316827627,"y":18206.655422086336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}}],"id":"0dce63e6-acf6-482e-bcf9-3e44b7487cbf","savedPayload":{"position":{"x":22245.017316827627,"y":18206.655422086336},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"f95287c0-8123-4025-8018-370eb91b6189","savedPayload":{"position":{"x":21722.273273433944,"y":18725.20026870736},"targetPosition":{"x":21841.12331059994,"y":18487.224160464266},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c46a4519-e917-410e-98d7-faf0ad80a99a","savedPayload":{"position":{"x":21841.12331059994,"y":18487.224160464266},"targetPosition":{"x":22078.823384931937,"y":18011.27194397808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"eb76ec36-eae3-424a-9105-d26eefca1b67","savedPayload":{"position":{"x":21612.073569506323,"y":18249.092853484257},"targetPosition":{"x":22078.823384931937,"y":18011.27194397808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"6facb2b7-b324-4e01-a53f-5d72541ba64f","savedPayload":{"position":{"x":21551.55474919997,"y":18182.59190893325},"targetPosition":{"x":22078.823384931937,"y":18011.27194397808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2e7bfaf4-7828-4021-9895-58882a03987e","savedPayload":{"position":{"x":21563.15461132498,"y":17929.598033877504},"targetPosition":{"x":22078.823384931937,"y":18011.27194397808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"End 100","id":"dc11ae4c-bce1-4e88-986a-457a3612102a"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"d2a601ff-7a5d-414e-bc06-be93e13e6ddb","savedPayload":{"position":{"x":21611.606878702463,"y":17773.213243630293},"targetPosition":{"x":22078.823384931937,"y":18011.27194397808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 100","id":"7d5d4922-1d7d-45a3-b5ff-75d14016ee1d"}}}],"id":"2429edaa-20db-4fd9-b834-c84953e78bf3","savedPayload":{"position":{"x":22078.823384931937,"y":18011.27194397808},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"f1ac3d45-3f00-4269-a41f-872bcbc99620","savedPayload":{"position":{"x":21892.294317569398,"y":18174.262920481062},"targetPosition":{"x":21916.26856954835,"y":18043.439661466193},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1aa28d17-1653-496a-8b8a-35fdf6691e0b","savedPayload":{"position":{"x":21916.26856954835,"y":18043.439661466193},"targetPosition":{"x":21964.21707350625,"y":17781.793143436455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2e88069b-6333-45f8-8199-021fe3896667","savedPayload":{"position":{"x":21813.32596854038,"y":17989.4769322714},"targetPosition":{"x":21964.21707350625,"y":17781.793143436455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"cdea2bf9-a545-4877-8d65-5a027352bb8a","savedPayload":{"position":{"x":21725.100830724616,"y":17859.486720405417},"targetPosition":{"x":21964.21707350625,"y":17781.793143436455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"bfb22589-c1af-4822-8944-1767e3e691bc","savedPayload":{"position":{"x":21726.467197587543,"y":17704.54352597354},"targetPosition":{"x":21964.21707350625,"y":17781.793143436455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"208c9dfc-a7fb-41ab-becc-3b68104e07ed","savedPayload":{"position":{"x":21803.080397658185,"y":17560.007536074354},"targetPosition":{"x":21964.21707350625,"y":17781.793143436455},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}}],"id":"4a0db3d1-061d-4587-9c05-f42c09c0b271","savedPayload":{"position":{"x":21964.21707350625,"y":17781.793143436455},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"6335d57f-9462-4d19-b954-2f511308b9c8","savedPayload":{"position":{"x":21476.19989789142,"y":17842.525519699513},"targetPosition":{"x":21692.029391342523,"y":17687.04050696347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b01a727e-5773-47c2-b094-c19ad0ac71f4","savedPayload":{"position":{"x":21692.029391342523,"y":17687.04050696347},"targetPosition":{"x":21907.858884793626,"y":17531.555494227425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"c59e52e4-9b7e-4985-ab53-35f5cd29f250","savedPayload":{"position":{"x":21434.50693356791,"y":17772.74035994477},"targetPosition":{"x":21907.858884793626,"y":17531.555494227425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"957f8c1e-cb14-4241-b805-abfdc50c07d0","savedPayload":{"position":{"x":21378.838906728004,"y":17615.344027373845},"targetPosition":{"x":21907.858884793626,"y":17531.555494227425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"37688deb-5377-4f52-bde8-5e8abbf6e25f","savedPayload":{"position":{"x":21377.24724307417,"y":17447.514866324007},"targetPosition":{"x":21907.858884793626,"y":17531.555494227425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"6d346213-f33f-4b5a-a519-5e1c3fb42e50","savedPayload":{"position":{"x":21422.333584526546,"y":17284.167997367924},"targetPosition":{"x":21907.858884793626,"y":17531.555494227425},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}}],"id":"5835d367-23bc-4039-b2c1-1a23f3ca652f","savedPayload":{"position":{"x":21907.858884793626,"y":17531.555494227425},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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.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":"6ad882da-10d9-427c-8fb5-3a7c55b678a1","savedPayload":{"position":{"x":21397.78410534176,"y":17407.614283917603},"targetPosition":{"x":21655.404128605063,"y":17341.358091431895},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fa05777f-6288-4dd2-9b7a-61194bc43681","savedPayload":{"position":{"x":21655.404128605063,"y":17341.358091431895},"targetPosition":{"x":21913.024151868365,"y":17275.101898946188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a9a9dd2d-d7f8-4a25-b81d-d1e2a2f9d5a6","savedPayload":{"position":{"x":21665.079448030272,"y":17341.53848210718},"targetPosition":{"x":21913.024151868365,"y":17275.101898946188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 20","id":"8227114d-f503-4f27-ae0b-4bc2804e2cdb"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a717c7d2-3bc7-4d8c-9e9f-e1fb75fd0d42","savedPayload":{"position":{"x":21661.06949460005,"y":17207.590852001882},"targetPosition":{"x":21913.024151868365,"y":17275.101898946188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 20","id":"c9de9989-11da-44a7-bcbf-137435767d90"}}}],"id":"27aab97e-ce7f-47fc-bd22-d9b70ffec2d1","savedPayload":{"position":{"x":21913.024151868365,"y":17275.101898946188},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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.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":"0b1d6f25-076c-4495-b462-435a8d1900d2","savedPayload":{"position":{"x":21314.437192406836,"y":17034.03251074652},"targetPosition":{"x":21447.432291562083,"y":17032.693310273135},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"id":"6cb61271-a82a-47a1-ac0c-404dc28b05e5","savedPayload":{"position":{"x":21447.432291562083,"y":17032.693310273135},"targetPosition":{"x":21979.412688183067,"y":17027.33650837959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e656c0ce-1b57-420e-84f5-cd62a9bb602d","savedPayload":{"position":{"x":21470.667143469756,"y":17163.654466238455},"targetPosition":{"x":21979.412688183067,"y":17027.33650837959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"8e2ee705-7be7-4705-a32f-242a5c1d286d","savedPayload":{"position":{"x":21452.340213581057,"y":16886.10786445731},"targetPosition":{"x":21979.412688183067,"y":17027.33650837959},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}}],"id":"18e4afd3-7536-405b-97b6-d36ec7ddc692","savedPayload":{"position":{"x":21979.412688183067,"y":17027.33650837959},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"68ca10ec-d83d-4f61-b9ee-6a0f3a74cb12","savedPayload":{"position":{"x":21585.36225358581,"y":16680.548447397614},"targetPosition":{"x":21844.26424345272,"y":16741.603496917214},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"fefbf0c0-287c-4bb7-81a7-6b745dcfcf3b","savedPayload":{"position":{"x":21844.26424345272,"y":16741.603496917214},"targetPosition":{"x":22103.16623331963,"y":16802.658546436815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"cfa25adf-05eb-49d0-956a-69e4fde9bacf","savedPayload":{"position":{"x":21845.71847660517,"y":16871.64146494166},"targetPosition":{"x":22103.16623331963,"y":16802.658546436815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 50","id":"a0cdc721-996a-44b2-b619-bbc0ef97cd62"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"de1447aa-e70f-419b-bab5-d94b333612c7","savedPayload":{"position":{"x":21850.329639082047,"y":16734.911185193818},"targetPosition":{"x":22103.16623331963,"y":16802.658546436815},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 50","id":"59a77a0b-bcee-4c1e-855c-854c3d3bc521"}}}],"id":"bbe48886-b71e-4507-b6e8-7f073b691a6a","savedPayload":{"position":{"x":22103.16623331963,"y":16802.658546436815},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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.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":"913293ac-040f-4348-ade4-5b3103fe1375","savedPayload":{"position":{"x":21566.790664532433,"y":16250.4048722929},"targetPosition":{"x":21803.55800337514,"y":16371.64507472687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"8640a48e-f7ca-419c-a687-3f52c3a5afa9","savedPayload":{"position":{"x":21803.55800337514,"y":16371.64507472687},"targetPosition":{"x":22277.092681060552,"y":16614.125479594808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"bc77b107-0a70-4038-86a6-3034ab4e86dd","savedPayload":{"position":{"x":21765.562347249594,"y":16751.189619443478},"targetPosition":{"x":22277.092681060552,"y":16614.125479594808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"36882cd2-2ec4-4d2d-af00-98b4c54bf1e7","savedPayload":{"position":{"x":21740.008095859564,"y":16470.214098722998},"targetPosition":{"x":22277.092681060552,"y":16614.125479594808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}}],"id":"508b71cf-79d3-4db4-a6d3-0b26226ad5b9","savedPayload":{"position":{"x":22277.092681060552,"y":16614.125479594808},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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.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":"9506c6ad-440b-45a1-aadf-89004f5311fb","savedPayload":{"position":{"x":21986.455684213193,"y":16304.224459059176},"targetPosition":{"x":22238.76987133662,"y":16388.4593117339},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"59804538-89e9-485a-a2b1-88ff78eb5661","savedPayload":{"position":{"x":22238.76987133662,"y":16388.4593117339},"targetPosition":{"x":22491.084058460045,"y":16472.694164408622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"23df3ac4-6427-4a69-a5a3-8230186b46f3","savedPayload":{"position":{"x":22265.131101813007,"y":16603.14816475298},"targetPosition":{"x":22491.084058460045,"y":16472.694164408622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 80","id":"e7b453a3-5312-48e6-8797-6d96e058766b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"7a5139be-30b6-4eab-994a-bb8b74be455d","savedPayload":{"position":{"x":22263.09930288304,"y":16341.067104405109},"targetPosition":{"x":22491.084058460045,"y":16472.694164408622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Eng 80","id":"d64e2ceb-abb9-4cc0-b929-211bcbd934a7"}}}],"id":"8499947d-a392-40ed-be9d-225a28429642","savedPayload":{"position":{"x":22491.084058460045,"y":16472.694164408622},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"RSI 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":"90fe9ece-e33a-4e2e-904a-779327e7155a","savedPayload":{"position":{"x":22221.75270857099,"y":15781.516828216818},"targetPosition":{"x":22426.096093687043,"y":15951.81580175512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"styleConditions":[{"type":"Style Condition","name":"New Style Condition","code":"(record.previous.value < 20 && record.value < 20) || (record.previous.value > 80 && record.value > 80)","style":{"type":"Style","name":"New Style","code":"{\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}","id":"58f58e7a-3056-49c7-9117-f2a514d4479e","savedPayload":{"position":{"x":22242.461942013728,"y":15452.5059419939},"targetPosition":{"x":22334.279017850386,"y":15702.16087187451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9fcf2614-7ec8-407f-93a2-3c749f6683ef","savedPayload":{"position":{"x":22334.279017850386,"y":15702.16087187451},"targetPosition":{"x":22426.096093687043,"y":15951.81580175512},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}}],"id":"6dc77d6e-5aa6-41ab-b247-43c4391fcc96","savedPayload":{"position":{"x":22426.096093687043,"y":15951.81580175512},"targetPosition":{"x":22732.703964490658,"y":16386.584074834955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5312ee43-9c15-4d4b-9255-5fb7259c5734","savedPayload":{"position":{"x":22280.374520166846,"y":16647.736601277702},"targetPosition":{"x":22732.703964490658,"y":16386.584074834955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"RSI Begin","id":"7f687c2f-3a91-4b53-b00d-8a651e82c97d"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"01981eaa-b1c6-41e1-84b4-2dc8106ac095","savedPayload":{"position":{"x":22222.95319803525,"y":16249.996768622083},"targetPosition":{"x":22732.703964490658,"y":16386.584074834955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"RSI End","id":"f5d97a45-0db5-4d48-bf32-efdd6b2726c0"}}}],"id":"e8eb9949-277b-4493-a9f4-cbcb502aacbc","savedPayload":{"position":{"x":22732.703964490658,"y":16386.584074834955},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"5b04f4bb-2cc4-48a5-b421-667c96b2dd27","savedPayload":{"position":{"x":22646.448872911464,"y":16154.378970306223},"targetPosition":{"x":22760.26935809648,"y":16223.18585229828},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"208ca141-b231-4a70-8b31-eeae09576822","savedPayload":{"position":{"x":22760.26935809648,"y":16223.18585229828},"targetPosition":{"x":22987.910328466518,"y":16360.799616282393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"7956c253-3704-46c0-b188-f6662bb58904","savedPayload":{"position":{"x":22824.602464508967,"y":16585.573607704333},"targetPosition":{"x":22987.910328466518,"y":16360.799616282393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 30","id":"0f0a70c3-9f37-4e58-a93c-fcfcf9686c09"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b043ae0f-a172-4ebe-922b-a895b8a888c9","savedPayload":{"position":{"x":22740.137038849225,"y":16441.306038279472},"targetPosition":{"x":22987.910328466518,"y":16360.799616282393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 30","id":"ac82bb81-5d37-4eea-ab52-0f698de71014"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5830f66c-dca5-4f62-8102-d7d8ea588d0d","savedPayload":{"position":{"x":22743.758517207367,"y":16281.469883933356},"targetPosition":{"x":22987.910328466518,"y":16360.799616282393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"End 70","id":"4cbfd9aa-d595-4e06-ac82-a87bfdf9f680"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a8eb0500-2421-4879-9459-2ecdb4ae09d5","savedPayload":{"position":{"x":22826.087441692678,"y":16138.069520608427},"targetPosition":{"x":22987.910328466518,"y":16360.799616282393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{},"referenceParent":{"type":"Point","name":"Begin 70","id":"228edebc-3b5b-4760-9791-2229cb76a662"}}}],"id":"b294fd86-15d6-4bc8-9379-0532df288eee","savedPayload":{"position":{"x":22987.910328466518,"y":16360.799616282393},"targetPosition":{"x":22966.48420712404,"y":17424.598597380987},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"bc1170cc-a04b-4453-bd28-0e522f747617","savedPayload":{"position":{"x":22966.48420712404,"y":17424.598597380987},"targetPosition":{"x":23994.243516745708,"y":17699.98587440768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"RSI 14","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"RSI 14","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.value","id":"fbec83cc-a090-491b-8cfb-833d40b2b843","savedPayload":{"position":{"x":23856.54987823236,"y":17186.106219596844},"targetPosition":{"x":23902.44775773681,"y":17357.399437867123},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e5fd8d57-8920-417e-8b9b-c1e0d6868a7a","savedPayload":{"position":{"x":23902.44775773681,"y":17357.399437867123},"targetPosition":{"x":23948.34563724126,"y":17528.692656137402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"ff06d653-f886-44f4-8b28-82bab51aa98d","savedPayload":{"position":{"x":23948.34563724126,"y":17528.692656137402},"targetPosition":{"x":23994.243516745708,"y":17699.98587440768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}}],"id":"72403d40-2a64-4e51-8eaf-b1a872e4474e","savedPayload":{"position":{"x":23994.243516745708,"y":17699.98587440768},"targetPosition":{"x":24495.824871809025,"y":18201.567229471},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"bbc529df-b938-47b5-8cb7-a5579c859b99","savedPayload":{"position":{"x":24495.824871809025,"y":18201.567229471},"targetPosition":{"x":24997.408806793872,"y":18693.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"MACD PENDING","code":"{}","modules":[],"id":"24146ce7-bc0d-461a-8a43-0d2bd3059886","savedPayload":{"position":{"x":24997.412692145277,"y":18052.567094093436},"targetPosition":{"x":24997.408806793872,"y":18693.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter","name":"EMA","code":"{\n\"codeName\": \"Plotter EMA\"\n}","modules":[{"type":"Plotter Module","name":"EMA Popular","code":"{\n\t\"codeName\": \"EMA-Popular\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"EMA 20 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema20","id":"7bf83ec0-5a84-4a81-a111-19d913e12135","savedPayload":{"position":{"x":25122.72765094104,"y":17373.219525390607},"targetPosition":{"x":24956.372815200848,"y":17433.76773392628},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6e1ff74e-36ba-460c-9f78-c8ee0b5e0837","savedPayload":{"position":{"x":24956.372815200848,"y":17433.76773392628},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 20 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema20","id":"12164218-7531-4063-bbd3-32855e7f7847","savedPayload":{"position":{"x":25122.72765094104,"y":17615.412359533304},"targetPosition":{"x":24956.372815200848,"y":17554.86415099763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"83f1d130-42bd-45ae-9078-ed3f825531bb","savedPayload":{"position":{"x":24956.372815200848,"y":17554.86415099763},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 50 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema50","id":"580ad5c4-aee7-4af2-b85d-0ef86d020823","savedPayload":{"position":{"x":24967.04909799925,"y":17800.942834291545},"targetPosition":{"x":24878.533538729953,"y":17647.62938837675},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7084c0a2-8874-46a7-b240-d9605a7baf49","savedPayload":{"position":{"x":24878.533538729953,"y":17647.62938837675},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 50 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema50","id":"1e7a4d05-3daf-4d0a-97ff-b53e35eab2aa","savedPayload":{"position":{"x":24728.53571721153,"y":17842.999178584414},"targetPosition":{"x":24759.276848336092,"y":17668.657560523185},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3861b379-3e51-43e2-b607-e3b7fba16a34","savedPayload":{"position":{"x":24759.276848336092,"y":17668.657560523185},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 100 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema100","id":"b50c3599-e7bd-45ef-b348-4ddf85460bbf","savedPayload":{"position":{"x":24518.790570229405,"y":17721.902761513065},"targetPosition":{"x":24654.40427484503,"y":17608.10935198751},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d3b1e9cb-8098-4e62-94ea-4e89852b4f6a","savedPayload":{"position":{"x":24654.40427484503,"y":17608.10935198751},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 100 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema100","id":"f5cf8bb1-98bf-4c38-9e7c-f31678a656e4","savedPayload":{"position":{"x":24435.955742383467,"y":17494.315942461955},"targetPosition":{"x":24612.98686092206,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"32ca337a-699d-4c2f-9b6a-73d9a4481e78","savedPayload":{"position":{"x":24612.98686092206,"y":17494.315942461955},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 200 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema200","id":"451d4c20-a9ad-4b8d-a116-fae9406ee356","savedPayload":{"position":{"x":24518.790570229405,"y":17266.729123410845},"targetPosition":{"x":24654.40427484503,"y":17380.5225329364},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"33d1fe7c-ff86-440a-8b42-0de9c296a632","savedPayload":{"position":{"x":24654.40427484503,"y":17380.5225329364},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 200 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema200","id":"24e42cf3-2dc8-4257-a511-7dc52dc6f060","savedPayload":{"position":{"x":24728.53571721153,"y":17145.632706339497},"targetPosition":{"x":24759.276848336092,"y":17319.974324400726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"87e2a3ab-afc2-44cb-b2ca-03a715a4d673","savedPayload":{"position":{"x":24759.276848336092,"y":17319.974324400726},"targetPosition":{"x":24790.017979460656,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"dd70bea3-9a52-4b2b-a364-31917b08d98d","savedPayload":{"position":{"x":24790.017979460656,"y":17494.315942461955},"targetPosition":{"x":25144.08021653784,"y":16881.06215880277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 20","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":"d468c2f1-2586-4fe4-aa0c-fc3737d992f5","savedPayload":{"position":{"x":24486.42013915156,"y":16657.81664464958},"targetPosition":{"x":24661.936731929905,"y":16680.92384245688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"23236076-e29a-451e-8c95-e3812064279c","savedPayload":{"position":{"x":24661.936731929905,"y":16680.92384245688},"targetPosition":{"x":24837.45332470825,"y":16704.031040264177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5f877b66-2ca6-4a8f-967e-70948cefc9ea","savedPayload":{"position":{"x":24691.175732337288,"y":16788.48444759596},"targetPosition":{"x":24837.45332470825,"y":16704.031040264177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 20 Begin","id":"6e1ff74e-36ba-460c-9f78-c8ee0b5e0837"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"d5971215-2792-4415-bfea-2e4b2b5b98fe","savedPayload":{"position":{"x":24656.969884494865,"y":16655.67064821181},"targetPosition":{"x":24837.45332470825,"y":16704.031040264177},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 20 End","id":"83f1d130-42bd-45ae-9078-ed3f825531bb"}}}],"id":"17ca2f43-9ddf-47f8-9929-e4612b00dd4f","savedPayload":{"position":{"x":24837.45332470825,"y":16704.031040264177},"targetPosition":{"x":25144.08021653784,"y":16881.06215880277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 50","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":"330fba24-ff59-48d2-a297-b4e6903efc3d","savedPayload":{"position":{"x":24686.152639543077,"y":16358.89583357205},"targetPosition":{"x":24826.600868771162,"y":16466.665550272617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"0806f6fe-730c-4fde-b730-dcdf31825733","savedPayload":{"position":{"x":24826.600868771162,"y":16466.665550272617},"targetPosition":{"x":24967.049097999246,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b00cf575-af36-4653-97ec-441912af5bb8","savedPayload":{"position":{"x":24778.618112896158,"y":16624.925197260556},"targetPosition":{"x":24967.049097999246,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 50 End","id":"3861b379-3e51-43e2-b607-e3b7fba16a34"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"da71a6f7-2917-4c07-bd77-dc1b0334c5ec","savedPayload":{"position":{"x":24790.6183684406,"y":16527.16079546791},"targetPosition":{"x":24967.049097999246,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 50 Begin","id":"7084c0a2-8874-46a7-b240-d9605a7baf49"}}}],"id":"36482493-d7f7-4a41-9588-a348e3204025","savedPayload":{"position":{"x":24967.049097999246,"y":16574.43526697318},"targetPosition":{"x":25144.08021653784,"y":16881.06215880277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 100","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.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":"278d84a3-2d10-4db3-90cc-b38f6af88ecf","savedPayload":{"position":{"x":25008.58646438228,"y":16199.889067654814},"targetPosition":{"x":25076.33334046006,"y":16363.4444946902},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"612138e2-6896-4f8f-956a-d5bf1b8c043a","savedPayload":{"position":{"x":25076.33334046006,"y":16363.4444946902},"targetPosition":{"x":25144.08021653784,"y":16526.999921725586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"fc01c5ca-4323-4a71-9d83-1f288b80e8ed","savedPayload":{"position":{"x":24978.008822865955,"y":16571.49861754588},"targetPosition":{"x":25144.08021653784,"y":16526.999921725586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 100 Begin","id":"d3b1e9cb-8098-4e62-94ea-4e89852b4f6a"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"fbd76a9e-5a2e-4cb8-a2ed-35d2616d9a2e","savedPayload":{"position":{"x":24972.58053037625,"y":16481.046719316397},"targetPosition":{"x":25144.08021653784,"y":16526.999921725586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 100 End","id":"32ca337a-699d-4c2f-9b6a-73d9a4481e78"}}}],"id":"37a16b86-6ee7-4dfa-b32a-c8b9bcb9b484","savedPayload":{"position":{"x":25144.08021653784,"y":16526.999921725586},"targetPosition":{"x":25144.08021653784,"y":16881.06215880277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 200","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.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":"b170fc33-32c4-452d-919d-cf2df82c224f","savedPayload":{"position":{"x":25367.32573069103,"y":16223.40208141649},"targetPosition":{"x":25344.218532883733,"y":16398.918674194836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"ad1ad1fa-9fe8-4a56-aade-dcade3d90c38","savedPayload":{"position":{"x":25344.218532883733,"y":16398.918674194836},"targetPosition":{"x":25321.111335076435,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a98d63cf-bb2b-43f0-80cd-680c59ef741a","savedPayload":{"position":{"x":25124.520268297052,"y":16627.11168455589},"targetPosition":{"x":25321.111335076435,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 200 End","id":"87e2a3ab-afc2-44cb-b2ca-03a715a4d673"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"c9ce7524-76dd-4399-92d8-58d1d757ed89","savedPayload":{"position":{"x":25159.38331424296,"y":16531.100374397367},"targetPosition":{"x":25321.111335076435,"y":16574.43526697318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 200 Begin","id":"33d1fe7c-ff86-440a-8b42-0de9c296a632"}}}],"id":"2e225665-d05d-46cd-91d0-4b36803bcf67","savedPayload":{"position":{"x":25321.111335076435,"y":16574.43526697318},"targetPosition":{"x":25144.08021653784,"y":16881.06215880277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"5ea59fb9-f0d6-438b-b1a7-a62ed1750004","savedPayload":{"position":{"x":25144.08021653784,"y":16881.06215880277},"targetPosition":{"x":25498.142453615026,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"EMA Popular","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"EMA 20","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema20","id":"c79a60a8-e960-4a7d-86b0-bb8d65272b30","savedPayload":{"position":{"x":25328.848444446125,"y":17114.07537226693},"targetPosition":{"x":25502.011008299873,"y":17150.882211449647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"80fa0565-6440-406f-a49d-57adcdaf20ae","savedPayload":{"position":{"x":25502.011008299873,"y":17150.882211449647},"targetPosition":{"x":25675.17357215362,"y":17187.689050632365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 50","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema50","id":"ad4b2bc1-bc45-4a8f-b07f-aa0f79f5e884","savedPayload":{"position":{"x":25638.163990610836,"y":16835.566403536035},"targetPosition":{"x":25656.66878138223,"y":17011.6277270842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f43975ff-c552-42b8-a504-d2b6a3a46b18","savedPayload":{"position":{"x":25656.66878138223,"y":17011.6277270842},"targetPosition":{"x":25675.17357215362,"y":17187.689050632365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 100","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema100","id":"2bfe0bed-a18d-452e-a59a-9ddbd135dd0a","savedPayload":{"position":{"x":25998.62552055826,"y":17043.678964883682},"targetPosition":{"x":25836.89954635594,"y":17115.684007758024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9507a099-6a7f-4d00-8b6e-623a7003055c","savedPayload":{"position":{"x":25836.89954635594,"y":17115.684007758024},"targetPosition":{"x":25675.17357215362,"y":17187.689050632365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 200","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema200","id":"ee01f76f-2b56-4d87-a278-4dd98436dca7","savedPayload":{"position":{"x":25912.08745153785,"y":17450.808570013225},"targetPosition":{"x":25793.630511845735,"y":17319.248810322795},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5bf57692-7070-4a12-9bc3-487a841125b0","savedPayload":{"position":{"x":25793.630511845735,"y":17319.248810322795},"targetPosition":{"x":25675.17357215362,"y":17187.689050632365},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"a819c354-b152-4946-a403-62a8cf0f650f","savedPayload":{"position":{"x":25675.17357215362,"y":17187.689050632365},"targetPosition":{"x":25498.142453615026,"y":17494.315942461955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"79bf7438-f77a-4c8d-a450-67027d5fd8bc","savedPayload":{"position":{"x":25498.142453615026,"y":17494.315942461955},"targetPosition":{"x":25498.142453615026,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"EMA Base 11","code":"{\n\t\"codeName\": \"EMA-Base11\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"EMA 11 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema11","id":"41b049dc-e0da-471f-82f7-5f2c1eb61f90","savedPayload":{"position":{"x":25882.649202189947,"y":17357.236931557},"targetPosition":{"x":25707.873604075186,"y":17329.06767110074},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c961312c-6bb2-4b38-a142-9f03d0b3eba4","savedPayload":{"position":{"x":25707.873604075186,"y":17329.06767110074},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 11 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema11","id":"55db8355-8155-4c70-85b5-4a629aeefa45","savedPayload":{"position":{"x":25796.700280693498,"y":17537.27503486873},"targetPosition":{"x":25664.899143326962,"y":17419.086722756605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"750547e8-4963-4008-aa2b-8edc565afd79","savedPayload":{"position":{"x":25664.899143326962,"y":17419.086722756605},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 22 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema22","id":"bda3c179-331d-444e-9b1e-e3cfd1a26bb7","savedPayload":{"position":{"x":25627.05949949396,"y":17642.265230146684},"targetPosition":{"x":25580.078752727193,"y":17471.581820395582},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8ac0329a-2d0d-483f-a047-305198817a24","savedPayload":{"position":{"x":25580.078752727193,"y":17471.581820395582},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 22 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema22","id":"08508d15-658f-40da-a580-76a5b512414d","savedPayload":{"position":{"x":25427.58660799772,"y":17638.87387221537},"targetPosition":{"x":25480.342306979073,"y":17469.886141429924},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"adc1fb05-93dd-4a32-98dd-30577e4a68de","savedPayload":{"position":{"x":25480.342306979073,"y":17469.886141429924},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 33 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema33","id":"bceee9f7-3824-498c-beb1-866463df7a7e","savedPayload":{"position":{"x":25261.612839846726,"y":17528.177693255802},"targetPosition":{"x":25397.355422903576,"y":17414.53805195014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"25fd3a99-95c4-4514-b7f3-d195c9ee3189","savedPayload":{"position":{"x":25397.355422903576,"y":17414.53805195014},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 33 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema33","id":"6c2cc6ab-b520-4d47-8165-db2abfd53ed8","savedPayload":{"position":{"x":25181.83369371431,"y":17345.32194794581},"targetPosition":{"x":25357.46584983737,"y":17323.110179295145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0fe0c9b1-3079-499b-ad49-1b13e1e0af82","savedPayload":{"position":{"x":25357.46584983737,"y":17323.110179295145},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 55 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema55","id":"5df6eee6-f3a0-406f-be6c-2e6bce745054","savedPayload":{"position":{"x":25213.578484805003,"y":17148.36204342436},"targetPosition":{"x":25373.338245382714,"y":17224.63022703442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"27b05f8b-84e9-4ab2-944d-46b10c2a978c","savedPayload":{"position":{"x":25373.338245382714,"y":17224.63022703442},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 55 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema55","id":"508f7fdf-3889-4b3f-bec4-9ee071f7aa21","savedPayload":{"position":{"x":25346.768466245492,"y":16999.83135772483},"targetPosition":{"x":25439.93323610296,"y":17150.364884184655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"1eeef11e-809a-4e49-8b3b-48a955f42ce3","savedPayload":{"position":{"x":25439.93323610296,"y":17150.364884184655},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 111 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema111","id":"b9f04b17-af03-4983-8266-0e63f8f3271c","savedPayload":{"position":{"x":25539.116760003853,"y":16946.887334089148},"targetPosition":{"x":25536.10738298214,"y":17123.892872366814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cb15539c-b3a0-4641-9417-861c48bd62ac","savedPayload":{"position":{"x":25536.10738298214,"y":17123.892872366814},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 11 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema111","id":"abc69976-c994-40d1-a923-fd64ded26938","savedPayload":{"position":{"x":25729.55414187992,"y":17006.33932593704},"targetPosition":{"x":25631.326073920172,"y":17153.61886829076},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"afa38489-5525-4f32-b766-cfe85d683a65","savedPayload":{"position":{"x":25631.326073920172,"y":17153.61886829076},"targetPosition":{"x":25533.098005960426,"y":17300.89841064448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"573429d9-05d9-41ea-9fac-5eaf95fcc06c","savedPayload":{"position":{"x":25533.098005960426,"y":17300.89841064448},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 20","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":"02c6627c-956c-4022-a3f9-a132627d02d8","savedPayload":{"position":{"x":25388.969880501543,"y":15877.415732747875},"targetPosition":{"x":25643.96736124485,"y":16123.050324242371},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"48f091c0-5895-4615-a56d-f779d35b60c6","savedPayload":{"position":{"x":25643.96736124485,"y":16123.050324242371},"targetPosition":{"x":25898.964841988156,"y":16368.684915736867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"1143164d-0f70-46f0-80fe-6107db66ce29","savedPayload":{"position":{"x":25556.827181303426,"y":16460.360425617615},"targetPosition":{"x":25898.964841988156,"y":16368.684915736867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 End","id":"750547e8-4963-4008-aa2b-8edc565afd79"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"31fd051d-973f-4d8c-b9d3-ac1c13621ab0","savedPayload":{"position":{"x":25540.355993309815,"y":16272.59596433485},"targetPosition":{"x":25898.964841988156,"y":16368.684915736867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 Begin","id":"c961312c-6bb2-4b38-a142-9f03d0b3eba4"}}}],"id":"01f54960-957d-490a-91c7-cfd01f2bf806","savedPayload":{"position":{"x":25898.964841988156,"y":16368.684915736867},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 20","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":"76712d22-b3a8-490e-a964-b1f51641d472","savedPayload":{"position":{"x":25962.27991815498,"y":15646.199034650295},"targetPosition":{"x":26085.447854684004,"y":15978.147414877229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"61487dfb-c30e-41b5-b3bb-a52bbe476c22","savedPayload":{"position":{"x":26085.447854684004,"y":15978.147414877229},"targetPosition":{"x":26208.615791213026,"y":16310.095795104162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"bd3f3676-7a98-43ca-b661-395e53cc2d9c","savedPayload":{"position":{"x":25886.76080971523,"y":16396.33657747643},"targetPosition":{"x":26208.615791213026,"y":16310.095795104162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 22 End","id":"adc1fb05-93dd-4a32-98dd-30577e4a68de"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"6a2c8c60-7c69-4372-bc67-b5bac89eb8a5","savedPayload":{"position":{"x":25840.814370420438,"y":16211.543701427769},"targetPosition":{"x":26208.615791213026,"y":16310.095795104162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 22 Begin","id":"8ac0329a-2d0d-483f-a047-305198817a24"}}}],"id":"c9043797-16f8-4dc7-85c0-bd9d995dcec1","savedPayload":{"position":{"x":26208.615791213026,"y":16310.095795104162},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 20","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.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":"9ee24b06-2b0b-472a-9272-23f52d3ddc05","savedPayload":{"position":{"x":26579.135579253696,"y":15686.629890735887},"targetPosition":{"x":26546.079051183246,"y":16039.145611911594},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"12acb041-6cf9-4cab-bc99-7d3413860838","savedPayload":{"position":{"x":26546.079051183246,"y":16039.145611911594},"targetPosition":{"x":26513.022523112795,"y":16391.6613330873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e5ec4acb-cef0-48cc-8eb4-432547dc0541","savedPayload":{"position":{"x":26176.545923924936,"y":16481.81996611166},"targetPosition":{"x":26513.022523112795,"y":16391.6613330873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 33 End","id":"0fe0c9b1-3079-499b-ad49-1b13e1e0af82"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"46dfb895-487c-4a14-a8f4-e39f77a98f34","savedPayload":{"position":{"x":26179.463474710195,"y":16302.28445543973},"targetPosition":{"x":26513.022523112795,"y":16391.6613330873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 33 Begin","id":"25fd3a99-95c4-4514-b7f3-d195c9ee3189"}}}],"id":"d6e73bfe-e6af-4fff-b482-df4889701cf7","savedPayload":{"position":{"x":26513.022523112795,"y":16391.6613330873},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 20","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.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":"cb42e26b-ace9-47f5-a272-15645af64e39","savedPayload":{"position":{"x":27117.361034878857,"y":15990.700474104993},"targetPosition":{"x":26934.627293005,"y":16293.963474329023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"cd8235f2-8641-4f92-9029-d30375e43f1f","savedPayload":{"position":{"x":26934.627293005,"y":16293.963474329023},"targetPosition":{"x":26751.893551131143,"y":16597.226474553052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"fff3b40f-45a5-424f-bbe3-b62c4811423d","savedPayload":{"position":{"x":26402.846871088186,"y":16690.753250591326},"targetPosition":{"x":26751.893551131143,"y":16597.226474553052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 55 End","id":"1eeef11e-809a-4e49-8b3b-48a955f42ce3"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"e644af79-d267-4c8b-bebd-2d919eb5efd9","savedPayload":{"position":{"x":26413.556421164674,"y":16506.569313809072},"targetPosition":{"x":26751.893551131143,"y":16597.226474553052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 55 Begin","id":"27b05f8b-84e9-4ab2-944d-46b10c2a978c"}}}],"id":"001084ac-f732-465a-aea1-bb8c63770971","savedPayload":{"position":{"x":26751.893551131143,"y":16597.226474553052},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Polygon","name":"SMA 20","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.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"5d5e3413-6b2a-49e0-8b7e-14441b448203","savedPayload":{"position":{"x":27470.354132641878,"y":16498.18587654038},"targetPosition":{"x":27174.135835625006,"y":16692.131199341744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"d1c5bddf-9fc3-47b8-b026-a0fd18fc7efd","savedPayload":{"position":{"x":27174.135835625006,"y":16692.131199341744},"targetPosition":{"x":26877.917538608133,"y":16886.076522143107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"2aed0f5f-77bd-4297-a131-77c0c08914d5","savedPayload":{"position":{"x":26575.268978487453,"y":17060.810749798635},"targetPosition":{"x":26877.917538608133,"y":16886.076522143107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 11 End","id":"afa38489-5525-4f32-b766-cfe85d683a65"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"dff4ca7d-4499-4a8a-834b-7315e9e784e4","savedPayload":{"position":{"x":26528.605907690333,"y":16792.478752731884},"targetPosition":{"x":26877.917538608133,"y":16886.076522143107},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 111 Begin","id":"cb15539c-b3a0-4641-9417-861c48bd62ac"}}}],"id":"47ab5422-37ad-4070-a2eb-248bbe9b007f","savedPayload":{"position":{"x":26877.917538608133,"y":16886.076522143107},"targetPosition":{"x":26182.138171428098,"y":17017.72508120454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"951aba38-5a6a-43df-8f70-f311d621c98d","savedPayload":{"position":{"x":26182.138171428098,"y":17017.72508120454},"targetPosition":{"x":25998.862071213738,"y":17701.72079901761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"EMA 11","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"EMA 11","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema11","id":"ee21f97e-daa4-45b8-bebd-5c53d872534b","savedPayload":{"position":{"x":26090.500121320914,"y":17359.72294011107},"targetPosition":{"x":26215.680025720594,"y":17484.90284451075},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a96b4bae-0ce3-4dc6-88df-af120452af6b","savedPayload":{"position":{"x":26215.680025720594,"y":17484.90284451075},"targetPosition":{"x":26340.859930120274,"y":17610.08274891043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 22","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema22","id":"583909a2-6932-4bfa-952d-a0c81123cc3f","savedPayload":{"position":{"x":26432.49798022745,"y":17268.084890003895},"targetPosition":{"x":26386.678955173862,"y":17439.083819457162},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2a2f4d65-a013-4c73-b851-1c9ac3dceb9f","savedPayload":{"position":{"x":26386.678955173862,"y":17439.083819457162},"targetPosition":{"x":26340.859930120274,"y":17610.08274891043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 33","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema33","id":"067efa03-229a-49e1-9dff-579ead9e6603","savedPayload":{"position":{"x":26682.85778902681,"y":17518.444698803254},"targetPosition":{"x":26511.858859573542,"y":17564.263723856842},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a51bde01-b164-49bd-99fc-d048468e4cc0","savedPayload":{"position":{"x":26511.858859573542,"y":17564.263723856842},"targetPosition":{"x":26340.859930120274,"y":17610.08274891043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 55","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema55","id":"4663f0f2-cf79-4a80-b4c0-33c41bca9d88","savedPayload":{"position":{"x":26591.219738919634,"y":17860.44255770979},"targetPosition":{"x":26466.039834519954,"y":17735.26265331011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"782092b0-9e6c-4de0-aec6-0d6b47fac8b4","savedPayload":{"position":{"x":26466.039834519954,"y":17735.26265331011},"targetPosition":{"x":26340.859930120274,"y":17610.08274891043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 111","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema111","id":"8064c04e-1499-4c01-b056-aac2a1aecc01","savedPayload":{"position":{"x":26249.221880013098,"y":17952.080607816966},"targetPosition":{"x":26295.040905066686,"y":17781.0816783637},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c4a358f-23b6-433c-98de-623caad85051","savedPayload":{"position":{"x":26295.040905066686,"y":17781.0816783637},"targetPosition":{"x":26340.859930120274,"y":17610.08274891043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"efc451e7-a5c0-4377-877c-a6b1a60a6604","savedPayload":{"position":{"x":26340.859930120274,"y":17610.08274891043},"targetPosition":{"x":25998.862071213738,"y":17701.72079901761},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"cef26be6-07a9-415a-8439-99d06b1e1cfb","savedPayload":{"position":{"x":25998.862071213738,"y":17701.72079901761},"targetPosition":{"x":25498.142453615026,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"EMA Base 7","code":"{\n\t\"codeName\": \"EMA-Base7\",\n \"icon\": \"moving-average\"\n}","shapes":{"type":"Shapes","name":"New Shapes","chartPoints":[{"type":"Chart Points","name":"New Chart Points","points":[{"type":"Point","name":"EMA 7 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema7","id":"d41ccc81-8740-46e9-9ed3-9ffc1df75ee0","savedPayload":{"position":{"x":26367.6788987123,"y":17876.6786301777},"targetPosition":{"x":26264.012563189048,"y":17733.174944475184},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d2bb8ca1-5fcc-4286-aba3-1d307d4f7168","savedPayload":{"position":{"x":26264.012563189048,"y":17733.174944475184},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 7 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema7","id":"91431058-cccd-40c3-bb98-dd9484a0807d","savedPayload":{"position":{"x":26179.597669762792,"y":17943.20972867557},"targetPosition":{"x":26169.971948714294,"y":17766.44049372412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8ea750de-2b74-41ea-9897-637291621ae9","savedPayload":{"position":{"x":26169.971948714294,"y":17766.44049372412},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 14 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema14","id":"753c8686-38ea-4fc2-9343-3598039aa890","savedPayload":{"position":{"x":25985.404243971687,"y":17897.494860962735},"targetPosition":{"x":26072.87523581874,"y":17743.583059867702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"77265bb0-8ba2-4c0b-a788-970cd44ddcc9","savedPayload":{"position":{"x":26072.87523581874,"y":17743.583059867702},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 14 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema14","id":"c64e3670-c41d-44d0-bc7a-05c8f0a841b6","savedPayload":{"position":{"x":25846.753661922463,"y":17754.0481745322},"targetPosition":{"x":26003.54994479413,"y":17671.859716652434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"cd04ee65-bd26-4fbc-abed-76c6fc5c964b","savedPayload":{"position":{"x":26003.54994479413,"y":17671.859716652434},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 21 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema21","id":"be27efec-c4ed-43ec-925a-f7d862f999c1","savedPayload":{"position":{"x":25807.66650375756,"y":17558.41297877979},"targetPosition":{"x":25984.006365711677,"y":17574.04211877623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2f13bba0-f9c2-435f-ad66-8ad73082c502","savedPayload":{"position":{"x":25984.006365711677,"y":17574.04211877623},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 21 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema21","id":"e6af4547-c256-4f33-95fc-9d9f3cd5d111","savedPayload":{"position":{"x":25880.552666017677,"y":17372.70206606467},"targetPosition":{"x":26020.449446841736,"y":17481.18666241867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a5e04840-b217-44cb-9f8f-2629bf4d1f6e","savedPayload":{"position":{"x":26020.449446841736,"y":17481.18666241867},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 28 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema28","id":"a42e77a3-9107-4c33-853d-4ed8966f339d","savedPayload":{"position":{"x":26042.271307174226,"y":17255.877339003284},"targetPosition":{"x":26101.30876742001,"y":17422.774298887976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0d436286-6b79-4dca-a2f3-b7bd3b9a5671","savedPayload":{"position":{"x":26101.30876742001,"y":17422.774298887976},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 28 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema28","id":"0e7f0922-d9b4-4ea3-9f5f-57ad9d4c9328","savedPayload":{"position":{"x":26241.47790130933,"y":17245.02982299354},"targetPosition":{"x":26200.912064487562,"y":17417.350540883104},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f50599e9-c04f-4b07-aca0-f276dd08ea94","savedPayload":{"position":{"x":26200.912064487562,"y":17417.350540883104},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 35 Begin","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.begin\ny = record.previous.ema35","id":"db011cc5-705a-444a-9f7a-159466b19247","savedPayload":{"position":{"x":26414.92576231163,"y":17343.603527723648},"targetPosition":{"x":26287.635994988712,"y":17466.63739324816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d7ac980a-16ab-4077-b3f1-05cf1f4c3a39","savedPayload":{"position":{"x":26287.635994988712,"y":17466.63739324816},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Point","name":"EMA 35 End","pointFormula":{"type":"Point Formula","name":"New Point Formula","code":"x = record.end\ny = record.ema35","id":"6b3dc821-e0e9-4c09-965b-c8600bd3e9d5","savedPayload":{"position":{"x":26507.546419836908,"y":17520.301998430314},"targetPosition":{"x":26333.946323751352,"y":17554.98662860149},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8992ec1b-4e8c-4f47-a08e-b6e18a0d9c31","savedPayload":{"position":{"x":26333.946323751352,"y":17554.98662860149},"targetPosition":{"x":26160.346227665796,"y":17589.67125877267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"5a4d5b2f-63dc-403c-a545-6025652d9e81","savedPayload":{"position":{"x":26160.346227665796,"y":17589.67125877267},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"polygons":[{"type":"Polygon","name":"SMA 7","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":"496c35a4-5cf7-4def-97bc-ce71a6fc45f7","savedPayload":{"position":{"x":26807.287507091845,"y":17194.270854923914},"targetPosition":{"x":26878.08083945183,"y":17356.53089629083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"671a56e0-b5eb-4833-aa19-3dca720b5b0e","savedPayload":{"position":{"x":26878.08083945183,"y":17356.53089629083},"targetPosition":{"x":26948.874171811818,"y":17518.790937657748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"b0be4203-a40d-4ee7-83e0-d1ac87f0bd31","savedPayload":{"position":{"x":26797.086633487175,"y":17606.42551376911},"targetPosition":{"x":26948.874171811818,"y":17518.790937657748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 7 End","id":"8ea750de-2b74-41ea-9897-637291621ae9"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"afe09e1e-c8fd-4fc7-8f09-324ee7d7d012","savedPayload":{"position":{"x":26804.338455075558,"y":17435.343202692555},"targetPosition":{"x":26948.874171811818,"y":17518.790937657748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 7 Begin","id":"d2bb8ca1-5fcc-4286-aba3-1d307d4f7168"}}}],"id":"45946a01-a9fb-4ea8-bb82-ef6088fad08e","savedPayload":{"position":{"x":26948.874171811818,"y":17518.790937657748},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 14","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":"9c0f7800-bf53-4a63-94ba-fccbec15d0ea","savedPayload":{"position":{"x":27300.51179833916,"y":17124.830947694885},"targetPosition":{"x":27226.696764580196,"y":17285.738864598276},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"651877b1-61a2-48a2-8fc4-86e809f89d42","savedPayload":{"position":{"x":27226.696764580196,"y":17285.738864598276},"targetPosition":{"x":27079.066697062266,"y":17607.554698405056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"72f9e17d-9c36-408d-9a2e-13da010f4d97","savedPayload":{"position":{"x":26741.25988861122,"y":17698.06975992725},"targetPosition":{"x":27079.066697062266,"y":17607.554698405056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 14 End","id":"cd04ee65-bd26-4fbc-abed-76c6fc5c964b"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"5a24fd6f-de93-4fcd-94f7-1f7fe268e8be","savedPayload":{"position":{"x":26737.804157115894,"y":17516.11367641943},"targetPosition":{"x":27079.066697062266,"y":17607.554698405056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 14 Begin","id":"77265bb0-8ba2-4c0b-a788-970cd44ddcc9"}}}],"id":"b1689975-de58-4f84-a802-c6f13e885dc6","savedPayload":{"position":{"x":27079.066697062266,"y":17607.554698405056},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 21","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.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":"14146df5-5a4a-46b7-9db5-4957b8445915","savedPayload":{"position":{"x":27323.295132577692,"y":17430.984629038525},"targetPosition":{"x":27240.574044656518,"y":17587.500566067833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"2552b9ce-3620-4245-9803-d55ad53969da","savedPayload":{"position":{"x":27240.574044656518,"y":17587.500566067833},"targetPosition":{"x":27157.852956735343,"y":17744.01650309714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"803ffc35-a2e2-426d-a8d2-7c770e5d0a6a","savedPayload":{"position":{"x":26987.817986241018,"y":17842.18623908369},"targetPosition":{"x":27157.852956735343,"y":17744.01650309714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 21 Begin","id":"2f13bba0-f9c2-435f-ad66-8ad73082c502"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"a0449481-80c2-4160-adb3-49d4327bf921","savedPayload":{"position":{"x":27017.336434361983,"y":17662.88925107929},"targetPosition":{"x":27157.852956735343,"y":17744.01650309714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 21 End","id":"a5e04840-b217-44cb-9f8f-2629bf4d1f6e"}}}],"id":"15f599b3-7620-4a0c-b9e0-29830383cd36","savedPayload":{"position":{"x":27157.852956735343,"y":17744.01650309714},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 28","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.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":"e4a06d7f-ecad-400a-acca-f3c340642354","savedPayload":{"position":{"x":27685.10575381071,"y":17773.307833854342},"targetPosition":{"x":27513.279957824718,"y":17815.92136180974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"styleConditions":[],"id":"65f345ac-2766-411d-af4f-9390e525667c","savedPayload":{"position":{"x":27513.279957824718,"y":17815.92136180974},"targetPosition":{"x":27169.62836585273,"y":17901.14841772053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"ca1f7537-47e7-4c48-a056-fedd8820a1de","savedPayload":{"position":{"x":26834.504450165812,"y":17990.944600293198},"targetPosition":{"x":27169.62836585273,"y":17901.14841772053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 28 Begin","id":"0d436286-6b79-4dca-a2f3-b7bd3b9a5671"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"80c45995-463a-442a-a6d8-92cc9971a8b9","savedPayload":{"position":{"x":26835.601263968638,"y":17811.64612552058},"targetPosition":{"x":27169.62836585273,"y":17901.14841772053},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 28 End","id":"f50599e9-c04f-4b07-aca0-f276dd08ea94"}}}],"id":"e3c75e9c-a5ec-4755-9a86-909db1b690ca","savedPayload":{"position":{"x":27169.62836585273,"y":17901.14841772053},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Polygon","name":"SMA 35","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.GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.75,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}","id":"9d05ca49-9de9-4c97-b4da-891614ed84a5","savedPayload":{"position":{"x":27459.95034381283,"y":17982.00425995688},"targetPosition":{"x":27286.005502017822,"y":18014.91639972224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"styleConditions":[],"id":"56422e5e-ccaa-4c0c-b5a1-79e62ebc1e74","savedPayload":{"position":{"x":27286.005502017822,"y":18014.91639972224},"targetPosition":{"x":27112.060660222814,"y":18047.828539487597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"polygonVertexes":[{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"155db5be-8214-4154-a918-ab9469587cc7","savedPayload":{"position":{"x":26948.17669373895,"y":18142.44699165292},"targetPosition":{"x":27112.060660222814,"y":18047.828539487597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 35 Begin","id":"d7ac980a-16ab-4077-b3f1-05cf1f4c3a39"}}},{"type":"Polygon Vertex","name":"New Polygon Vertex","id":"ee71f62a-adc7-4411-aeb1-54ca5712ce34","savedPayload":{"position":{"x":26955.869998594128,"y":17957.651818951366},"targetPosition":{"x":27112.060660222814,"y":18047.828539487597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Point","name":"EMA 35 End","id":"8992ec1b-4e8c-4f47-a08e-b6e18a0d9c31"}}}],"id":"3511cc8f-eb39-4dd0-8043-9f06a8faa698","savedPayload":{"position":{"x":27112.060660222814,"y":18047.828539487597},"targetPosition":{"x":26819.52071142858,"y":17848.37817953914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"8e7cd7e8-5c59-4cc2-8d9e-ea86d7554205","savedPayload":{"position":{"x":26819.52071142858,"y":17848.37817953914},"targetPosition":{"x":26206.266927769397,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"panels":[{"type":"Plotter Panel","name":"EMA Base 7","code":"{ \n\"codeName\": \"\"\n}","panelData":[{"type":"Panel Data","name":"EMA 7","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema7","id":"9d9efe26-4895-475c-ac3c-149f0331c6f7","savedPayload":{"position":{"x":26512.893819598987,"y":18025.40929807773},"targetPosition":{"x":26512.893819598987,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"aeaebf9b-54bf-41f3-a833-b0e4fcc55c00","savedPayload":{"position":{"x":26512.893819598987,"y":18202.440416616326},"targetPosition":{"x":26512.893819598987,"y":18379.47153515492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 14","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema14","id":"7c922a65-b8a6-4ebf-a964-af3851b30367","savedPayload":{"position":{"x":26819.520711428577,"y":18202.440416616326},"targetPosition":{"x":26666.20726551378,"y":18290.955975885623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f749c1c5-25f9-4c3f-af87-c8df30a177e0","savedPayload":{"position":{"x":26666.20726551378,"y":18290.955975885623},"targetPosition":{"x":26512.893819598987,"y":18379.47153515492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 21","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema21","id":"f5a9c1c1-9331-4492-a263-1f69ff44711a","savedPayload":{"position":{"x":26819.520711428577,"y":18556.502653693515},"targetPosition":{"x":26666.20726551378,"y":18467.987094424218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"92f7a1a7-bd42-403f-9d0e-2eb907e8abea","savedPayload":{"position":{"x":26666.20726551378,"y":18467.987094424218},"targetPosition":{"x":26512.893819598987,"y":18379.47153515492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 28","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema28","id":"0fcdb422-d014-4dc8-927a-5484c5d7c34b","savedPayload":{"position":{"x":26512.893819598987,"y":18733.53377223211},"targetPosition":{"x":26512.893819598987,"y":18556.502653693515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"4c51ef79-f3dd-4f24-ad22-4e38f42f3ff2","savedPayload":{"position":{"x":26512.893819598987,"y":18556.502653693515},"targetPosition":{"x":26512.893819598987,"y":18379.47153515492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Panel Data","name":"EMA 35","code":"{\n \"valueDecimals\": 2\n}","dataFormula":{"type":"Data Formula","name":"New Data Formula","code":"record.ema35","id":"c23e6dd3-f9d5-498f-a01c-c951b11cbdf6","savedPayload":{"position":{"x":26206.266927769397,"y":18556.502653693515},"targetPosition":{"x":26359.58037368419,"y":18467.987094424218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8cdd88af-871c-4f1b-966b-cf9d00483caa","savedPayload":{"position":{"x":26359.58037368419,"y":18467.987094424218},"targetPosition":{"x":26512.893819598987,"y":18379.47153515492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"481ef93a-bef5-4fe3-b87b-f8032a63c69f","savedPayload":{"position":{"x":26512.893819598987,"y":18379.47153515492},"targetPosition":{"x":26206.266927769397,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"a52a9764-3ef2-44e6-82bd-e6538058119d","savedPayload":{"position":{"x":26206.266927769397,"y":18202.440416616326},"targetPosition":{"x":25498.142453615026,"y":18202.440416616326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"6cb2807d-22bb-4f90-b4d8-c84cf84a0d5c","savedPayload":{"position":{"x":25498.142453615026,"y":18202.440416616326},"targetPosition":{"x":24997.408806793872,"y":18693.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"a"}}}],"id":"9cfffc48-486a-48cb-b641-98c82e314d3a","savedPayload":{"position":{"x":24997.408806793872,"y":18693.146004599515},"targetPosition":{"x":24997.408806793872,"y":18693.146004599515},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Exchanges Being Tested","exchanges":[{"type":"Crypto Exchange","name":"Bitmex","code":"{\n \"codeName\": \"bitmex\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[{"type":"Asset","name":"ETH","code":"{ \n\"codeName\": \"ETH\"\n}","id":"fa7db4c9-73d7-48eb-ac7b-bd52292e9e5d","savedPayload":{"position":{"x":13598.42102793473,"y":30401.148537454752},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Asset","name":"XXX","code":"{ \n\"codeName\": \"XXX\"\n}","id":"740ce0d4-e66d-4e2d-8b98-dd3916e6484b","savedPayload":{"position":{"x":13442.859759461186,"y":30556.709805928298},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Asset","name":"ADA","code":"{ \n\"codeName\": \"ADA\"\n}","id":"9ce85509-0e97-4614-a927-0ec6b59c923f","savedPayload":{"position":{"x":13230.359114881394,"y":30613.649182034544},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Asset","name":"XBT","code":"{ \n\"codeName\": \"XBT\"\n}","id":"9384ce38-8525-409f-9212-6f4ac41fb33f","savedPayload":{"position":{"x":13017.858470301602,"y":30556.709805928298},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Asset","name":"BCH","code":"{ \n\"codeName\": \"BCH\"\n}","id":"99ce985f-3821-4297-85ad-911a396f7423","savedPayload":{"position":{"x":12862.297201828058,"y":30401.148537454752},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Asset","name":"EOS","code":"{ \n\"codeName\": \"EOS\"\n}","id":"3a566f12-3109-4abf-b42d-ac254251c3f9","savedPayload":{"position":{"x":12805.357825721809,"y":30188.64789287496},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Asset","name":"XRP","code":"{ \n\"codeName\": \"XRP\"\n}","id":"300f2067-4e28-46c0-bd02-8088ea194b82","savedPayload":{"position":{"x":12862.297201828058,"y":29976.14724829517},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Asset","name":"TRX","code":"{ \n\"codeName\": \"TRX\"\n}","id":"7ac1afce-0347-4146-a19e-9d1b24a93ed7","savedPayload":{"position":{"x":13017.858470301602,"y":29820.585979821622},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Asset","name":"LTC","code":"{ \n\"codeName\": \"LTC\"\n}","id":"54447196-f9f2-43e7-87e2-3297baf1eb60","savedPayload":{"position":{"x":13230.359114881394,"y":29763.646603715377},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Asset","name":"Bitcoin","code":"{ \n\"codeName\": \"BTC\"\n}","id":"5dcc2338-6347-4c17-a1cc-7dce7790b69e","savedPayload":{"position":{"x":13442.859759461186,"y":29820.585979821622},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Asset","name":"US Dollar","code":"{ \n\"codeName\": \"USD\"\n}","id":"1b6defee-80cf-402d-9c1b-36e8f7b993e2","savedPayload":{"position":{"x":13598.42102793473,"y":29976.14724829517},"targetPosition":{"x":13230.359123092243,"y":30188.650298815377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"7e7fe3ba-324d-43e7-ae85-22e2c0537bcb","savedPayload":{"position":{"x":13230.359123092243,"y":30188.650298815377},"targetPosition":{"x":13655.360419602717,"y":30188.65260695758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"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/USD","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":"Bitcoin","id":"0dbd88b2-8ff2-43b2-9401-e4c2827d467b","savedPayload":{"position":{"x":13572.463578850844,"y":28921.896610012063},"targetPosition":{"x":13655.377217210256,"y":29338.73161857218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"5dcc2338-6347-4c17-a1cc-7dce7790b69e"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"US Dollar","id":"297606e3-eff2-49c2-b0c3-1e408ecac868","savedPayload":{"position":{"x":13655.377217210256,"y":28913.730329412596},"targetPosition":{"x":13655.377217210256,"y":29338.73161857218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"US Dollar","id":"1b6defee-80cf-402d-9c1b-36e8f7b993e2"}}},"superActions":[{"type":"Super Action","name":"Setup Market","id":"21103c41-39f8-411b-b7aa-4b9ded2fe87f","savedPayload":{"position":{"x":13738.290855569669,"y":28921.896610012063},"targetPosition":{"x":13655.377217210256,"y":29338.73161857218},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}}],"id":"2dbc8c9c-ba14-4340-8b97-8d358d32df6b","savedPayload":{"position":{"x":13655.377217210256,"y":29338.73161857218},"targetPosition":{"x":13655.377205998377,"y":29763.73265285351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"4ac812f4-ceef-409b-b698-31e82cacaf24","savedPayload":{"position":{"x":13655.360412251828,"y":29763.649009655794},"targetPosition":{"x":13655.360419602717,"y":30188.65260695758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"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":"","id":"aa2051f5-e411-4eed-b134-4c4dad10988e","savedPayload":{"position":{"x":14065.896986403031,"y":29477.694515573363},"targetPosition":{"x":14010.897764113854,"y":29682.954101195817},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"b3bda3c8-3c08-43b2-912a-4b25bafd8796","savedPayload":{"position":{"x":14010.890789055691,"y":29682.942723729124},"targetPosition":{"x":13955.891516816791,"y":29888.20250313303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":"f6f691a2-dfe1-4049-a1c1-fff0869b6b3c","savedPayload":{"position":{"x":14366.414986818543,"y":29778.204840363243},"targetPosition":{"x":14161.15497240011,"y":29833.20412704605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"e90032ed-27eb-4e1b-92fb-f9106fa6dcfc","savedPayload":{"position":{"x":14161.151435844575,"y":29833.203370518007},"targetPosition":{"x":13955.891516816791,"y":29888.20250313303},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"c373f542-e203-481c-bca2-ca7e4d799e79","savedPayload":{"position":{"x":13955.881697618746,"y":29888.126599297193},"targetPosition":{"x":13805.621059040712,"y":30038.389652026493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"b2fdc423-2498-41b9-b884-8c585cfecec7","savedPayload":{"position":{"x":13805.621059040712,"y":30038.389652026493},"targetPosition":{"x":13655.360419602717,"y":30188.65260695758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"d57edcc8-cb45-4d6f-99e8-2c1f611691f6","savedPayload":{"position":{"x":13655.364728300743,"y":30188.676671217112},"targetPosition":{"x":13655.304196270155,"y":31038.248717419447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Crypto Exchange","name":"Coinbase Pro","code":"{ \n\"codeName\": \"coinbasepro\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[{"type":"Asset","name":"DASH","code":"{ \n\"codeName\": \"DASH\"\n}","id":"5a035c45-7e37-46f9-8b34-645f7fb8a377","savedPayload":{"position":{"x":13600.308639568673,"y":29671.50491387763},"targetPosition":{"x":15104.684010329795,"y":30438.16993358677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},{"type":"Asset","name":"BTC","code":"{ \n\"codeName\": \"BTC\"\n}","id":"9510269d-d838-4692-ad45-405566b71b12","savedPayload":{"position":{"x":15368.636458740124,"y":28769.46415548573},"targetPosition":{"x":15104.684010329795,"y":30438.16993358677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},{"type":"Asset","name":"USD","code":"{ \n\"codeName\": \"USD\"\n}","id":"b5c2f9af-734f-4e6b-8bdf-1ca41cea900f","savedPayload":{"position":{"x":16773.38513289307,"y":30174.22551418124},"targetPosition":{"x":15104.684010329795,"y":30438.16993358677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},{"type":"Asset","name":"EOS","code":"{ \n\"codeName\": \"EOS\"\n}","id":"80f6ddd2-463c-442b-8448-0af58f270558","savedPayload":{"position":{"x":15871.024465369483,"y":31942.54535479518},"targetPosition":{"x":15104.684010329795,"y":30438.16993358677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}}],"id":"2c03b83c-73e3-4f50-99ed-e6fd4eb8888e","savedPayload":{"position":{"x":15104.684010329795,"y":30438.16993358677},"targetPosition":{"x":14504.711317287738,"y":31038.173642708258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"exchangeMarkets":{"type":"Exchange Markets","name":"New Exchange Markets","code":"{ \n\"codeName\": \"Write here the code name of the Market here.\"\n}","markets":[],"id":"e7601603-34d1-4987-ade5-93552254c8ee","savedPayload":{"position":{"x":15353.401318617274,"y":31038.175777339457},"targetPosition":{"x":14504.711317287738,"y":31038.173642708258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":"023ba238-f569-496a-9d36-dc13ed3e96dd","savedPayload":{"position":{"x":15106.106203785035,"y":31378.981857852003},"targetPosition":{"x":14900.634401323163,"y":31433.69255395674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":"e7549669-c2d4-42fe-a827-0dbf456502f4","savedPayload":{"position":{"x":14791.337052402401,"y":31844.40774081572},"targetPosition":{"x":14846.053211274757,"y":31639.027359300064},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"ae2439a1-2d1f-4d97-a8fb-334835d54f59","savedPayload":{"position":{"x":14846.053211274757,"y":31639.027359300064},"targetPosition":{"x":14900.634401323163,"y":31433.69255395674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"8714d5ce-65f6-47c3-98bc-367b60e698f4","savedPayload":{"position":{"x":14900.634401323163,"y":31433.69255395674},"targetPosition":{"x":14750.494162900888,"y":31283.68751768515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"2fcccb4c-a259-4a84-a7d3-bb37c92c6bc1","savedPayload":{"position":{"x":14750.494162900888,"y":31283.68751768515},"targetPosition":{"x":14504.711317287738,"y":31038.173642708258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"2bfb61b4-b77e-4b9b-9c7d-a13409747e97","savedPayload":{"position":{"x":14504.862224498083,"y":31038.246950187986},"targetPosition":{"x":13655.304196270155,"y":31038.248717419447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Crypto Exchange","name":"Gemini","code":"{ \n\"codeName\": \"gemini\"\n}","exchangeAssets":{"type":"Exchange Assets","name":"New Exchange Assets","code":"{ \n\"addMissingAssets\": { \"quotedAsset\": \"USDT\"} \n}","assets":[{"type":"Asset","name":"BTC","code":"{ \n\"codeName\": \"BTC\"\n}","id":"1c6ca075-b84e-47a1-bf3a-b93ad5f2bb5c","savedPayload":{"position":{"x":13604.317446211544,"y":31555.71781399185},"targetPosition":{"x":13868.466158674388,"y":31887.750336820627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},{"type":"Asset","name":"USD","code":"{ \n\"codeName\": \"USD\"\n}","id":"d005ba90-123d-4472-a4eb-9f45619eb9e3","savedPayload":{"position":{"x":13963.274865447085,"y":31473.986897014314},"targetPosition":{"x":13868.466158674388,"y":31887.750336820627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},{"type":"Asset","name":"ETH","code":"{ \n\"codeName\": \"ETH\"\n}","id":"47ad77a1-fa5c-4a01-937a-69e98d776a64","savedPayload":{"position":{"x":14251.23710888499,"y":31703.75521219469},"targetPosition":{"x":13868.466158674388,"y":31887.750336820627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},{"type":"Asset","name":"ZEC","code":"{ \n\"codeName\": \"ZEC\"\n}","id":"2d6fec44-34a0-46da-a91e-4ef319e682f3","savedPayload":{"position":{"x":14251.192046189522,"y":32072.006467455692},"targetPosition":{"x":13868.466158674388,"y":31887.750336820627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},{"type":"Asset","name":"BCH","code":"{ \n\"codeName\": \"BCH\"\n}","id":"b32d4672-99bb-4e25-9d25-d34ff3b13c11","savedPayload":{"position":{"x":13963.163152692303,"y":32301.885006091947},"targetPosition":{"x":13868.466158674388,"y":31887.750336820627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},{"type":"Asset","name":"LTC","code":"{ \n\"codeName\": \"LTC\"\n}","id":"0cce3ed7-8028-4cc0-8547-e13ae9028159","savedPayload":{"position":{"x":13604.38142087294,"y":32220.204504739875},"targetPosition":{"x":13868.466158674388,"y":31887.750336820627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}}],"id":"98340433-1cb4-47b3-8cef-dcece420a51c","savedPayload":{"position":{"x":13868.466158674388,"y":31887.750336820627},"targetPosition":{"x":13655.523934541932,"y":31887.673194104722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"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/USD","code":"{ \n\"codeName\": \"BTC/USD\"\n}","baseAsset":{"type":"Market Base Asset","name":"BTC","id":"14fed0fa-fcd3-4253-9504-eb941747d115","savedPayload":{"position":{"x":15335.288722898282,"y":33711.66262163345},"targetPosition":{"x":14486.714856546627,"y":33745.444954491366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"1c6ca075-b84e-47a1-bf3a-b93ad5f2bb5c"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"USD","id":"c87abb22-51d8-4275-91d3-f8e3b691a8b0","savedPayload":{"position":{"x":15330.136687895296,"y":33844.93331405833},"targetPosition":{"x":14486.714856546627,"y":33745.444954491366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"USD","id":"d005ba90-123d-4472-a4eb-9f45619eb9e3"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"431c18f3-e4e5-4617-94a6-e9e646ce4596","savedPayload":{"position":{"x":15310.835950747083,"y":33957.351544426405},"targetPosition":{"x":14486.714856546627,"y":33745.444954491366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"7b839dca-6aef-4327-8a0e-875ae07806a0","savedPayload":{"position":{"x":15251.591344809687,"y":34089.03520124621},"targetPosition":{"x":14486.714856546627,"y":33745.444954491366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"1b9a6789-0ea9-4f3a-a08d-221fc8702b15","savedPayload":{"position":{"x":14486.714856546627,"y":33745.444954491366},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETH/USD","code":"{ \n\"codeName\": \"ETH/USD\"\n}","baseAsset":{"type":"Market Base Asset","name":"ETH","id":"14828f57-3fbf-4ff1-99e4-f72f7e6f32a9","savedPayload":{"position":{"x":15277.538336860034,"y":34033.851022774405},"targetPosition":{"x":14438.521171324779,"y":33904.723481827474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ETH","id":"47ad77a1-fa5c-4a01-937a-69e98d776a64"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"USD","id":"a9aab824-eb03-441b-a8ab-39afecd989f4","savedPayload":{"position":{"x":15245.036317960194,"y":34185.4828886268},"targetPosition":{"x":14438.521171324779,"y":33904.723481827474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"USD","id":"d005ba90-123d-4472-a4eb-9f45619eb9e3"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"8039d402-00b1-468b-9eb3-88d591c29cb2","savedPayload":{"position":{"x":15205.520783630343,"y":34273.41136481264},"targetPosition":{"x":14438.521171324779,"y":33904.723481827474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"9d1fa45a-6b9b-48fa-ae99-b1eccd510740","savedPayload":{"position":{"x":15121.682973650853,"y":34390.94681254641},"targetPosition":{"x":14438.521171324779,"y":33904.723481827474},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"300b7b03-4479-4703-8ca9-4ff626a9d1cd","savedPayload":{"position":{"x":14438.521171324779,"y":33904.723481827474},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETH/BTC","code":"{ \n\"codeName\": \"ETH/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"ETH","id":"3183ae91-dc35-4c8a-b2c0-072719de5dad","savedPayload":{"position":{"x":15157.827360325773,"y":34341.90376823651},"targetPosition":{"x":14360.206517778148,"y":34051.4209691348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ETH","id":"47ad77a1-fa5c-4a01-937a-69e98d776a64"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"BTC","id":"963d0182-ba70-46fb-9d36-b2b0999cb5d6","savedPayload":{"position":{"x":15096.407527588286,"y":34484.25429984072},"targetPosition":{"x":14360.206517778148,"y":34051.4209691348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"1c6ca075-b84e-47a1-bf3a-b93ad5f2bb5c"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"f9dce33f-1a76-4cc1-8ff7-9c6ff85d4de2","savedPayload":{"position":{"x":15040.54804903846,"y":34562.70196550799},"targetPosition":{"x":14360.206517778148,"y":34051.4209691348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d8956cfb-8863-4df0-94e1-74af1d4457b0","savedPayload":{"position":{"x":14935.406002054215,"y":34661.61291208306},"targetPosition":{"x":14360.206517778148,"y":34051.4209691348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"540412dc-ed96-4796-a8b7-27baebd825d0","savedPayload":{"position":{"x":14360.206517778148,"y":34051.4209691348},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ZEC/USD","code":"{ \n\"codeName\": \"ZEC/USD\"\n}","baseAsset":{"type":"Market Base Asset","name":"ZEC","id":"3b90cb06-2534-42cd-91c4-9e93c6547094","savedPayload":{"position":{"x":14980.36864637873,"y":34620.54811261802},"targetPosition":{"x":14254.788782039137,"y":34179.976775797484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ZEC","id":"2d6fec44-34a0-46da-a91e-4ef319e682f3"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"USD","id":"7a79a860-a163-4c87-84dc-9bbd6f27a707","savedPayload":{"position":{"x":14892.36403342909,"y":34748.1723721441},"targetPosition":{"x":14254.788782039137,"y":34179.976775797484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"USD","id":"d005ba90-123d-4472-a4eb-9f45619eb9e3"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"f6958c15-044b-4309-9899-14756e082f99","savedPayload":{"position":{"x":14822.31609284023,"y":34814.19404393116},"targetPosition":{"x":14254.788782039137,"y":34179.976775797484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"61e5f577-2480-46ef-8471-8bcc8405cbde","savedPayload":{"position":{"x":14699.921087045514,"y":34890.6926661542},"targetPosition":{"x":14254.788782039137,"y":34179.976775797484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"ad16baca-5602-4c40-9ed2-9ad3ab769d28","savedPayload":{"position":{"x":14254.788782039137,"y":34179.976775797484},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ZEC/BTC","code":"{ \n\"codeName\": \"ZEC/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"ZEC","id":"87fe2e8c-8fd8-4c4d-872b-02700304403d","savedPayload":{"position":{"x":14751.974827820803,"y":34859.15701511152},"targetPosition":{"x":14126.335497363823,"y":34285.45510618164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ZEC","id":"2d6fec44-34a0-46da-a91e-4ef319e682f3"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"BTC","id":"a6f3eef2-7f10-4003-9f82-660f3c199312","savedPayload":{"position":{"x":14640.769610414382,"y":34967.153534729776},"targetPosition":{"x":14126.335497363823,"y":34285.45510618164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"1c6ca075-b84e-47a1-bf3a-b93ad5f2bb5c"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"eb3f5117-6edc-4d51-a3b2-81e8a5fa03e0","savedPayload":{"position":{"x":14559.21946595654,"y":35018.23706099821},"targetPosition":{"x":14126.335497363823,"y":34285.45510618164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"f1b708e5-6af9-4bf8-a5ed-f76c719f589d","savedPayload":{"position":{"x":14424.272148265625,"y":35069.39659226798},"targetPosition":{"x":14126.335497363823,"y":34285.45510618164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"1cb71754-e0e6-4ef5-8787-0188862e43fa","savedPayload":{"position":{"x":14126.335497363823,"y":34285.45510618164},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ZEC/ETH","code":"{ \n\"codeName\": \"ZEC/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"ZEC","id":"64835972-4323-4908-8cb8-c5a73cd2bc24","savedPayload":{"position":{"x":14481.439190643803,"y":35048.58305925013},"targetPosition":{"x":13979.784644191252,"y":34363.82107299544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ZEC","id":"2d6fec44-34a0-46da-a91e-4ef319e682f3"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"ETH","id":"7f7fb259-8ac1-4f90-9808-0c8373b26afb","savedPayload":{"position":{"x":14351.30342666857,"y":35132.80589380557},"targetPosition":{"x":13979.784644191252,"y":34363.82107299544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ETH","id":"47ad77a1-fa5c-4a01-937a-69e98d776a64"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"6056b409-5d73-43f2-a793-9db667f7fd32","savedPayload":{"position":{"x":14261.375389595392,"y":35167.003178657375},"targetPosition":{"x":13979.784644191252,"y":34363.82107299544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"bd6a2519-4b02-4a5c-a6d5-e60bbc2f14c2","savedPayload":{"position":{"x":14119.053568398796,"y":35190.863519337065},"targetPosition":{"x":13979.784644191252,"y":34363.82107299544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"4dce21fb-31ca-4764-a923-042d86d53d0e","savedPayload":{"position":{"x":13979.784644191252,"y":34363.82107299544},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ZEC/BCH","code":"{ \n\"codeName\": \"ZEC/BCH\"\n}","baseAsset":{"type":"Market Base Asset","name":"ZEC","id":"db5336e0-fde1-4860-a09a-fa86755af23e","savedPayload":{"position":{"x":14179.161253721988,"y":35181.56737876526},"targetPosition":{"x":13820.769477699116,"y":34412.07491881789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ZEC","id":"2d6fec44-34a0-46da-a91e-4ef319e682f3"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"BCH","id":"d303700a-2fba-4576-a438-52184296a251","savedPayload":{"position":{"x":14035.094900529532,"y":35238.781373906204},"targetPosition":{"x":13820.769477699116,"y":34412.07491881789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"BCH","id":"b32d4672-99bb-4e25-9d25-d34ff3b13c11"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"f481683c-dad0-46b7-8910-d97d3976d63b","savedPayload":{"position":{"x":13940.349778218224,"y":35254.788902348},"targetPosition":{"x":13820.769477699116,"y":34412.07491881789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"8e815d19-4db7-46e4-ab08-5fcbde28e58c","savedPayload":{"position":{"x":13796.13853747533,"y":35250.47891112038},"targetPosition":{"x":13820.769477699116,"y":34412.07491881789},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"b9176cf4-716e-4da0-9d8a-c6eb4f9b25f2","savedPayload":{"position":{"x":13820.769477699116,"y":34412.07491881789},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ZEC/LTC","code":"{ \n\"codeName\": \"ZEC/LTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"ZEC","id":"4df3f040-e71d-4311-8843-1ddbb11cda4c","savedPayload":{"position":{"x":13856.847050288461,"y":35252.997410133736},"targetPosition":{"x":13655.524993659383,"y":34428.368017231034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ZEC","id":"2d6fec44-34a0-46da-a91e-4ef319e682f3"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"LTC","id":"6367ab2a-bd6f-48b8-acb8-5a9cb256da27","savedPayload":{"position":{"x":13704.42005991001,"y":35281.003425204544},"targetPosition":{"x":13655.524993659383,"y":34428.368017231034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"LTC","id":"0cce3ed7-8028-4cc0-8547-e13ae9028159"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"99997647-203f-45b3-bcce-05469d7ffae2","savedPayload":{"position":{"x":13608.511357329384,"y":35278.22597827608},"targetPosition":{"x":13655.524993659383,"y":34428.368017231034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"64080366-0334-403f-a327-f3d40db2eebc","savedPayload":{"position":{"x":13467.927744802324,"y":35245.71995077794},"targetPosition":{"x":13655.524993659383,"y":34428.368017231034},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"12866bd7-426b-4c98-9aa4-4490ed681bf3","savedPayload":{"position":{"x":13655.524993659383,"y":34428.368017231034},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"BCH/USD","code":"{ \n\"codeName\": \"BCH/USD\"\n}","baseAsset":{"type":"Market Base Asset","name":"BCH","id":"367bce21-521e-4cdb-9b5f-e298b388f933","savedPayload":{"position":{"x":13526.94935758429,"y":35260.16805716986},"targetPosition":{"x":13490.340905317651,"y":34412.07221998414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"BCH","id":"b32d4672-99bb-4e25-9d25-d34ff3b13c11"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"USD","id":"6e69ba10-ad75-4f9a-ae60-01fadf048d3a","savedPayload":{"position":{"x":13372.030149864137,"y":35257.92165025447},"targetPosition":{"x":13490.340905317651,"y":34412.07221998414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"USD","id":"d005ba90-123d-4472-a4eb-9f45619eb9e3"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"4a26d8d7-fe00-41fa-aa0b-7bfa8d4fbf6d","savedPayload":{"position":{"x":13278.359830312618,"y":35236.38603098204},"targetPosition":{"x":13490.340905317651,"y":34412.07221998414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"53719dab-c543-4eea-9ce2-98c90fa0e5cd","savedPayload":{"position":{"x":13146.774510606741,"y":35177.21243830639},"targetPosition":{"x":13490.340905317651,"y":34412.07221998414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"3588ae52-59d7-4b6f-8686-1a914dfa31e3","savedPayload":{"position":{"x":13490.340905317651,"y":34412.07221998414},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"BCH/BTC","code":"{ \n\"codeName\": \"BCH/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"BCH","id":"d76cd664-6e43-4c39-8e09-2de80453d639","savedPayload":{"position":{"x":13201.933806429233,"y":35202.7580175221},"targetPosition":{"x":13331.33077506088,"y":34363.81811881196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"BCH","id":"b32d4672-99bb-4e25-9d25-d34ff3b13c11"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"BTC","id":"939b6455-01ea-42f2-8775-a138057b134c","savedPayload":{"position":{"x":13050.353587614913,"y":35170.276619858545},"targetPosition":{"x":13331.33077506088,"y":34363.81811881196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"1c6ca075-b84e-47a1-bf3a-b93ad5f2bb5c"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"9d44f614-2986-419e-a142-2ae3733e7545","savedPayload":{"position":{"x":12962.577377276548,"y":35130.90856539347},"targetPosition":{"x":13331.33077506088,"y":34363.81811881196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"8829c725-221f-471f-a867-08652052d024","savedPayload":{"position":{"x":12845.059612797635,"y":35047.22659506065},"targetPosition":{"x":13331.33077506088,"y":34363.81811881196},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"f9910370-f686-4db8-a743-4287c9f5cba0","savedPayload":{"position":{"x":13331.33077506088,"y":34363.81811881196},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"BCH/ETH","code":"{ \n\"codeName\": \"BCH/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"BCH","id":"7ca3e120-2245-48ca-b809-41a118b7782a","savedPayload":{"position":{"x":12894.196265675662,"y":35082.997819740485},"targetPosition":{"x":13184.787098938945,"y":34285.45258626688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"BCH","id":"b32d4672-99bb-4e25-9d25-d34ff3b13c11"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"ETH","id":"24faab30-308a-4462-954f-87043ed8a275","savedPayload":{"position":{"x":12751.860349266797,"y":35021.55804987697},"targetPosition":{"x":13184.787098938945,"y":34285.45258626688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ETH","id":"47ad77a1-fa5c-4a01-937a-69e98d776a64"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"541eac74-d345-4b38-b339-eb9ba1ea5855","savedPayload":{"position":{"x":12673.429171372107,"y":34965.82298979027},"targetPosition":{"x":13184.787098938945,"y":34285.45258626688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"7e7c61db-e2e1-4df1-a181-369ffd51978c","savedPayload":{"position":{"x":12574.475110744406,"y":34860.86752425738},"targetPosition":{"x":13184.787098938945,"y":34285.45258626688},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"68db74e2-c706-4575-a34b-44a9d6c3d1c4","savedPayload":{"position":{"x":13184.787098938945,"y":34285.45258626688},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"LTC/USD","code":"{ \n\"codeName\": \"LTC/USD\"\n}","baseAsset":{"type":"Market Base Asset","name":"LTC","id":"f613cc0b-951f-425d-8751-c93d6efec267","savedPayload":{"position":{"x":12615.744544835767,"y":34905.46518966861},"targetPosition":{"x":13056.345665046118,"y":34179.96838770539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"LTC","id":"0cce3ed7-8028-4cc0-8547-e13ae9028159"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"USD","id":"23773616-1111-411a-9d56-c2bec8042b3a","savedPayload":{"position":{"x":12488.12324577599,"y":34817.41574682679},"targetPosition":{"x":13056.345665046118,"y":34179.96838770539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"USD","id":"d005ba90-123d-4472-a4eb-9f45619eb9e3"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"066a4cae-381d-4e2e-a5c5-c602b81fe2b8","savedPayload":{"position":{"x":12422.032115150187,"y":34747.412631577245},"targetPosition":{"x":13056.345665046118,"y":34179.96838770539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d7164f0c-6436-42a8-a964-2ce9720d8583","savedPayload":{"position":{"x":12345.435021889973,"y":34625.16843483625},"targetPosition":{"x":13056.345665046118,"y":34179.96838770539},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"621416f7-e9ed-464d-af61-b86759365d71","savedPayload":{"position":{"x":13056.345665046118,"y":34179.96838770539},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"LTC/BTC","code":"{ \n\"codeName\": \"LTC/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"LTC","id":"56d14af3-de7b-431e-8412-8c3eb2fb5e43","savedPayload":{"position":{"x":12377.229087922311,"y":34676.988706810516},"targetPosition":{"x":12950.893127196307,"y":34051.38853285758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"LTC","id":"0cce3ed7-8028-4cc0-8547-e13ae9028159"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"BTC","id":"05bf6297-1c1a-449a-8e76-5c3a9dcfb116","savedPayload":{"position":{"x":12269.229152601318,"y":34565.695695778784},"targetPosition":{"x":12950.893127196307,"y":34051.38853285758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"BTC","id":"1c6ca075-b84e-47a1-bf3a-b93ad5f2bb5c"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"12d05dff-ac8c-432a-adf4-c7c939295610","savedPayload":{"position":{"x":12218.047334111934,"y":34484.13621388052},"targetPosition":{"x":12950.893127196307,"y":34051.38853285758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"c522218b-b225-47f0-b136-2c50afdae053","savedPayload":{"position":{"x":12166.757347859952,"y":34349.31820770312},"targetPosition":{"x":12950.893127196307,"y":34051.38853285758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"722d82d9-f206-4c1b-a913-c778b98a327f","savedPayload":{"position":{"x":12950.893127196307,"y":34051.38853285758},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"LTC/ETH","code":"{ \n\"codeName\": \"LTC/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"LTC","id":"d4e2b944-b0f7-4218-9de4-12a13792eb00","savedPayload":{"position":{"x":12187.869114220724,"y":34406.31079448563},"targetPosition":{"x":12872.573392795563,"y":33904.71794516922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"LTC","id":"0cce3ed7-8028-4cc0-8547-e13ae9028159"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"ETH","id":"7c633c7e-b558-4aa4-8eb2-382cc2624bae","savedPayload":{"position":{"x":12103.668139316167,"y":34276.080944199966},"targetPosition":{"x":12872.573392795563,"y":33904.71794516922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ETH","id":"47ad77a1-fa5c-4a01-937a-69e98d776a64"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"3ae4aeba-1e36-406f-afd5-52b9a11a0842","savedPayload":{"position":{"x":12069.332339527464,"y":34185.92669028524},"targetPosition":{"x":12872.573392795563,"y":33904.71794516922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"60824d63-1948-492b-b593-190635c95d92","savedPayload":{"position":{"x":12045.068038412981,"y":34043.81163959562},"targetPosition":{"x":12872.573392795563,"y":33904.71794516922},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"39b3394c-72e3-4c30-a9b7-30d5047fad5c","savedPayload":{"position":{"x":12872.573392795563,"y":33904.71794516922},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"LTC/BCH","code":"{ \n\"codeName\": \"LTC/BCH\"\n}","baseAsset":{"type":"Market Base Asset","name":"LTC","id":"56332175-5b5f-4162-a607-c6384fdde161","savedPayload":{"position":{"x":12054.98163346053,"y":34103.717834418516},"targetPosition":{"x":12824.381729521603,"y":33745.457126226946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"LTC","id":"0cce3ed7-8028-4cc0-8547-e13ae9028159"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"BCH","id":"512fb40d-f11b-4821-b967-a7d8ec8743b5","savedPayload":{"position":{"x":11997.903551976833,"y":33959.43584388355},"targetPosition":{"x":12824.381729521603,"y":33745.457126226946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"BCH","id":"b32d4672-99bb-4e25-9d25-d34ff3b13c11"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"29a78d2b-4f3d-4b10-a186-d3f58ea9dc4b","savedPayload":{"position":{"x":11981.904503451078,"y":33844.66112958509},"targetPosition":{"x":12824.381729521603,"y":33745.457126226946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"26930d3c-58e2-4a65-a09f-60bf49fd5c68","savedPayload":{"position":{"x":11976.7769608297,"y":33711.90299833998},"targetPosition":{"x":12824.381729521603,"y":33745.457126226946},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"2e881ea4-b1af-4b50-a041-fa0de2366e3a","savedPayload":{"position":{"x":12824.381729521603,"y":33745.457126226946},"targetPosition":{"x":13655.528543000233,"y":33581.02755429073},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"f845d768-ee58-42c2-bf53-e7dbec5d649d","savedPayload":{"position":{"x":13655.521943439591,"y":33582.725872709074},"targetPosition":{"x":13655.523934541932,"y":31887.673194104722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5},"uiObject":{}}},"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":"09ad8278-e7e0-4dad-846c-a0d01ed4a286","savedPayload":{"position":{"x":13410.27105755124,"y":32394.488273564264},"targetPosition":{"x":13355.442503835537,"y":32188.776917455005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":"b37512ae-9719-4fd1-a4e5-ac3d4f8b1b31","savedPayload":{"position":{"x":12944.912653776368,"y":32079.86703982491},"targetPosition":{"x":13150.158069321411,"y":32134.403988777867},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"6b272cd3-0c7c-4f22-881c-831baf0ed1ef","savedPayload":{"position":{"x":13150.158069321411,"y":32134.403988777867},"targetPosition":{"x":13355.442503835537,"y":32188.776917455005},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"af104caf-d9ae-4831-882e-8101b31c5379","savedPayload":{"position":{"x":13355.442503835537,"y":32188.776917455005},"targetPosition":{"x":13505.53907230522,"y":32038.230317847647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"eb5db476-3ad8-474b-bf43-cbd5967bc72d","savedPayload":{"position":{"x":13505.53907230522,"y":32038.230317847647},"targetPosition":{"x":13655.523934541932,"y":31887.673194104722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"9ca31596-7c9e-498d-a999-e85a5bb072cc","savedPayload":{"position":{"x":13655.523934541932,"y":31887.673194104722},"targetPosition":{"x":13655.304196270155,"y":31038.248717419447},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"E"}}}],"id":"0975e979-d4d5-4195-8fac-061788e6d425","savedPayload":{"position":{"x":13655.304196270155,"y":31038.248717419447},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"e"}}},{"type":"Crypto Exchanges","name":"Exchanges With No Historical Data","exchanges":[{"type":"Crypto Exchange","name":"Poloniex","code":"{ \n\"codeName\": \"poloniex\"\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":"0c232a81-4c3d-4668-ae3e-cdd93819231e","savedPayload":{"position":{"x":14318.736406767435,"y":31215.099344529},"targetPosition":{"x":14541.162012785302,"y":31249.33047567665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"4b921ee0-6a74-47a1-8027-7223dcefb12c","savedPayload":{"position":{"x":14391.54142768688,"y":31077.075908513336},"targetPosition":{"x":14541.162012785302,"y":31249.33047567665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"534af20f-cc39-46a8-847c-d78d59aafcb0","savedPayload":{"position":{"x":14610.20199753436,"y":31021.233914006436},"targetPosition":{"x":14541.162012785302,"y":31249.33047567665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"f7c3766b-8b5f-466e-abc7-3d0e1efeacd6","savedPayload":{"position":{"x":14742.373333544028,"y":31142.87006704624},"targetPosition":{"x":14541.162012785302,"y":31249.33047567665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"ca1b7306-bbf9-42c1-8f71-e6820851b86d","savedPayload":{"position":{"x":14749.586002174163,"y":31340.080173467162},"targetPosition":{"x":14541.162012785302,"y":31249.33047567665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"210ec456-911e-49ad-8ed5-deba22eace15","savedPayload":{"position":{"x":14639.258409300457,"y":31451.549882481457},"targetPosition":{"x":14541.162012785302,"y":31249.33047567665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"3bab42fe-22d0-49f5-a83b-6b6538d1440b","savedPayload":{"position":{"x":14541.162012785302,"y":31249.33047567665},"targetPosition":{"x":14271.398824546106,"y":31614.724647892468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"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\"baseAsset\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Tether","id":"488c24af-d8b7-4c53-b05b-2e32939f7dab","savedPayload":{"position":{"x":15191.405145615454,"y":30577.32609848534},"targetPosition":{"x":15243.21058492047,"y":31030.926538453168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4b921ee0-6a74-47a1-8027-7223dcefb12c"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"7a0c1e41-58e2-4b01-a0b3-65ac24429592","savedPayload":{"position":{"x":15289.723371078542,"y":30575.30781423144},"targetPosition":{"x":15243.21058492047,"y":31030.926538453168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"0c232a81-4c3d-4668-ae3e-cdd93819231e"}}},"superActions":[{"type":"Super Action","name":"Setup Market","id":"01c5fe0c-1d41-4e80-b21e-afd1f624a37a","savedPayload":{"position":{"x":15365.9148704786,"y":30589.120209449135},"targetPosition":{"x":15243.21058492047,"y":31030.926538453168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"dd999740-899c-4452-afe0-6f11160ed570","savedPayload":{"position":{"x":15431.642070915752,"y":30615.8610338536},"targetPosition":{"x":15243.21058492047,"y":31030.926538453168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"d4098b73-7e25-434e-8fd9-342393cbb400","savedPayload":{"position":{"x":15243.21058492047,"y":31030.926538453168},"targetPosition":{"x":15169.341424737566,"y":31479.479128179737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"XMR/BTC","code":"{ \n\"codeName\": \"XMR/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Monero","id":"2a86fd93-65eb-4cd5-84b0-ef7620a1ad6e","savedPayload":{"position":{"x":15533.535662830805,"y":30647.809822683077},"targetPosition":{"x":15378.546778815418,"y":31075.92061024351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"f7c3766b-8b5f-466e-abc7-3d0e1efeacd6"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"256fa6fe-79bf-4450-b621-41ff727a6829","savedPayload":{"position":{"x":15639.485295091996,"y":30702.796744087245},"targetPosition":{"x":15378.546778815418,"y":31075.92061024351},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"0c232a81-4c3d-4668-ae3e-cdd93819231e"}}},"superActions":[],"id":"cc8f2ba4-bccc-42cd-a6ac-b72188375be1","savedPayload":{"position":{"x":15378.546778815418,"y":31075.92061024351},"targetPosition":{"x":15169.341424737566,"y":31479.479128179737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"6ac59092-e874-4b13-aafb-f3fe69ed65d6","savedPayload":{"position":{"x":15772.83832915841,"y":30801.129398116303},"targetPosition":{"x":15493.142790437423,"y":31160.43138555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"0c232a81-4c3d-4668-ae3e-cdd93819231e"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"97b5115b-2a8b-451a-8df0-0d88bab90e4f","savedPayload":{"position":{"x":15856.685754767928,"y":30886.228550322507},"targetPosition":{"x":15493.142790437423,"y":31160.43138555188},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4b921ee0-6a74-47a1-8027-7223dcefb12c"}}},"superActions":[],"id":"eff0be38-f7e1-4f59-b181-4607d67cf442","savedPayload":{"position":{"x":15493.142790437423,"y":31160.43138555188},"targetPosition":{"x":15169.341424737566,"y":31479.479128179737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"XMR/USDT","code":"{ \n\"codeName\": \"XMR/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Monero","id":"3be25d99-d918-4fb0-8321-7c13795ce179","savedPayload":{"position":{"x":15953.088431160095,"y":31020.970018273663},"targetPosition":{"x":15575.980113055262,"y":31276.21069087875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"f7c3766b-8b5f-466e-abc7-3d0e1efeacd6"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"fd3547a8-a36f-4cc1-b9af-89740c29064d","savedPayload":{"position":{"x":16006.528348886579,"y":31127.819343252588},"targetPosition":{"x":15575.980113055262,"y":31276.21069087875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4b921ee0-6a74-47a1-8027-7223dcefb12c"}}},"superActions":[],"id":"c3bb1043-26f2-4895-b1c4-52e44b8423da","savedPayload":{"position":{"x":15575.980113055262,"y":31276.21069087875},"targetPosition":{"x":15169.341424737566,"y":31479.479128179737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETH/BTC","code":"{ \n\"codeName\": \"ETH/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ether","id":"950274cd-cbf5-43c3-a788-1fb4583c96f7","savedPayload":{"position":{"x":16056.5367659891,"y":31285.763081288216},"targetPosition":{"x":15618.952507553771,"y":31411.922555371395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"534af20f-cc39-46a8-847c-d78d59aafcb0"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"dbadce3f-239e-4502-ae69-89a690b25a10","savedPayload":{"position":{"x":16074.338290100251,"y":31403.8993591098},"targetPosition":{"x":15618.952507553771,"y":31411.922555371395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"0c232a81-4c3d-4668-ae3e-cdd93819231e"}}},"superActions":[],"id":"ff8c31a0-6a57-4722-b4bf-2deb6fd87f2c","savedPayload":{"position":{"x":15618.952507553771,"y":31411.922555371395},"targetPosition":{"x":15169.341424737566,"y":31479.479128179737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETH/USDT","code":"{ \n\"codeName\": \"ETH/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ether","id":"1574a760-0d1c-413b-8dbe-03322c18b3c2","savedPayload":{"position":{"x":16073.059882981282,"y":31568.963850498603},"targetPosition":{"x":15617.859662577357,"y":31553.97555925918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"534af20f-cc39-46a8-847c-d78d59aafcb0"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"0d4d4f85-35bd-4e72-a68f-8f4baa2d1b52","savedPayload":{"position":{"x":16053.476149339445,"y":31686.817315870467},"targetPosition":{"x":15617.859662577357,"y":31553.97555925918},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4b921ee0-6a74-47a1-8027-7223dcefb12c"}}},"superActions":[],"id":"c0486297-b35b-4be7-8165-b6543195710a","savedPayload":{"position":{"x":15617.859662577357,"y":31553.97555925918},"targetPosition":{"x":15169.341424737566,"y":31479.479128179737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETC/BTC","code":"{ \n\"codeName\": \"ETC/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"1b305431-4aab-4e06-9c05-d9d0825d3f61","savedPayload":{"position":{"x":16001.035884520661,"y":31844.00091362556},"targetPosition":{"x":15572.815179925776,"y":31689.03576277377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"210ec456-911e-49ad-8ed5-deba22eace15"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"8bceb4c1-8724-4d6b-9f49-15d364b30978","savedPayload":{"position":{"x":15945.978099955906,"y":31950.03539543975},"targetPosition":{"x":15572.815179925776,"y":31689.03576277377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"0c232a81-4c3d-4668-ae3e-cdd93819231e"}}},"superActions":[],"id":"76f4c309-9a8c-4257-84da-e146528ae9a1","savedPayload":{"position":{"x":15572.815179925776,"y":31689.03576277377},"targetPosition":{"x":15169.341424737566,"y":31479.479128179737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETC/ETH","code":"{ \n\"codeName\": \"ETC/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"04cfd300-57e8-4b1e-a907-72fd71af39b8","savedPayload":{"position":{"x":15847.492034656427,"y":32083.336186110224},"targetPosition":{"x":15488.22080525505,"y":31803.584869615363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"210ec456-911e-49ad-8ed5-deba22eace15"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"61e80b75-b315-4f35-98df-49e7403b8415","savedPayload":{"position":{"x":15762.338889439958,"y":32167.16622088192},"targetPosition":{"x":15488.22080525505,"y":31803.584869615363},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"534af20f-cc39-46a8-847c-d78d59aafcb0"}}},"superActions":[],"id":"826a13d0-3466-4625-83ac-6fc9d068b04b","savedPayload":{"position":{"x":15488.22080525505,"y":31803.584869615363},"targetPosition":{"x":15169.341424737566,"y":31479.479128179737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETC/USDT","code":"{ \n\"codeName\": \"ETC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"99a6cbdf-c947-48df-9679-a5dfff2289bd","savedPayload":{"position":{"x":15627.27679955502,"y":32263.585425435187},"targetPosition":{"x":15372.24850805311,"y":31886.45298700777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"210ec456-911e-49ad-8ed5-deba22eace15"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"b289d2f7-8954-4193-8b61-65ac92a17fff","savedPayload":{"position":{"x":15520.135417589177,"y":32317.06088617879},"targetPosition":{"x":15372.24850805311,"y":31886.45298700777},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"4b921ee0-6a74-47a1-8027-7223dcefb12c"}}},"superActions":[],"id":"03d14385-cb81-4a1a-a2f1-74dc79307352","savedPayload":{"position":{"x":15372.24850805311,"y":31886.45298700777},"targetPosition":{"x":15169.341424737566,"y":31479.479128179737},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"b16004a9-18c8-43f2-bcde-51162bd591f4","savedPayload":{"position":{"x":15169.341424737566,"y":31479.479128179737},"targetPosition":{"x":14271.398824546106,"y":31614.724647892468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":"","id":"7feac46c-3c33-442f-9916-43d26c2b9532","savedPayload":{"position":{"x":15153.289395009795,"y":31779.434874496914},"targetPosition":{"x":14945.395278373559,"y":31869.6884345744},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"be176761-ba52-4cd9-bd76-2d808bc245dd","savedPayload":{"position":{"x":14945.395278373559,"y":31869.6884345744},"targetPosition":{"x":14737.031719647102,"y":31959.74091926752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":"99ba3409-9f1b-47b3-82bc-5be26a4b2e0a","savedPayload":{"position":{"x":14686.368131303581,"y":32412.67669805783},"targetPosition":{"x":14711.893982102833,"y":32186.339251338108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"567557e4-f7c3-47b5-ae81-a6dc13c08e96","savedPayload":{"position":{"x":14711.893982102833,"y":32186.339251338108},"targetPosition":{"x":14737.031719647102,"y":31959.74091926752},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"625e9131-a43c-46e1-b48a-85840d9ddc21","savedPayload":{"position":{"x":14737.031719647102,"y":31959.74091926752},"targetPosition":{"x":14554.571958705055,"y":31824.54005771014},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"633f7964-aede-4f62-9ec0-2138214dcde7","savedPayload":{"position":{"x":14554.571958705055,"y":31824.54005771014},"targetPosition":{"x":14271.398824546106,"y":31614.724647892468},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"1298f3db-a526-48c3-af5e-f27a984f6c40","savedPayload":{"position":{"x":14272.135113788698,"y":31614.678518182183},"targetPosition":{"x":13372.749406371924,"y":31749.850114495723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},{"type":"Crypto Exchange","name":"Upbit","code":"{ \n\"codeName\": \"upbit\"\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":"b89f91ec-bce4-435f-85b1-3a02453e23f8","savedPayload":{"position":{"x":13247.689727796258,"y":32788.095295639985},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"d43b66ef-8578-4154-b5a3-3e060da39cce","savedPayload":{"position":{"x":13357.331308451734,"y":32831.126445082285},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"1fd6fad0-fe9a-473d-b22c-d9dd271a690f","savedPayload":{"position":{"x":13430.768127889307,"y":32923.2133039811},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"15ef7d8a-71b7-480a-a67b-28f071d21a70","savedPayload":{"position":{"x":13448.322849645969,"y":33039.68127286097},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"23253d8b-27bf-40a9-bb20-ad7de6746a6c","savedPayload":{"position":{"x":13405.29170020367,"y":33149.32285351645},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"769cdbbf-8d1d-4f91-be66-e7f262a51e04","savedPayload":{"position":{"x":13313.204841304856,"y":33222.759672954024},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"ADA","code":"{ \n\"codeName\": \"ADA\"\n}","id":"b4521769-763b-4cd7-942e-c882878a6147","savedPayload":{"position":{"x":13196.736872424985,"y":33240.31439471069},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"TRX","code":"{ \n\"codeName\": \"TRX\"\n}","id":"57a783eb-a5cf-46aa-98cc-2301b502a78e","savedPayload":{"position":{"x":13087.095291769509,"y":33197.28324526839},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"DASH","code":"{ \n\"codeName\": \"DASH\"\n}","id":"ab6ed7ef-f6d9-46b4-867e-4f0913a3f154","savedPayload":{"position":{"x":13013.658472331936,"y":33105.19638636957},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"EOS","code":"{ \n\"codeName\": \"EOS\"\n}","id":"42968b3c-3ded-423a-9bb9-10aa427173a2","savedPayload":{"position":{"x":12996.103750575274,"y":32988.7284174897},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"QTUM","code":"{ \n\"codeName\": \"QTUM\"\n}","id":"c4f72a51-71ac-4725-9173-a6e7f8dbfdab","savedPayload":{"position":{"x":13039.134900017572,"y":32879.08683683422},"targetPosition":{"x":13222.213300110621,"y":33014.204845175336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"1f29a3d4-316a-4384-8e46-21d9b5be7e0d","savedPayload":{"position":{"x":13222.739687287492,"y":33013.22760932597},"targetPosition":{"x":13040.808681674644,"y":32596.405314706757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"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":"d6a3056b-fb6f-4f21-923e-4a046e422e73","savedPayload":{"position":{"x":13734.207666433795,"y":34508.31936256202},"targetPosition":{"x":13100.305374046799,"y":34256.41789298974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"1fd6fad0-fe9a-473d-b22c-d9dd271a690f"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"88d53bba-fc72-4960-9eb6-7266487c2732","savedPayload":{"position":{"x":13687.043040530578,"y":34603.91615005975},"targetPosition":{"x":13100.305374046799,"y":34256.41789298974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b89f91ec-bce4-435f-85b1-3a02453e23f8"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"18539b41-b5f7-419b-b8ab-62cdbb763b51","savedPayload":{"position":{"x":13649.480612763793,"y":34692.721469991244},"targetPosition":{"x":13100.305374046799,"y":34256.41789298974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d21416aa-c0e8-4c94-920f-363f6e3da16a","savedPayload":{"position":{"x":13542.006345594236,"y":34701.12344769255},"targetPosition":{"x":13100.305374046799,"y":34256.41789298974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"3725e3fc-0c28-4e73-880a-849f6a95221c","savedPayload":{"position":{"x":13100.305374046799,"y":34256.41789298974},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETC/BTC","code":"{ \n\"codeName\": \"ETC/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"54fdbfae-e617-4569-8c71-6cc8b0c813cc","savedPayload":{"position":{"x":13542.772876032484,"y":34806.47220556944},"targetPosition":{"x":12989.85887908967,"y":34378.48717710061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"769cdbbf-8d1d-4f91-be66-e7f262a51e04"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"b7d1db89-5e42-491a-8ecd-6e2b239bdf02","savedPayload":{"position":{"x":13476.617244211744,"y":34857.25507937581},"targetPosition":{"x":12989.85887908967,"y":34378.48717710061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b89f91ec-bce4-435f-85b1-3a02453e23f8"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"d88ec3f6-1195-4e30-a523-5e8819d28c9c","savedPayload":{"position":{"x":13403.403208295016,"y":34931.670035812516},"targetPosition":{"x":12989.85887908967,"y":34378.48717710061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"c9eb8ae2-2afb-41c0-b250-888c5bc2213b","savedPayload":{"position":{"x":13325.675395853563,"y":34951.69151047004},"targetPosition":{"x":12989.85887908967,"y":34378.48717710061},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"d9fb7fd9-3bcd-417f-81c4-87720c8b354f","savedPayload":{"position":{"x":12989.85887908967,"y":34378.48717710061},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"QTUM/BTC","code":"{ \n\"codeName\": \"QTUM/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"QTUM","id":"f9f0396b-baa0-47d4-bdd6-125baef77502","savedPayload":{"position":{"x":13274.780624722685,"y":35008.52247475254},"targetPosition":{"x":12853.490857860163,"y":34470.46200614024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"QTUM","id":"c4f72a51-71ac-4725-9173-a6e7f8dbfdab"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"31adba0d-65b7-4d1a-a6e9-413ac8499b64","savedPayload":{"position":{"x":13213.018046399131,"y":35050.253349906365},"targetPosition":{"x":12853.490857860163,"y":34470.46200614024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b89f91ec-bce4-435f-85b1-3a02453e23f8"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"56af5ed2-227d-4f96-a2b5-c73a7a3001cb","savedPayload":{"position":{"x":13131.010870792892,"y":35101.47881661853},"targetPosition":{"x":12853.490857860163,"y":34470.46200614024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"03a03451-9037-4314-893e-009216e90057","savedPayload":{"position":{"x":13042.28209756237,"y":35107.48312372751},"targetPosition":{"x":12853.490857860163,"y":34470.46200614024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"56ff10ec-9527-4352-af1b-632451000a37","savedPayload":{"position":{"x":12853.490857860163,"y":34470.46200614024},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"XLM/BTC","code":"{ \n\"codeName\": \"XLM/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Stellar","id":"10d3291d-7499-45f5-ae3c-6cb84e752cef","savedPayload":{"position":{"x":12979.297994086157,"y":35150.44415395215},"targetPosition":{"x":12699.148352423043,"y":34527.054737231025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"23253d8b-27bf-40a9-bb20-ad7de6746a6c"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"d3031560-d597-4e09-be2c-e7328d7522eb","savedPayload":{"position":{"x":12909.437838534861,"y":35176.08127020971},"targetPosition":{"x":12699.148352423043,"y":34527.054737231025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b89f91ec-bce4-435f-85b1-3a02453e23f8"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"29144485-7c96-41cb-b3f8-63fac33a96d9","savedPayload":{"position":{"x":12817.617422144236,"y":35206.363201820575},"targetPosition":{"x":12699.148352423043,"y":34527.054737231025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"4ce96b67-5435-4a09-904f-2e9f61b57a46","savedPayload":{"position":{"x":12730.100314740612,"y":35190.56967075518},"targetPosition":{"x":12699.148352423043,"y":34527.054737231025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"f5b510df-8001-4133-bb9b-a3763ce3f259","savedPayload":{"position":{"x":12699.148352423043,"y":34527.054737231025},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"23e1d945-22ce-48ed-bce6-0672f17f029f","savedPayload":{"position":{"x":12658.768399539611,"y":35217.44752128944},"targetPosition":{"x":12536.053717672763,"y":34545.02953329756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b89f91ec-bce4-435f-85b1-3a02453e23f8"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"a07a9b25-079a-4ec3-98e1-b38e5035b112","savedPayload":{"position":{"x":12584.917104868435,"y":35225.55527833334},"targetPosition":{"x":12536.053717672763,"y":34545.02953329756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"d43b66ef-8578-4154-b5a3-3e060da39cce"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"b637f15d-0ee3-4dd6-9dfb-8805667da525","savedPayload":{"position":{"x":12488.529912546779,"y":35233.04074973258},"targetPosition":{"x":12536.053717672763,"y":34545.02953329756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"f3dead23-0c34-41e2-96b4-74e6e5ba4bd6","savedPayload":{"position":{"x":12407.344610459031,"y":35196.59547918918},"targetPosition":{"x":12536.053717672763,"y":34545.02953329756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"7c03b13a-3d28-4b40-a95a-9654adeba132","savedPayload":{"position":{"x":12536.053717672763,"y":34545.02953329756},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETH/USDT","code":"{ \n\"codeName\": \"ETH/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ether","id":"1d042587-8b3b-4c86-a092-3cf3c3ab8544","savedPayload":{"position":{"x":12331.571654915342,"y":35205.64617715277},"targetPosition":{"x":12373.160962499967,"y":34523.36661945711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"1fd6fad0-fe9a-473d-b22c-d9dd271a690f"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"2ed856f3-2bb2-406d-a90b-75507f1e21db","savedPayload":{"position":{"x":12257.901034230319,"y":35195.8491227481},"targetPosition":{"x":12373.160962499967,"y":34523.36661945711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"d43b66ef-8578-4154-b5a3-3e060da39cce"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"bf92835f-155d-45c6-b00e-d3f553effa3c","savedPayload":{"position":{"x":12162.606072857743,"y":35179.60789586418},"targetPosition":{"x":12373.160962499967,"y":34523.36661945711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"388d2198-a67e-4668-8ca0-0dbdd8a93b3b","savedPayload":{"position":{"x":12091.72823062692,"y":35126.2072487139},"targetPosition":{"x":12373.160962499967,"y":34523.36661945711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"40dc522f-9b34-4f4f-a893-15c2e2d61793","savedPayload":{"position":{"x":12373.160962499967,"y":34523.36661945711},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETC/USDT","code":"{ \n\"codeName\": \"ETC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"275dc810-3aaa-413b-9f59-6ba2e4c70397","savedPayload":{"position":{"x":12016.620852784685,"y":35115.43193846245},"targetPosition":{"x":12220.197565227567,"y":34463.33382974028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"769cdbbf-8d1d-4f91-be66-e7f262a51e04"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"ddc2fc4c-6c04-446e-9fb4-a3b1c3e14a4e","savedPayload":{"position":{"x":11947.315158548521,"y":35088.654851676714},"targetPosition":{"x":12220.197565227567,"y":34463.33382974028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"d43b66ef-8578-4154-b5a3-3e060da39cce"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"e5f1a474-53ce-4dc9-b426-84e8d73e0cb8","savedPayload":{"position":{"x":11858.711834307504,"y":35050.018908726786},"targetPosition":{"x":12220.197565227567,"y":34463.33382974028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"425a7a07-1dda-4d4a-8b1b-767097b7905a","savedPayload":{"position":{"x":11802.456617931886,"y":34981.44879527104},"targetPosition":{"x":12220.197565227567,"y":34463.33382974028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"ff3011a0-b67d-469a-a962-7385e950c3bf","savedPayload":{"position":{"x":12220.197565227567,"y":34463.33382974028},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ADA/BTC","code":"{ \n\"codeName\": \"ADA/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"ADA","id":"1d06ef6e-ea41-4d6f-b708-7056f2add035","savedPayload":{"position":{"x":11732.33589592835,"y":34952.715236054624},"targetPosition":{"x":12086.053064185833,"y":34368.41991470808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ADA","id":"b4521769-763b-4cd7-942e-c882878a6147"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"a446f18b-883c-4a6e-9d85-bd6559ec976b","savedPayload":{"position":{"x":11671.418668206876,"y":34910.22467786131},"targetPosition":{"x":12086.053064185833,"y":34368.41991470808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b89f91ec-bce4-435f-85b1-3a02453e23f8"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"c92dc72e-c54c-4ced-bf5e-8ea1da6dc724","savedPayload":{"position":{"x":11594.695189289214,"y":34851.44339297738},"targetPosition":{"x":12086.053064185833,"y":34368.41991470808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"6233c66d-11d6-4417-a166-cd67c7a8c4cf","savedPayload":{"position":{"x":11556.1639911485,"y":34771.61857070164},"targetPosition":{"x":12086.053064185833,"y":34368.41991470808},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"7f182652-593d-4725-8b94-0a229a7539f9","savedPayload":{"position":{"x":12086.053064185833,"y":34368.41991470808},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ADA/USDT","code":"{ \n\"codeName\": \"ADA/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"ADA","id":"45cfa06b-8fa5-4aa1-a907-f405dfa7483a","savedPayload":{"position":{"x":11495.296385680058,"y":34726.66035845425},"targetPosition":{"x":11978.526180974579,"y":34244.13244769025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ADA","id":"b4521769-763b-4cd7-942e-c882878a6147"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"19171d30-4711-43cd-b5a1-8e4243cd7cb8","savedPayload":{"position":{"x":11446.253630171179,"y":34670.92543652431},"targetPosition":{"x":11978.526180974579,"y":34244.13244769025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"d43b66ef-8578-4154-b5a3-3e060da39cce"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"5d97282e-1c68-4f0d-99c5-a5be3892cd5b","savedPayload":{"position":{"x":11385.93700980097,"y":34595.41221252754},"targetPosition":{"x":11978.526180974579,"y":34244.13244769025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d7060655-c190-49ae-ac6d-dbd5160ae8c5","savedPayload":{"position":{"x":11367.078642004708,"y":34508.88506203703},"targetPosition":{"x":11978.526180974579,"y":34244.13244769025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"b1976df8-9bdd-4c6a-905b-bdca56ad0e02","savedPayload":{"position":{"x":11978.526180974579,"y":34244.13244769025},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"TRX/BTC","code":"{ \n\"codeName\": \"TRX/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"TRX","id":"91584fbe-aab3-46b3-aa51-2d258f828276","savedPayload":{"position":{"x":11319.325163072754,"y":34450.380028116764},"targetPosition":{"x":11903.875058069174,"y":34097.66891025866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"TRX","id":"57a783eb-a5cf-46aa-98cc-2301b502a78e"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"31f97842-6feb-496e-9a69-59f7620b59be","savedPayload":{"position":{"x":11284.914549734347,"y":34384.64131327798},"targetPosition":{"x":11903.875058069174,"y":34097.66891025866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b89f91ec-bce4-435f-85b1-3a02453e23f8"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"fd0eb3dd-4bbf-4234-b183-8b0322c260ed","savedPayload":{"position":{"x":11244.631907653064,"y":34296.797629064626},"targetPosition":{"x":11903.875058069174,"y":34097.66891025866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"6b66aef6-5f80-4282-9322-c9dce800f4dc","savedPayload":{"position":{"x":11246.090198511703,"y":34208.37264799046},"targetPosition":{"x":11903.875058069174,"y":34097.66891025866},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"f6190996-60ce-4bf2-b2d2-8cb1eb64c1ea","savedPayload":{"position":{"x":11903.875058069174,"y":34097.66891025866},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"TRX/USDT","code":"{ \n\"codeName\": \"TRX/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"TRX","id":"e8203bec-9f6b-4e92-bdf1-7727da4ccf40","savedPayload":{"position":{"x":11214.730549604044,"y":34139.91556586862},"targetPosition":{"x":11866.465442721952,"y":33937.49605700388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"TRX","id":"57a783eb-a5cf-46aa-98cc-2301b502a78e"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"803b9d65-b6e7-4582-bd34-178fb0463d12","savedPayload":{"position":{"x":11196.811141438715,"y":34067.963830077475},"targetPosition":{"x":11866.465442721952,"y":33937.49605700388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"d43b66ef-8578-4154-b5a3-3e060da39cce"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"6edacac2-12cd-4f5b-9aa2-50a7df14ab50","savedPayload":{"position":{"x":11179.02580546548,"y":33972.97940646518},"targetPosition":{"x":11866.465442721952,"y":33937.49605700388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"7917f64f-fa38-4c6e-b943-1e391d5aa620","savedPayload":{"position":{"x":11200.270552417063,"y":33887.357256441006},"targetPosition":{"x":11866.465442721952,"y":33937.49605700388},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"ce53d715-ff4e-4450-9ed1-d64e95a05c98","savedPayload":{"position":{"x":11866.465442721952,"y":33937.49605700388},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"EOS/BTC","code":"{ \n\"codeName\": \"EOS/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"EOS","id":"3cdeeb37-07d7-48a8-b71e-f293b1a477eb","savedPayload":{"position":{"x":11187.684727216785,"y":33813.5035705229},"targetPosition":{"x":11868.526859236978,"y":33773.16071283228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"EOS","id":"42968b3c-3ded-423a-9bb9-10aa427173a2"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"845623fd-6724-44ce-8e47-1368e803e062","savedPayload":{"position":{"x":11187.378098409976,"y":33735.84793954449},"targetPosition":{"x":11868.526859236978,"y":33773.16071283228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"b89f91ec-bce4-435f-85b1-3a02453e23f8"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"41ae903d-6771-47f3-9be3-8886b903f15a","savedPayload":{"position":{"x":11202.441119704992,"y":33629.86929782321},"targetPosition":{"x":11868.526859236978,"y":33773.16071283228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"ae4ee8c7-0e54-4c94-91e3-888e4276906b","savedPayload":{"position":{"x":11233.1099004769,"y":33527.46185168839},"targetPosition":{"x":11868.526859236978,"y":33773.16071283228},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"dbda5c94-6f46-4d74-8a23-468c986f0eb3","savedPayload":{"position":{"x":11868.526859236978,"y":33773.16071283228},"targetPosition":{"x":12543.614187991812,"y":33863.824657713616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"5349f18e-6958-4875-b0b5-d16f2ffa483c","savedPayload":{"position":{"x":12543.614187991812,"y":33863.824657713616},"targetPosition":{"x":13040.808681674644,"y":32596.405314706757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"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":"9d0256c2-1fa1-489c-be5b-e1ead835e6d4","savedPayload":{"position":{"x":12597.644134479144,"y":33005.18782154179},"targetPosition":{"x":12623.12056216478,"y":32779.07827200644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":"5b47274c-20d5-424f-8568-f3ee6790dd08","savedPayload":{"position":{"x":12256.963761978683,"y":32508.842255324213},"targetPosition":{"x":12440.042162071732,"y":32643.960263665325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"5fca7c46-9673-43fd-97ca-60d6f9b3a57e","savedPayload":{"position":{"x":12440.042162071732,"y":32643.960263665325},"targetPosition":{"x":12623.12056216478,"y":32779.07827200644},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"35c9eff1-dc74-40bd-bea0-1ec917505395","savedPayload":{"position":{"x":12623.12056216478,"y":32779.07827200644},"targetPosition":{"x":12831.675389943466,"y":32688.0867308122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"2cad2b21-ca0a-4bf6-9cc8-6a648d7adbb0","savedPayload":{"position":{"x":12717.920326683687,"y":32737.308003416118},"targetPosition":{"x":13040.808681674644,"y":32596.405314706757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"af45e3a7-71e7-409b-8a11-b402602b49a0","savedPayload":{"position":{"x":13040.721265067,"y":32596.5532867679},"targetPosition":{"x":13372.749406371924,"y":31749.850114495723},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"18595bc5-bfe7-4acb-91e0-ace2c196052d","savedPayload":{"position":{"x":13372.749406371924,"y":31749.850114495723},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Exchanges tested with Historic Data and Trading Capabilities","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":13779.60594825515,"y":32703.378015500395},"targetPosition":{"x":13967.10918811067,"y":32921.46754061515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"04c5f172-6976-4557-b95f-38004b5201a6","savedPayload":{"position":{"x":14020.663671732107,"y":32638.731127153173},"targetPosition":{"x":13967.10918811067,"y":32921.46754061515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4175d47c-e12c-4902-b026-f4999a6d07a4","savedPayload":{"position":{"x":14221.637801200633,"y":32787.066779747984},"targetPosition":{"x":13967.10918811067,"y":32921.46754061515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"e3b61070-77b9-4dcf-9862-7f05ffa237f3","savedPayload":{"position":{"x":14230.986723817363,"y":33036.48409739341},"targetPosition":{"x":13967.10918811067,"y":32921.46754061515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"6dee1e7e-80f3-4597-a28a-881af206ec14","savedPayload":{"position":{"x":14041.683682959014,"y":33199.403581146136},"targetPosition":{"x":13967.10918811067,"y":32921.46754061515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"59378d33-4833-495a-89bb-f739710be7d9","savedPayload":{"position":{"x":13796.487580667377,"y":33152.9247840312},"targetPosition":{"x":13967.10918811067,"y":32921.46754061515},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"f4451bbc-50ea-4558-9b3c-abd3e757a76e","savedPayload":{"position":{"x":13967.10918811067,"y":32921.46754061515},"targetPosition":{"x":13392.30003663119,"y":32942.91239158136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"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":15108.435694089325,"y":32988.4275636521},"targetPosition":{"x":14714.619851268142,"y":33408.04507761204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":15396.29336109625,"y":32879.24797098905},"targetPosition":{"x":14714.619851268142,"y":33408.04507761204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14840.630855692656,"y":33338.09141738885},"targetPosition":{"x":14714.619851268142,"y":33408.04507761204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":14985.56847481597,"y":33310.07241372667},"targetPosition":{"x":14714.619851268142,"y":33408.04507761204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"a4562107-8fae-46ed-912c-062d82dbeec7","savedPayload":{"position":{"x":14714.619851268142,"y":33408.04507761204},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":15259.31209780535,"y":33219.35183572561},"targetPosition":{"x":14776.380640783731,"y":33532.44387702484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":15564.889552730645,"y":33182.20909675005},"targetPosition":{"x":14776.380640783731,"y":33532.44387702484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14915.605781983957,"y":33494.93326557199},"targetPosition":{"x":14776.380640783731,"y":33532.44387702484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":15063.055649141877,"y":33502.32113199207},"targetPosition":{"x":14776.380640783731,"y":33532.44387702484},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5489751f-5ce4-40d0-9854-5bcfdc810269","savedPayload":{"position":{"x":14776.380640783731,"y":33532.44387702484},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":15350.471025063263,"y":33479.512301478746},"targetPosition":{"x":14806.551686984994,"y":33667.865719584865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":15656.0211094247,"y":33516.554323373726},"targetPosition":{"x":14806.551686984994,"y":33667.865719584865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14950.782975028676,"y":33664.920730354774},"targetPosition":{"x":14806.551686984994,"y":33667.865719584865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":15092.184190420947,"y":33707.13772106542},"targetPosition":{"x":14806.551686984994,"y":33667.865719584865},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5f72971e-a0c3-4185-b7f5-6af0d1030895","savedPayload":{"position":{"x":14806.551686984994,"y":33667.865719584865},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":15376.674023876622,"y":33753.685100798335},"targetPosition":{"x":14803.427056557002,"y":33806.33405844803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":15664.46377496145,"y":33862.5541056349},"targetPosition":{"x":14803.427056557002,"y":33806.33405844803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14944.211754502645,"y":33837.91259923001},"targetPosition":{"x":14803.427056557002,"y":33806.33405844803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":15071.354580779118,"y":33912.90541067095},"targetPosition":{"x":14803.427056557002,"y":33806.33405844803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"4c38325e-3531-4e38-805e-aa05346bccce","savedPayload":{"position":{"x":14803.427056557002,"y":33806.33405844803},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":15336.421467201535,"y":34026.11661802795},"targetPosition":{"x":14767.196350861499,"y":33940.192726471694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":15589.740535685482,"y":34200.873846307724},"targetPosition":{"x":14767.196350861499,"y":33940.192726471694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14896.302596196281,"y":34004.63084943997},"targetPosition":{"x":14767.196350861499,"y":33940.192726471694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":15001.806744880849,"y":34107.850402837874},"targetPosition":{"x":14767.196350861499,"y":33940.192726471694},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"3deec998-a14d-4c9c-b07d-8aa628497aab","savedPayload":{"position":{"x":14767.196350861499,"y":33940.192726471694},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":15232.070029829818,"y":34281.15818492033},"targetPosition":{"x":14699.972950578833,"y":34061.46385496348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":15436.205351688639,"y":34511.45001530765},"targetPosition":{"x":14699.972950578833,"y":34061.46385496348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14809.8619415553,"y":34154.990822297856},"targetPosition":{"x":14699.972950578833,"y":34061.46385496348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":14887.603120147109,"y":34280.44588124826},"targetPosition":{"x":14699.972950578833,"y":34061.46385496348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5d83135c-7940-4ae1-ac6a-2b05f3548d75","savedPayload":{"position":{"x":14699.972950578833,"y":34061.46385496348},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":15069.696679269997,"y":34503.79132375515},"targetPosition":{"x":14605.670488798964,"y":34163.10561355146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":15212.7904501814,"y":34776.23645549298},"targetPosition":{"x":14605.670488798964,"y":34163.10561355146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14689.928260009186,"y":34280.26256683477},"targetPosition":{"x":14605.670488798964,"y":34163.10561355146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":14735.393199435755,"y":34420.66634432317},"targetPosition":{"x":14605.670488798964,"y":34163.10561355146},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"64b3d21b-4453-4513-a80b-15a7cb1f5578","savedPayload":{"position":{"x":14605.670488798964,"y":34163.10561355146},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":14858.741467833413,"y":34681.0762394653},"targetPosition":{"x":14489.769756678068,"y":34239.212301336156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":14932.482033298094,"y":34979.843859876564},"targetPosition":{"x":14489.769756678068,"y":34239.212301336156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14543.473762158987,"y":34373.16567617199},"targetPosition":{"x":14489.769756678068,"y":34239.212301336156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":14554.024971979197,"y":34520.36083009224},"targetPosition":{"x":14489.769756678068,"y":34239.212301336156},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"6024e186-610e-47a2-847a-50e2ebe5e889","savedPayload":{"position":{"x":14489.769756678068,"y":34239.212301336156},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":14611.46163195246,"y":34802.70216094764},"targetPosition":{"x":14359.001851188388,"y":34285.35652574086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":14611.567596283245,"y":35110.432349378905},"targetPosition":{"x":14359.001851188388,"y":34285.35652574086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14379.002381287013,"y":34428.289770130395},"targetPosition":{"x":14359.001851188388,"y":34285.35652574086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":14354.232910066445,"y":34573.72372364767},"targetPosition":{"x":14359.001851188388,"y":34285.35652574086},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"d9790708-5efe-4d9e-a6d2-98df66b3a30b","savedPayload":{"position":{"x":14359.001851188388,"y":34285.35652574086},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":14342.429843706177,"y":34861.590657386},"targetPosition":{"x":14221.167573958823,"y":34298.85193487602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":14268.899835428223,"y":35160.403836375306},"targetPosition":{"x":14221.167573958823,"y":34298.85193487602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14206.473559376984,"y":34442.41626250813},"targetPosition":{"x":14221.167573958823,"y":34298.85193487602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":14147.439960380554,"y":34577.63330528074},"targetPosition":{"x":14221.167573958823,"y":34298.85193487602},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"b5e9a8a5-577c-4b12-a5cf-6ccb2838c1f7","savedPayload":{"position":{"x":14221.167573958823,"y":34298.85193487602},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":14067.095313917844,"y":34854.306867974396},"targetPosition":{"x":14083.892832399448,"y":34278.911761835705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":13924.20925572287,"y":35126.84229355124},"targetPosition":{"x":14083.892832399448,"y":34278.911761835705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":14035.15043169329,"y":34414.70921866851},"targetPosition":{"x":14083.892832399448,"y":34278.911761835705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":13945.491005963388,"y":34531.85352442219},"targetPosition":{"x":14083.892832399448,"y":34278.911761835705},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"eedb6cd4-7a44-406e-9e14-3cae5348a68a","savedPayload":{"position":{"x":14083.892832399448,"y":34278.911761835705},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":13801.155430151639,"y":34781.209968346484},"targetPosition":{"x":13955.272403418394,"y":34226.660437188366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":13597.250918760763,"y":35011.62504014943},"targetPosition":{"x":13955.272403418394,"y":34226.660437188366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":13875.295885290798,"y":34346.6987052829},"targetPosition":{"x":13955.272403418394,"y":34226.660437188366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":13760.26909155538,"y":34439.00317400777},"targetPosition":{"x":13955.272403418394,"y":34226.660437188366},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"9c20010d-f1d6-401c-8599-f9c39849896c","savedPayload":{"position":{"x":13955.272403418394,"y":34226.660437188366},"targetPosition":{"x":14234.580163923016,"y":33724.19754611524},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"0e1257c5-49b1-4b52-8942-9bdef72854d2","savedPayload":{"position":{"x":14235.049545021508,"y":33724.76012863072},"targetPosition":{"x":13392.30003663119,"y":32942.91239158136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":13856.064724392758,"y":33826.26440577289},"targetPosition":{"x":13570.030665243416,"y":33858.516992164514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":13841.794439171412,"y":33953.57530897621},"targetPosition":{"x":13570.030665243416,"y":33858.516992164514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":13773.612018885979,"y":34062.12995179381},"targetPosition":{"x":13570.030665243416,"y":33858.516992164514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":13665.077336009119,"y":34130.33341753514},"targetPosition":{"x":13570.030665243416,"y":33858.516992164514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":13537.890054032398,"y":34144.68611132226},"targetPosition":{"x":13570.030665243416,"y":33858.516992164514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":13416.832616238065,"y":34102.26183750859},"targetPosition":{"x":13570.030665243416,"y":33858.516992164514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"59378d33-4833-495a-89bb-f739710be7d9"}}}],"id":"f7bbfcc0-2359-4de1-8ddc-5e117bde0c52","savedPayload":{"position":{"x":13570.030665243416,"y":33858.516992164514},"targetPosition":{"x":13417.008619989565,"y":33614.958839290935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":13147.844033385149,"y":34123.76184315842},"targetPosition":{"x":13282.392362544015,"y":33869.35328128949},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"cf3895fd-4f0c-4bd8-8afb-886a718cc891","savedPayload":{"position":{"x":13282.392362544015,"y":33869.35328128949},"targetPosition":{"x":13417.008619989565,"y":33614.958839290935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"a718949a-e315-4bda-8523-b0b03e3ca507","savedPayload":{"position":{"x":13417.008619989565,"y":33614.958839290935},"targetPosition":{"x":13406.453524940744,"y":33327.75416812584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"a913b30b-17d3-4b2b-9c39-9c7dc67f0000","savedPayload":{"position":{"x":13406.453524940744,"y":33327.75416812584},"targetPosition":{"x":13392.30003663119,"y":32942.91239158136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"22d2b36e-7a77-40a6-8948-b7d0fb744923","savedPayload":{"position":{"x":13392.432414988565,"y":32943.105098887485},"targetPosition":{"x":12549.202996990856,"y":32160.64277600411},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"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":11266.226063543843,"y":33283.31486262227},"targetPosition":{"x":11181.467025652419,"y":33008.30878224488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"27ae18d2-032b-41f8-bafc-a24fa4933194","savedPayload":{"position":{"x":11047.062224728681,"y":33262.776321542595},"targetPosition":{"x":11181.467025652419,"y":33008.30878224488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4bfba898-c803-4bb6-924f-c9b67c1667de","savedPayload":{"position":{"x":10906.519319178078,"y":33093.12513515012},"targetPosition":{"x":11181.467025652419,"y":33008.30878224488},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"dc376d73-e403-43ce-9044-5ff5fcd6de4e","savedPayload":{"position":{"x":11181.467025652419,"y":33008.30878224488},"targetPosition":{"x":11450.137791278516,"y":32499.753032461904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"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":9951.859233728233,"y":33907.593922708154},"targetPosition":{"x":10083.410408633456,"y":33346.73612182446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":9853.779982155258,"y":33876.13535232205},"targetPosition":{"x":10083.410408633456,"y":33346.73612182446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":9765.029491160094,"y":33828.81685242904},"targetPosition":{"x":10083.410408633456,"y":33346.73612182446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"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":9695.154509888283,"y":33771.8864124551},"targetPosition":{"x":10083.410408633456,"y":33346.73612182446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"b734f59f-f29c-450b-a6e4-6d2345a1082a","savedPayload":{"position":{"x":10083.410408633456,"y":33346.73612182446},"targetPosition":{"x":10351.866820670037,"y":32838.523903701695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":9312.942805668099,"y":33311.36056243874},"targetPosition":{"x":9802.612061822236,"y":33007.89803890347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":9265.839650858454,"y":33219.75834655216},"targetPosition":{"x":9802.612061822236,"y":33007.89803890347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":9236.548976236143,"y":33123.541206735536},"targetPosition":{"x":9802.612061822236,"y":33007.89803890347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"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":9227.403298260353,"y":33033.87621608941},"targetPosition":{"x":9802.612061822236,"y":33007.89803890347},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"e0b33e47-b62e-46df-ad42-5abc4a982629","savedPayload":{"position":{"x":9802.612061822236,"y":33007.89803890347},"targetPosition":{"x":10351.866820670037,"y":32838.523903701695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":9282.864535193336,"y":32438.395053593482},"targetPosition":{"x":9843.709782710757,"y":32569.96646808453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":9314.33660211958,"y":32340.317124581277},"targetPosition":{"x":9843.709782710757,"y":32569.96646808453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":9361.667352735267,"y":32251.573921044677},"targetPosition":{"x":9843.709782710757,"y":32569.96646808453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"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":9418.605935763191,"y":32181.70843269219},"targetPosition":{"x":9843.709782710757,"y":32569.96646808453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"8fe121d7-85a5-4782-807c-f43cfa34144f","savedPayload":{"position":{"x":9843.709782710757,"y":32569.96646808453},"targetPosition":{"x":10351.866820670037,"y":32838.523903701695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"dc6b67a9-30d0-4b69-9e10-dd6856e9dd4c","savedPayload":{"position":{"x":10351.678315272393,"y":32838.606464811026},"targetPosition":{"x":11450.137791278516,"y":32499.753032461904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":10378.062003891693,"y":32410.472934000718},"targetPosition":{"x":10573.82804521393,"y":32199.54466208136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":10286.161648624102,"y":32210.22849229913},"targetPosition":{"x":10573.82804521393,"y":32199.54466208136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":10362.787210914936,"y":32003.868446440752},"targetPosition":{"x":10573.82804521393,"y":32199.54466208136},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bfba898-c803-4bb6-924f-c9b67c1667de"}}}],"id":"c9dfde0f-314b-4f5c-9102-12c223b09066","savedPayload":{"position":{"x":10573.82804521393,"y":32199.54466208136},"targetPosition":{"x":10861.348074976915,"y":32188.79462684661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":10555.278901569025,"y":31701.50857860554},"targetPosition":{"x":10708.360132671685,"y":31945.149763777965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"6d6d1bcf-8831-43b9-9b6c-84fb424141a0","savedPayload":{"position":{"x":10708.360132671685,"y":31945.149763777965},"targetPosition":{"x":10861.348074976915,"y":32188.79462684661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"4754bc6a-51c8-4586-853b-9813b1a87dc3","savedPayload":{"position":{"x":10861.348074976915,"y":32188.79462684661},"targetPosition":{"x":11115.526230876683,"y":32323.04498013664},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"f3c4d9e5-4cd2-4629-a49f-5eeadcfa0687","savedPayload":{"position":{"x":11115.526230876683,"y":32323.04498013664},"targetPosition":{"x":11450.137791278516,"y":32499.753032461904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"3ff59cad-42ae-4527-b060-4585cc4e7e1a","savedPayload":{"position":{"x":11449.943003420161,"y":32499.7046812627},"targetPosition":{"x":12549.202996990856,"y":32160.64277600411},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"c16f8dd4-05f5-45db-8a47-713eb1116f72","savedPayload":{"position":{"x":12549.202996990856,"y":32160.64277600411},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Exchanges Not Tested Yet","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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"4f8afd83-39cb-40e4-a7d3-7db8f553511a","savedPayload":{"position":{"x":12856.05945063184,"y":31163.231723217963},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"2ea5ceab-359a-414d-ad7f-37e8414ca728","savedPayload":{"position":{"x":12890.198371726281,"y":31291.883667447146},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"875a00bb-b086-41ae-bbff-dd1fdd7cab87","savedPayload":{"position":{"x":12908.077514915494,"y":31424.302199859896},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"eecf368e-46ae-40ea-8538-c1e2afa74207","savedPayload":{"position":{"x":12909.230051913775,"y":31557.751161337816},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"f32b5dec-b374-4c15-89dc-842a1cb0aa78","savedPayload":{"position":{"x":12893.638199322226,"y":31690.60010102134},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"ae2e83bf-a9a0-4c78-8a1b-81882184d95a","savedPayload":{"position":{"x":12861.58072610511,"y":31820.451165347728},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"0165e585-afac-4822-b64c-e457e6d39d4c","savedPayload":{"position":{"x":12813.584050084748,"y":31945.212682462552},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"93b9fd6d-94d7-4cdb-b713-6faf9c0c700b","savedPayload":{"position":{"x":12750.573479012102,"y":32062.91140628078},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"1e6aca88-f82f-4587-8f61-cc59c2b73428","savedPayload":{"position":{"x":12674.424646349655,"y":32172.39135955127},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"43e86446-f8e8-42f1-933a-400cb9d2973b","savedPayload":{"position":{"x":12582.260359205686,"y":32272.86850621239},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"7e61effa-1cf5-4aa6-950f-5d78fcc6f5ae","savedPayload":{"position":{"x":12478.978063385264,"y":32357.408051912844},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"0de24041-98f7-4c85-91cf-f51448623cd8","savedPayload":{"position":{"x":12366.719469966725,"y":32429.62620672841},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"c891d366-b897-48e4-906b-1fde21d42f3c","savedPayload":{"position":{"x":12246.249577620454,"y":32487.520580921875},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"ad559406-2fb4-4bbb-9e23-588df56c2fe8","savedPayload":{"position":{"x":12119.43504760995,"y":32529.93716690725},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"39519fcb-3c13-4b63-9952-7528e24d81a8","savedPayload":{"position":{"x":11988.292769095367,"y":32556.15194434799},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"43ad7b8f-7379-4256-87bf-830b81d5a10d","savedPayload":{"position":{"x":11854.918347223738,"y":32565.73769611782},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"5618dfe2-8332-44e4-9788-12281ad393d8","savedPayload":{"position":{"x":11721.745517305926,"y":32558.562601493337},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"e07fcedb-0ad5-4645-9f27-ba5719281d53","savedPayload":{"position":{"x":11590.650982489522,"y":32535.149487438364},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"d4c25e40-6d00-47ae-bcf3-adce62a2a14d","savedPayload":{"position":{"x":11501.198237176975,"y":32470.659057594014},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"db4b7c0f-fbd9-422b-bcf9-977c93b4a9bc","savedPayload":{"position":{"x":11339.937788413175,"y":32437.520258036126},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"c2c1582f-2cc5-442e-bb42-e0379a45adc1","savedPayload":{"position":{"x":11226.931503897486,"y":32367.622229470162},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"4eb75dd1-9731-4f12-b3e8-683bbbf2e8b2","savedPayload":{"position":{"x":11123.222895124116,"y":32283.36908725906},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"b76d1cba-a5ed-40eb-9118-5c126b45710d","savedPayload":{"position":{"x":11030.815057797372,"y":32186.69360902866},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"b191511e-0de0-4e11-aca9-8393d645641f","savedPayload":{"position":{"x":10951.230079489036,"y":32079.17485313243},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"ebc44629-82ff-46d7-977f-b84daa7ecb63","savedPayload":{"position":{"x":10885.739041597797,"y":31962.520145344657},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"b66eeb46-4d63-4214-b54a-d4dc8f15a570","savedPayload":{"position":{"x":10835.380182072293,"y":31838.572860094908},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"06121640-476d-456c-a497-d44ec1e751f7","savedPayload":{"position":{"x":10800.9499154528,"y":31709.28934715533},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"b56abd83-c213-401b-a50f-d61bb1e11f46","savedPayload":{"position":{"x":10782.992133402204,"y":31576.711923532996},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"5cb52740-c6a2-4b2b-8df8-b5c84b9dacee","savedPayload":{"position":{"x":10781.790574005678,"y":31443.198190972897},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"ae49639e-f6b8-4e5d-997f-20ab8d2cf74d","savedPayload":{"position":{"x":10797.364704929641,"y":31310.318441523206},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"a78c3281-a96d-4e9e-b006-6bfd94554e5f","savedPayload":{"position":{"x":10829.468411338283,"y":31180.434762028763},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"4adfd82b-f67d-4c47-94e9-33d867215f47","savedPayload":{"position":{"x":10877.59542241009,"y":31055.598195061},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"d4ef0262-ee7d-4cd0-afc0-d7e6ee5055e2","savedPayload":{"position":{"x":10940.98641543644,"y":30937.777469851513},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"a8fd9004-9bd6-4929-86ed-34c65c2220b4","savedPayload":{"position":{"x":11018.641139622276,"y":30828.830307952732},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"b5b53d64-3211-4dd1-9bbb-1d8d85440c3f","savedPayload":{"position":{"x":11109.334129722729,"y":30730.474239813746},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"0555787c-92ab-40a8-b47a-afcca8cf7b78","savedPayload":{"position":{"x":11211.633912275202,"y":30644.25941231879},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"20a6c70c-1314-4b08-b974-eaa72dcfb620","savedPayload":{"position":{"x":11323.925378852686,"y":30571.5438794081},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"f39da7c4-7878-4d07-83ec-fcadad89d25c","savedPayload":{"position":{"x":11444.434929806845,"y":30513.471611307643},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"98acc3b9-ece3-4db7-9429-ad10130c09dd","savedPayload":{"position":{"x":11571.257987247573,"y":30470.953128043893},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"5d52f5ae-f5e7-4793-9340-234d6301da6f","savedPayload":{"position":{"x":11702.38879652447,"y":30444.64785622908},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"ad181ba5-ba1c-4c4f-9751-752298d8eb72","savedPayload":{"position":{"x":11835.753581769983,"y":30434.94533954882},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"2fa05975-7476-49e5-8a96-0f9350cda354","savedPayload":{"position":{"x":11969.028224965332,"y":30441.96626869773},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"b23a36d8-6521-4573-9a82-42be776ef918","savedPayload":{"position":{"x":12100.782510496285,"y":30465.598523491255},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"e9d59aa7-dab8-47df-b153-f23a2c60d89b","savedPayload":{"position":{"x":12228.714781449118,"y":30505.825225715143},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"174fa8a2-1f0a-4638-ae31-c232fb585be4","savedPayload":{"position":{"x":12350.353590776771,"y":30562.04289029973},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"ca50e110-a56e-41e3-b134-beea02fcbd1e","savedPayload":{"position":{"x":12463.868827951608,"y":30632.870019310274},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"85116028-fe56-42ac-a889-0cd97c28e3c1","savedPayload":{"position":{"x":12567.638055890668,"y":30717.19999492641},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"e6216dfa-09ca-4bf6-af3b-2e6c93ba4ed5","savedPayload":{"position":{"x":12659.990129359432,"y":30813.75445578607},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"uiObject":{}}},"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},"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},"uiObject":{}}},"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},"uiObject":{}}}],"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},"uiObject":{}}},"id":"321011fe-4125-4689-b909-c1ffac01a56a","savedPayload":{"position":{"x":12739.265416051316,"y":30920.661437673156},"targetPosition":{"x":11845.602594029217,"y":31500.4105408134},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"a7702fa4-c753-4c9f-8ea0-c7d554f1d43e","savedPayload":{"position":{"x":11842.602594029217,"y":31500.4105408134},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Exchanges With Historical Data by Id Only","exchanges":[{"type":"Crypto Exchange","name":"Kraken","code":"{ \n\"codeName\": \"kraken\"\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":"ce20aa9e-765b-42be-96ab-4120acc82706","savedPayload":{"position":{"x":11259.661584072092,"y":30538.72687201313},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"ed3fe790-e3b2-4337-8ddf-5b435fce6fbe","savedPayload":{"position":{"x":11217.633588542769,"y":30627.745370222754},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"74777dca-b325-42e6-ab7e-26524c929651","savedPayload":{"position":{"x":11141.235993481156,"y":30684.216586878974},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"25555ed6-3c5c-4ade-85f6-a64c3e371bb1","savedPayload":{"position":{"x":11033.16641999784,"y":30694.690215132276},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"e26e4a14-2213-4178-a7c0-955cc1ae621c","savedPayload":{"position":{"x":10941.93809778354,"y":30646.394923786735},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"a99904cd-ab9f-40fa-a3d9-587b76e99905","savedPayload":{"position":{"x":10890.614135277881,"y":30566.564249873885},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"ADA","code":"{ \n\"codeName\": \"ADA\"\n}","id":"3a99af9c-b243-478d-bc93-461e04790d56","savedPayload":{"position":{"x":10883.179390350435,"y":30467.832511104676},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"TRX","code":"{ \n\"codeName\": \"TRX\"\n}","id":"bb7eb046-8639-4f0b-8b4b-88b56e2295c5","savedPayload":{"position":{"x":10926.24339523349,"y":30378.3832209133},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"DASH","code":"{ \n\"codeName\": \"DASH\"\n}","id":"15ee3f12-9494-4e53-b4cc-e2c311f67aa7","savedPayload":{"position":{"x":11008.200993537936,"y":30322.454544848857},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"EOS","code":"{ \n\"codeName\": \"EOS\"\n}","id":"f3f34d88-0f4b-4d82-8405-24d24b668914","savedPayload":{"position":{"x":11106.855285165013,"y":30315.085824083155},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"QTUM","code":"{ \n\"codeName\": \"QTUM\"\n}","id":"d7624ab6-e7b1-44fb-a9c8-01643c00cba7","savedPayload":{"position":{"x":11196.349300681712,"y":30358.53332250662},"targetPosition":{"x":11071.820545556706,"y":30503.00445533997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"821b3105-448a-4d79-a74f-0d84893cf56e","savedPayload":{"position":{"x":11071.820545556706,"y":30503.00445533997},"targetPosition":{"x":11431.899692922956,"y":30376.832896113876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"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":"ce6df5a7-a674-4238-9a6f-fe084bcbe82a","savedPayload":{"position":{"x":10009.451318836474,"y":30219.27799331388},"targetPosition":{"x":10365.369158806894,"y":30074.85995800986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"74777dca-b325-42e6-ab7e-26524c929651"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"8f3aaa50-9d72-48af-83cf-d49f381b7d08","savedPayload":{"position":{"x":9984.4290333155,"y":30124.167094157063},"targetPosition":{"x":10365.369158806894,"y":30074.85995800986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"ce20aa9e-765b-42be-96ab-4120acc82706"}}},"superActions":[{"type":"Super Action","name":"Setup Market","id":"dae0c986-f3cd-4c37-8b2c-048fdc29cc28","savedPayload":{"position":{"x":9974.480679625778,"y":30057.580682175892},"targetPosition":{"x":10365.369158806894,"y":30074.85995800986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"3d042961-9dad-4579-a14f-3b945be85dfd","savedPayload":{"position":{"x":9991.129149715698,"y":29988.238116987057},"targetPosition":{"x":10365.369158806894,"y":30074.85995800986},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"f43663e0-c14d-4fb9-9655-25dff3f938c7","savedPayload":{"position":{"x":10365.369158806894,"y":30074.85995800986},"targetPosition":{"x":10745.44062647698,"y":30046.392368941728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"BTC/USDT","code":"{ \n\"codeName\": \"BTC/USDT\"\n}","baseAsset":{"type":"Market Base Asset","name":"Bitcoin","id":"5fd7461d-eda6-46f2-814a-e7ae0cf3c2a2","savedPayload":{"position":{"x":10228.98353829246,"y":29494.931168484436},"targetPosition":{"x":10530.858899093808,"y":29731.50618731013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"ce20aa9e-765b-42be-96ab-4120acc82706"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Tether","id":"0d1a00db-5ddd-4b34-a920-b68a9dd4f418","savedPayload":{"position":{"x":10297.790110792377,"y":29424.682954662898},"targetPosition":{"x":10530.858899093808,"y":29731.50618731013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Tether","id":"ed3fe790-e3b2-4337-8ddf-5b435fce6fbe"}}},"superActions":[{"type":"Super Action","name":"Setup Market","id":"e7080e30-396f-48f1-9986-027d30f842c1","savedPayload":{"position":{"x":10354.649835103322,"y":29385.875852521593},"targetPosition":{"x":10530.858899093808,"y":29731.50618731013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d0d5f45c-fa56-43f2-b37b-6dbed2f55591","savedPayload":{"position":{"x":10411.946170923677,"y":29367.319674556762},"targetPosition":{"x":10530.858899093808,"y":29731.50618731013},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"cbb2229a-28ab-4b24-bafd-56f58fc1e38e","savedPayload":{"position":{"x":10530.858899093808,"y":29731.50618731013},"targetPosition":{"x":10745.44062647698,"y":30046.392368941728},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"9826526e-8e01-4ab6-a5f3-1609a48dba34","savedPayload":{"position":{"x":10745.44062647698,"y":30046.392368941728},"targetPosition":{"x":11431.899692922956,"y":30376.832896113876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":"8b522126-169f-4b04-a3e0-b3bf9ae6c49c","savedPayload":{"position":{"x":10982.282388083555,"y":29954.503040707426},"targetPosition":{"x":11162.361097618552,"y":29892.084040514575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"ce20aa9e-765b-42be-96ab-4120acc82706"}}},{"type":"Exchange Account Asset","name":"Ether","id":"680d7f67-aa61-447c-9929-c8eda8c347cf","savedPayload":{"position":{"x":11099.307121269692,"y":29711.533238121898},"targetPosition":{"x":11162.361097618552,"y":29892.084040514575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"74777dca-b325-42e6-ab7e-26524c929651"}}}],"id":"67106ba1-a228-45bf-9ed9-d11875f8ee17","savedPayload":{"position":{"x":11162.361097618552,"y":29892.084040514575},"targetPosition":{"x":11306.969414310188,"y":30016.759921671837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":"2af8b76f-9927-42df-bc6a-39d58406226a","savedPayload":{"position":{"x":11378.303840111772,"y":29640.970555092335},"targetPosition":{"x":11342.737933110018,"y":29828.919132872896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"ffca2d2e-bb0d-40ec-8f10-ec3ba497754b","savedPayload":{"position":{"x":11342.737933110018,"y":29828.919132872896},"targetPosition":{"x":11306.969414310188,"y":30016.759921671837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"13e23c02-1eda-4c43-9a69-f1a9c391a937","savedPayload":{"position":{"x":11306.969414310188,"y":30016.759921671837},"targetPosition":{"x":11369.496558910712,"y":30196.7203330591},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"b9a30cc4-30b1-4a62-960a-05fab3322311","savedPayload":{"position":{"x":11369.496558910712,"y":30196.7203330591},"targetPosition":{"x":11431.899692922956,"y":30376.832896113876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"7f859060-6e77-4607-aadc-fdbd4fd785a5","savedPayload":{"position":{"x":11431.899692922956,"y":30376.832896113876},"targetPosition":{"x":12118.01584635942,"y":30707.24324586848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"dac871bb-7907-419b-97d4-3a53d87a49ca","savedPayload":{"position":{"x":12118.01584635942,"y":30707.24324586848},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Crypto Exchanges","name":"Exchanges tested with Trading History","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":11901.116625188759,"y":28854.45749695149},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Tether","code":"{ \n\"codeName\": \"USDT\"\n}","id":"4021d203-1155-47f0-acfd-e36eae2f6144","savedPayload":{"position":{"x":11756.823502081821,"y":28896.57973800517},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ether","code":"{ \n\"codeName\": \"ETH\"\n}","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467","savedPayload":{"position":{"x":11595.288975191052,"y":28846.75050075581},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Monero","code":"{ \n\"codeName\": \"XMR\"\n}","id":"36f9fe20-a89e-4546-bce0-196ded444757","savedPayload":{"position":{"x":11480.30334992711,"y":28722.80823769395},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Stellar","code":"{ \n\"codeName\": \"XLM\"\n}","id":"7a2e1a9d-630f-4c38-bf3c-16ddd1c8a3b2","savedPayload":{"position":{"x":11442.688906091673,"y":28558.16650733744},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"Ethereum Classic","code":"{ \n\"codeName\": \"ETC\"\n}","id":"0b232387-4c8a-4299-9058-02f6029403eb","savedPayload":{"position":{"x":11492.529342530584,"y":28396.59540292633},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"ADA","code":"{ \n\"codeName\": \"ADA\"\n}","id":"e85947dd-72f5-4cba-a308-4603273b21ae","savedPayload":{"position":{"x":11616.470179605178,"y":28281.585113895573},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"TRX","code":"{ \n\"codeName\": \"TRX\"\n}","id":"e76e5034-5cac-4c45-bae4-987687375eca","savedPayload":{"position":{"x":11781.098655807913,"y":28243.94906058629},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"DASH","code":"{ \n\"codeName\": \"DASH\"\n}","id":"8324b9a0-d5e3-4ea4-b5e8-f325d8597c21","savedPayload":{"position":{"x":11942.637375765165,"y":28293.768225650336},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"EOS","code":"{ \n\"codeName\": \"EOS\"\n}","id":"99125fb1-4c68-4350-8bfb-3927cfebfba5","savedPayload":{"position":{"x":12057.591677269165,"y":28417.69265322042},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},{"type":"Asset","name":"QTUM","code":"{ \n\"codeName\": \"QTUM\"\n}","id":"5218e2aa-060e-4607-903d-9f5a03146e8c","savedPayload":{"position":{"x":12094.032335821128,"y":28580.433151107998},"targetPosition":{"x":11756.344303137355,"y":28596.74065192273},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"cf57db5f-e0f5-4575-a977-9e75eee36351","savedPayload":{"position":{"x":11756.344303137355,"y":28596.74065192273},"targetPosition":{"x":12308.85602891788,"y":28943.806887536848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"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":"DASH/BTC","code":"{ \n\"codeName\": \"DASH/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"DASH","id":"9965c321-ad28-413d-9c4a-1f226314c1d2","savedPayload":{"position":{"x":9994.761251078904,"y":27453.00915598179},"targetPosition":{"x":10915.907271485767,"y":27123.154230925426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"DASH","id":"8324b9a0-d5e3-4ea4-b5e8-f325d8597c21"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"647a3f9e-22cc-4592-bed7-a9c191589bbd","savedPayload":{"position":{"x":9474.798652922069,"y":27395.286391077367},"targetPosition":{"x":10915.907271485767,"y":27123.154230925426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"1ac84db2-affa-401c-bb8e-efd3d064fc24","savedPayload":{"position":{"x":10670.886983053453,"y":27131.049577200854},"targetPosition":{"x":10915.907271485767,"y":27123.154230925426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"f659a6d4-3364-4175-9b27-b49680a20cf0","savedPayload":{"position":{"x":10430.250640262653,"y":27061.483865371578},"targetPosition":{"x":10915.907271485767,"y":27123.154230925426},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"7f8ba676-fc7b-4b75-977b-7d0b8336feb7","savedPayload":{"position":{"x":10915.907271485767,"y":27123.154230925426},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"XMR/BTC","code":"{ \n\"codeName\": \"XMR/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Monero","id":"b9cf45d9-a58c-4d91-abc4-a0b5d1821d5e","savedPayload":{"position":{"x":9956.567448877135,"y":27222.890889605093},"targetPosition":{"x":10909.823846397025,"y":27002.30767467265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"36f9fe20-a89e-4546-bce0-196ded444757"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"34ae1f20-278e-4217-9ae3-a9f939c44453","savedPayload":{"position":{"x":9446.821375232661,"y":27105.216960395534},"targetPosition":{"x":10909.823846397025,"y":27002.30767467265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"d8d84e7d-5eef-4e17-9f6f-6153d677316a","savedPayload":{"position":{"x":10665.474733848076,"y":26981.7093287482},"targetPosition":{"x":10909.823846397025,"y":27002.30767467265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"cb2c6b7b-15a9-40e1-8c5d-b1d17de2ed61","savedPayload":{"position":{"x":10434.547558403221,"y":26884.52015996604},"targetPosition":{"x":10909.823846397025,"y":27002.30767467265},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"01f62d09-d483-4a84-9b80-218344147ef0","savedPayload":{"position":{"x":10909.823846397025,"y":27002.30767467265},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETH/BTC","code":"{ \n\"codeName\": \"ETH/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ether","id":"c9df7ab9-ff9a-4844-83c3-1f74a0192ed4","savedPayload":{"position":{"x":9944.865846493918,"y":27002.181005993934},"targetPosition":{"x":10917.321644334872,"y":26893.82306336999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"dafa0133-7885-4756-80d4-29ea78b062f9","savedPayload":{"position":{"x":9452.237038754858,"y":26826.346956797002},"targetPosition":{"x":10917.321644334872,"y":26893.82306336999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"ae398ba3-9107-42e0-ae63-6b4fbcfee5a1","savedPayload":{"position":{"x":10677.004929492261,"y":26844.827054276546},"targetPosition":{"x":10917.321644334872,"y":26893.82306336999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"1e220a6f-44bd-409e-896f-67832db16783","savedPayload":{"position":{"x":10458.916478723304,"y":26721.54993623357},"targetPosition":{"x":10917.321644334872,"y":26893.82306336999},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"67d6cea0-6b00-4b35-9581-70c77017c827","savedPayload":{"position":{"x":10917.321644334872,"y":26893.82306336999},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"XLM/BTC","code":"{ \n\"codeName\": \"XLM/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Stellar","id":"80315ab1-8be7-47de-a5b5-a6b9470337f5","savedPayload":{"position":{"x":9958.248283579866,"y":26779.41343861481},"targetPosition":{"x":10936.7398819716,"y":26784.53471983031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"7a2e1a9d-630f-4c38-bf3c-16ddd1c8a3b2"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"f94a3141-6095-4bde-bdae-74bb75a0b483","savedPayload":{"position":{"x":9489.397685494012,"y":26547.399433311188},"targetPosition":{"x":10936.7398819716,"y":26784.53471983031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"3ebe35e3-39fd-408a-9306-f78b0ed343cb","savedPayload":{"position":{"x":10703.741519810428,"y":26707.8454284612},"targetPosition":{"x":10936.7398819716,"y":26784.53471983031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"7370fac3-802b-462f-89a9-80e5fe3fb1bb","savedPayload":{"position":{"x":10501.435525092254,"y":26560.136136623285},"targetPosition":{"x":10936.7398819716,"y":26784.53471983031},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"6292b1c6-4605-45a4-b843-2795df0c002c","savedPayload":{"position":{"x":10936.7398819716,"y":26784.53471983031},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":10000.423179472335,"y":26551.193938277607},"targetPosition":{"x":10971.712087616674,"y":26669.898866182142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":9561.687506416507,"y":26266.325165628834},"targetPosition":{"x":10971.712087616674,"y":26669.898866182142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":10749.188974770448,"y":26566.614741925663},"targetPosition":{"x":10971.712087616674,"y":26669.898866182142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":10565.400903073629,"y":26396.442927360204},"targetPosition":{"x":10971.712087616674,"y":26669.898866182142},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"b440afe2-4129-4553-8adc-a2bbbf88354d","savedPayload":{"position":{"x":10971.712087616674,"y":26669.898866182142},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETC/BTC","code":"{ \n\"codeName\": \"ETC/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"ba8d44f4-8fc0-4e62-b478-52ebb9bb9b6a","savedPayload":{"position":{"x":10068.08660313431,"y":26333.572978032604},"targetPosition":{"x":11019.026062998833,"y":26564.264590612325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"0b232387-4c8a-4299-9058-02f6029403eb"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"24ca155c-1ea3-4781-a891-ca8816b96577","savedPayload":{"position":{"x":9665.393586453234,"y":25999.705913593458},"targetPosition":{"x":11019.026062998833,"y":26564.264590612325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"861346e6-cb43-40db-9b1a-679810ea9f64","savedPayload":{"position":{"x":10810.01142674856,"y":26435.787394141415},"targetPosition":{"x":11019.026062998833,"y":26564.264590612325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"ba43edd0-8ccf-4ef6-899d-e0701b265177","savedPayload":{"position":{"x":10647.218307692883,"y":26245.446229843645},"targetPosition":{"x":11019.026062998833,"y":26564.264590612325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"1008634f-0070-42fa-96ab-28d81d3bf6b8","savedPayload":{"position":{"x":11019.026062998833,"y":26564.264590612325},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ETC/ETH","code":"{ \n\"codeName\": \"ETC/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"Ethereum Classic","id":"abf2b50c-f5f8-469a-9753-6615251db0ce","savedPayload":{"position":{"x":10157.396301325272,"y":26130.202608184485},"targetPosition":{"x":11075.116073655227,"y":26469.77144574129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ethereum Classic","id":"0b232387-4c8a-4299-9058-02f6029403eb"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"dac2f949-6aca-4abe-8589-dbdb075718a2","savedPayload":{"position":{"x":9796.185664270684,"y":25751.85761291224},"targetPosition":{"x":11075.116073655227,"y":26469.77144574129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"bed688c3-6ce6-42b2-94da-24bc47cee481","savedPayload":{"position":{"x":10882.461839860045,"y":26317.831736862136},"targetPosition":{"x":11075.116073655227,"y":26469.77144574129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"04f154ab-6fef-450a-bdeb-a5cf3f086196","savedPayload":{"position":{"x":10742.855286842248,"y":26109.898799359522},"targetPosition":{"x":11075.116073655227,"y":26469.77144574129},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5e30c127-368c-406c-acd5-6ef240a39d12","savedPayload":{"position":{"x":11075.116073655227,"y":26469.77144574129},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":10271.648003290573,"y":25935.30659729285},"targetPosition":{"x":11143.733004246656,"y":26379.142362103492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":9956.80434468651,"y":25517.591950001788},"targetPosition":{"x":11143.733004246656,"y":26379.142362103492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":10970.04019153076,"y":26205.83034335724},"targetPosition":{"x":11143.733004246656,"y":26379.142362103492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":10855.51287131095,"y":25983.104262654597},"targetPosition":{"x":11143.733004246656,"y":26379.142362103492},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5a15ce61-81d2-4de4-ab0f-49e2ca771169","savedPayload":{"position":{"x":11143.733004246656,"y":26379.142362103492},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"DASH/ETH","code":"{ \n\"codeName\": \"DASH/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"DASH","id":"5965969a-66c6-4556-aa34-34e577cd6ffa","savedPayload":{"position":{"x":10407.755186098546,"y":25755.002284621823},"targetPosition":{"x":11222.405483071616,"y":26297.101979408788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"DASH","id":"8324b9a0-d5e3-4ea4-b5e8-f325d8597c21"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"ba62d8a3-4bc6-460f-9e17-0a216f587d5c","savedPayload":{"position":{"x":10143.533707026763,"y":25303.566923248673},"targetPosition":{"x":11222.405483071616,"y":26297.101979408788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"c5aacc58-7bb4-4788-b7e0-15d62f22d868","savedPayload":{"position":{"x":11070.031628725505,"y":26104.765966597362},"targetPosition":{"x":11222.405483071616,"y":26297.101979408788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"a14ed5fa-dd31-40f7-a287-67c266852338","savedPayload":{"position":{"x":10982.130590823508,"y":25870.258370664924},"targetPosition":{"x":11222.405483071616,"y":26297.101979408788},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"da08eb3a-3706-445f-8c9e-a354bb1f7f2b","savedPayload":{"position":{"x":11222.405483071616,"y":26297.101979408788},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":10563.8752161221,"y":25591.72748763184},"targetPosition":{"x":11310.069780007532,"y":26224.75639729237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":10353.847495903927,"y":25112.674833858935},"targetPosition":{"x":11310.069780007532,"y":26224.75639729237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":11181.0800769934,"y":26016.006354399473},"targetPosition":{"x":11310.069780007532,"y":26224.75639729237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":11120.992929696828,"y":25772.885437444573},"targetPosition":{"x":11310.069780007532,"y":26224.75639729237},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"1ee54ea1-a9be-4b9a-b252-be3785551e7a","savedPayload":{"position":{"x":11310.069780007532,"y":26224.75639729237},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"QTUM/BTC","code":"{ \n\"codeName\": \"QTUM/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"QTUM","id":"3a075598-9d50-465c-b884-1e8768b6b5cc","savedPayload":{"position":{"x":10737.895007939758,"y":25447.689675489288},"targetPosition":{"x":11405.53967908419,"y":26163.08337369252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"QTUM","id":"5218e2aa-060e-4607-903d-9f5a03146e8c"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"a611e1a7-0b62-4ca2-85ad-d19bcdebd256","savedPayload":{"position":{"x":10584.900260192377,"y":24947.4966629169},"targetPosition":{"x":11405.53967908419,"y":26163.08337369252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"4e84ca8f-6762-4afa-bcc8-bb1e6260eae5","savedPayload":{"position":{"x":11301.68170869369,"y":25940.750287617873},"targetPosition":{"x":11405.53967908419,"y":26163.08337369252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"eeb430c7-ffe2-4205-a80b-e31373ee28a5","savedPayload":{"position":{"x":11270.220394637894,"y":25692.301413168647},"targetPosition":{"x":11405.53967908419,"y":26163.08337369252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"e6f853d1-9900-44de-937a-eedaa7202227","savedPayload":{"position":{"x":11405.53967908419,"y":26163.08337369252},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"QTUM/ETH","code":"{ \n\"codeName\": \"QTUM/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"QTUM","id":"01b3150d-dd24-4f58-9415-caa1e0c2ea97","savedPayload":{"position":{"x":10927.458182017992,"y":25324.836302857184},"targetPosition":{"x":11507.522074608676,"y":26112.916494254874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"QTUM","id":"5218e2aa-060e-4607-903d-9f5a03146e8c"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"a61683f5-2689-4eae-b654-2b279b8e805e","savedPayload":{"position":{"x":10833.56470486626,"y":24810.265652224916},"targetPosition":{"x":11507.522074608676,"y":26112.916494254874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"56a61f89-6f9a-42d4-84ee-d4414e3710cf","savedPayload":{"position":{"x":11430.202397623661,"y":25880.01378549179},"targetPosition":{"x":11507.522074608676,"y":26112.916494254874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"b0450f04-d8b9-42f1-b114-c212a240b5e2","savedPayload":{"position":{"x":11427.792259692145,"y":25629.595671724266},"targetPosition":{"x":11507.522074608676,"y":26112.916494254874},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"669b418e-1abb-4670-b633-a920c3cb9498","savedPayload":{"position":{"x":11507.522074608676,"y":26112.916494254874},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"XMR/ETH","code":"{ \n\"codeName\": \"XMR/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"Monero","id":"f8bd9ef5-5303-4aad-9564-d6e6721efea0","savedPayload":{"position":{"x":11129.989047987568,"y":25224.831081350796},"targetPosition":{"x":11614.628470331394,"y":26074.935587765416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Monero","id":"36f9fe20-a89e-4546-bce0-196ded444757"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"d15d3aea-c528-4bc3-aa5a-90b7c9a3ea6a","savedPayload":{"position":{"x":11096.467081551516,"y":24702.839204253145},"targetPosition":{"x":11614.628470331394,"y":26074.935587765416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"efb3d7ad-d632-43e0-8ac8-82d330f8ab66","savedPayload":{"position":{"x":11564.891330369253,"y":25834.62092220865},"targetPosition":{"x":11614.628470331394,"y":26074.935587765416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"1463dabf-8dac-4b55-b7fd-9781fed33a0d","savedPayload":{"position":{"x":11591.565140755552,"y":25585.61872822089},"targetPosition":{"x":11614.628470331394,"y":26074.935587765416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"91288db7-1a7e-48dc-a458-81a6899ebf0b","savedPayload":{"position":{"x":11614.628470331394,"y":26074.935587765416},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"XLM/ETH","code":"{ \n\"codeName\": \"XLM/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"Stellar","id":"a0c92c84-5f48-49c3-b236-83f3909a1279","savedPayload":{"position":{"x":11340.215392733548,"y":25149.23867231546},"targetPosition":{"x":11722.864542428666,"y":26049.8676486325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"Stellar","id":"7a2e1a9d-630f-4c38-bf3c-16ddd1c8a3b2"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"24cccf24-6f1b-456b-8987-63ce24969e7d","savedPayload":{"position":{"x":11367.514743380252,"y":24626.884316424563},"targetPosition":{"x":11722.864542428666,"y":26049.8676486325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"40d7e8ec-ef32-4bbe-b814-4585eda6c552","savedPayload":{"position":{"x":11701.402777375044,"y":25805.39849640728},"targetPosition":{"x":11722.864542428666,"y":26049.8676486325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"a59feb4d-da87-4ddb-8619-42e3b7ed812b","savedPayload":{"position":{"x":11756.593254639072,"y":25561.181571888188},"targetPosition":{"x":11722.864542428666,"y":26049.8676486325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"5631c4bd-45ff-442d-beff-c5f1bac8a0ab","savedPayload":{"position":{"x":11722.864542428666,"y":26049.8676486325},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":11557.636219039834,"y":25098.08778232895},"targetPosition":{"x":11833.122169045972,"y":26037.061990702314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":11645.38412923032,"y":24582.43209735011},"targetPosition":{"x":11833.122169045972,"y":26037.061990702314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":11840.033960438928,"y":25791.75126271952},"targetPosition":{"x":11833.122169045972,"y":26037.061990702314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":11923.382972506975,"y":25555.622609521208},"targetPosition":{"x":11833.122169045972,"y":26037.061990702314},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"35020f56-8c2c-4a78-8547-41f39c8d282f","savedPayload":{"position":{"x":11833.122169045972,"y":26037.061990702314},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":11787.697033698807,"y":25072.829794299418},"targetPosition":{"x":11952.31948772149,"y":26037.441511820674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":11934.719217514226,"y":24570.837167162754},"targetPosition":{"x":11952.31948772149,"y":26037.441511820674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":11987.662436944416,"y":25794.614931779513},"targetPosition":{"x":11952.31948772149,"y":26037.441511820674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":12097.868939164084,"y":25569.76516873706},"targetPosition":{"x":11952.31948772149,"y":26037.441511820674},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"32ed83e8-e8a0-4957-a3e4-b622fc75c7c6","savedPayload":{"position":{"x":11952.31948772149,"y":26037.441511820674},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ADA/BTC","code":"{ \n\"codeName\": \"ADA/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"ADA","id":"67422322-c341-44d9-bbba-f27c5c6c16d1","savedPayload":{"position":{"x":12014.329297211694,"y":25074.643869442007},"targetPosition":{"x":12065.845167665533,"y":26051.84510141485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ADA","id":"e85947dd-72f5-4cba-a308-4603273b21ae"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"dbfd33d6-f566-465f-b731-04cb5f2ed8f1","savedPayload":{"position":{"x":12218.42761383665,"y":24593.093012646852},"targetPosition":{"x":12065.845167665533,"y":26051.84510141485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"4d1d9175-7c0f-4063-9852-e67820aa69ba","savedPayload":{"position":{"x":12129.176843039355,"y":25814.795095151698},"targetPosition":{"x":12065.845167665533,"y":26051.84510141485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"5146b0e0-f657-493d-96ae-9e89256f809c","savedPayload":{"position":{"x":12264.73696228638,"y":25604.266145781425},"targetPosition":{"x":12065.845167665533,"y":26051.84510141485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"4fd6db87-2d01-4a4c-9352-51755493f622","savedPayload":{"position":{"x":12065.845167665533,"y":26051.84510141485},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"ADA/ETH","code":"{ \n\"codeName\": \"ADA/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"ADA","id":"cea4c52e-11b4-462e-9c8d-f2e280b7869c","savedPayload":{"position":{"x":12239.352152994177,"y":25103.074508412083},"targetPosition":{"x":12177.285222951397,"y":26079.636575587043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"ADA","id":"e85947dd-72f5-4cba-a308-4603273b21ae"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"765a32b2-b02a-43e8-8beb-1ffc4e1fbe39","savedPayload":{"position":{"x":12498.16208903695,"y":24648.423590467857},"targetPosition":{"x":12177.285222951397,"y":26079.636575587043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"78797230-60ab-4ab0-8892-1e21f4bb156e","savedPayload":{"position":{"x":12267.743724570742,"y":25851.574564892053},"targetPosition":{"x":12177.285222951397,"y":26079.636575587043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"14cfb0f2-6bca-4863-9feb-e96df248a3e2","savedPayload":{"position":{"x":12426.829548898384,"y":25658.213607909413},"targetPosition":{"x":12177.285222951397,"y":26079.636575587043},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"c2cb0e13-38eb-467b-a59c-0b531f8f884e","savedPayload":{"position":{"x":12177.285222951397,"y":26079.636575587043},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":12460.372063810815,"y":25158.190992478212},"targetPosition":{"x":12285.411291911569,"y":26120.856420118802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":12770.300031229333,"y":24736.305755754343},"targetPosition":{"x":12285.411291911569,"y":26120.856420118802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":12401.762080547762,"y":25904.867116887857},"targetPosition":{"x":12285.411291911569,"y":26120.856420118802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":12582.230633774558,"y":25731.28684857017},"targetPosition":{"x":12285.411291911569,"y":26120.856420118802},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"ee51c4d0-874a-4b66-b3a4-ebcf950bd41f","savedPayload":{"position":{"x":12285.411291911569,"y":26120.856420118802},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"TRX/BTC","code":"{ \n\"codeName\": \"TRX/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"TRX","id":"a9b4c86b-3260-42ce-a998-93e863302ba3","savedPayload":{"position":{"x":12668.241034859067,"y":25235.695612103013},"targetPosition":{"x":12382.666462734931,"y":26171.306372597322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"TRX","id":"e76e5034-5cac-4c45-bae4-987687375eca"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"b1891a98-74df-4b84-b104-244fbbd4aca2","savedPayload":{"position":{"x":13025.378009475697,"y":24852.619421578016},"targetPosition":{"x":12382.666462734931,"y":26171.306372597322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"44cdec68-bc70-4ecd-98fb-ac1f970e5cce","savedPayload":{"position":{"x":12523.36453971475,"y":25970.336414241938},"targetPosition":{"x":12382.666462734931,"y":26171.306372597322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"06183026-e8ff-4645-936f-a86f1f86c5df","savedPayload":{"position":{"x":12722.754717932043,"y":25818.871637167387},"targetPosition":{"x":12382.666462734931,"y":26171.306372597322},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"77999ceb-8ca9-495b-8082-2f7c1b88a408","savedPayload":{"position":{"x":12382.666462734931,"y":26171.306372597322},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"TRX/ETH","code":"{ \n\"codeName\": \"TRX/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"TRX","id":"223e1bde-30aa-4ec0-9d3e-e3e7985d8f4e","savedPayload":{"position":{"x":12869.607424251895,"y":25338.43697657739},"targetPosition":{"x":12477.115404325843,"y":26234.59098719049},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"TRX","id":"e76e5034-5cac-4c45-bae4-987687375eca"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"d9f2eaf6-fc03-47fc-ba89-5b55286b7175","savedPayload":{"position":{"x":13268.359810008624,"y":24999.62602847667},"targetPosition":{"x":12477.115404325843,"y":26234.59098719049},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"b94f2747-4998-4f9b-9f46-e9e506ad7f55","savedPayload":{"position":{"x":12640.233457261687,"y":26051.359873550235},"targetPosition":{"x":12477.115404325843,"y":26234.59098719049},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"d40080ac-3b1d-48af-a47c-1baa66b232a0","savedPayload":{"position":{"x":12855.854196413578,"y":25924.0583357571},"targetPosition":{"x":12477.115404325843,"y":26234.59098719049},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"45145dfb-3481-48ec-bf48-0a353c38e1c9","savedPayload":{"position":{"x":12477.115404325843,"y":26234.59098719049},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":13057.515331413111,"y":25463.81605076755},"targetPosition":{"x":12563.587245970586,"y":26308.431348396487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":13492.796836025473,"y":25173.69767345918},"targetPosition":{"x":12563.587245970586,"y":26308.431348396487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":12746.917958670083,"y":26145.438380600783},"targetPosition":{"x":12563.587245970586,"y":26308.431348396487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":12975.84570333004,"y":26044.01749794428},"targetPosition":{"x":12563.587245970586,"y":26308.431348396487},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"2cb30869-9de4-4855-bf78-58ac6a10a285","savedPayload":{"position":{"x":12563.587245970586,"y":26308.431348396487},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":13229.564482978692,"y":25610.256317862815},"targetPosition":{"x":12640.908004450692,"y":26391.82904555424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":13695.55848133722,"y":25372.664047704624},"targetPosition":{"x":12640.908004450692,"y":26391.82904555424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":12841.96244113309,"y":26251.306405843407},"targetPosition":{"x":12640.908004450692,"y":26391.82904555424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":13081.098386600235,"y":26177.124531378893},"targetPosition":{"x":12640.908004450692,"y":26391.82904555424},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"04b82448-a05a-4991-aa02-6a29f23d0ccc","savedPayload":{"position":{"x":12640.908004450692,"y":26391.82904555424},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"EOS/BTC","code":"{ \n\"codeName\": \"EOS/BTC\"\n}","baseAsset":{"type":"Market Base Asset","name":"EOS","id":"7093a2ef-f4ea-4683-9c53-2463c88a0fe1","savedPayload":{"position":{"x":13383.461317103234,"y":25775.738504372217},"targetPosition":{"x":12708.036616871777,"y":26483.663181471886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"EOS","id":"99125fb1-4c68-4350-8bfb-3927cfebfba5"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Bitcoin","id":"2e70c76d-84cd-4abe-a6e8-e9795194c1cb","savedPayload":{"position":{"x":13873.869018731224,"y":25593.855928328794},"targetPosition":{"x":12708.036616871777,"y":26483.663181471886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Bitcoin","id":"20119f66-f7e7-46b3-a18a-f5d5b752f532"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"d900c191-4de7-49d5-8b00-5059119330cb","savedPayload":{"position":{"x":12924.07195783491,"y":26367.54129385851},"targetPosition":{"x":12708.036616871777,"y":26483.663181471886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"e45f1f82-2750-4f44-b3bb-19c21c3c539e","savedPayload":{"position":{"x":13170.183015235532,"y":26321.592558054926},"targetPosition":{"x":12708.036616871777,"y":26483.663181471886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"6b13a1f3-b7f9-416b-b108-4606d8c4e847","savedPayload":{"position":{"x":12708.036616871777,"y":26483.663181471886},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Market","name":"EOS/ETH","code":"{ \n\"codeName\": \"EOS/ETH\"\n}","baseAsset":{"type":"Market Base Asset","name":"EOS","id":"4017e724-9c30-4869-800d-4178cea09b50","savedPayload":{"position":{"x":13517.124127696841,"y":25958.025825514494},"targetPosition":{"x":12764.06428386006,"y":26582.703151126665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Asset","name":"EOS","id":"99125fb1-4c68-4350-8bfb-3927cfebfba5"}}},"quotedAsset":{"type":"Market Quoted Asset","name":"Ether","id":"38a18744-ff7b-408d-9b9a-a438a023e557","savedPayload":{"position":{"x":14025.308370260733,"y":25834.30049233144},"targetPosition":{"x":12764.06428386006,"y":26582.703151126665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Asset","name":"Ether","id":"4bb91b8c-edd9-4cf5-ba96-4ec88e715467"}}},"superActions":[{"type":"Super Action","name":"Install Market","id":"29814ce8-c981-468c-ad2d-e6ba9e479db5","savedPayload":{"position":{"x":12992.126602340906,"y":26492.587213272618},"targetPosition":{"x":12764.06428386006,"y":26582.703151126665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"shortcutKey":"p"},"referenceParent":{"type":"Master Script","name":"Setup Market","id":"95b24e48-3b10-47cb-b149-8667571f4a83"}}},{"type":"Super Action","name":"Uninstall Market","id":"464f96bb-e7df-46be-be50-3681a51f9c93","savedPayload":{"position":{"x":13241.88244370699,"y":26475.4716671306},"targetPosition":{"x":12764.06428386006,"y":26582.703151126665},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"1d8f7db5-665f-4b7c-be84-737c0e25dc0b","savedPayload":{"position":{"x":12764.06428386006,"y":26582.703151126665},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":13628.808351211144,"y":26154.845815581142},"targetPosition":{"x":12808.271507546233,"y":26687.741665269514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"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":14147.873227084296,"y":26090.915528938116},"targetPosition":{"x":12808.271507546233,"y":26687.741665269514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":4},"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":13045.252112564543,"y":26624.943786734744},"targetPosition":{"x":12808.271507546233,"y":26687.741665269514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":1},"uiObject":{"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":13295.253156044557,"y":26636.846996264852},"targetPosition":{"x":12808.271507546233,"y":26687.741665269514},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"1b1de484-ece3-4d3d-90c2-e8ca597943d7","savedPayload":{"position":{"x":12808.271507546233,"y":26687.741665269514},"targetPosition":{"x":11887.036143324394,"y":27013.196263149934},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"5b18f8df-908e-406a-a1c9-20a85a1c1aff","savedPayload":{"position":{"x":11874.143573229252,"y":27038.884740152916},"targetPosition":{"x":12308.85602891788,"y":28943.806887536848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4},"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":12547.176914545802,"y":28026.286380278656},"targetPosition":{"x":12692.786240375077,"y":28325.900929482206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"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":13355.763432821268,"y":28333.750849024447},"targetPosition":{"x":13025.720690330085,"y":28326.95080034776},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"7bbd85d7-55cd-4fbb-9901-8b542c5171ed","savedPayload":{"position":{"x":13025.720690330085,"y":28326.95080034776},"targetPosition":{"x":12692.786240375077,"y":28325.900929482206},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false}}},"id":"dd6b185e-b8b7-4f09-8f85-391608875769","savedPayload":{"position":{"x":12692.786240375077,"y":28325.900929482206},"targetPosition":{"x":12517.02720690228,"y":28612.629931225325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"f21048d0-6018-46b7-a85f-f25e1faa54a9","savedPayload":{"position":{"x":12517.02720690228,"y":28612.629931225325},"targetPosition":{"x":12308.85602891788,"y":28943.806887536848},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{"isRunning":false}}},"id":"a9a5c7bc-797b-4cd1-b24e-a627cd396d3e","savedPayload":{"position":{"x":12321.535264716718,"y":28917.17172103813},"targetPosition":{"x":12611.818460332197,"y":30189.32243001666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":4},"uiObject":{"isRunning":false}}}],"id":"4255ce74-e993-421b-8c7b-e2e5eec97aee","savedPayload":{"position":{"x":12611.818460332197,"y":30189.32243001666},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"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},"uiObject":{"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},"uiObject":{},"referenceParent":{"type":"Master Script","name":"Delete Market Dependencies ","id":"c25d0331-8ac0-4834-aa77-743487455d45"}}}],"id":"c934df8f-d942-4723-ad44-f187e5df4351","savedPayload":{"position":{"x":13238.769838624787,"y":30494.890822183912},"targetPosition":{"x":12805.301618063546,"y":31038.2348844148},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"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},"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},"uiObject":{},"frame":{"position":{"x":545.122153209109,"y":361.59200310559015}}}},"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\": \"2019-01-15T17:05:03.405Z\",\n \"toDate\": \"2019-01-26T23:24:02.950Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"5616eafa-ff32-431b-bf00-e51c405571ba","savedPayload":{"position":{"x":12533.916860987083,"y":25296.38500068959},"targetPosition":{"x":13075.16665794887,"y":25732.008341425215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3309.2555728587336,\n \"maxValue\": 3863.9655728587336,\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"c3b255ac-f5d2-4ec2-b865-1fb8a36c527c","savedPayload":{"position":{"x":12678.624054864762,"y":25161.901436969656},"targetPosition":{"x":13075.16665794887,"y":25732.008341425215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"acac1cc0-ab80-4d71-bd4e-5cddf4d2289b","savedPayload":{"position":{"x":12864.365897919291,"y":25088.805289630673},"targetPosition":{"x":13075.16665794887,"y":25732.008341425215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"287f7f87-2c30-455d-a9b2-9c0b1cafd978","savedPayload":{"position":{"x":116851.30793147205,"y":44938.5279274223},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5f46714a-9158-46d5-a678-e7b8d72d939c","savedPayload":{"position":{"x":116905.04964502223,"y":44954.655861537496},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5f01aacf-3f1a-46ff-8f97-e95db46cec9e","savedPayload":{"position":{"x":116952.7859375822,"y":44984.143628607286},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1507031d-38dd-4265-ae59-f25bdc0e5d9d","savedPayload":{"position":{"x":116991.26365970197,"y":45024.9816860367},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8eaac578-d1db-45ba-9506-b90015a0c52b","savedPayload":{"position":{"x":117017.8606182065,"y":45074.38698770001},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"18df20a7-047e-4b2e-8396-19c4fb6354e6","savedPayload":{"position":{"x":117030.76427432726,"y":45128.99264393498},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1f25a14f-5929-4b48-a87c-f2f5cfab9566","savedPayload":{"position":{"x":117029.09526522394,"y":45185.077369509294},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6056b861-552e-4151-ab63-84df43f812e8","savedPayload":{"position":{"x":117012.96733110875,"y":45238.81908305948},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4fa2e4bd-6a76-493e-98d6-075353048679","savedPayload":{"position":{"x":116983.47956403895,"y":45286.55537561946},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"dfd7ff8a-6189-440f-83d7-a006bb22f2bd","savedPayload":{"position":{"x":116942.64150660954,"y":45325.03309773923},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"b000d5fe-3354-40a5-a963-c4af02b6b30a","savedPayload":{"position":{"x":116893.23620494624,"y":45351.63005624377},"targetPosition":{"x":116816.9268773045,"y":45150.696315341746},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"703353f4-4cfe-4e80-86cc-1b2d52872693","savedPayload":{"position":{"x":116816.9268773045,"y":45150.696315341746},"targetPosition":{"x":116603.08948028172,"y":45172.399986748525},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"63bc46e2-668a-4a46-aae9-acefc9fc3b90","savedPayload":{"position":{"x":13051.155429604592,"y":25037.90327119584},"targetPosition":{"x":13075.16665794887,"y":25732.008341425215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 13895.57041951387,\n \"maxValue\": 13440.748806704145,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"58b9ac53-607e-49a3-9a7f-f1f9b179133a","savedPayload":{"position":{"x":115611.66758192182,"y":45454.955560850285},"targetPosition":{"x":115784.17230066739,"y":45342.92968663451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"37e98050-e509-461d-85eb-e431f68e23f8","savedPayload":{"position":{"x":117003.1728337034,"y":45426.83176105608},"targetPosition":{"x":115578.76589485316,"y":45353.69458021375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"8bd23b4c-d255-43a1-9206-0376ee54b41e","savedPayload":{"position":{"x":116955.15510823007,"y":45527.195479396236},"targetPosition":{"x":115578.76589485316,"y":45353.69458021375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"5dc0809d-7628-4b20-9e6d-cbb60bcd5430","savedPayload":{"position":{"x":115578.76589485316,"y":45353.69458021375},"targetPosition":{"x":115784.17230066739,"y":45342.92968663451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"0270d6bf-9b75-451a-8f7e-33b71dbb33e0","savedPayload":{"position":{"x":13246.81064600151,"y":25059.16345051429},"targetPosition":{"x":13075.16665794887,"y":25732.008341425215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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 \"offset\": -27,\n \"minValue\": 1158.4725017382473,\n \"maxValue\": 1117.067289680198,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"0eddd8de-8d2a-4d12-8e01-34d3994a2491","savedPayload":{"position":{"x":116768.95755560664,"y":45454.9466897964},"targetPosition":{"x":116558.66539893212,"y":45410.50919932731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"dded2d50-d268-4d37-8a1b-8b4e92c0d895","savedPayload":{"position":{"x":116910.19035994232,"y":45651.49020817384},"targetPosition":{"x":116718.56500359433,"y":45554.13927329122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4f379090-bc31-4017-a787-4a91c9580824","savedPayload":{"position":{"x":116835.84196275962,"y":45734.260334155726},"targetPosition":{"x":116718.56500359433,"y":45554.13927329122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"0cee77d0-434a-4183-b1b9-f9a9aa73321f","savedPayload":{"position":{"x":116718.56500359433,"y":45554.13927329122},"targetPosition":{"x":116558.66539893212,"y":45410.50919932731},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"76d313ca-2843-468f-8004-4cdffa6eff2f","savedPayload":{"position":{"x":13429.858971697638,"y":25135.381232694464},"targetPosition":{"x":13075.16665794887,"y":25732.008341425215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","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":"5b075c7e-b0e4-476c-b971-7a54354f3962","savedPayload":{"position":{"x":116851.02494187624,"y":45718.30026018398},"targetPosition":{"x":116644.7234517968,"y":45657.9912483448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"247187f3-1aaf-4de1-a7db-c3a550cdbad0"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"dee50723-baec-4ddf-8218-e138d62976a4","savedPayload":{"position":{"x":116822.29131868598,"y":45779.09919344519},"targetPosition":{"x":116644.7234517968,"y":45657.9912483448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"4deb0411-a8ea-465e-adcd-e0515f291a2d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"0138e512-cc81-4d6a-80ef-92684eea292e","savedPayload":{"position":{"x":116776.17611549652,"y":45828.04323723131},"targetPosition":{"x":116644.7234517968,"y":45657.9912483448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"cec4bf02-ebee-48ad-a0cc-25629e34fd65"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"9d9ae8e3-15a1-4f4c-b0b4-50c1d71b199d","savedPayload":{"position":{"x":116717.1934096996,"y":45860.34140752333},"targetPosition":{"x":116644.7234517968,"y":45657.9912483448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c9cbb548-60ef-491d-b083-5825573db463"}}}],"id":"410cf8e4-b837-48d5-8343-fbecbdedcccc","savedPayload":{"position":{"x":116644.7234517968,"y":45657.9912483448},"targetPosition":{"x":116488.28719660992,"y":45510.59660875055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"c239f870-0ed3-43e3-a57a-db4f80ca5839","savedPayload":{"position":{"x":13583.88034062748,"y":25258.769029755527},"targetPosition":{"x":13075.16665794887,"y":25732.008341425215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"453abeb5-a419-41bf-9711-77068846ba5a","savedPayload":{"position":{"x":116682.08936128585,"y":45888.28717053452},"targetPosition":{"x":116501.13554321448,"y":45772.299251148914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"456e8c88-ba2b-487d-aa2a-48f6c1144d22"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"895bb107-7077-4e9f-931e-fe952471a56d","savedPayload":{"position":{"x":116637.39061280739,"y":45938.528122673204},"targetPosition":{"x":116501.13554321448,"y":45772.299251148914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"6abfb364-1883-488b-ac98-ffa234013e95"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"eca1658c-1218-4383-bcda-b6687662bd3c","savedPayload":{"position":{"x":116579.3542687723,"y":45972.49743468243},"targetPosition":{"x":116501.13554321448,"y":45772.299251148914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"cdba5840-e1d7-4909-9422-423299403f3c"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"1bdb89fa-2f45-4b21-aae8-0bfe95a40400","savedPayload":{"position":{"x":116513.66133089768,"y":45986.86995362464},"targetPosition":{"x":116501.13554321448,"y":45772.299251148914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"0dbb4a2c-c32d-4bd1-a410-09ce23613604"}}}],"id":"b6cf69ff-17d8-40ea-9761-d549a02b50b4","savedPayload":{"position":{"x":116501.13554321448,"y":45772.299251148914},"targetPosition":{"x":116392.56192422169,"y":45586.801943953295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"47977408-c2a3-4a55-a9c9-591ba9ae8d1b","savedPayload":{"position":{"x":13696.62981038897,"y":25421.04023866025},"targetPosition":{"x":13075.16665794887,"y":25732.008341425215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","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":"acf4f933-aa96-4209-9887-b5cc194dcb1c","savedPayload":{"position":{"x":116472.10601183327,"y":46003.79376356107},"targetPosition":{"x":116331.15966793627,"y":45841.52358805096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"442bd8c3-1825-4415-84bd-e2f1148b3f92"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"7f6292c9-438d-4d00-ace8-e95f3e78aa9c","savedPayload":{"position":{"x":116415.06336483464,"y":46039.40651142939},"targetPosition":{"x":116331.15966793627,"y":45841.52358805096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"8ab46f29-e225-42ee-a17e-297b2ebcfdbe"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"ff56f19e-6e23-4726-a5e9-0ac63e2c3c01","savedPayload":{"position":{"x":116349.80763939218,"y":46055.64910002604},"targetPosition":{"x":116331.15966793627,"y":45841.52358805096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"2f5a9ed9-80b6-412f-9d24-47f49653be9b"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"794aad24-ea65-4f6a-a26e-15336e3ae393","savedPayload":{"position":{"x":116282.72652057558,"y":46050.93159161038},"targetPosition":{"x":116331.15966793627,"y":45841.52358805096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"ddb30433-09f1-44b5-afdc-28a05f218c25"}}}],"id":"71abf320-bd4c-4cc0-bf47-dbe3f6b813cd","savedPayload":{"position":{"x":116331.15966793627,"y":45841.52358805096},"targetPosition":{"x":116279.24467403625,"y":45632.95150188799},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"4c1907e2-52b4-452d-8f26-42c1803d8967","savedPayload":{"position":{"x":13759.14262818603,"y":25608.60510360828},"targetPosition":{"x":13075.16665794887,"y":25732.008341425215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"74eccf75-ffc8-4aca-991a-ebe92d5e5718","savedPayload":{"position":{"x":116204.45249161511,"y":45855.054994597},"targetPosition":{"x":116157.51573573993,"y":45645.30651983277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"3fe36661-8237-4666-9847-68eb1599680f","savedPayload":{"position":{"x":116129.1849650022,"y":46062.33990709219},"targetPosition":{"x":116093.28992131696,"y":45850.422405321224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"on\"\n}","id":"41ca4712-a337-4231-b041-6be1a39a878b","savedPayload":{"position":{"x":116061.94202706381,"y":46063.060104810065},"targetPosition":{"x":116093.28992131696,"y":45850.422405321224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"43d52462-2b86-4c1a-89ea-f43d71ce2939","savedPayload":{"position":{"x":115997.76763942852,"y":46042.965842968},"targetPosition":{"x":116093.28992131696,"y":45850.422405321224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"81da28fb-f6e8-494f-bed5-77c001fde05c","savedPayload":{"position":{"x":115942.94363828734,"y":46004.02408792006},"targetPosition":{"x":116093.28992131696,"y":45850.422405321224},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"85f5e808-bfe9-4004-b95b-23f28e862a96","savedPayload":{"position":{"x":116093.28992131696,"y":45850.422405321224},"targetPosition":{"x":116157.51573573993,"y":45645.30651983277},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"d001e67e-c669-47e8-b553-3286e3947d8f","savedPayload":{"position":{"x":13766.276273909032,"y":25806.162692109217},"targetPosition":{"x":13075.16665794887,"y":25732.008341425215},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"9e92e643-45ae-4c83-8c2e-ea50eab7dde0","savedPayload":{"position":{"x":13075.360476009651,"y":25732.03457137977},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-1445,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Binance ETH/BTC","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-07-01T08:31:41.025Z\",\n \"toDate\": \"2019-08-17T00:05:46.716Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"7b034d87-0e97-4d42-926f-5141a1440531","savedPayload":{"position":{"x":12967.209183044772,"y":25272.087813297345},"targetPosition":{"x":13300.923232508954,"y":25882.386916159085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0.017567,\n \"maxValue\": 0.028319,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"920c31c4-f4c5-4a62-8e45-7e28c0d11e0c","savedPayload":{"position":{"x":13154.337911834371,"y":25203.319023932545},"targetPosition":{"x":13300.923232508954,"y":25882.386916159085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"b0399c96-4de4-4527-9bae-4013e3eff465","savedPayload":{"position":{"x":13349.360941568304,"y":25190.89113872686},"targetPosition":{"x":13300.923232508954,"y":25882.386916159085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"fe97463f-3797-49fd-8d22-1af668a3ba64","savedPayload":{"position":{"x":152721.99951375724,"y":49292.055335822246},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"3c8cb383-3508-49ea-b036-d50e05e816f8"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8e3c2225-31b5-473d-9e64-6f2397f2e8ae","savedPayload":{"position":{"x":152775.74122730742,"y":49308.18326993744},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"688a534e-234d-4f54-9761-19d6bf0c36e7"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4548d6a9-4418-46d7-859f-a73c41a7093c","savedPayload":{"position":{"x":152823.47751986736,"y":49337.67103700723},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"73655286-686f-4283-b5ee-4dd456776b78"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3db09958-6e96-4ea4-b874-30c6e5acaf32","savedPayload":{"position":{"x":152861.95524198713,"y":49378.509094436646},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"603f3943-7ed0-4666-ab7d-092289ad5c16"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"af02c871-9a12-48fe-bf00-543ef73e4cbe","savedPayload":{"position":{"x":152888.55220049166,"y":49427.91439609996},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"f42c266c-5f1d-4fb0-a53c-3f3dd121d72a"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e55b5c4c-4cbe-430f-aff7-9e0aa4e74701","savedPayload":{"position":{"x":152901.45585661242,"y":49482.52005233493},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"1e852e91-1a64-4f41-8fe9-cc4160510eb7"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a76441d2-8f8f-42a4-b17b-8eba78112b29","savedPayload":{"position":{"x":152899.7868475091,"y":49538.60477790924},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"aaa498ca-88bd-4d0e-975b-20cec893d9f1"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7ce9d771-0a46-4c9d-ace0-00c6561b37dd","savedPayload":{"position":{"x":152883.6589133939,"y":49592.34649145943},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"2dff0170-4518-4dc2-8410-ef5c7883c025"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ce4bc697-1e0c-4d3d-a24e-89378ef96233","savedPayload":{"position":{"x":152854.17114632414,"y":49640.0827840194},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"1457d841-b6a7-4fe7-9970-cbb1778e5bb0"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6fc09e89-f17f-4143-b45f-60fab0a06aea","savedPayload":{"position":{"x":152813.33308889472,"y":49678.560506139176},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"a219becc-1d49-4af2-a18a-25cae7f547f1"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"944a498b-f329-4883-a6bf-4d0a22ba0fb2","savedPayload":{"position":{"x":152763.9277872314,"y":49705.157464643715},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"0356025f-afb2-49a5-98a0-768f6d6a0c4f"}}}],"id":"be0cd01a-3148-4ad8-92c7-8e66bfb7c57d","savedPayload":{"position":{"x":152687.61845958966,"y":49504.22372374169},"targetPosition":{"x":152473.7810625669,"y":49525.92739514847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"ae5aa4e2-ef77-4b32-b292-0e50bdd4f047","savedPayload":{"position":{"x":13542.740278431385,"y":25232.868809023934},"targetPosition":{"x":13300.923232508954,"y":25882.386916159085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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":"03472356-fd99-4ed4-ad20-a7f8fba7774f","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"92a22325-9015-4bda-bdc6-bcd80ac2613b","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"742e9d87-db75-423d-96c6-dbd519301c2d"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"24342f5f-f463-44a2-98cd-34ff28bea9c5","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"bc497a79-bc68-4c69-acc6-bbf0caa06e92"}}}],"id":"ceaa669c-7679-4695-bde1-94f49f7353cd","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"ce6cc385-c269-4e1b-912e-ca100819c798","savedPayload":{"position":{"x":13715.838489659172,"y":25326.870602867843},"targetPosition":{"x":13300.923232508954,"y":25882.386916159085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"fe0584a1-88a0-4106-a561-bdea23b75570","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"fcc05cb0-7117-4470-baed-9fb26e0d661a","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"1b59f070-e266-48d4-9140-7907a0d4b43f"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"25a6ee89-07ff-4252-8211-f3be0883879b","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"fde6601f-739b-4e84-a07e-965756c7d2dd"}}}],"id":"0c424caf-fe82-4c2f-88ea-91afc49c1ebe","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"9984c131-bd69-4816-b56a-f5ac6e91ee06","savedPayload":{"position":{"x":13856.14993932604,"y":25466.69111644185},"targetPosition":{"x":13300.923232508954,"y":25882.386916159085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","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":"c8319758-6277-4c84-99ab-7cf4ae966f1a","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"a97911bd-074c-47a0-97a2-48c340ded639"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"18402e29-a8b6-4f34-9eac-d9e36dd03b9f","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"3c1f8742-2932-41b7-ab61-f41b207220f6"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"9bdb2f4f-a27b-453c-9a1c-3dbab9cbd7e7","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"44f6bd73-82ba-4a27-a2ff-31afe6396246"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"29c2752e-d3d1-491b-b5b2-8a82af80232f","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"9f2da00a-ccf4-49d4-875d-cfcd42f523fa"}}}],"id":"ef4cc659-dcac-43e3-8293-8b4d15a3b7fd","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"a34a903f-4e96-4b61-9eec-0c4ea1db4e90","savedPayload":{"position":{"x":13952.744760841953,"y":25640.59331905595},"targetPosition":{"x":13300.923232508954,"y":25882.386916159085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"2aed1159-de2c-4c02-870a-ed4512c7a448","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c01aed23-fe08-4c48-82f9-6be921c9e110"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"f5e78cc1-a872-4927-949e-09d53b6b869b","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"6cb50d0c-6378-4c4a-a5d6-5dd96bd1647c"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"7bff440d-b78f-4e43-87e8-3461b34ad54f","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"98cdab2e-3cc5-446b-84f9-b01c47b42167"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"a20552d8-2772-482e-9841-521c29cdbcaf","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"1bc40d41-edcc-4996-b7a8-02c0ef8ecae5"}}}],"id":"2c5ca9f0-0642-4f8c-af60-73dca1fdc67e","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"517a9836-b7e3-4edf-b5a0-0c15a6980194","savedPayload":{"position":{"x":13993.10018445538,"y":25831.496752391125},"targetPosition":{"x":13300.923232508954,"y":25882.386916159085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","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":"0a12e7a1-6878-443b-a566-6f34c5645158","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"4e93196e-98ee-44b4-ba0a-6b7d3fd43cb1"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"911e6e07-1875-4932-9f5c-73e004a18350","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"cbc043d1-db94-42b8-87e7-6c066b36c032"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"ca06b124-be98-4726-b873-95ba8686fe32","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"cf5012a6-5218-475d-8593-c42bea7e8b5c"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"863e2d34-842f-4e2e-ab83-4cd10a647bd7","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7131925a-975b-452c-a9a8-77eab9e8d2c5"}}}],"id":"ac79388e-8e14-4645-a98f-c68780ed70d6","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"ff12eadf-f706-459f-838d-24dc6bbf4fee","savedPayload":{"position":{"x":13981.027256588335,"y":26028.818240445387},"targetPosition":{"x":13300.923232508954,"y":25882.386916159085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"2948b7b4-8ebd-4abc-866e-48e58828af7e","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"f866a916-7b4d-473d-acac-4e834ab7c12b","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"f8e4d013-aa86-4409-a9fc-67b80e181e27"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"0d8e4ae2-efc2-4743-90a5-60d95d4f28c4","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"04934268-e9c8-47e3-a305-dd780555913b"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"4eae9be3-a712-40ac-96d4-3962071a7667","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"45618385-298d-4ec9-b18e-70388bb4c0b8"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"dad7de96-9cdf-4749-bd01-e4a5bda4e85b","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"215cdb1b-31c8-49c8-918a-c3d617f84c73"}}}],"id":"f6746801-0fd7-44c6-bc06-7638ee1b4111","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"3bbb64d7-8871-4a22-8ba7-35b8467c6d9a","savedPayload":{"position":{"x":13911.580107509673,"y":26215.895050528197},"targetPosition":{"x":13300.923232508954,"y":25882.386916159085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"3f55933c-0d9a-47ad-8e15-8ab04d3a390f","savedPayload":{"position":{"x":13300.983251407972,"y":25882.60849853143},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-1445,"y":355},"width":240,"height":112.375,"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-03-21T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"cbc182a7-32bc-4e12-93d6-0c44a7f06c02","savedPayload":{"position":{"x":13377.49790136858,"y":25417.137743466},"targetPosition":{"x":13451.48976001937,"y":26107.860119989553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"e9341c63-a0f0-4abe-92de-fb0a1eb104a2","savedPayload":{"position":{"x":13575.167665522022,"y":25424.248830633493},"targetPosition":{"x":13451.48976001937,"y":26107.860119989553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"21d20d03-d350-448a-9b77-88db92d203cc","savedPayload":{"position":{"x":13762.767603023118,"y":25486.73700045358},"targetPosition":{"x":13451.48976001937,"y":26107.860119989553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"7ed944d5-f040-4bf3-92a5-c018d354c558","savedPayload":{"position":{"x":152721.99951375724,"y":49292.055335822246},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"529add57-8a11-47fe-aabc-b90292ca883f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5cbf6083-8270-4cb0-95ac-a1818fb9327a","savedPayload":{"position":{"x":152775.74122730742,"y":49308.18326993744},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6790ec3b-8a61-4627-a977-795183b3477b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6ee53404-81f8-4e2f-8671-865e75623069","savedPayload":{"position":{"x":152823.47751986736,"y":49337.67103700723},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"2c7374df-979b-4eb9-b1ac-bf1e7d4f23e0"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"aa235cec-b48b-4f64-ad83-f5025386522a","savedPayload":{"position":{"x":152861.95524198713,"y":49378.509094436646},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"9475a61f-243d-45bf-b51f-f97ed8429abd"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"da49e578-7fa1-4ab9-9c90-b5a0451cd2f9","savedPayload":{"position":{"x":152888.55220049166,"y":49427.91439609996},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"ccb3dc31-34a6-478c-bc64-6421ca72f0c2"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8b82a9b1-d4da-427b-ad4c-87ac9590c0a0","savedPayload":{"position":{"x":152901.45585661242,"y":49482.52005233493},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5520fc91-4c7a-4ed0-b8ad-03318274b91e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2fc8cafb-50f5-4648-9ea1-a1ce95ff1e17","savedPayload":{"position":{"x":152899.7868475091,"y":49538.60477790924},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"decc3b92-90b0-49ef-b630-4fa1cb5fbc4b"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"64e78f10-e83b-41c1-b52e-6edfd2df364b","savedPayload":{"position":{"x":152883.6589133939,"y":49592.34649145943},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"ea09493d-1325-43ee-8c2a-7d8ab2e68d9f"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"01d91404-44a6-471c-9dc2-4d6f61b6fa3f","savedPayload":{"position":{"x":152854.17114632414,"y":49640.0827840194},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"93676f7f-7235-40bf-86aa-9ff0ef787ebc"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2ce17d7e-b3dc-4209-be84-d9b2d2fb93a2","savedPayload":{"position":{"x":152813.33308889472,"y":49678.560506139176},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"8383209a-44a6-46a9-8b72-051330485c73"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"43dc63d5-cb0a-49e8-afff-260d32c44de7","savedPayload":{"position":{"x":152763.9277872314,"y":49705.157464643715},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"26938510-b396-4cd0-9707-9abe0c6dca61"}}}],"id":"2248b318-ae4f-4812-b72d-6804ca7c2ff7","savedPayload":{"position":{"x":152687.61845958966,"y":49504.22372374169},"targetPosition":{"x":152473.7810625669,"y":49525.92739514847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"5fd9d8c1-8bef-46e9-ba23-16a3a0b05ac2","savedPayload":{"position":{"x":13925.114335239336,"y":25599.505627812905},"targetPosition":{"x":13451.48976001937,"y":26107.860119989553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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":"b52bc641-8d7f-47b0-b447-886120f0c1c8","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"9371706e-b256-4386-8250-34f850b3c1c2","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"c767b6d2-7d35-481e-9347-a4beee79e967"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"0a19d205-85c2-42aa-9919-6f0dc65b1d47","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"90d60f7c-d8df-49e8-b3d8-8c9b3f0d84b6"}}}],"id":"f5f9ec47-ba7c-49f0-a83f-65ddcc8b753c","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"81e792aa-20c0-45f0-a553-64741fd1120d","savedPayload":{"position":{"x":14049.134335424185,"y":25753.45288873389},"targetPosition":{"x":13451.48976001937,"y":26107.860119989553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"50d207cc-1a16-459a-81f0-5b9a1265e23f","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"0b6224f1-0dd1-4789-8ad4-2adbc64c4027","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"f7c28728-0555-4fe2-a94f-dbaa24364532"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a6e03fd7-1a9d-4c78-99b7-e40d51620433","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"bb720b26-c48d-44a7-8775-80da6fdd8307"}}}],"id":"ce869a9e-9a18-4623-b8a5-a927f2e2a170","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"dea71eee-35d0-413d-89e1-d9ad0d28ff80","savedPayload":{"position":{"x":14124.789699471072,"y":25936.103374183956},"targetPosition":{"x":13451.48976001937,"y":26107.860119989553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","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":"9a1355bd-9d0a-49f6-bf49-d305132062fd","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"02db4bbe-c355-4700-9b48-1754ef3f00cb"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"dab99def-a7db-4427-9a5e-333768329907","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"37f9878e-b61a-4c6d-b191-d48fe94759ba"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"08b1328e-bca1-41ce-bc15-2fa9a8442e0a","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"8581ab73-2853-424f-83a2-d2ff35b09c02"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"42413df6-4d58-40bb-a3f5-c60276c1d232","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"ec007586-7ac1-49a4-a4d9-fe1152e186a5"}}}],"id":"06123330-8d6e-492a-8fff-a433420b020c","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"23d86392-f58e-4405-aec7-5b2b691d4ff7","savedPayload":{"position":{"x":14145.962516636946,"y":26132.38443866463},"targetPosition":{"x":13451.48976001937,"y":26107.860119989553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"8cc53b8d-79e0-4e92-b14a-d495edf05502","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"a2247aca-d274-4fec-9fc4-2590d38d91c1"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"b0d9ceb9-4e52-4e76-a7b0-ea5d0876791a","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"5003719e-7064-4c4c-8dfb-dd2d1634efdc"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"371c4836-3e03-4b1f-89d5-7fb74992f43d","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"9d0b592a-bdbf-4b98-8ab8-b11df6c3d331"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"7714b71d-218e-465e-9fdd-2502029338bc","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"6efce2dd-a754-4f92-bdd8-3a05abfc13d4"}}}],"id":"5eb25941-4e80-4ff1-bc81-788ab45dc0eb","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"36a3b173-e158-4793-a344-d84fd3ae3934","savedPayload":{"position":{"x":14110.932698555187,"y":26326.964393125396},"targetPosition":{"x":13451.48976001937,"y":26107.860119989553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","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":"0409528d-dcee-485c-a682-d68a73ab3fc6","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"471a20e9-b621-4c38-9909-21cf6d35d435"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"1b8a8654-f537-4ef0-8d81-c6a02615c0aa","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"eff9ee04-6013-4ad5-b0fc-5c8756e99277"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"c1f41c1f-b5ce-45c5-b26f-cc5ba4ba2e73","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"5be31a5f-e7fc-45d7-8d3a-65cb40f5ea1a"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"34b9c325-9c2f-4825-98a3-9ec98d7b7d71","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"0d0317f0-aaf4-48e1-b795-111590f2a7e0"}}}],"id":"d77094ca-6ca9-4258-b2ef-41abba41e878","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"a67f0d62-92ca-4be0-9e04-8d9f7f635eb7","savedPayload":{"position":{"x":14022.52781951958,"y":26503.825268540702},"targetPosition":{"x":13451.48976001937,"y":26107.860119989553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"700c0f8f-73b4-4a67-9717-886cd8c0374c","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"2eadfe85-f2cf-42e9-b67f-bbc245438c6c","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"71f53eb1-c3a7-4234-9b38-70a584f6d83e"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"bf71d729-dcad-4583-bc70-0fcd7841343b","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"714aa739-12f7-4442-945c-60e7c90923d7"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"4b051851-bb11-418e-98f5-5bbb432a41ad","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"4097f306-eb9b-4887-bdba-40fb05471da4"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"2ac8c10a-267f-48c1-9e37-017492f705cc","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"aa1fbe55-3ae6-4b7e-bdf3-f7455964ff81"}}}],"id":"56aaa8a2-12cf-4f3a-912c-a0fd7c56c2ac","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"ae31f926-6515-40de-8ac3-8f50bd688b77","savedPayload":{"position":{"x":13887.708339674937,"y":26648.776346507555},"targetPosition":{"x":13451.48976001937,"y":26107.860119989553},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"4cabf267-bc1d-4603-ae64-aa4f3f447dbb","savedPayload":{"position":{"x":13451.599328692706,"y":26107.933540684404},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-1955,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bitfinex ETH/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-03-11T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"8dc4400c-177b-4da3-b8e4-a119a2e8f7c4","savedPayload":{"position":{"x":79330.32310132215,"y":35442.66546248943},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 88.589,\n \"maxValue\": 366.05,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"514fe183-6c6e-46a7-a274-2b7426d803b0","savedPayload":{"position":{"x":79422.78550160762,"y":35529.57339213471},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"276ee07e-e578-4069-b5d9-b9dd96fc0676","savedPayload":{"position":{"x":79486.66723427142,"y":35638.36910338452},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"39750350-fa76-4970-9476-791b7a9dd09c","savedPayload":{"position":{"x":152721.99951375724,"y":49292.055335822246},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"83f76595-dad8-43ee-acf5-3431fe6c6fb9"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e0d1d638-1a4a-4d1d-962d-6f89e03f1652","savedPayload":{"position":{"x":152775.74122730742,"y":49308.18326993744},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"52a6facc-16a5-4c25-b9a0-64e66860753d"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"84eea46e-348c-49d5-89bc-3a1565655fcb","savedPayload":{"position":{"x":152823.47751986736,"y":49337.67103700723},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"f06e1f15-8cb8-4256-8553-c5682217fa33"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0691dbff-2152-4350-b5e6-694e3641a9ce","savedPayload":{"position":{"x":152861.95524198713,"y":49378.509094436646},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"c9be3770-83cd-4d94-8c45-e9681a50c15c"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8e23288a-3993-42fe-a282-91a0b6a61efa","savedPayload":{"position":{"x":152888.55220049166,"y":49427.91439609996},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"eeb73456-9ffa-41d0-bdad-c2b4b6626bd2"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ac718fa4-b8e7-4b60-9594-fbc82a4d8faf","savedPayload":{"position":{"x":152901.45585661242,"y":49482.52005233493},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"59ed43fb-7968-4879-8abd-4e46ced7b934"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7a45fa46-ec98-40aa-806e-e9c22400dde0","savedPayload":{"position":{"x":152899.7868475091,"y":49538.60477790924},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"6b7aab09-3233-402b-8910-7359604965cd"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"43bc8f13-2856-4d1b-9ded-ee375f5c0a53","savedPayload":{"position":{"x":152883.6589133939,"y":49592.34649145943},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"21d97130-1583-411a-b677-d560e799984d"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6c139ba7-85e2-4d08-a305-9a79cda40a0d","savedPayload":{"position":{"x":152854.17114632414,"y":49640.0827840194},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"8ba08147-9f41-49f7-a801-7ad909941829"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f7ed777d-9e24-4b69-9c74-67d201993828","savedPayload":{"position":{"x":152813.33308889472,"y":49678.560506139176},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"b55158e1-ef7e-4a66-ade5-ab3dd9e24be0"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"288f72e5-3aa9-409f-afc1-799b0b072820","savedPayload":{"position":{"x":152763.9277872314,"y":49705.157464643715},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"a268c306-43e2-45c5-9d51-0af82d5f3a30"}}}],"id":"f1dac8ac-1d69-41fc-b94b-a1c89f93c2d5","savedPayload":{"position":{"x":152687.61845958966,"y":49504.22372374169},"targetPosition":{"x":152473.7810625669,"y":49525.92739514847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"efeb3b3a-c897-4b65-97be-fe0e2c28440d","savedPayload":{"position":{"x":79517.1475292898,"y":35760.664990582285},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"eabe6a35-b296-4db3-beca-25a557527795","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"43ea0a50-695c-4c47-9aed-4666c17b6098","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"5d6621b3-080c-4ef8-a136-0be41a5d3982"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"9cc33f95-a767-48ea-af9e-33138c48a30d","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"f0213a4f-fef3-48c4-a676-ca76afc93721"}}}],"id":"c603bb0a-1063-4414-a0a4-48f743b79cbb","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"3289dd62-ef50-4c42-b28d-adf28c3238e7","savedPayload":{"position":{"x":79511.82058579184,"y":35886.288638929305},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"4a0cfaf8-0226-4c23-b848-4e0fbd8efb0e","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"740b11e7-f659-46c2-86a4-ece9b0f662d7","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"08eaadc8-d9e4-44b4-9334-55e78e56a4ad"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7bc98f96-b29b-4624-8bc0-482bf4ec7cea","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"e43cab43-07d4-4acf-87f2-b66c59394a61"}}}],"id":"69894491-616b-473e-a34d-70dffb0f05e2","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"4361462e-e24e-46ed-bdc6-1bb20ec942d7","savedPayload":{"position":{"x":79471.40312998512,"y":36005.60489982946},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"92f5d2ec-a556-4630-af6c-9231434fbc8c","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"aa777112-e038-437f-8141-637ecdd330ff"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"dd6b9d39-5e7a-482d-9963-4a0c225c0918","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0948ab27-620e-4bcc-8f13-71f130e9269d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"80468e86-33a0-4155-b25a-cd6c64f8cae3","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"f667d8fa-eacd-4d74-a750-38186cfd2b9a"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"865ef726-cb61-45c1-9133-07e825cb2898","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"b7890686-9921-454c-9909-22da2cd55c2d"}}}],"id":"81251ecb-7285-4d84-b258-eb306868d87c","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"68d1997a-8f05-45db-9dfc-8db48cbcde95","savedPayload":{"position":{"x":79398.96790908341,"y":36108.72218875237},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"c870cfdc-bb61-4b21-b7cd-84c67dabed89","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"44e68189-8738-422a-b280-0e90f51dd765"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"e34a7763-b877-4eec-88c2-b1d16c167bfe","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c10a731c-e083-416f-a407-eec0ce13f6a1"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"d3b4703d-1c05-42ee-ad25-1faddb8bbe8c","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"43c9dcac-f6d3-4ece-b5b0-d1d0faadb672"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"48d1f9f2-b2ed-4e81-b19a-c54548a7fb95","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"3d854889-79b4-4643-88bd-a3c791a14ecf"}}}],"id":"460e922e-bfbb-4c3c-a280-1a093b3a1ff9","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"89d2e368-6d6c-4a04-a527-825846a8f07a","savedPayload":{"position":{"x":79300.2038231186,"y":36187.03230782196},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"a0a74344-450f-4b16-bd9a-791c381334b1","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"8cd082a5-b173-4bd6-aea8-44c999fc5539"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"b13c7c81-6fc1-47bf-b0b8-a55713186fff","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"ace0a172-a9ab-4be0-81ae-9baba1566200"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"6cb37fb4-ebbd-4db0-862a-d1103a22a55e","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e9ccf8e4-b465-4863-a4a7-18c4bae36bba"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"af7a961a-d465-403c-b5bf-2d4051c0c71b","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"32786557-5691-4718-9500-89f121c5664f"}}}],"id":"79675ea5-3bfe-491b-ae8e-0097f7d08103","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"07b41c37-27f9-4ae6-9be1-1df30c999961","savedPayload":{"position":{"x":79183.33119213779,"y":36234.51205005204},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"0c57bc85-cbdd-435a-b2e0-7b56bd33cf6b","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"fb6f7633-1776-4f3c-a381-027209f7388e","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"2c0c7c7c-2dc7-471c-bb86-7e1b2a8ca54a"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"d1f3a6c4-cdd2-4de1-969d-b00af79fd4aa","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"221b6ce6-1d37-47f9-b0f3-fbe8d7941a8f"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"019f52da-00c4-4635-b010-ab5a603aec8a","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"c6488b87-96fe-4a60-b028-eff0472eb89e"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"521ec944-652c-4860-9e94-8f35a3f63b28","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f2d4a883-71a7-4107-97ab-eb5bb759279b"}}}],"id":"a8d15b5a-2870-40bd-9e88-f40bfa677d1d","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"fc236378-c97d-472c-9234-26145cd06d5b","savedPayload":{"position":{"x":79057.33289683037,"y":36247.174065524625},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"3e18d03b-cea5-49b2-9b9d-04f045e8e3fa","savedPayload":{"position":{"x":13504.481730532763,"y":26373.61221485094},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-1955,"y":175},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bitfinex ETH/BTC","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2016-03-09T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"3d074f12-db2e-40fa-af64-f31956ce9f26","savedPayload":{"position":{"x":79330.32310132215,"y":35442.66546248943},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0.0073,\n \"maxValue\": 0.1515,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"81525955-21f2-4cdb-8e17-7a6088fbe7e8","savedPayload":{"position":{"x":79422.78550160762,"y":35529.57339213471},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"d37bf764-a435-4910-915b-1187f1a14b40","savedPayload":{"position":{"x":79486.66723427142,"y":35638.36910338452},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"f2841aa6-65c5-49b1-870d-646f9461571d","savedPayload":{"position":{"x":152721.99951375724,"y":49292.055335822246},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"d6df8a4e-8337-4956-8622-12cc11fe66db"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"56fcaff9-584c-486a-be8b-c33be467fb71","savedPayload":{"position":{"x":152775.74122730742,"y":49308.18326993744},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"8b70f924-5685-495a-b1cb-0c33159b2c6b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"75e822bb-d979-4c3c-a587-4b426c2ae492","savedPayload":{"position":{"x":152823.47751986736,"y":49337.67103700723},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"a1d3973f-a757-4291-bc87-a6d97414056b"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a5598fcd-5764-4f98-82f5-d99e98208e4c","savedPayload":{"position":{"x":152861.95524198713,"y":49378.509094436646},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"77ef4625-ac78-4a6d-805d-d13cb93fab28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"05808363-d638-4841-98cb-7458de7dc540","savedPayload":{"position":{"x":152888.55220049166,"y":49427.91439609996},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"b7f4d4d7-eea3-4c14-950c-f24c6b47c3d9"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9877b5d7-2117-482b-b5b6-b523b93f134e","savedPayload":{"position":{"x":152901.45585661242,"y":49482.52005233493},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"4a638d36-8d48-4d52-a834-39d40de04f67"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"16788a0a-a2fb-4547-8543-e216bdc3b715","savedPayload":{"position":{"x":152899.7868475091,"y":49538.60477790924},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b0878239-fef3-4d84-b267-9e61b930d0e2"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0ab298c8-5a47-44e4-a814-d76b783cbcf1","savedPayload":{"position":{"x":152883.6589133939,"y":49592.34649145943},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"3689b876-c3dc-4d7c-9b42-232b6fbd1f0b"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d2ac354f-829a-448d-8d2b-61801d14bfdd","savedPayload":{"position":{"x":152854.17114632414,"y":49640.0827840194},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"ab4045e2-595f-481e-b3d9-e396feba5b74"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6e043e0a-a262-4f96-ab3b-9b37c537caad","savedPayload":{"position":{"x":152813.33308889472,"y":49678.560506139176},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"241deef1-5a1c-49a6-b1a8-972396350c95"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"b59594d2-60a4-4b96-9b4c-c8e4724a3e9d","savedPayload":{"position":{"x":152763.9277872314,"y":49705.157464643715},"targetPosition":{"x":152687.61845958966,"y":49504.22372374169},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"6d19da42-4214-4f49-b51b-1c476c6da01b"}}}],"id":"445fcc28-5441-457d-be3c-333ebbfcbfce","savedPayload":{"position":{"x":152687.61845958966,"y":49504.22372374169},"targetPosition":{"x":152473.7810625669,"y":49525.92739514847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"c801bfc2-8435-46cb-ac0a-3e69aec6c064","savedPayload":{"position":{"x":79517.1475292898,"y":35760.664990582285},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"c5f1b35c-3d42-4b78-9354-a2dddd659da9","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"31aae351-ac03-4424-bae3-726c6c60a1e2","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"f1d6411b-d15b-4631-9c28-2981a4dc817f"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"74147174-7655-4dac-8054-c86e15da18d2","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"e93c3b36-99f2-460a-b38a-491fa05c586f"}}}],"id":"3ee4b006-1fd6-4b9c-9498-d62f56420622","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"9781086d-8ba3-4f91-a6ba-adb6dadac730","savedPayload":{"position":{"x":79511.82058579184,"y":35886.288638929305},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"01ed6f73-a985-414e-9971-cb753ed7cecd","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"66282512-305a-4c18-96dd-08f2ac923296","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"3db1d7e3-22ea-4519-8eb8-25e908d6f315"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f19a151a-58fb-45e7-9eff-3e0de592ec23","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"cbbc5cf8-91d3-4efe-8e18-363ac308a84d"}}}],"id":"6f180044-319b-45b5-82ca-83bdc21257d7","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"6c00c9dd-cafe-491e-b03f-a69a2a09edeb","savedPayload":{"position":{"x":79471.40312998512,"y":36005.60489982946},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"0c513251-7a07-4613-b876-f069ef66db93","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"70d1c9bb-e27a-450f-92e7-c6f62fc9e628"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"006c6693-45a4-47be-b175-24087052813c","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"343122fb-2b50-414c-b37e-b48e6021a0f0"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"08ecdbd1-6d92-4695-8140-026988591993","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"5fc57d3f-060a-493f-9b9f-7ca4628779b2"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"d0c1ff78-760f-458f-a78b-556d1b106cbe","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"cf56d7bf-d9aa-4eb4-9b1b-1ec65d5b36e9"}}}],"id":"5af97d4c-cb03-4aeb-9caf-9ef4f360e02f","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"02cb9018-4ef4-47ed-8434-ec656a32f198","savedPayload":{"position":{"x":79398.96790908341,"y":36108.72218875237},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"bd6ce984-43f0-4b4f-9636-ec7c4597bf78","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"fc633f2a-9158-454d-b7e0-05a669819451"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"d78e9a08-96ea-47ac-902a-f0408d3799d1","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a7c6cdcf-4154-41cf-ba34-ba8c6d9162ba"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"b31176fd-4231-4739-8532-5d0538de0bd6","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"2ebb1cfc-0cd7-482b-8cb9-3e2d90bcfb2d"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"72a88d69-f334-4ed8-bfb4-af0e7421f00b","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f821d854-1d75-4ad4-a3fd-562742b88138"}}}],"id":"5b04d41e-c62d-40d4-bbc7-60b47dcfb928","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"77db8213-0540-47da-a1f3-721fd7bfdac1","savedPayload":{"position":{"x":79300.2038231186,"y":36187.03230782196},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"e2e410f6-9985-482a-b56c-9960908e33ed","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"ec75492e-8fbf-49c6-bec0-5f8f584085be"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"e5088fe3-954e-486a-ad50-503ae6550b52","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a244c424-f719-4dbb-9426-4ceb28b58104"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"bf339c22-da7c-4ac1-88ca-b3994af1cebd","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"760d79ec-38dd-49e1-847f-97019b47b377"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"c71a558e-d426-44ba-89b9-c383385af771","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"1e4e522d-165a-4a73-8f89-b8f3d6813dee"}}}],"id":"c5b836a3-767c-4dd0-b1cc-719b73a213f4","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"90f87ca0-cc05-4244-a836-75df1bfe1678","savedPayload":{"position":{"x":79183.33119213779,"y":36234.51205005204},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"38b42d28-0f84-4cb9-961e-93195fbee4df","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"9203e70e-54b9-4520-99c6-9687a443061c","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"79825272-d69c-4f65-962a-d1cb16fc4a1b"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"523071d3-ccdb-426f-84b2-2d3161b67c6c","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"66218aa6-040b-475b-98c2-52c51682d4e1"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"7f41e982-e3fc-41ee-8c11-f36eebef919f","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"8ced75aa-e109-434c-9e06-7dc3e6724817"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"c8bd7b4b-207d-44eb-aa72-490c2422c574","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"5d8963dd-6fdb-415e-82be-03e063006ef5"}}}],"id":"29b7ed61-f956-4ce2-af32-1c25fbac8990","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"c23d4a53-5f3b-4361-9929-746508ed6f7a","savedPayload":{"position":{"x":79057.33289683037,"y":36247.174065524625},"targetPosition":{"x":79077.05490022595,"y":35805.25893436051},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"fd1f377c-32ad-4d30-a80a-babc8b333015","savedPayload":{"position":{"x":13451.604531641166,"y":26639.348270009665},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-1955,"y":355},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Binance ETH/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2017-08-17T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"91f600ee-891d-43f2-93a0-d5e19c501727","savedPayload":{"position":{"x":43467.03775144197,"y":31080.151329830995},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 81.79,\n \"maxValue\": 1440,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"e5502640-2389-47ce-8102-eff5dc41848b","savedPayload":{"position":{"x":43561.527396507714,"y":31168.986039090618},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"94543685-cd66-4a94-a145-d6431e40b7de","savedPayload":{"position":{"x":43626.91419659057,"y":31280.593924197423},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"895d82c9-beab-441f-964e-bc01f0237d9f","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"70b5e875-f6e2-4924-982a-22ddc3cbffa4"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e91fb755-ff11-4539-a04f-b156201664e7","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"7838dc0e-292e-45f7-b68b-99f791854945"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ca6c62ee-6fd7-486b-9f26-ce5122ab16a8","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"20a48b66-ede5-4733-a328-d2b9c2dc1c38"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2ce003dd-6708-4670-938b-470e244b8211","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"d3dd2469-ca0f-4efa-a93e-dbd963eeeb9b"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ccff42b3-b5c0-48bc-a1e3-df3ce6814267","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"1a9fbecf-b28c-4fd3-8a77-1d48e9b5e82d"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"70046eb7-d5b1-4e21-a915-77debd03212e","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"8c7bca25-3c7e-4818-b495-3f7cfde17c2c"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a5ef4191-d0de-47d3-a2c3-81bbd39c850d","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"3639c029-b16d-4dbf-b63d-0c9c751b85ac"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"169c4cbe-e977-4a57-9342-5c9311f90c2c","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"e6a329d2-5c5e-4b8c-a2b8-197650e6f746"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"fe2057ce-d488-4428-836b-ffc9ab5a5fb8","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"f19d47f2-c948-481f-92ce-d268e8169551"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"dd81071d-ef49-478a-9823-505a5187cf69","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"7d41a2cc-af22-4dc0-9477-ec2a931b385d"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"64fc337f-fc32-430e-b35e-ec2479c93546","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5f03643e-a8fa-4548-8825-0838cfe80d26"}}}],"id":"4c59623a-c5be-4bff-ae2a-a11c6418c582","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"2d22c382-206c-4f8a-aff3-1ea297d6f2c2","savedPayload":{"position":{"x":43658.04888464141,"y":31406.061085318666},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"3e0f4019-e4fc-4a99-a3fd-0731cc2a16e3","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"6970402c-cc95-4765-b655-cac8bc58207d","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"1ad74ce5-de50-4834-b081-ee8c5b0dd53f"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"26e060c1-bdba-4238-9337-0ff7abb91ec5","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"fb2d5658-7990-415d-abaa-d8a7bd8584a4"}}}],"id":"f78a9df4-0aeb-45ea-9832-27f290d81138","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"46ba624b-7c62-4302-84ac-9478cc736e45","savedPayload":{"position":{"x":43652.69782508665,"y":31535.066617155873},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"23ce994c-451d-4e37-82fb-208c2619f9db","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"605374c2-805d-48a5-b921-90dd8540a844","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"caddb3d7-cd0f-4d65-8ea8-fcd679cd87d3"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1d39d38c-3ed8-45d4-8f35-4573832d5570","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"57eb5355-db39-426b-bdba-c8d1b7aaeb44"}}}],"id":"d55b2b66-931f-497a-a442-cb14749ab43d","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"7cac052a-a44a-472e-8abb-c8aff1d2c18e","savedPayload":{"position":{"x":43611.20688087951,"y":31657.469111407027},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"9b41fa90-2dfd-4fe6-9398-412bb02457bf","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"942399ea-e76b-4471-87da-6795a0c0c38a"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"2b79d33a-e2f0-4aeb-9d45-887ce3d6291e","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"e837c17c-091c-4723-b7db-f44aac865f6d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"6df059cc-a481-430d-8a3b-e7bdeba0b1da","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"365a59c3-31dc-488a-ae77-26e866bef67a"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"9ff8d7f7-c91c-4b44-8c51-e8be4f2c449a","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"38b73766-b1d6-462a-939c-f90ce1ba039c"}}}],"id":"b802ba6a-ede9-4487-86a3-58c04b25520d","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"a20288ab-1a3b-4805-bcf7-dd2d2ff8462f","savedPayload":{"position":{"x":43536.79496124258,"y":31763.137411724038},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"8e64b95b-9b09-46c2-8eae-0ac75feade72","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"33688087-0eb3-490e-a81a-0886589db7be"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"6baca261-78c3-4dd8-93cb-5d8a104064c1","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"fbd968cf-e008-419d-8820-8bd063b69878"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"293c4667-5e84-4e81-944f-78186dd184f6","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"2f6ee551-9c68-422f-a11d-c0a1035aefe8"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"3f920cef-b44c-4f2c-ae7a-2162201fef9a","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"12230847-3573-40e4-97d2-16a22833f2e4"}}}],"id":"9851a6c5-f9cb-430f-94d8-213afb5f7b2e","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"faf900f0-4577-450d-a10f-eaeb5750248a","savedPayload":{"position":{"x":43435.440768418885,"y":31843.775863762567},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"d4f0fcc9-e3ae-4926-ab92-aa36457697e9","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"cd2bce9c-ed05-4a42-8076-1672c0a5939f"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"f06dc6ae-e80d-45df-a7d9-712c60f7aa7e","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"ec9260a3-8fc2-490f-8f3b-020a441e5c4a"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"78f5158c-c5f0-48bb-98a1-c98b8200a9e1","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"1ff5471a-5f72-4882-970f-0b984384bd30"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"fd374be6-3c0e-42ac-8c5c-59f35947583f","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"5171e8a7-52da-4813-aacd-34684ff96a20"}}}],"id":"32702e74-2791-4f14-bfae-03caba48b673","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"7ed9db3f-f9f0-4747-9268-4cbaa37991e2","savedPayload":{"position":{"x":43315.88382944698,"y":31892.447057067795},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"4c6a181d-29a3-486c-b300-dc2a0cb994f8","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"35ca2317-a5bb-478a-b250-481f47c9bd76","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"c2541021-f7ce-4a8d-ab59-e7002ed8391f"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"25f10604-4555-4ff8-be2c-5cf207fa44ef","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"23b33524-1c7c-4b75-b96f-b76132a863d3"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"a3643455-273a-419a-a119-df235a3bc04f","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"d4541ddf-142a-4616-95b8-6ea51de83814"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"71ff6ba3-249e-423d-8542-4383b03f04bf","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"caffa6da-ecf8-4d7c-81bf-18ddc03dcd82"}}}],"id":"cde0f94d-3045-4cd9-8a86-b4f192e27385","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"14c607ca-2328-41be-befe-5f64cee17fa1","savedPayload":{"position":{"x":43186.65662100337,"y":31905.298034708296},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"c482be94-da85-4109-9870-98349ee5e4ec","savedPayload":{"position":{"x":13301.023361467584,"y":26864.693456187946},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-1445,"y":165},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bittrex BTC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-02-24T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b04d4a2d-6d69-4c3f-9ad3-32dbd90e3f72","savedPayload":{"position":{"x":13766.62649529589,"y":26940.996256848633},"targetPosition":{"x":13075.58816636219,"y":27015.167629884636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3820.01,\n \"maxValue\": 9672.94954721,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"395e8214-e75f-4e3a-9371-3bf1c5382ac2","savedPayload":{"position":{"x":13759.450634916744,"y":27138.69865636452},"targetPosition":{"x":13075.58816636219,"y":27015.167629884636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"94eb12ee-3491-4846-8104-c5e8f99c1abf","savedPayload":{"position":{"x":13696.858770050312,"y":27326.26414915745},"targetPosition":{"x":13075.58816636219,"y":27015.167629884636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"b92e03f9-0abb-438f-85c4-d928943211c8","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"87d60c74-a550-4dd8-acca-fd19b61cf02f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a4981b6f-d2ed-41e4-a990-c57f2d106c0a","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"a5dbed70-cf13-4b1d-b3b9-a2fc3a6c68b4"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d40081ff-9d6f-420a-8743-aa0e7efb17cc","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"5517f47e-f000-446d-b0a4-e0b698cb783a"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c8648b7d-043e-4845-bcf6-4e2f018c8080","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"cb506d78-8632-4e25-a975-1bf51e061137"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1ee22aba-8129-4c0c-8cb4-721411d7d0d4","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"1ce518d5-0c45-4435-ae92-dd065aec635b"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"677936b7-190e-4e2a-8f8c-41ec19307d49","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"0620fffd-223d-46e4-8be8-ffec4c9d0103"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"461a0da7-1d8f-46d7-8a17-3985bcaceefc","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"0bb2d947-dda8-4490-98dc-cffdcb714cf4"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f3ee4af6-d848-495d-ad0e-cc8730d8fce7","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"4ebc7b29-6211-4311-876a-368dd01e2c7a"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"af06d5db-c005-4cd4-8f08-621ee0d3be8a","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"1791d269-3f4b-412c-8335-612f6dc48f71"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0e87a541-e809-4aa4-933a-9fdd2682486b","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"f18e1f89-e959-4473-bbf2-2cdf382f629f"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"9ed3fc9f-23ae-4855-b515-f98bb5308c78","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"427efc54-389c-4bff-8b17-ae8fc14f1acd"}}}],"id":"8ec9988d-aa4c-49c2-bd21-0bbbd467cf1b","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"91190e07-268f-4215-8ec4-ea116376957c","savedPayload":{"position":{"x":13584.05651630154,"y":27488.60522263721},"targetPosition":{"x":13075.58816636219,"y":27015.167629884636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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":"bb576f13-330d-43c7-b877-859c99e0b319","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"1a81db61-493e-404c-a3db-e5318cf74f28","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"a3010d50-1d4f-4259-be18-28b86ead6589"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"afcda5ec-d438-4371-88c5-f996e78b2cb1","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"fb8deeb9-e1a1-4a17-be2c-e7f2451db5b9"}}}],"id":"bfb3a043-4d59-4bc9-a184-f2c305ed854d","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"d6e755de-c1d5-44aa-bd0d-b4bd30c2617b","savedPayload":{"position":{"x":13430.095631771861,"y":27612.603030595106},"targetPosition":{"x":13075.58816636219,"y":27015.167629884636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"240e2294-0a6c-41c0-97db-b53d08594f5f","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"3a7b5efd-e7b3-4fa0-ac20-c5c12e1b009c","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"6efc2f65-6bae-46aa-99bd-52b705bf3a1b"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a123e081-c9e6-4df1-8cd2-22b0ef300ab5","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"02f219be-524b-48a0-8fbe-b40dbfbab0c3"}}}],"id":"60f92cdc-7adb-4a6d-bc44-8a91163c3dd9","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"7390ca45-41dd-420b-b634-e2e47502faf6","savedPayload":{"position":{"x":13247.451731834042,"y":27688.22533514969},"targetPosition":{"x":13075.58816636219,"y":27015.167629884636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","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":"9e49a3cb-1417-4dfc-bde1-7ec3c0682db4","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"b67d5bcb-f0d0-4693-8ef4-4eb4f9d160f5"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"3842826b-7bc2-4608-b77f-5dddf8b50aad","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"877f75ae-f356-42ef-8e14-2a987fe4bc23"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"20b50e19-adb6-4647-89a6-5c1670956521","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"c43f9bbd-cdc0-4394-9867-369c94d0ecc8"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"2df95691-b0e2-4bf3-b058-864244c5c26f","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"e04efe8b-2a2c-48cb-b7cc-ba2a5efd9daf"}}}],"id":"39508d2b-f596-4abc-aed1-1c0517cd4533","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"3e24d8ef-369f-433e-948e-9a3451de8835","savedPayload":{"position":{"x":13051.151933026516,"y":27709.364216815375},"targetPosition":{"x":13075.58816636219,"y":27015.167629884636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"0fe6c2f6-1799-4028-b63b-a9e2b51eeae1","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"b5001e83-1f8c-4ad7-9219-e4b2ccb5c0a0"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"cf660863-254e-4bcd-bc90-ff08f137d877","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"cbdc6f5d-f25e-4d0f-9162-5fbb25c556d9"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"924af46a-6ef2-4380-9cad-b71111ffa430","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"93d017db-d70d-47d2-a341-908958eee39b"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"6b6a4f14-b410-427b-8ba5-d3786dcc6556","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f23f4656-f227-46ea-af5a-14c4802b9eb4"}}}],"id":"35c737e2-e7ef-4df8-afc5-652128644da8","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"447541f0-bfd6-4a43-b223-007bf98f12e4","savedPayload":{"position":{"x":12856.523288700302,"y":27674.286792846175},"targetPosition":{"x":13075.58816636219,"y":27015.167629884636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","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":"4eaec063-634d-4cd1-9053-f6f08af8dd00","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"45bebf73-a3b7-4f74-88a9-b139e52f60a4"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"e62dc103-b15b-4ae8-9ffe-155e7cc65d79","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"2ff96754-c852-4e63-ae1f-38d91b458358"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"69e08e23-1575-4cb2-97c6-1fbcc801eae5","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"0dfc67b2-37d7-4230-86c1-90b04a429a86"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"d4f72ff9-e4da-4427-abbc-78763265eeb9","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"a4b28816-fc29-4e14-8dc9-29c7274882fb"}}}],"id":"e6e460b6-7e67-4a77-a9d4-6e8f85e3f500","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"93648933-2b97-43d8-a217-4688b839392b","savedPayload":{"position":{"x":12679.588353318146,"y":27585.860003820726},"targetPosition":{"x":13075.58816636219,"y":27015.167629884636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"1807ebe0-f501-4bf3-9f57-927ba961e1e2","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"d0217a53-f2e9-4076-b706-9efc1216aba4","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"47d7c6e4-fb2a-432f-a8ad-9e5a8ac93395"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"fe8d321c-71bd-4b26-abeb-a0bd6ba7bd8a","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"9aeb6c6a-7e19-4b03-9ff3-129388f1453b"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"4d9cf04e-427d-44fb-8a73-0ddfcf6c78dc","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e67f387c-c066-4ae5-858f-df2f55cc2f96"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"150e49fd-2939-4b98-9b50-e1094c24a720","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"9c32e9f8-a468-48f2-9a16-dad98733015e"}}}],"id":"edcc0739-2022-4baf-b9c5-eb0cc58a3417","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"82699ac8-ec38-46b4-9165-350dbb4994d6","savedPayload":{"position":{"x":12534.548380933833,"y":27451.02348207316},"targetPosition":{"x":13075.58816636219,"y":27015.167629884636},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"927143f9-e821-490e-8464-96bdba1ba390","savedPayload":{"position":{"x":13075.661409924096,"y":27015.258479322198},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-115,"y":1285},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bittrex ETH/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-02-18T00:00:00.000Z\",\n \"toDate\": \"2020-03-14T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"58f6d3b7-308e-4b3d-8a87-66f81c25370c","savedPayload":{"position":{"x":13476.517772776566,"y":27263.4961149381},"targetPosition":{"x":12809.888523964455,"y":27067.851816813967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 88.603,\n \"maxValue\": 285.67514292,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"750036a0-e45c-4c95-80d8-29c234dad133","savedPayload":{"position":{"x":13394.226818660054,"y":27443.46336747958},"targetPosition":{"x":12809.888523964455,"y":27067.851816813967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"3bb3b104-9f54-4f1b-87e5-ac445715f4a4","savedPayload":{"position":{"x":13264.703719210373,"y":27592.801766519588},"targetPosition":{"x":12809.888523964455,"y":27067.851816813967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"ea5548b7-27e0-449c-92b5-79cd7314788a","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"01aa1d03-ed10-4c03-9e3d-ff1f8205ef38"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"fb6aed6b-f6f8-4796-9f71-bef0f189fc55","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"424bee3d-18e9-42a0-9b34-41894517f1f5"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d884a8bc-21f9-436c-b243-0bcf09f5e50c","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"34363359-1009-4656-b997-5f8860eada75"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"14ce4e05-8674-4c66-883c-09dad10268fa","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"2adc677b-7f53-45d4-b199-64616bb476bd"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f7868ff2-4f05-48c0-a25f-e84ae7ecb238","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"b7c724a3-3818-4b39-a3de-bfa495bd914f"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e9f30f94-658c-46ee-ad07-36df28bf1066","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"1cda9cc6-322d-4c30-87c0-5dcb9b9cf30f"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d0e06a20-5b37-4bb5-bba3-6ea486f548ba","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"1664f095-e511-4f6f-b99e-41207a981d90"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4a78942d-5188-4dcd-a9e8-b40e812d1361","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"fa6c7e7c-0513-415d-8209-4a315676dd2a"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9ee953ac-5e2f-4c02-b378-7f03cb82df25","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"ede7a7d0-42ea-43cc-bbf6-12ba6e3767e2"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"51a0bf5c-e0bf-42f8-8864-4f4828ac99d8","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"f3bbbc37-820f-4eaa-a10e-7ec938729af8"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"c5a56913-59d0-4a42-aa26-fb942229a269","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"2d65df45-6fd4-423b-b3b0-fa5078ae8861"}}}],"id":"f1102222-05af-4e7a-bd36-032104cf1e92","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"6b219fce-3070-4317-9a45-2be2641effd7","savedPayload":{"position":{"x":13098.382210473046,"y":27699.60084002994},"targetPosition":{"x":12809.888523964455,"y":27067.851816813967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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":"92cec612-f7db-4db8-a337-8ab74c95a2ae","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"1e40af18-8f34-4bf9-ba5a-033ab1db73fd","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"272c8829-637f-44e8-846b-1973c3b9e6c2"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"2ef89881-1d1d-4f04-a1c6-b02ccffafdaf","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"a13f113c-7797-4d10-931c-fda5469b4aa4"}}}],"id":"1379920a-9a95-418f-9047-a51e8d3ba0f8","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"2e7751f0-743b-46c0-8182-2b6796e51600","savedPayload":{"position":{"x":12908.699449549043,"y":27755.1896312129},"targetPosition":{"x":12809.888523964455,"y":27067.851816813967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"d01b0ba7-2fea-497b-99e9-88ac0fc6c40e","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"c3518f33-e772-4452-96b0-c0d40de1280d","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"4c14a3a0-02c0-4e52-9fcc-318c2aa02ee5"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"242b349c-d11b-4efd-abfc-bf4a65e96038","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"d5da7000-fc80-450b-8589-5af46724c17e"}}}],"id":"67e0b67f-c166-44ab-ade0-7f576cccdf89","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"07b70b7e-97e6-4dc1-8ffa-5155890349a8","savedPayload":{"position":{"x":12711.22743053303,"y":27755.18410233327},"targetPosition":{"x":12809.888523964455,"y":27067.851816813967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","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":"de56f8eb-8c0d-424a-8083-24be71603e9b","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"dcebe989-5478-46df-9f29-4fc1f0e0580f"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"1b0ccb1a-6bfa-4d0e-9147-9907c1851936","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"e5b8c497-f639-4ea8-ae06-93d292bec23e"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"68b25a62-7220-4942-83e1-c901724b5f04","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"5822122c-61d7-4bae-9844-66e95e5bd7a1"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"8ef10b72-6781-4aae-8073-ef236ba74513","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"7dfcea84-17ac-48a7-84f8-2f418790bd95"}}}],"id":"c0e28f4d-5555-4f97-a6ac-1c7f5eb943c1","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"f36c824b-7d8f-46ce-875d-d2d9b80db841","savedPayload":{"position":{"x":12521.500070929837,"y":27699.518647700374},"targetPosition":{"x":12809.888523964455,"y":27067.851816813967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"d834382c-e51e-49ae-b8c3-7d2322553678","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"2cc4343e-fc10-4597-a0fc-d1e4bab07c99"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"4b90d47a-e5f5-44e8-b644-f2de60175ca8","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"b4997991-5f28-458a-83d2-ea1adce5b800"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"59588f96-f485-4826-b405-b1f9ba54a586","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"520da21b-e435-408d-af26-909751ffa982"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"eb951a2e-2871-4cca-b891-9e4efbdc5acd","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"829b09a3-3ec0-405c-be2f-5bfd29cdb9bd"}}}],"id":"fe1fa09f-7af8-459a-92c4-16cd88ac7b0f","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"3038a51b-681f-4e57-80e7-6cb811866653","savedPayload":{"position":{"x":12355.145590200576,"y":27592.734242672363},"targetPosition":{"x":12809.888523964455,"y":27067.851816813967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","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":"3483909d-399d-4984-986e-dbf1d178e8c9","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"1acc7196-881e-4f39-b46e-b0110026542b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"f27f5ea2-445d-4cd8-aa79-a6079efe2f46","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"298d8217-cba7-492f-8fd5-d449d3d50ac2"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"f375cf27-5bdc-457a-90d0-225d4d807e7a","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"679cbcee-acaa-4775-bbed-d8d802ed97e1"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"593ad9fd-609f-4816-89c6-ea7a3f4330a0","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"05c994e4-a5cb-4c39-9ded-c29bc61e95c4"}}}],"id":"49252c9a-b527-4733-9f54-a93860382c2d","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"84c84c76-fb96-4684-a2dd-2d69bfac5428","savedPayload":{"position":{"x":12225.608131921512,"y":27443.419844085303},"targetPosition":{"x":12809.888523964455,"y":27067.851816813967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"67adfcbf-1c30-46e7-96d1-ffc0712e4259","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"7e66f665-821f-43dc-bd0b-1149539af986","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"308e06b2-9961-4212-acb0-cf5e01ea02bb"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"ac33f253-24c9-4c79-9126-4f038b058eb9","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"1ef436ca-7524-4b07-9e29-39259bf20311"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"4d892568-d580-4e49-a17a-446270a30ddc","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"469eba59-2ad9-4a39-836a-fe078e5d4508"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"6b3aedb8-5f13-49ed-b747-4c4aa80fe230","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"72cbc477-75ad-4caf-ad90-2f79ecf37af2"}}}],"id":"98596d60-6309-49f1-b5bf-024653d6ee92","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"c34b707a-a7e0-4e13-b2ed-1ec3d5f5598f","savedPayload":{"position":{"x":12143.327551762628,"y":27263.48763120843},"targetPosition":{"x":12809.888523964455,"y":27067.851816813967},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"6773f12b-ea07-4f68-9542-7cbb35a5b21a","savedPayload":{"position":{"x":12809.901886785741,"y":27068.124424850317},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-115,"y":915},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bittrex ETC/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-10-11T00:00:00.000Z\",\n \"toDate\": \"2020-03-14T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"5d00b1b1-8a34-4380-87ec-90f634f21d82","savedPayload":{"position":{"x":43467.03775144197,"y":31080.151329830995},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3.2,\n \"maxValue\": 13.16209543,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"161fddc4-15cd-48e0-a1e8-f839b7ed404d","savedPayload":{"position":{"x":43561.527396507714,"y":31168.986039090618},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"41faeb11-e15a-4c1c-98fa-e7784145cb67","savedPayload":{"position":{"x":43626.91419659057,"y":31280.593924197423},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"e32c51d5-cc73-4b36-bcd9-cf455f53e6a8","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"8ed6da9c-268a-4913-b665-9d5b23a97193"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"232ae357-7571-4ebd-8994-989e70471760","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"1db262c8-7881-40ba-a2b2-1685e3125243"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8729d272-c012-48f6-8bd6-9421c67b7ec5","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"b35ad402-89e1-4793-8d50-c114ab977a4b"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"06c6fcc4-0dfd-40b2-9876-5f49c7150ba8","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"e7f89ec8-529d-4d5a-a7fc-80abd97d9cd4"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f21711a5-c4dc-4350-a2dd-50cce95c1951","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"a5ecaaac-8466-4774-9e83-d6713deb6841"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bea53eef-4e70-4aff-9963-754965aae8c0","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"51310dcc-57c8-4465-907a-800ea44674c0"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"95271b5b-c2cf-40e9-a3b2-d6e063b78812","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"daad53a3-db86-4039-b67b-95adfff5988b"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c384dce3-5353-4b71-9bfd-2b9b9d95eceb","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c743bb2f-f93b-4bb0-b988-9e201a7dad78"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"35789f4c-9e34-4713-8be0-90aae8cb646c","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"c0dfe68d-b06b-4e3f-866e-a2505664cda9"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9890f2f0-5238-4d39-90ea-f133f1d3c7d7","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"109a8288-7c45-4446-acde-0818ed69823f"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"0b651151-2327-4d03-a5c1-05f39a136cb5","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"29380af3-5e13-458d-b9f8-68e8823e4e06"}}}],"id":"f57a9dd3-feac-490c-9660-ea6cbf701103","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"dc405faf-61c4-42c6-8bb8-5667591dd229","savedPayload":{"position":{"x":43658.04888464141,"y":31406.061085318666},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"9c4108dc-a5d2-465d-9aa0-732a9e604527","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"aa571111-7fa6-47af-8d0e-d28d1bd63c06","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"da9fefed-e22b-41ee-a0f7-2b4072e9f4b5"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"6893b88d-05fa-41e2-b33a-4f1652aefa9d","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"b33da754-79d2-481a-a77f-26f2321e6295"}}}],"id":"e39b7b07-a2b6-4f9f-93a5-75575bad32e6","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"e1d5cd6f-3f2b-493a-acf2-6555e21f143d","savedPayload":{"position":{"x":43652.69782508665,"y":31535.066617155873},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"8fdea09a-5312-43b8-b190-a7b655d4358f","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"1a1211c1-f979-4f19-b308-323334f47af7","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"fa168789-a413-46ad-9be1-14ce21e9416e"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"606b63eb-78c0-4c8e-aa22-402b59af7cac","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"00a44ca4-769a-402d-936c-b9a99eebd51d"}}}],"id":"00df717b-13a2-4137-88f3-37601106661a","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"b2ed0b24-6212-462b-9c28-40ba0e0804c5","savedPayload":{"position":{"x":43611.20688087951,"y":31657.469111407027},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"69e8b43c-50f0-463c-a361-f39af7d73e73","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"36bf6024-a93b-4eb8-8a72-6b3936a3d074"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"df4e6979-dbd1-434d-95a3-3bd0508c81ab","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"6a04077d-7600-47d7-8bb4-9a7d924183c5"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"65731158-e538-4826-8533-935a7f5f3220","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"c55e3a9e-4e7b-4d80-ac9f-3bfe9c298e4f"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"ff8423fa-d103-4e3a-9681-9c4be48e057c","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"1eb5df1b-d900-4a4c-a52c-08b4999e2c7c"}}}],"id":"30246719-0910-4987-a856-a69f4be997ea","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"747ef0a0-3ae5-4981-a6c2-37f20512a07e","savedPayload":{"position":{"x":43536.79496124258,"y":31763.137411724038},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"d95a7aa5-9ed2-4fa6-9373-630754524157","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"cda1bc26-fb28-4dfc-b208-c13ae90d9325"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"df0ad8c6-0910-4cd2-a0d6-f2e70afc7653","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"2747e682-1f5d-42e3-b214-aa4c44e27e38"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"a78680dd-d17b-4203-8824-06689abba09b","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e14a9738-2d40-402b-8d05-deebff917392"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"3e80e34e-0fe3-48d0-9501-a6cb03f182f9","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"624fff3f-2b3c-4661-b300-5a7bdcc11bbb"}}}],"id":"03ab6b56-66d1-4efc-ba43-84bd24ce4e0c","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"d8b81824-01a1-4de1-b439-d66d836c0b7f","savedPayload":{"position":{"x":43435.440768418885,"y":31843.775863762567},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"8438c6f8-a715-4e7c-ba51-db9cdac0463b","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"d8e40b21-d6ae-4b71-9eab-1f8973e4d75f"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"cb95397c-d6b3-467c-b32a-e16d27f0aab5","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"32fc39eb-41eb-4c16-a09e-6212e310bbdc"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"09a8f5c9-45ac-4b30-b8ae-04f95586d0b2","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ecec6a92-8670-4780-a437-c6c52f4ab4e1"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"f75b1753-1eeb-4ac4-8aa7-912d9536dc18","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"baa8739c-6bcd-4477-9cf1-a36abc63997c"}}}],"id":"99854bd4-7421-406e-8614-dc7a9aee26aa","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"b3c7901f-1bfa-4463-8d18-755171dfd785","savedPayload":{"position":{"x":43315.88382944698,"y":31892.447057067795},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"98198a9a-1485-45d3-8685-109c77cb1bde","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"c7dec8c7-e6b1-4b6f-8ef2-f1f8da810f93","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"3d768e9d-96a8-4c16-b1f8-675cfdfd393f"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"ce53273e-2368-487d-9c9b-8ac619471d54","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"67d41dbf-de97-4c8f-9bec-bb7cea7d03e5"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"2e705053-2b5b-4407-8d9a-3e0c0a8f697c","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"b1f0e342-9392-4634-b384-3511864994cb"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"36092c59-afe6-45fc-aef9-257bf0955abc","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"de8acbc9-935e-4703-bf11-306b4ea9ed54"}}}],"id":"4444394a-5203-4936-a08b-26584f832fb7","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"3bb72989-cc32-4e46-9427-0a97f722dba9","savedPayload":{"position":{"x":43186.65662100337,"y":31905.298034708296},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"5c7d7c07-32ac-4968-9af9-57a6a339f8e4","savedPayload":{"position":{"x":12544.190567486092,"y":27015.246538174026},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":205,"y":1285},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bittrex XMR/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-09-08T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"d6b67115-1ca4-45d6-8fad-df990206e03d","savedPayload":{"position":{"x":43467.03775144197,"y":31080.151329830995},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 25.5,\n \"maxValue\": 96.93299,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"4d2a7cd9-0a34-49da-8bc4-b95c0409da82","savedPayload":{"position":{"x":43561.527396507714,"y":31168.986039090618},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"53742994-06ce-4951-8d57-01c77906b4a4","savedPayload":{"position":{"x":43626.91419659057,"y":31280.593924197423},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"745e067f-4e97-4690-bd21-53c6b8752043","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"24129a6d-299f-4cd8-83fe-e4f1c6b87afd"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bd2a2061-3540-4d74-9120-071e311aa3d6","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"8c9d7a33-7ade-40ab-ae2d-a8d30596ef07"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"61feac64-8253-40d8-ba7d-e908e37079eb","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"114cc3d4-7a23-4b46-ad19-1475e8bbe7ff"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0ce5b631-6b35-4823-bc09-c0ea2e37d41c","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"783f1572-8752-4d16-8cfc-fc37fcb3fec9"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"17b24370-1ca1-46a4-81e5-f4f921e7c79e","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"3cfe4e2c-9d01-400b-90d3-94f9d8a1c876"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"85a1303e-7bd3-4f80-8413-436a1b14d128","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"a28f24ee-8270-4d54-b6ff-838dd162567b"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ff7dc618-90aa-4184-99b7-cb41bd1507c2","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"5b223ab5-6bf4-4d60-90e7-8e43704c5298"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"939c7bec-6d5e-482f-83a2-8df17e1d8f94","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"9ba743d4-79ce-4c63-9819-cfd294301021"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"36d1528d-34f8-4c2d-a9ec-fc7f1bf76fad","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"8cef3346-a4c9-4ef7-9cbb-718048212fb1"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4236a7b2-cca3-43bc-b2bc-8e73ce283a7c","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"630b2f96-b9d8-40a4-876f-1d95e52cb614"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"56e7f543-de6a-41ae-85af-af06a29d4e3e","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"525934a3-f98c-4523-adf2-3e399dc94207"}}}],"id":"49d52ec0-8332-40bb-9413-98d7a512717b","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"9d6f3a83-a8d4-4876-96bf-b885da6d6424","savedPayload":{"position":{"x":43658.04888464141,"y":31406.061085318666},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"426b3a2b-c563-4102-af1c-64259297e058","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"5d1c9165-468e-4e1e-8203-277e01bae7f5","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"be103319-3dba-46a1-a512-bd75863dc1ca"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"23d78abc-66c7-4116-b03d-5abcaddd3dae","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"bd886d39-31b1-4fb2-9533-c6b4cd97f8ce"}}}],"id":"b2f57cc6-bdd9-4bd9-b774-238b39c57834","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"3b6b9564-81ab-4929-b5c1-c711c95cabae","savedPayload":{"position":{"x":43652.69782508665,"y":31535.066617155873},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"b0d552b5-ca99-4045-afb6-f5870b80e654","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"0f6221c0-4e4e-462a-b3f7-3fef049d25b5","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"1688bdf8-34ab-4a9b-8a24-0706486e37ac"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b0906478-8c15-4209-8a74-55ab501bd69c","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"d9389dd2-cf10-45db-974a-2a969017a69f"}}}],"id":"e703582d-a8b1-4f05-b60f-095a0977bb4e","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"3ba16a96-18de-4485-866b-e2a8aa7ae82f","savedPayload":{"position":{"x":43611.20688087951,"y":31657.469111407027},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"36f5f642-7c3f-450c-971a-204527d1c005","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"36b67f6b-e045-4aa5-8921-33e0e89613c5"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"8fd77e09-c83a-4712-ac40-77a107cba831","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"89e4d1f7-e908-40c6-b529-91e7aeca89f1"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"faf425e8-c0c0-48d4-abc1-af7d217d2006","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"cf095f0b-550e-42ff-9639-a219ad774d62"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"a0f4dfa1-d2d6-40eb-aa69-a8070767f9b6","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"376fa672-74da-438e-ae25-cb136638a7c0"}}}],"id":"47939f41-f5a8-4f48-8eb3-34d38156d8c0","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"285b140b-aeb2-4bb3-948a-505dfd4fbf8b","savedPayload":{"position":{"x":43536.79496124258,"y":31763.137411724038},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"3e8c572c-2ce8-4518-92a4-2423dcbef11e","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"ce51cd6b-1089-4723-b906-4f585858980c"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"57400340-3c52-44ec-bfa5-f6acc0d9e598","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c34f3c05-b8eb-4d88-9f1b-4d57779df192"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"42d5c734-df81-40db-a28e-9f0344aeebe9","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"2ad0b0cb-2e1c-46c5-a276-aaa539522594"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"f20922ad-a45f-4085-9ca9-36c23d8841ba","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"11fa0f86-67f1-4e87-b7f2-aee4e8792449"}}}],"id":"25025875-c3f9-4867-a54f-0e6a91d02abc","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"f9a7ef64-e186-49ce-abf6-8c547095b10d","savedPayload":{"position":{"x":43435.440768418885,"y":31843.775863762567},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"63e87608-5781-42b3-904c-9ccdaf3dfe1c","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5dd93efc-56a3-4a74-ac17-4e3e2457292e"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"2ade25a6-3775-4928-b0f0-03d96f07208d","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a4b4d498-c891-4f58-aa46-93cc5b9c5208"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"0f9f834e-9ba9-40d7-ae46-fc2d040186c1","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"a7d813d7-a2f1-4066-8bfd-85cc8b21220f"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"3fc5ac90-5573-4cdf-9450-7ef08d15633f","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"e67d54de-509a-488a-94e0-3905fb72efd8"}}}],"id":"9b7773d1-676e-4d0a-bc81-d2ee9e70d6eb","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"9f03759b-e703-4d9d-b3fc-531a65d9dcea","savedPayload":{"position":{"x":43315.88382944698,"y":31892.447057067795},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"2950f8e4-2413-4904-83ad-e37130d614fe","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"7d13100a-9f32-4147-8aae-e194801cf00c","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"d9c33815-a7d5-4815-a43d-c99515520cce"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"426d28fc-efcc-41a6-80f3-edff4d8b79d3","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"387fd1e7-bb69-45c1-9804-cafc63bcbf61"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"bb8ff28a-e945-46a9-b95e-ab94b952e250","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"420039a5-eae3-4ba7-9acc-1c1318a9eba8"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"fa59c278-13e9-4ae1-b75a-66dfd6d207a1","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"eb186e22-ccfb-44d7-9a01-8991a50590b1"}}}],"id":"802b0da6-6c1a-4b3b-b74a-c8f77f7c8999","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"8495e943-ca89-45e9-890c-24068f146e5a","savedPayload":{"position":{"x":43186.65662100337,"y":31905.298034708296},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"9aa1df83-16b0-49ad-8334-702ad42661ea","savedPayload":{"position":{"x":12318.83212006285,"y":26864.66803705838},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":205,"y":915},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bittrex DASH/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-09-19T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"f798ae15-6c70-4a78-ba42-1ef4bdf9a104","savedPayload":{"position":{"x":12242.539017837435,"y":27330.052664235678},"targetPosition":{"x":12168.398562963106,"y":26639.290068728485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"499b1e99-b7dd-442d-8e34-0b02b7481926","savedPayload":{"position":{"x":12044.956873700408,"y":27322.922336879245},"targetPosition":{"x":12168.398562963106,"y":26639.290068728485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"77cfecd4-074e-487f-a922-c47afce37bfd","savedPayload":{"position":{"x":11857.325521451061,"y":27260.474556338944},"targetPosition":{"x":12168.398562963106,"y":26639.290068728485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"66413c60-f06f-4002-ba15-abc66955a7ec","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"7e945760-2f5e-4a6a-b8a1-63d6bf969c12"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"88f46498-aade-47e6-b0f3-9bb5b186fdae","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6715685c-74c8-4516-8ab1-49eeaece7713"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e654285f-059d-41e2-be53-3020d632dc24","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"03cc5027-94c1-478f-a2cc-a5c099e15482"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9fa57fed-6015-4793-83d3-6992f7528d7c","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"c53e2a82-c1ba-4043-8fb9-46bad81e3cfc"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d795bc46-250e-47bc-bfc3-812503c5dd0e","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"74711701-3514-42cb-b16c-4fe04501c9da"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"82f330f1-a8c4-4ceb-ba8c-9985acd333a8","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5b06c63e-37ca-47ff-bf20-081739d9c38a"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e99570ff-aaeb-43ee-a0a7-11349643bcc9","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"1e6ca400-51e0-4072-a726-0b4b901038fb"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"921b7203-928c-4c1a-b252-75e2e1484ed9","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"37f637ed-bdcd-4c8a-a38a-b3e09a643a09"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a0bb25fb-f128-4324-a9d8-0589b3adee24","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"064e73d6-2711-4df9-8855-be1add07af09"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2bb1af6b-8e48-42e8-8f2c-f6a9761d88bb","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"a28f6c49-1568-4fc2-8952-e0d190952028"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"e1bd0ce4-03e8-4c27-bc7d-6f238df1c223","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"cf2f1a70-d040-49ad-8c12-4365d65e65e4"}}}],"id":"f70eba5d-8171-408a-9369-33e538b37e7a","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"8ad6721a-d641-46bc-8f2d-8fca14204472","savedPayload":{"position":{"x":11694.841817771925,"y":27147.652934492216},"targetPosition":{"x":12168.398562963106,"y":26639.290068728485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"a6f0b06e-a678-466d-90d1-48393be031f3","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"de9bef82-0364-4b77-9361-23a5116d426f","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"b4eed780-c1e0-485c-8fe8-c8d76cc7512b"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"641f9366-6fce-4793-a1ca-0effded3702c","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dfac4da5-7323-4184-ba24-b1ff67280657"}}}],"id":"74fb61ce-ba57-40ec-9e4d-61d43bef4830","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"5b76b065-6702-4df7-a208-05e0858675af","savedPayload":{"position":{"x":11570.861893597323,"y":26993.62721300323},"targetPosition":{"x":12168.398562963106,"y":26639.290068728485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"32afa259-40f8-43a2-b1b6-0b9fde81f74e","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"aa689de0-7537-4bca-bc25-583e1ea4f258","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"e2488001-ea36-4401-89e5-0667a7e3dc73"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bec2e7fd-5d31-41df-8b1c-11c4aa3c2e7c","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"4f1a0d64-3e63-4b11-ad98-5b03367f9aae"}}}],"id":"582422e6-5e71-4226-9dda-2460f94b22aa","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"c013a4a4-f5ff-4037-9c38-a5906cd1d4a6","savedPayload":{"position":{"x":11495.236119459521,"y":26810.968934735254},"targetPosition":{"x":12168.398562963106,"y":26639.290068728485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"2e6273bc-8a51-424c-939a-c9546701ffde","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"bc094603-dfcf-4af6-9719-7e38314b5445"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"2f7790ef-3420-4d93-bf0f-d7e9af66d3c0","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"f681de6b-9560-4ad9-8db1-c409ff0a8e1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"e6891bd7-74cb-4537-bf34-1e67e4cbec1a","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"1fb22c39-722e-45a4-b378-863485fc7cff"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"2e527aaa-8b86-4919-9e57-f5062eb3e8b5","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c9571265-f089-4923-b80c-66754acba5ef"}}}],"id":"a8cc5073-62ca-4d73-90c6-6bc88dcd86e7","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"596edd29-4c6b-4b97-a198-e455e4286442","savedPayload":{"position":{"x":11474.091764836332,"y":26614.658822098805},"targetPosition":{"x":12168.398562963106,"y":26639.290068728485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"5acf4019-119d-48f6-a1d4-c5616c0f9e20","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"5dba03b3-8b09-4fad-9c71-2ab7b7d7cbc1"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"0a3d3fd1-2a64-4309-b980-4d017005a3d8","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"6a68c7db-ee88-48c2-9f72-6753a87603c4"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"e45e08e2-3883-4346-8a8e-6659d6d4cdc2","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"7ccf95d9-f043-437e-b432-109bbc6c06de"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"217f3d0c-aae0-4dcd-a8a9-2ebd797eb02c","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"52a03dca-0715-448e-9420-b85073bce3f0"}}}],"id":"7dfb4d64-7f1e-4c51-ba71-1f5782a78f5b","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"272ab0b3-3c4d-4dda-b2e2-7f68418c8704","savedPayload":{"position":{"x":11509.151235464167,"y":26420.118773954895},"targetPosition":{"x":12168.398562963106,"y":26639.290068728485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"d86d2136-2fcc-4954-a51c-e756b28c25d2","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"41732108-e704-4eb2-8c6c-76f5627558b2"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"5cdab753-d7e2-448e-b4a4-541ba35e6bd7","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"67930474-7d75-442a-aa06-5ae4d3aa4213"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"f2c9a27e-85b1-47e8-bbcf-274bca205fb6","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"7f811c31-aec7-4047-b03d-47692072d780"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"cf7ec06d-db19-4037-a0ea-d13105bb7bde","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"8d0ce9f5-3c5c-4d87-afa1-b03f3bf67b41"}}}],"id":"55c2b6f2-0bbf-4576-989e-ae5e121d5d6c","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"1342c4b4-efab-46d1-abf5-998bb9b515af","savedPayload":{"position":{"x":11597.589401907544,"y":26243.279755235337},"targetPosition":{"x":12168.398562963106,"y":26639.290068728485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"7f5baf9e-30da-4a2d-b4b4-e44f6d3e9cfd","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"3c119fa9-2eeb-4532-9c46-e22d257ab1ff","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"4d31cfaf-7392-4643-9967-d2cd5a9c1e7b"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"915cbaf7-8b96-4c0e-9f8c-f2bcbb45710d","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"416f764e-fd99-473e-a32b-46028d1602df"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"cdb23808-7ab4-4e64-adb1-00fd616ddd08","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"279828ae-4faf-4889-bf99-6e5a6c953022"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"3e3e918a-c291-497b-883d-5cd27701d84f","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"cffbc046-0328-44d4-b7bb-43a668472303"}}}],"id":"6c2b97cc-9815-4c08-87e1-684b69682682","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"247422c1-b452-45a3-b162-3028b707a36c","savedPayload":{"position":{"x":11732.430405210289,"y":26098.35753048997},"targetPosition":{"x":12168.398562963106,"y":26639.290068728485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"4342f61d-9fda-439e-9a40-1ec20f79b6cf","savedPayload":{"position":{"x":12168.23323024405,"y":26639.31362512897},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":525,"y":915},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bittrex ADA/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-10-04T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"25ab8440-0f60-4711-8a41-b4275874e279","savedPayload":{"position":{"x":43467.03775144197,"y":31080.151329830995},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0.018,\n \"maxValue\": 0.07238747,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"576addc3-268a-463c-b2c0-56214a326f89","savedPayload":{"position":{"x":43561.527396507714,"y":31168.986039090618},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"a0acaa9f-35e1-4b74-aa48-edf9cc7b0b79","savedPayload":{"position":{"x":43626.91419659057,"y":31280.593924197423},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"8eca226c-e021-4b5c-99a6-06241297538c","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"676d3590-c67a-4403-a8f0-14a2538a1a5f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ecdc27da-2a3c-4c8e-a5f1-47013e4eef8e","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"57dbace3-f21d-4336-8b4d-c3fa743fb2bc"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b56969de-e818-47a7-bcd0-150487921004","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"cc0bb0f4-a972-4277-8224-dd5dca760dce"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"acdb1dd2-a0e0-4749-a739-574a33686b2f","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"cdf3935a-785a-4c94-9797-28946470c086"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ab5697a2-f3b8-46ea-b1b4-290de2d1593c","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5831c8dd-fcb9-4bc0-afad-11e7937ad2e0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c8d9398f-5d14-4d50-954c-5f5e75e92103","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"1ac0bdc6-fedd-4286-a5b4-4fc1f2f7c1ae"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"77565d33-335d-42a7-9ef3-8baf8aeae734","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"cee8f16c-6eee-4868-9fb7-f57e8c775cf3"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ee6d01c7-8084-41ba-8ba6-40e1d7c4a26c","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"25e6dff5-3ba9-442b-b536-adcd559ee2d3"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"03a2cd65-823d-4379-84b1-b3ceef5f0b81","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"2dbc595f-7ff8-45a3-8e38-37c0e6c83610"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b50e46a4-8c85-4389-a14b-3ec77741707f","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"955a28ac-68dc-4c4c-94cd-0e82151fa663"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"47eea6ee-c5ef-4cf5-b11a-44f48e7f0e8e","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"af11ac4b-527e-49eb-9413-69ba859a759a"}}}],"id":"a80e11bd-ba79-4018-b1f5-dce3ec5ddb7f","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"3fbccacd-0a03-47cf-911d-76795a08a06f","savedPayload":{"position":{"x":43658.04888464141,"y":31406.061085318666},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"005ff1a1-242d-4dfd-8d70-762feae35eba","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"b957e5b1-4c1d-465b-838b-8cf9f4ccfa28","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"33f0c26c-98ad-491b-b098-ff37c7c59995"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"c416d609-3efd-45cf-8cc5-8005830ce2f8","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"7867e419-40e4-4a5f-8f33-8c4397f75f21"}}}],"id":"305a675d-141e-492f-85bf-2f102a94b056","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"5f62bd81-8c5d-4f48-92ff-e9bb8a2e8905","savedPayload":{"position":{"x":43652.69782508665,"y":31535.066617155873},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"fa58f992-6447-4b87-bb72-7c309c354b34","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"ac45cec4-9cf5-4524-a527-029c3648c006","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"df6fd1cf-74ff-4e61-be51-9b06cab01fa8"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"de2e334a-b649-4edc-8357-c3d587e2362c","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"0dbfb0ff-5171-442b-82ed-570da924abf6"}}}],"id":"af672c3c-3bd7-4eeb-85ae-9a5a116b79a8","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"bb2f580e-684b-4f42-a5fa-f9762c5db8ef","savedPayload":{"position":{"x":43611.20688087951,"y":31657.469111407027},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"b31180fd-d074-4513-b18b-6a663fbc6d02","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"bb04889f-fdff-4fd3-88a6-f97e77271c1d"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"3997a9d5-0107-444c-a209-2dba92d84b0b","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"05a7b09f-6055-493e-b2d0-887899636eca"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"2477bda3-0a12-41df-a9b3-239154233db7","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"704e9216-68aa-46f3-ac92-cdbf203c0b7f"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"7e447ea8-1a65-4eec-8499-144942f419a9","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"f18ba50e-4f9d-4c28-8eac-183e04648fa3"}}}],"id":"4ba2879e-fcf9-402d-aad3-ea8f37672471","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"6b001cd1-f4ef-4fb0-bfa5-0de192542873","savedPayload":{"position":{"x":43536.79496124258,"y":31763.137411724038},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"0b97a35a-228b-4efe-84ed-3ce26ea8fa87","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"51f7f85f-bba9-4bb7-bc93-c6c5c3baf45b"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"5a5603bc-16d4-41d7-ac02-12d3722025ff","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"f9f5ca96-a8e8-478a-ba27-0f195906f988"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"092eae7f-8522-4c8a-a912-a0aed99673b6","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"9f19d9c1-4249-4afd-b5a9-3d147d0a859f"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"f21cb82b-6a49-445f-8947-2d913ac35493","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"521f9d2c-a329-466c-a863-97c4b0677396"}}}],"id":"ca4c1bd6-713d-4ed7-a971-fa3831661576","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"bf990832-2bb1-4064-bb8b-c920cbaa673e","savedPayload":{"position":{"x":43435.440768418885,"y":31843.775863762567},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"e0487468-1597-40f7-9a39-5d8cff6b965d","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"3b5e6c81-0d0f-4e3a-a4b3-00dd444ff6f8"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"44870311-8871-4f8a-9b20-ea34bf030714","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"a37b0471-9fbc-43fb-b822-247d6e3ba6d2"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"27414268-df26-4b2b-92e7-03d64ee27426","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e1389279-6ed3-4c84-adaa-e8fd3895851c"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"f594ff05-acaa-4f17-b2b0-e0b9f8edd0af","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"2b13c85c-dddc-4ede-9e29-6d9f04db2a1d"}}}],"id":"10461370-2063-4d85-8c69-2f22fb111be3","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"287d565f-960a-4571-b8fb-da2b467fa1f5","savedPayload":{"position":{"x":43315.88382944698,"y":31892.447057067795},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"3202021d-61a4-4fe7-8c52-159d2eef9163","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"86f9b0bf-a717-41ed-989a-8cfb44b16f6a","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"0abfcce3-d35a-42fd-9b46-4da30292ae18"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"7e2409b0-22f6-41f7-8ad6-0f668cc39b87","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c5f02796-ceec-4411-84f6-6a442fe78290"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"13c374ad-d81b-4a52-b85c-2920f4e2ee10","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"af68e659-088c-4465-8d9a-89c812176539"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"20c2bed6-62ea-46d8-bf9d-11a5e759ccb5","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"1bd17e94-9fa7-49f1-bb1e-ed2d9d536a87"}}}],"id":"e7aa1f52-1a22-4a02-a900-c9b13d4adeaa","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"60fb085b-58d3-4b3c-bef4-d3e8dd0b2071","savedPayload":{"position":{"x":43186.65662100337,"y":31905.298034708296},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"16fb50ea-e987-43eb-96d9-9de48aefe7f7","savedPayload":{"position":{"x":12115.340701923984,"y":26373.612714263494},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":525,"y":1095},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bittrex XLM/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-09-08T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"0aba6ded-5a24-4378-8002-7cfce24fbd4a","savedPayload":{"position":{"x":43467.03775144197,"y":31080.151329830995},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0.02625301,\n \"maxValue\": 0.117576,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"8f0ab5e0-143b-4b1e-93f1-154a66f02fb8","savedPayload":{"position":{"x":43561.527396507714,"y":31168.986039090618},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"e92c2eb3-bdbe-4dfa-a97d-11210f479cfc","savedPayload":{"position":{"x":43626.91419659057,"y":31280.593924197423},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"d7b628f3-820f-4972-b7ce-2e6cd721067e","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"aa32aafa-031f-4145-b603-5ec1bdf9f90f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4b627d86-2266-4216-a5e2-1d4f3bb728b5","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"c752b09e-7799-48e6-8334-1ef08500b44f"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b0717db5-e3a0-4990-b11c-838754568d5b","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"a9c259f2-f329-4e9f-ac6c-00a244911e34"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"821b0752-284e-4a3d-b0eb-58fa231bf38e","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"0da64f32-5744-45c2-99f2-473c3320db7a"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2d63a581-ed3f-419a-b0d7-c66b5498b678","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"44cc8cd8-ade6-461e-a794-6a65c98045db"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2e9370ad-77d8-45c7-adc7-17c10628820d","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"74c7c5f9-9035-417c-a18a-a045a2963ec7"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bf22b3cf-e51b-45cf-bd5b-467fbdbe1ef7","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"719ba43d-5816-4c2e-8848-ef1d43ec93fc"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"45ec95f5-d4f4-4353-b8fe-6eefd93784d4","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"7469215d-9a3e-4f84-bda0-708c1a5aad8b"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"62846e71-442f-43e7-9c8d-6283721303df","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"943c6f07-bb0a-483f-bf7e-816c483ca392"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f31a6463-4395-4240-9d5a-8bf95939a5c9","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"c1f58cd1-f4f3-4304-89d7-58eabd36c39c"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"1186b08e-7083-417f-bdb5-1773e64eb071","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"d1fbafdb-3866-48b0-a762-75c92db76b5c"}}}],"id":"6200ff2f-b0d2-4bd4-9e85-5c479212b224","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"772f3f41-7ca0-4e84-9eb9-de1a9e26a704","savedPayload":{"position":{"x":43658.04888464141,"y":31406.061085318666},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3443.5736667147758,\n \"maxValue\": 12347.594930489768,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"4e73e64e-a128-4708-b408-a34a1a13cca4","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"6f534769-d37f-413d-ac01-46ea970ac06a","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"c06b9de8-0c58-4913-8974-849a905e5712"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"3c3c2cf1-24c3-4f4b-bce7-fe5df385974c","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"871af703-3126-4ba4-a5e8-f4c4b702c37d"}}}],"id":"6430cf09-5c29-421d-bef5-c80a9b013496","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"e114cd7f-08b3-4d9e-84c6-7db324a31ab6","savedPayload":{"position":{"x":43652.69782508665,"y":31535.066617155873},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 206.96287732480573,\n \"maxValue\": 1017.5507610413688,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"95477f50-c05e-4f7c-8897-41448bfedc86","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"42d28acc-84a1-4ac9-8b45-e73a92fa3d7f","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"f1729cb6-3281-4153-aca4-c3d55b7c3313"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3b4c5989-8a33-464e-bca5-f40c2623562c","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"1e6c556d-9ab6-4a8b-aa8f-590fde88d57f"}}}],"id":"8b614609-a168-4c32-b935-54b342827477","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"bc34f474-b38f-4aa2-b1c3-edc87dc82561","savedPayload":{"position":{"x":43611.20688087951,"y":31657.469111407027},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"3b6ea7e9-d72a-4cbc-985c-7bc30f6a5ffc","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"0c7e97b7-229f-4050-b1ed-c2a5ea580e99"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"d28e2015-bef9-4e97-abce-cb65096ce753","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"c01f958c-cb21-4ce3-ab88-b6fda75beacc"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"15699657-7d4c-4a57-8763-b98c93ebd9b8","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"61050c65-666e-4c0a-bcb9-574f7c784d62"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"e43fce4f-6fd8-41ed-af8c-9c04967c409a","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"2006d040-1a5b-42da-9a5d-f743c5e485dc"}}}],"id":"1287e79b-770e-4b09-84dd-aeb3c36da0d1","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"d07c34b9-a433-4a61-82e6-ffa534bff5aa","savedPayload":{"position":{"x":43536.79496124258,"y":31763.137411724038},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"72941cc4-e9bd-4e2f-bbac-2285531b822b","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"8570fcc4-1540-4655-8981-a144e23c7b74"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"245a7ec1-c54b-496a-9ae6-4069d542458d","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"cba69468-1486-4701-9ce8-983b2e511338"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"1a987cd2-cf9e-4db8-aa67-e9daa6e0d682","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"a6624e8c-be23-40cf-9adc-01bae842fffd"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"bb84b37c-fea0-4f33-b825-4f70e260ed2d","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"3276a4db-523a-40d0-8efa-81929e56b293"}}}],"id":"3a8f723b-0727-4b30-9535-7ad70e761358","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"968bea7e-9f2b-425e-9564-c615decc4dea","savedPayload":{"position":{"x":43435.440768418885,"y":31843.775863762567},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"8eb202b1-3d34-45db-a40f-bf3dc52aab7a","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"45734d6c-4eb4-47d3-a174-ca8602e9d1c5"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"e44d4393-3058-4379-8066-8a92b28a7716","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"312629a6-a311-4aae-82c5-e368fab3ddd1"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"2bebd8c1-7a52-49c9-a431-c363f50d3dee","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"9c3cf892-db60-4612-98d4-a64a652c8283"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"afe2cd83-5709-4414-869f-d6e653c05252","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"294c111d-4979-4069-af28-f7aa864d727c"}}}],"id":"cfd09330-7fdd-47c6-9bb5-0a1386c550df","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"96f18e0c-4907-40b6-b8ca-c13dd662fe6f","savedPayload":{"position":{"x":43315.88382944698,"y":31892.447057067795},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"26d76c1f-2141-410b-8bc2-b104129513c4","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"11c79389-268e-4185-9203-b60e0b5b9344","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"3418d995-3368-4cc9-bb1c-e2c53d32bd8d"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"421e4006-c4ff-4d2b-852f-fe0a1d5613c5","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"e800ad8b-46de-4e11-b385-90bef32fa896"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"c7a788a2-91ec-4d23-8d94-4b73db5fe1f4","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"e79a60ce-c2d0-4bec-8684-9b25fdd0ec1f"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"d67b2609-80c2-4f9e-a8f0-4debb72b76d5","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"a0af9c6f-cf3a-4616-9097-a0c7d90a6226"}}}],"id":"1ec1430b-ea50-4180-b8cd-6d66f4ca0392","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"39391121-d2d7-4c3e-b051-cb260398ca12","savedPayload":{"position":{"x":43186.65662100337,"y":31905.298034708296},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"0d4be349-4004-4956-b206-764d3646c09e","savedPayload":{"position":{"x":12168.219560147796,"y":26107.919269170096},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-115,"y":1095},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bittrex EOS/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-09-08T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"fda45f5e-96ba-4b3f-b3f7-9f38b6c97ed7","savedPayload":{"position":{"x":43467.03775144197,"y":31080.151329830995},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 1.39185562,\n \"maxValue\": 5.48180271,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"a90621c8-2d65-4d20-be4d-242cfb9f6e27","savedPayload":{"position":{"x":43561.527396507714,"y":31168.986039090618},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"d089a7f2-4a80-4786-bd9d-79073e0630b5","savedPayload":{"position":{"x":43626.91419659057,"y":31280.593924197423},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"4065b681-f91f-40c8-9c51-04168b7484e1","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"c3375de6-eaac-4749-8dcf-20b3b8f6221b"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6e23a8bd-5703-45cc-ac1a-79ee149d28ba","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"c61f8141-f31d-4587-9040-1fe408be3653"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0525188f-2621-4fc7-954c-f5ea45b9a3fe","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"7a2252ae-b840-454c-8d08-9349ab592baf"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2c1c1fe6-aae4-42fe-a79d-c5ee1526ff6b","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"038207b5-89a4-4f18-8aed-79d4ac08cc71"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f4745893-9550-45b4-9de3-2b4c7d27473e","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"7d9cc2d5-7e07-4fc1-9b44-de17a50ecda7"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"eab8c22a-40f6-45a6-b934-9e24058cad3e","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"f97763a9-0585-418e-a013-406b755918d1"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3f34b84b-93e0-4319-b470-4afd693e99a3","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"7c3fdbbe-15af-4413-ba01-28731c4996f8"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"af329d3e-40a6-464f-9a01-414034456b93","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"1d628676-9d0a-4cb0-9643-e0b0c7b4a39e"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"867585cd-9769-4121-8b73-68e041df22b5","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"86b94c79-5dc0-405a-a0f0-49a804e81f1b"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8a578303-b816-440f-9807-1976a8401d63","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"c32d535b-3452-4425-ac20-4b95a234b58e"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"7cd30016-2149-47c6-a141-b75fa58d2e87","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"6f573749-46ec-43db-8e10-005584abd226"}}}],"id":"bc12a389-b909-4459-8491-024261e88025","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"a9967d7b-dc33-4fe2-846d-8abe8f2efdeb","savedPayload":{"position":{"x":43658.04888464141,"y":31406.061085318666},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"0259b985-e490-445c-b9da-8a78085b9523","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"65514c3a-5a77-4106-b9f0-44df3a20b607","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"97d13f00-a7f6-432d-97f9-b6192c2f105c"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"f321fe10-d3d0-4bd1-a2f0-66754810a9a4","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"586fc9e2-7af3-4c80-ae24-470dbd45f8c3"}}}],"id":"72902c48-8223-4e2f-8263-6b84864a2e7d","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"4d9586a0-6b4c-48ee-b1ff-0c4790aec062","savedPayload":{"position":{"x":43652.69782508665,"y":31535.066617155873},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"c49c4e27-283b-4830-89b9-57febad52f69","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"e71b9860-ba38-4976-9fe3-b5f99c593696","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"b2d24a9e-3f8d-49ae-992f-1a01665e47d3"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ac6fcb00-a31b-4389-ab45-25b1f8b03456","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"938311d3-031c-4d6a-9026-021f93b44a92"}}}],"id":"2576cd4d-533c-409b-9ba8-335ecc91283e","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"8ef0374f-3466-4ccf-af61-69ce36d3a43b","savedPayload":{"position":{"x":43611.20688087951,"y":31657.469111407027},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"6f726fbb-4c3d-430b-920e-7f0fab39bff4","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"f316a762-6150-4cdb-af7a-803cb270e003"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"515cf5dd-4448-44bf-9a3b-36430a89c67d","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"35e7bc43-56a9-4d59-beb5-ecb5af48c3ec"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"74f51004-7452-40c7-a744-fb6c6721e6b7","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"c5c1444b-78dc-4e15-a57c-424cfc2f9419"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"362d4a24-24fe-4b5b-9ab1-89ae10580e9d","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"d68ad125-8a89-4ed3-824c-daab0b234784"}}}],"id":"97166df8-b3e0-4862-a2bd-b935dfe19e6b","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"78c51743-8f0c-4740-8cc6-3810e43ccedd","savedPayload":{"position":{"x":43536.79496124258,"y":31763.137411724038},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"36b38679-1309-4040-b5bf-9853b92a12ac","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"63735723-2048-4098-98a2-06af6ffdfdc6"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"0d2920c8-aded-4278-b12c-986a74363239","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"4a2699f4-4f7a-447f-be24-304f258d8e74"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"8c5e9c47-9cf4-4e6e-b8bc-7bc41bf6681b","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"682fc355-292f-46d6-bf1d-dec01ba1dc69"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"3df67934-80ad-43bf-9935-afe696512952","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"593144bb-ccf6-443d-96ab-b703e24d938a"}}}],"id":"09aec20f-cb79-4a1a-8786-6540930f6952","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"947a2a2f-ed3d-4d66-a90c-7f1a00710960","savedPayload":{"position":{"x":43435.440768418885,"y":31843.775863762567},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"1dad0a1c-8485-451f-b135-ece46d755f50","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"0f58ea74-8fbf-4237-b8a3-daff756c62f3"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"0a9d83cb-2096-4377-97b6-4ed67124aada","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0bd1f467-467d-42bd-9aef-d93b45828d30"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"fddd88e8-cd87-4d02-b370-ff3081cc1da4","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"33e03c0c-7631-4184-8154-5e4244db54a3"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"c062ef5a-6b22-4f6e-b373-fdc797e4b4ce","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"030d087b-5c3c-46f0-8c2d-7505f949ff01"}}}],"id":"71428a42-463d-453c-a7e8-f11eb5b139b1","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"ca299fde-1d38-44dc-ac12-ccd847ddb17d","savedPayload":{"position":{"x":43315.88382944698,"y":31892.447057067795},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"289fa42a-373a-4a23-84b5-3f601b3668fe","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"aafcc37c-d27b-4f19-beae-9ea1cb41d7b7","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"ae350008-bc89-49fb-99c4-82bf8da52ba8"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"28a4f0f5-8d26-401a-a5cc-c7617940f4eb","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"0403ce53-e37c-4f40-9758-779e77b3a5f1"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"ea72a8fa-8b49-40ea-b45d-4c8553e6253d","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"43088d96-085c-42ac-83de-56ca63258617"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"9882643e-52f2-4cb9-8f12-2dbd2a4b410c","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"d24bc71f-bccd-45a2-85a1-95a25fbbe71c"}}}],"id":"936b2e7d-6b5e-4ae6-8bf1-25beffeabac0","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"ded04d17-46b8-461e-af59-547f157e529f","savedPayload":{"position":{"x":43186.65662100337,"y":31905.298034708296},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"1d1244e0-347f-4789-8129-0d0e9a4732e0","savedPayload":{"position":{"x":12318.831965118645,"y":25882.594146216445},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":205,"y":1095},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Bittrex TRX/USDT","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-09-22T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"808cea4b-1f44-4353-9260-e46122b7ef70","savedPayload":{"position":{"x":43467.03775144197,"y":31080.151329830995},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 0.0070674,\n \"maxValue\": 0.02689,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"13cc9921-e78d-435c-8691-d593cffb26cd","savedPayload":{"position":{"x":43561.527396507714,"y":31168.986039090618},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"4d3b96bd-b685-4bad-828e-1e4cc42b21f1","savedPayload":{"position":{"x":43626.91419659057,"y":31280.593924197423},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"e726f2c6-ecce-4eb0-ba78-ec9f79586113","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"c95d0bd6-9908-46b5-9165-b7373c9ff6ff"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"875cc674-8d0d-40f6-b364-92bcd15bb59a","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"2781934f-e6be-4037-a28c-67b8471d8ebe"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9ca10fb6-294e-4ad5-a7c7-8c295429a34c","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"f1cd18dd-5d1b-4e99-a7ae-8708c9785190"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4738d490-d886-458d-83c7-5e52939fd5ac","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"2cb92069-24c8-4f85-935b-f134bd77ae07"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6dc36006-a580-4285-b3eb-f90ca4b9b806","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"8a0f0078-75f3-4d31-8501-60898501373c"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ec7b3d67-2113-4cbc-ae02-4d98d08f0d6c","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"dccba5a5-82ae-480e-876e-616d3f52bea0"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"154ed5d3-ea85-475d-b2b4-6e411f3a6f57","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"e7e18307-e621-494a-96d1-4c73fe15cfd1"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"aa05519a-cf9b-4c46-ba14-d61bdbddcd46","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"3ff2c212-dabf-4dad-99ff-1f13a76f3f2d"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"fea88d70-ff42-4556-aca4-b67f91cca9e3","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"1a108b6c-6275-4da2-80c1-59034235d9e3"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"23f5daf7-74ef-48c4-bd8e-b25cdd309e0a","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"a2bb8510-184f-41ed-a834-74d20eb9cb35"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"4f6aad2f-6d44-4b2a-8c22-c836364513cd","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44355.94026088997,"y":31262.571162451717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"ad4026ae-961e-49fb-aea7-2105966287c8"}}}],"id":"813c34e8-b209-485f-b899-56ab8bc1b709","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"a5f6a7c1-f24e-40e7-b52a-39c6b25fffee","savedPayload":{"position":{"x":43658.04888464141,"y":31406.061085318666},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 8884.36975225471,\n \"maxValue\": 17788.391016029702,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"680cf3b4-7701-4436-ad41-7e50635ce795","savedPayload":{"position":{"x":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"3eee4cff-9249-4bf4-aa72-aa1df22a965b","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"26d9ec55-5f32-425b-9b32-73afa5d98283"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"039ec43d-d7eb-40de-8059-1290dd625b18","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"67d43a54-0234-4008-aba9-6be0080f6fc0"}}}],"id":"5a978f7a-d9e4-4d57-81e2-b016b3500834","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"4d698154-0b94-4dfd-b3de-90ac5b930842","savedPayload":{"position":{"x":43652.69782508665,"y":31535.066617155873},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 702.2720476492029,\n \"maxValue\": 1512.859931365766,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"9573cd7f-2e7b-440b-8519-c2115fdc8726","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"c16a06b2-4118-4bd8-828c-6cdeb4b3a7d1","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"347e842f-53c0-4e86-9fb3-c0af264be17d"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8cfe1785-76b0-42cb-a692-58e511aba9bb","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"91ebe5fc-d3ad-4e9b-aa5b-b57029ea8629"}}}],"id":"4e5d3967-b0c7-4eb0-86a0-e9474285ee94","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":40,"radius":0}}},"id":"59545ef9-324e-405c-8693-eadf2029d10a","savedPayload":{"position":{"x":43611.20688087951,"y":31657.469111407027},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"4633d9ce-460e-47be-804c-cdd81d29f270","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"750b507c-403a-4129-9994-9ae47e5490ca"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"072ba1d8-7137-4fad-aa47-8863431b64aa","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"4d53fa0f-3d63-487b-9038-a20cda44ea08"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"05c6b325-78d9-4840-ab89-8f31b9da80b8","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"06949030-7c58-4e05-ab36-377b3af6a209"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"d0a69c33-e4ba-4723-9a6d-604e306f026c","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"86d2eba5-d6c0-4c01-800b-7e588dbcfe9d"}}}],"id":"b0e31f99-f0ef-4468-89d2-e1b6aadb7149","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"5ba918dd-0371-4771-8ca2-5ebbd788a905","savedPayload":{"position":{"x":43536.79496124258,"y":31763.137411724038},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"268a2680-f2da-48df-b9dd-1a1a8bd392fc","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"6b22c3fc-9f1c-46c5-b523-2b304a413638"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"dc9d2234-c1bc-4011-b088-9ca54a2a4582","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"5d5e60f6-d08f-42d4-8abe-5444ed489407"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"852f60ac-5ee0-491b-9c6e-770cb460e425","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"86f69bbf-ad6e-4fc2-b659-a426854215d3"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"b3276648-73d4-4eed-b2cb-9b820814934b","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"18608e8d-8a44-4db7-a4d8-6e8534acc63e"}}}],"id":"acc3436b-3b50-4dce-8fcc-128e029f350d","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"a7ea2bb7-aadf-45ab-80e2-89c9b88bc95f","savedPayload":{"position":{"x":43435.440768418885,"y":31843.775863762567},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"68d2739d-1c8b-4178-a3f0-7b4281a9fa4a","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"b13a7784-3575-4440-aa82-6340188b0b72"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"6689e1c5-91d6-4c15-88b0-083e1d7e45c6","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"751d2e31-7208-4cc4-b9cd-da19c43f06a9"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"2a3727fc-4edf-4ca0-892a-da02af69787c","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"fc00c932-bbb3-4378-a664-7d8c3cf8430f"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"a5dcb91e-8787-4b74-babc-736b8236667a","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"2a9592f9-f927-45cb-903b-c84dfc5a66f9"}}}],"id":"e31af14b-6bbb-492b-a37d-cedff41336d9","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"3d146df9-3eeb-430f-a0bb-817657c63fa3","savedPayload":{"position":{"x":43315.88382944698,"y":31892.447057067795},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"c8866f64-dca8-49b3-be55-453f0d1ddb54","savedPayload":{"position":{"x":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"8a02a7e2-6d00-48bf-b0a0-f76ea066875e","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"7d52090c-8c08-44be-b5c7-e6622a36a3fa"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"239f0f03-75cc-429b-a7b8-8eaaa378abe3","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"deaf1cd5-26ac-4f5a-9d5a-7f3b59f6227e"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"eff7e9c4-4c17-4714-9148-50fb0fe57af4","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"b9cbfd0c-f343-4910-a349-722fe7c59455"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"b583a0b3-4611-4cd1-ac89-bf12a164f209","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"4652dbae-7a1a-4ac6-80a0-36f1f313db9b"}}}],"id":"4b9e86da-0977-47b0-a432-7fa034b35b8f","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1920,"y":80},"width":150,"height":40,"radius":0}}},"id":"b7720aa4-9fe1-4103-95fe-f582f9b6b091","savedPayload":{"position":{"x":43186.65662100337,"y":31905.298034708296},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"63bf4537-db67-4887-99b0-a975c946cd78","savedPayload":{"position":{"x":12544.44585291772,"y":25732.022274892755},"targetPosition":{"x":12809.903295371514,"y":26373.610784042445},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":525,"y":1285},"width":240,"height":112.375,"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},"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-05-30T17:49:03.391Z\",\n \"toDate\": \"2019-06-10T14:11:36.243Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"17164ce0-e188-4f61-a6b6-f11d2a4519f3","savedPayload":{"position":{"x":6917.524779250556,"y":23331.255656002362},"targetPosition":{"x":7589.7867088495295,"y":23242.638087496765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 5095.026,\n \"maxValue\": 8982.576546530427,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"091c2910-dc3f-4eb0-82e2-3f966148a57b","savedPayload":{"position":{"x":6934.766686625802,"y":23067.248121877732},"targetPosition":{"x":7589.7867088495295,"y":23242.638087496765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"69101c76-4a52-4fca-aa48-90e8cd740d62","savedPayload":{"position":{"x":7051.802814323115,"y":22829.87444964267},"targetPosition":{"x":7589.7867088495295,"y":23242.638087496765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"86f8ede9-cdde-49ab-8eb0-80a084469629","savedPayload":{"position":{"x":116840.3687162035,"y":41588.358999814925},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"9a0648e3-9103-4262-8453-e1eb8e897cf6","savedPayload":{"position":{"x":116894.11042975368,"y":41604.48693393012},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a82a8f4d-ce42-4ab2-8ab4-afdc32dae587","savedPayload":{"position":{"x":116941.84672231365,"y":41633.97470099991},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"34dca441-0f1f-48b1-83b2-f832e9e84567","savedPayload":{"position":{"x":116980.32444443343,"y":41674.812758429325},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d35610a7-cb9e-4483-8fd7-0d4306e053c1","savedPayload":{"position":{"x":117006.92140293795,"y":41724.21806009264},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"d3d232e8-6497-4ce3-93a0-22706138e02c","savedPayload":{"position":{"x":117019.82505905871,"y":41778.823716327606},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e0418824-d8d9-42a4-a48c-67b526de9131","savedPayload":{"position":{"x":117018.15604995539,"y":41834.90844190192},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bce60cae-4cd4-4741-a15e-6d3643d55d43","savedPayload":{"position":{"x":117002.0281158402,"y":41888.65015545211},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"795fd48e-6586-49e6-a3c8-d69b1f719b8e","savedPayload":{"position":{"x":116972.5403487704,"y":41936.38644801208},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"67090f12-e990-4318-9fd7-c4555f84bca8","savedPayload":{"position":{"x":116931.70229134099,"y":41974.864170131856},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"df2c54c7-80f5-43d8-8738-6b302becc671","savedPayload":{"position":{"x":116882.29698967769,"y":42001.461128636394},"targetPosition":{"x":116805.98766203596,"y":41800.52738773437},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"f628bc51-22b9-4dab-b580-854807ac89f9","savedPayload":{"position":{"x":116805.98766203596,"y":41800.52738773437},"targetPosition":{"x":116592.15026501317,"y":41822.23105914115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"6d0535e8-7b4d-41a9-b69b-bc492489e887","savedPayload":{"position":{"x":7250.768211658769,"y":22655.37961960181},"targetPosition":{"x":7589.7867088495295,"y":23242.638087496765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 197.81424298627098,\n \"maxValue\": 25205.861742986268,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"e4f134b0-01cd-4ee1-b35b-48c959dcbeaf","savedPayload":{"position":{"x":115600.72836665327,"y":42104.78663324291},"targetPosition":{"x":115773.23308539884,"y":41992.76075902714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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\": true\n}","id":"2305a842-5dc8-41a3-95c4-020a2254ec5b","savedPayload":{"position":{"x":116992.23361843485,"y":42076.6628334487},"targetPosition":{"x":115567.82667958461,"y":42003.525652606375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"e83f9583-ab4b-4a2d-bc64-af890f6b58a2","savedPayload":{"position":{"x":116944.21589296153,"y":42177.02655178886},"targetPosition":{"x":115567.82667958461,"y":42003.525652606375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"83fd99ad-46c2-49c0-a859-853ab896e5fd","savedPayload":{"position":{"x":115567.82667958461,"y":42003.525652606375},"targetPosition":{"x":115773.23308539884,"y":41992.76075902714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"317bcd57-4eea-4b51-bce6-9d697a40d164","savedPayload":{"position":{"x":7501.367964730182,"y":22570.318386351722},"targetPosition":{"x":7589.7867088495295,"y":23242.638087496765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 583.740189448022,\n \"maxValue\": 1394.328073164585,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"78a31691-de93-4fe4-9416-255f5fa77212","savedPayload":{"position":{"x":116758.0183403381,"y":42104.77776218903},"targetPosition":{"x":116547.72618366357,"y":42060.340271719935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"d025e514-53b6-4d35-9218-2b79fa3f9d03","savedPayload":{"position":{"x":116899.25114467378,"y":42301.321280566466},"targetPosition":{"x":116707.62578832578,"y":42203.97034568385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d33c8613-a912-45d0-8b4a-db3d2f1db1b6","savedPayload":{"position":{"x":116824.90274749107,"y":42384.09140654835},"targetPosition":{"x":116707.62578832578,"y":42203.97034568385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"68793b77-371a-4b2e-accf-6baad68449a8","savedPayload":{"position":{"x":116707.62578832578,"y":42203.97034568385},"targetPosition":{"x":116547.72618366357,"y":42060.340271719935},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"824519c2-9e48-45b6-82b5-b32e889ccac8","savedPayload":{"position":{"x":7765.258931363409,"y":22587.64957663342},"targetPosition":{"x":7589.7867088495295,"y":23242.638087496765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"c75ff052-0534-4e77-b5a8-c01cdcb4eac8","savedPayload":{"position":{"x":116193.51327634657,"y":42504.886066989624},"targetPosition":{"x":116146.57652047138,"y":42295.137592225394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"1f83bd1d-af51-4b76-b4a4-5e0473da324b","savedPayload":{"position":{"x":116118.24574973366,"y":42712.170979484814},"targetPosition":{"x":116082.35070604841,"y":42500.25347771385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"on\"\n}","id":"16154e1d-2956-40aa-977e-42b42aa4cf03","savedPayload":{"position":{"x":116051.00281179526,"y":42712.89117720269},"targetPosition":{"x":116082.35070604841,"y":42500.25347771385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"95585ffc-5cb1-46c0-89ac-533896ef8ac4","savedPayload":{"position":{"x":115986.82842415998,"y":42692.796915360625},"targetPosition":{"x":116082.35070604841,"y":42500.25347771385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"6fe9a202-11a0-48ab-97db-bf54ae12de96","savedPayload":{"position":{"x":115932.00442301879,"y":42653.85516031268},"targetPosition":{"x":116082.35070604841,"y":42500.25347771385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"65250e9e-b52b-4cae-8b01-cf8984f25040","savedPayload":{"position":{"x":116082.35070604841,"y":42500.25347771385},"targetPosition":{"x":116146.57652047138,"y":42295.137592225394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"e882a987-4376-4438-ab51-a3e9ba8f1ec9","savedPayload":{"position":{"x":8002.690209907927,"y":22704.82160966829},"targetPosition":{"x":7589.7867088495295,"y":23242.638087496765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"376936f3-653f-4ae9-ba31-42be5d406a00","savedPayload":{"position":{"x":12031.113993613748,"y":24390.756693834483},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":-455,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #2 ","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-06-26T05:15:46.177Z\",\n \"toDate\": \"2019-07-07T01:38:19.029Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"f7a1d084-2b9e-49a9-9393-24fe5ad76064","savedPayload":{"position":{"x":7449.027243977503,"y":23441.402226004295},"targetPosition":{"x":8121.289173576476,"y":23352.784657498698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 7005.437400000001,\n \"maxValue\": 14038.612042582934,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"f27affc0-5bb5-4c51-89c6-69d06bac2948","savedPayload":{"position":{"x":7466.269151352749,"y":23177.394691879665},"targetPosition":{"x":8121.289173576476,"y":23352.784657498698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"30d952b9-9b00-4328-9cb8-4802d4645daf","savedPayload":{"position":{"x":7583.3052790500615,"y":22940.021019644602},"targetPosition":{"x":8121.289173576476,"y":23352.784657498698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"f1c2ec3b-5595-4100-a3c2-2728585be673","savedPayload":{"position":{"x":117371.87118093045,"y":41698.50556981686},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"481d7a09-6df1-46ee-9234-87045cd0f7fd","savedPayload":{"position":{"x":117425.61289448063,"y":41714.633503932055},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8c62ad0e-c194-4476-83d5-44ccbd503707","savedPayload":{"position":{"x":117473.3491870406,"y":41744.121271001844},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3e6b41b0-0138-40bc-a1b6-300305675d1a","savedPayload":{"position":{"x":117511.82690916037,"y":41784.95932843126},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4634e23c-0302-4d88-8599-af018a5ae897","savedPayload":{"position":{"x":117538.4238676649,"y":41834.36463009457},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"48e0e4a3-7e46-4e29-a6fd-f8deff202696","savedPayload":{"position":{"x":117551.32752378566,"y":41888.97028632954},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"74d216e9-808d-4524-852e-f10a7f487d4f","savedPayload":{"position":{"x":117549.65851468233,"y":41945.05501190385},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"fcaa0b10-5601-4573-a4a5-6f49615a826a","savedPayload":{"position":{"x":117533.53058056715,"y":41998.79672545404},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1a2136c6-c757-4f80-920f-4125bdfe80bb","savedPayload":{"position":{"x":117504.04281349735,"y":42046.533018014015},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b76582b5-a7de-460e-a8df-d00f8256ba45","savedPayload":{"position":{"x":117463.20475606793,"y":42085.01074013379},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"9ca82c89-8fc8-4a84-aee9-3857d81f0f0c","savedPayload":{"position":{"x":117413.79945440464,"y":42111.60769863833},"targetPosition":{"x":117337.4901267629,"y":41910.673957736304},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"bf720e40-4f76-4c25-b78c-8a5649c767b6","savedPayload":{"position":{"x":117337.4901267629,"y":41910.673957736304},"targetPosition":{"x":117123.65272974012,"y":41932.377629143084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"77c7556f-6c27-41a6-9898-01eec7c914c0","savedPayload":{"position":{"x":7782.270676385716,"y":22765.52618960374},"targetPosition":{"x":8121.289173576476,"y":23352.784657498698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3179.457351882742,\n \"maxValue\": 12083.478615657734,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"08d499b6-10b7-422e-afd2-f40a9053d659","savedPayload":{"position":{"x":116132.23083138022,"y":42214.933203244844},"targetPosition":{"x":116304.73555012578,"y":42102.90732902907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"bbcd0365-2644-4292-96e0-d7c2192b532c","savedPayload":{"position":{"x":117523.7360831618,"y":42186.809403450636},"targetPosition":{"x":116099.32914431156,"y":42113.67222260831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"02d5ba19-f5a6-4df4-911b-653eeffa1c5e","savedPayload":{"position":{"x":117475.71835768847,"y":42287.173121790795},"targetPosition":{"x":116099.32914431156,"y":42113.67222260831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"202e9cac-ea73-4653-89a2-2bf405cf6243","savedPayload":{"position":{"x":116099.32914431156,"y":42113.67222260831},"targetPosition":{"x":116304.73555012578,"y":42102.90732902907},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"811dbdb1-2949-4757-ab03-c18d7d1c7666","savedPayload":{"position":{"x":8032.870429457129,"y":22680.464956353655},"targetPosition":{"x":8121.289173576476,"y":23352.784657498698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 182.91874284303947,\n \"maxValue\": 993.5066265596025,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"7e64ffc5-eec3-4a66-a9f9-09012827d73e","savedPayload":{"position":{"x":117289.52080506504,"y":42214.92433219096},"targetPosition":{"x":117079.22864839052,"y":42170.48684172187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"ed65f1c9-f2ae-4028-aa0b-4fc957fab259","savedPayload":{"position":{"x":117430.75360940072,"y":42411.4678505684},"targetPosition":{"x":117239.12825305272,"y":42314.11691568578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"58b56a9f-5e35-4d01-a812-0e51895fa837","savedPayload":{"position":{"x":117356.40521221801,"y":42494.237976550285},"targetPosition":{"x":117239.12825305272,"y":42314.11691568578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"bdb877b3-f961-4d31-9ec7-058a7380c273","savedPayload":{"position":{"x":117239.12825305272,"y":42314.11691568578},"targetPosition":{"x":117079.22864839052,"y":42170.48684172187},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"fe071f6a-0962-4f21-a717-769efa834184","savedPayload":{"position":{"x":8296.761396090355,"y":22697.79614663535},"targetPosition":{"x":8121.289173576476,"y":23352.784657498698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"91bdacba-0696-4a55-bb01-5e6dc7135908","savedPayload":{"position":{"x":116725.01574107351,"y":42615.03263699156},"targetPosition":{"x":116678.07898519833,"y":42405.284162227326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"40fc1527-6a54-43f1-ac38-7e15f3bf92a5","savedPayload":{"position":{"x":116649.7482144606,"y":42822.31754948675},"targetPosition":{"x":116613.85317077536,"y":42610.40004771578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"7903b990-22ec-43ce-be97-6c60139ec485","savedPayload":{"position":{"x":116582.5052765222,"y":42823.037747204624},"targetPosition":{"x":116613.85317077536,"y":42610.40004771578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"6dbd9a02-3a4c-4574-9e92-b06b657a5729","savedPayload":{"position":{"x":116518.33088888692,"y":42802.94348536256},"targetPosition":{"x":116613.85317077536,"y":42610.40004771578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"d8e8d74a-3e90-42b6-902f-c4aaa11a3e30","savedPayload":{"position":{"x":116463.50688774574,"y":42764.001730314616},"targetPosition":{"x":116613.85317077536,"y":42610.40004771578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"3425a339-7883-4d23-bb5e-f48ad9ef19aa","savedPayload":{"position":{"x":116613.85317077536,"y":42610.40004771578},"targetPosition":{"x":116678.07898519833,"y":42405.284162227326},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"0afbc5d0-f5e5-4ff7-9b7c-8b7f9dba82cb","savedPayload":{"position":{"x":8534.192674634873,"y":22814.968179670224},"targetPosition":{"x":8121.289173576476,"y":23352.784657498698},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"491c0345-c4e1-467c-89f9-14903ef2f252","savedPayload":{"position":{"x":11650.608669502248,"y":24313.117671532535},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":-155,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #3","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-07-07T11:24:09.805Z\",\n \"toDate\": \"2019-07-18T07:46:42.657Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"5d658c99-fcd0-493a-80e2-2c79ed862bfc","savedPayload":{"position":{"x":8086.096674865171,"y":23277.24309517601},"targetPosition":{"x":8758.358604464145,"y":23188.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 5938.792799999998,\n \"maxValue\": 13490.193089939352,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"16cdb0b6-eb04-43ee-8ca2-4df6fcf35912","savedPayload":{"position":{"x":8103.338582240417,"y":23013.23556105138},"targetPosition":{"x":8758.358604464145,"y":23188.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"62e265fe-ed03-457f-8cd2-67d3ec56a915","savedPayload":{"position":{"x":8220.374709937729,"y":22775.86188881632},"targetPosition":{"x":8758.358604464145,"y":23188.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"8457a77d-385d-4bac-873e-c7394b4de41f","savedPayload":{"position":{"x":118008.94061181812,"y":41534.34643898858},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"a560632f-2cfc-4dc9-86ea-5a71915fce24","savedPayload":{"position":{"x":118062.6823253683,"y":41550.474373103774},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ed548aa2-84ea-44c0-843f-bd0c76bf836a","savedPayload":{"position":{"x":118110.41861792827,"y":41579.962140173564},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a8a9940b-b7d0-48c1-b3e5-ee51c3ececdb","savedPayload":{"position":{"x":118148.89634004804,"y":41620.80019760298},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0290d64d-9394-4516-a1c1-3e97cb6495d5","savedPayload":{"position":{"x":118175.49329855257,"y":41670.20549926629},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6c2d8c9e-7a58-497e-9bfc-172536fd9b3a","savedPayload":{"position":{"x":118188.39695467333,"y":41724.81115550126},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"fbf92825-1fec-427c-855d-d8b3ec86bb54","savedPayload":{"position":{"x":118186.72794557,"y":41780.89588107557},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"457e1290-6266-44c6-9126-feddc13fea9d","savedPayload":{"position":{"x":118170.60001145482,"y":41834.63759462576},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"7886008a-4d05-44b6-9873-a418d0aef486","savedPayload":{"position":{"x":118141.11224438502,"y":41882.373887185735},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4b02de9b-980a-4ff5-9fc6-7a9e4af73947","savedPayload":{"position":{"x":118100.2741869556,"y":41920.85160930551},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"c3dabb69-04b0-421e-9abb-21e7868404e2","savedPayload":{"position":{"x":118050.86888529231,"y":41947.44856781005},"targetPosition":{"x":117974.55955765057,"y":41746.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"021e3e03-7284-41f6-81fb-09d721a45d95","savedPayload":{"position":{"x":117974.55955765057,"y":41746.514826908024},"targetPosition":{"x":117760.72216062779,"y":41768.2184983148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"80c2ad63-4709-45d2-9a78-6766016fd563","savedPayload":{"position":{"x":8419.340107273383,"y":22601.367058775457},"targetPosition":{"x":8758.358604464145,"y":23188.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3519.0354709525054,\n \"maxValue\": 12423.056734727497,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"63278af4-0680-4c10-9c08-cd50140e9060","savedPayload":{"position":{"x":116769.30026226789,"y":42050.77407241656},"targetPosition":{"x":116941.80498101345,"y":41938.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"5d2a411a-04fc-4204-b547-f9b7682eb80c","savedPayload":{"position":{"x":118160.80551404947,"y":42022.650272622355},"targetPosition":{"x":116736.39857519923,"y":41949.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"2d5df260-9a11-4099-b2e9-60aafe7c1422","savedPayload":{"position":{"x":118112.78778857614,"y":42123.013990962514},"targetPosition":{"x":116736.39857519923,"y":41949.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"f11caab6-176d-47c5-b954-67e44c4ecdba","savedPayload":{"position":{"x":116736.39857519923,"y":41949.51309178003},"targetPosition":{"x":116941.80498101345,"y":41938.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"b9b41719-edb9-4ee9-95cd-094b48441e06","savedPayload":{"position":{"x":8669.939860344797,"y":22516.30582552537},"targetPosition":{"x":8758.358604464145,"y":23188.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 213.83263003388265,\n \"maxValue\": 1024.4205137504457,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"079993e9-7578-48ef-8752-530536333a5d","savedPayload":{"position":{"x":117926.59023595271,"y":42050.76520136268},"targetPosition":{"x":117716.29807927819,"y":42006.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"37a6cc98-3604-4aeb-a81a-2c3db1bb991f","savedPayload":{"position":{"x":118067.8230402884,"y":42247.30871974012},"targetPosition":{"x":117876.1976839404,"y":42149.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ebad7c40-e132-46f9-ad1d-986113af95bb","savedPayload":{"position":{"x":117993.47464310568,"y":42330.078845722004},"targetPosition":{"x":117876.1976839404,"y":42149.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"c6026b90-2229-4068-952c-7fc29b06ab94","savedPayload":{"position":{"x":117876.1976839404,"y":42149.9577848575},"targetPosition":{"x":117716.29807927819,"y":42006.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"b5c09965-441f-49b3-8432-c41f0639aa55","savedPayload":{"position":{"x":8933.830826978025,"y":22533.637015807068},"targetPosition":{"x":8758.358604464145,"y":23188.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"47b55712-f086-44d2-90cc-1ee83f8d97b5","savedPayload":{"position":{"x":117362.08517196118,"y":42450.873506163276},"targetPosition":{"x":117315.148416086,"y":42241.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"1d38d0c0-3279-4872-925b-6e1fa72c450d","savedPayload":{"position":{"x":117286.81764534827,"y":42658.158418658466},"targetPosition":{"x":117250.92260166303,"y":42446.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"on\"\n}","id":"632a0d57-fc20-4baa-af1a-ba0714945ae0","savedPayload":{"position":{"x":117219.57470740988,"y":42658.87861637634},"targetPosition":{"x":117250.92260166303,"y":42446.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"91f34659-0c1e-40a7-9265-f1666631b78f","savedPayload":{"position":{"x":117155.40031977459,"y":42638.78435453428},"targetPosition":{"x":117250.92260166303,"y":42446.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"cfeba451-8988-42fa-a547-b4bd09ac26b2","savedPayload":{"position":{"x":117100.57631863341,"y":42599.842599486336},"targetPosition":{"x":117250.92260166303,"y":42446.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"9cedc838-f633-4184-8682-94eb9f5ee43a","savedPayload":{"position":{"x":117250.92260166303,"y":42446.2409168875},"targetPosition":{"x":117315.148416086,"y":42241.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"f0fb7605-823b-4d2d-a55f-e3ea5f23f1ae","savedPayload":{"position":{"x":9171.262105522543,"y":22650.80904884194},"targetPosition":{"x":8758.358604464145,"y":23188.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"42d1644a-cfd0-4cbd-942a-3e69262a4b4d","savedPayload":{"position":{"x":11349.71244757664,"y":24067.458925197217},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":145,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #4","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-07-11T23:53:33.499Z\",\n \"toDate\": \"2019-07-22T20:16:06.351Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"d7cf4079-e5e0-4b8f-8261-ea1d78bbef8f","savedPayload":{"position":{"x":8131.096674865171,"y":23301.24309517601},"targetPosition":{"x":8803.358604464145,"y":23212.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 5938.792799999998,\n \"maxValue\": 11956.1364,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"0a244dcf-8730-4096-85e0-d9087ac8e6d2","savedPayload":{"position":{"x":8148.338582240417,"y":23037.23556105138},"targetPosition":{"x":8803.358604464145,"y":23212.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"c6ec7159-32f5-47c5-ad8d-8fd2fb482da3","savedPayload":{"position":{"x":8265.374709937729,"y":22799.86188881632},"targetPosition":{"x":8803.358604464145,"y":23212.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"6f04236d-ea5b-4f1d-a501-d2ea89beeb18","savedPayload":{"position":{"x":118053.94061181812,"y":41558.34643898858},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"11a71d48-789f-465a-95b2-24a0272f6111","savedPayload":{"position":{"x":118107.6823253683,"y":41574.474373103774},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"94b54333-dc13-48a3-9834-8551a58ac684","savedPayload":{"position":{"x":118155.41861792827,"y":41603.962140173564},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"179fae29-e267-41fe-a303-b99f81b81db3","savedPayload":{"position":{"x":118193.89634004804,"y":41644.80019760298},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"04779d42-e412-49ad-804f-7aea6e8bfa72","savedPayload":{"position":{"x":118220.49329855257,"y":41694.20549926629},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"fbb913f0-3ba5-4e3a-af01-fb8e01849888","savedPayload":{"position":{"x":118233.39695467333,"y":41748.81115550126},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"41dd5404-7dbd-4b6f-8ac2-a16fb9ad35f7","savedPayload":{"position":{"x":118231.72794557,"y":41804.89588107557},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"dafe6226-5fc3-40a4-8bac-1f03dc6d453a","savedPayload":{"position":{"x":118215.60001145482,"y":41858.63759462576},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c5f485d9-d5eb-4ec5-9943-9e1356932e95","savedPayload":{"position":{"x":118186.11224438502,"y":41906.373887185735},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c7cb6e57-44a7-4446-afbb-5d53b7bbfa68","savedPayload":{"position":{"x":118145.2741869556,"y":41944.85160930551},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"b1eb97d9-1c6b-47e5-be1e-4d0dfc20bcdd","savedPayload":{"position":{"x":118095.86888529231,"y":41971.44856781005},"targetPosition":{"x":118019.55955765057,"y":41770.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"03c96b02-ff2a-47dc-91fa-fe53522e0e94","savedPayload":{"position":{"x":118019.55955765057,"y":41770.514826908024},"targetPosition":{"x":117805.72216062779,"y":41792.2184983148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"45c1daec-0092-4d40-b513-edf0b6727285","savedPayload":{"position":{"x":8464.340107273383,"y":22625.367058775457},"targetPosition":{"x":8803.358604464145,"y":23212.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"52064b5f-a95e-4e94-a882-71ab8afc1e85","savedPayload":{"position":{"x":116814.30026226789,"y":42074.77407241656},"targetPosition":{"x":116986.80498101345,"y":41962.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"5448ae06-dbf0-4022-b1b5-04260cee5802","savedPayload":{"position":{"x":118205.80551404947,"y":42046.650272622355},"targetPosition":{"x":116781.39857519923,"y":41973.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"5b25f5b2-91c4-41f7-9960-3a57041e0a0e","savedPayload":{"position":{"x":118157.78778857614,"y":42147.013990962514},"targetPosition":{"x":116781.39857519923,"y":41973.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"8c32bd27-fca2-44c5-8d49-431fb9594abf","savedPayload":{"position":{"x":116781.39857519923,"y":41973.51309178003},"targetPosition":{"x":116986.80498101345,"y":41962.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"21fdedcd-9eb3-4907-bbfb-57ed385be5c2","savedPayload":{"position":{"x":8714.939860344797,"y":22540.30582552537},"targetPosition":{"x":8803.358604464145,"y":23212.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"f08cb3b5-0be6-42f4-babd-e2a6ca739da5","savedPayload":{"position":{"x":117971.59023595271,"y":42074.76520136268},"targetPosition":{"x":117761.29807927819,"y":42030.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"13daacd1-1e10-4701-b86a-d439d842c2fe","savedPayload":{"position":{"x":118112.8230402884,"y":42271.30871974012},"targetPosition":{"x":117921.1976839404,"y":42173.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"07785238-e9a2-44a6-bba8-75fb500f5590","savedPayload":{"position":{"x":118038.47464310568,"y":42354.078845722004},"targetPosition":{"x":117921.1976839404,"y":42173.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"7ce9a218-aa2e-4a0c-9340-ec515083421e","savedPayload":{"position":{"x":117921.1976839404,"y":42173.9577848575},"targetPosition":{"x":117761.29807927819,"y":42030.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"9cb13e2d-77de-48e2-bf77-ed3aa913be8a","savedPayload":{"position":{"x":8978.830826978025,"y":22557.637015807068},"targetPosition":{"x":8803.358604464145,"y":23212.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"12adebf5-1b04-476e-a080-ee278f723c26","savedPayload":{"position":{"x":117407.08517196118,"y":42474.873506163276},"targetPosition":{"x":117360.148416086,"y":42265.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"b905cd6f-b470-4ed3-95f8-3b46d4ff8110","savedPayload":{"position":{"x":117331.81764534827,"y":42682.158418658466},"targetPosition":{"x":117295.92260166303,"y":42470.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"cca5cbe0-505c-4b79-8723-59ee71c0c214","savedPayload":{"position":{"x":117264.57470740988,"y":42682.87861637634},"targetPosition":{"x":117295.92260166303,"y":42470.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"0b235e17-36c6-41ed-9c59-411aa7befa46","savedPayload":{"position":{"x":117200.40031977459,"y":42662.78435453428},"targetPosition":{"x":117295.92260166303,"y":42470.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"493f4bd3-33ec-4ce0-b151-88e58e35968c","savedPayload":{"position":{"x":117145.57631863341,"y":42623.842599486336},"targetPosition":{"x":117295.92260166303,"y":42470.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"0a2fe4e1-1391-4b79-ab3c-1338673f79f5","savedPayload":{"position":{"x":117295.92260166303,"y":42470.2409168875},"targetPosition":{"x":117360.148416086,"y":42265.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"b6cce6d8-28c6-496e-aa09-3a89da5516ab","savedPayload":{"position":{"x":9216.262105522543,"y":22674.80904884194},"targetPosition":{"x":8803.358604464145,"y":23212.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"cadb14ac-6447-4cfc-a6c1-88bff94af3d5","savedPayload":{"position":{"x":11197.455270244962,"y":23710.09694533539},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":445,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #5 & 6","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-07-20T14:01:24.478Z\",\n \"toDate\": \"2019-07-31T10:23:57.330Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"b404e132-36b4-4586-a98d-f7c1e425dde7","savedPayload":{"position":{"x":8223.09667486517,"y":23377.24309517601},"targetPosition":{"x":8895.358604464145,"y":23288.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 5695.677900000001,\n \"maxValue\": 11068.99,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"64443f80-410c-458b-855e-dcd6c6b8bf0f","savedPayload":{"position":{"x":8240.338582240416,"y":23113.23556105138},"targetPosition":{"x":8895.358604464145,"y":23288.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"08664d4e-e348-471a-abe2-19ba9ab73683","savedPayload":{"position":{"x":8357.374709937729,"y":22875.86188881632},"targetPosition":{"x":8895.358604464145,"y":23288.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"bfb3d6a3-6a57-4b72-8514-c8ff7857ecd9","savedPayload":{"position":{"x":118145.94061181812,"y":41634.34643898858},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"5515381b-843b-4980-9974-22c67d2431f6","savedPayload":{"position":{"x":118199.6823253683,"y":41650.474373103774},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"76d5f9fa-165c-49a7-b0d1-d95744e842ac","savedPayload":{"position":{"x":118247.41861792827,"y":41679.962140173564},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9b34ab14-5b85-47d2-96e0-de7c4d3a7195","savedPayload":{"position":{"x":118285.89634004804,"y":41720.80019760298},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8aabcf1f-b202-482c-8940-93ffda19e8fa","savedPayload":{"position":{"x":118312.49329855257,"y":41770.20549926629},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d09229c2-5444-4fc4-b8d6-fb980e98025d","savedPayload":{"position":{"x":118325.39695467333,"y":41824.81115550126},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8b35ac13-30e1-4e67-ae19-3b6e5f715ca7","savedPayload":{"position":{"x":118323.72794557,"y":41880.89588107557},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d6b020a1-078a-401d-802a-57d74ed2f4fc","savedPayload":{"position":{"x":118307.60001145482,"y":41934.63759462576},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f5026abe-f64a-4847-a3d0-ab852838e45f","savedPayload":{"position":{"x":118278.11224438502,"y":41982.373887185735},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9fea4d7c-4197-47ec-bcb6-ed55e877c3e5","savedPayload":{"position":{"x":118237.2741869556,"y":42020.85160930551},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"69c03e0e-f28c-485d-916f-3daf37a149be","savedPayload":{"position":{"x":118187.86888529231,"y":42047.44856781005},"targetPosition":{"x":118111.55955765057,"y":41846.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"743c8269-9e1e-4aa8-9e6d-f7a0bdaf5b50","savedPayload":{"position":{"x":118111.55955765057,"y":41846.514826908024},"targetPosition":{"x":117897.72216062779,"y":41868.2184983148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"66c5e835-af06-44c9-becf-6f7bceb9c9dd","savedPayload":{"position":{"x":8556.340107273383,"y":22701.367058775457},"targetPosition":{"x":8895.358604464145,"y":23288.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"d0542f5f-14d5-42fc-ba27-eb3dbf6ecc11","savedPayload":{"position":{"x":116906.30026226789,"y":42150.77407241656},"targetPosition":{"x":117078.80498101345,"y":42038.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"72e055fe-7203-4afd-8b44-e2a5a87d57ea","savedPayload":{"position":{"x":118297.80551404947,"y":42122.650272622355},"targetPosition":{"x":116873.39857519923,"y":42049.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"aeffbe06-3079-41cd-97d0-e21fd9f5f250","savedPayload":{"position":{"x":118249.78778857614,"y":42223.013990962514},"targetPosition":{"x":116873.39857519923,"y":42049.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"d040c53d-8da4-4dc3-ac17-efd6f7e42c10","savedPayload":{"position":{"x":116873.39857519923,"y":42049.51309178003},"targetPosition":{"x":117078.80498101345,"y":42038.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"51121961-c165-4835-86ed-0711da4c1710","savedPayload":{"position":{"x":8806.939860344797,"y":22616.30582552537},"targetPosition":{"x":8895.358604464145,"y":23288.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"646f0b85-7a85-412c-b4ee-8a629ea132f2","savedPayload":{"position":{"x":118063.59023595271,"y":42150.76520136268},"targetPosition":{"x":117853.29807927819,"y":42106.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"1b1eab53-e31f-43d9-bff4-2f9a832890fc","savedPayload":{"position":{"x":118204.8230402884,"y":42347.30871974012},"targetPosition":{"x":118013.1976839404,"y":42249.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6450232d-7c9c-40a1-a79a-a2281f087306","savedPayload":{"position":{"x":118130.47464310568,"y":42430.078845722004},"targetPosition":{"x":118013.1976839404,"y":42249.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"f381c4b3-2bb7-4909-93d2-acbcc951a319","savedPayload":{"position":{"x":118013.1976839404,"y":42249.9577848575},"targetPosition":{"x":117853.29807927819,"y":42106.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"3797f167-f765-4cf7-bd51-21fc95868270","savedPayload":{"position":{"x":9070.830826978025,"y":22633.637015807068},"targetPosition":{"x":8895.358604464145,"y":23288.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"03e255de-14ae-4799-a4b5-07db68bd8221","savedPayload":{"position":{"x":117499.08517196118,"y":42550.873506163276},"targetPosition":{"x":117452.148416086,"y":42341.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"fb7cfb87-0292-42fb-92cf-506dc267fa80","savedPayload":{"position":{"x":117423.81764534827,"y":42758.158418658466},"targetPosition":{"x":117387.92260166303,"y":42546.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"3cecdc53-b9c2-4ce8-8554-46d5ca40628b","savedPayload":{"position":{"x":117356.57470740988,"y":42758.87861637634},"targetPosition":{"x":117387.92260166303,"y":42546.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"99744bf3-08a4-4099-aa79-36706d32a795","savedPayload":{"position":{"x":117292.40031977459,"y":42738.78435453428},"targetPosition":{"x":117387.92260166303,"y":42546.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"30ac60ee-9220-4030-a7b5-46987a7bc171","savedPayload":{"position":{"x":117237.57631863341,"y":42699.842599486336},"targetPosition":{"x":117387.92260166303,"y":42546.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"0a4bd195-7560-4255-b021-4f205c9edc01","savedPayload":{"position":{"x":117387.92260166303,"y":42546.2409168875},"targetPosition":{"x":117452.148416086,"y":42341.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"a96ea2b5-ced5-45ce-86c8-4746cf4de0c7","savedPayload":{"position":{"x":9308.262105522543,"y":22750.80904884194},"targetPosition":{"x":8895.358604464145,"y":23288.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"1f814b1b-76c6-483c-aeff-2bf81330e7a5","savedPayload":{"position":{"x":11228.714746322097,"y":23323.073569695585},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":745,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #7 & 8","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-08-05T09:44:17.410Z\",\n \"toDate\": \"2019-08-16T06:06:50.262Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"1b7591d1-950e-4fc4-912b-929d4cd798de","savedPayload":{"position":{"x":8072.096674865171,"y":23452.24309517601},"targetPosition":{"x":8744.358604464145,"y":23363.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 7004.297399999999,\n \"maxValue\": 12330.7,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"5e1c7d22-35e5-4428-82b1-6a41630f4616","savedPayload":{"position":{"x":8089.338582240417,"y":23188.23556105138},"targetPosition":{"x":8744.358604464145,"y":23363.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"9929948f-3376-4158-877d-0284efffc169","savedPayload":{"position":{"x":8206.374709937729,"y":22950.86188881632},"targetPosition":{"x":8744.358604464145,"y":23363.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"03a20826-ef0f-4ee5-92c8-5f8db5a7d98b","savedPayload":{"position":{"x":117994.94061181812,"y":41709.34643898858},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"1deafb8b-f21c-46ac-a0d8-24eeddcfb665","savedPayload":{"position":{"x":118048.6823253683,"y":41725.474373103774},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"84dbb7d8-5305-4c61-9bc0-4e2c8efcd37a","savedPayload":{"position":{"x":118096.41861792827,"y":41754.962140173564},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f351072c-3b60-432d-82e9-73e301b325a4","savedPayload":{"position":{"x":118134.89634004804,"y":41795.80019760298},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0f32f4a1-6e7e-4ace-8e18-7ee9a1829718","savedPayload":{"position":{"x":118161.49329855257,"y":41845.20549926629},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"460c2b5d-6fd5-45d5-aad3-55e2541c8119","savedPayload":{"position":{"x":118174.39695467333,"y":41899.81115550126},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"faa41674-f262-4d9e-ad45-b02ea81201f0","savedPayload":{"position":{"x":118172.72794557,"y":41955.89588107557},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"21dcd799-51ec-42eb-a30a-9c25f95e828b","savedPayload":{"position":{"x":118156.60001145482,"y":42009.63759462576},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"bf79b951-6769-407b-96ed-5c0ffbd6ed4f","savedPayload":{"position":{"x":118127.11224438502,"y":42057.373887185735},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e5e13ce1-3235-4acc-b3de-6b01bde5d7fe","savedPayload":{"position":{"x":118086.2741869556,"y":42095.85160930551},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"e1fb7a97-1dff-46fe-885a-7a93b51cc356","savedPayload":{"position":{"x":118036.86888529231,"y":42122.44856781005},"targetPosition":{"x":117960.55955765057,"y":41921.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"b47de768-d086-47c8-9769-ab2c287df424","savedPayload":{"position":{"x":117960.55955765057,"y":41921.514826908024},"targetPosition":{"x":117746.72216062779,"y":41943.2184983148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"41549bdb-dcf8-46fd-9943-fd9e39270fcd","savedPayload":{"position":{"x":8405.340107273383,"y":22776.367058775457},"targetPosition":{"x":8744.358604464145,"y":23363.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"315c915e-bf64-4375-851f-bcd41009150f","savedPayload":{"position":{"x":116755.30026226789,"y":42225.77407241656},"targetPosition":{"x":116927.80498101345,"y":42113.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"ec41ea77-9a29-4426-9afe-6f745345ee0c","savedPayload":{"position":{"x":118146.80551404947,"y":42197.650272622355},"targetPosition":{"x":116722.39857519923,"y":42124.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"1c10f288-d5bc-4888-8b04-90dfe3ef5d18","savedPayload":{"position":{"x":118098.78778857614,"y":42298.013990962514},"targetPosition":{"x":116722.39857519923,"y":42124.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"c509db1b-5a08-4484-91ec-ba790b48b47a","savedPayload":{"position":{"x":116722.39857519923,"y":42124.51309178003},"targetPosition":{"x":116927.80498101345,"y":42113.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"0932115d-be79-4ad3-9727-3a9b82cde61f","savedPayload":{"position":{"x":8655.939860344797,"y":22691.30582552537},"targetPosition":{"x":8744.358604464145,"y":23363.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"7f11be41-5533-415e-a163-82d52e73329b","savedPayload":{"position":{"x":117912.59023595271,"y":42225.76520136268},"targetPosition":{"x":117702.29807927819,"y":42181.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"668534be-7d3e-48c6-bae2-7559cd874559","savedPayload":{"position":{"x":118053.8230402884,"y":42422.30871974012},"targetPosition":{"x":117862.1976839404,"y":42324.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ba7b90c3-5965-4aad-beb1-afc159766d28","savedPayload":{"position":{"x":117979.47464310568,"y":42505.078845722004},"targetPosition":{"x":117862.1976839404,"y":42324.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"1048adde-7e9a-4f7a-be61-807f5ed0474f","savedPayload":{"position":{"x":117862.1976839404,"y":42324.9577848575},"targetPosition":{"x":117702.29807927819,"y":42181.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"669f9997-4918-44f0-9aaa-06d8d06a9a10","savedPayload":{"position":{"x":8919.830826978025,"y":22708.637015807068},"targetPosition":{"x":8744.358604464145,"y":23363.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"f1339686-a0bf-478e-9d73-786806f4c763","savedPayload":{"position":{"x":117348.08517196118,"y":42625.873506163276},"targetPosition":{"x":117301.148416086,"y":42416.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"e46198b8-c07b-43c5-b881-2ce55d16fa7e","savedPayload":{"position":{"x":117272.81764534827,"y":42833.158418658466},"targetPosition":{"x":117236.92260166303,"y":42621.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"26a6b8b1-b8eb-4952-b966-072a10142ac1","savedPayload":{"position":{"x":117205.57470740988,"y":42833.87861637634},"targetPosition":{"x":117236.92260166303,"y":42621.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"31c41b87-7a31-40f3-8c3a-54bc84feb1bb","savedPayload":{"position":{"x":117141.40031977459,"y":42813.78435453428},"targetPosition":{"x":117236.92260166303,"y":42621.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"443208df-90a3-4de2-a16d-fd7b2169beb9","savedPayload":{"position":{"x":117086.57631863341,"y":42774.842599486336},"targetPosition":{"x":117236.92260166303,"y":42621.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"cb4beda6-ca86-4e3b-b018-32bcdd92aaf0","savedPayload":{"position":{"x":117236.92260166303,"y":42621.2409168875},"targetPosition":{"x":117301.148416086,"y":42416.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"1d7fd5b6-10ed-406d-92d5-fe2c86dac37f","savedPayload":{"position":{"x":9157.262105522543,"y":22825.80904884194},"targetPosition":{"x":8744.358604464145,"y":23363.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"37ff690c-f169-4ecb-83fe-3eae7530121b","savedPayload":{"position":{"x":11436.330173658911,"y":22994.759004387026},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":1045,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #9","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-09-05T16:50:37.449Z\",\n \"toDate\": \"2019-09-27T07:09:44.528Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"8b545e68-5570-46ec-b77e-8da1a16946fb","savedPayload":{"position":{"x":7995.096674865171,"y":23542.24309517601},"targetPosition":{"x":8667.358604464145,"y":23453.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 6319.338599999998,\n \"maxValue\": 10998.54711731036,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"948e8402-a8ed-49d2-9874-c6dad6c7750b","savedPayload":{"position":{"x":8012.338582240417,"y":23278.23556105138},"targetPosition":{"x":8667.358604464145,"y":23453.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"cc9fea1f-aea3-4a33-8469-08818d249ce7","savedPayload":{"position":{"x":8129.37470993773,"y":23040.86188881632},"targetPosition":{"x":8667.358604464145,"y":23453.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"b6ca8e41-7cb6-4cff-bf78-41e16b9db645","savedPayload":{"position":{"x":117917.94061181812,"y":41799.34643898858},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"77649700-8b5a-46d6-b25b-c2ed660e451f","savedPayload":{"position":{"x":117971.6823253683,"y":41815.474373103774},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a40abd3c-a57a-4691-a053-7a08bb78a876","savedPayload":{"position":{"x":118019.41861792827,"y":41844.962140173564},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5906e801-1278-4ed4-a48e-cac7c4c6386b","savedPayload":{"position":{"x":118057.89634004804,"y":41885.80019760298},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a6a95041-4460-48b8-b834-8e09544316f3","savedPayload":{"position":{"x":118084.49329855257,"y":41935.20549926629},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ae9b6100-147a-42d2-8a80-3f52d7353a53","savedPayload":{"position":{"x":118097.39695467333,"y":41989.81115550126},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e3823ac0-e637-4580-9641-0119782e6164","savedPayload":{"position":{"x":118095.72794557,"y":42045.89588107557},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"569289ac-179e-47c4-9da0-d7fe2a046296","savedPayload":{"position":{"x":118079.60001145482,"y":42099.63759462576},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"86e36eca-7f32-4820-a295-834d7b634526","savedPayload":{"position":{"x":118050.11224438502,"y":42147.373887185735},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"49ee651d-d1c7-4eba-b8c4-9cbbca562a0e","savedPayload":{"position":{"x":118009.2741869556,"y":42185.85160930551},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"dd1d10fa-9168-4a13-83c6-08f48cad1ea6","savedPayload":{"position":{"x":117959.86888529231,"y":42212.44856781005},"targetPosition":{"x":117883.55955765057,"y":42011.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"992d6548-aae1-43ad-bccb-21b05c552705","savedPayload":{"position":{"x":117883.55955765057,"y":42011.514826908024},"targetPosition":{"x":117669.72216062779,"y":42033.2184983148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"8ced2bb6-456d-4417-a6b2-2b4706685c76","savedPayload":{"position":{"x":8328.340107273383,"y":22866.367058775457},"targetPosition":{"x":8667.358604464145,"y":23453.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": -4732.712822442663,\n \"maxValue\": 4171.308441332329,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"6d1d631c-42d6-4fef-82c8-43fb9598f0d9","savedPayload":{"position":{"x":116678.30026226789,"y":42315.77407241656},"targetPosition":{"x":116850.80498101345,"y":42203.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"066011c2-8aaf-4b50-a37d-66e1939b12c3","savedPayload":{"position":{"x":118069.80551404947,"y":42287.650272622355},"targetPosition":{"x":116645.39857519923,"y":42214.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"2738c0cb-c4b0-4e36-b88b-fad6bafde1dc","savedPayload":{"position":{"x":118021.78778857614,"y":42388.013990962514},"targetPosition":{"x":116645.39857519923,"y":42214.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"12fb5a83-323c-411c-912c-a22a10c6e46a","savedPayload":{"position":{"x":116645.39857519923,"y":42214.51309178003},"targetPosition":{"x":116850.80498101345,"y":42203.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"df75e099-6974-492d-8340-c8ebc558c5fb","savedPayload":{"position":{"x":8578.939860344797,"y":22781.30582552537},"targetPosition":{"x":8667.358604464145,"y":23453.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": -537.3748287035922,\n \"maxValue\": 273.2130550129709,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"b6346260-e845-437e-95f1-c4d966cbf553","savedPayload":{"position":{"x":117835.59023595271,"y":42315.76520136268},"targetPosition":{"x":117625.29807927819,"y":42271.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"58345e24-7339-4d28-b9ec-0f1f70685240","savedPayload":{"position":{"x":117976.8230402884,"y":42512.30871974012},"targetPosition":{"x":117785.1976839404,"y":42414.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ef60571f-4767-4428-86c8-9f327d02fb07","savedPayload":{"position":{"x":117902.47464310568,"y":42595.078845722004},"targetPosition":{"x":117785.1976839404,"y":42414.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"22b28cf0-5a3d-4e99-83fb-2441923f2869","savedPayload":{"position":{"x":117785.1976839404,"y":42414.9577848575},"targetPosition":{"x":117625.29807927819,"y":42271.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"08d90adc-52e4-473f-afb0-1364d8503f85","savedPayload":{"position":{"x":8842.830826978025,"y":22798.637015807068},"targetPosition":{"x":8667.358604464145,"y":23453.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"39afcb8d-9706-4e35-9be0-9960fb190bdb","savedPayload":{"position":{"x":117271.08517196118,"y":42715.873506163276},"targetPosition":{"x":117224.148416086,"y":42506.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"46305da9-36a3-480a-9997-e493f1b08d31","savedPayload":{"position":{"x":117195.81764534827,"y":42923.158418658466},"targetPosition":{"x":117159.92260166303,"y":42711.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"1b1bae2e-d0f5-4c9a-86af-4af263630ceb","savedPayload":{"position":{"x":117128.57470740988,"y":42923.87861637634},"targetPosition":{"x":117159.92260166303,"y":42711.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"437a19b4-3487-4a42-afbf-95ca4bd925f7","savedPayload":{"position":{"x":117064.40031977459,"y":42903.78435453428},"targetPosition":{"x":117159.92260166303,"y":42711.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"e81ce1c9-b9ce-486f-84c5-c5737bc8713c","savedPayload":{"position":{"x":117009.57631863341,"y":42864.842599486336},"targetPosition":{"x":117159.92260166303,"y":42711.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"704b9ded-f3a5-4566-b9b7-62f7ddefd4ea","savedPayload":{"position":{"x":117159.92260166303,"y":42711.2409168875},"targetPosition":{"x":117224.148416086,"y":42506.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"97d4fc15-7b4d-435a-b2f4-1b95c87a9680","savedPayload":{"position":{"x":9080.262105522543,"y":22915.80904884194},"targetPosition":{"x":8667.358604464145,"y":23453.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"617e45b4-48c1-4796-bd0e-33ebadd20bf7","savedPayload":{"position":{"x":11772.739862586104,"y":22800.533030224808},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":1345,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #10","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-11-09T14:28:26.526Z\",\n \"toDate\": \"2019-11-25T05:24:54.632Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"23a9b95d-2c02-4853-a164-017b289dcc91","savedPayload":{"position":{"x":7933.096674865171,"y":23510.24309517601},"targetPosition":{"x":8605.358604464145,"y":23421.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 5292.190200000001,\n \"maxValue\": 8919.4395,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"4b6eba5b-f26b-4f9d-a70c-7416ffc5a81d","savedPayload":{"position":{"x":7950.338582240417,"y":23246.23556105138},"targetPosition":{"x":8605.358604464145,"y":23421.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"3ead56a7-6a8a-45d2-9c5a-a54128659ce0","savedPayload":{"position":{"x":8067.37470993773,"y":23008.86188881632},"targetPosition":{"x":8605.358604464145,"y":23421.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"6d4c7e6e-bd83-4488-8fc3-e63f8ecd5c7d","savedPayload":{"position":{"x":117855.94061181812,"y":41767.34643898858},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"loading\",\n \"showPanels\": false\n}","id":"940a07a2-9eca-4b9d-814a-62fb91f4afaf","savedPayload":{"position":{"x":117909.6823253683,"y":41783.474373103774},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5e7428c5-0dc6-4068-a42c-c96d29e2613a","savedPayload":{"position":{"x":117957.41861792827,"y":41812.962140173564},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8124a4a2-03f3-4bac-a04a-92e6c2f94f73","savedPayload":{"position":{"x":117995.89634004804,"y":41853.80019760298},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b4d719fc-7ce2-48d4-bf99-d148fc69d880","savedPayload":{"position":{"x":118022.49329855257,"y":41903.20549926629},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5a72de4f-7589-42b3-a78e-eb8a3cb14fa2","savedPayload":{"position":{"x":118035.39695467333,"y":41957.81115550126},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"08992c13-7582-40b2-be76-903e59fe9afa","savedPayload":{"position":{"x":118033.72794557,"y":42013.89588107557},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"755c7335-e6ff-43e9-8d16-913a0e959d0a","savedPayload":{"position":{"x":118017.60001145482,"y":42067.63759462576},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c859113d-3570-4a71-b4ff-c9a42d6aa485","savedPayload":{"position":{"x":117988.11224438502,"y":42115.373887185735},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"51179d55-27be-4c42-b7ce-1178591f3281","savedPayload":{"position":{"x":117947.2741869556,"y":42153.85160930551},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"9192c7fb-e2df-44ee-be97-aff4d0247ab5","savedPayload":{"position":{"x":117897.86888529231,"y":42180.44856781005},"targetPosition":{"x":117821.55955765057,"y":41979.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"5d9e99c2-70a1-41ac-8f11-0538ca5d10cf","savedPayload":{"position":{"x":117821.55955765057,"y":41979.514826908024},"targetPosition":{"x":117607.72216062779,"y":42001.2184983148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"ce0f9152-f975-4196-9c25-c619ac3862de","savedPayload":{"position":{"x":8266.340107273383,"y":22834.367058775457},"targetPosition":{"x":8605.358604464145,"y":23421.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"cadbfa7b-5a7f-439b-a33b-29d758c6705d","savedPayload":{"position":{"x":116616.30026226789,"y":42283.77407241656},"targetPosition":{"x":116788.80498101345,"y":42171.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"60b9b9ac-23ac-45bb-a315-7fcdb83b006f","savedPayload":{"position":{"x":118007.80551404947,"y":42255.650272622355},"targetPosition":{"x":116583.39857519923,"y":42182.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"f2127e30-08ea-41c2-80af-3445ce6133d8","savedPayload":{"position":{"x":117959.78778857614,"y":42356.013990962514},"targetPosition":{"x":116583.39857519923,"y":42182.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"b483a299-54a0-40c5-8929-b6fb4f70c54b","savedPayload":{"position":{"x":116583.39857519923,"y":42182.51309178003},"targetPosition":{"x":116788.80498101345,"y":42171.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"ce689c2b-99bf-4283-a882-5e40c63bc7e6","savedPayload":{"position":{"x":8516.939860344797,"y":22749.30582552537},"targetPosition":{"x":8605.358604464145,"y":23421.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"261c9087-cf6d-488f-980e-3aa370e1c1eb","savedPayload":{"position":{"x":117773.59023595271,"y":42283.76520136268},"targetPosition":{"x":117563.29807927819,"y":42239.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"9cc3311a-67ab-4aff-8c64-874f54cfd99c","savedPayload":{"position":{"x":117914.8230402884,"y":42480.30871974012},"targetPosition":{"x":117723.1976839404,"y":42382.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"638eb526-7636-44c3-aef2-9d3584a53eb1","savedPayload":{"position":{"x":117840.47464310568,"y":42563.078845722004},"targetPosition":{"x":117723.1976839404,"y":42382.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"fd101301-a2be-4841-9e91-f250557cc482","savedPayload":{"position":{"x":117723.1976839404,"y":42382.9577848575},"targetPosition":{"x":117563.29807927819,"y":42239.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"96f780fa-7adb-4a65-b1da-2ebeae570397","savedPayload":{"position":{"x":8780.830826978025,"y":22766.637015807068},"targetPosition":{"x":8605.358604464145,"y":23421.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"1308da53-27e0-40bc-bb23-6782ba7dca2c","savedPayload":{"position":{"x":117209.08517196118,"y":42683.873506163276},"targetPosition":{"x":117162.148416086,"y":42474.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"524dd811-7e83-4bc1-b366-72e2070e4afd","savedPayload":{"position":{"x":117133.81764534827,"y":42891.158418658466},"targetPosition":{"x":117097.92260166303,"y":42679.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"f536de87-b9e2-43ac-8e1b-238710074212","savedPayload":{"position":{"x":117066.57470740988,"y":42891.87861637634},"targetPosition":{"x":117097.92260166303,"y":42679.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"74ef1008-265b-4a75-ac49-84a249981ef9","savedPayload":{"position":{"x":117002.40031977459,"y":42871.78435453428},"targetPosition":{"x":117097.92260166303,"y":42679.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"ca0ec190-c902-45e3-9ec0-373ac934196d","savedPayload":{"position":{"x":116947.57631863341,"y":42832.842599486336},"targetPosition":{"x":117097.92260166303,"y":42679.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"0f6d4db3-78f6-4f54-9141-7714b0bfa8e6","savedPayload":{"position":{"x":117097.92260166303,"y":42679.2409168875},"targetPosition":{"x":117162.148416086,"y":42474.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"423fdd04-fecb-4f34-8991-8f599f398e62","savedPayload":{"position":{"x":9018.262105522543,"y":22883.80904884194},"targetPosition":{"x":8605.358604464145,"y":23421.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"5014bb64-da42-4bf2-b8f3-1efa20a04c1b","savedPayload":{"position":{"x":12160.71044709292,"y":22784.890415651535},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":1645,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #11","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-01-17T20:28:08.328Z\",\n \"toDate\": \"2020-01-28T16:50:41.180Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"2c956181-239f-4362-8848-9ba041189044","savedPayload":{"position":{"x":7891.096674865171,"y":23508.24309517601},"targetPosition":{"x":8563.358604464145,"y":23419.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 5297.964900000001,\n \"maxValue\": 8887.87,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"b5c0c131-463f-4bab-b203-481fff96a933","savedPayload":{"position":{"x":7908.338582240417,"y":23244.23556105138},"targetPosition":{"x":8563.358604464145,"y":23419.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"a74e35fa-a412-4bd1-babf-00dbcdf1d1ff","savedPayload":{"position":{"x":8025.37470993773,"y":23006.86188881632},"targetPosition":{"x":8563.358604464145,"y":23419.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"8944c258-9a20-4e9a-a20e-c49d46353215","savedPayload":{"position":{"x":117813.94061181812,"y":41765.34643898858},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"loading\",\n \"showPanels\": false\n}","id":"9bbf2660-6e9c-44d9-a1d5-17a6794578bf","savedPayload":{"position":{"x":117867.6823253683,"y":41781.474373103774},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c69cb0cc-7432-470e-89e3-0d9a1cd3c520","savedPayload":{"position":{"x":117915.41861792827,"y":41810.962140173564},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"83ea619b-1dcf-4fa6-91c4-f5a51caf08ee","savedPayload":{"position":{"x":117953.89634004804,"y":41851.80019760298},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"1f2dfe35-09ee-45d1-aaca-2170ab30c026","savedPayload":{"position":{"x":117980.49329855257,"y":41901.20549926629},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ccca3310-50a0-4267-bd6c-814f103e61c2","savedPayload":{"position":{"x":117993.39695467333,"y":41955.81115550126},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3cdf5053-1a91-420d-8d3e-6182d9a3572f","savedPayload":{"position":{"x":117991.72794557,"y":42011.89588107557},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"695d0824-c086-4b6f-9ea0-9a70be6b4bd2","savedPayload":{"position":{"x":117975.60001145482,"y":42065.63759462576},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"db97c82a-8b5b-4246-b94c-2fe7db42b2b1","savedPayload":{"position":{"x":117946.11224438502,"y":42113.373887185735},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"97a26d5d-db63-4b61-b612-db2779b48a90","savedPayload":{"position":{"x":117905.2741869556,"y":42151.85160930551},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"1c23f7c7-d3c4-4c17-90ee-8cafb954e77f","savedPayload":{"position":{"x":117855.86888529231,"y":42178.44856781005},"targetPosition":{"x":117779.55955765057,"y":41977.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"129496ae-5565-4dff-a45e-e32e14da9f08","savedPayload":{"position":{"x":117779.55955765057,"y":41977.514826908024},"targetPosition":{"x":117565.72216062779,"y":41999.2184983148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"fde3af36-3d2b-42e8-8d53-258bbf41b6f9","savedPayload":{"position":{"x":8224.340107273383,"y":22832.367058775457},"targetPosition":{"x":8563.358604464145,"y":23419.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"4c5ea0a1-b46b-41c0-b4d4-012f63cf6ec6","savedPayload":{"position":{"x":116574.30026226789,"y":42281.77407241656},"targetPosition":{"x":116746.80498101345,"y":42169.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"56bfd8e4-9e61-4064-9159-4cbf65c98915","savedPayload":{"position":{"x":117965.80551404947,"y":42253.650272622355},"targetPosition":{"x":116541.39857519923,"y":42180.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"e7cb2b0b-e92c-4212-904d-5e2f3c025b25","savedPayload":{"position":{"x":117917.78778857614,"y":42354.013990962514},"targetPosition":{"x":116541.39857519923,"y":42180.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"7a85f388-bc25-4f6a-ae1a-d820a0ac4793","savedPayload":{"position":{"x":116541.39857519923,"y":42180.51309178003},"targetPosition":{"x":116746.80498101345,"y":42169.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"e3f9fdb4-74e2-42f1-bdaf-599d639e0bb5","savedPayload":{"position":{"x":8474.939860344797,"y":22747.30582552537},"targetPosition":{"x":8563.358604464145,"y":23419.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"06978b72-323c-4da2-8c91-bfab5a7f3d8a","savedPayload":{"position":{"x":117731.59023595271,"y":42281.76520136268},"targetPosition":{"x":117521.29807927819,"y":42237.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"37dc9af9-6afc-499a-829d-12aaf32eb293","savedPayload":{"position":{"x":117872.8230402884,"y":42478.30871974012},"targetPosition":{"x":117681.1976839404,"y":42380.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"40234fe7-73d0-4548-a2ae-048c7b448686","savedPayload":{"position":{"x":117798.47464310568,"y":42561.078845722004},"targetPosition":{"x":117681.1976839404,"y":42380.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"03f91227-acc2-4a93-847c-c4a0c777bc57","savedPayload":{"position":{"x":117681.1976839404,"y":42380.9577848575},"targetPosition":{"x":117521.29807927819,"y":42237.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"cf71677c-3079-4636-8945-974424aca047","savedPayload":{"position":{"x":8738.830826978025,"y":22764.637015807068},"targetPosition":{"x":8563.358604464145,"y":23419.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"817d16e2-f1ec-44f6-8672-c57cc6887bcb","savedPayload":{"position":{"x":117167.08517196118,"y":42681.873506163276},"targetPosition":{"x":117120.148416086,"y":42472.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"65121a41-a52e-459e-8369-edeb4890e921","savedPayload":{"position":{"x":117091.81764534827,"y":42889.158418658466},"targetPosition":{"x":117055.92260166303,"y":42677.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"d18f9d86-d606-475a-a0a1-69ee310e4403","savedPayload":{"position":{"x":117024.57470740988,"y":42889.87861637634},"targetPosition":{"x":117055.92260166303,"y":42677.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"097175ee-f38e-45f9-aa42-000732c80ad7","savedPayload":{"position":{"x":116960.40031977459,"y":42869.78435453428},"targetPosition":{"x":117055.92260166303,"y":42677.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"56d68dbf-50b4-4e33-9f44-737ffd8a5200","savedPayload":{"position":{"x":116905.57631863341,"y":42830.842599486336},"targetPosition":{"x":117055.92260166303,"y":42677.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"192ab722-ac1a-454d-aa2b-a38399e12f51","savedPayload":{"position":{"x":117055.92260166303,"y":42677.2409168875},"targetPosition":{"x":117120.148416086,"y":42472.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"c681ff2e-e35e-468d-a1b0-7f88a68048e2","savedPayload":{"position":{"x":8976.262105522543,"y":22881.80904884194},"targetPosition":{"x":8563.358604464145,"y":23419.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"85d2e9d0-002f-4d9c-b1e4-927b13a06e4e","savedPayload":{"position":{"x":12511.656807835234,"y":22951.41395464089},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":1945,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #1 2","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-02-15T18:48:15.987Z\",\n \"toDate\": \"2020-02-26T15:10:48.839Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"e18967b7-284f-4ad4-9669-1e6e22ea1aa7","savedPayload":{"position":{"x":7872.096674865171,"y":23558.24309517601},"targetPosition":{"x":8544.358604464145,"y":23469.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 5862.1695,\n \"maxValue\": 9915.1714,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"8e86a2f5-a36b-451e-8942-47cb21b8dbbd","savedPayload":{"position":{"x":7889.338582240417,"y":23294.23556105138},"targetPosition":{"x":8544.358604464145,"y":23469.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"d9e3c43a-04bc-40dd-ba37-b09d451314b4","savedPayload":{"position":{"x":8006.37470993773,"y":23056.86188881632},"targetPosition":{"x":8544.358604464145,"y":23469.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"98a94d9c-489e-4bee-ab31-82bdfb539f4b","savedPayload":{"position":{"x":117794.94061181812,"y":41815.34643898858},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"loading\",\n \"showPanels\": false\n}","id":"50a644a3-80f2-4039-a007-c6edd4298c59","savedPayload":{"position":{"x":117848.6823253683,"y":41831.474373103774},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9955ac7c-0bb7-4ec9-9eec-5555c09da28b","savedPayload":{"position":{"x":117896.41861792827,"y":41860.962140173564},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"59ebf187-3db8-403d-baf8-24cfa14fa3ac","savedPayload":{"position":{"x":117934.89634004804,"y":41901.80019760298},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5cc6928c-966e-4c9c-89fd-09f4f9279073","savedPayload":{"position":{"x":117961.49329855257,"y":41951.20549926629},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ca7924aa-20e8-4dce-b7d8-6ca296175fd7","savedPayload":{"position":{"x":117974.39695467333,"y":42005.81115550126},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d7221476-d0c5-4e99-9775-2f484f48f50f","savedPayload":{"position":{"x":117972.72794557,"y":42061.89588107557},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"55379255-bda5-4e12-9bb1-12862c9bfdff","savedPayload":{"position":{"x":117956.60001145482,"y":42115.63759462576},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ef9b5c53-c8c7-4d47-b62b-eb219a7a4f6c","savedPayload":{"position":{"x":117927.11224438502,"y":42163.373887185735},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0f591787-b815-4915-8e20-b37813a7df23","savedPayload":{"position":{"x":117886.2741869556,"y":42201.85160930551},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"99720138-b1ac-49f1-99b0-5917be5c69db","savedPayload":{"position":{"x":117836.86888529231,"y":42228.44856781005},"targetPosition":{"x":117760.55955765057,"y":42027.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"8e9a457e-c99c-4a53-bccc-df2bb1dbc3f2","savedPayload":{"position":{"x":117760.55955765057,"y":42027.514826908024},"targetPosition":{"x":117546.72216062779,"y":42049.2184983148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"a358e878-e076-431b-a3d6-56ee39a8a4ee","savedPayload":{"position":{"x":8205.340107273383,"y":22882.367058775457},"targetPosition":{"x":8544.358604464145,"y":23469.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"3b476784-3146-451b-b3ae-f96afa1b3374","savedPayload":{"position":{"x":116555.30026226789,"y":42331.77407241656},"targetPosition":{"x":116727.80498101345,"y":42219.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"a2ac83bb-e3da-4748-8322-4d57d03aaf0d","savedPayload":{"position":{"x":117946.80551404947,"y":42303.650272622355},"targetPosition":{"x":116522.39857519923,"y":42230.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"0cc8b81c-bac0-4202-a08b-6ecbcdfe5f31","savedPayload":{"position":{"x":117898.78778857614,"y":42404.013990962514},"targetPosition":{"x":116522.39857519923,"y":42230.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"04c0bad9-cf63-4a2f-b9e2-7f97d918e25e","savedPayload":{"position":{"x":116522.39857519923,"y":42230.51309178003},"targetPosition":{"x":116727.80498101345,"y":42219.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"77c02bf3-a6ef-42bd-9511-d6de8f34838f","savedPayload":{"position":{"x":8455.939860344797,"y":22797.30582552537},"targetPosition":{"x":8544.358604464145,"y":23469.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"7d204257-75ef-4cf0-8f64-8f4a6a73115a","savedPayload":{"position":{"x":117712.59023595271,"y":42331.76520136268},"targetPosition":{"x":117502.29807927819,"y":42287.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"ed916efb-3c40-4a3a-9d88-239d69f82bff","savedPayload":{"position":{"x":117853.8230402884,"y":42528.30871974012},"targetPosition":{"x":117662.1976839404,"y":42430.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a64b6d9f-be3a-4b9f-b7b6-ae115bc68614","savedPayload":{"position":{"x":117779.47464310568,"y":42611.078845722004},"targetPosition":{"x":117662.1976839404,"y":42430.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"69410f9b-1d1f-48ca-a5de-00492d07b0cc","savedPayload":{"position":{"x":117662.1976839404,"y":42430.9577848575},"targetPosition":{"x":117502.29807927819,"y":42287.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"9a3c8ffe-37ef-44d6-9720-82bb596c2a96","savedPayload":{"position":{"x":8719.830826978025,"y":22814.637015807068},"targetPosition":{"x":8544.358604464145,"y":23469.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"9794fe73-ecb1-4210-9eab-e816c98efb33","savedPayload":{"position":{"x":117148.08517196118,"y":42731.873506163276},"targetPosition":{"x":117101.148416086,"y":42522.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"on\",\n \"showPanels\": true\n}","id":"d0c63ec0-425f-44da-899c-cb8bba9ecba1","savedPayload":{"position":{"x":117072.81764534827,"y":42939.158418658466},"targetPosition":{"x":117036.92260166303,"y":42727.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"e643cbdd-3571-4ca0-8cfe-c5c4653f0e77","savedPayload":{"position":{"x":117005.57470740988,"y":42939.87861637634},"targetPosition":{"x":117036.92260166303,"y":42727.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"1d488211-1bf3-4cd6-a394-1b85bd5cbce9","savedPayload":{"position":{"x":116941.40031977459,"y":42919.78435453428},"targetPosition":{"x":117036.92260166303,"y":42727.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"6b5348e4-4d56-4422-ae24-0d88053db52b","savedPayload":{"position":{"x":116886.57631863341,"y":42880.842599486336},"targetPosition":{"x":117036.92260166303,"y":42727.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"7193e8dd-b63c-4736-8b59-42f1843c6d33","savedPayload":{"position":{"x":117036.92260166303,"y":42727.2409168875},"targetPosition":{"x":117101.148416086,"y":42522.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"4122860c-147d-4695-ae6b-23fbc32737f1","savedPayload":{"position":{"x":8957.262105522543,"y":22931.80904884194},"targetPosition":{"x":8544.358604464145,"y":23469.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"016afb30-1fa5-4b67-99d4-d91cb0232fb5","savedPayload":{"position":{"x":12745.013531222832,"y":23261.953349392617},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":2245,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #1 3","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-03-05T07:36:47.146Z\",\n \"toDate\": \"2020-03-16T03:59:19.998Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"da70d993-e3ab-4c73-8195-11762307c21f","savedPayload":{"position":{"x":7815.096674865171,"y":23541.24309517601},"targetPosition":{"x":8487.358604464145,"y":23452.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3782.13,\n \"maxValue\": 9188,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"98900105-fd84-45bc-a86e-585e33ec8fb0","savedPayload":{"position":{"x":7832.338582240417,"y":23277.23556105138},"targetPosition":{"x":8487.358604464145,"y":23452.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"3dd23058-e16c-4191-ae34-7ee6be2fe402","savedPayload":{"position":{"x":7949.37470993773,"y":23039.86188881632},"targetPosition":{"x":8487.358604464145,"y":23452.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"d95a2182-9e06-4b4d-b98d-d28e2c2bcddd","savedPayload":{"position":{"x":117737.94061181812,"y":41798.34643898858},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"loading\",\n \"showPanels\": false\n}","id":"418b7baa-2c54-483e-8e07-51afb02f578d","savedPayload":{"position":{"x":117791.6823253683,"y":41814.474373103774},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"36c8edb0-ba77-486b-84bc-2ab595545ead","savedPayload":{"position":{"x":117839.41861792827,"y":41843.962140173564},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"52cbc4cb-5af0-4284-9cc6-3b19f839128b","savedPayload":{"position":{"x":117877.89634004804,"y":41884.80019760298},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"854f2435-a892-4fd9-b420-1394f74ab8c9","savedPayload":{"position":{"x":117904.49329855257,"y":41934.20549926629},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6aea56ee-facb-495e-b24f-26881a547eba","savedPayload":{"position":{"x":117917.39695467333,"y":41988.81115550126},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0ab93320-f6ad-4cc9-95a5-e45c953cb19b","savedPayload":{"position":{"x":117915.72794557,"y":42044.89588107557},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"53a248a1-8dcd-4a5f-83aa-287f3722245e","savedPayload":{"position":{"x":117899.60001145482,"y":42098.63759462576},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"aa2fae0c-b6bd-493f-a575-9fbc53cf3b6a","savedPayload":{"position":{"x":117870.11224438502,"y":42146.373887185735},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a882e50b-ddf3-4aa6-b763-2bc60e415909","savedPayload":{"position":{"x":117829.2741869556,"y":42184.85160930551},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"5c27865e-432a-4399-960f-a13f4b320a2e","savedPayload":{"position":{"x":117779.86888529231,"y":42211.44856781005},"targetPosition":{"x":117703.55955765057,"y":42010.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"1a7d04a1-b8c4-40c2-add8-1759d9e68d06","savedPayload":{"position":{"x":117703.55955765057,"y":42010.514826908024},"targetPosition":{"x":117489.72216062779,"y":42032.2184983148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"0c86fd37-232a-4e4e-86a3-9a2fd9325dd1","savedPayload":{"position":{"x":8148.340107273384,"y":22865.367058775457},"targetPosition":{"x":8487.358604464145,"y":23452.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3485.8322770879076,\n \"maxValue\": 12389.8535408629,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"82c98206-945c-422f-8667-5d497e471d54","savedPayload":{"position":{"x":116498.30026226789,"y":42314.77407241656},"targetPosition":{"x":116670.80498101345,"y":42202.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"d89bb4a5-7809-4c1d-a903-84058d785cea","savedPayload":{"position":{"x":117889.80551404947,"y":42286.650272622355},"targetPosition":{"x":116465.39857519923,"y":42213.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"10b59b0a-cae5-4b9b-96a0-d332d72401a4","savedPayload":{"position":{"x":117841.78778857614,"y":42387.013990962514},"targetPosition":{"x":116465.39857519923,"y":42213.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"e18d4f56-ecad-4e5f-baef-22379895e65a","savedPayload":{"position":{"x":116465.39857519923,"y":42213.51309178003},"targetPosition":{"x":116670.80498101345,"y":42202.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"fc528a9d-0aae-46de-a647-94572288176e","savedPayload":{"position":{"x":8398.939860344797,"y":22780.30582552537},"targetPosition":{"x":8487.358604464145,"y":23452.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 210.8099388418891,\n \"maxValue\": 1021.3978225584522,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"e0bd9847-e56a-49cd-b511-7bfb9362de1e","savedPayload":{"position":{"x":117655.59023595271,"y":42314.76520136268},"targetPosition":{"x":117445.29807927819,"y":42270.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"fb56bee3-8bc2-4ea4-b6dd-359339b50aa8","savedPayload":{"position":{"x":117796.8230402884,"y":42511.30871974012},"targetPosition":{"x":117605.1976839404,"y":42413.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5d5b1c11-f804-413b-9dcc-d4c418263396","savedPayload":{"position":{"x":117722.47464310568,"y":42594.078845722004},"targetPosition":{"x":117605.1976839404,"y":42413.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"e9aacf9a-a3d2-4d80-96f4-ecb79c540116","savedPayload":{"position":{"x":117605.1976839404,"y":42413.9577848575},"targetPosition":{"x":117445.29807927819,"y":42270.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"645f9571-fe43-4502-96a5-809f88d89e90","savedPayload":{"position":{"x":8662.830826978025,"y":22797.637015807068},"targetPosition":{"x":8487.358604464145,"y":23452.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"bf9dd307-d5ba-4121-87d7-db7aba0c94f7","savedPayload":{"position":{"x":117091.08517196118,"y":42714.873506163276},"targetPosition":{"x":117044.148416086,"y":42505.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"loading\",\n \"showPanels\": true\n}","id":"b38963f4-5f5f-4b9f-9b00-81b60d9256c1","savedPayload":{"position":{"x":117015.81764534827,"y":42922.158418658466},"targetPosition":{"x":116979.92260166303,"y":42710.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"2ac7d98d-fca3-4f58-8bbc-e7b1e8d3bab2","savedPayload":{"position":{"x":116948.57470740988,"y":42922.87861637634},"targetPosition":{"x":116979.92260166303,"y":42710.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"23e0929e-6c3d-4b2c-9d32-896709ddefb3","savedPayload":{"position":{"x":116884.40031977459,"y":42902.78435453428},"targetPosition":{"x":116979.92260166303,"y":42710.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"95393e24-755f-4640-8b2b-43b40c62c5f1","savedPayload":{"position":{"x":116829.57631863341,"y":42863.842599486336},"targetPosition":{"x":116979.92260166303,"y":42710.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"c116c9e8-4401-4733-8f60-64cd20250f3e","savedPayload":{"position":{"x":116979.92260166303,"y":42710.2409168875},"targetPosition":{"x":117044.148416086,"y":42505.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"7b245e3b-61a4-4038-b0d4-1abc733b9076","savedPayload":{"position":{"x":8900.262105522543,"y":22914.80904884194},"targetPosition":{"x":8487.358604464145,"y":23452.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"94fbb4f4-8d29-4027-a6d5-f2c714869572","savedPayload":{"position":{"x":12807.312796431128,"y":23645.199440282828},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":2545,"y":-15},"width":240,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"WHB - Trade #1 4 & 15","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-03-11T15:29:56.276Z\",\n \"toDate\": \"2020-03-22T11:52:29.128Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"c6d6f5dc-ea77-48d8-92af-c02d902be4cc","savedPayload":{"position":{"x":7805.096674865171,"y":23505.24309517601},"targetPosition":{"x":8477.358604464145,"y":23416.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3094.5987000000005,\n \"maxValue\": 8731.873462880063,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"ee3f3d53-29ba-46e6-8fe7-516e65e32462","savedPayload":{"position":{"x":7822.338582240417,"y":23241.23556105138},"targetPosition":{"x":8477.358604464145,"y":23416.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"1e0a40b5-53df-46db-a922-cb24d41fa45a","savedPayload":{"position":{"x":7939.37470993773,"y":23003.86188881632},"targetPosition":{"x":8477.358604464145,"y":23416.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"28e9fe57-5bb1-4e8c-9696-4a8473d78deb","savedPayload":{"position":{"x":117727.94061181812,"y":41762.34643898858},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"loading\",\n \"showPanels\": false\n}","id":"2d9510f9-c8d9-411f-8048-f626c3c91b35","savedPayload":{"position":{"x":117781.6823253683,"y":41778.474373103774},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0f9395c3-37f7-4995-9aa7-6c4ed750cbff","savedPayload":{"position":{"x":117829.41861792827,"y":41807.962140173564},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"3f7b1291-fc7a-4fc1-98c2-2078cc656abd","savedPayload":{"position":{"x":117867.89634004804,"y":41848.80019760298},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"ba341a39-9f85-4550-8fd4-c15475a52809","savedPayload":{"position":{"x":117894.49329855257,"y":41898.20549926629},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e2e944da-ee40-4ebd-97c5-9bd0e5644cdf","savedPayload":{"position":{"x":117907.39695467333,"y":41952.81115550126},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9f880e89-2544-4c4a-b545-b231949a19f3","savedPayload":{"position":{"x":117905.72794557,"y":42008.89588107557},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"03bd30e2-2d83-499b-be18-00b58b81e269","savedPayload":{"position":{"x":117889.60001145482,"y":42062.63759462576},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"79645574-ce29-4aa2-86ec-ab199580a8d9","savedPayload":{"position":{"x":117860.11224438502,"y":42110.373887185735},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"c415eb6e-7a8f-4650-b9f7-de453701c367","savedPayload":{"position":{"x":117819.2741869556,"y":42148.85160930551},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"4ea888f1-bd15-4da3-99a6-19394057a50a","savedPayload":{"position":{"x":117769.86888529231,"y":42175.44856781005},"targetPosition":{"x":117693.55955765057,"y":41974.514826908024},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"b3663263-4c07-4a9d-8eaa-83e6682a9be9","savedPayload":{"position":{"x":117693.55955765057,"y":41974.514826908024},"targetPosition":{"x":117479.72216062779,"y":41996.2184983148},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"2c177d48-d629-4e36-8f61-05c59ae54af1","savedPayload":{"position":{"x":8138.340107273384,"y":22829.367058775457},"targetPosition":{"x":8477.358604464145,"y":23416.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"73c03c2f-ef41-4fd9-ae05-c5e346a77300","savedPayload":{"position":{"x":116488.30026226789,"y":42278.77407241656},"targetPosition":{"x":116660.80498101345,"y":42166.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"d7816c3c-62e9-4b7f-b237-9629f3ff348a","savedPayload":{"position":{"x":117879.80551404947,"y":42250.650272622355},"targetPosition":{"x":116455.39857519923,"y":42177.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"75d5bcf1-5d02-4d9f-bc2b-2a9b2f2d491d","savedPayload":{"position":{"x":117831.78778857614,"y":42351.013990962514},"targetPosition":{"x":116455.39857519923,"y":42177.51309178003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"4dc51f6e-9ca5-4dbd-9666-4e266bb06f09","savedPayload":{"position":{"x":116455.39857519923,"y":42177.51309178003},"targetPosition":{"x":116660.80498101345,"y":42166.74819820079},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"fcab4f79-03ab-41c8-bd38-181b3fe1948c","savedPayload":{"position":{"x":8388.939860344797,"y":22744.30582552537},"targetPosition":{"x":8477.358604464145,"y":23416.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"fd038855-4c8c-4407-b835-c912fb1e177c","savedPayload":{"position":{"x":117645.59023595271,"y":42278.76520136268},"targetPosition":{"x":117435.29807927819,"y":42234.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"7577016d-e983-4086-b06d-77922a6d221b","savedPayload":{"position":{"x":117786.8230402884,"y":42475.30871974012},"targetPosition":{"x":117595.1976839404,"y":42377.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b70f2f9c-d6ea-4100-9c74-03c0c222b389","savedPayload":{"position":{"x":117712.47464310568,"y":42558.078845722004},"targetPosition":{"x":117595.1976839404,"y":42377.9577848575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"cde15a80-71da-4f06-896d-665d87cad381","savedPayload":{"position":{"x":117595.1976839404,"y":42377.9577848575},"targetPosition":{"x":117435.29807927819,"y":42234.32771089359},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"3f15d752-3bb7-463b-b9d2-091353d8d902","savedPayload":{"position":{"x":8652.830826978025,"y":22761.637015807068},"targetPosition":{"x":8477.358604464145,"y":23416.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"a262019e-fc65-46ef-a2d3-21eb34a2d961","savedPayload":{"position":{"x":117081.08517196118,"y":42678.873506163276},"targetPosition":{"x":117034.148416086,"y":42469.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 4,\n \"panelLocation\": {\n \"upOrDown\": \"down\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"Simulation","code":"{\n \"status\": \"loading\",\n \"showPanels\": true\n}","id":"5e22d7b6-913b-472e-ad3b-e118e2f84ca2","savedPayload":{"position":{"x":117005.81764534827,"y":42886.158418658466},"targetPosition":{"x":116969.92260166303,"y":42674.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"loading\"\n}","id":"325fea76-1957-4262-a981-88331ae4beab","savedPayload":{"position":{"x":116938.57470740988,"y":42886.87861637634},"targetPosition":{"x":116969.92260166303,"y":42674.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"on\"\n}","id":"8dfa2e67-40f8-450b-86af-3068ed7d70b0","savedPayload":{"position":{"x":116874.40031977459,"y":42866.78435453428},"targetPosition":{"x":116969.92260166303,"y":42674.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"on\"\n}","id":"4ae7e5e9-eb49-4594-8665-942a2bd4baf5","savedPayload":{"position":{"x":116819.57631863341,"y":42827.842599486336},"targetPosition":{"x":116969.92260166303,"y":42674.2409168875},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"3652c058-5d51-4e9b-b871-3a692e3ff30f","savedPayload":{"position":{"x":116969.92260166303,"y":42674.2409168875},"targetPosition":{"x":117034.148416086,"y":42469.125031399046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":897},"width":150,"height":330,"radius":0}}},"id":"185c6fe9-b652-4dfe-8d4f-e70dd61d3f63","savedPayload":{"position":{"x":8890.262105522543,"y":22878.80904884194},"targetPosition":{"x":8477.358604464145,"y":23416.625526670414},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"726328d9-ba16-4411-86c0-d2ce62777e38","savedPayload":{"position":{"x":12684.213570981447,"y":24013.689004444026},"targetPosition":{"x":11998.460412060784,"y":23580.004014375667},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":2845,"y":-15},"width":240,"height":112.375,"radius":0}}}],"id":"0a338aca-e2d3-4a35-917e-e6be81cb97bf","savedPayload":{"position":{"x":11234.356323409915,"y":24985.353921550384},"targetPosition":{"x":12809.806237131383,"y":24985.35640053908},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":0},"uiObject":{"isRunning":false}}},{"type":"Dashboard","name":"Demos","timeMachines":[{"type":"Time Machine","name":"Demo #1","code":"{\n\"description\" : \"Demo of 2 Markets Same Exchange Plotted Together\"\n}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2019-09-19T00:00:00.000Z\",\n \"toDate\": \"2020-03-22T23:59:59.999Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"1e017d0c-beab-42cb-a115-e6c06de0d8ea","savedPayload":{"position":{"x":11850.448348616854,"y":23893.831244994544},"targetPosition":{"x":12293.513562917815,"y":23494.536555282888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 32.6,\n \"maxValue\": 285.67514292,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"a556df2a-dd5f-4829-b094-0f5f20117823","savedPayload":{"position":{"x":11748.4527585501,"y":23737.069190987066},"targetPosition":{"x":12293.513562917815,"y":23494.536555282888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"3c9f790a-b2a5-4309-973a-47fc74b85704","savedPayload":{"position":{"x":11700.073730730659,"y":23556.69330581166},"targetPosition":{"x":12293.513562917815,"y":23494.536555282888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators DASH/USDT","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":"6e858775-3c14-4b2b-8e10-98e20b63ad52","savedPayload":{"position":{"x":45997.922472263075,"y":27173.958628714456},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"7e945760-2f5e-4a6a-b8a1-63d6bf969c12"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"703d2476-6047-40e7-b10b-a3e972a35c03","savedPayload":{"position":{"x":46081.83465082062,"y":27194.697695368857},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6715685c-74c8-4516-8ab1-49eeaece7713"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5211f9bd-5498-4b0a-926f-ff64bc28c946","savedPayload":{"position":{"x":46145.57987194274,"y":27243.385849473245},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"03cc5027-94c1-478f-a2cc-a5c099e15482"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a84afa95-d398-4468-9ac4-bc8989beeb5b","savedPayload":{"position":{"x":46199.725787895775,"y":27302.73537475238},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"c53e2a82-c1ba-4043-8fb9-46bad81e3cfc"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b079a696-0324-4bc1-8550-f547d9325962","savedPayload":{"position":{"x":46236.67530308601,"y":27373.125869513464},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"74711701-3514-42cb-b16c-4fe04501c9da"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"33c428e3-f8fa-4325-8a0d-3e38fd0e14e9","savedPayload":{"position":{"x":46254.1934360138,"y":27450.929000828437},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5b06c63e-37ca-47ff-bf20-081739d9c38a"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"51931357-6df6-4898-a5ca-0cc8a13f6ce6","savedPayload":{"position":{"x":46250.903840382154,"y":27529.86239216539},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"1e6ca400-51e0-4072-a726-0b4b901038fb"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d26d0e81-6189-43b5-a6b4-c8a98274cab1","savedPayload":{"position":{"x":46227.177950707,"y":27606.034090244928},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"37f637ed-bdcd-4c8a-a38a-b3e09a643a09"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"edc0db31-ef93-415a-afe9-72257a76dece","savedPayload":{"position":{"x":46184.69215129903,"y":27672.96578313571},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"064e73d6-2711-4df9-8855-be1add07af09"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a8c495e6-3ddf-45d2-8c19-67e1793f92e8","savedPayload":{"position":{"x":46125.94701049319,"y":27727.02679471921},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"a28f6c49-1568-4fc2-8952-e0d190952028"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"01ee5a31-c59f-4211-a36a-f7cc30997f9a","savedPayload":{"position":{"x":46055.16300188845,"y":27763.949676780085},"targetPosition":{"x":46192.06127823908,"y":27328.049044528743},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"cf2f1a70-d040-49ad-8c12-4365d65e65e4"}}}],"id":"c3665ea8-a416-4d82-adbd-0e588d8a86ee","savedPayload":{"position":{"x":46192.06127823908,"y":27328.049044528743},"targetPosition":{"x":45832.86068915525,"y":27364.348594102554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"8e0a2d53-dfbc-430f-817b-5b46b1459872","savedPayload":{"position":{"x":11709.833941132052,"y":23370.466807148507},"targetPosition":{"x":12293.513562917815,"y":23494.536555282888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes DASH/USDT","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":"13bc63b4-d56e-496f-8a2f-42c28993c5cf","savedPayload":{"position":{"x":153257.13300610083,"y":46021.72976901072},"targetPosition":{"x":153429.63772484637,"y":45909.70389479495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"01910183-93ab-40a4-a5af-523fcbfbc578","savedPayload":{"position":{"x":154648.63825788238,"y":45993.605969216514},"targetPosition":{"x":153224.23131903214,"y":45920.468788374186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"b4eed780-c1e0-485c-8fe8-c8d76cc7512b"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"f58a44dd-7503-45f7-a3e6-5a7ffff9e058","savedPayload":{"position":{"x":154600.62053240906,"y":46093.96968755667},"targetPosition":{"x":153224.23131903214,"y":45920.468788374186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dfac4da5-7323-4184-ba24-b1ff67280657"}}}],"id":"92064bcd-fe50-4706-8db1-2de663497eb6","savedPayload":{"position":{"x":153224.23131903214,"y":45920.468788374186},"targetPosition":{"x":153429.63772484637,"y":45909.70389479495},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"eef5630b-7d13-46ff-adf1-a565e17f4dd5","savedPayload":{"position":{"x":11776.74785545721,"y":23196.160468510534},"targetPosition":{"x":12293.513562917815,"y":23494.536555282888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators DASH/USDT","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"6cce1420-e3c8-4eba-92d7-ac4427d9dfd8","savedPayload":{"position":{"x":154420.22907184242,"y":46270.67554126003},"targetPosition":{"x":154209.93691516787,"y":46226.23805079094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"a8f60933-143f-4036-9686-39ea0085fb0d","savedPayload":{"position":{"x":154561.46187617807,"y":46467.21905963747},"targetPosition":{"x":154369.83651983007,"y":46369.86812475485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"e2488001-ea36-4401-89e5-0667a7e3dc73"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6707e3b9-ac67-45f1-8870-78a69eebe9b8","savedPayload":{"position":{"x":154487.11347899536,"y":46549.98918561936},"targetPosition":{"x":154369.83651983007,"y":46369.86812475485},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"4f1a0d64-3e63-4b11-ad98-5b03367f9aae"}}}],"id":"25227c68-cc02-4529-83f5-81e2d8c1f179","savedPayload":{"position":{"x":154369.83651983007,"y":46369.86812475485},"targetPosition":{"x":154209.93691516787,"y":46226.23805079094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"b6a98cdb-3dea-4ae3-82ff-20fcfd94b5ae","savedPayload":{"position":{"x":11894.249491822558,"y":23051.056624793913},"targetPosition":{"x":12293.513562917815,"y":23494.536555282888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"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":"7e768d45-e33a-40cf-a0c7-678cf4840502","savedPayload":{"position":{"x":44218.5718691795,"y":26519.1546806628},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"01aa1d03-ed10-4c03-9e3d-ff1f8205ef38"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"79325ab0-bbe8-4ce5-be1d-0c1e957ab9bf","savedPayload":{"position":{"x":44302.484047737045,"y":26539.8937473172},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"424bee3d-18e9-42a0-9b34-41894517f1f5"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8ab1070b-8724-499a-b51d-f13d5c2c1974","savedPayload":{"position":{"x":44366.22926885916,"y":26588.58190142159},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"34363359-1009-4656-b997-5f8860eada75"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0c97502c-3f6a-4210-91b7-77b1746317aa","savedPayload":{"position":{"x":44420.3751848122,"y":26647.931426700725},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"2adc677b-7f53-45d4-b199-64616bb476bd"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"130d9aaa-1eab-45a1-bdb6-1469f6421fb8","savedPayload":{"position":{"x":44457.324700002435,"y":26718.321921461808},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"b7c724a3-3818-4b39-a3de-bfa495bd914f"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2f100f96-e506-4e78-b24a-1c683cb73777","savedPayload":{"position":{"x":44474.84283293022,"y":26796.12505277678},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"1cda9cc6-322d-4c30-87c0-5dcb9b9cf30f"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"625b075c-d9af-43a7-b67c-cf20d150d6ae","savedPayload":{"position":{"x":44471.553237298576,"y":26875.058444113733},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"1664f095-e511-4f6f-b99e-41207a981d90"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"b9760b21-ae5b-4bea-95a4-7ebf3b60b505","savedPayload":{"position":{"x":44447.827347623424,"y":26951.23014219327},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"fa6c7e7c-0513-415d-8209-4a315676dd2a"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"80fb49e2-67db-4712-83ef-b814c140d29b","savedPayload":{"position":{"x":44405.34154821545,"y":27018.161835084054},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"ede7a7d0-42ea-43cc-bbf6-12ba6e3767e2"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"915ab432-9bee-4ab2-9eb8-9ca23de36abf","savedPayload":{"position":{"x":44346.59640740961,"y":27072.222846667555},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"f3bbbc37-820f-4eaa-a10e-7ec938729af8"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"7c2f8e85-91f8-40a6-b242-22b64e33dcc2","savedPayload":{"position":{"x":44275.812398804876,"y":27109.14572872843},"targetPosition":{"x":44412.710675155504,"y":26673.245096477087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"2d65df45-6fd4-423b-b3b0-fa5078ae8861"}}}],"id":"774e9271-f97e-4773-af6c-15b266a484d0","savedPayload":{"position":{"x":44412.710675155504,"y":26673.245096477087},"targetPosition":{"x":44053.51008607167,"y":26709.544646050897},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":450,"y":80},"width":150,"height":190,"radius":0}}},"id":"e5324bbd-1dbf-43cf-97dd-4f19765be6c0","savedPayload":{"position":{"x":12050.852171387458,"y":22949.367648457046},"targetPosition":{"x":12293.513562917815,"y":23494.536555282888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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":"e345fbe4-adc4-4a48-9f9b-e8bcb64a8b62","savedPayload":{"position":{"x":151873.68844702153,"y":45210.783683296766},"targetPosition":{"x":152046.19316576706,"y":45098.75780908099},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"ab5c2d7e-e6ba-4389-9d9b-e7928c883529","savedPayload":{"position":{"x":153265.19369880308,"y":45182.65988350256},"targetPosition":{"x":151840.78675995284,"y":45109.52270266023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"272c8829-637f-44e8-846b-1973c3b9e6c2"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"d33b6171-9048-4539-9229-82b5f651f94f","savedPayload":{"position":{"x":153217.17597332975,"y":45283.02360184272},"targetPosition":{"x":151840.78675995284,"y":45109.52270266023},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"a13f113c-7797-4d10-931c-fda5469b4aa4"}}}],"id":"85977eea-612e-40ef-9401-47148b123c39","savedPayload":{"position":{"x":151840.78675995284,"y":45109.52270266023},"targetPosition":{"x":152046.19316576706,"y":45098.75780908099},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":600,"y":80},"width":150,"height":40,"radius":0}}},"id":"1c8356f7-658d-4e63-9f35-a07672504db8","savedPayload":{"position":{"x":12231.250655143605,"y":22901.065777901946},"targetPosition":{"x":12293.513562917815,"y":23494.536555282888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"25c43152-c2e4-47d5-91ed-c6e0a7d4a70d","savedPayload":{"position":{"x":153264.62374642977,"y":45229.75431772309},"targetPosition":{"x":153054.33158975522,"y":45185.316827254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"ec8d8537-b065-4b89-87bb-8587f2891070","savedPayload":{"position":{"x":153405.85655076543,"y":45426.29783610053},"targetPosition":{"x":153214.23119441743,"y":45328.94690121791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"4c14a3a0-02c0-4e52-9fcc-318c2aa02ee5"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f6cf98af-2a66-49b5-9e54-657e9e575c69","savedPayload":{"position":{"x":153331.50815358272,"y":45509.067962082416},"targetPosition":{"x":153214.23119441743,"y":45328.94690121791},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"d5da7000-fc80-450b-8589-5af46724c17e"}}}],"id":"c6b5daaa-e273-4e72-8e78-899294b9cc64","savedPayload":{"position":{"x":153214.23119441743,"y":45328.94690121791},"targetPosition":{"x":153054.33158975522,"y":45185.316827254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":750,"y":80},"width":150,"height":40,"radius":0}}},"id":"62a00b3e-94a5-4032-830a-b2fffd625e18","savedPayload":{"position":{"x":12417.76351102947,"y":22910.984802334217},"targetPosition":{"x":12293.513562917815,"y":23494.536555282888},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"a0e20060-861e-491d-aa3c-4f7930144325","savedPayload":{"position":{"x":12293.479874955448,"y":23494.5614053574},"targetPosition":{"x":12809.811040897648,"y":23792.671721009017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-1435,"y":925},"width":350,"height":112.375,"radius":0}}},{"type":"Time Machine","name":"Demo #2","code":"{\n\"description\" : \"Demo of 3 Markets from different Exchanges\"\n}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2020-03-01T17:07:34.795Z\",\n \"toDate\": \"2020-03-30T04:16:45.801Z\",\n \"autoMinScale\": false,\n \"autoMaxScale\": false\n}","id":"ac1ba125-c112-415f-aaa7-397fb5ba981f","savedPayload":{"position":{"x":13326.04839496604,"y":22898.239365119858},"targetPosition":{"x":13326.063409902075,"y":23494.589210151702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"9bb8bd3f-f4cb-41f7-b91d-32a83adf5faa","savedPayload":{"position":{"x":13624.174263447187,"y":22978.116091844022},"targetPosition":{"x":13326.063409902075,"y":23494.589210151702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Binance","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"autoMinScale\": false,\n \"autoMaxScale\": false,\n \"minValue\": 1358.010007658576,\n \"maxValue\": 9761.321610444738\n}","id":"717b7f60-6e40-446a-a67b-d255aa3d1b7a","savedPayload":{"position":{"x":14140.47263475523,"y":22680.120342890623},"targetPosition":{"x":13842.351179167053,"y":23196.471930388085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"55330fd8-33c1-43ca-9ae8-e00ab47a4006","savedPayload":{"position":{"x":117370.45073139259,"y":43590.18672398555},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0460a0ed-2457-4ce1-9ce0-c52c5776b30e","savedPayload":{"position":{"x":117424.19244494276,"y":43606.314658100746},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6d6e7851-4633-4837-9510-c9bdeef89696","savedPayload":{"position":{"x":117471.92873750273,"y":43635.802425170536},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"797d7754-48c7-4dd1-9b71-0c66868a1db0","savedPayload":{"position":{"x":117510.4064596225,"y":43676.64048259995},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6b31b974-4635-4b4a-a9f3-3e319360fd55","savedPayload":{"position":{"x":117537.00341812703,"y":43726.04578426326},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"2d91df9f-a7d0-4d92-a150-1bd727c912d0","savedPayload":{"position":{"x":117549.90707424779,"y":43780.65144049823},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"e6678cb7-ce49-4fdc-b180-0e7657deb935","savedPayload":{"position":{"x":117548.23806514447,"y":43836.736166072544},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4a34d477-fff2-4291-be00-c1698d443a7e","savedPayload":{"position":{"x":117532.11013102929,"y":43890.47787962273},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"17450ee0-ced6-44c5-a106-4363a8eecd2b","savedPayload":{"position":{"x":117502.62236395948,"y":43938.21417218271},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a4cc3f73-0eba-4cc0-a4cf-78aadf86c28e","savedPayload":{"position":{"x":117461.78430653007,"y":43976.69189430248},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"18b9a35d-4ca6-4267-8fac-1597f07c1c51","savedPayload":{"position":{"x":117412.37900486677,"y":44003.28885280702},"targetPosition":{"x":117336.06967722504,"y":43802.355111904995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"dcbfec84-a9c6-4235-a878-5cafcd53faac","savedPayload":{"position":{"x":14173.486184793845,"y":23387.02063776947},"targetPosition":{"x":13842.351179167053,"y":23196.471930388085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"d2d7bef7-836a-4470-905a-feb4d2bdff85","savedPayload":{"position":{"x":13842.508876465958,"y":23196.43261811115},"targetPosition":{"x":13326.063409902075,"y":23494.589210151702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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\": 2962.5333750525588,\n \"maxValue\": 11184.328460449802\n}","id":"6364d8f0-5334-4155-b943-96d671431df0","savedPayload":{"position":{"x":14386.632136351682,"y":23159.031048022753},"targetPosition":{"x":13870.12319186454,"y":23457.08214058283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"5288e14d-7d61-4a34-a15f-3ed5725455af","savedPayload":{"position":{"x":152377.16900333515,"y":47385.448805111104},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"529add57-8a11-47fe-aabc-b90292ca883f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"549ab8a9-e89f-4d1b-8a0c-bf5275835a2b","savedPayload":{"position":{"x":152430.91071688532,"y":47401.5767392263},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"6790ec3b-8a61-4627-a977-795183b3477b"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5ebb9dec-5d6d-4632-99db-df1e6f41ec71","savedPayload":{"position":{"x":152478.64700944527,"y":47431.06450629609},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"2c7374df-979b-4eb9-b1ac-bf1e7d4f23e0"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5bd44ec6-f027-457c-97af-cb1491fd9988","savedPayload":{"position":{"x":152517.12473156504,"y":47471.9025637255},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"9475a61f-243d-45bf-b51f-f97ed8429abd"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a288842a-8531-4a99-aa70-9515f84d5328","savedPayload":{"position":{"x":152543.72169006956,"y":47521.307865388815},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"ccb3dc31-34a6-478c-bc64-6421ca72f0c2"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5655d835-dfd2-44bb-a368-e925917d7e84","savedPayload":{"position":{"x":152556.62534619033,"y":47575.913521623785},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5520fc91-4c7a-4ed0-b8ad-03318274b91e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"25248dd2-9e56-494c-8b21-3f57feac88c7","savedPayload":{"position":{"x":152554.956337087,"y":47631.9982471981},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"decc3b92-90b0-49ef-b630-4fa1cb5fbc4b"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"61305678-3e59-42cc-9f5b-73796eb79acf","savedPayload":{"position":{"x":152538.82840297182,"y":47685.73996074829},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"ea09493d-1325-43ee-8c2a-7d8ab2e68d9f"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a385333a-0289-4f70-8fbe-838e66448e80","savedPayload":{"position":{"x":152509.34063590204,"y":47733.47625330826},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"93676f7f-7235-40bf-86aa-9ff0ef787ebc"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"4c2f5b2c-0df4-436c-951e-30546db113ee","savedPayload":{"position":{"x":152468.50257847263,"y":47771.953975428034},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"8383209a-44a6-46a9-8b72-051330485c73"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"3afba00c-d604-4cbd-b1a8-ab5ef1ff0a03","savedPayload":{"position":{"x":152419.0972768093,"y":47798.55093393257},"targetPosition":{"x":152342.78794916757,"y":47597.61719303055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"26938510-b396-4cd0-9707-9abe0c6dca61"}}}],"id":"426bd204-c689-4a63-87ec-cbdc5d226b40","savedPayload":{"position":{"x":14064.956108110484,"y":23793.4830885821},"targetPosition":{"x":13870.12319186454,"y":23457.08214058283},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":190,"radius":0}}},"id":"4a57c130-e317-4076-9a95-3455dfd4c4ba","savedPayload":{"position":{"x":13922.419752250486,"y":23494.585723674736},"targetPosition":{"x":13326.063409902075,"y":23494.589210151702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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\": 2614.8674370039616,\n \"maxValue\": 14631.291355940828\n}","id":"2b151f59-d3fe-4f1e-9f42-5f714adb0e89","savedPayload":{"position":{"x":14438.466851066929,"y":23792.852802166624},"targetPosition":{"x":13842.094854236542,"y":23792.835701506094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"87d486de-bbe4-4fce-8cc3-2d7633ddc596","savedPayload":{"position":{"x":43965.97657095734,"y":27422.372117543586},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"87d60c74-a550-4dd8-acca-fd19b61cf02f"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6a3abc66-710b-4664-93f9-324c0a1b67ab","savedPayload":{"position":{"x":44049.88874951489,"y":27443.111184197987},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"a5dbed70-cf13-4b1d-b3b9-a2fc3a6c68b4"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"2a2d674d-5f04-4e95-9151-6743e3ee5ef6","savedPayload":{"position":{"x":44113.633970637005,"y":27491.799338302375},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"5517f47e-f000-446d-b0a4-e0b698cb783a"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9850f5a8-8ae3-451d-8bd2-ddfa24bc8331","savedPayload":{"position":{"x":44167.77988659004,"y":27551.14886358151},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"cb506d78-8632-4e25-a975-1bf51e061137"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"5381e948-91b1-487b-a8f7-a1e88be4a6c9","savedPayload":{"position":{"x":44204.72940178028,"y":27621.539358342594},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"1ce518d5-0c45-4435-ae92-dd065aec635b"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"757e4921-1620-481e-929a-340eecd04fc0","savedPayload":{"position":{"x":44222.24753470806,"y":27699.342489657567},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"0620fffd-223d-46e4-8be8-ffec4c9d0103"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"d216616e-781d-46f4-9ac0-0a8a3eff1f60","savedPayload":{"position":{"x":44218.95793907642,"y":27778.27588099452},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"0bb2d947-dda8-4490-98dc-cffdcb714cf4"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"f720530e-e71b-4a54-aed1-9f8ec47475ae","savedPayload":{"position":{"x":44195.23204940127,"y":27854.447579074058},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"4ebc7b29-6211-4311-876a-368dd01e2c7a"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"81006136-7a42-4cd7-80ac-f4da9848a08c","savedPayload":{"position":{"x":44152.746249993295,"y":27921.37927196484},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"1791d269-3f4b-412c-8335-612f6dc48f71"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9d379d6b-79be-4682-b342-37e6c79d6c64","savedPayload":{"position":{"x":44094.001109187455,"y":27975.44028354834},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"f18e1f89-e959-4473-bbf2-2cdf382f629f"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"d59355e3-751c-43a7-a861-3a3ad21a8b8e","savedPayload":{"position":{"x":44023.21710058272,"y":28012.363165609215},"targetPosition":{"x":44160.11537693335,"y":27576.462533357873},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"427efc54-389c-4bff-8b17-ae8fc14f1acd"}}}],"id":"badec844-026b-467e-bb22-6b75babfb43e","savedPayload":{"position":{"x":13842.184511750536,"y":24174.91141566812},"targetPosition":{"x":13842.094854236542,"y":23792.835701506094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":190,"radius":0}}},"id":"5424a465-f968-4b9c-8c83-e6f487404818","savedPayload":{"position":{"x":13842.442287615337,"y":23792.745979275853},"targetPosition":{"x":13326.063409902075,"y":23494.589210151702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"bf2d506e-e5f0-4531-88c6-196a5b275863","savedPayload":{"position":{"x":13326.144366746854,"y":23494.5627260804},"targetPosition":{"x":12809.811040897648,"y":23792.671721009017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-1955,"y":925},"width":330,"height":112.375,"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":false,"angleToParent":1,"distanceToParent":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},"uiObject":{"isRunning":false,"shortcutKey":"c"}}},{"type":"Trading System","name":"Bull Run Rider","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":39365.82836640363,"y":18024.168218963674},"targetPosition":{"x":39580.43309418583,"y":18013.241510980984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a1c434c4-5787-4906-8157-1e355999bba8","savedPayload":{"position":{"x":39580.43309418583,"y":18013.241510980984},"targetPosition":{"x":39795.82183026887,"y":18002.339607729755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":39560.74976017509,"y":17641.37546255235},"targetPosition":{"x":39677.97500609048,"y":17821.555824077757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f69f2608-49bd-4b04-b8f8-497675f819fe","savedPayload":{"position":{"x":39677.97500609048,"y":17821.555824077757},"targetPosition":{"x":39795.82183026887,"y":18002.339607729755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"1dfb0689-df0c-4184-9c09-683d012c9dfe","savedPayload":{"position":{"x":39795.82183026887,"y":18002.339607729755},"targetPosition":{"x":39987.61800165299,"y":18099.825253218787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"32d2ee8c-71bd-4e4c-8671-04bbc4a16734","savedPayload":{"position":{"x":39987.61800165299,"y":18099.825253218787},"targetPosition":{"x":40369.80868599963,"y":18293.946872397046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"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":40036.90604970189,"y":17272.087105877887},"targetPosition":{"x":40103.63478212326,"y":17476.753747464914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b527026c-4be3-4baf-bbde-83ebfd17e567","savedPayload":{"position":{"x":40103.63478212326,"y":17476.753747464914},"targetPosition":{"x":40170.46021986034,"y":17681.58479868604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"41cbb7ba-020c-4e96-a6a7-c3ef8c25b6fd","savedPayload":{"position":{"x":40170.46021986034,"y":17681.58479868604},"targetPosition":{"x":40237.14613497818,"y":17886.475906641663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"1af9fdb8-7316-4374-84f2-1b946741b5c6","savedPayload":{"position":{"x":40237.14613497818,"y":17886.475906641663},"targetPosition":{"x":40369.80868599963,"y":18293.946872397046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":40373.57878568003,"y":17396.87030065395},"targetPosition":{"x":40513.12406224243,"y":17561.3315710958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e022ab25-c7d3-439b-bfd7-1217c6abfbfe","savedPayload":{"position":{"x":40513.12406224243,"y":17561.3315710958},"targetPosition":{"x":40661.154105132,"y":17720.37029528908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":40527.42843953476,"y":17306.08227948588},"targetPosition":{"x":40594.05818746413,"y":17511.36782347673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"793426fb-7c1e-40c6-a41e-2acb0943aece","savedPayload":{"position":{"x":40594.05818746413,"y":17511.36782347673},"targetPosition":{"x":40661.154105132,"y":17720.37029528908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":40695.422486130745,"y":17286.2558791372},"targetPosition":{"x":40678.87454703652,"y":17501.565293974778},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"abdce7c6-67e2-4fbf-a4c3-e5526c13b6ca","savedPayload":{"position":{"x":40678.87454703652,"y":17501.565293974778},"targetPosition":{"x":40661.154105132,"y":17720.37029528908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":40858.74881271378,"y":17332.77696569319},"targetPosition":{"x":40761.05479598169,"y":17525.22583609386},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2d4d8745-13d1-47bd-8f42-faace8bfd7cb","savedPayload":{"position":{"x":40761.05479598169,"y":17525.22583609386},"targetPosition":{"x":40661.154105132,"y":17720.37029528908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.bollingerChannel.direction === \"Up\"","id":"01a5065a-b7af-4cbe-8678-033694f77d69","savedPayload":{"position":{"x":40991.70506824567,"y":17438.032773525978},"targetPosition":{"x":40828.16769355588,"y":17578.628806753222},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5f433ebc-f0ae-4095-93f5-6de3e03c0683","savedPayload":{"position":{"x":40828.16769355588,"y":17578.628806753222},"targetPosition":{"x":40661.154105132,"y":17720.37029528908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.movingAverage >= 85","id":"98b5b2b2-fbc0-4d1f-af0f-0d7eee6dc94b","savedPayload":{"position":{"x":41074.205304796196,"y":17587.603780458987},"targetPosition":{"x":40869.465473525575,"y":17654.48385082066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7ef29297-9eb3-4b6e-a69e-58e5afbfaff9","savedPayload":{"position":{"x":40869.465473525575,"y":17654.48385082066},"targetPosition":{"x":40661.154105132,"y":17720.37029528908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":41091.20684934926,"y":17757.729249635413},"targetPosition":{"x":40876.370340702735,"y":17741.713654999217},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"24a4f2dc-268f-4e27-97f7-f4a0cd89e710","savedPayload":{"position":{"x":40876.370340702735,"y":17741.713654999217},"targetPosition":{"x":40661.154105132,"y":17720.37029528908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"c3b9135a-1e58-486e-b444-1bdd743effa5","savedPayload":{"position":{"x":40661.154105132,"y":17720.37029528908},"targetPosition":{"x":40563.68636650871,"y":17911.955756987267},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"830b1089-fef6-4e79-9ad2-a45c14574b84","savedPayload":{"position":{"x":40563.68636650871,"y":17911.955756987267},"targetPosition":{"x":40369.80868599963,"y":18293.946872397046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"8ffee2fe-23fb-4e58-8bb9-09b0c2aaa621","savedPayload":{"position":{"x":40369.80868599963,"y":18293.946872397046},"targetPosition":{"x":40502.731879272455,"y":18701.453817647238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"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},"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},"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},"uiObject":{}}}],"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},"uiObject":{}}}],"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},"uiObject":{}}},"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},"uiObject":{}}}],"id":"2f0906a5-35ac-4681-9a75-d455789d198d","savedPayload":{"position":{"x":40632.6757774252,"y":18322.763592672705},"targetPosition":{"x":40828.64673538756,"y":18236.09425495489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":26622.532876521673,"y":25645.905716443944},"targetPosition":{"x":26865.23476136167,"y":25586.94732586733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"c6bffce6-17a9-484d-a8f7-5a3a4f5bd18d","savedPayload":{"position":{"x":26961.946024828474,"y":25394.995349307854},"targetPosition":{"x":26865.23476136167,"y":25586.94732586733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"73450f7c-f2df-4c92-a14d-e39d460d09c7","savedPayload":{"position":{"x":26865.23476136167,"y":25586.94732586733},"targetPosition":{"x":40683.81510041744,"y":18076.685875359042},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"784fc53e-e6ea-4658-80c7-62139549c49a","savedPayload":{"position":{"x":40685.543724910705,"y":18076.767876572187},"targetPosition":{"x":40828.64673538756,"y":18236.09425495489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"positionSize":{"type":"Position Size","name":"Position Size","formula":{"type":"Formula","code":"balanceQuotedAsset","id":"51c900a5-97d0-4d54-9af2-d2a8b56338ef","savedPayload":{"position":{"x":41045.237520576826,"y":17863.83985244732},"targetPosition":{"x":40936.71988996405,"y":18049.752303094392},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"31b90dc3-5e56-4485-afd1-7f0017805c7a","savedPayload":{"position":{"x":40936.71988996405,"y":18049.752303094392},"targetPosition":{"x":40828.64673538756,"y":18236.09425495489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":41250.43372339926,"y":18323.51461711155},"targetPosition":{"x":41039.703667675145,"y":18279.539902515702},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"5368a5cc-a6a1-46fa-996c-76a00c003dd1","savedPayload":{"position":{"x":41039.703667675145,"y":18279.539902515702},"targetPosition":{"x":40828.64673538756,"y":18236.09425495489},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b0e61bb8-915c-4089-839c-0cbb27143a5a","savedPayload":{"position":{"x":40828.64673538756,"y":18236.09425495489},"targetPosition":{"x":40850.00900123449,"y":18449.64653224039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"openExecution":{"type":"Open Execution","id":"adafb7bb-4f7f-4275-b6dd-36e9d03441ce","savedPayload":{"position":{"x":41046.920361368204,"y":18536.48644265745},"targetPosition":{"x":40850.00900123449,"y":18449.64653224039},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"4743e572-e0ec-4641-8881-86eef4337ed7","savedPayload":{"position":{"x":40850.00900123449,"y":18449.64653224039},"targetPosition":{"x":40502.731879272455,"y":18701.453817647238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"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":41266.67559688789,"y":18565.315682456992},"targetPosition":{"x":41242.70485171349,"y":18778.988775842787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"49858221-6783-4a5c-abdd-a715ee64491d","savedPayload":{"position":{"x":41417.53757555237,"y":18905.283039132184},"targetPosition":{"x":41242.70485171349,"y":18778.988775842787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"1c0100eb-a29a-4024-b7b9-d24164bc43eb","savedPayload":{"position":{"x":41242.70485171349,"y":18778.988775842787},"targetPosition":{"x":41045.42354423549,"y":18866.52903088122},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"17cd97a5-9ae0-46fb-86a7-a6b2824510c4","savedPayload":{"position":{"x":41045.42354423549,"y":18866.52903088122},"targetPosition":{"x":40849.04360760913,"y":18953.336536058876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"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":41129.90642623957,"y":19845.694683038368},"targetPosition":{"x":40782.525704643616,"y":19593.533761337883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"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":39861.24008393307,"y":20124.94423955925},"targetPosition":{"x":40028.877866956704,"y":19990.41133833673},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6b58a29a-27a3-4728-96bf-f1cffc915b93","savedPayload":{"position":{"x":40028.877866956704,"y":19990.41133833673},"targetPosition":{"x":40196.15561447358,"y":19855.34147594432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":39770.02665597202,"y":19921.77715038815},"targetPosition":{"x":39983.07974840415,"y":19888.191743121428},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d6f645b9-dded-4dc8-9361-edbb5e9362d7","savedPayload":{"position":{"x":39983.07974840415,"y":19888.191743121428},"targetPosition":{"x":40196.15561447358,"y":19855.34147594432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"11d3b6ff-1092-4d0c-aee7-06fd7fa1fdd4","savedPayload":{"position":{"x":40196.15561447358,"y":19855.34147594432},"targetPosition":{"x":40391.80156657793,"y":19767.490372568453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"262eb093-e91f-48c0-b975-43b2bb998c3e","savedPayload":{"position":{"x":40391.80156657793,"y":19767.490372568453},"targetPosition":{"x":40782.525704643616,"y":19593.533761337883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"f23e15b8-7fc2-4b64-a091-7a889776d29a","savedPayload":{"position":{"x":40782.525704643616,"y":19593.533761337883},"targetPosition":{"x":40826.8777492723,"y":19167.468084909204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},{"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":41085.5978040505,"y":20272.2976397527},"targetPosition":{"x":40738.512099397296,"y":20020.272721326677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"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":39932.478359967,"y":20687.880417780256},"targetPosition":{"x":40059.74149274232,"y":20514.417778979063},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f3b04fbc-e688-4e48-9d5f-96ea5ef0c8cb","savedPayload":{"position":{"x":40059.74149274232,"y":20514.417778979063},"targetPosition":{"x":40186.537695692365,"y":20340.111318951436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.percentageBandwidth.movingAverage < 70","id":"fe5f5c24-785d-4b05-aa61-50d738d9cd81","savedPayload":{"position":{"x":39791.89501105216,"y":20514.963563287452},"targetPosition":{"x":39989.1027770737,"y":20427.595133204497},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6b3364b5-d25b-4e29-b126-b7f85b401c3f","savedPayload":{"position":{"x":39989.1027770737,"y":20427.595133204497},"targetPosition":{"x":40186.537695692365,"y":20340.111318951436},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"04b8d0ea-5b40-4f88-9482-75170e16b454","savedPayload":{"position":{"x":40186.537695692365,"y":20340.111318951436},"targetPosition":{"x":40348.04858893843,"y":20194.211509842084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},{"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":39705.59940169769,"y":20284.812305975356},"targetPosition":{"x":39918.31960505609,"y":20250.926678929394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7f353c88-8c2e-4bcb-85ce-28276752daeb","savedPayload":{"position":{"x":39918.31960505609,"y":20250.926678929394},"targetPosition":{"x":40131.13544744291,"y":20217.006570585887},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"f9d261e8-528e-4469-9eb0-1765ec1adea4","savedPayload":{"position":{"x":40131.13544744291,"y":20217.006570585887},"targetPosition":{"x":40348.04858893843,"y":20194.211509842084},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"41adecfe-df45-4c0b-a6c6-9af24919657d","savedPayload":{"position":{"x":40348.04858893843,"y":20194.211509842084},"targetPosition":{"x":40738.512099397296,"y":20020.272721326677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"cc74b1fd-2a75-4d59-a30a-070a6f530237","savedPayload":{"position":{"x":40738.512099397296,"y":20020.272721326677},"targetPosition":{"x":40782.525704643616,"y":19593.533761337883},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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":41041.164727154086,"y":20699.398499397266},"targetPosition":{"x":40694.28015838262,"y":20446.928255816398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"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":39714.44557884695,"y":20886.208677229122},"targetPosition":{"x":39910.725276500765,"y":20798.277105039226},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"63de0e84-99e1-4ebb-a639-070aaec25769","savedPayload":{"position":{"x":39910.725276500765,"y":20798.277105039226},"targetPosition":{"x":40107.37655997554,"y":20709.858169600153},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"b2193069-9399-49ef-b0a5-a27cdf12f0f5","savedPayload":{"position":{"x":40107.37655997554,"y":20709.858169600153},"targetPosition":{"x":40303.459955358725,"y":20621.876721645236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"e7f20b10-01fe-4aa8-9857-421f22ea3a4c","savedPayload":{"position":{"x":40303.459955358725,"y":20621.876721645236},"targetPosition":{"x":40694.28015838262,"y":20446.928255816398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"1c5a8e29-6bfc-4010-be09-19c2b96bfe70","savedPayload":{"position":{"x":40694.28015838262,"y":20446.928255816398},"targetPosition":{"x":40738.512099397296,"y":20020.272721326677},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"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":40996.81621833538,"y":21126.27963948076},"targetPosition":{"x":40650.21167508109,"y":20874.289422953923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"e39fdef7-ea4f-4b5d-bb01-7edac296c69c","savedPayload":{"position":{"x":40258.48667247741,"y":21049.822684204504},"targetPosition":{"x":40650.21167508109,"y":20874.289422953923},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"f9b759a6-ab55-4344-963a-9608c2fbe429","savedPayload":{"position":{"x":40650.21167508109,"y":20874.289422953923},"targetPosition":{"x":40694.28015838262,"y":20446.928255816398},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"b6bb374a-2c9d-4b84-8ddd-84f075656cca","savedPayload":{"position":{"x":40826.8777492723,"y":19167.468084909204},"targetPosition":{"x":40849.04360760913,"y":18953.336536058876},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1d90afee-eb99-4627-a823-027589c6d2c9","savedPayload":{"position":{"x":40849.04360760913,"y":18953.336536058876},"targetPosition":{"x":40502.731879272455,"y":18701.453817647238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"closeStage":{"type":"Close Stage","closeExecution":{"type":"Close Execution","id":"17ad00f9-a9c4-4e9a-b399-39db314232e1","savedPayload":{"position":{"x":40170.692676344916,"y":19717.541621026005},"targetPosition":{"x":40237.46622457006,"y":19515.505202319324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"id":"575f8df0-55d4-4e22-a8e0-84b2973be70a","savedPayload":{"position":{"x":40237.46622457006,"y":19515.505202319324},"targetPosition":{"x":40502.731879272455,"y":18701.453817647238},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"97bedd6e-ed17-4ea9-a3be-b6cadfea4d4d","savedPayload":{"position":{"x":40502.731879272455,"y":18701.453817647238},"targetPosition":{"x":39644.898649352486,"y":18701.25},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"name\": \"USDT\",\n\"initialBalance\": 1000,\n\"minimumBalance\": 10,\n\"maximumBalance\": 100000\n}","id":"8150ec53-592d-4200-93d1-b16a5a9f8c81","savedPayload":{"position":{"x":39197.49874136415,"y":18952.23292320207},"targetPosition":{"x":39116.739485191036,"y":18701.24715223657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"23db4e5b-5955-48a7-a6ee-753b5052a325","savedPayload":{"position":{"x":38902.74800950037,"y":18856.74348010044},"targetPosition":{"x":39116.739485191036,"y":18701.24715223657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"71d8af67-a7b7-4154-acac-bc664f841010","savedPayload":{"position":{"x":38902.18853493246,"y":18546.091944428983},"targetPosition":{"x":39116.739485191036,"y":18701.24715223657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"032309c9-4c3b-4a42-8d67-b297db6e17e7","savedPayload":{"position":{"x":39197.80693996768,"y":18449.971144763866},"targetPosition":{"x":39116.739485191036,"y":18701.24715223657},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ddfbcdad-885d-4490-9087-a9a70c758158","savedPayload":{"position":{"x":39116.739485191036,"y":18701.24715223657},"targetPosition":{"x":39644.898649352486,"y":18701.25},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"56432995-eb04-4929-850f-6530233a3be3","savedPayload":{"position":{"x":39644.898649352486,"y":18701.25},"targetPosition":{"x":39644.898649352486,"y":18701.25},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"b"}}},{"type":"Trading System","name":"Weak-Hands Buster","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.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":"91f3043a-8e9e-43e0-aca3-d740f527e043","savedPayload":{"position":{"x":39523.80534650397,"y":24567.256720077272},"targetPosition":{"x":39706.718010295,"y":24474.43271364711},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d61ab29a-c3c4-4e3b-8825-245a322c431a","savedPayload":{"position":{"x":39706.718010295,"y":24474.43271364711},"targetPosition":{"x":39889.54941451052,"y":24381.36897495353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","id":"03a5e03d-c910-4e6c-b63f-0d018e413b02","savedPayload":{"position":{"x":39484.00914629152,"y":24316.917260922768},"targetPosition":{"x":39686.795422079485,"y":24349.16144796108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"16fc43c1-d0c3-42e3-9ba8-cba5c21bafd5","savedPayload":{"position":{"x":39686.795422079485,"y":24349.16144796108},"targetPosition":{"x":39889.54941451052,"y":24381.36897495353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"09012cab-d69d-4763-b014-7f984c1784dc","savedPayload":{"position":{"x":39599.28205317187,"y":24090.774356175898},"targetPosition":{"x":39744.44206990748,"y":24236.056432511545},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"89b8b2f6-b215-4e21-a2c8-4aebb11c2e92","savedPayload":{"position":{"x":39744.44206990748,"y":24236.056432511545},"targetPosition":{"x":39889.54941451052,"y":24381.36897495353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"5c98aae6-6601-405b-bc15-e8242092ccd1","savedPayload":{"position":{"x":39825.60740032698,"y":23975.557049385796},"targetPosition":{"x":39857.67062076881,"y":24178.411064853623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"895c4234-e3a8-477d-a5a9-582d81feecc0","savedPayload":{"position":{"x":39857.67062076881,"y":24178.411064853623},"targetPosition":{"x":39889.54941451052,"y":24381.36897495353},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"aac48055-7ba2-43af-9b39-7bf71195a3e2","savedPayload":{"position":{"x":39889.54941451052,"y":24381.36897495353},"targetPosition":{"x":40152.44471135984,"y":24515.498878479022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"announcements":[],"id":"42e0cd22-e34e-4d51-9252-10bc615949b5","savedPayload":{"position":{"x":40151.517240347624,"y":24515.264847158982},"targetPosition":{"x":40334.79385827767,"y":24608.149035076574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"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":"33996f6e-f51b-4667-9f26-36fc8b586eca","savedPayload":{"position":{"x":40055.23249664759,"y":23745.636147864487},"targetPosition":{"x":40118.50525310117,"y":23940.699750887452},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c5a3356f-a6a5-4f5e-8854-a9af8dc981d6","savedPayload":{"position":{"x":40118.50525310117,"y":23940.699750887452},"targetPosition":{"x":40181.811861581766,"y":24135.89023155995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"1986b226-45b8-41f1-8a36-dee2dcd5724c","savedPayload":{"position":{"x":40181.811861581766,"y":24135.89023155995},"targetPosition":{"x":40271.772000192315,"y":24413.228901899085},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"announcements":[],"id":"d006b092-ccb8-4385-bc24-cd732f749b80","savedPayload":{"position":{"x":40271.95816307262,"y":24412.436067583072},"targetPosition":{"x":40334.79385827767,"y":24608.149035076574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"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.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":"c370c93e-2300-48ad-acc3-42f530112d42","savedPayload":{"position":{"x":39941.480700645865,"y":23647.459045232365},"targetPosition":{"x":40135.10614376241,"y":23716.177887479345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0bd29ab1-c151-4577-9054-7a0fc2532f7e","savedPayload":{"position":{"x":40135.10614376241,"y":23716.177887479345},"targetPosition":{"x":40521.535817949225,"y":23853.179509564998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"7e5c95e6-9024-4f7a-b99b-98509b0cf8bd","savedPayload":{"position":{"x":40064.23931427208,"y":23441.16143387638},"targetPosition":{"x":40216.90952016815,"y":23578.728990640397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0dc65813-69aa-4ce5-bbfe-dc08e6ee5fdc","savedPayload":{"position":{"x":40216.90952016815,"y":23578.728990640397},"targetPosition":{"x":40521.535817949225,"y":23853.179509564998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"a347b184-3b9c-43d7-9c58-18e272fa7cc7","savedPayload":{"position":{"x":40256.53448330853,"y":23297.595974765027},"targetPosition":{"x":40345.021287749645,"y":23483.08519091569},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"abd817cd-4111-41fa-be60-ea1919c64715","savedPayload":{"position":{"x":40345.021287749645,"y":23483.08519091569},"targetPosition":{"x":40521.535817949225,"y":23853.179509564998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","id":"3e2c9f8c-1b2d-419c-9d19-934b87857165","savedPayload":{"position":{"x":40489.080076102495,"y":23238.544902586968},"targetPosition":{"x":40499.962569601834,"y":23443.751212076997},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"28755f4a-480d-45a5-8144-5fb7bbdf09f5","savedPayload":{"position":{"x":40499.962569601834,"y":23443.751212076997},"targetPosition":{"x":40521.535817949225,"y":23853.179509564998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"6dd2ef8e-c7ea-4188-b2f4-d549c336ca5d","savedPayload":{"position":{"x":40725.860956853656,"y":23272.99685893021},"targetPosition":{"x":40657.85021919952,"y":23466.72282033241},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"c3b52801-d812-4aa8-8450-797dbade3f60","savedPayload":{"position":{"x":40657.85021919952,"y":23466.72282033241},"targetPosition":{"x":40521.535817949225,"y":23853.179509564998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","id":"0eee7c13-aee8-4238-86fd-1311ed4aa052","savedPayload":{"position":{"x":40931.72014122434,"y":23395.787088430243},"targetPosition":{"x":40795.140194111686,"y":23548.5294244444},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"542e7619-1192-474e-a8a0-fb917c49cf1e","savedPayload":{"position":{"x":40795.140194111686,"y":23548.5294244444},"targetPosition":{"x":40521.535817949225,"y":23853.179509564998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","id":"990141cd-cb75-4d22-85f8-7f611655a6db","savedPayload":{"position":{"x":41075.01554464541,"y":23588.350859004757},"targetPosition":{"x":40890.675677170155,"y":23676.823048732796},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"930e07f4-c28b-4c5d-90dc-d373911dd2cb","savedPayload":{"position":{"x":40890.675677170155,"y":23676.823048732796},"targetPosition":{"x":40521.535817949225,"y":23853.179509564998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"0b1fc454-e677-4b35-939b-1f23ae0f5045","savedPayload":{"position":{"x":40521.535817949225,"y":23853.179509564998},"targetPosition":{"x":40543.34191636501,"y":24272.237487959766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && chart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","id":"a3a29826-879d-4388-a108-39441c36102d","savedPayload":{"position":{"x":41091.83550480198,"y":23226.567928717785},"targetPosition":{"x":41138.076174413596,"y":23426.73545212394},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"98cbac39-2c67-472b-ac27-aec6ddb40bd8","savedPayload":{"position":{"x":41138.076174413596,"y":23426.73545212394},"targetPosition":{"x":41230.32708517507,"y":23826.096678530786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"11c71b5d-7044-4d4b-ae10-5c25cb2eabdc","savedPayload":{"position":{"x":41304.52409347059,"y":23215.565988827148},"targetPosition":{"x":41279.9540816996,"y":23419.372890512106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"cca2a8bc-e4a0-42df-8a2e-a4a457860a54","savedPayload":{"position":{"x":41279.9540816996,"y":23419.372890512106},"targetPosition":{"x":41230.32708517507,"y":23826.096678530786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.previous.previous.previous.deviation > 200","id":"1e76f618-a3ac-4fb9-83eb-97de1129e93a","savedPayload":{"position":{"x":41508.65669250785,"y":23278.27810131094},"targetPosition":{"x":41415.9987277006,"y":23461.068812133748},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"7a85ad66-8767-4f51-98d0-19683ad79e55","savedPayload":{"position":{"x":41415.9987277006,"y":23461.068812133748},"targetPosition":{"x":41230.32708517507,"y":23826.096678530786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.bollingerChannel.direction === \"Down\"","id":"1cd7c818-45ae-447d-ad12-663c69d88d5c","savedPayload":{"position":{"x":41679.34449926872,"y":23407.08274291461},"targetPosition":{"x":41529.67210144546,"y":23546.77493707178},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1c3eb902-1840-4ff9-a143-2040c3da6fbc","savedPayload":{"position":{"x":41529.67210144546,"y":23546.77493707178},"targetPosition":{"x":41230.32708517507,"y":23826.096678530786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":"b85b9bdf-ebf6-4c3a-ab00-0b82484cff3d","savedPayload":{"position":{"x":41795.97341480895,"y":23586.18658488841},"targetPosition":{"x":41607.21986942788,"y":23666.09155522681},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2dd164fe-9197-4b40-b8c2-c73503cc1fa7","savedPayload":{"position":{"x":41607.21986942788,"y":23666.09155522681},"targetPosition":{"x":41230.32708517507,"y":23826.096678530786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":"3cda3e1f-537c-4a9c-9fba-c221c12dd775","savedPayload":{"position":{"x":41844.23347531809,"y":23793.628762875072},"targetPosition":{"x":41639.153507899384,"y":23804.56279122661},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"508ccff3-0500-4d97-8795-84ec971e9b6e","savedPayload":{"position":{"x":41639.153507899384,"y":23804.56279122661},"targetPosition":{"x":41230.32708517507,"y":23826.096678530786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 1000","id":"49fa1f6c-31c8-4903-baca-54b00ced89ad","savedPayload":{"position":{"x":41863.7238670218,"y":23961.95427610601},"targetPosition":{"x":41621.280200988425,"y":23945.47756079399},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"d906e914-4695-4a87-9b40-bc09d420b3fa","savedPayload":{"position":{"x":41621.280200988425,"y":23945.47756079399},"targetPosition":{"x":41230.32708517507,"y":23826.096678530786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max - chart.at01hs.candle.min < 750","id":"cd3f2a10-647d-4971-a96e-2b7c24df3f88","savedPayload":{"position":{"x":41720.18126866138,"y":24197.36190717868},"targetPosition":{"x":41556.700997610795,"y":24072.851379659332},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"273ada5d-4442-448f-a2b4-d6505e96e201","savedPayload":{"position":{"x":41556.700997610795,"y":24072.851379659332},"targetPosition":{"x":41230.32708517507,"y":23826.096678530786},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"id":"1cc080d9-4e49-4e5a-918a-9d0b4b06d6b1","savedPayload":{"position":{"x":41230.32708517507,"y":23826.096678530786},"targetPosition":{"x":40543.34191636501,"y":24272.237487959766},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":5},"uiObject":{}}}],"announcements":[],"id":"7ee4a63d-8296-40a7-ab94-2f408bbe162d","savedPayload":{"position":{"x":40520.98312797286,"y":24242.72308650927},"targetPosition":{"x":40334.79385827767,"y":24608.149035076574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"8f05c030-e6a1-4e65-b44d-213f0e12fd83","savedPayload":{"position":{"x":40334.79385827767,"y":24608.149035076574},"targetPosition":{"x":40460.741382362634,"y":24997.38083102831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"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":"325e27c0-49b3-4f75-bae6-a7da8b747138","savedPayload":{"position":{"x":41734.33526024566,"y":22832.12654680115},"targetPosition":{"x":41912.99443526006,"y":22934.599366008955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"bb5c170c-3e88-41fe-a96b-c77686546a45","savedPayload":{"position":{"x":41911.46089788373,"y":22113.036774285094},"targetPosition":{"x":41911.56093713372,"y":22318.405826803348},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"419d0bf5-f46a-453c-9e1b-c68aac94ce15","savedPayload":{"position":{"x":41911.56093713372,"y":22318.405826803348},"targetPosition":{"x":41911.821611203566,"y":22524.155186462773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"a60d1fc4-6804-41a4-ab5b-0869fd254957","savedPayload":{"position":{"x":41911.821611203566,"y":22524.155186462773},"targetPosition":{"x":41912.28664446572,"y":22729.507144843978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"announcements":[],"id":"6b8bfecb-d38f-4fec-b165-5a395dd96cf8","savedPayload":{"position":{"x":41912.28664446572,"y":22729.507144843978},"targetPosition":{"x":41912.99443526006,"y":22934.599366008955},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"2c76cf2c-d0b3-4e0c-a095-0cd2e35667c3","savedPayload":{"position":{"x":41912.99443526006,"y":22934.599366008955},"targetPosition":{"x":42016.19005855027,"y":23111.52466078041},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"2187bbac-923c-43ef-878f-f4bdd505ca64","savedPayload":{"position":{"x":42016.19005855027,"y":23111.52466078041},"targetPosition":{"x":42119.14558826967,"y":23287.646860033765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"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":"1455910b-3b56-4ca5-bbb5-a68978564d82","savedPayload":{"position":{"x":42079.27080409553,"y":22693.78793838646},"targetPosition":{"x":42162.573958025205,"y":22881.462360936886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"eb95ec28-6163-4243-b3cc-9f84bbe818d6","savedPayload":{"position":{"x":42347.28620774886,"y":22102.324515381864},"targetPosition":{"x":42325.82599015552,"y":22306.64810437722},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"19e37ed7-4d46-4d54-8541-e9b8df470f15","savedPayload":{"position":{"x":42325.82599015552,"y":22306.64810437722},"targetPosition":{"x":42304.32563823644,"y":22511.454845930253},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"0609439f-0080-4227-9ce5-4f86272cab7f","savedPayload":{"position":{"x":42304.32563823644,"y":22511.454845930253},"targetPosition":{"x":42283.10357303345,"y":22715.94674842429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at03hs.percentageBandwidth.movingAverage <= 30","id":"c02650b3-da09-40de-a2ba-0dcd3a471c94","savedPayload":{"position":{"x":42713.26821308682,"y":22300.28754662566},"targetPosition":{"x":42592.37781605789,"y":22466.411393166396},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a67c51ff-cc4e-4819-895d-ad4700edbdf6","savedPayload":{"position":{"x":42592.37781605789,"y":22466.411393166396},"targetPosition":{"x":42471.0955585291,"y":22632.798926067015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"8d7bd4e0-2bca-4f1f-848e-b85f7ab26f29","savedPayload":{"position":{"x":42880.191721847536,"y":22675.342347464488},"targetPosition":{"x":42675.87755720572,"y":22654.09521592958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ad777013-234f-4377-bf76-8c66bf69e3d3","savedPayload":{"position":{"x":42675.87755720572,"y":22654.09521592958},"targetPosition":{"x":42471.0955585291,"y":22632.798926067015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"93197552-441f-4654-8fad-88fdcf099c11","savedPayload":{"position":{"x":42471.0955585291,"y":22632.798926067015},"targetPosition":{"x":42283.10357303345,"y":22715.94674842429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"announcements":[],"id":"7b34638f-0350-43df-987c-752b1d90a1c4","savedPayload":{"position":{"x":42283.10357303345,"y":22715.94674842429},"targetPosition":{"x":42162.573958025205,"y":22881.462360936886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"d9e9829b-0e96-421e-bfdc-06fef4b99f36","savedPayload":{"position":{"x":42162.573958025205,"y":22881.462360936886},"targetPosition":{"x":42140.90074948405,"y":23084.888093008158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"f3939260-87b7-4954-a257-2e959cdbf750","savedPayload":{"position":{"x":42140.90074948405,"y":23084.888093008158},"targetPosition":{"x":42119.14558826967,"y":23287.646860033765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"positionSize":{"type":"Position Size","name":"Position Size","formula":{"type":"Formula","code":"balanceBaseAsset","id":"e1f74751-8a7a-44f0-bed8-bd2ea6b950d6","savedPayload":{"position":{"x":42395.12632586031,"y":22984.763709845112},"targetPosition":{"x":42257.126035883084,"y":23136.31504220458},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"aef470eb-c910-4327-b38f-0a2a75160629","savedPayload":{"position":{"x":42257.126035883084,"y":23136.31504220458},"targetPosition":{"x":42119.14558826967,"y":23287.646860033765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"positionRate":{"type":"Position Rate","name":"Position Rate","formula":{"type":"Formula","name":"My Formula","code":"candle.close","id":"30e1f940-ac96-4379-a4a2-4deec14620d0","savedPayload":{"position":{"x":42521.19965693176,"y":23204.13919913725},"targetPosition":{"x":42320.23531427854,"y":23246.101756560904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d50dbb9e-fd30-499d-b142-99a1fe28c88d","savedPayload":{"position":{"x":42320.23531427854,"y":23246.101756560904},"targetPosition":{"x":42119.14558826967,"y":23287.646860033765},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"7cb35db4-3b57-4733-b0aa-c70860bcef15","savedPayload":{"position":{"x":42119.14558826967,"y":23287.646860033765},"targetPosition":{"x":41786.05039683778,"y":24034.777309128476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"openExecution":{"type":"Open Execution","id":"6d182dc1-af8d-4ac7-9589-2254ed651497","savedPayload":{"position":{"x":42224.06663551021,"y":23989.201371405863},"targetPosition":{"x":41786.05039683778,"y":24034.777309128476},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":1},"uiObject":{}}},"id":"74ce460e-e723-4d53-83a9-934a6a37dd56","savedPayload":{"position":{"x":41785.946902911644,"y":24034.633769912827},"targetPosition":{"x":40460.741382362634,"y":24997.38083102831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":5},"uiObject":{}}},"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":"6c22a375-194a-49d8-bb00-a8bf22103525","savedPayload":{"position":{"x":41610.570062269006,"y":24486.229465071043},"targetPosition":{"x":41567.60788820585,"y":24893.36574218864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"nextPhaseEvent":{"type":"Next Phase Event","situations":[],"announcements":[],"id":"973915ac-44e5-42ac-9d03-9497fdb44b27","savedPayload":{"position":{"x":41899.45712267664,"y":25134.14010038067},"targetPosition":{"x":41567.60788820585,"y":24893.36574218864},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"b49ec2a3-2a5e-4d55-b23e-389f3554c50d","savedPayload":{"position":{"x":41567.60788820585,"y":24893.36574218864},"targetPosition":{"x":41193.03380764603,"y":25059.9351522209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"9a369d8b-f429-4cb8-8bee-b89c5c92b61f","savedPayload":{"position":{"x":41193.03380764603,"y":25059.9351522209},"targetPosition":{"x":40792.393107365184,"y":25238.06749619191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"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":"fa97bc24-2ce8-4d4a-ac9b-2f8690c8cae3","savedPayload":{"position":{"x":40932.309761715704,"y":26465.50883681396},"targetPosition":{"x":40683.21153241423,"y":26285.006111307448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"80d65317-000c-41b9-b69e-6a9a5d8910f6","savedPayload":{"position":{"x":39597.67027621161,"y":26854.831333787966},"targetPosition":{"x":39729.221249497634,"y":26775.216004274607},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9b45566d-9aab-472c-bfde-22e94e52d9a1","savedPayload":{"position":{"x":39729.221249497634,"y":26775.216004274607},"targetPosition":{"x":39861.143155181555,"y":26694.8625081429},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"971cc26a-de82-431e-9b17-8d85bbd5b111","savedPayload":{"position":{"x":39861.143155181555,"y":26694.8625081429},"targetPosition":{"x":40122.752341009684,"y":26534.293309659755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at04hs.percentageBandwidth.movingAverage <= 50","id":"8475e302-cb70-47bb-81c1-48834f1fe37d","savedPayload":{"position":{"x":39208.995690228796,"y":26596.537368255245},"targetPosition":{"x":39512.97266629083,"y":26548.99870881292},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e2523a8d-1a30-4a32-8895-1fb6b90744cc","savedPayload":{"position":{"x":39512.97266629083,"y":26548.99870881292},"targetPosition":{"x":39817.063927077084,"y":26501.327631597727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"57b4ab24-3a0e-49a3-b3ab-b76dd6e0500b","savedPayload":{"position":{"x":39242.611746118,"y":26280.49844895777},"targetPosition":{"x":39529.77409072123,"y":26390.77583724513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"7015bad5-00e9-4194-9840-ad54ada782c2","savedPayload":{"position":{"x":39529.77409072123,"y":26390.77583724513},"targetPosition":{"x":39817.063927077084,"y":26501.327631597727},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"34091fe6-7a1d-426a-a67c-94a6d31e4614","savedPayload":{"position":{"x":39817.063927077084,"y":26501.327631597727},"targetPosition":{"x":40122.752341009684,"y":26534.293309659755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"66ce8ebb-a8b6-445b-83fb-5c48d92e25ef","savedPayload":{"position":{"x":40122.752341009684,"y":26534.293309659755},"targetPosition":{"x":40683.21153241423,"y":26285.006111307448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"26e213d6-e8f7-409e-b3a5-f2826a07f10d","savedPayload":{"position":{"x":40683.21153241423,"y":26285.006111307448},"targetPosition":{"x":40747.034653023395,"y":25674.009277814042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":4},"uiObject":{}}},{"type":"Phase","name":"New Phase 2","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.2","id":"be41660e-6e88-4e66-8e74-62e044974953","savedPayload":{"position":{"x":40868.728058095,"y":27076.53933080379},"targetPosition":{"x":40619.524338222705,"y":26895.97888512617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"f2789e09-9ec0-409f-a697-488fef0f8b58","savedPayload":{"position":{"x":39533.59646821118,"y":27466.629551330607},"targetPosition":{"x":39665.55100664342,"y":27386.650994508236},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2b7e6de2-2c6a-4fe9-974b-919780e238ea","savedPayload":{"position":{"x":39665.55100664342,"y":27386.650994508236},"targetPosition":{"x":39797.739569076075,"y":27306.288448939376},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"e08fce1d-d263-4c1c-bb1e-a5d0ede90bfc","savedPayload":{"position":{"x":39797.739569076075,"y":27306.288448939376},"targetPosition":{"x":40059.261988091224,"y":27145.52021821655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at06hs.percentageBandwidth.movingAverage <= 50","id":"8b2740e7-f41f-490b-bfbc-da0fa4865257","savedPayload":{"position":{"x":39144.97431192069,"y":27208.366282420597},"targetPosition":{"x":39449.11872969246,"y":27160.505172479792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f10e85cf-e5c7-4f13-954f-32cc0a247fd9","savedPayload":{"position":{"x":39449.11872969246,"y":27160.505172479792},"targetPosition":{"x":39753.52937488404,"y":27112.822906607726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.direction === \"Up\"","id":"10074471-5735-4022-8ff8-a167e4f96e69","savedPayload":{"position":{"x":39254.87380593377,"y":26752.02112102994},"targetPosition":{"x":39504.03117105647,"y":26932.29322348336},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9111b1f9-0ff8-480a-b19c-f099114eb82e","savedPayload":{"position":{"x":39504.03117105647,"y":26932.29322348336},"targetPosition":{"x":39753.52937488404,"y":27112.822906607726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"1b3328cc-7832-4e31-9a3f-f0557c3f3740","savedPayload":{"position":{"x":39753.52937488404,"y":27112.822906607726},"targetPosition":{"x":40059.261988091224,"y":27145.52021821655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"cb4c3269-cfe5-4b10-8fce-3693ebce8fb3","savedPayload":{"position":{"x":40059.261988091224,"y":27145.52021821655},"targetPosition":{"x":40619.524338222705,"y":26895.97888512617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"c45fab06-15c4-4ae3-8af9-ca3148944fb7","savedPayload":{"position":{"x":40619.524338222705,"y":26895.97888512617},"targetPosition":{"x":40683.21153241423,"y":26285.006111307448},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Phase","name":"New Phase 3","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.15","id":"f257c92b-e243-4153-9b75-91abf0bcc4be","savedPayload":{"position":{"x":40805.21316358737,"y":27687.754907574417},"targetPosition":{"x":40555.92604877721,"y":27507.056614864017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"eed4bc15-1ffe-4dfb-aa88-1bec01929e28","savedPayload":{"position":{"x":39473.1680130617,"y":28050.471832612184},"targetPosition":{"x":39604.83680224257,"y":27970.407692612534},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"712dddfd-f468-4ad5-b569-e28f243367b8","savedPayload":{"position":{"x":39604.83680224257,"y":27970.407692612534},"targetPosition":{"x":39736.71405160405,"y":27889.791655297555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"9035c77b-e5cf-4bc8-8a84-76ecc54827f7","savedPayload":{"position":{"x":39736.71405160405,"y":27889.791655297555},"targetPosition":{"x":39998.36066880388,"y":27728.918712010454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"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":"40836274-d061-4e98-84dc-5c188a0fefe4","savedPayload":{"position":{"x":39236.00426810161,"y":27768.356805861207},"targetPosition":{"x":39388.52072121326,"y":27744.44096778258},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"2d0105b0-0df8-441f-852b-fb0896f88ec9","savedPayload":{"position":{"x":39388.52072121326,"y":27744.44096778258},"targetPosition":{"x":39692.63232203124,"y":27696.455682439944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.direction === \"Up\"","id":"e1001e25-b7e5-4d7b-b5ca-775cc6cda9bf","savedPayload":{"position":{"x":39714.091154220456,"y":27584.100836865793},"targetPosition":{"x":39405.082052022255,"y":27586.300836865794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ccf1b2b7-163e-4a85-93c1-19257fd6e20a","savedPayload":{"position":{"x":39405.082052022255,"y":27586.300836865794},"targetPosition":{"x":39692.63232203124,"y":27696.455682439944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"8b04526c-dfd1-47b4-bcad-9ba28baefe45","savedPayload":{"position":{"x":39692.63232203124,"y":27696.455682439944},"targetPosition":{"x":39998.36066880388,"y":27728.918712010454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"78aa3111-f3c0-4feb-a53a-04180e8ba325","savedPayload":{"position":{"x":39995.87588337407,"y":27756.70406735886},"targetPosition":{"x":40555.92604877721,"y":27507.056614864017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"fcbdcd00-6012-47ca-a8da-285cd600dd83","savedPayload":{"position":{"x":40555.92604877721,"y":27507.056614864017},"targetPosition":{"x":40619.524338222705,"y":26895.97888512617},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Phase","name":"New Phase 4","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.movingAverage * 0.1","id":"b00ddf15-fa75-4934-bf11-c5b99aec50a5","savedPayload":{"position":{"x":40744.261132598236,"y":28271.053079346922},"targetPosition":{"x":40495.08653557601,"y":28090.388897784687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"9d7506a6-637d-4a5e-963e-8c490b6334ae","savedPayload":{"position":{"x":39409.50586594905,"y":28662.022839912373},"targetPosition":{"x":39541.158515993455,"y":28581.841380065718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"9faa3fee-2cf4-4b5b-963b-66b89f9f5d39","savedPayload":{"position":{"x":39541.158515993455,"y":28581.841380065718},"targetPosition":{"x":39673.03004540869,"y":28501.12198963483},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"51f36e74-2151-434f-928b-0c0c812da7fc","savedPayload":{"position":{"x":39673.03004540869,"y":28501.12198963483},"targetPosition":{"x":39934.67721404206,"y":28340.15850656451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"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":"29020fef-a868-4770-90dd-2d7d54f62a17","savedPayload":{"position":{"x":39172.350187268894,"y":28379.83279262348},"targetPosition":{"x":39324.85247215665,"y":28355.84129473068},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"0c67fea5-096a-4244-adb7-e25fb99c8fa9","savedPayload":{"position":{"x":39324.85247215665,"y":28355.84129473068},"targetPosition":{"x":39628.95394975489,"y":28307.775501166994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"bb21a25d-5adc-4778-90e1-8e88707f5690","savedPayload":{"position":{"x":39053.991911379184,"y":28087.75591362392},"targetPosition":{"x":39341.40777054855,"y":28197.700554676663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"51a7a52b-b5a0-444a-9c3f-a5c1107364d4","savedPayload":{"position":{"x":39341.40777054855,"y":28197.700554676663},"targetPosition":{"x":39628.95394975489,"y":28307.775501166994},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"1ecbddb7-0567-4982-b153-3cfdf52da4ea","savedPayload":{"position":{"x":39628.95394975489,"y":28307.775501166994},"targetPosition":{"x":39934.67721404206,"y":28340.15850656451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"27cc93d7-5c3a-4627-b3db-9063e1776674","savedPayload":{"position":{"x":39934.67721404206,"y":28340.15850656451},"targetPosition":{"x":40495.08653557601,"y":28090.388897784687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"b648d940-c4d5-4299-a857-6f1570099fe0","savedPayload":{"position":{"x":40492.34330516078,"y":28118.192965532835},"targetPosition":{"x":40555.92604877721,"y":27507.056614864017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Phase","name":"New Phase 5","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.75","id":"37c7be8d-2dcb-4b20-93e4-61fd7f879a6d","savedPayload":{"position":{"x":40680.52808815299,"y":28882.344773637175},"targetPosition":{"x":40431.38754292449,"y":28701.619273965578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"51509a6b-a17e-41f1-a622-1a8d828bea9f","savedPayload":{"position":{"x":39392.38435501789,"y":29338.847541244908},"targetPosition":{"x":39512.37741417363,"y":29242.31318574912},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"bbdb3a24-2801-4804-b576-9400a1090ebd","savedPayload":{"position":{"x":39512.37741417363,"y":29242.31318574912},"targetPosition":{"x":39632.44907423463,"y":29145.137459983194},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"id":"e4b34544-1f64-4353-a5ad-2a0aea1c58c6","savedPayload":{"position":{"x":39632.44907423463,"y":29145.137459983194},"targetPosition":{"x":39870.91013197008,"y":28951.468573261634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},{"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":"6a21d221-46fd-4414-ba7a-72cdb98a9414","savedPayload":{"position":{"x":38957.13721654143,"y":29015.657793263264},"targetPosition":{"x":39261.06451175596,"y":28967.599018972647},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"c44b4d80-d0d6-4203-b3d8-980cf6f9cd68","savedPayload":{"position":{"x":39261.06451175596,"y":28967.599018972647},"targetPosition":{"x":39565.18933655903,"y":28919.38902581904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"5eb799d7-3e87-497d-81cc-7f71c1cb6ff9","savedPayload":{"position":{"x":38990.32820404036,"y":28699.591469524556},"targetPosition":{"x":39277.691537033184,"y":28809.458618815825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"3d5f2f28-18ab-492c-92c3-83935147c659","savedPayload":{"position":{"x":39277.691537033184,"y":28809.458618815825},"targetPosition":{"x":39565.18933655903,"y":28919.38902581904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"18043e6e-16ab-4838-bb12-29838d4cce6b","savedPayload":{"position":{"x":39565.18933655903,"y":28919.38902581904},"targetPosition":{"x":39870.91013197008,"y":28951.468573261634},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"5fee368f-24dd-427d-bd52-a53ecfb4459d","savedPayload":{"position":{"x":39870.91013197008,"y":28951.468573261634},"targetPosition":{"x":40431.38754292449,"y":28701.619273965578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"68fdfa18-7975-4055-89bc-53b9b616d7cf","savedPayload":{"position":{"x":40431.38754292449,"y":28701.619273965578},"targetPosition":{"x":40495.08653557601,"y":28090.388897784687},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Phase","name":"New Phase 6","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation * 1.25","id":"7fac596f-9e80-469a-91f7-8c60321ce178","savedPayload":{"position":{"x":40616.90963208245,"y":29493.57043835634},"targetPosition":{"x":40367.64107737782,"y":29312.753208246475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"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":"461b716a-4ac7-46b7-b0b7-57fe129a34e9","savedPayload":{"position":{"x":39021.03863182202,"y":30046.37749837914},"targetPosition":{"x":39283.12116868607,"y":29885.61053703032},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ec86d2bb-5e22-4f31-aeee-9ff98dd3f006","savedPayload":{"position":{"x":39283.12116868607,"y":29885.61053703032},"targetPosition":{"x":39545.34625509662,"y":29724.53492659096},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}}],"id":"d7a37efb-0d64-40ad-8e83-da1f3da2f2db","savedPayload":{"position":{"x":39545.34625509662,"y":29724.53492659096},"targetPosition":{"x":39807.12500287507,"y":29562.948071294115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"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":"b0e55bcf-7dde-4ae3-a63b-ce82f1f0e9a5","savedPayload":{"position":{"x":38886.19286934673,"y":29547.85380522353},"targetPosition":{"x":39193.68173767372,"y":29539.594481295513},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e3fba252-1cc9-48b1-b9cc-bb6a32faf7b3","savedPayload":{"position":{"x":39193.68173767372,"y":29539.594481295513},"targetPosition":{"x":39501.426725412384,"y":29531.050859556683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at24hs.bollingerChannel.previous.previous.direction === \"Up\"","id":"42a3cac4-9fe8-4791-92ab-2805c4a57798","savedPayload":{"position":{"x":38926.746292118,"y":29311.39235570428},"targetPosition":{"x":39214.00331652072,"y":29421.157290467254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"ee9a30e4-4128-4911-b03c-e1aebc1aa173","savedPayload":{"position":{"x":39214.00331652072,"y":29421.157290467254},"targetPosition":{"x":39501.426725412384,"y":29531.050859556683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"684a6ca0-83ad-4856-a759-fcd342f4ac8c","savedPayload":{"position":{"x":39501.426725412384,"y":29531.050859556683},"targetPosition":{"x":39807.12500287507,"y":29562.948071294115},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"announcements":[],"id":"1e0fe692-2762-4a39-bcd2-292d4156874a","savedPayload":{"position":{"x":39807.12500287507,"y":29562.948071294115},"targetPosition":{"x":40367.64107737782,"y":29312.753208246475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"9a426f1b-c3fd-4ec5-aa9e-7c1198587936","savedPayload":{"position":{"x":40367.64107737782,"y":29312.753208246475},"targetPosition":{"x":40431.38754292449,"y":28701.619273965578},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Phase","name":"New Phase","formula":{"type":"Formula","code":"chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"08b4002d-8c18-418a-9772-598e73d909da","savedPayload":{"position":{"x":40304.166871700596,"y":29924.95583871738},"targetPosition":{"x":40335.92837285156,"y":29618.84209712264},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"announcements":[],"id":"35945d37-6095-4690-b29c-7dd41c2ad489","savedPayload":{"position":{"x":40335.92837285156,"y":29618.84209712264},"targetPosition":{"x":40367.64107737782,"y":29312.753208246475},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"id":"4710a2d0-16e7-40d3-b0c3-b2116c569f8d","savedPayload":{"position":{"x":40747.034653023395,"y":25674.009277814042},"targetPosition":{"x":40792.393107365184,"y":25238.06749619191},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0301fddf-32a4-4b93-beda-a5ca48eb26b1","savedPayload":{"position":{"x":40792.60966474518,"y":25238.316273692693},"targetPosition":{"x":40460.741382362634,"y":24997.38083102831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"closeStage":{"type":"Close Stage","closeExecution":{"type":"Close Execution","id":"a5785489-49fe-4a19-8671-c1d875a1dee4","savedPayload":{"position":{"x":40334.15901253401,"y":25388.106061329556},"targetPosition":{"x":40397.47119612489,"y":25192.5967076329},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"927e7d87-c522-4bf4-a872-04d5a18180ff","savedPayload":{"position":{"x":40397.47119612489,"y":25192.5967076329},"targetPosition":{"x":40460.741382362634,"y":24997.38083102831},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"id":"a04f9080-32e5-4e0b-8896-713016ba3fda","savedPayload":{"position":{"x":40460.741382362634,"y":24997.38083102831},"targetPosition":{"x":39641.04913415892,"y":24997.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"name\": \"BTC\",\n\"initialBalance\": 0.1,\n\"minimumBalance\": 0.001,\n\"maximumBalance\": 100\n}","id":"346fb744-2838-4913-99eb-3f68e7be0407","savedPayload":{"position":{"x":38868.761219690175,"y":25196.50320810328},"targetPosition":{"x":38804.27776688104,"y":24997.272008007643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-07-01T00:00:00.000Z\",\n\"finalDatetime\": \"2019-08-01T00:00:00.000Z\"\n}","id":"e4604c77-6bdf-4be6-a7bd-10a9fca4135c","savedPayload":{"position":{"x":38634.62477073857,"y":25120.39117635062},"targetPosition":{"x":38804.27776688104,"y":24997.272008007643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"fbd3a8c4-08e6-4ee3-a9ec-9a87e1c6102f","savedPayload":{"position":{"x":38634.6213589988,"y":24874.163810372287},"targetPosition":{"x":38804.27776688104,"y":24997.272008007643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"df98a4fc-c1ad-4eee-bf9e-d8a6825ed2fe","savedPayload":{"position":{"x":38868.75226597637,"y":24798.059088847545},"targetPosition":{"x":38804.27776688104,"y":24997.272008007643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},"id":"5a021e03-57ff-4915-a551-c6ef14c963c3","savedPayload":{"position":{"x":38804.27776688104,"y":24997.272008007643},"targetPosition":{"x":39641.04913415892,"y":24997.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a239a374-497a-43f9-8382-5277410b1c2d","savedPayload":{"position":{"x":39641.04913415892,"y":24997.5},"targetPosition":{"x":39641.04913415892,"y":24997.5},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":"w"}}},{"type":"Super Scripts","name":"New Super Scripts","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":40547.50864374642,"y":29458.159568577485},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40421.73265277628,"y":29446.388474093364},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"90ee9733-ab7e-41a0-ac78-4a7661a27017","savedPayload":{"position":{"x":40301.14133183628,"y":29408.85317326678},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"9ade8e93-9071-422b-8cce-7a50d6dad739","savedPayload":{"position":{"x":40187.396275814746,"y":29353.016112581576},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"b5ef2cf7-3d35-45ec-848c-31970b59c04e","savedPayload":{"position":{"x":40096.481080845784,"y":29265.09743042856},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40012.72356856686,"y":29171.40183064097},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":39948.363007140084,"y":29062.244116046924},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":39912.69159220981,"y":28940.34283010204},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":39896.003039224,"y":28814.06986752792},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":39919.361557320895,"y":28689.123643504383},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":39949.57608380262,"y":28566.39809181473},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40013.896938691636,"y":28457.52192526662},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40092.40452285804,"y":28358.965746639544},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40187.25629725784,"y":28274.91412975934},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40301.54541504066,"y":28220.2621049414},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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":40421.00519813411,"y":28178.09409951116},"targetPosition":{"x":40547.50864374642,"y":28814.06986752792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}}],"id":"3c9e658e-9350-4b43-b95c-1dc9fbb7de7b","savedPayload":{"position":{"x":40547.50864374642,"y":28814.06986752792},"targetPosition":{"x":40832.69992216912,"y":29392.380571366022},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"id":"922126c5-3b95-4c76-90ce-c85435c49624","savedPayload":{"position":{"x":40820.5729083275,"y":29398.750958771303},"targetPosition":{"x":41022.25091361476,"y":29779.304354598145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"79c82a1e-4c4e-4622-b762-4ccbfdac46b7","savedPayload":{"position":{"x":40914.293406417426,"y":29361.109445862956},"targetPosition":{"x":41022.25091361476,"y":29779.304354598145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":41002.382994888496,"y":29349.267102787082},"targetPosition":{"x":41022.25091361476,"y":29779.304354598145},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"4dd2897c-d7e2-4fa2-a92f-4d0cf49a6370","savedPayload":{"position":{"x":41022.25091361476,"y":29779.304354598145},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{}}},"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},"uiObject":{}}},"id":"726cd3f8-cfce-4e06-8e13-f4b2523e6e57","savedPayload":{"position":{"x":41148.515466273704,"y":29330.080544660377},"targetPosition":{"x":41244.73679252319,"y":29749.953555248718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"d5bc03d5-baeb-4ab0-91a6-cc61d0122474","savedPayload":{"position":{"x":41248.780124071855,"y":29317.93611394854},"targetPosition":{"x":41244.73679252319,"y":29749.953555248718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":41336.919748769,"y":29329.38603636283},"targetPosition":{"x":41244.73679252319,"y":29749.953555248718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"caa968ef-9a38-4fb4-998f-cb7e27a3eedd","savedPayload":{"position":{"x":41244.73679252319,"y":29749.953555248718},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{}}},"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},"uiObject":{}}},"id":"f7b51fbd-c90d-4b5a-9242-9de2a40f4733","savedPayload":{"position":{"x":41482.61358854004,"y":29348.683018195974},"targetPosition":{"x":41466.93247337633,"y":29779.194513660354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"b7adb316-4430-4933-80ef-c8e239a947fc","savedPayload":{"position":{"x":41582.59746738944,"y":29362.955641918823},"targetPosition":{"x":41466.93247337633,"y":29779.194513660354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":41664.781231206594,"y":29396.79429986102},"targetPosition":{"x":41466.93247337633,"y":29779.194513660354},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"ce8531c2-42df-4c54-b4ea-48d7ca9861e5","savedPayload":{"position":{"x":41466.93247337633,"y":29779.194513660354},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{}}},"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},"uiObject":{}}},"id":"9df1f12f-0030-4c41-98e2-d07482ff8d22","savedPayload":{"position":{"x":41800.75436155919,"y":29453.239698113684},"targetPosition":{"x":41674.13519107158,"y":29864.998791922128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"b5554d40-5014-45ec-b996-e74e05c5e872","savedPayload":{"position":{"x":41893.636157529,"y":29492.907629055964},"targetPosition":{"x":41674.13519107158,"y":29864.998791922128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":41964.258520897485,"y":29546.867071899058},"targetPosition":{"x":41674.13519107158,"y":29864.998791922128},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"3e9a2343-49bb-43d5-adda-0072b01313f1","savedPayload":{"position":{"x":41674.13519107158,"y":29864.998791922128},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Template Script","name":"Install Fordward 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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{},"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},"uiObject":{}}},"id":"3a96fe18-f607-4a4e-9921-31b507475885","savedPayload":{"position":{"x":42436.09658218222,"y":29099.141659110384},"targetPosition":{"x":42078.24200177065,"y":29634.752917870395},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{}}},"id":"f6114149-90fb-45a7-a42a-6ab052a9980a","savedPayload":{"position":{"x":42080.96609433149,"y":29636.583116567133},"targetPosition":{"x":41852.05262385915,"y":30001.508028811288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"315b67c6-84cf-4370-a4fd-a8209c2532c9","savedPayload":{"position":{"x":42160.41514833851,"y":29698.941264651352},"targetPosition":{"x":41852.05262385915,"y":30001.508028811288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 = 'Fordward Testing Session'\n return templateClone\n }\n}","id":"8635fe81-b9b5-4a95-a6d0-950584c2787c","savedPayload":{"position":{"x":42214.663135422685,"y":29769.341926111934},"targetPosition":{"x":41852.05262385915,"y":30001.508028811288},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"3bb7924d-49b4-4748-83f5-5067dd8f3ef5","savedPayload":{"position":{"x":41852.05262385915,"y":30001.508028811288},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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 Binance BTC/USDT","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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"7d2a4605-5be7-4b12-9761-0087ce656080","savedPayload":{"position":{"x":58839.14388415234,"y":24927.028842622058},"targetPosition":{"x":59128.30306023794,"y":24784.417420210317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"e645ba22-2ba3-4c87-9d62-748477e055dc","savedPayload":{"position":{"x":58859.51581791883,"y":24605.696200546055},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"9b0e2fa1-fb9e-4854-9657-7157843a0a56","savedPayload":{"position":{"x":59148.67116983788,"y":24463.100561334704},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"072fc7e2-ca96-4c0a-963c-d8697f26a12c","savedPayload":{"position":{"x":59416.74029182331,"y":24642.218622131157},"targetPosition":{"x":59127.604308799004,"y":24784.793954568726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"28139c87-d8fb-49e6-92ce-f826f0ef32d3","savedPayload":{"position":{"x":59396.37218222337,"y":24963.53548100677},"targetPosition":{"x":59128.30976209059,"y":24784.401361252618},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"0e80ef27-72f6-42e9-98bd-2266ad8d0902","savedPayload":{"position":{"x":59804.95296700782,"y":25367.11597430327},"targetPosition":{"x":59521.10161858211,"y":25530.99762672669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"43096f38-2d07-4536-a8de-c1d6dc52e5af","savedPayload":{"position":{"x":59521.10161858211,"y":25530.99762672669},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"c169326d-c842-452b-a9b7-e8658e31dcd4","savedPayload":{"position":{"x":59521.10161858211,"y":25858.76093157353},"targetPosition":{"x":59237.25027015641,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"67daf900-abb9-4d94-b86b-85ec5820c311","savedPayload":{"position":{"x":59237.25027015641,"y":25694.87927915011},"targetPosition":{"x":58909.48696530957,"y":25694.87927915011},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"e1d9b766-0b00-478d-a179-b4d030811a17","savedPayload":{"position":{"x":58909.48696530957,"y":25694.87927915011},"targetPosition":{"x":58730.36890451312,"y":25962.94840113555},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"10914881-2af7-4326-9a48-eb50a5b83b21","savedPayload":{"position":{"x":43148.68597156199,"y":28929.306607589107},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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":"Bitcoin","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5,\n\"maximumBalance\": 2\n}","id":"58289171-cb5f-482c-b5f6-445eb6dd33bf","savedPayload":{"position":{"x":42537.327550963964,"y":31160.961548220756},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Bitcoin","id":"6ce89731-67f6-4668-afe5-00b9d5d2c94b"}}},"quotedAsset":{"type":"Quoted Asset","name":"Tether","code":"{\n}","id":"59fd49b3-e491-4029-9dae-12cf0a0e48e5","savedPayload":{"position":{"x":42634.582186457636,"y":31403.38448004863},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Asset","name":"Tether","id":"deca9af8-0d3f-4bb4-b745-8c863f15d7da"}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"initialDatetime\": \"2019-01-01T00:00:00.000Z\",\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"7bd10192-7a52-4995-98aa-e16129827ca8","savedPayload":{"position":{"x":42505.51606105929,"y":31630.859690067537},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"59764b94-aa9f-462a-be17-5b110e18609a","savedPayload":{"position":{"x":42247.418315102834,"y":31671.77669257772},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"f72c1a53-9e2e-49d5-a07d-90d7ab53c6cf","savedPayload":{"position":{"x":42054.31085665342,"y":31495.36938133895},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"3f249546-8932-42c0-a779-b4142cb03d17","savedPayload":{"position":{"x":42071.81283321917,"y":31234.86146616106},"targetPosition":{"x":42333.95256349406,"y":31383.068202737708},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"2c70a07e-67d1-4157-8524-448842327782","savedPayload":{"position":{"x":42333.95256349406,"y":31383.068202737708},"targetPosition":{"x":42286.9609164959,"y":31085.672789832544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"58ad6731-33c6-4a8f-8bfd-fbd40d7aa8d0","savedPayload":{"position":{"x":42286.9609164959,"y":31085.672789832544},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"3a49b8dd-94b8-4b8f-9c0d-a140ba4526a8","savedPayload":{"position":{"x":42005.790428390974,"y":30977.842413715054},"targetPosition":{"x":42239.98120428201,"y":30788.712419923588},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"649950c4-79f9-4d35-ba72-a96d67fb9278","savedPayload":{"position":{"x":42239.98120428201,"y":30788.712419923588},"targetPosition":{"x":42347.80484714503,"y":30508.02004481642},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"ef610792-0e38-40b6-8d28-41b6b8d76cb7","savedPayload":{"position":{"x":42347.80484714503,"y":30508.02004481642},"targetPosition":{"x":42497.411883386725,"y":30118.27345043192},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"13ceeef0-8a9f-4da9-a4ce-43bc32323c47","savedPayload":{"position":{"x":43369.09482323325,"y":29180.640229388548},"targetPosition":{"x":42790.73037953115,"y":29465.505673634056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"e4b004e5-d078-435b-896e-bcbec6684a4c","savedPayload":{"position":{"x":42790.97313126801,"y":29465.049725756784},"targetPosition":{"x":42306.27698455388,"y":29890.065392322158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},"id":"d1632ba7-4823-4174-9caf-8979360c7399","savedPayload":{"position":{"x":42304.16172621047,"y":29886.210906119137},"targetPosition":{"x":41988.56769022627,"y":30179.417195426377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"cce4bcd5-fa0e-4dda-82a7-28cbf76432a4","savedPayload":{"position":{"x":42364.76278108672,"y":29967.00906223962},"targetPosition":{"x":41988.56769022627,"y":30179.417195426377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":42398.93918033535,"y":30049.051973058326},"targetPosition":{"x":41988.56769022627,"y":30179.417195426377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"414cdf9f-dc5b-4c23-ac5c-0e7a098b2143","savedPayload":{"position":{"x":41988.56769022627,"y":30179.417195426377},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Fordward 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\"name\": \"BTC\",\n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 100\n}","id":"13814644-70d4-48bb-ab83-6eca9afa1505","savedPayload":{"position":{"x":43898.202865446845,"y":28513.22471302298},"targetPosition":{"x":44214.412208175614,"y":28450.340293742338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"Time Range","code":"{\n\"finalDatetime\": \"2020-12-31T23:59:59.999Z\"\n}","id":"2c4e0754-9b53-4520-97cd-6f2f4e6f1be5","savedPayload":{"position":{"x":44001.83437443194,"y":28207.91650398044},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"5ca81018-5c1f-4f4f-ac76-3ca8a353f8d7","savedPayload":{"position":{"x":44318.04346383672,"y":28145.01860541997},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"7752fa57-fc50-44c4-9039-bf8adb59b594","savedPayload":{"position":{"x":44530.61918653714,"y":28387.41476047182},"targetPosition":{"x":44214.411954851625,"y":28450.32681446251},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"5a1a81c6-37bd-4cdc-9cf7-2a4610ede63f","savedPayload":{"position":{"x":44426.983909553244,"y":28692.76081770574},"targetPosition":{"x":44214.40369503324,"y":28450.37467441457},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"6e43df5f-8866-400e-89a2-aa421be07a46","savedPayload":{"position":{"x":44639.21311529333,"y":28953.492993173568},"targetPosition":{"x":44362.680050511335,"y":29113.149432565286},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"47651cad-aee5-405e-9d40-b4787c49d09e","savedPayload":{"position":{"x":44362.680050511335,"y":29113.149432565286},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","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":44641.648440807316,"y":28934.43435213565},"targetPosition":{"x":44325.439351402536,"y":28997.33225069612},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"ac49275e-4fe1-480f-be02-37665547a777","savedPayload":{"position":{"x":44362.680050511335,"y":29432.46231134872},"targetPosition":{"x":44086.14698572934,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"57deee32-22b7-4eec-8c9a-9b971d1aeb1a","savedPayload":{"position":{"x":44086.14698572934,"y":29272.805871957004},"targetPosition":{"x":43766.834106945906,"y":29272.805871957004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"8910dee0-b699-4a35-85ee-a2b3bbdac18e","savedPayload":{"position":{"x":43766.834106945906,"y":29272.805871957004},"targetPosition":{"x":43524.437951894055,"y":29485.381594657418},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"70fd8717-56d5-4ad8-b6ed-3050decedf19","savedPayload":{"position":{"x":43524.437951894055,"y":29485.381594657418},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"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.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}","id":"20934090-980d-42d7-8f5a-ed8a42d18023","savedPayload":{"position":{"x":44483.98025590086,"y":29130.156633711173},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}","id":"17f9ceac-c3a9-4a05-8bc3-3ccf91ad4c72","savedPayload":{"position":{"x":44726.37641095271,"y":28917.580911010755},"targetPosition":{"x":44789.27430951318,"y":29233.790000415538},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"76a1028a-e120-4b8b-a8ba-e7ed1daf08d3","savedPayload":{"position":{"x":45029.855069359604,"y":29021.84182313976},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"slippage":{"type":"Slippage","name":"Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"2433390c-f57d-4719-907c-91ca54666f49","savedPayload":{"position":{"x":45092.752967920074,"y":29338.05091254454},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.15,\n\"taker\": 0.25\n}","id":"71a1b270-9cf6-41b4-8962-98f2a3da2bc7","savedPayload":{"position":{"x":44850.356812868224,"y":29550.626635244957},"targetPosition":{"x":44787.45485699156,"y":29234.404354776158},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"52e15fb1-6977-4c1f-b244-b4f40c01b6f3","savedPayload":{"position":{"x":44873.05461000759,"y":29397.986765372196},"targetPosition":{"x":44592.590049508464,"y":29559.913054874516},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"e70a2d0f-329a-410e-b3ed-fbf1968cac32","savedPayload":{"position":{"x":44592.590049508464,"y":29559.913054874516},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"Weak-Hands Buster","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":44915.07010663412,"y":29866.208179225097},"targetPosition":{"x":44609.7760530218,"y":29762.574812520732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"a6c24af9-77fd-4179-bb83-22928acce259","savedPayload":{"position":{"x":44592.590049508464,"y":29883.765633879157},"targetPosition":{"x":44312.12548900934,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"6053e090-2c8e-4c1b-8eb4-eb3032f5cb9d","savedPayload":{"position":{"x":44312.12548900934,"y":29721.839344376836},"targetPosition":{"x":43988.2729100047,"y":29721.839344376836},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"67b86977-56e8-4cb9-aa4f-0ae1b8d6d9f3","savedPayload":{"position":{"x":43988.2729100047,"y":29721.839344376836},"targetPosition":{"x":43672.06382059992,"y":29784.737242937306},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"8b8401d2-fbd3-4514-9a24-6236941f8572","savedPayload":{"position":{"x":43672.06382059992,"y":29784.737242937306},"targetPosition":{"x":43039.645641790354,"y":29910.53304005825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"122a1f16-06c2-4e63-9c9b-0b1b6532ef6e","savedPayload":{"position":{"x":43039.645641790354,"y":29910.53304005825},"targetPosition":{"x":42461.33493795225,"y":30195.724318480956},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"l"}}},"id":"7154ffab-e458-47a9-98ab-716d7db899c2","savedPayload":{"position":{"x":42455.1316680299,"y":30185.11182262921},"targetPosition":{"x":42074.37871838126,"y":30386.60398487443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"efbaa91d-f097-4fda-b373-8b9394dae215","savedPayload":{"position":{"x":42492.75327955726,"y":30278.843325627917},"targetPosition":{"x":42074.37871838126,"y":30386.60398487443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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.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":42504.52817837716,"y":30366.936296128297},"targetPosition":{"x":42074.37871838126,"y":30386.60398487443},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"aaef47a3-030f-4bba-a297-72973f84a6a7","savedPayload":{"position":{"x":42074.37871838126,"y":30386.60398487443},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fa969ad9-f967-4c42-9a7b-e3ca5c53a2a4","savedPayload":{"position":{"x":43671.00027239754,"y":28856.943091676305},"targetPosition":{"x":43567.498296733465,"y":29162.3636676408},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"7321618d-f188-4909-ae51-bff16e83e85c","savedPayload":{"position":{"x":43567.498296733465,"y":29162.3636676408},"targetPosition":{"x":43464.06722420924,"y":29467.842167671126},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"66324e06-a787-4389-ba0a-f6158224532e","savedPayload":{"position":{"x":43464.06722420924,"y":29467.842167671126},"targetPosition":{"x":43360.691361026584,"y":29773.54537737439},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"02b2b5ef-8fbb-4234-847b-9e9381e39e40","savedPayload":{"position":{"x":43360.691361026584,"y":29773.54537737439},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"65a2cdb9-af06-458b-ae81-52a922d32874","savedPayload":{"position":{"x":44239.36337395328,"y":29209.697635104123},"targetPosition":{"x":44060.2198905935,"y":29477.959510651268},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"fe3e9758-12d8-46da-a7e9-968a340f0ae5","savedPayload":{"position":{"x":44060.2198905935,"y":29477.959510651268},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5ba98b0e-e71d-4c91-a3b2-ca98f7bf3e1b","savedPayload":{"position":{"x":44748.497652339385,"y":29318.442706041416},"targetPosition":{"x":44314.89113382611,"y":29532.287195826062},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"e3fe5518-65d4-4413-9d1f-624025766f97","savedPayload":{"position":{"x":44314.89113382611,"y":29532.287195826062},"targetPosition":{"x":43881.1373749603,"y":29746.194646546814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"80415df6-6aca-42d5-b91d-6d5d6326f72f","savedPayload":{"position":{"x":43881.1373749603,"y":29746.194646546814},"targetPosition":{"x":43638.5937543753,"y":29959.064822103785},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"a2a8253d-ea54-431a-a623-627a9d80c96d","savedPayload":{"position":{"x":43638.5937543753,"y":29959.064822103785},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"Candle & Volume Stairs Patters","bot":{"type":"Indicator Bot Instance","name":"Stairs Patterns","code":" {\n \"repo\": \"Stairs-Patterns-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"9b578904-5f8d-4011-ac4e-a0ad42f78a3d","savedPayload":{"position":{"x":44681.5668151454,"y":29910.493454022107},"targetPosition":{"x":44392.18828953674,"y":30053.0939332087},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"2430f966-d667-43de-ad9e-1a0a748fc252","savedPayload":{"position":{"x":44392.18828953674,"y":30053.0939332087},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"80c87e44-7b3a-449d-9bf4-d14502bfa837"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"ab1d35fe-8782-42de-8017-2fc10bc5342c","savedPayload":{"position":{"x":45068.0607289357,"y":30258.627798760706},"targetPosition":{"x":44585.557101487946,"y":30227.1784612219},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"0d5c61fd-1073-4f08-b951-65a1d040e0f2","savedPayload":{"position":{"x":44585.557101487946,"y":30227.1784612219},"targetPosition":{"x":44102.8905640764,"y":30195.677451532058},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2924712f-7d80-4f36-8822-71a12cb485f6"}}}],"id":"9be6d863-a4df-4b43-ba48-96f5a8b252a9","savedPayload":{"position":{"x":44102.8905640764,"y":30195.677451532058},"targetPosition":{"x":43786.33364239331,"y":30258.56207231393},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"1efe1e8c-fec4-406e-8b8a-51feabd90934","savedPayload":{"position":{"x":43786.33364239331,"y":30258.56207231393},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"936109e1-9d5f-4738-9eee-26e98c6675a9","savedPayload":{"position":{"x":44713.87406914462,"y":30737.306304570255},"targetPosition":{"x":44391.91978758277,"y":30716.26641552209},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"69c2cfe4-3a79-45d0-8742-ff3f368431f6","savedPayload":{"position":{"x":44391.91978758277,"y":30716.26641552209},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"75d8a16d-5ff3-4771-b32a-bf5ea071e7fc","savedPayload":{"position":{"x":44874.2365621043,"y":31232.47693669704},"targetPosition":{"x":44472.19774741333,"y":30963.92831312466},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c437054a-3447-486b-ab42-b267b800f96a","savedPayload":{"position":{"x":44472.19774741333,"y":30963.92831312466},"targetPosition":{"x":44070.057249921745,"y":30695.231631186056},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"9604d5b6-af02-4ac3-91aa-fa82dcd316bf","savedPayload":{"position":{"x":44070.057249921745,"y":30695.231631186056},"targetPosition":{"x":43764.46278318986,"y":30591.515062036906},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}},"id":"ed9d924d-7a8b-46da-a4e9-eb121329fe49","savedPayload":{"position":{"x":43764.46278318986,"y":30591.515062036906},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6e4bd29a-ffe6-4bbd-a114-62a0efe82a12","savedPayload":{"position":{"x":44327.45578539955,"y":31470.472421210285},"targetPosition":{"x":44059.29115231958,"y":31291.213234147825},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"b3c5ca8e-cc9d-4662-96cb-82d7c5801f67","savedPayload":{"position":{"x":44059.29115231958,"y":31291.213234147825},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d6995a0d-dffd-4213-b159-1919fa35f1b8","savedPayload":{"position":{"x":44218.71377608719,"y":31979.437936210907},"targetPosition":{"x":44004.95543909178,"y":31545.819012576827},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"d640b042-3b50-4f02-961a-9f4e9aab1015","savedPayload":{"position":{"x":44004.95543909178,"y":31545.819012576827},"targetPosition":{"x":43791.2422938607,"y":31111.98146528281},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"88c5bffa-e658-4a99-89b3-b3b03d40d2e6","savedPayload":{"position":{"x":43791.2422938607,"y":31111.98146528281},"targetPosition":{"x":43578.70277309983,"y":30869.247361706733},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""}}},"id":"10972cbd-be85-4344-bf34-8aab4dc3a23b","savedPayload":{"position":{"x":43578.70277309983,"y":30869.247361706733},"targetPosition":{"x":43154.019892814606,"y":30384.267203727948},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"8e0023df-5beb-4187-a53b-908c363861f9","savedPayload":{"position":{"x":43154.942432393516,"y":30384.058149952827},"targetPosition":{"x":42522.68055701032,"y":30509.732433837467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},"id":"930ad389-2e02-405d-a608-628df967e702","savedPayload":{"position":{"x":42523.54442710656,"y":30512.604761346083},"targetPosition":{"x":42103.62173274544,"y":30608.756239124596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"216101a4-697c-41c6-989c-a5f8f181c624","savedPayload":{"position":{"x":42535.671052501435,"y":30612.871442306703},"targetPosition":{"x":42103.62173274544,"y":30608.756239124596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":42524.19981001346,"y":30701.008101414503},"targetPosition":{"x":42103.62173274544,"y":30608.756239124596},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"ddd80520-a052-464b-a7b8-23b72387086f","savedPayload":{"position":{"x":42103.62173274544,"y":30608.756239124596},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":"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":44080.106108831955,"y":29259.45484007192},"targetPosition":{"x":44025.58535310817,"y":29577.18909580282},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"4829d508-b32b-402c-8d27-4493549196b5","savedPayload":{"position":{"x":44025.58535310817,"y":29577.18909580282},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"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":45179.77339016055,"y":29448.90483747687},"targetPosition":{"x":44575.44648894148,"y":29671.841103398412},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"5f34959e-a63c-4298-8323-a16f75e23431","savedPayload":{"position":{"x":44575.44648894148,"y":29671.841103398412},"targetPosition":{"x":43971.06851257841,"y":29894.859301346256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"6db29c31-152b-472a-852e-0e4a36bec524","savedPayload":{"position":{"x":43971.06851257841,"y":29894.859301346256},"targetPosition":{"x":43559.21193888113,"y":30390.138854752066},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"20c34f88-6b58-474b-b69d-02712765c0db","savedPayload":{"position":{"x":43559.21193888113,"y":30390.138854752066},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"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":44858.43615994408,"y":30119.24078790898},"targetPosition":{"x":44627.45605718296,"y":30344.08465568116},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"31761ef4-c98b-4657-a37f-652eff5340ea","savedPayload":{"position":{"x":44627.45605718296,"y":30344.08465568116},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"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":45636.650285180905,"y":30918.252043479133},"targetPosition":{"x":45016.6398435445,"y":30743.55543853434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c4d61b48-9c23-47f1-937b-1729767a26f6","savedPayload":{"position":{"x":45016.6398435445,"y":30743.55543853434},"targetPosition":{"x":44396.52820739871,"y":30568.883478604384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"34656b7b-826e-4ebd-943a-407d8c91ea24","savedPayload":{"position":{"x":44396.52820739871,"y":30568.883478604384},"targetPosition":{"x":43772.11101815489,"y":30727.335780927442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"28be18c7-c387-435e-ae7d-dfeca201bce5","savedPayload":{"position":{"x":43772.11101815489,"y":30727.335780927442},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"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":44982.53472348674,"y":31271.551230312038},"targetPosition":{"x":44663.45195149648,"y":31317.57090273432},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"9cc4175f-28ad-4307-a8d6-0df303a02be1","savedPayload":{"position":{"x":44663.45195149648,"y":31317.57090273432},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"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":45142.140788865174,"y":32375.262946410436},"targetPosition":{"x":44743.33757480049,"y":31869.445080408055},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"a585a9e1-e18d-40b6-b364-75f01e840a4b","savedPayload":{"position":{"x":44743.33757480049,"y":31869.445080408055},"targetPosition":{"x":44344.4364683996,"y":31363.57967751467},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"525c3ef8-145e-4919-bf2d-983db99a5cdb","savedPayload":{"position":{"x":44344.4364683996,"y":31363.57967751467},"targetPosition":{"x":43746.07848600095,"y":31124.88298371739},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b652ba10-fb7a-4a93-bd24-9500bb7d25ec","savedPayload":{"position":{"x":43746.07848600095,"y":31124.88298371739},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"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":44405.29531068255,"y":32276.65286408561},"targetPosition":{"x":44120.07539121793,"y":32126.48930549493},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"16a0815f-b793-4ca8-aa09-78f9f447f110","savedPayload":{"position":{"x":44120.07539121793,"y":32126.48930549493},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"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":43885.309087057394,"y":33263.74887939696},"targetPosition":{"x":43860.115547215726,"y":32620.10511829779},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"123f248b-aa95-4d1c-a6c2-9fc70fc2b816","savedPayload":{"position":{"x":43860.115547215726,"y":32620.10511829779},"targetPosition":{"x":43834.92798078386,"y":31976.34667435627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"007d0fe3-9637-4a4f-8078-730af1716e1b","savedPayload":{"position":{"x":43834.92798078386,"y":31976.34667435627},"targetPosition":{"x":43491.3082491982,"y":31431.43765855773},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},"id":"da1cddfc-5d56-46e7-b14a-0b21127cf6e3","savedPayload":{"position":{"x":43491.3082491982,"y":31431.43765855773},"targetPosition":{"x":43147.157278079765,"y":30886.019336020625},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}}],"id":"6907a34a-7247-4717-8be3-154ebc2cacfc","savedPayload":{"position":{"x":43147.90741085121,"y":30885.97370230464},"targetPosition":{"x":42504.62854000655,"y":30844.00673072342},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":"j"}}},"id":"ac392204-2e14-4744-a636-063c2bf461ae","savedPayload":{"position":{"x":42504.807657777375,"y":30846.99527871963},"targetPosition":{"x":42074.328873992476,"y":30831.148741442983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"4d93f230-422c-4a10-8e6d-50381aa60aba","savedPayload":{"position":{"x":42490.47846723808,"y":30946.975027071963},"targetPosition":{"x":42074.328873992476,"y":30831.148741442983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":42456.62724811131,"y":31029.146991719175},"targetPosition":{"x":42074.328873992476,"y":30831.148741442983},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"83556c43-8483-48e3-be7e-36f9dbb70f08","savedPayload":{"position":{"x":42074.328873992476,"y":30831.148741442983},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":43467.03775144197,"y":31080.151329830995},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":43561.527396507714,"y":31168.986039090618},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"7890a24e-5bf5-450f-bb35-f23b3eb495f6","savedPayload":{"position":{"x":43626.91419659057,"y":31280.593924197423},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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":"38e64db1-376d-45de-a92c-a6fb25282507","savedPayload":{"position":{"x":44161.80145491396,"y":31108.48074663743},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"Bollinger Bands","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9ad6d912-ff9c-45c8-bfce-bcd0d86e3977","savedPayload":{"position":{"x":44245.71363347151,"y":31129.21981329183},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"Bollinger Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6c5e7c7f-a010-4d59-8299-d8d4534aa7f8","savedPayload":{"position":{"x":44309.45885459363,"y":31177.90796739622},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"Bollinger Sub-Channels Objects","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"41db7192-ec70-4f95-85dd-343bfa05258e","savedPayload":{"position":{"x":44363.60477054666,"y":31237.257492675355},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"Candle-Stairs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"13c5c367-3758-4f8f-883c-ba6f1ee3bef2","savedPayload":{"position":{"x":44400.5542857369,"y":31307.647987436438},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"Popular SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0fac6cd3-3172-4854-9ce2-f2827023f503","savedPayload":{"position":{"x":44418.072418664684,"y":31385.45111875141},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"Base7 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"88c7874f-9372-4dc5-9bb1-491ca58ceded","savedPayload":{"position":{"x":44414.78282303304,"y":31464.384510088363},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"Base11 SMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6570c568-8d96-427f-9dbe-822d0fe9f900","savedPayload":{"position":{"x":44391.05693335789,"y":31540.5562081679},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"Popular EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a133263e-3eca-4d4a-b04e-8f40e5ec78ba","savedPayload":{"position":{"x":44348.57113394992,"y":31607.487901058685},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"Base7 EMAs","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"32fcaa2a-af1d-4aa6-adf0-36dd24759ca4","savedPayload":{"position":{"x":44289.82599314408,"y":31661.548912642185},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"Base11 EMAs","code":"{\n \"status\": \"off\"\n}","id":"3d5d19b9-481d-4542-b279-06303aa9edef","savedPayload":{"position":{"x":44219.04198453934,"y":31698.47179470306},"targetPosition":{"x":44114.97804499337,"y":31412.462493363157},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}}],"id":"5bfa0541-b9bb-4dc6-a5a0-5684278c2a16","savedPayload":{"position":{"x":44355.94026088997,"y":31262.571162451717},"targetPosition":{"x":43996.739671806135,"y":31298.870712025528},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"63c36d69-c222-4687-a535-c147abcfb9a9","savedPayload":{"position":{"x":43658.04888464141,"y":31406.061085318666},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":151482.359164207,"y":49808.48296925023},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"a6350c1f-64b3-4b13-921b-aea1eb09b6c1","savedPayload":{"position":{"x":152873.86441598856,"y":49780.359169456024},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"Volume-Stairs","code":"{\n \"status\": \"off\"\n}","id":"3b5badc4-8160-4c8f-ae19-8db7970e581d","savedPayload":{"position":{"x":152825.84669051523,"y":49880.72288779618},"targetPosition":{"x":151449.45747713832,"y":49707.221988613695},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"929661b5-acce-457c-a8cc-505a64cfacf2","savedPayload":{"position":{"x":151449.45747713832,"y":49707.221988613695},"targetPosition":{"x":151654.86388295254,"y":49696.45709503446},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"6f781018-392b-4ba2-b00f-68d4c5498f2b","savedPayload":{"position":{"x":43652.69782508665,"y":31535.066617155873},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"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 \"offset\": -27,\n \"minValue\": 211.77170422115967,\n \"maxValue\": 1022.3595879377227,\n \"autoMinScale\": false,\n \"autoMaxScale\": true\n}","id":"5074db98-f742-4771-a68e-a001b9c45182","savedPayload":{"position":{"x":152639.64913789183,"y":49808.47409819635},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"830c5295-25ca-4f08-bc7c-262be9e2fb17","savedPayload":{"position":{"x":152780.88194222748,"y":50005.01761657379},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"RSI14","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8aa6fde7-89cb-43af-bea1-149a0b94c29c","savedPayload":{"position":{"x":152706.53354504477,"y":50087.78774255567},"targetPosition":{"x":152589.25658587948,"y":49907.66668169117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"2f754398-30ac-4afa-8c12-c37013b8a4da","savedPayload":{"position":{"x":152589.25658587948,"y":49907.66668169117},"targetPosition":{"x":152429.35698121728,"y":49764.036607727256},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"805c6659-38e2-4959-86d0-cbabc87a8184","savedPayload":{"position":{"x":43611.20688087951,"y":31657.469111407027},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Live Trading","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":"b672763b-52c9-47c0-8b03-8156a564a6bb","savedPayload":{"position":{"x":152721.7165241614,"y":50071.82766858393},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"247187f3-1aaf-4de1-a7db-c3a550cdbad0"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"e330fc5d-223f-4d13-8251-84be95894b04","savedPayload":{"position":{"x":152692.98290097114,"y":50132.626601845135},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"4deb0411-a8ea-465e-adcd-e0515f291a2d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"63396270-7226-4fe7-8a77-072a29e73691","savedPayload":{"position":{"x":152646.8676977817,"y":50181.570645631255},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"cec4bf02-ebee-48ad-a0cc-25629e34fd65"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"d08e1626-0cdc-42b6-ab7e-ed35fc9f0f43","savedPayload":{"position":{"x":152587.88499198476,"y":50213.86881592328},"targetPosition":{"x":152515.41503408196,"y":50011.518656744745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c9cbb548-60ef-491d-b083-5825573db463"}}}],"id":"c9302ae8-6f99-41c2-86d7-04e6b1cf1817","savedPayload":{"position":{"x":152515.41503408196,"y":50011.518656744745},"targetPosition":{"x":152358.9787788951,"y":49864.1240171505},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1770,"y":80},"width":150,"height":40,"radius":0}}},"id":"02c55b2b-cb65-4131-aa82-de04ce1ca1c6","savedPayload":{"position":{"x":43536.79496124258,"y":31763.137411724038},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Fordward Testing","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":"37d4edc7-51fc-4c9b-93b9-4f0f0e795208","savedPayload":{"position":{"x":152552.780943571,"y":50241.81457893446},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"456e8c88-ba2b-487d-aa2a-48f6c1144d22"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"0f0b5b97-3962-4eaf-861e-edd447bc4d61","savedPayload":{"position":{"x":152508.08219509257,"y":50292.05553107315},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"6abfb364-1883-488b-ac98-ffa234013e95"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"fcb15fbd-c988-4b80-add2-88c0d20d2f90","savedPayload":{"position":{"x":152450.04585105745,"y":50326.02484308238},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"cdba5840-e1d7-4909-9422-423299403f3c"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"ec034ac9-5e70-44aa-99c7-d0afd8d0f78c","savedPayload":{"position":{"x":152384.35291318287,"y":50340.39736202459},"targetPosition":{"x":152371.82712549967,"y":50125.82665954886},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"0dbb4a2c-c32d-4bd1-a410-09ce23613604"}}}],"id":"2bc6080e-b3b8-4240-946b-b1475b407bdc","savedPayload":{"position":{"x":152371.82712549967,"y":50125.82665954886},"targetPosition":{"x":152263.25350650685,"y":49940.32935235324},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1620,"y":80},"width":150,"height":40,"radius":0}}},"id":"de6ca021-6112-41ab-8a4e-5b24682c397e","savedPayload":{"position":{"x":43435.440768418885,"y":31843.775863762567},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Timeline Chart","name":"Paper Trading","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":"89f07041-b4af-47e8-9282-06f889d1873f","savedPayload":{"position":{"x":152342.79759411846,"y":50357.32117196102},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"442bd8c3-1825-4415-84bd-e2f1148b3f92"}}},{"type":"Layer","name":"Conditions","code":"{\"status\":\"off\"}","id":"3ca3b1c6-2f56-4a69-a5b1-c6461b339286","savedPayload":{"position":{"x":152285.7549471198,"y":50392.93391982934},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"8ab46f29-e225-42ee-a17e-297b2ebcfdbe"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"8306fbd3-4c33-4796-8a00-259702921276","savedPayload":{"position":{"x":152220.49922167737,"y":50409.17650842599},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"2f5a9ed9-80b6-412f-9d24-47f49653be9b"}}},{"type":"Layer","name":"Strategies","code":"{\"status\":\"off\"}","id":"bb634599-045c-4475-a4ed-af6798660d58","savedPayload":{"position":{"x":152153.41810286074,"y":50404.45900001033},"targetPosition":{"x":152201.85125022143,"y":50195.050996450904},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"ddb30433-09f1-44b5-afdc-28a05f218c25"}}}],"id":"0a45ce5c-57f1-442b-b5cf-a86812267f3c","savedPayload":{"position":{"x":152201.85125022143,"y":50195.050996450904},"targetPosition":{"x":152149.93625632144,"y":49986.47891028794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"d5405af5-9184-4017-805d-a7f9f9256524","savedPayload":{"position":{"x":43315.88382944698,"y":31892.447057067795},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"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":152075.1440739003,"y":50208.582402996944},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"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":"068284a9-fd5b-4b68-9103-836637fdcb0b","savedPayload":{"position":{"x":151999.8765472874,"y":50415.867315492134},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"Conditions","code":"{\n \"status\": \"off\"\n}","id":"4cfdb7dd-af3d-444d-abb8-f04d77e73889","savedPayload":{"position":{"x":151932.63360934897,"y":50416.58751321001},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"Trades","code":"{\n \"status\": \"off\"\n}","id":"1ea11e8c-049c-4ff1-ae9a-0f27d4165127","savedPayload":{"position":{"x":151868.4592217137,"y":50396.493251367945},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"Strategies","code":"{\n \"status\": \"off\"\n}","id":"996074fc-0efb-4bf8-8f16-95cbad2f5043","savedPayload":{"position":{"x":151813.63522057253,"y":50357.551496320004},"targetPosition":{"x":151963.98150360212,"y":50203.94981372117},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"c49c4542-bc88-44c2-b537-6f2d5b3b3a3a","savedPayload":{"position":{"x":151963.98150360212,"y":50203.94981372117},"targetPosition":{"x":152028.20731802512,"y":49998.833928232714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"cfda3689-ce58-460a-81c3-4b99377e7184","savedPayload":{"position":{"x":43186.65662100337,"y":31905.298034708296},"targetPosition":{"x":43206.447866870534,"y":31451.810864140094},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"a4a8b171-8b07-4895-8c25-cedd8fa9c957","savedPayload":{"position":{"x":43207.64898419181,"y":31452.241074048292},"targetPosition":{"x":42800.73460165143,"y":31314.147606367234},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2},"uiObject":{"shortcutKey":""},"frame":{"position":{"x":-1305,"y":-15},"width":240,"height":112.375,"radius":0}}},"id":"e6469c64-26cb-4a30-951d-a68147cf1ba5","savedPayload":{"position":{"x":42800.75446579281,"y":31314.219153632643},"targetPosition":{"x":41988.40523832091,"y":31038.45921520995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"c01a6962-8b0e-4b06-8705-8751660aabbf","savedPayload":{"position":{"x":42365.21753041385,"y":31246.55390985695},"targetPosition":{"x":41988.40523832091,"y":31038.45921520995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":42306.35733277729,"y":31328.63286391504},"targetPosition":{"x":41988.40523832091,"y":31038.45921520995},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},"id":"41c01e94-6c5c-4b71-9c70-8d962c86fec0","savedPayload":{"position":{"x":41988.40523832091,"y":31038.45921520995},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"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 have a child Exchange Accounts.')\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 singleMarketData\n let backSessionReference\n let paperSessionReference\n let liveSessionReference\n let fordwardSessionReference\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 'Fordward Testing Session': {\n fordwardSessionReference = 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('Fordward Testing Session', productionEnvironmentTaskManager)\n fordwardSessionReference.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, 'Bollinger Channels Objects')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 3: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Sub-Channels Objects')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 4: {\n let dataProduct = findDataProduct(singleMarketData, 'Candle-Stairs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 5: {\n let dataProduct = findDataProduct(singleMarketData, 'Popular SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 6: {\n let dataProduct = findDataProduct(singleMarketData, 'Base7 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 7: {\n let dataProduct = findDataProduct(singleMarketData, 'Base11 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 8: {\n let dataProduct = findDataProduct(singleMarketData, 'Popular EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 9: {\n let dataProduct = findDataProduct(singleMarketData, 'Base7 EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 10: {\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 '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 'Fordward Testing': {\n setupSessionReference(timelineChart, fordwardSessionReference)\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 + ' ' + exchangeAndMarket\n }\n\n testingEnvironmentTaskManager.name = testingEnvironmentTaskManager.name + ' ' + exchangeAndMarket\n productionEnvironmentTaskManager.name = productionEnvironmentTaskManager.name + ' ' + exchangeAndMarket\n return true\n }\n}\n/*\nEnd Manster Script\n*/","id":"d234c201-4b50-48c6-be9d-f3b141c8cc16","savedPayload":{"position":{"x":41548.37932735475,"y":30912.56364304406},"targetPosition":{"x":41244.801575918114,"y":30608.75084013307},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"95b24e48-3b10-47cb-b149-8667571f4a83","savedPayload":{"position":{"x":41244.90622563986,"y":30608.662026942246},"targetPosition":{"x":40500.785430914875,"y":31038.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"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":41733.74764069586,"y":31048.56951888977},"targetPosition":{"x":41584.844872187714,"y":31205.477496729574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":41786.690812351786,"y":31127.451603161848},"targetPosition":{"x":41584.844872187714,"y":31205.477496729574},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"12eb790b-7f24-48bf-a4f0-34159f3d1863","savedPayload":{"position":{"x":41584.844872187714,"y":31205.477496729574},"targetPosition":{"x":41244.27880201844,"y":31467.520909742285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":41857.14486333724,"y":31268.385209101416},"targetPosition":{"x":41659.33073522124,"y":31356.175522174155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":41875.83418023396,"y":31361.530700988485},"targetPosition":{"x":41659.33073522124,"y":31356.175522174155},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"29b330a4-d4f6-45ac-8b41-090740dc418f","savedPayload":{"position":{"x":41659.33073522124,"y":31356.175522174155},"targetPosition":{"x":41244.27880201844,"y":31467.520909742285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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":41886.80546274287,"y":31517.9842228287},"targetPosition":{"x":41670.37892255565,"y":31523.445973803402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":41868.39155545606,"y":31611.182558959707},"targetPosition":{"x":41670.37892255565,"y":31523.445973803402},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"e8e96f57-041e-4c0d-a2bf-5a8e444636b1","savedPayload":{"position":{"x":41670.37892255565,"y":31523.445973803402},"targetPosition":{"x":41244.27880201844,"y":31467.520909742285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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.410188185124,"y":31760.20751513395},"targetPosition":{"x":41616.42649783022,"y":31682.390968934295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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 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 for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"cf8f6b69-70f8-4035-801d-276c1e2d6b5d","savedPayload":{"position":{"x":41765.72446108792,"y":31839.2611862205},"targetPosition":{"x":41616.42649783022,"y":31682.390968934295},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"c78e76fc-311b-4ac7-942f-af9629ea8b76","savedPayload":{"position":{"x":41616.42649783022,"y":31682.390968934295},"targetPosition":{"x":41244.27880201844,"y":31467.520909742285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"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.39970145276,"y":31957.823492834767},"targetPosition":{"x":41505.69047535707,"y":31808.570501389975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":41583.45144175295,"y":32010.665568336983},"targetPosition":{"x":41505.69047535707,"y":31808.570501389975},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"f23edd8e-b0f9-4531-9550-69cdb0616bcc","savedPayload":{"position":{"x":41505.69047535707,"y":31808.570501389975},"targetPosition":{"x":41244.27880201844,"y":31467.520909742285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},{"type":"Template Script","name":"Delete Session References","templateTarget":{"type":"Template Target","name":"New Template Target","id":"4fe33613-3b67-4e0f-a4b4-6caa4e6dd163","savedPayload":{"position":{"x":41442.473398728536,"y":32080.637486607382},"targetPosition":{"x":41354.94697618024,"y":31882.778957647108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{},"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":41349.31084837155,"y":32099.228711402764},"targetPosition":{"x":41354.94697618024,"y":31882.778957647108},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2},"uiObject":{}}},"id":"f8ffadd5-8eda-4c4e-be1c-c49b98045b42","savedPayload":{"position":{"x":41354.94697618024,"y":31882.778957647108},"targetPosition":{"x":41244.27880201844,"y":31467.520909742285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}}],"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":41187.68612757716,"y":31893.37670982332},"targetPosition":{"x":41244.27880201844,"y":31467.520909742285},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{}}},"id":"c25d0331-8ac0-4834-aa77-743487455d45","savedPayload":{"position":{"x":41244.90608602832,"y":31467.824912342556},"targetPosition":{"x":40500.785430914875,"y":31038.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"1dd2a75d-7d97-4994-8c95-b392d933b1c1","savedPayload":{"position":{"x":40500.785430914875,"y":31038.241941751345},"targetPosition":{"x":39641.041459281856,"y":31038.13836154292},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"S"}}},"id":"17b5ea06-62d8-4a79-b0ba-f9d3b997c17f","savedPayload":{"position":{"x":39641.041459281856,"y":31038.13836154292},"targetPosition":{"x":39641.041459281856,"y":31038.13836154292},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Data Mine","name":"Trading Engines","code":"{ \n\"codeName\": \"TradingEngines\"\n}","tradingBots":[{"type":"Trading Bot","name":"Protocol Engine","code":"{\n\"codeName\": \"Protocol-Engine\",\n\"repo\": \"Protocol-Engine-Trading-Bot\"\n}","processes":[{"type":"Process Definition","name":"Multi-Period","code":"{\n \"codeName\": \"Multi-Period\",\n \"startMode\": {\n \"userDefined\": {\n \"run\": \"true\"\n }\n },\n \"deadWaitTime\": 0,\n \"liveWaitTime\": 60000,\n \"normalWaitTime\": 5000,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Period\",\n \"validPeriods\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"startDate\": {},\n \"endDate\": {}\n }\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[{"type":"Output Dataset","name":"New Output Dataset","id":"2448e10f-8851-4f99-bbc3-4114045de8c0","savedPayload":{"position":{"x":12616.197483671245,"y":20140.853579740375},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"d7335089-1f50-4d48-bcbe-115136a88e6a"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"d1b73084-294b-46f5-a2c4-da08b994b770","savedPayload":{"position":{"x":12449.156688273564,"y":20626.87276271356},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"274082a4-1695-4e9b-a0ff-9464fa2d986f"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"156aa7e6-0514-465e-9734-3983a51ab69c","savedPayload":{"position":{"x":11997.878022585815,"y":20866.417195564853},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"52f26c43-552c-4557-af7a-878b951f5731"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"8067fbac-fbc3-4712-9c24-4b4b9a24d78d","savedPayload":{"position":{"x":11497.788898746769,"y":20785.44093339513},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"afb38dc6-0437-4215-8a7d-3091cd3c74fb"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"72529350-c20e-4f28-a308-2611df7a6468","savedPayload":{"position":{"x":11151.505147800972,"y":20402.34305659919},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"cb317eb0-047c-4076-bd46-7add2423aa87"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"1b491b01-465a-4f98-831d-a587fc428b58","savedPayload":{"position":{"x":11191.18832670422,"y":19893.807598803403},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"41498979-9228-4151-8b94-0d8acdf257e8"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"5711ecc2-5192-4d97-a13d-5269264ea825","savedPayload":{"position":{"x":11500.627966186497,"y":19501.183635137346},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"823a30de-093f-4c39-9181-5727c81bbad3"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"3be12bcb-4634-4933-9ae1-bad5089b8062","savedPayload":{"position":{"x":12002.767486869507,"y":19387.560434016126},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"486698b4-c159-4bb7-8d4a-7057aa94e903"}}},{"type":"Output Dataset","name":"New Output Dataset","id":"43aa8bfe-8aed-4cbb-98d7-342d857fb3d9","savedPayload":{"position":{"x":12427.890488540303,"y":19672.67885711991},"targetPosition":{"x":11869.94158089557,"y":20140.853579740375},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Oficial History","id":"3ad0f044-95e9-4ae7-9169-9dacfc13c011"}}}],"id":"58e53ed7-a9ab-4327-a7b5-cc80d2a3e222","savedPayload":{"position":{"x":19757.507126654426,"y":13254.711920422931},"targetPosition":{"x":20458.104638003257,"y":14167.832629808621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Protocol Engine Multi-Period","code":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"8788fac1-b7a9-403b-a7d6-367c71ac9919","savedPayload":{"position":{"x":18510.378468843017,"y":12526.749042820215},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"2addf3d0-ce67-4700-a2bb-aa9998cd5e77"}}},{"type":"Status Dependency","name":"Candles Volumes Multi-Period-Market","code":"{\n\"mainUtility\": \"Market Ending Point\"\n}","id":"f1fdebab-b7be-411a-ac75-0280185b09d3","savedPayload":{"position":{"x":18511.57428326465,"y":12367.4521316755},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"a0a61ba9-91cb-4ec7-92fe-134ff079de2d"}}},{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","code":"{\"mainUtility\": \"Market Starting Point\"}","id":"1915e12c-8285-453f-874d-131b5617a999","savedPayload":{"position":{"x":18527.48291143694,"y":12208.923134813562},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Market","id":"5bc225fd-2469-426b-8690-9d1ddff24bcd","savedPayload":{"position":{"x":18557.950430071614,"y":12052.570413280337},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"f5b2a7d8-fc32-44a3-a002-9b0fc30a9719"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Market","id":"713606e5-61b8-4597-a878-6d16f4aa9c16","savedPayload":{"position":{"x":18602.71398537534,"y":11899.707009487483},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"207e9481-0730-4304-a938-cfe223d70856"}}},{"type":"Data Dependency","name":"Bollinger Channels Market","id":"23995773-d176-4440-bb23-f1fbbffbb61f","savedPayload":{"position":{"x":18661.390763209078,"y":11751.630969220654},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"22c1f2c6-3838-4657-add8-2e01d7056917"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Market","id":"3c59a984-a0ac-4fa4-a70b-ba5b5e2e2133","savedPayload":{"position":{"x":18733.479776987653,"y":11609.603216925994},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Market","id":"f8d44a4d-3771-4a71-97ca-dc604ff565d3"}}},{"type":"Data Dependency","name":"Candles Multi-Period-Market","id":"71c00672-f101-4b5b-b8db-b42b20b1fa92","savedPayload":{"position":{"x":18818.36580492947,"y":11474.834356136733},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"2b03494a-67d6-47f1-89b6-53fc4c9116a8"}}},{"type":"Data Dependency","name":"Bollinger Bands Multi-Period-Daily","id":"85a073ae-2e57-4e5f-881f-b4ebd47fb6df","savedPayload":{"position":{"x":18915.324530877395,"y":11348.473595602807},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"506104fa-e99a-4a46-930e-176bce311aff"}}},{"type":"Data Dependency","name":"Percentage Bandwidth Multi-Period-Daily","id":"782c081a-df9b-4a3f-a74f-c104146d6f35","savedPayload":{"position":{"x":19023.528681236257,"y":11231.598664618283},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e60d62dd-87f7-4f2d-ac21-3ac5c30a50ea"}}},{"type":"Data Dependency","name":"Bollinger Channels Daily","id":"f04756ad-8cff-46d2-91e1-9fbdbfcdfdb7","savedPayload":{"position":{"x":19142.055063576114,"y":11125.2064968501},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"96b4e65b-e6db-44a0-80a5-ceb9d68a09ec"}}},{"type":"Data Dependency","name":"Bollinger Sub-Channels Daily","id":"63d8b075-b89d-41da-8d1e-231c2288fd1c","savedPayload":{"position":{"x":19269.892433212695,"y":11030.20466648746},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Daily","id":"ca71e765-0f66-4b18-b500-847b9d16169b"}}},{"type":"Data Dependency","name":"Candles Multi-Period-Daily","id":"e0b50719-a6c6-4d8a-bf0f-4120bb02cda0","savedPayload":{"position":{"x":19405.95011543239,"y":10947.40361479923},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"678a567c-f08d-49b9-813b-4e54fd6afadb"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Market","id":"730b50a7-44e6-49e9-a007-60608ba28fd9","savedPayload":{"position":{"x":19549.067307453242,"y":10877.509719017897},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"9bf0483c-4825-4a46-9cf4-1b5262579fc1"}}},{"type":"Data Dependency","name":"Volumes Multi-Period-Daily","id":"81a192d8-a944-436f-a479-7ab3a1c150b5","savedPayload":{"position":{"x":19698.02297922568,"y":10821.119256177944},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2e683057-f911-4105-bc77-16f2706d1915"}}},{"type":"Data Dependency","name":"Candle-Stairs Multi-Period-Market","id":"7e2b7482-fdf2-43ca-be98-e0929aec1cc7","savedPayload":{"position":{"x":19851.54628562823,"y":10778.713310197252},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"8fc77cc9-3f73-4a14-b5b0-8cc86d0a18d1"}}},{"type":"Data Dependency","name":"Candle-Stairs Multi-Period-Daily","id":"524dd1ff-69ba-406a-9c68-5bbc1c2ce130","savedPayload":{"position":{"x":20008.32738232758,"y":10750.653663416155},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"b15413b6-1175-452a-aa67-08e12d613041"}}},{"type":"Data Dependency","name":"Volume-Stairs Multi-Period-Market","id":"662c97ad-79f3-4580-bb19-afdc4e1f3b17","savedPayload":{"position":{"x":20167.028215689366,"y":10737.179690312745},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"0d84339c-22b1-4b26-978c-729a65eacf8c"}}},{"type":"Data Dependency","name":"Volume-Stairs Multi-Period-Daily","id":"1eea009c-13a5-4421-a700-5e24ba43201e","savedPayload":{"position":{"x":20326.097774679416,"y":10738.406388780511},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"63d69b29-5bca-43f6-be0e-67a50fb23827"}}},{"type":"Data Dependency","name":"Popular SMAs Multi-Period-Market","id":"9b453979-b654-4d97-8642-2fcbe831b4b5","savedPayload":{"position":{"x":20484.572339106177,"y":10754.323272994625},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"3b21f9d7-2cbc-4c23-80c8-cc5e5b06a22c"}}},{"type":"Data Dependency","name":"Popular SMAs Multi-Period-Daily","id":"5b707980-734b-4c30-a7c3-ccbaedefa68a","savedPayload":{"position":{"x":20640.902831517087,"y":10784.794589642885},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"2c338fe0-385f-45ab-b210-b98ef013228d"}}},{"type":"Data Dependency","name":"Base7 SMAs Multi-Period-Market","id":"f3fb10b2-5e10-4110-b185-e94713786b63","savedPayload":{"position":{"x":20793.755048310446,"y":10829.5604210263},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"78a6ef37-4df8-4ac8-83a0-c9a732467c59"}}},{"type":"Data Dependency","name":"Base7 SMAs Multi-Period-Daily","id":"ddaf9036-8f74-41a8-9666-82d167cdd732","savedPayload":{"position":{"x":20941.82488068874,"y":10888.238904418089},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f155e2ed-7082-4021-a4ff-a6f3cfd5683d"}}},{"type":"Data Dependency","name":"Base11 SMAs Multi-Period-Market","id":"70389efb-190f-4fd0-9a74-ecd1f0981d79","savedPayload":{"position":{"x":21083.849056617935,"y":10960.329508908373},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"af9b9cef-2a74-486f-b79e-047d68669a1f"}}},{"type":"Data Dependency","name":"Base11 SMAs Multi-Period-Daily","id":"0b509377-0c39-4477-b272-b1551c864b84","savedPayload":{"position":{"x":21218.61589447444,"y":11045.217323012444},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"de5cfa30-edbf-4d5b-8d7f-facfb69a0f3e"}}},{"type":"Data Dependency","name":"Popular EMAs Multi-Period-Market","id":"1d026445-1857-4526-a32c-bcc8d704a56b","savedPayload":{"position":{"x":21344.975639790948,"y":11142.178331581616},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"ea1af06a-2584-43f0-aecf-ec8ad9169e9c"}}},{"type":"Data Dependency","name":"Popular EMAs Multi-Period-Daily","id":"436e9e87-7640-4eda-ade0-275b6656326f","savedPayload":{"position":{"x":21461.850279912673,"y":11250.385651652914},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"e7f5899c-fc4c-412d-a8db-77c1bef8ed21"}}},{"type":"Data Dependency","name":"Base7 EMAs Multi-Period-Market","id":"f78b032e-d887-4023-8971-b46021ebd7d3","savedPayload":{"position":{"x":21568.242754507242,"y":11368.916709149345},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"4e36a5a5-7a03-43a9-b3e0-0c5763c29199"}}},{"type":"Data Dependency","name":"Base7 EMAs Multi-Period-Daily","id":"0c9a04d5-e50d-4201-a37d-af1dd7923326","savedPayload":{"position":{"x":21663.245494628598,"y":11496.761391309692},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"15ccbcff-318d-46db-93f2-d649b57fd52a"}}},{"type":"Data Dependency","name":"Base11 EMAs Multi-Period-Market","id":"36bcd83a-1717-4552-876e-6bc1ca3716db","savedPayload":{"position":{"x":21746.048256737737,"y":11632.831414088627},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5586aa74-2ecb-4b71-83ea-d621aa400660"}}},{"type":"Data Dependency","name":"Base11 EMAs Multi-Period-Daily","id":"a88ad022-7023-4459-b76f-096bcd142dc4","savedPayload":{"position":{"x":21815.94534985044,"y":11775.97207122265},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"0198fa3f-98e3-4c57-a4a4-a7a8e27905d3"}}},{"type":"Data Dependency","name":"RSI14 Multi-Period-Daily","id":"548e55dd-1b23-424d-863c-7cd4fc1f42a5","savedPayload":{"position":{"x":21872.343179184532,"y":11924.983486377503},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Daily","id":"f1556d09-f134-4678-83fb-04002d1dcd34"}}},{"type":"Data Dependency","name":"RSI14 Multi-Period-Market","id":"9d0f9b08-1595-4903-92f1-0fb71af08f01","savedPayload":{"position":{"x":21914.779624810075,"y":12078.73566351712},"targetPosition":{"x":20233.29895010915,"y":12460.15378123672},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Dataset Definition","name":"Multi-Period-Market","id":"5ec62760-e144-4496-98ab-0415a4b315ec"}}}],"id":"0c08b52a-8f7a-40cb-b424-3471225a2e7b","savedPayload":{"position":{"x":20233.313588800815,"y":12459.461393421376},"targetPosition":{"x":20458.104638003257,"y":14167.832629808621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4},"uiObject":{"shortcutKey":""}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"2addf3d0-ce67-4700-a2bb-aa9998cd5e77","savedPayload":{"position":{"x":20898.04515769652,"y":13105.486130413636},"targetPosition":{"x":20458.104638003257,"y":14167.832629808621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"3245ffee-1ffd-405c-8c81-bd960be73d42","savedPayload":{"position":{"x":21370.321396418105,"y":13467.851552113398},"targetPosition":{"x":20458.104638003257,"y":14167.832629808621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"92813b2f-21f3-4891-ae0d-db922ec3cc18","savedPayload":{"position":{"x":21598.147794374792,"y":14017.81332833856},"targetPosition":{"x":20458.104638003257,"y":14167.832629808621},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},"id":"6f95cc67-bad0-48dc-bb82-0075c43cb202","savedPayload":{"position":{"x":20458.0326489472,"y":14167.910650560794},"targetPosition":{"x":20017.66517327035,"y":15231.736258018052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"shortcutKey":""}}},{"type":"Process Definition","name":"Context","code":"{\n\"codeName\": \"Context\"\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[],"id":"441aec7b-d710-4aa3-8c81-1acd8912b8fa","savedPayload":{"position":{"x":21124.858275578103,"y":13318.17517988723},"targetPosition":{"x":20832.03197000132,"y":14417.365246185595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[],"dataDependencies":[],"id":"d982ba6b-a59d-4934-abb2-912dc8e20660","savedPayload":{"position":{"x":21421.231885987043,"y":13407.584637911756},"targetPosition":{"x":20832.03197000132,"y":14417.365246185595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"a1317697-3b4f-4b41-bbb6-0a43fd08fa28","savedPayload":{"position":{"x":21645.59714771842,"y":13603.927651161577},"targetPosition":{"x":20832.03197000132,"y":14417.365246185595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"New Execution Started Event","id":"c3d58fd6-f0ce-41a4-b9cd-05b9f30ad640","savedPayload":{"position":{"x":21828.375077441906,"y":13842.1256351687},"targetPosition":{"x":20832.03197000132,"y":14417.365246185595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"c8086f00-19a8-4f0d-9a5d-44469da5caf2","savedPayload":{"position":{"x":21943.324888158433,"y":14119.564202374908},"targetPosition":{"x":20832.03197000132,"y":14417.365246185595},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"24317ebe-1ed4-48bc-a7ae-518de665b43f","savedPayload":{"position":{"x":20831.89786596949,"y":14417.687305750263},"targetPosition":{"x":20017.66517327035,"y":15231.736258018052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"products":[{"type":"Product Definition","name":"Simulation","code":"{\n \"codeName\": \"Trading-Simulation\",\n \"singularVariableName\": \"tradingSimulation\",\n \"pluralVariableName\": \"tradingSimulations\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Trading-Simulation/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n}","id":"d7335089-1f50-4d48-bcbe-115136a88e6a","savedPayload":{"position":{"x":21558.76617717918,"y":14470.648561237398},"targetPosition":{"x":21080.33623029559,"y":14791.520870167911},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Trading-Simulation/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Trading-Simulation/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n}","id":"274082a4-1695-4e9b-a0ff-9464fa2d986f","savedPayload":{"position":{"x":21612.827582485974,"y":14571.78666062802},"targetPosition":{"x":21080.33623029559,"y":14791.520870167911},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"5332a4a9-98de-4406-ad5e-d9a6a1ff5cee","savedPayload":{"position":{"x":11377.065566704507,"y":19099.46120934351},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"70392162-bb77-48e0-9bba-22e8ed84f055","savedPayload":{"position":{"x":11373.19505738521,"y":19214.87595931803},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Type","code":"{\n \"codeName\": \"type\",\n \"isString\": true\n}","id":"6a4b1d81-2b7d-4a02-9d13-d3cb2442710f","savedPayload":{"position":{"x":11351.75192982298,"y":19328.3472668562},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Market Rate","code":"{\n \"codeName\": \"marketRate\",\n \"isString\": false\n}","id":"6a4b5c8e-8294-438c-a2da-ad812e59a131","savedPayload":{"position":{"x":11313.238792753522,"y":19437.215460683143},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Amount","code":"{\n \"codeName\": \"amount\",\n \"isString\": false\n}","id":"c7186621-e504-4cf5-9f74-0ff177d7aa24","savedPayload":{"position":{"x":11258.558361467522,"y":19538.928762607957},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Balance A","code":"{\n \"codeName\": \"balanceA\",\n \"isString\": false\n}","id":"64bddfff-11f9-4052-98c0-ab7b42a7615f","savedPayload":{"position":{"x":11188.99229892934,"y":19631.103099041728},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Balance B","code":"{\n \"codeName\": \"balanceB\",\n \"isString\": false\n}","id":"69dff994-7889-4c0c-9847-dd3949ff6a6f","savedPayload":{"position":{"x":11106.171174683412,"y":19711.577981661783},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Profit","code":"{\n \"codeName\": \"profit\",\n \"isString\": false\n}","id":"1fa2f30d-669a-45bd-9d11-9a62b82640ec","savedPayload":{"position":{"x":11012.036245686131,"y":19778.467147426865},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Last Trade Profit Loss","code":"{\n \"codeName\": \"lastTradeProfitLoss\",\n \"isString\": false\n}","id":"0805787c-8b11-4cda-8166-ab8d9cad0a7b","savedPayload":{"position":{"x":10908.793954888128,"y":19830.202770984066},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Stop Loss","code":"{\n \"codeName\": \"stopLoss\",\n \"isString\": false\n}","id":"92c16033-3882-4c75-bfe7-3b1b793e59ab","savedPayload":{"position":{"x":10798.8642140816,"y":19865.572213166284},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Roundtrips","code":"{\n \"codeName\": \"roundtrips\",\n \"isString\": false\n}","id":"6381add6-79c2-44e6-b590-c1dcfb99e2a1","savedPayload":{"position":{"x":10684.823683218923,"y":19883.746444226515},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Hits","code":"{\n \"codeName\": \"hits\",\n \"isString\": false\n}","id":"b4290398-e1e5-44b5-b61a-d267ad9b8316","savedPayload":{"position":{"x":10569.34537568725,"y":19884.299475592477},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Fails","code":"{\n \"codeName\": \"fails\",\n \"isString\": false\n}","id":"56099414-6c12-4e67-8f88-5182242967c4","savedPayload":{"position":{"x":10455.136005140244,"y":19867.218344677676},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Hit Ratio","code":"{\n \"codeName\": \"hitRatio\",\n \"isString\": false\n}","id":"2213cf96-502e-4aa4-938a-96acb0f92557","savedPayload":{"position":{"x":10344.872542424157,"y":19832.90341871346},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"ROI","code":"{\n \"codeName\": \"ROI\",\n \"isString\": false\n}","id":"b41213a7-07ad-426d-8bd3-fd4925594f11","savedPayload":{"position":{"x":10241.139469650074,"y":19782.15901048045},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Periods","code":"{\n \"codeName\": \"periods\",\n \"isString\": false\n}","id":"f41a7319-6b9a-46b3-ba04-8a58bc91e397","savedPayload":{"position":{"x":10146.368202123746,"y":19716.174525898656},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Days","code":"{\n \"codeName\": \"days\",\n \"isString\": false\n}","id":"67d293ba-6aea-40cc-bbb8-99f8f0cd5876","savedPayload":{"position":{"x":10062.780098031586,"y":19636.496585360826},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Anualized Rate Of Return","code":"{\n \"codeName\": \"anualizedRateOfReturn\",\n \"isString\": false\n}","id":"d78c501d-91c3-415a-850c-9115e0552230","savedPayload":{"position":{"x":9992.334391687526,"y":19544.992772261274},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Trade Position Rate","code":"{\n \"codeName\": \"tradePositionRate\",\n \"isString\": false\n}","id":"7912c4d4-d85d-48c3-9953-f0c194fbe4ac","savedPayload":{"position":{"x":9936.682270741256,"y":19443.807858424014},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Last Trade ROI","code":"{\n \"codeName\": \"lastTradeROI\",\n \"isString\": false\n}","id":"9996b0ef-da23-4c37-bbc5-b3d78baa8b4c","savedPayload":{"position":{"x":9897.128173739207,"y":19335.31353246904},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Current Strategy Index","code":"{\n \"codeName\": \"currentStrategyIndex\",\n \"isString\": false\n}","id":"6ff9ddc3-5989-425b-b406-6649c152ab24","savedPayload":{"position":{"x":9874.599215190608,"y":19222.052809441208},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Strategy Stage Number","code":"{\n \"codeName\": \"strategyStageNumber\",\n \"isString\": false\n}","id":"288a10b5-4c77-43aa-a548-c24629b3f7ee","savedPayload":{"position":{"x":9869.623454789182,"y":19106.680424692953},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Take Profit","code":"{\n \"codeName\": \"takeProfit\",\n \"isString\": false\n}","id":"66f26d4d-28d0-4896-88b0-890fc9a25ea9","savedPayload":{"position":{"x":9882.317520141476,"y":18991.900609137676},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Stop Loss Phase","code":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false\n}","id":"71f92e69-779c-4643-9f7a-2a82f960f4e5","savedPayload":{"position":{"x":9912.383873114622,"y":18880.40370436913},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Take Profit Phase","code":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false\n}","id":"7d9ebb36-97b5-4bdf-95c9-40c52cb85f0e","savedPayload":{"position":{"x":9959.117783877993,"y":18774.803103334703},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Execution Record","code":"{\n \"codeName\": \"executionRecord\",\n \"isString\": true\n}","id":"a138bd75-7a4c-4dda-8977-5ac63f432b1f","savedPayload":{"position":{"x":10021.423849173118,"y":18677.573994619714},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Trade Position Size","code":"{\n \"codeName\": \"tradePositionSize\",\n \"isString\": false\n}","id":"d8c2810d-7c00-4383-b033-881a2c85fff2","savedPayload":{"position":{"x":10097.841667637653,"y":18590.995346124873},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Initial Balance A","code":"{\n \"codeName\": \"initialBalanceA\",\n \"isString\": false\n}","id":"9539791d-7864-48e4-801e-a798dbbdc4bb","savedPayload":{"position":{"x":10186.580070375529,"y":18517.096487990242},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Minimum Balance A","code":"{\n \"codeName\": \"minimumBalanceA\",\n \"isString\": false\n}","id":"e523f9bf-5f97-4089-b693-f861949641f8","savedPayload":{"position":{"x":10285.559104437749,"y":18457.609546816726},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Maximum Balance A","code":"{\n \"codeName\": \"maximumBalanceA\",\n \"isString\": false\n}","id":"0ff4c6e9-93c6-4da2-b5ed-86e225524f66","savedPayload":{"position":{"x":10392.45878515664,"y":18413.92884608664},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Initial Balance B","code":"{\n \"codeName\": \"initialBalanceB\",\n \"isString\": false\n}","id":"7c3b05c2-530e-453b-b776-7d55514456ef","savedPayload":{"position":{"x":10504.773474620113,"y":18387.078224403056},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Minimum Balance B","code":"{\n \"codeName\": \"minimumBalanceB\",\n \"isString\": false\n}","id":"f56fac84-b690-4aa2-a305-a430dde115c6","savedPayload":{"position":{"x":10619.870611700666,"y":18377.6870375807},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Maximum Balance B","code":"{\n \"codeName\": \"maximumBalanceB\",\n \"isString\": false\n}","id":"42605779-f1a6-48b7-992d-05124c2f5c99","savedPayload":{"position":{"x":10735.052417056935,"y":18385.97540707909},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Base Asset","code":"{\n \"codeName\": \"baseAsset\",\n \"isString\": true\n}","id":"3a26c1da-2c55-421a-a311-ba66a095cf70","savedPayload":{"position":{"x":10847.619126794945,"y":18411.749060542083},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Position Periods","code":"{\n \"codeName\": \"positionPeriods\",\n \"isString\": false\n}","id":"ad4cc73a-3cfe-48f3-9f77-8eea811acb0f","savedPayload":{"position":{"x":10954.932272645556,"y":18454.403885377236},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Position Days","code":"{\n \"codeName\": \"positionDays\",\n \"isString\": false\n}","id":"29a59888-daca-4440-aca1-7942f27426ad","savedPayload":{"position":{"x":11054.47652542443,"y":18512.94008864297},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Distance To Last Trigger On","code":"{\n \"codeName\": \"distanceToLastTriggerOn\",\n \"isString\": false\n}","id":"b3c41567-e36b-46ff-824d-aca57b0c6f57","savedPayload":{"position":{"x":11143.918652216229,"y":18585.985631347718},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Distance ToLast Trigger Off","code":"{\n \"codeName\": \"distanceToLastTriggerOff\",\n \"isString\": false\n}","id":"30280e51-780a-4593-b392-181ec71e6c95","savedPayload":{"position":{"x":11221.162205376588,"y":18671.828387881014},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Distance To Last Take Position","code":"{\n \"codeName\": \"distanceToLastTakePosition\",\n \"isString\": false\n}","id":"28dd29f5-c161-4132-be23-59f08a2ca8cc","savedPayload":{"position":{"x":11284.396661488021,"y":18768.456276786663},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},{"type":"Record Property","name":"Distance To Last Close Position","code":"{\n \"codeName\": \"distanceToLastClosePosition\",\n \"isString\": false\n}","id":"da0f85d8-ae29-4a25-b88e-f65fbc7b643c","savedPayload":{"position":{"x":11332.13985849432,"y":18873.60442224672},"targetPosition":{"x":10623.482870119064,"y":19131.961594501125},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"9886dcec-c49a-4b0e-af1d-8996a68fc2e1","savedPayload":{"position":{"x":22209.566233680795,"y":14566.788543549535},"targetPosition":{"x":21080.33623029559,"y":14791.520870167911},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3},"uiObject":{"shortcutKey":"q"}}},"id":"a3201051-46ba-4a92-aef3-a6c787b771fd","savedPayload":{"position":{"x":21079.5845670302,"y":14792.150155591675},"targetPosition":{"x":20017.66517327035,"y":15231.736258018052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Trading Simulation","id":"7864b9e4-3150-4d1d-abd9-0a43a9fe4c4f"}}},{"type":"Product Definition","name":"Conditions","code":"{\n \"codeName\": \"Simulation-Conditions\",\n \"singularVariableName\": \"simulationCondition\",\n \"pluralVariableName\": \"simulationConditions\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Simulation-Conditions/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n}","id":"52f26c43-552c-4557-af7a-878b951f5731","savedPayload":{"position":{"x":21732.49366793104,"y":15118.231415076756},"targetPosition":{"x":21167.86746331339,"y":15231.652340809325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Simulation-Conditions/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Simulation-Conditions/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n}","id":"afb38dc6-0437-4215-8a7d-3091cd3c74fb","savedPayload":{"position":{"x":21743.697720406657,"y":15232.18443000369},"targetPosition":{"x":21167.86746331339,"y":15231.652340809325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Current Strategy Index","code":"{\n \"codeName\": \"currentStrategyIndex\",\n \"isString\": false\n}","id":"bbfaa8e4-eac8-4f0d-a8b1-85844f96c564","savedPayload":{"position":{"x":22137.32095706353,"y":15216.356788107752},"targetPosition":{"x":22297.11201635209,"y":15455.992865334816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Strategy Stage Number","code":"{\n \"codeName\": \"strategyStageNumber\",\n \"isString\": false\n}","id":"b9b14fcf-e09b-4036-85d9-8f40304a7d13","savedPayload":{"position":{"x":22353.471825681045,"y":15173.240619813338},"targetPosition":{"x":22297.11201635209,"y":15455.992865334816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Stop Loss Phase","code":"{\n \"codeName\": \"stopLossPhase\",\n \"isString\": false\n}","id":"115e6942-c0f3-45e7-a2ba-8b661a95af3e","savedPayload":{"position":{"x":22536.92404638248,"y":15295.83339450043},"targetPosition":{"x":22297.11201635209,"y":15455.992865334816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Take Profit Phase","code":"{\n \"codeName\": \"takeProfitPhase\",\n \"isString\": false\n}","id":"599f27b7-7cd8-483b-81c9-bd131e9ab964","savedPayload":{"position":{"x":22579.99810830066,"y":15512.04177495234},"targetPosition":{"x":22297.11201635209,"y":15455.992865334816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Conditions Array Values","code":"{\n \"codeName\": \"conditionsArrayValues\",\n \"isString\": false\n}","id":"1359d846-f978-4a6a-9e94-4f23fcdde80b","savedPayload":{"position":{"x":22457.465309564184,"y":15695.462478977468},"targetPosition":{"x":22297.11201635209,"y":15455.992865334816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Formulas Errors","code":"{\n \"codeName\": \"formulasErrors\",\n \"isString\": false\n}","id":"1d4b7300-013b-4874-ba78-c77bb9aac9be","savedPayload":{"position":{"x":22241.289554219697,"y":15738.398803157694},"targetPosition":{"x":22297.11201635209,"y":15455.992865334816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Formulas Values","code":"{\n \"codeName\": \"formulasValues\",\n \"isString\": false\n}","id":"5306f8cc-6c59-477a-ac58-303eea4142cf","savedPayload":{"position":{"x":22057.81600908919,"y":15615.761688656728},"targetPosition":{"x":22297.11201635209,"y":15455.992865334816},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"2f2a6b6d-6c24-4b04-936b-3fdb66afc498","savedPayload":{"position":{"x":22297.11201635209,"y":15455.992865334816},"targetPosition":{"x":21167.86746331339,"y":15231.652340809325},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0","savedPayload":{"position":{"x":21166.996912310446,"y":15231.738375349007},"targetPosition":{"x":20017.66517327035,"y":15231.736258018052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Conditions","id":"546d0a94-e878-41c1-a6e6-7dd28832f79b"}}},{"type":"Product Definition","name":"Strategies","code":"{\n \"codeName\": \"Simulation-Strategies\",\n \"singularVariableName\": \"simulationStrategy\",\n \"pluralVariableName\": \"simulationStrategies\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Simulation-Strategies/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n}","id":"cb317eb0-047c-4076-bd46-7add2423aa87","savedPayload":{"position":{"x":21645.427392603353,"y":15782.82941894635},"targetPosition":{"x":21080.372643799532,"y":15671.674889710368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Simulation-Strategies/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Simulation-Strategies/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n}","id":"41498979-9228-4151-8b94-0d8acdf257e8","savedPayload":{"position":{"x":21612.101969438372,"y":15892.580567984394},"targetPosition":{"x":21080.372643799532,"y":15671.674889710368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"77ad2d38-fbe8-480b-a8a0-0757a09f09d4","savedPayload":{"position":{"x":22013.815524304577,"y":16024.064636502942},"targetPosition":{"x":22037.69548815891,"y":16311.141578689296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"23b7aa0b-5be6-4e07-a858-d89b588eec97","savedPayload":{"position":{"x":22247.26051574544,"y":16113.204151356951},"targetPosition":{"x":22037.69548815891,"y":16311.141578689296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Status","code":"{\n \"codeName\": \"status\",\n \"isString\": false\n}","id":"fae7e152-d3b6-4508-a4de-a0db478ca92d","savedPayload":{"position":{"x":22323.225412140782,"y":16351.317623488956},"targetPosition":{"x":22037.69548815891,"y":16311.141578689296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Number","code":"{\n \"codeName\": \"number\",\n \"isString\": false\n}","id":"6c18d6ae-089b-483f-979f-e434991bcae0","savedPayload":{"position":{"x":22184.305094325624,"y":16559.301378845896},"targetPosition":{"x":22037.69548815891,"y":16311.141578689296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin Rate","code":"{\n \"codeName\": \"beginRate\",\n \"isString\": false\n}","id":"2d17ff8b-946c-45bd-b665-426e7ed5ec64","savedPayload":{"position":{"x":21935.377762411652,"y":16580.232356370645},"targetPosition":{"x":22037.69548815891,"y":16311.141578689296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End Rate","code":"{\n \"codeName\": \"endRate\",\n \"isString\": false\n}","id":"60112244-d5d6-41df-8e89-685366751ecd","savedPayload":{"position":{"x":21763.531540912118,"y":16398.399932372697},"targetPosition":{"x":22037.69548815891,"y":16311.141578689296},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"8d502c73-b428-4428-93cc-6336d63dd21d","savedPayload":{"position":{"x":22037.69548815891,"y":16311.141578689296},"targetPosition":{"x":21080.372643799532,"y":15671.674889710368},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"36051f0f-5161-48a6-9d13-eb1766b5566b","savedPayload":{"position":{"x":21079.49875693035,"y":15671.481916752424},"targetPosition":{"x":20017.66517327035,"y":15231.736258018052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Strategies","id":"9b0c4f4b-d67c-48ae-97f1-bd614e85ced8"}}},{"type":"Product Definition","name":"Trades","code":"{\n \"codeName\": \"Simulation-Trades\",\n \"singularVariableName\": \"simulationTrade\",\n \"pluralVariableName\": \"simulationTrades\"\n}","datasets":[{"type":"Dataset Definition","name":"Multi-Period-Market","code":"{\n \"codeName\": \"Multi-Period-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Simulation-Trades/Multi-Period-Market/@Period\",\n \"fileName\": \"Data.json\"\n}","id":"823a30de-093f-4c39-9181-5727c81bbad3","savedPayload":{"position":{"x":21310.34302724592,"y":16363.973392381764},"targetPosition":{"x":20830.972038038042,"y":16044.991927642319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}},{"type":"Dataset Definition","name":"Multi-Period-Daily","code":"{\n \"codeName\": \"Multi-Period-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Simulation-Trades/Multi-Period-Daily/@Period/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Simulation-Trades/Multi-Period-Daily\",\n \"fileName\": \"Data.Range.json\"\n }\n}","id":"486698b4-c159-4bb7-8d4a-7057aa94e903","savedPayload":{"position":{"x":21237.528420623774,"y":16452.62547493929},"targetPosition":{"x":20830.972038038042,"y":16044.991927642319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[{"type":"Record Property","name":"Begin","code":"{\n \"codeName\": \"begin\",\n \"isString\": false\n}","id":"1481ecbc-72f4-4ae6-a80e-63e57be003c8","savedPayload":{"position":{"x":21526.749219532623,"y":16719.632146400974},"targetPosition":{"x":21470.510993024716,"y":17002.099097634855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End","code":"{\n \"codeName\": \"end\",\n \"isString\": false\n}","id":"cdc28bbd-202e-4363-bf88-dc6a981b54b5","savedPayload":{"position":{"x":21710.257102518342,"y":16842.11318287327},"targetPosition":{"x":21470.510993024716,"y":17002.099097634855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Status","code":"{\n \"codeName\": \"status\",\n \"isString\": false\n}","id":"6b5b99b5-421a-42b2-a621-8b778742783d","savedPayload":{"position":{"x":21753.300838539453,"y":17058.313285027274},"targetPosition":{"x":21470.510993024716,"y":17002.099097634855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Last Trade ROI","code":"{\n \"codeName\": \"lastTradeROI\",\n \"isString\": false\n}","id":"4219b9f2-492d-4eab-9472-1f8195eb216a","savedPayload":{"position":{"x":21630.680241279813,"y":17241.817091470664},"targetPosition":{"x":21470.510993024716,"y":17002.099097634855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Exit Type","code":"{\n \"codeName\": \"exitType\",\n \"isString\": false\n}","id":"c5612569-dc10-4153-aff5-dccfadbf2d16","savedPayload":{"position":{"x":21414.469511992465,"y":17284.885295586482},"targetPosition":{"x":21470.510993024716,"y":17002.099097634855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"Begin Rate","code":"{\n \"codeName\": \"beginRate\",\n \"isString\": false\n}","id":"fafe1ef3-e00e-482b-8bfb-c61171478260","savedPayload":{"position":{"x":21231.003655296427,"y":17162.283074609644},"targetPosition":{"x":21470.510993024716,"y":17002.099097634855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}},{"type":"Record Property","name":"End Rate","code":"{\n \"codeName\": \"endRate\",\n \"isString\": false\n}","id":"24385194-d717-4c93-a938-4ba3f6be3c67","savedPayload":{"position":{"x":21188.040179269356,"y":16946.0429660732},"targetPosition":{"x":21470.510993024716,"y":17002.099097634855},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":1},"uiObject":{}}}],"id":"7201c4b3-e6c0-49eb-8f8d-bb24c51f3786","savedPayload":{"position":{"x":21470.510993024716,"y":17002.099097634855},"targetPosition":{"x":20830.972038038042,"y":16044.991927642319},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"a26dc922-ca08-43ef-983e-029b76f39163","savedPayload":{"position":{"x":20830.313011227787,"y":16044.381644956},"targetPosition":{"x":20017.66517327035,"y":15231.736258018052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Trades","id":"382004c6-e318-4d9d-9791-505f329f1e54"}}},{"type":"Product Definition","name":"Execution","code":"{\n \"codeName\": \"Live-Trading-History\",\n \"singularVariableName\": \"liveTradingHistory\",\n \"pluralVariableName\": \"liveTradingHistory\"\n}","datasets":[{"type":"Dataset Definition","name":"Oficial History","code":"{\n \"codeName\": \"Oficial History\",\n \"type\": \"File Sequence\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\",\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/Protocol-Engine/Output/@Session/Trading-Process\",\n \"fileName\": \"Execution.History.Live.@Sequence.json\"\n}","id":"3ad0f044-95e9-4ae7-9169-9dacfc13c011","savedPayload":{"position":{"x":20745.560551482627,"y":16793.137906997705},"targetPosition":{"x":20457.706848108457,"y":16294.47234980171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2},"uiObject":{}}}],"record":{"type":"Record Definition","name":"New Record Definition","properties":[],"id":"848b3eb1-afc1-406a-ab21-15ecbc893766","savedPayload":{"position":{"x":20755.575926854544,"y":17406.452734807775},"targetPosition":{"x":20457.706848108457,"y":16294.47234980171},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{}}},"id":"05ce9ca7-8b5b-4974-a45e-ca319fc85330","savedPayload":{"position":{"x":20457.348410412258,"y":16293.55716996073},"targetPosition":{"x":20017.66517327035,"y":15231.736258018052},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{},"referenceParent":{"type":"Plotter Module","name":"Simulation Execution","id":"96dede74-e7bc-4c50-a9ba-2bec8a5f4884"}}}],"id":"b4f01468-c3e6-405e-8152-e460f597f98a","savedPayload":{"position":{"x":19739.430115806885,"y":18694.122679239677},"targetPosition":{"x":18874.571706269082,"y":18694.127167364633},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"shortcutKey":"j"}}}],"plotters":[{"type":"Plotter","name":"Plotters-Trading-Simulation","code":"{\n\"codeName\" : \"PlottersTradingSimulation\"\n}","modules":[{"type":"Plotter Module","name":"Trading Simulation","code":"{\n\"codeName\": \"TradingSimulation\",\n\"isLegacy\": true,\n\"icon\": \"placeholder\"\n}","panels":[{"type":"Plotter Panel","name":"Trading Simulation Panel","code":"{ \n\"codeName\": \"TradingSimulationAssetBalancesPanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"0061c7b0-341d-41a7-a0a6-b675f25b7da8","savedPayload":{"position":{"x":13721.273513044503,"y":16787.662119193374},"targetPosition":{"x":13932.52744544112,"y":17576.65107359537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Panel","name":"Simulation Current Position","code":"{ \n\"codeName\": \"TradingSimulationCurrentPositionPanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"27e36e5d-3553-4312-b0c0-85143c408e38","savedPayload":{"position":{"x":14340.855604578623,"y":16869.27420917963},"targetPosition":{"x":13932.52744544112,"y":17576.65107359537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Panel","name":"Simulation Partial Results","code":"{ \n\"codeName\": \"TradingSimulationPartialResultsPanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"f7258c3b-6e90-45af-b409-3f9969607bf6","savedPayload":{"position":{"x":14721.517804950498,"y":17365.24399743455},"targetPosition":{"x":13932.52744544112,"y":17576.65107359537},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{}}}],"id":"7864b9e4-3150-4d1d-abd9-0a43a9fe4c4f","savedPayload":{"position":{"x":16921.81438235152,"y":15752.60626753822},"targetPosition":{"x":17823.347866708307,"y":15231.798345622768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Conditions","code":"{\n\"codeName\": \"Conditions\",\n\"isLegacy\": true,\n\"icon\": \"band\"\n}","panels":[],"id":"546d0a94-e878-41c1-a6e6-7dd28832f79b","savedPayload":{"position":{"x":16817.62004445079,"y":15501.254512482186},"targetPosition":{"x":17823.347866708307,"y":15231.798345622768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Strategies","code":"{\n\"codeName\": \"Strategies\",\n\"isLegacy\": true,\n\"icon\": \"quality\"\n}","panels":[],"id":"9b0c4f4b-d67c-48ae-97f1-bd614e85ced8","savedPayload":{"position":{"x":16782.10966360884,"y":15231.800959101129},"targetPosition":{"x":17823.347866708307,"y":15231.798345622768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Trades","code":"{\n\"codeName\": \"Trades\",\n\"isLegacy\": true,\n\"icon\": \"band\"\n}","panels":[],"id":"382004c6-e318-4d9d-9791-505f329f1e54","savedPayload":{"position":{"x":16817.619379696942,"y":14962.32630325959},"targetPosition":{"x":17823.347866708307,"y":15231.798345622768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},{"type":"Plotter Module","name":"Simulation Execution","code":"{\n\"codeName\": \"SimulationExecution\",\n\"isLegacy\": true,\n\"icon\": \"band\"\n}","panels":[{"type":"Plotter Panel","name":"Simulation Execution Panel","code":"{ \n\"codeName\": \"SimulationExecutionPanel\" ,\n\"isLegacy\": true\n}","panelData":[],"id":"7a1177aa-d297-4452-bad5-58b681a740ca","savedPayload":{"position":{"x":15158.851817438146,"y":18286.32025294244},"targetPosition":{"x":14342.350844104969,"y":18286.323877646697},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"96dede74-e7bc-4c50-a9ba-2bec8a5f4884","savedPayload":{"position":{"x":16921.81314213248,"y":14710.97480739201},"targetPosition":{"x":17823.347866708307,"y":15231.798345622768},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3},"uiObject":{}}}],"id":"90f0675d-f4d1-480f-aa75-c8162d53ea0f","savedPayload":{"position":{"x":17773.737412808296,"y":18694.131826028282},"targetPosition":{"x":18874.571706269082,"y":18694.127167364633},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{}}}],"id":"6a54eece-4582-4cda-a854-1cd805e00fed","savedPayload":{"position":{"x":18874.571706269082,"y":18694.127167364633},"targetPosition":{"x":18874.571706269082,"y":18694.127167364633},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false}}}]} \ No newline at end of file