Files
Superalgos/Super-Scripts/Masters.json
T
2020-04-25 09:08:30 +02:00

1 line
200 KiB
JSON

{"type":"Super Scripts","name":"Masters","code":"{ \n\"codeName\": \"Masters\"\n}","scriptsLibrary":{"type":"Scripts Library","name":"New Scripts Library","masterScripts":[{"type":"Master Script","name":"Setup Market","templateScripts":[{"type":"Template Script","name":"Install Single Market Data","templateStructure":{"type":"Template Structure","name":"New Template Structure","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Candles","id":"24c5f795-acf3-43c3-99ee-ddb521b082f4","savedPayload":{"position":{"x":39641.333811210454,"y":28936.98413868935},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"fe6065ec-4d2d-47a0-bae0-8647f0e195d7"}}},{"type":"Data Product","name":"Volumes","id":"204ec959-0861-486a-aa2a-276dbf48f775","savedPayload":{"position":{"x":39612.59634583407,"y":28848.5110343909},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candles Channels","id":"90ee9733-ab7e-41a0-ac78-4a7661a27017","savedPayload":{"position":{"x":39594.15352768551,"y":28758.904338266497},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels","id":"8c81d378-0947-4e9d-be25-58e69120152e"}}},{"type":"Data Product","name":"Candles Channels Objects","id":"9ade8e93-9071-422b-8cce-7a50d6dad739","savedPayload":{"position":{"x":39585.513470979095,"y":28668.600155855387},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles Channels Objects","id":"ba5dbb67-2030-42a0-9ff8-1ee80874f047"}}},{"type":"Data Product","name":"Bollinger Bands","id":"b5ef2cf7-3d35-45ec-848c-31970b59c04e","savedPayload":{"position":{"x":39586.515890435076,"y":28578.275802249987},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Bands","id":"29088877-8d63-4217-8d34-8742afc262f4"}}},{"type":"Data Product","name":"Percentage Bandwidth","id":"1c3881ca-24b3-4cc9-b16b-9db7aa2b4c24","savedPayload":{"position":{"x":39597.01323868843,"y":28488.759535006342},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Percentage Bandwidth","id":"3b7885a0-cd72-4a3f-a38b-3dc8c47bd068"}}},{"type":"Data Product","name":"Bollinger Channels Objects","id":"92eec33b-86be-4b73-899f-e9550f7b0df3","savedPayload":{"position":{"x":39616.82107043368,"y":28400.936525998834},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels Objects","id":"1f111f72-624f-4166-9f99-ab8d785d5267"}}},{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"4b69df71-9091-4d22-9b0d-571304297033","savedPayload":{"position":{"x":39645.70528040039,"y":28315.720626172813},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels Objects","id":"080c87fc-4546-4482-ab11-180a33f6d9ab"}}},{"type":"Data Product","name":"Popular SMAs","id":"8a5f7e27-9ca5-4d6e-b6b9-2d6cbdda8040","savedPayload":{"position":{"x":39683.34058679891,"y":28234.020419812852},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular SMAs","id":"4029d5bf-a8ad-4d80-b874-2af506e0ab34"}}},{"type":"Data Product","name":"Base7 SMAs","id":"ccd9c3fd-3382-4fea-8798-a29b04efc09e","savedPayload":{"position":{"x":39729.311389966206,"y":28156.718652140855},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 SMAs","id":"a03ef0ea-5be9-4d40-952e-24789e77dbb6"}}},{"type":"Data Product","name":"Base11 SMAs","id":"aebc2010-a6e2-436d-8cc6-96eb0689330d","savedPayload":{"position":{"x":39783.1123675581,"y":28084.656149508282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 SMAs","id":"05fabbf9-7798-4a53-995e-53ae74bef3de"}}},{"type":"Data Product","name":"Popular EMAs","id":"0fd4ef59-77b4-48cc-b00e-6a529a05cb0c","savedPayload":{"position":{"x":39844.15303173856,"y":28018.61953084089},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Popular EMAs","id":"d5894707-b065-429b-ba6b-78c71e6529fe"}}},{"type":"Data Product","name":"Base7 EMAs","id":"802917a7-816b-4e4c-bbb6-a0eaf9eb7429","savedPayload":{"position":{"x":39911.76371803724,"y":27959.33092647535},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base7 EMAs","id":"b42348a4-6a26-4d46-aa2e-cbf5fa0a4984"}}},{"type":"Data Product","name":"Base11 EMAs","id":"9109bfcb-70e7-4cf8-9047-da9567668082","savedPayload":{"position":{"x":39985.20283169866,"y":27907.43928775395},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base11 EMAs","id":"21df4f44-96eb-453b-8652-4ce2dc03424c"}}},{"type":"Data Product","name":"MACD 122609","id":"519a89d4-75bb-4c33-a63d-d65c9defbd12","savedPayload":{"position":{"x":40063.66492102786,"y":27863.51284455778},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"RSI14","id":"6ae3a0ab-86cf-4e81-b415-5775dfcb1d9c","savedPayload":{"position":{"x":40146.28952675484,"y":27828.032723488246},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"RSI14","id":"e24248b9-90df-4b26-b5cc-0bac80efa0c7"}}},{"type":"Data Product","name":"Base6 SMAs","id":"f4d7169e-8c26-48ae-967d-529a8ecab1f1","savedPayload":{"position":{"x":40232.170594436364,"y":27801.387550178282},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base6 SMAs","id":"4ae22e54-cd02-4e2e-b638-1c5ea9a171ac"}}},{"type":"Data Product","name":"Base5 SMAs","id":"bae79086-c788-4b79-a9af-952326480b34","savedPayload":{"position":{"x":40320.36641444746,"y":27783.86918815466},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Base5 SMAs","id":"2dcb55de-1673-409e-aa52-f51e7c7f8fa3"}}},{"type":"Data Product","name":"Bollinger Channels","id":"b4847c45-613e-4862-98d3-34b28fa70fd7","savedPayload":{"position":{"x":40409.909923101404,"y":27775.669478131724},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"05766faf-47e0-493a-9459-a470a6691138","savedPayload":{"position":{"x":40499.81663014655,"y":27776.909528674598},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"MACD 122609","id":"c5d7a5f6-2924-46a6-8d04-1100a5088da9","savedPayload":{"position":{"x":40589.09169664543,"y":27787.555002280842},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 122609","id":"6c0c9bf0-90af-4497-b4fb-49b5872b1119"}}},{"type":"Data Product","name":"MACD 031016","id":"db37547e-f473-4dca-9bae-60fb37c724a5","savedPayload":{"position":{"x":40676.76137062555,"y":27807.472594093873},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 031016","id":"d1482dc0-e9f1-47ba-b75e-961fa914a53a"}}},{"type":"Data Product","name":"MACD 081709","id":"0ec41f8a-6170-439b-9513-7c4b2a835c6d","savedPayload":{"position":{"x":40761.86594350216,"y":27836.447055375374},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 081709","id":"683e6b29-9f82-4a8e-93eb-20ac0e81a750"}}},{"type":"Data Product","name":"MACD 245209","id":"03d654c7-5641-4408-bf15-54ee7203d80b","savedPayload":{"position":{"x":40843.47350168687,"y":27874.160297912516},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"MACD 245209","id":"47984765-8180-45cf-a9eb-f0a8b22d165d"}}},{"type":"Data Product","name":"Candles","id":"7b7c2f35-514c-4ad4-bdc5-7cb462020ac1","savedPayload":{"position":{"x":40917.71602191771,"y":27917.913249620826},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candles","id":"2443883b-6959-42a3-ae3b-ef3102ffcdcc"}}},{"type":"Data Product","name":"Volumes","id":"4b1fcdaf-3bf1-4bdb-973d-42facd0b7104","savedPayload":{"position":{"x":40986.24755380669,"y":27967.183543605785},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"3a43c6f3-bac0-404e-865f-822eb48c8660"}}},{"type":"Data Product","name":"Bollinger Channels","id":"6f3bbf18-00d5-4f5a-9c48-a7e5e73e72e2","savedPayload":{"position":{"x":41056.98651886182,"y":28030.330808475923},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Channels","id":"94bc3958-cc85-43a1-a178-103e84f42910"}}},{"type":"Data Product","name":"Bollinger Sub-Channels","id":"bbe5af35-1f9e-4a31-9b5a-47ee5999e97c","savedPayload":{"position":{"x":41118.83139724332,"y":28100.72015635104},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Bollinger Sub-Channels","id":"79ce9c05-8a4c-4b58-850f-288037acc702"}}},{"type":"Data Product","name":"External Signals","id":"4e208ac6-227a-4c6d-b548-df9a06a96f2a","savedPayload":{"position":{"x":41186.43383723706,"y":28204.23453473696},"targetPosition":{"x":40443.285556188,"y":28633.794640045882},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"External Signals","id":"29196db8-4c41-47ea-be7e-952cd9be9a0b"}}}],"id":"3c9e658e-9350-4b43-b95c-1dc9fbb7de7b","savedPayload":{"position":{"x":40443.26224709501,"y":28633.167630659722},"targetPosition":{"x":40822.15076821689,"y":29401.561072855002},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":5,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"922126c5-3b95-4c76-90ce-c85435c49624","savedPayload":{"position":{"x":40822.11022848205,"y":29401.54072506357},"targetPosition":{"x":41020.831778810294,"y":29782.397527992605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"79c82a1e-4c4e-4622-b762-4ccbfdac46b7","savedPayload":{"position":{"x":40905.79450582859,"y":29366.861625343896},"targetPosition":{"x":41020.831778810294,"y":29782.397527992605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Independent Data","name":"New Session Independent Data","id":"bf04ccea-266d-4115-b50e-fefdf29b873a"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.singleMarketData === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Single Market Data.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Independent Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Independent Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.singleMarketData)\n setup(templateClone, target, exchange, 'Exchange Data Products', 'singleMarketData')\n templateClone.payload.referenceParent = market\n\n return templateClone\n }\n}","id":"255fc8f9-413a-4334-b6f5-d944d57fb27c","savedPayload":{"position":{"x":41005.74599402126,"y":29352.874882327087},"targetPosition":{"x":41020.831778810294,"y":29782.397527992605},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"4dd2897c-d7e2-4fa2-a92f-4d0cf49a6370","savedPayload":{"position":{"x":41020.831778810294,"y":29782.397527992605},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Back WHB Session Reference","templateStructure":{"type":"Template Structure","name":"New Template Structure","sessionReferences":{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"169aa57f-d46b-4979-b8a2-df6ba21eabc6","savedPayload":{"position":{"x":40971.62547458223,"y":28704.67815778764},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"41351410-0495-4419-8a78-babed3a2f25c","savedPayload":{"position":{"x":40739.2805936536,"y":28612.68448755448},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"fc43d350-5a2e-4948-8279-6444a15b39ed","savedPayload":{"position":{"x":40648.47472250254,"y":28380.33960662585},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"8f8c543a-5add-460f-9767-06cc069e142b","savedPayload":{"position":{"x":40749.374350272024,"y":28158.088482315645},"targetPosition":{"x":40971.62547458223,"y":28380.33960662585},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"0497555c-1024-4c2c-8be4-9c8917bed11f","savedPayload":{"position":{"x":40971.62547458223,"y":28380.33960662585},"targetPosition":{"x":41034.51136563778,"y":28696.544935681453},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5d4fb545-1392-4651-8f54-32b3b0b2278f","savedPayload":{"position":{"x":41035.68589463498,"y":28694.595676926525},"targetPosition":{"x":41161.48169175592,"y":29327.013855736088},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"726cd3f8-cfce-4e06-8e13-f4b2523e6e57","savedPayload":{"position":{"x":41150.68955110353,"y":29333.57558229669},"targetPosition":{"x":41242.80309107263,"y":29753.114932007407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"d5bc03d5-baeb-4ab0-91a6-cc61d0122474","savedPayload":{"position":{"x":41238.6390319489,"y":29322.07575856782},"targetPosition":{"x":41242.80309107263,"y":29753.114932007407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Based Data","name":"New Session Based Data","id":"29ca14e5-dabe-470a-be64-ed7996bd1e55"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.sessionReferences === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Session Reference.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Based Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Based Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.sessionReferences)\n \n setup(templateClone, target, exchange, 'Exchange Sessions', 'sessionReferences')\n templateClone.singleMarketData.payload.referenceParent = market\n\n templateClone.templateType = 'Backtesting Session'\n return templateClone\n }\n}","id":"5201c9bb-45d3-4066-970d-56d13eb6905e","savedPayload":{"position":{"x":41338.85725778888,"y":29334.17800436677},"targetPosition":{"x":41242.80309107263,"y":29753.114932007407},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"caa968ef-9a38-4fb4-998f-cb7e27a3eedd","savedPayload":{"position":{"x":41242.80309107263,"y":29753.114932007407},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Paper WHB Session Reference","templateStructure":{"type":"Template Structure","name":"New Template Structure","sessionReferences":{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"fe43a58c-8d97-4f98-ba33-6328c1bcb7a7","savedPayload":{"position":{"x":41557.474267378886,"y":28704.538380895512},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"447096dc-d9b3-472d-985e-7810458651d2","savedPayload":{"position":{"x":41328.36437304013,"y":28614.669001956987},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"87f61b2b-cd47-42db-b8a8-2d2b84c30712","savedPayload":{"position":{"x":41238.701960314706,"y":28385.55910761823},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"fe0ed876-65d6-488c-8572-86708cd2f4b8","savedPayload":{"position":{"x":41328.657032916315,"y":28156.74187315566},"targetPosition":{"x":41557.474267378886,"y":28385.55910761823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"4844333d-4238-412b-b2f3-403d78d1aaa8","savedPayload":{"position":{"x":41557.474267378886,"y":28385.55910761823},"targetPosition":{"x":41536.37709492533,"y":28707.266395142844},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9bf71a35-9ee8-4679-89c7-e9894c3963cd","savedPayload":{"position":{"x":41538.15110500089,"y":28705.54204056541},"targetPosition":{"x":41495.97864513366,"y":29348.96944058102},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f7b51fbd-c90d-4b5a-9242-9de2a40f4733","savedPayload":{"position":{"x":41484.10196955473,"y":29353.17698581589},"targetPosition":{"x":41464.483993187765,"y":29782.288408469787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"b7adb316-4430-4933-80ef-c8e239a947fc","savedPayload":{"position":{"x":41572.017333796175,"y":29364.880169769665},"targetPosition":{"x":41464.483993187765,"y":29782.288408469787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Based Data","name":"New Session Based Data","id":"29ca14e5-dabe-470a-be64-ed7996bd1e55"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.sessionReferences === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Session Reference.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Based Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Based Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.sessionReferences)\n \n setup(templateClone, target, exchange, 'Exchange Sessions', 'sessionReferences')\n templateClone.singleMarketData.payload.referenceParent = market\n\n templateClone.templateType = 'Paper Trading Session'\n return templateClone\n }\n}","id":"09fd8aa3-006f-4c13-8084-78da7f7ed4ca","savedPayload":{"position":{"x":41665.70064649673,"y":29402.48304995962},"targetPosition":{"x":41464.483993187765,"y":29782.288408469787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ce8531c2-42df-4c54-b4ea-48d7ca9861e5","savedPayload":{"position":{"x":41464.483993187765,"y":29782.288408469787},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Live WHB Session Reference","templateStructure":{"type":"Template Structure","name":"New Template Structure","sessionReferences":{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"22bcc102-5751-444e-a609-bf050743c987","savedPayload":{"position":{"x":42124.2954678251,"y":28863.166820214137},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"a97553e6-85bd-4f7d-b7a3-6235e540e1a8","savedPayload":{"position":{"x":41899.82203310804,"y":28765.34236295704},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"6adfe7ca-0353-4506-a1ac-09bd6b6a7c86","savedPayload":{"position":{"x":41803.41381185934,"y":28540.86892823998},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"9136e76e-e3e4-48c6-a6bd-e1a64176c7a3","savedPayload":{"position":{"x":41897.44019113757,"y":28314.01365155245},"targetPosition":{"x":42124.2954678251,"y":28540.86892823998},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"f267f52b-25be-4822-90b7-88bf3121d009","savedPayload":{"position":{"x":42124.2954678251,"y":28540.86892823998},"targetPosition":{"x":42020.66210112073,"y":28846.1629818523},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a095996a-c30e-45e8-8598-7b6010b2095b","savedPayload":{"position":{"x":42020.66210112073,"y":28846.1629818523},"targetPosition":{"x":41813.395367712,"y":29456.751089076944},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"9df1f12f-0030-4c41-98e2-d07482ff8d22","savedPayload":{"position":{"x":41801.24294012174,"y":29458.496306992216},"targetPosition":{"x":41671.206844012355,"y":29867.893833612092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"b5554d40-5014-45ec-b996-e74e05c5e872","savedPayload":{"position":{"x":41883.150217622504,"y":29492.554034280187},"targetPosition":{"x":41671.206844012355,"y":29867.893833612092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Based Data","name":"New Session Based Data","id":"29ca14e5-dabe-470a-be64-ed7996bd1e55"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.sessionReferences === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Session Reference.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Based Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Based Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.sessionReferences)\n \n setup(templateClone, target, exchange, 'Exchange Sessions', 'sessionReferences')\n templateClone.singleMarketData.payload.referenceParent = market\n\n templateClone.templateType = 'Live Trading Session'\n return templateClone\n }\n}","id":"ade4b7d5-1066-43fa-b6af-e2d1213c4d14","savedPayload":{"position":{"x":41963.9430817576,"y":29553.165670191996},"targetPosition":{"x":41671.206844012355,"y":29867.893833612092},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3e9a2343-49bb-43d5-adda-0072b01313f1","savedPayload":{"position":{"x":41671.206844012355,"y":29867.893833612092},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Forward WHB Session Reference","templateStructure":{"type":"Template Structure","name":"New Template Structure","sessionReferences":{"type":"Session Reference","name":" ","singleMarketData":{"type":"Single Market Data","name":"","dataProducts":[{"type":"Data Product","name":"Simulation","id":"b03fa95d-fb4d-4cef-9590-70bcf0034123","savedPayload":{"position":{"x":42492.63963403888,"y":28500.7397102676},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Simulation","id":"a3201051-46ba-4a92-aef3-a6c787b771fd"}}},{"type":"Data Product","name":"Conditions","id":"352b1a8a-1d74-44ff-b9f3-411f337db931","savedPayload":{"position":{"x":42710.36396962775,"y":28492.07047492605},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Conditions","id":"7fb3e69f-4343-47f8-ab7b-6fcf8a805fc0"}}},{"type":"Data Product","name":"Strategies","id":"c7ed2f21-cd86-44fe-a946-1dc00e5f8fb3","savedPayload":{"position":{"x":42891.7169300037,"y":28613.377753949273},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Strategies","id":"36051f0f-5161-48a6-9d13-eb1766b5566b"}}},{"type":"Data Product","name":"Trades","id":"13d4f731-4ee0-4a24-810a-f4760432e33e","savedPayload":{"position":{"x":42967.139262708275,"y":28818.147267745622},"targetPosition":{"x":42614.716102802915,"y":28831.67823199434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Trades","id":"a26dc922-ca08-43ef-983e-029b76f39163"}}}],"id":"a70a92df-4abe-421d-92b2-ef70a756441c","savedPayload":{"position":{"x":42636.198275976094,"y":28799.555013396635},"targetPosition":{"x":42436.14135357761,"y":29099.04809298164},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"3a96fe18-f607-4a4e-9921-31b507475885","savedPayload":{"position":{"x":42438.1614413147,"y":29100.30420086799},"targetPosition":{"x":42080.37565816827,"y":29635.83788162232},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"f6114149-90fb-45a7-a42a-6ab052a9980a","savedPayload":{"position":{"x":42080.29670385472,"y":29642.312525489902},"targetPosition":{"x":41848.7121652879,"y":30004.08670836992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"315b67c6-84cf-4370-a4fd-a8209c2532c9","savedPayload":{"position":{"x":42150.614481005076,"y":29696.41150163782},"targetPosition":{"x":41848.7121652879,"y":30004.08670836992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Based Data","name":"New Session Based Data","id":"29ca14e5-dabe-470a-be64-ed7996bd1e55"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.sessionReferences === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Session Reference.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Based Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Based Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.sessionReferences)\n \n setup(templateClone, target, exchange, 'Exchange Sessions', 'sessionReferences')\n templateClone.singleMarketData.payload.referenceParent = market\n\n templateClone.templateType = 'Forward Testing Session'\n return templateClone\n }\n}","id":"8635fe81-b9b5-4a95-a6d0-950584c2787c","savedPayload":{"position":{"x":42212.98752519118,"y":29775.91487321235},"targetPosition":{"x":41848.7121652879,"y":30004.08670836992},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"3bb7924d-49b4-4748-83f5-5067dd8f3ef5","savedPayload":{"position":{"x":41848.7121652879,"y":30004.08670836992},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Testing Environment Task Manager","templateStructure":{"type":"Template Structure","name":"New Template Structure","taskManagers":{"type":"Task Manager","name":"Paper & Backtesting Sessions","tasks":[{"type":"Task","name":"Paper Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Paper Trading Session","name":"Paper WHB","code":"{\n\"folderName\": \"Paper-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"7d2a4605-5be7-4b12-9761-0087ce656080","savedPayload":{"position":{"x":43314.347355679805,"y":27886.180495266573},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0\n}","id":"46c16e25-d21d-4ca8-a528-ae7bf85e9d3f","savedPayload":{"position":{"x":43270.11105487198,"y":27610.06167977048},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"e645ba22-2ba3-4c87-9d62-748477e055dc","savedPayload":{"position":{"x":43458.610110666305,"y":27403.132156057905},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"9b0e2fa1-fb9e-4854-9657-7157843a0a56","savedPayload":{"position":{"x":43737.762993615695,"y":27421.44478260165},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"072fc7e2-ca96-4c0a-963c-d8697f26a12c","savedPayload":{"position":{"x":43897.65037204082,"y":27651.219207475497},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"28139c87-d8fb-49e6-92ce-f826f0ef32d3","savedPayload":{"position":{"x":43817.740726622455,"y":27919.157103391895},"targetPosition":{"x":43579.28928007096,"y":27702.1138119903},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"0e80ef27-72f6-42e9-98bd-2266ad8d0902","savedPayload":{"position":{"x":43579.28928007096,"y":27702.1138119903},"targetPosition":{"x":43558.15104818431,"y":28023.96596801331},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"43096f38-2d07-4536-a8de-c1d6dc52e5af","savedPayload":{"position":{"x":43558.15104818431,"y":28023.96596801331},"targetPosition":{"x":43537.2392391117,"y":28345.180697797186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"h"},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"c169326d-c842-452b-a9b7-e8658e31dcd4","savedPayload":{"position":{"x":43826.45361245783,"y":28203.054822784812},"targetPosition":{"x":43537.2392391117,"y":28345.180697797186},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"67daf900-abb9-4d94-b86b-85ec5820c311","savedPayload":{"position":{"x":43537.2392391117,"y":28345.180697797186},"targetPosition":{"x":43358.19739378843,"y":28612.949684445317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"e1d9b766-0b00-478d-a179-b4d030811a17","savedPayload":{"position":{"x":43358.19739378843,"y":28612.949684445317},"targetPosition":{"x":43148.07377003864,"y":28927.454634128168},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"10914881-2af7-4326-9a48-eb50a5b83b21","savedPayload":{"position":{"x":43148.247239305325,"y":28927.248338917063},"targetPosition":{"x":42790.1695410171,"y":29463.444388464814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Backtesting WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Backtesting Session","name":"Back WHB","code":"{\n\"folderName\": \"Back-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}","id":"58289171-cb5f-482c-b5f6-445eb6dd33bf","savedPayload":{"position":{"x":44036.02698339722,"y":28363.366059104726},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{}","id":"59fd49b3-e491-4029-9dae-12cf0a0e48e5","savedPayload":{"position":{"x":44135.88796016322,"y":28102.124337260877},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"initialDatetime\": \"2019-01-01\",\n\"finalDatetime\": \"2020-12-31\"\n}","id":"7bd10192-7a52-4995-98aa-e16129827ca8","savedPayload":{"position":{"x":44402.36557610739,"y":28017.15274644697},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-hs\"\n}","id":"59764b94-aa9f-462a-be17-5b110e18609a","savedPayload":{"position":{"x":44635.11601984425,"y":28172.691104702066},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"f72c1a53-9e2e-49d5-a07d-90d7ab53c6cf","savedPayload":{"position":{"x":44658.68970970164,"y":28451.428632796116},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"3f249546-8932-42c0-a779-b4142cb03d17","savedPayload":{"position":{"x":44455.41819917701,"y":28643.69425984277},"targetPosition":{"x":44357.202378679365,"y":28336.579675132554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"2c70a07e-67d1-4157-8524-448842327782","savedPayload":{"position":{"x":44357.202378679365,"y":28336.579675132554},"targetPosition":{"x":44178.11719301108,"y":28604.57168539026},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"58ad6731-33c6-4a8f-8bfd-fbd40d7aa8d0","savedPayload":{"position":{"x":44178.11719301108,"y":28604.57168539026},"targetPosition":{"x":43999.15712266918,"y":28872.29629503109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","id":"3a49b8dd-94b8-4b8f-9c0d-a140ba4526a8","savedPayload":{"position":{"x":44320.91170982664,"y":28893.613213044515},"targetPosition":{"x":43999.15712266918,"y":28872.29629503109},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"649950c4-79f9-4d35-ba72-a96d67fb9278","savedPayload":{"position":{"x":43999.15712266918,"y":28872.29629503109},"targetPosition":{"x":43710.28876756263,"y":29014.513498728833},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"ef610792-0e38-40b6-8d28-41b6b8d76cb7","savedPayload":{"position":{"x":43710.28876756263,"y":29014.513498728833},"targetPosition":{"x":43370.93380625043,"y":29181.70054572794},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"13ceeef0-8a9f-4da9-a4ce-43bc32323c47","savedPayload":{"position":{"x":43368.53019880899,"y":29178.408421637265},"targetPosition":{"x":42790.1695410171,"y":29463.444388464814},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"e4b004e5-d078-435b-896e-bcbec6684a4c","savedPayload":{"position":{"x":42623.940516318515,"y":29608.370805879204},"targetPosition":{"x":42301.51227538709,"y":29890.981539114837},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"d1632ba7-4823-4174-9caf-8979360c7399","savedPayload":{"position":{"x":42302.25689009212,"y":29892.09302599012},"targetPosition":{"x":41984.91102899168,"y":30181.583518700623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"cce4bcd5-fa0e-4dda-82a7-28cbf76432a4","savedPayload":{"position":{"x":42356.19168711693,"y":29962.55535339499},"targetPosition":{"x":41984.91102899168,"y":30181.583518700623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Environment","name":"New Testing Environment","id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.taskManagers === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Task Manager.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Testing Environment') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Testing Environment.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.taskManagers)\n \n setup(templateClone, target, exchange, 'Exchange Tasks', 'taskManagers')\n for (let i = 0; i < templateClone.tasks.length; i++) {\n let task = templateClone.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n process.marketReference.payload.referenceParent = market\n }\n if (process.session !== undefined) {\n if (process.session.parameters !== undefined) {\n if (process.session.parameters.baseAsset !== undefined) {\n findExchangeAccountAsset(process.session.parameters.baseAsset, superAction.payload.parentNode.baseAsset)\n }\n if (process.session.parameters.quotedAsset !== undefined) {\n findExchangeAccountAsset(process.session.parameters.quotedAsset, superAction.payload.parentNode.quotedAsset)\n }\n\n function findExchangeAccountAsset(taskAsset, marketAsset) {\n for (let k = 0; k < superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts.length; k++) {\n let userAccount = superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts[k]\n let found = false\n if (userAccount.userAssets !== undefined) {\n for (let m = 0; m < userAccount.userAssets.assets.length; m++) {\n let asset = userAccount.userAssets.assets[m]\n if (asset.payload.referenceParent !== undefined) {\n if (asset.payload.referenceParent.id === marketAsset.payload.referenceParent.id) {\n taskAsset.payload.referenceParent = asset\n found = true\n break\n }\n }\n }\n }\n if (found === true) { break }\n }\n }\n }\n }\n }\n }\n }\n }\n\n return templateClone\n }\n}","id":"49b39b49-1d4c-405c-a9f8-955e0ecc9a71","savedPayload":{"position":{"x":42395.86920633761,"y":30055.540991187678},"targetPosition":{"x":41984.91102899168,"y":30181.583518700623},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"414cdf9f-dc5b-4c23-ac5c-0e7a098b2143","savedPayload":{"position":{"x":41984.91102899168,"y":30181.583518700623},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Production Environment Task Manager","templateStructure":{"type":"Template Structure","name":"New Template Structure","taskManagers":{"type":"Task Manager","name":"Fwd & Live Sessions","tasks":[{"type":"Task","name":"Fwd Testing WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Forward Testing Session","name":"Fwd WHB","code":"{\n\"folderName\": \"Fwd-WHB\",\n\"balancePercentage\": 10\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"19a13131-9554-43ef-860b-d994b9804a0e","savedPayload":{"position":{"x":43949.02209402912,"y":28514.744495850893},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0\n}","id":"00ee3b70-7e94-4b71-aa64-05f6a699b080","savedPayload":{"position":{"x":43977.81112139866,"y":28236.59236923798},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"8d94c05a-b82d-4fd9-8552-dcf19fb01ba1","savedPayload":{"position":{"x":44213.44333414086,"y":28085.505562610808},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"e6e657e8-1049-40e7-aeec-b57429e34a59","savedPayload":{"position":{"x":44478.339217712455,"y":28175.492208004023},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"57de0f1c-8cef-462a-bb88-764cfec67516","savedPayload":{"position":{"x":44573.309327218114,"y":28438.61215850976},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"70c32855-5085-4e45-be3c-cfdb212ef266","savedPayload":{"position":{"x":44426.715336862566,"y":28676.91519870268},"targetPosition":{"x":44252.09762841825,"y":28406.000583471792},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"c5989e16-cde7-414d-9296-e28d805e216a","savedPayload":{"position":{"x":44252.09762841825,"y":28406.000583471792},"targetPosition":{"x":44148.7422061206,"y":28711.062917859083},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"47651cad-aee5-405e-9d40-b4787c49d09e","savedPayload":{"position":{"x":44148.7422061206,"y":28711.062917859083},"targetPosition":{"x":44045.11308194365,"y":29016.158202849896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"5677d06d-c674-476d-a9a9-fc231616f478","savedPayload":{"position":{"x":44677.4538514425,"y":28891.11030273736},"targetPosition":{"x":44361.54848844125,"y":28953.513309627917},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"ac49275e-4fe1-480f-be02-37665547a777","savedPayload":{"position":{"x":44361.54848844125,"y":28953.513309627917},"targetPosition":{"x":44045.11308194365,"y":29016.158202849896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"57deee32-22b7-4eec-8c9a-9b971d1aeb1a","savedPayload":{"position":{"x":44045.11308194365,"y":29016.158202849896},"targetPosition":{"x":43803.03273271357,"y":29228.27863694877},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"8910dee0-b699-4a35-85ee-a2b3bbdac18e","savedPayload":{"position":{"x":43803.03273271357,"y":29228.27863694877},"targetPosition":{"x":43518.575577642056,"y":29477.69782587427},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"70fd8717-56d5-4ad8-b6ed-3050decedf19","savedPayload":{"position":{"x":43511.58765394764,"y":29481.161545691997},"targetPosition":{"x":43028.08397698985,"y":29905.30941876938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Live Trading WHB","bot":{"type":"Trading Bot Instance","code":" {}","processes":[{"type":"Trading Process Instance","name":"Multi-Period","code":" {\n \"process\": \"Multi-Period\"\n }","session":{"type":"Live Trading Session","name":"Live Trading WHB","code":"{\n\"folderName\": \"Live-WHB\"\n}","parameters":{"type":"Parameters","name":"Parameters","baseAsset":{"type":"Base Asset","name":"","code":"{ \n\"initialBalance\": 0.01,\n\"minimumBalance\": 0.005\n}","id":"1c0d2a17-cfd5-4eb4-8322-388ad7472fea","savedPayload":{"position":{"x":44511.69115776187,"y":29163.28766291385},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"quotedAsset":{"type":"Quoted Asset","name":"","code":"{\n\"initialBalance\": 0\n}","id":"43d84134-6e65-4ba9-93fb-0d8cb705e90a","savedPayload":{"position":{"x":44675.41944631209,"y":28937.14672767146},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeRange":{"type":"Time Range","name":"New Time Range","code":"{\n\"finalDatetime\": \"2020-12-31\"\n}","id":"16b7de55-dd83-4d7b-a1f8-45f28200a6f6","savedPayload":{"position":{"x":44954.1838102591,"y":28924.144732198314},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrame":{"type":"Time Frame","name":"New Time Frame","code":"{\n\"value\": \"01-min\"\n}","id":"8c2d281c-7cd7-4f3e-8411-777eaec18ed5","savedPayload":{"position":{"x":45138.344553177376,"y":29134.142576562248},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"slippage":{"type":"Slippage","name":"New Slippage","code":"{\n\"positionRate\": 0.1,\n\"stopLoss\": 0.1,\n\"takeProfit\": 0.1\n}","id":"dc21103a-37a9-4c67-a456-a3d35c14e9ad","savedPayload":{"position":{"x":45089.04722701449,"y":29408.829825358807},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"feeStructure":{"type":"Fee Structure","name":"New Fee Structure","code":"{\n\"maker\": 0.1,\n\"taker\": 0.1\n}","id":"c0a305e0-3a8b-428e-b005-117bd35270dc","savedPayload":{"position":{"x":44843.50938494748,"y":29541.60389632369},"targetPosition":{"x":44827.797086714076,"y":29220.397958400925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"325c8283-9e06-4711-9791-49994e1eb24f","savedPayload":{"position":{"x":44827.797086714076,"y":29220.397958400925},"targetPosition":{"x":44586.3641707821,"y":29432.324069027018},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e70a2d0f-329a-410e-b3ed-fbf1968cac32","savedPayload":{"position":{"x":44586.3641707821,"y":29432.324069027018},"targetPosition":{"x":44344.60660428931,"y":29644.1656163963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Trading System","name":"WHB v.2 (BTC/USDT)","id":"a239a374-497a-43f9-8382-5277410b1c2d"}}},"marketReference":{"type":"Market Reference","name":"","keyInstance":{"type":"Key Instance","name":"","id":"3fa5a1c3-ec84-4335-b318-7ed4c6e412a9","savedPayload":{"position":{"x":44953.33353749047,"y":29851.30281583057},"targetPosition":{"x":44649.290571908976,"y":29747.76088866544},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Exchange Account Key","name":"Key 1","id":"d2893836-c3d5-449f-a132-971542ef0c0d"}}},"id":"a6c24af9-77fd-4179-bb83-22928acce259","savedPayload":{"position":{"x":44649.290571908976,"y":29747.76088866544},"targetPosition":{"x":44344.60660428931,"y":29644.1656163963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"6053e090-2c8e-4c1b-8eb4-eb3032f5cb9d","savedPayload":{"position":{"x":44344.60660428931,"y":29644.1656163963},"targetPosition":{"x":44029.65068525114,"y":29706.589257726668},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period","id":"6f95cc67-bad0-48dc-bb82-0075c43cb202"}}}],"id":"67b86977-56e8-4cb9-aa4f-0ae1b8d6d9f3","savedPayload":{"position":{"x":44029.65068525114,"y":29706.589257726668},"targetPosition":{"x":43658.77696384793,"y":29780.18960006669},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8b8401d2-fbd3-4514-9a24-6236941f8572","savedPayload":{"position":{"x":43658.94710506227,"y":29780.009588673463},"targetPosition":{"x":43028.08397698985,"y":29905.30941876938},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"122a1f16-06c2-4e63-9c9b-0b1b6532ef6e","savedPayload":{"position":{"x":42836.228026148114,"y":30000.0708266346},"targetPosition":{"x":42451.60692532848,"y":30189.593514413704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"l"}}},"id":"7154ffab-e458-47a9-98ab-716d7db899c2","savedPayload":{"position":{"x":42451.80418098707,"y":30190.910874327004},"targetPosition":{"x":42070.3251986198,"y":30388.375202221978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"efbaa91d-f097-4fda-b373-8b9394dae215","savedPayload":{"position":{"x":42485.63987682533,"y":30272.955559461832},"targetPosition":{"x":42070.3251986198,"y":30388.375202221978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Production Environment","name":"New Production Environment","id":"32656457-f603-416a-b805-546642094dc4"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.taskManagers === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Task Manager.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Production Environment') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Production Environment.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.taskManagers)\n\n setup(templateClone, target, exchange, 'Exchange Tasks', 'taskManagers')\n for (let i = 0; i < templateClone.tasks.length; i++) {\n let task = templateClone.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n process.marketReference.payload.referenceParent = market\n }\n if (process.marketReference.keyInstance !== undefined) {\n process.marketReference.keyInstance.payload.referenceParent = key\n }\n if (process.session !== undefined) {\n if (process.session.parameters !== undefined) {\n if (process.session.parameters.baseAsset !== undefined) {\n findExchangeAccountAsset(process.session.parameters.baseAsset, superAction.payload.parentNode.baseAsset)\n }\n if (process.session.parameters.quotedAsset !== undefined) {\n findExchangeAccountAsset(process.session.parameters.quotedAsset, superAction.payload.parentNode.quotedAsset)\n }\n\n function findExchangeAccountAsset(taskAsset, marketAsset) {\n for (let k = 0; k < superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts.length; k++) {\n let userAccount = superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts[k]\n let found = false\n if (userAccount.userAssets !== undefined) {\n for (let m = 0; m < userAccount.userAssets.assets.length; m++) {\n let asset = userAccount.userAssets.assets[m]\n if (asset.payload.referenceParent !== undefined) {\n if (asset.payload.referenceParent.id === marketAsset.payload.referenceParent.id) {\n taskAsset.payload.referenceParent = asset\n found = true\n break\n }\n }\n }\n }\n if (found === true) { break }\n }\n }\n }\n }\n }\n }\n }\n }\n\n return templateClone\n }\n}","id":"7504b088-dc0b-4a67-b673-150524eb3430","savedPayload":{"position":{"x":42499.893759525534,"y":30373.110584112277},"targetPosition":{"x":42070.3251986198,"y":30388.375202221978},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"aaef47a3-030f-4bba-a297-72973f84a6a7","savedPayload":{"position":{"x":42070.3251986198,"y":30388.375202221978},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Masters Data Mining Tasks","templateStructure":{"type":"Template Structure","name":"New Template Structure","taskManagers":{"type":"Task Manager","name":"Masters","tasks":[{"type":"Task","name":"OHKCVs","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","code":" {\n \"repo\": \"Exchange-Raw-Data-Sensor-Bot\",\n \"startDate\": \"2015-01-01\"\n }","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"fa969ad9-f967-4c42-9a7b-e3ca5c53a2a4","savedPayload":{"position":{"x":43548.31869375691,"y":28832.74871320079},"targetPosition":{"x":43468.23581599018,"y":29144.465623065378},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"7321618d-f188-4909-ae51-bff16e83e85c","savedPayload":{"position":{"x":43468.23581599018,"y":29144.465623065378},"targetPosition":{"x":43388.21989927531,"y":29456.2064563822},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"66324e06-a787-4389-ba0a-f6158224532e","savedPayload":{"position":{"x":43388.21989927531,"y":29456.2064563822},"targetPosition":{"x":43308.31846626916,"y":29768.295924463717},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"02b2b5ef-8fbb-4234-847b-9e9381e39e40","savedPayload":{"position":{"x":43308.31846626916,"y":29768.295924463717},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles & Volumes","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","code":" {\n \"repo\": \"Candles-Volumes-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"65a2cdb9-af06-458b-ae81-52a922d32874","savedPayload":{"position":{"x":44044.56919550187,"y":29070.680669232206},"targetPosition":{"x":43907.75296865664,"y":29362.11317316699},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"fe3e9758-12d8-46da-a7e9-968a340f0ae5","savedPayload":{"position":{"x":43907.75296865664,"y":29362.11317316699},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"5ba98b0e-e71d-4c91-a3b2-ca98f7bf3e1b","savedPayload":{"position":{"x":44562.98482395708,"y":29102.272964030177},"targetPosition":{"x":44167.05042758576,"y":29377.81676557684},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"e3fe5518-65d4-4413-9d1f-624025766f97","savedPayload":{"position":{"x":44167.05042758576,"y":29377.81676557684},"targetPosition":{"x":43770.940957510276,"y":29653.49333725624},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"80415df6-6aca-42d5-b91d-6d5d6326f72f","savedPayload":{"position":{"x":43770.940957510276,"y":29653.49333725624},"targetPosition":{"x":43563.27921096938,"y":29899.761189375113},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a2a8253d-ea54-431a-a623-627a9d80c96d","savedPayload":{"position":{"x":43563.27921096938,"y":29899.761189375113},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Channels","bot":{"type":"Indicator Bot Instance","name":"Candles Channels","code":"{}","processes":[{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"cb0330ef-a176-4e88-b09e-17c5c0ed8893","savedPayload":{"position":{"x":44529.43831259792,"y":29591.160241515347},"targetPosition":{"x":44279.57761586809,"y":29794.164895509643},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"606c5e74-aa46-47d9-82c9-e1ff4a627ebe","savedPayload":{"position":{"x":44279.57761586809,"y":29794.164895509643},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"2ab8c00c-8e15-4bdc-87fa-291c8d4edadb"}}},{"type":"Indicator Process Instance","name":"Candle Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"de1108b1-a773-4d54-b32b-b2931011f115","savedPayload":{"position":{"x":44982.702734016326,"y":29844.505580086603},"targetPosition":{"x":44506.37336418851,"y":29920.77047196001},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"6c0075a2-e741-45b7-8b6c-66d2faf95ad8","savedPayload":{"position":{"x":44506.37336418851,"y":29920.77047196001},"targetPosition":{"x":44029.76414901768,"y":29997.129510062663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"0de6dd1f-5bca-4f66-a5db-cd068dd4190f"}}}],"id":"d29785c9-1789-45f5-88a1-17fa13a383bb","savedPayload":{"position":{"x":44029.76414901768,"y":29997.129510062663},"targetPosition":{"x":43735.659869568226,"y":30128.724866806584},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"34ef19e0-5e75-4108-86e5-276f213deea5","savedPayload":{"position":{"x":43735.659869568226,"y":30128.724866806584},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Bollinger Bands & Percentage Bandwidth","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","code":" {\n \"repo\": \"Bollinger-Bands-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"936109e1-9d5f-4738-9eee-26e98c6675a9","savedPayload":{"position":{"x":44740.19992947904,"y":30269.709710790212},"targetPosition":{"x":44426.92346740986,"y":30344.087153351575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"69c2cfe4-3a79-45d0-8742-ff3f368431f6","savedPayload":{"position":{"x":44426.92346740986,"y":30344.087153351575},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"e598ee86-1e18-4aa1-95c2-64aaf66776ca"}}},{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"75d8a16d-5ff3-4771-b32a-bf5ea071e7fc","savedPayload":{"position":{"x":45038.495695074605,"y":30694.038844894512},"targetPosition":{"x":44576.2033062764,"y":30556.27191701111},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c437054a-3447-486b-ab42-b267b800f96a","savedPayload":{"position":{"x":44576.2033062764,"y":30556.27191701111},"targetPosition":{"x":44113.681364955875,"y":30418.40946263666},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"941a0543-0cc0-4a5d-a782-728d2835c100"}}}],"id":"9604d5b6-af02-4ac3-91aa-fa82dcd316bf","savedPayload":{"position":{"x":44113.681364955875,"y":30418.40946263666},"targetPosition":{"x":43791.5644814685,"y":30409.41652660318},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"ed9d924d-7a8b-46da-a4e9-eb121329fe49","savedPayload":{"position":{"x":43791.5644814685,"y":30409.41652660318},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Channels & Sub-Channels","bot":{"type":"Indicator Bot Instance","name":"Bollinger Channels","code":" {\n \"repo\": \"Bollinger-Channels-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"6e4bd29a-ffe6-4bbd-a114-62a0efe82a12","savedPayload":{"position":{"x":44634.8713858913,"y":30972.647789916467},"targetPosition":{"x":44320.40783090555,"y":30903.87226015812},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"b3c5ca8e-cc9d-4662-96cb-82d7c5801f67","savedPayload":{"position":{"x":44320.40783090555,"y":30903.87226015812},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"28be432d-80ca-46b3-859a-55541e24b2b4"}}},{"type":"Indicator Process Instance","name":"Bollinger Channels Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"d6995a0d-dffd-4213-b159-1919fa35f1b8","savedPayload":{"position":{"x":44719.2935084921,"y":31484.844997094602},"targetPosition":{"x":44362.66897516384,"y":31160.069974503385},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"d640b042-3b50-4f02-961a-9f4e9aab1015","savedPayload":{"position":{"x":44362.66897516384,"y":31160.069974503385},"targetPosition":{"x":44005.998383917504,"y":30835.000935669093},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":4,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"bc15b49d-4547-4bac-a28b-193eb0158fe3"}}}],"id":"88c5bffa-e658-4a99-89b3-b3b03d40d2e6","savedPayload":{"position":{"x":44005.998383917504,"y":30835.000935669093},"targetPosition":{"x":43719.93790732384,"y":30686.895169007028},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"10972cbd-be85-4344-bf34-8aab4dc3a23b","savedPayload":{"position":{"x":43719.93790732384,"y":30686.895169007028},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},{"type":"Task","name":"Webhooks","bot":{"type":"Sensor Bot Instance","name":"Webhooks","code":" {\n \"repo\": \"Webhooks-Sensor-Bot\"\n }","processes":[{"type":"Sensor Process Instance","name":"Webhooks Check-Webhook","marketReference":{"type":"Market Reference","name":"Binance BTC/USDT","id":"2ef284e2-813b-422b-91b1-fd9f4a3289dc","savedPayload":{"position":{"x":41234.40772073858,"y":30225.096264588887},"targetPosition":{"x":40812.801769173064,"y":30219.066258020608},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"5489751f-5ce4-40d0-9854-5bcfdc810269"}}},"id":"4b5cf18d-cd45-4a96-9117-8d5d7781b0ab","savedPayload":{"position":{"x":43921.27648533482,"y":31421.11867904632},"targetPosition":{"x":43727.95100474325,"y":31163.712277360213},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Check-Webhook","id":"69f37820-ab16-4e19-bfd8-386dd6e249a3"}}}],"id":"79548414-ae13-4e0f-99b6-fff96171bbaf","savedPayload":{"position":{"x":43727.95100474325,"y":31163.712277360213},"targetPosition":{"x":43534.654105285146,"y":30905.972976263627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"5aa3a8bc-9fda-4e11-a56d-5655b148bfa7","savedPayload":{"position":{"x":43534.654105285146,"y":30905.972976263627},"targetPosition":{"x":43148.58401662978,"y":30391.403000963473},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"8e0023df-5beb-4187-a53b-908c363861f9","savedPayload":{"position":{"x":42939.58499535419,"y":30431.842194743767},"targetPosition":{"x":42518.97936189171,"y":30515.331663765726},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},"id":"930ad389-2e02-405d-a608-628df967e702","savedPayload":{"position":{"x":42518.97462847446,"y":30517.896529713435},"targetPosition":{"x":42099.4330184744,"y":30609.935716669745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"216101a4-697c-41c6-989c-a5f8f181c624","savedPayload":{"position":{"x":42530.53521902973,"y":30605.88069694945},"targetPosition":{"x":42099.4330184744,"y":30609.935716669745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mining","name":"New Data Mining","id":"7449a608-32ca-4285-94d1-c96791e2817f"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.taskManagers === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Task Manager.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Data Mining') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Data Mining.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.taskManagers)\n \n setup(templateClone, target, exchange, 'Exchange Tasks', 'taskManagers')\n for (let i = 0; i < templateClone.tasks.length; i++) {\n let task = templateClone.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n process.marketReference.payload.referenceParent = market\n }\n }\n }\n }\n }\n\n return templateClone\n }\n}","id":"c1cbecc9-8340-4435-a0ab-140334ba104d","savedPayload":{"position":{"x":42518.29306315731,"y":30706.203335424394},"targetPosition":{"x":42099.4330184744,"y":30609.935716669745},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"ddd80520-a052-464b-a7b8-23b72387086f","savedPayload":{"position":{"x":42099.4330184744,"y":30609.935716669745},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Sparta Data Mining Tasks","templateStructure":{"type":"Template Structure","name":"New Template Structure","taskManagers":{"type":"Task Manager","name":"Sparta","tasks":[{"type":"Task","name":"SMA","bot":{"type":"Indicator Bot Instance","name":"SMA","code":" {\n\"repo\": \"SMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"SMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"592304dd-b412-4f42-9f24-1c2b6305538a","savedPayload":{"position":{"x":44071.61797125626,"y":29269.179122287296},"targetPosition":{"x":44017.22604407985,"y":29586.166432086655},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"4829d508-b32b-402c-8d27-4493549196b5","savedPayload":{"position":{"x":44017.22604407985,"y":29586.166432086655},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"SMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4de8af37-754b-4178-9960-49f8dd9fea12","savedPayload":{"position":{"x":45168.8488344655,"y":29458.147255078686},"targetPosition":{"x":44565.86589926591,"y":29680.585441818144},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"5f34959e-a63c-4298-8323-a16f75e23431","savedPayload":{"position":{"x":44565.86589926591,"y":29680.585441818144},"targetPosition":{"x":43962.84190684965,"y":29903.09502706654},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"333ae5d7-7ec1-4f08-b206-91e3b4f2c99f"}}}],"id":"6db29c31-152b-472a-852e-0e4a36bec524","savedPayload":{"position":{"x":43962.84190684965,"y":29903.09502706654},"targetPosition":{"x":43551.90647643782,"y":30397.266512500442},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"20c34f88-6b58-474b-b69d-02712765c0db","savedPayload":{"position":{"x":43551.90647643782,"y":30397.266512500442},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","code":" {\n\"repo\": \"EMA-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"64c7ca91-01ce-4dab-8b29-7cfa8e1f19a4","savedPayload":{"position":{"x":44848.06740265459,"y":30126.954299288456},"targetPosition":{"x":44617.64305938516,"y":30351.280902615003},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"31761ef4-c98b-4657-a37f-652eff5340ea","savedPayload":{"position":{"x":44617.64305938516,"y":30351.280902615003},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"7610e87b-a8c3-475c-a44f-665e26614ad8","savedPayload":{"position":{"x":45624.60027321795,"y":30924.208529781736},"targetPosition":{"x":45005.977709353945,"y":30749.876937252106},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"c4d61b48-9c23-47f1-937b-1729767a26f6","savedPayload":{"position":{"x":45005.977709353945,"y":30749.876937252106},"targetPosition":{"x":44387.27143213535,"y":30575.564915785017},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"34656b7b-826e-4ebd-943a-407d8c91ea24","savedPayload":{"position":{"x":44387.27143213535,"y":30575.564915785017},"targetPosition":{"x":43764.266809147426,"y":30733.667438768847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"28be18c7-c387-435e-ae7d-dfeca201bce5","savedPayload":{"position":{"x":43764.266809147426,"y":30733.667438768847},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"MACD","bot":{"type":"Indicator Bot Instance","name":"MACD","code":" {\n\"repo\": \"MACD-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"MACD Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"4f7ed8bc-c0b7-4930-80c3-67c7d5378066","savedPayload":{"position":{"x":44971.81020849867,"y":31276.620146946167},"targetPosition":{"x":44653.49004123155,"y":31322.55467880252},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"9cc4175f-28ad-4307-a8d6-0df303a02be1","savedPayload":{"position":{"x":44653.49004123155,"y":31322.55467880252},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"44019efe-950a-4eec-a546-cd2ee26818b9"}}},{"type":"Indicator Process Instance","name":"MACD Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"3c7ff3c1-be17-4c7d-ba0a-1cc66a41970b","savedPayload":{"position":{"x":45131.12724051729,"y":32377.93040356555},"targetPosition":{"x":44733.22183307022,"y":31873.22574960204},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"a585a9e1-e18d-40b6-b364-75f01e840a4b","savedPayload":{"position":{"x":44733.22183307022,"y":31873.22574960204},"targetPosition":{"x":44335.23861007668,"y":31368.479242651025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"8e5db945-8507-4489-9288-21cfa1e9301c"}}}],"id":"525c3ef8-145e-4919-bf2d-983db99a5cdb","savedPayload":{"position":{"x":44335.23861007668,"y":31368.479242651025},"targetPosition":{"x":43738.24708451567,"y":31130.308446359704},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"b652ba10-fb7a-4a93-bd24-9500bb7d25ec","savedPayload":{"position":{"x":43738.24708451567,"y":31130.308446359704},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"RSI","bot":{"type":"Indicator Bot Instance","name":"RSI","code":" {\n\"repo\": \"RSI-Indicator-Bot\"\n }","processes":[{"type":"Indicator Process Instance","name":"RSI Multi-Period-Market","code":" {\n \"process\": \"Multi-Period-Market\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"002570f4-0254-46d4-ba77-c23598fd8e51","savedPayload":{"position":{"x":44395.607564219106,"y":32279.346270225502},"targetPosition":{"x":44111.06304717549,"y":32129.543698932317},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"16a0815f-b793-4ca8-aa09-78f9f447f110","savedPayload":{"position":{"x":44111.06304717549,"y":32129.543698932317},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"RSI Multi-Period-Daily","code":" {\n \"process\": \"Multi-Period-Daily\"\n }","marketReference":{"type":"Market Reference","name":"Bitfinex BTC/USDT","id":"a1c6a73c-d518-478c-b1bb-cb1b0b4f08db","savedPayload":{"position":{"x":43876.85035087776,"y":33264.29116567567},"targetPosition":{"x":43851.71485258066,"y":32622.075786304355},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"b734f59f-f29c-450b-a6e4-6d2345a1082a"}}},"id":"123f248b-aa95-4d1c-a6c2-9fc70fc2b816","savedPayload":{"position":{"x":43851.71485258066,"y":32622.075786304355},"targetPosition":{"x":43826.594538981204,"y":31979.768305805377},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Daily","id":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"007d0fe3-9637-4a4f-8078-730af1716e1b","savedPayload":{"position":{"x":43826.594538981204,"y":31979.768305805377},"targetPosition":{"x":43483.775300077,"y":31436.11470464454},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}},"id":"da1cddfc-5d56-46e7-b14a-0b21127cf6e3","savedPayload":{"position":{"x":43483.775300077,"y":31436.11470464454},"targetPosition":{"x":43140.801983244026,"y":30891.950600638847},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"6907a34a-7247-4717-8be3-154ebc2cacfc","savedPayload":{"position":{"x":42927.695684739876,"y":30878.09191280621},"targetPosition":{"x":42499.798120847416,"y":30850.102649976},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"j"}}},"id":"ac392204-2e14-4744-a636-063c2bf461ae","savedPayload":{"position":{"x":42499.1800761305,"y":30851.4743473487},"targetPosition":{"x":42070.18828763748,"y":30831.769932646686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"4d93f230-422c-4a10-8e6d-50381aa60aba","savedPayload":{"position":{"x":42487.55730521615,"y":30939.451395838852},"targetPosition":{"x":42070.18828763748,"y":30831.769932646686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mining","name":"New Data Mining","id":"7449a608-32ca-4285-94d1-c96791e2817f"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.taskManagers === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Task Manager.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Data Mining') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Data Mining.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.taskManagers)\n \n setup(templateClone, target, exchange, 'Exchange Tasks', 'taskManagers')\n for (let i = 0; i < templateClone.tasks.length; i++) {\n let task = templateClone.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n process.marketReference.payload.referenceParent = market\n }\n }\n }\n }\n }\n\n return templateClone\n }\n}","id":"b2fdaf25-bbd2-476a-93ed-faf23b3bfa00","savedPayload":{"position":{"x":42449.73989160445,"y":31033.25683145732},"targetPosition":{"x":42070.18828763748,"y":30831.769932646686},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"83556c43-8483-48e3-be7e-36f9dbb70f08","savedPayload":{"position":{"x":42070.18828763748,"y":30831.769932646686},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Install Time Machine","templateStructure":{"type":"Template Structure","name":"New Template Structure","timeMachines":{"type":"Time Machine","name":"My Time Machine","code":"{}","timeScale":{"type":"Time Scale","name":"New Time Scale","code":"{\n \"fromDate\": \"2018-12-30T23:22:24.048Z\",\n \"toDate\": \"2019-01-10T19:44:56.900Z\",\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"acf304c4-443a-4a57-880e-13d330e754c4","savedPayload":{"position":{"x":43433.904964020134,"y":31090.08122008158},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3540,\n \"maxValue\": 4069.8,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"153feb9a-76e1-4838-ae3e-33cacd7ca646","savedPayload":{"position":{"x":43522.58881136428,"y":31164.598399546274},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"24-hs\"}","id":"7890a24e-5bf5-450f-bb35-f23b3eb495f6","savedPayload":{"position":{"x":43586.959939711174,"y":31259.03996760349},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"timelineCharts":[{"type":"Timeline Chart","name":"Indicators","layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 2,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"on\",\n \"showPanels\": false\n}","id":"38e64db1-376d-45de-a92c-a6fb25282507","savedPayload":{"position":{"x":44078.64999458624,"y":30934.89460131808},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candles","id":"884a5d08-b607-4b2b-8e7a-8adeb7e8dd4a"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"9ad6d912-ff9c-45c8-bfce-bcd0d86e3977","savedPayload":{"position":{"x":44163.85123076828,"y":30946.443093510883},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Bands","id":"68df01d8-d9a8-400c-aa76-8da44c5dc040"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6c5e7c7f-a010-4d59-8299-d8d4534aa7f8","savedPayload":{"position":{"x":44241.83694393738,"y":30974.63232510084},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Channels Objects","id":"632f0f98-eb2c-4820-9943-662a4903be81"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"41db7192-ec70-4f95-85dd-343bfa05258e","savedPayload":{"position":{"x":44311.67549610568,"y":31016.49344919726},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Bollinger Sub-Channels Objects","id":"88a1ca81-b317-4ab2-b651-c8fa566e8e28"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"13c5c367-3758-4f8f-883c-ba6f1ee3bef2","savedPayload":{"position":{"x":44371.85960146544,"y":31070.221683842996},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Candle-Stairs","id":"5979844b-35e7-4c04-938f-18e6156352a0"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"0fac6cd3-3172-4854-9ce2-f2827023f503","savedPayload":{"position":{"x":44420.81779483182,"y":31133.88297441118},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular SMAs","id":"5bce195f-7d08-4281-bb9d-ca1e9417068e"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"88c7874f-9372-4dc5-9bb1-491ca58ceded","savedPayload":{"position":{"x":44457.117328935085,"y":31205.319635425785},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 SMAs","id":"b9145946-1899-4fac-b531-47ed600873be"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"6570c568-8d96-427f-9dbe-822d0fe9f900","savedPayload":{"position":{"x":44479.64133141089,"y":31282.130540258924},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 SMAs","id":"c9daf265-f452-4372-a8a9-6ed9c0d7a0ed"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a133263e-3eca-4d4a-b04e-8f40e5ec78ba","savedPayload":{"position":{"x":44487.61147096234,"y":31361.728456129385},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Popular EMAs","id":"fba1f18e-dd5b-48e6-82b1-ff04a624f090"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"32fcaa2a-af1d-4aa6-adf0-36dd24759ca4","savedPayload":{"position":{"x":44480.78341149639,"y":31441.3959689604},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base7 EMAs","id":"64f059bf-66e2-463c-aed1-800b5fa195ab"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"3d5d19b9-481d-4542-b279-06303aa9edef","savedPayload":{"position":{"x":44459.48592250235,"y":31518.457632189642},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Base11 EMAs","id":"5b6e48e5-259f-44f3-b40e-a29982204c95"}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"04f846d4-f203-4eed-807d-214655d4551b","savedPayload":{"position":{"x":44424.41129890276,"y":31590.302021321455},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"10e19911-11b2-4b8d-86fa-b7a5de9f93e4","savedPayload":{"position":{"x":44376.75954564685,"y":31654.50449366559},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"5666253c-62f6-46f2-91fa-c19b44a5932a","savedPayload":{"position":{"x":44318.14175549443,"y":31708.891385093266},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"aae1b1f8-35b5-4c41-b5c9-64d80a97cc38","savedPayload":{"position":{"x":44250.60221948984,"y":31751.772743890055},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"434c3396-d53e-434b-aa8b-c27a170c9ed9","savedPayload":{"position":{"x":44153.02320691994,"y":31784.13904467631},"targetPosition":{"x":44054.018322503085,"y":31364.881983103965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"5bfa0541-b9bb-4dc6-a5a0-5684278c2a16","savedPayload":{"position":{"x":44141.821764465945,"y":31355.229987239374},"targetPosition":{"x":43626.31800703183,"y":31407.414884109556},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":0,"y":80},"width":150,"height":190,"radius":0}}},"id":"63c36d69-c222-4687-a535-c147abcfb9a9","savedPayload":{"position":{"x":43623.85978187672,"y":31362.647150527082},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Volumes","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"offset\": 0,\n \"minValue\": 3496.3969296811883,\n \"maxValue\": 12400.41819345618,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"6f07d76a-363a-4200-a7f4-ee9daf700744","savedPayload":{"position":{"x":43955.58254498447,"y":31504.999869023693},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"a6350c1f-64b3-4b13-921b-aea1eb09b6c1","savedPayload":{"position":{"x":44162.92610911858,"y":31723.43961416986},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volumes","id":"4ec71a01-3d83-4e8e-9780-bcb700dcf66a"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"3b5badc4-8160-4c8f-ae19-8db7970e581d","savedPayload":{"position":{"x":44114.39338158986,"y":31825.20197219218},"targetPosition":{"x":43951.317213648734,"y":31685.17817589269},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Volume-Stairs","id":"dd1f89bc-3c2f-4fc4-a5f1-de7a34e0997e"}}}],"id":"929661b5-acce-457c-a8cc-505a64cfacf2","savedPayload":{"position":{"x":43951.317213648734,"y":31685.17817589269},"targetPosition":{"x":43630.44688258736,"y":31530.628144529433},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":150,"y":80},"width":150,"height":40,"radius":0}}},"id":"6f781018-392b-4ba2-b00f-68d4c5498f2b","savedPayload":{"position":{"x":43633.74577614054,"y":31475.276430635626},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Market","name":"BTC/USDT","id":"d4098b73-7e25-434e-8fd9-342393cbb400"}}},{"type":"Timeline Chart","name":"Oscilators","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"5074db98-f742-4771-a68e-a001b9c45182","savedPayload":{"position":{"x":43911.24885028547,"y":31610.221317602256},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"830c5295-25ca-4f08-bc7c-262be9e2fb17","savedPayload":{"position":{"x":44079.22692482198,"y":31836.109592766257},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"8aa6fde7-89cb-43af-bea1-149a0b94c29c","savedPayload":{"position":{"x":44017.101529873595,"y":31929.337889021248},"targetPosition":{"x":43875.02284358463,"y":31767.22077825714},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}}],"id":"2f754398-30ac-4afa-8c12-c37013b8a4da","savedPayload":{"position":{"x":43875.02284358463,"y":31767.22077825714},"targetPosition":{"x":43610.47458913771,"y":31590.810656481015},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"805c6659-38e2-4959-86d0-cbabc87a8184","savedPayload":{"position":{"x":43611.43180799584,"y":31591.37193734411},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"MACD","rateScale":{"type":"Rate Scale","name":"New Rate Scale","code":"{\n \"minValue\": -2,\n \"maxValue\": 2,\n \"autoMinScale\": true,\n \"autoMaxScale\": true\n}","id":"53e5ea3b-83b8-4460-ac02-c68e2f17c85f","savedPayload":{"position":{"x":43840.620290316496,"y":31789.82237029658},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"left\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"775d50c1-df4b-4d02-9da4-de31dd5fc006","savedPayload":{"position":{"x":43963.892899882354,"y":31948.760513223307},"targetPosition":{"x":43702.617792383055,"y":31853.05810689925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Percentage Bandwidth","id":"9b5b1b81-c68c-45a5-8123-1a114a24b744"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": false\n}","id":"06f133c7-2bf0-4352-89e7-bd43dc74c3e7","savedPayload":{"position":{"x":43920.721667853606,"y":32029.92468150603},"targetPosition":{"x":43702.617792383055,"y":31853.05810689925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"RSI14","id":"71351f63-10b4-4f89-ac9f-a8380bb0b75e"}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"ae91005d-2615-4b4e-bcd4-3fb25ef7f510","savedPayload":{"position":{"x":43853.974112885124,"y":32090.426818984488},"targetPosition":{"x":43702.617792383055,"y":31853.05810689925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Layer","name":"","code":"{ \n\"status\": \"off\"\n}","id":"1939dd65-d12b-436d-8c76-609fc1f776f4","savedPayload":{"position":{"x":43757.20500332351,"y":32127.063274152384},"targetPosition":{"x":43702.617792383055,"y":31853.05810689925},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"68537c49-d84e-4843-9ee2-9aae3f9abef1","savedPayload":{"position":{"x":43767.25622614087,"y":31932.288004103884},"targetPosition":{"x":43558.71007204624,"y":31694.11687469478},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":300,"y":80},"width":150,"height":40,"radius":0}}},"id":"35419f31-46aa-455e-b9bc-1f87a04e7903","savedPayload":{"position":{"x":43559.23277912925,"y":31694.525566454333},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Live Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"1ce27f77-c38b-49b1-8ea3-c32687bdb655","savedPayload":{"position":{"x":43783.37261367022,"y":31886.571656235734},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"b672763b-52c9-47c0-8b03-8156a564a6bb","savedPayload":{"position":{"x":43886.41967462734,"y":32119.941637293174},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"247187f3-1aaf-4de1-a7db-c3a550cdbad0"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"e330fc5d-223f-4d13-8251-84be95894b04","savedPayload":{"position":{"x":43842.96035016497,"y":32187.313417315454},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"4deb0411-a8ea-465e-adcd-e0515f291a2d"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"63396270-7226-4fe7-8a77-072a29e73691","savedPayload":{"position":{"x":43780.15086984105,"y":32228.511805578368},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"cec4bf02-ebee-48ad-a0cc-25629e34fd65"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"d08e1626-0cdc-42b6-ab7e-ed35fc9f0f43","savedPayload":{"position":{"x":43677.873644697815,"y":32238.940731261504},"targetPosition":{"x":43690.30875570328,"y":32020.727785295832},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"c9cbb548-60ef-491d-b083-5825573db463"}}}],"id":"c9302ae8-6f99-41c2-86d7-04e6b1cf1817","savedPayload":{"position":{"x":43690.30875570328,"y":32020.727785295832},"targetPosition":{"x":43521.05702874397,"y":31745.958156152803},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1770,"y":80},"width":150,"height":40,"radius":0}}},"id":"02c55b2b-cb65-4131-aa82-de04ce1ca1c6","savedPayload":{"position":{"x":43484.72851305459,"y":31777.876573021833},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Forward Testing","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"73a8ce0d-317a-4162-b961-8ff3df64c1c3","savedPayload":{"position":{"x":43684.53879623016,"y":31970.012630752735},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"37d4edc7-51fc-4c9b-93b9-4f0f0e795208","savedPayload":{"position":{"x":43670.419810252366,"y":32282.9624054417},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"456e8c88-ba2b-487d-aa2a-48f6c1144d22"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"0f0b5b97-3962-4eaf-861e-edd447bc4d61","savedPayload":{"position":{"x":43609.82505581555,"y":32335.475436908324},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"6abfb364-1883-488b-ac98-ffa234013e95"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"fcb15fbd-c988-4b80-add2-88c0d20d2f90","savedPayload":{"position":{"x":43537.9321061552,"y":32357.541018716125},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"cdba5840-e1d7-4909-9422-423299403f3c"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"ec034ac9-5e70-44aa-99c7-d0afd8d0f78c","savedPayload":{"position":{"x":43436.996393413065,"y":32338.36265829784},"targetPosition":{"x":43510.26407319966,"y":32132.59925389586},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"0dbb4a2c-c32d-4bd1-a410-09ce23613604"}}}],"id":"2bc6080e-b3b8-4240-946b-b1475b407bdc","savedPayload":{"position":{"x":43510.26407319966,"y":32132.59925389586},"targetPosition":{"x":43425.560345834936,"y":31822.587842697758},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1620,"y":80},"width":150,"height":40,"radius":0}}},"id":"de6ca021-6112-41ab-8a4e-5b24682c397e","savedPayload":{"position":{"x":43391.02991247641,"y":31839.99226140119},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Paper Trading","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{ \n\"value\": \"24-hs\"\n}","id":"10022324-b8b0-4d63-ac68-1a52fb1a3bc8","savedPayload":{"position":{"x":43457.36591905919,"y":32128.545321458452},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"89f07041-b4af-47e8-9282-06f889d1873f","savedPayload":{"position":{"x":43418.773208240214,"y":32379.61274434846},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"442bd8c3-1825-4415-84bd-e2f1148b3f92"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"3ca3b1c6-2f56-4a69-a5b1-c6461b339286","savedPayload":{"position":{"x":43345.89520538448,"y":32412.88315685549},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"8ab46f29-e225-42ee-a17e-297b2ebcfdbe"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"8306fbd3-4c33-4796-8a00-259702921276","savedPayload":{"position":{"x":43270.93153284485,"y":32413.314969240215},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"2f5a9ed9-80b6-412f-9d24-47f49653be9b"}}},{"type":"Layer","name":"","code":"{\"status\":\"off\"}","id":"bb634599-045c-4475-a4ed-af6798660d58","savedPayload":{"position":{"x":43179.038096809825,"y":32367.059336454447},"targetPosition":{"x":43307.45180126069,"y":32190.479627192908},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"ddb30433-09f1-44b5-afdc-28a05f218c25"}}}],"id":"0a45ce5c-57f1-442b-b5cf-a86812267f3c","savedPayload":{"position":{"x":43307.45180126069,"y":32190.479627192908},"targetPosition":{"x":43313.35171232311,"y":31869.073818844914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1470,"y":80},"width":150,"height":40,"radius":0}}},"id":"d5405af5-9184-4017-805d-a7f9f9256524","savedPayload":{"position":{"x":43284.22656791505,"y":31876.045500857595},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Timeline Chart","name":"Backtesting","timeFrameScale":{"type":"Time Frame Scale","name":"New Time Frame Scale","code":"{\"value\":\"01-hs\"}","id":"37fba5b0-3028-4687-bb7b-1162995b2fe2","savedPayload":{"position":{"x":43247.66539437884,"y":32171.10718387298},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"layersManager":{"type":"Layers Manager","name":"New Layers Manager","code":"{\n \"visibleLayers\": 0,\n \"panelLocation\": {\n \"upOrDown\": \"up\",\n \"leftOrRight\": \"right\"\n }\n}","layers":[{"type":"Layer","name":"","code":"{\n \"status\": \"off\",\n \"showPanels\": true\n}","id":"068284a9-fd5b-4b68-9103-836637fdcb0b","savedPayload":{"position":{"x":43141.24685193997,"y":32394.974326897627},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Simulation","id":"e7f2581f-1dfd-44eb-82d9-a9be799307e6"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"4cfdb7dd-af3d-444d-abb8-f04d77e73889","savedPayload":{"position":{"x":43061.65443685055,"y":32406.489847624485},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Conditions","id":"24dfc84b-74ec-4d79-9e97-4eb17dd2ac1d"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"1ea11e8c-049c-4ff1-ae9a-0f27d4165127","savedPayload":{"position":{"x":42989.62406345691,"y":32385.45184645436},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Trades","id":"ce87f885-a79b-4675-9cfd-337daed079e5"}}},{"type":"Layer","name":"","code":"{\n \"status\": \"off\"\n}","id":"996074fc-0efb-4bf8-8f16-95cbad2f5043","savedPayload":{"position":{"x":42914.59155513783,"y":32314.693016214136},"targetPosition":{"x":43087.94547795279,"y":32181.92277542006},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Product","name":"Strategies","id":"40c22092-c1c9-4a45-893a-b7372833df84"}}}],"id":"c49c4542-bc88-44c2-b537-6f2d5b3b3a3a","savedPayload":{"position":{"x":43087.94547795279,"y":32181.92277542006},"targetPosition":{"x":43182.81404257353,"y":31880.527527777554},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"frame":{"position":{"x":1320,"y":80},"width":150,"height":40,"radius":0}}},"id":"cfda3689-ce58-460a-81c3-4b99377e7184","savedPayload":{"position":{"x":43156.82064724961,"y":31879.74004634101},"targetPosition":{"x":43200.219291964946,"y":31451.072136982963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"a4a8b171-8b07-4895-8c25-cedd8fa9c957","savedPayload":{"position":{"x":43201.16928639831,"y":31451.235148598644},"targetPosition":{"x":42795.18751413235,"y":31313.45669839338},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""},"frame":{"position":{"x":-1305,"y":-15},"width":240,"height":112.375,"radius":0}}},"id":"e6469c64-26cb-4a30-951d-a68147cf1ba5","savedPayload":{"position":{"x":42794.17915923069,"y":31313.466561056666},"targetPosition":{"x":41984.452633841174,"y":31038.58861161451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"templateTarget":{"type":"Template Target","name":"New Template Target","id":"c01a6962-8b0e-4b06-8705-8751660aabbf","savedPayload":{"position":{"x":42360.48166267332,"y":31246.02660007699},"targetPosition":{"x":41984.452633841174,"y":31038.58861161451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Dashboard","name":"Super Action Generated","id":"64fa2a31-21ea-4b56-a625-dc4082876a89"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateStructure.timeMachines === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Structure must have a child Time Machine.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Dashboard') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Dashboard.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n let templateClone = clone(templateScript.templateStructure.timeMachines)\n target.timeMachines.push(templateClone)\n setup(templateClone, target)\n\n return templateClone\n }\n}","id":"968fd18b-2a1b-41ca-9317-23f301607857","savedPayload":{"position":{"x":42301.46502020788,"y":31328.184496470305},"targetPosition":{"x":41984.452633841174,"y":31038.58861161451},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"41c01e94-6c5c-4b71-9c70-8d962c86fec0","savedPayload":{"position":{"x":41984.452633841174,"y":31038.58861161451},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/*\nMaster Script\n*/\nfunction newNewMasterScriptInstance() {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction, masterScript) {\n /* Validations */\n if (superAction.payload.parentNode.type !== 'Market') {\n superAction.payload.uiObject.setErrorMessage('Super Action Parent Node needs to be of type Market.')\n return\n }\n if (superAction.payload.parentNode.baseAsset === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market Node needs to have a child Market Base Asset.')\n return\n }\n if (superAction.payload.parentNode.quotedAsset === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market Node needs to have a child Market Quoted Asset.')\n return\n }\n if (superAction.payload.parentNode.baseAsset.payload.referenceParent === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market Base Asset Node needs to reference an Asset.')\n return\n }\n if (superAction.payload.parentNode.quotedAsset.payload.referenceParent === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market Quoted Asset Node needs to reference an Asset.')\n return\n }\n if (superAction.payload.parentNode.baseAsset.payload.referenceParent.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Asset Node needs to be a child of Exchange Assets.')\n return\n }\n if (superAction.payload.parentNode.quotedAsset.payload.referenceParent.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Asset Node needs to be a child of Exchange Assets.')\n return\n }\n if (superAction.payload.parentNode.baseAsset.payload.referenceParent.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Exchange Assets needs to be a child of an Exchange Node.')\n return\n }\n if (superAction.payload.parentNode.quotedAsset.payload.referenceParent.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Exchange Assets needs to be a child of an Exchange Node.')\n return\n }\n if (superAction.payload.parentNode.baseAsset.payload.referenceParent.payload.parentNode.payload.parentNode.id !== superAction.payload.parentNode.quotedAsset.payload.referenceParent.payload.parentNode.payload.parentNode.id) {\n superAction.payload.uiObject.setErrorMessage('Assets must be from the same Exchange.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market needs to be a child of Exchange Markets.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Exchange Markets needs to be a child of an Exchange.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode.id !== superAction.payload.parentNode.baseAsset.payload.referenceParent.payload.parentNode.payload.parentNode.id) {\n superAction.payload.uiObject.setErrorMessage('Assets and Market must be defined at the same Exchange.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts === undefined) {\n superAction.payload.uiObject.setErrorMessage('Exchange needs to have a child Exchange Accounts.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts.length === 0) {\n superAction.payload.uiObject.setErrorMessage('Exchange Accounts to needs have a child User Account.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts[0].userKeys === undefined) {\n superAction.payload.uiObject.setErrorMessage('User Account needs to have a child User Keys.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode.exchangeAccounts.userAccounts[0].userKeys.keys.length === 0) {\n superAction.payload.uiObject.setErrorMessage('User Keys needs to have a child Exchange Account Key.')\n return\n }\n\n for (let i = 0; i < masterScript.templateScripts.length; i++) {\n let templateScript = masterScript.templateScripts[i]\n\n if (templateScript.javascriptCode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Script must have a child Javascript Code.')\n return\n }\n if (templateScript.templateStructure === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Script must have a child Template Structure.')\n return\n }\n if (templateScript.templateTarget === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Script must have a child Template Target.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent.')\n return\n }\n try {\n let templateScriptConstructor\n\n eval(templateScript.javascriptCode.code)\n\n let executionResult = true\n let templateScriptInstance = templateScriptConstructor()\n\n if (executionResult === true) {\n executionResult = templateScriptInstance.runValidations(superAction)\n }\n\n if (executionResult !== true) { return false }\n } catch (err) {\n console.log(err.stack)\n superAction.payload.uiObject.setErrorMessage(err.message)\n return false\n }\n }\n\n return true\n }\n\n function runScript(superAction, masterScript) {\n let market = superAction.payload.parentNode\n let exchange = superAction.payload.parentNode.payload.parentNode.payload.parentNode\n let key = exchange.exchangeAccounts.userAccounts[0].userKeys.keys[0]\n let singleMarketData\n let backSessionReference\n let paperSessionReference\n let liveSessionReference\n let ForwardSessionReference\n let dataMiningTaskManagers = []\n let testingEnvironmentTaskManager\n let productionEnvironmentTaskManager\n let timeMachine\n\n for (let i = 0; i < masterScript.templateScripts.length; i++) {\n let templateScript = masterScript.templateScripts[i]\n\n try {\n let templateScriptConstructor\n\n eval(templateScript.javascriptCode.code)\n\n let executionResult = true\n let templateClone\n let templateScriptInstance = templateScriptConstructor()\n\n if (executionResult === true) {\n templateClone = templateScriptInstance.runScript(superAction, templateScript)\n }\n\n if (executionResult !== true) { return false }\n\n switch (templateClone.payload.parentNode.payload.parentNode.type) {\n case 'Session Independent Data': {\n singleMarketData = templateClone\n break\n }\n case 'Session Based Data': {\n switch (templateClone.templateType) {\n case 'Backtesting Session': {\n backSessionReference = templateClone\n break\n }\n case 'Paper Trading Session': {\n paperSessionReference = templateClone\n break\n }\n case 'Live Trading Session': {\n liveSessionReference = templateClone\n break\n }\n case 'Forward Testing Session': {\n ForwardSessionReference = templateClone\n break\n }\n }\n break\n }\n case 'Data Mining': {\n dataMiningTaskManagers.push(templateClone)\n break\n }\n case 'Testing Environment': {\n testingEnvironmentTaskManager = templateClone\n break\n }\n case 'Production Environment': {\n productionEnvironmentTaskManager = templateClone\n break\n }\n case 'Charting Space': {\n timeMachine = templateClone\n break\n }\n }\n\n if (executionResult !== true) { return false }\n } catch (err) {\n console.log(err.stack)\n superAction.payload.uiObject.setErrorMessage(err.message)\n return false\n }\n }\n\n /* Here we will find the sessions within the tasks in order to put them as a reference of the Session Reference nodes we already have */\n let session\n session = findSession('Backtesting Session', testingEnvironmentTaskManager)\n backSessionReference.payload.referenceParent = session\n session = findSession('Paper Trading Session', testingEnvironmentTaskManager)\n paperSessionReference.payload.referenceParent = session\n session = findSession('Live Trading Session', productionEnvironmentTaskManager)\n liveSessionReference.payload.referenceParent = session\n session = findSession('Forward Testing Session', productionEnvironmentTaskManager)\n ForwardSessionReference.payload.referenceParent = session\n\n function findSession(sessionType, taskManager) {\n for (let i = 0; i < taskManager.tasks.length; i++) {\n let task = taskManager.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.session !== undefined) {\n if (process.session.type === sessionType) {\n return process.session\n }\n }\n }\n }\n }\n }\n }\n\n /* Here, we are going to connect the layers of the charts at the Time Machine */\n for (let i = 0; i < timeMachine.timelineCharts.length; i++) {\n let timelineChart = timeMachine.timelineCharts[i]\n switch (timelineChart.name) {\n case 'Indicators': {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n switch (j) {\n case 0: {\n let dataProduct = findDataProduct(singleMarketData, 'Candles')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 1: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Bands')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 2: {\n let dataProduct = findDataProduct(singleMarketData, 'Candles Channels')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 3: {\n let dataProduct = findDataProduct(singleMarketData, 'Candles Channels Objects')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 4: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Channels')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 5: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Channels Objects')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 6: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Sub-Channels')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 7: {\n let dataProduct = findDataProduct(singleMarketData, 'Bollinger Sub-Channels Objects')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 8: {\n let dataProduct = findDataProduct(singleMarketData, 'Popular SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 9: {\n let dataProduct = findDataProduct(singleMarketData, 'Base5 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 10: {\n let dataProduct = findDataProduct(singleMarketData, 'Base6 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 11: {\n let dataProduct = findDataProduct(singleMarketData, 'Base7 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 12: {\n let dataProduct = findDataProduct(singleMarketData, 'Base11 SMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 13: {\n let dataProduct = findDataProduct(singleMarketData, 'Popular EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 14: {\n let dataProduct = findDataProduct(singleMarketData, 'Base7 EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 15: {\n let dataProduct = findDataProduct(singleMarketData, 'Base11 EMAs')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\n layer.payload.uiObject.physics()\n }\n break\n }\n case 'Volumes': {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n switch (j) {\n case 0: {\n let dataProduct = findDataProduct(singleMarketData, 'Volumes')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 1: {\n let dataProduct = findDataProduct(singleMarketData, 'Volume-Stairs')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\n layer.payload.uiObject.physics()\n }\n break\n }\n case 'Oscilators': {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n switch (j) {\n case 0: {\n let dataProduct = findDataProduct(singleMarketData, 'Percentage Bandwidth')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 1: {\n let dataProduct = findDataProduct(singleMarketData, 'RSI14')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\n layer.payload.uiObject.physics()\n }\n break\n }\n case 'MACD': {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n switch (j) {\n case 0: {\n let dataProduct = findDataProduct(singleMarketData, 'MACD 122609')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 1: {\n let dataProduct = findDataProduct(singleMarketData, 'MACD 031016')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 2: {\n let dataProduct = findDataProduct(singleMarketData, 'MACD 081709')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 3: {\n let dataProduct = findDataProduct(singleMarketData, 'MACD 245209')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\n layer.payload.uiObject.physics()\n }\n break\n }\n case 'Backtesting': {\n setupSessionReference(timelineChart, backSessionReference)\n break\n }\n case 'Paper Trading': {\n setupSessionReference(timelineChart, paperSessionReference)\n break\n }\n case 'Live Trading': {\n setupSessionReference(timelineChart, liveSessionReference)\n break\n }\n case 'Forward Testing': {\n setupSessionReference(timelineChart, ForwardSessionReference)\n break\n }\n }\n }\n\n function findDataProduct(singleMarketData, name) {\n for (let i = 0; i < singleMarketData.dataProducts.length; i++) {\n let dataProduct = singleMarketData.dataProducts[i]\n if (dataProduct.name === name) {\n return dataProduct\n }\n }\n }\n function setupSessionReference(timelineChart, sessionReference) {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n switch (j) {\n case 0: {\n let dataProduct = findDataProduct(sessionReference.singleMarketData, 'Simulation')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 1: {\n let dataProduct = findDataProduct(sessionReference.singleMarketData, 'Conditions')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 2: {\n let dataProduct = findDataProduct(sessionReference.singleMarketData, 'Trades')\n layer.payload.referenceParent = dataProduct\n break\n }\n case 3: {\n let dataProduct = findDataProduct(sessionReference.singleMarketData, 'Strategies')\n layer.payload.referenceParent = dataProduct\n break\n }\n }\n layer.payload.uiObject.physics()\n }\n }\n\n let exchangeAndMarket = superAction.payload.parentNode.payload.parentNode.payload.parentNode.name + ' ' + market.name\n timeMachine.name = exchangeAndMarket\n\n for (let i = 0; i < dataMiningTaskManagers.length; i++) {\n let dataMiningTaskManager = dataMiningTaskManagers[i]\n dataMiningTaskManager.name = dataMiningTaskManager.name + ' ' + market.name\n }\n\n testingEnvironmentTaskManager.name = testingEnvironmentTaskManager.name + ' ' + market.name\n productionEnvironmentTaskManager.name = productionEnvironmentTaskManager.name + ' ' + market.name\n return true\n }\n}\n/*\nEnd Manster Script\n*/","id":"d234c201-4b50-48c6-be9d-f3b141c8cc16","savedPayload":{"position":{"x":41545.627973212795,"y":30912.99609070129},"targetPosition":{"x":41242.87405456016,"y":30609.932878255597},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"95b24e48-3b10-47cb-b149-8667571f4a83","savedPayload":{"position":{"x":41243.02915629543,"y":30609.767175135945},"targetPosition":{"x":40500.785430914875,"y":31038.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"o"}}},{"type":"Master Script","name":"Delete Market Dependencies ","templateScripts":[{"type":"Template Script","name":"Delete Testing Environment Task Managers","templateTarget":{"type":"Template Target","name":"New Template Target","id":"a97aa286-3199-4362-900a-65b604bf5b9a","savedPayload":{"position":{"x":41729.477786552314,"y":31046.11236071952},"targetPosition":{"x":41582.54274899229,"y":31205.193628384397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Testing Environment","name":"New Testing Environment","id":"2ae685a1-25c6-4bd5-b559-d83e373e8d45"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Testing Environment') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Data Mining.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let e = 0; e < target.exchangeTasks.length; e++) {\n let exchangeTasks = target.exchangeTasks[e]\n if (exchangeTasks.payload.referenceParent !== undefined) {\n if (exchangeTasks.payload.referenceParent.id === exchange.id) {\n for (let k = 0; k < exchangeTasks.taskManagers.length; k++) {\n let taskManager = exchangeTasks.taskManagers[k]\n checkReferenceToMarket()\n function checkReferenceToMarket() {\n for (let i = 0; i < taskManager.tasks.length; i++) {\n let task = taskManager.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n if (process.marketReference.payload !== undefined) {\n if (process.marketReference.payload.referenceParent !== undefined) {\n if (process.marketReference.payload.referenceParent.id === market.id) {\n nodesToDelete.push(taskManager)\n return\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n if (exchangeTasks.taskManagers.length === nodesToDelete.length) {\n nodesToDelete.push(exchangeTasks)\n }\n }\n }\n }\n\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"9d020e32-68e5-4123-b0ad-cb443d778905","savedPayload":{"position":{"x":41785.524618173,"y":31129.822745374793},"targetPosition":{"x":41582.54274899229,"y":31205.193628384397},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"12eb790b-7f24-48bf-a4f0-34159f3d1863","savedPayload":{"position":{"x":41582.54274899229,"y":31205.193628384397},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Delete Production Environment Task Managers","templateTarget":{"type":"Template Target","name":"New Template Target","id":"2ef5ba0f-10f7-4af0-81c1-2e89b9aea583","savedPayload":{"position":{"x":41853.66308982842,"y":31264.801386694602},"targetPosition":{"x":41656.82837164478,"y":31355.520360853872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Production Environment","name":"New Production Environment","id":"32656457-f603-416a-b805-546642094dc4"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Production Environment') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Data Mining.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let e = 0; e < target.exchangeTasks.length; e++) {\n let exchangeTasks = target.exchangeTasks[e]\n if (exchangeTasks.payload.referenceParent !== undefined) {\n if (exchangeTasks.payload.referenceParent.id === exchange.id) {\n for (let k = 0; k < exchangeTasks.taskManagers.length; k++) {\n let taskManager = exchangeTasks.taskManagers[k]\n checkReferenceToMarket()\n function checkReferenceToMarket() {\n for (let i = 0; i < taskManager.tasks.length; i++) {\n let task = taskManager.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n if (process.marketReference.payload !== undefined) {\n if (process.marketReference.payload.referenceParent !== undefined) {\n if (process.marketReference.payload.referenceParent.id === market.id) {\n nodesToDelete.push(taskManager)\n return\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n if (exchangeTasks.taskManagers.length === nodesToDelete.length) {\n nodesToDelete.push(exchangeTasks)\n }\n }\n }\n }\n\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"9f9515a8-2e47-4a6f-acc3-6e4e01a610b2","savedPayload":{"position":{"x":41873.37022951505,"y":31363.719899709926},"targetPosition":{"x":41656.82837164478,"y":31355.520360853872},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"29b330a4-d4f6-45ac-8b41-090740dc418f","savedPayload":{"position":{"x":41656.82837164478,"y":31355.520360853872},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Delete Data Mining Task Managers","templateTarget":{"type":"Template Target","name":"New Template Target","id":"c3417c9a-68b3-4d49-9514-0d2d30cea254","savedPayload":{"position":{"x":41884.48440596237,"y":31513.967037417144},"targetPosition":{"x":41667.84415563366,"y":31522.410064016763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mining","name":"New Data Mining","id":"7449a608-32ca-4285-94d1-c96791e2817f"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Data Mining') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Data Mining.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let e = 0; e < target.exchangeTasks.length; e++) {\n let exchangeTasks = target.exchangeTasks[e]\n if (exchangeTasks.payload.referenceParent !== undefined) {\n if (exchangeTasks.payload.referenceParent.id === exchange.id) {\n for (let k = 0; k < exchangeTasks.taskManagers.length; k++) {\n let taskManager = exchangeTasks.taskManagers[k]\n checkReferenceToMarket()\n function checkReferenceToMarket() {\n for (let i = 0; i < taskManager.tasks.length; i++) {\n let task = taskManager.tasks[i]\n if (task.bot !== undefined) {\n if (task.bot.processes !== undefined) {\n for (let j = 0; j < task.bot.processes.length; j++) {\n let process = task.bot.processes[j]\n if (process.marketReference !== undefined) {\n if (process.marketReference.payload !== undefined) {\n if (process.marketReference.payload.referenceParent !== undefined) {\n if (process.marketReference.payload.referenceParent.id === market.id) {\n nodesToDelete.push(taskManager)\n return\n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n if (exchangeTasks.taskManagers.length === nodesToDelete.length) {\n nodesToDelete.push(exchangeTasks)\n }\n }\n }\n }\n\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"2d8e00e3-836a-426d-9f78-db3262bd7454","savedPayload":{"position":{"x":41864.71847634008,"y":31612.922947914863},"targetPosition":{"x":41667.84415563366,"y":31522.410064016763},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"e8e96f57-041e-4c0d-a2bf-5a8e444636b1","savedPayload":{"position":{"x":41667.84415563366,"y":31522.410064016763},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Delete Dashboard Time Machines","templateTarget":{"type":"Template Target","name":"New Template Target","id":"1cbc9a0e-d00e-4506-9a33-5fbcb3ed8900","savedPayload":{"position":{"x":41818.05356628126,"y":31755.042846552373},"targetPosition":{"x":41614.02097354356,"y":31680.97605960732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Dashboard","name":"Super Action Generated","id":"64fa2a31-21ea-4b56-a625-dc4082876a89"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Dashboard') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Dashboard.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let k = 0; k < target.timeMachines.length; k++) {\n let timeMachine = target.timeMachines[k]\n for (let i = 0; i < timeMachine.timelineCharts.length; i++) {\n let timelineChart = timeMachine.timelineCharts[i]\n if (timelineChart.layersManager !== undefined) {\n for (let j = 0; j < timelineChart.layersManager.layers.length; j++) {\n let layer = timelineChart.layersManager.layers[j]\n if (layer.payload.referenceParent !== undefined) {\n if (layer.payload.referenceParent.payload !== undefined) {\n if (layer.payload.referenceParent.payload.parentNode !== undefined) {\n if (layer.payload.referenceParent.payload.parentNode.payload !== undefined) {\n if (layer.payload.referenceParent.payload.parentNode.payload.referenceParent !== undefined) {\n if (layer.payload.referenceParent.payload.parentNode.payload.referenceParent.id === market.id) {\n \n nodesToDelete.push(timeMachine)\n \n }\n }\n }\n }\n }\n }\n }\n }\n }\n }\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"cf8f6b69-70f8-4035-801d-276c1e2d6b5d","savedPayload":{"position":{"x":41760.499195398515,"y":31841.017373526123},"targetPosition":{"x":41614.02097354356,"y":31680.97605960732},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c78e76fc-311b-4ac7-942f-af9629ea8b76","savedPayload":{"position":{"x":41614.02097354356,"y":31680.97605960732},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Delete Single Market Data","templateTarget":{"type":"Template Target","name":"New Template Target","id":"2d36e591-3314-4a0c-b04d-6372e961959d","savedPayload":{"position":{"x":41662.60051045396,"y":31954.075050489493},"targetPosition":{"x":41503.55623477179,"y":31806.85723421229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Independent Data","name":"New Session Independent Data","id":"bf04ccea-266d-4115-b50e-fefdf29b873a"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Independent Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Independent Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let e = 0; e < target.exchangeDataProducts.length; e++) {\n let exchangeDataProducts = target.exchangeDataProducts[e]\n if (exchangeDataProducts.payload.referenceParent !== undefined) {\n if (exchangeDataProducts.payload.referenceParent.id === exchange.id) {\n for (let i = 0; i < exchangeDataProducts.singleMarketData.length; i++) {\n let singleMarketData = exchangeDataProducts.singleMarketData[i]\n if (singleMarketData.payload !== undefined) {\n if (singleMarketData.payload.referenceParent !== undefined) {\n if (singleMarketData.payload.referenceParent.id === market.id) {\n nodesToDelete.push(singleMarketData)\n }\n }\n }\n }\n if (exchangeDataProducts.singleMarketData.length === nodesToDelete.length) {\n nodesToDelete.push(exchangeDataProducts)\n }\n }\n }\n }\n\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"168466d3-1446-4b45-a647-ad962d1d5f2c","savedPayload":{"position":{"x":41578.48746317018,"y":32010.157336419907},"targetPosition":{"x":41503.55623477179,"y":31806.85723421229},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f23edd8e-b0f9-4531-9550-69cdb0616bcc","savedPayload":{"position":{"x":41503.55623477179,"y":31806.85723421229},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Template Script","name":"Delete Session References","templateTarget":{"type":"Template Target","name":"New Template Target","id":"4fe33613-3b67-4e0f-a4b4-6caa4e6dd163","savedPayload":{"position":{"x":41443.711470549744,"y":32077.739391028543},"targetPosition":{"x":41353.18735100165,"y":31880.891142726974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Session Based Data","name":"New Session Based Data","id":"29ca14e5-dabe-470a-be64-ed7996bd1e55"}}},"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"templateScriptConstructor = function () {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction) {\n /* Validations */\n\n if (templateScript.templateTarget.payload.referenceParent.type !== 'Session Based Data') {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent of type Session Based Data.')\n return\n }\n return true\n }\n\n function runScript(superAction, templateScript) {\n let target = templateScript.templateTarget.payload.referenceParent\n\n let nodesToDelete = []\n for (let e = 0; e < target.exchangeSessions.length; e++) {\n let exchangeSessions = target.exchangeSessions[e]\n if (exchangeSessions.payload.referenceParent !== undefined) {\n if (exchangeSessions.payload.referenceParent.id === exchange.id) {\n for (let i = 0; i < exchangeSessions.sessionReferences.length; i++) {\n let sessionReference = exchangeSessions.sessionReferences[i]\n let singleMarketData = sessionReference.singleMarketData\n if (singleMarketData !== undefined) {\n if (singleMarketData.payload !== undefined) {\n if (singleMarketData.payload.referenceParent !== undefined) {\n if (singleMarketData.payload.referenceParent.id === market.id) {\n nodesToDelete.push(sessionReference)\n }\n }\n }\n }\n }\n if (exchangeSessions.sessionReferences.length === nodesToDelete.length) {\n nodesToDelete.push(exchangeSessions)\n }\n }\n }\n }\n for (let i = 0; i < nodesToDelete.length; i++) {\n deleteNode(nodesToDelete[i])\n }\n }\n}","id":"f2cc52fd-cea8-437f-aa7d-a4d1100bb92e","savedPayload":{"position":{"x":41344.40711731363,"y":32097.37996261368},"targetPosition":{"x":41353.18735100165,"y":31880.891142726974},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"f8ffadd5-8eda-4c4e-be1c-c49b98045b42","savedPayload":{"position":{"x":41353.18735100165,"y":31880.891142726974},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"/*\nMaster Script\n*/\nfunction newNewMasterScriptInstance() {\n let thisObject = {\n runValidations: runValidations,\n runScript: runScript\n }\n return thisObject\n\n function runValidations(superAction, masterScript) {\n /* Validations */\n if (superAction.payload.parentNode.type !== 'Market') {\n superAction.payload.uiObject.setErrorMessage('Super Action Parent Node needs to be of type Market.')\n return\n }\n for (let i = 0; i < masterScript.templateScripts.length; i++) {\n let templateScript = masterScript.templateScripts[i]\n\n if (superAction.payload.parentNode.type !== 'Market') {\n superAction.payload.uiObject.setErrorMessage('Super Action Parent Node needs to be of type Market.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Market needs to be a child of Exchange Markets.')\n return\n }\n if (superAction.payload.parentNode.payload.parentNode.payload.parentNode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Exchange Markets needs to be a child of an Exchange.')\n return\n }\n if (templateScript.javascriptCode === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Script must have a child Javascript Code.')\n return\n }\n if (templateScript.templateTarget === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Script must have a child Template Target.')\n return\n }\n if (templateScript.templateTarget.payload.referenceParent === undefined) {\n superAction.payload.uiObject.setErrorMessage('Template Target must have a Reference Parent.')\n return\n }\n try {\n let templateScriptConstructor\n\n eval(templateScript.javascriptCode.code)\n\n let executionResult = true\n let templateScriptInstance = templateScriptConstructor()\n\n if (executionResult === true) {\n executionResult = templateScriptInstance.runValidations(superAction)\n }\n\n if (executionResult !== true) { return false }\n } catch (err) {\n console.log(err.stack)\n superAction.payload.uiObject.setErrorMessage(err.message)\n return false\n }\n }\n\n return true\n }\n\n function runScript(superAction, masterScript) {\n let market = superAction.payload.parentNode\n let exchange = superAction.payload.parentNode.payload.parentNode.payload.parentNode\n\n for (let i = 0; i < masterScript.templateScripts.length; i++) {\n let templateScript = masterScript.templateScripts[i]\n\n try {\n let templateScriptConstructor\n\n eval(templateScript.javascriptCode.code)\n\n let executionResult = true\n let templateClone\n let templateScriptInstance = templateScriptConstructor()\n\n if (executionResult === true) {\n templateClone = templateScriptInstance.runScript(superAction, templateScript)\n }\n\n if (executionResult !== true) { return false }\n } catch (err) {\n console.log(err.stack)\n superAction.payload.uiObject.setErrorMessage(err.message)\n return false\n }\n }\n\n return true\n }\n}\n/*\nEnd Manster Script\n*/","id":"a9538a7f-32dd-4068-8af6-0f8a83f6f3c7","savedPayload":{"position":{"x":41186.32467320293,"y":31891.49809390885},"targetPosition":{"x":41242.73749253987,"y":31466.604853288718},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}},"id":"c25d0331-8ac0-4834-aa77-743487455d45","savedPayload":{"position":{"x":41242.995353628045,"y":31466.761276583453},"targetPosition":{"x":40500.785430914875,"y":31038.241941751345},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1dd2a75d-7d97-4994-8c95-b392d933b1c1","savedPayload":{"position":{"x":40500.785430914875,"y":31038.241941751345},"targetPosition":{"x":39643.041459281856,"y":31041.13836154292},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"S"}}},"id":"17b5ea06-62d8-4a79-b0ba-f9d3b997c17f","savedPayload":{"position":{"x":39643.041459281856,"y":31041.13836154292},"targetPosition":{"x":39643.041459281856,"y":31041.13836154292},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}