Bug fixed creating plotter

This commit is contained in:
Luis Fernando Molina committed 2020-04-03 12:50:46 +02:00
1 parent 18cecdaab8
commit cceb156661
21 files changed
+161 -140

No files matched your search

+2 -2
View File
@@ -1807,7 +1807,7 @@
],
"isTitleAllwaysVisible": true,
"initialValues": {
"code": "{\n\"initialBalance\": 0.001,\n\"minimumBalance\": 0.0001,\n\"maximumBalance\": 0.1\n}"
"code": "{\n\"initialBalance\": 1,\n\"minimumBalance\": 0.5\n}"
},
"addLeftIcons": true,
"editors": {
@@ -1849,7 +1849,7 @@
],
"isTitleAllwaysVisible": true,
"initialValues": {
"code": "{\n\"initialBalance\": 0,\n\"minimumBalance\": 0,\n\"maximumBalance\": 100\n}"
"code": "{\n\"initialBalance\": 0\n}"
},
"addLeftIcons": true,
"editors": {
@@ -24,9 +24,9 @@ function newUiObjectsFromNodes () {
function addIncludedNodes () {
blobService = newFileStorage()
if (node.code === undefined) {
node.code = '{ \n"includeDataMines": ["Masters", "Sparta", "TradingEngines"],\n"includeTradingSystems": ["WHB-BTC-USDT", "WHB-ETH-USDT", "BRR-BTC-USDT"],\n"includeSuperScripts": ["Superalgos"]\n }'
}
// if (node.code === undefined) {
node.code = '{ \n"includeDataMines": ["Masters", "Sparta", "TradingEngines"],\n"includeTradingSystems": ["Sparta-WHB-BTC-USDT", "Masters-WHB-ETH-USDT", "Sparta-BRR-BTC-USDT"],\n"includeSuperScripts": ["Masters"]\n }'
// }
let code = JSON.parse(node.code)
let includeDataMines = code.includeDataMines
+2 -1
View File
@@ -369,13 +369,14 @@ function newFloatingObject () {
if (thisObject.isPinned === true) {
/* When an object is pinned, its angle to its parent needs to be calculated since it depends on where the user places the node. */
/*
if (thisObject.payload.chainParent !== undefined) {
let x = thisObject.container.frame.position.x - thisObject.payload.chainParent.payload.floatingObject.container.frame.position.x
let y = thisObject.container.frame.position.y - thisObject.payload.chainParent.payload.floatingObject.container.frame.position.y
thisObject.payload.angle = Math.atan(y / x)
}
*/
return
}
+59 -52
View File
@@ -75,39 +75,15 @@ function newUiObjectConstructor () {
if (userAddingNew === true) {
let definition = APP_SCHEMA_MAP.get(payload.parentNode.type)
for (let i = 0; i < definition.properties.length; i++) {
let property = definition.properties[i]
if (property.childType === payload.node.type) {
if (property.type === 'array') {
let parentNode = payload.parentNode
let parentNodeArray = parentNode[property.name]
if (parentNodeArray.length > 1) { // the new node was already added
let closestSibling = parentNodeArray[parentNodeArray.length - 2]
if (closestSibling !== undefined) {
floatingObject.angleToParent = closestSibling.payload.floatingObject.angleToParent
floatingObject.distanceToParent = closestSibling.payload.floatingObject.distanceToParent
floatingObject.arrangementStyle = closestSibling.payload.floatingObject.arrangementStyle
break
}
}
}
if (floatingObject.angleToParent === undefined) {
for (let j = i - 1; j >= 0; j--) {
let siblingProperty = definition.properties[j]
if (definition.properties !== undefined) {
for (let i = 0; i < definition.properties.length; i++) {
let property = definition.properties[i]
if (property.childType === payload.node.type) {
if (property.type === 'array') {
let parentNode = payload.parentNode
let parentNodeProperty = parentNode[siblingProperty.name]
if (siblingProperty.type === 'array') {
if (parentNodeProperty.length > 0) {
let closestSibling = parentNodeProperty[parentNodeProperty.length - 1]
if (closestSibling !== undefined) {
floatingObject.angleToParent = closestSibling.payload.floatingObject.angleToParent
floatingObject.distanceToParent = closestSibling.payload.floatingObject.distanceToParent
floatingObject.arrangementStyle = closestSibling.payload.floatingObject.arrangementStyle
break
}
}
} else {
let closestSibling = parentNodeProperty
let parentNodeArray = parentNode[property.name]
if (parentNodeArray.length > 1) { // the new node was already added
let closestSibling = parentNodeArray[parentNodeArray.length - 2]
if (closestSibling !== undefined) {
floatingObject.angleToParent = closestSibling.payload.floatingObject.angleToParent
floatingObject.distanceToParent = closestSibling.payload.floatingObject.distanceToParent
@@ -116,33 +92,64 @@ function newUiObjectConstructor () {
}
}
}
for (let j = i + 1; j < definition.properties.length; j++) {
let siblingProperty = definition.properties[j]
let parentNode = payload.parentNode
let parentNodeProperty = parentNode[siblingProperty.name]
if (siblingProperty.type === 'array') {
if (parentNodeProperty.length > 0) {
let closestSibling = parentNodeProperty[parentNodeProperty.length - 1]
if (closestSibling !== undefined) {
floatingObject.angleToParent = closestSibling.payload.floatingObject.angleToParent
floatingObject.distanceToParent = closestSibling.payload.floatingObject.distanceToParent
floatingObject.arrangementStyle = closestSibling.payload.floatingObject.arrangementStyle
break
if (floatingObject.angleToParent === undefined) {
for (let j = i - 1; j >= 0; j--) {
let siblingProperty = definition.properties[j]
let parentNode = payload.parentNode
let parentNodeProperty = parentNode[siblingProperty.name]
if (parentNodeProperty !== undefined) {
if (siblingProperty.type === 'array') {
if (parentNodeProperty.length > 0) {
let closestSibling = parentNodeProperty[parentNodeProperty.length - 1]
if (closestSibling !== undefined) {
floatingObject.angleToParent = closestSibling.payload.floatingObject.angleToParent
floatingObject.distanceToParent = closestSibling.payload.floatingObject.distanceToParent
floatingObject.arrangementStyle = closestSibling.payload.floatingObject.arrangementStyle
break
}
}
} else {
let closestSibling = parentNodeProperty
if (closestSibling !== undefined) {
floatingObject.angleToParent = closestSibling.payload.floatingObject.angleToParent
floatingObject.distanceToParent = closestSibling.payload.floatingObject.distanceToParent
floatingObject.arrangementStyle = closestSibling.payload.floatingObject.arrangementStyle
break
}
}
}
} else {
let closestSibling = parentNodeProperty
if (closestSibling !== undefined) {
floatingObject.angleToParent = closestSibling.payload.floatingObject.angleToParent
floatingObject.distanceToParent = closestSibling.payload.floatingObject.distanceToParent
floatingObject.arrangementStyle = closestSibling.payload.floatingObject.arrangementStyle
break
}
for (let j = i + 1; j < definition.properties.length; j++) {
let siblingProperty = definition.properties[j]
let parentNode = payload.parentNode
let parentNodeProperty = parentNode[siblingProperty.name]
if (parentNodeProperty !== undefined) {
if (siblingProperty.type === 'array') {
if (parentNodeProperty.length > 0) {
let closestSibling = parentNodeProperty[parentNodeProperty.length - 1]
if (closestSibling !== undefined) {
floatingObject.angleToParent = closestSibling.payload.floatingObject.angleToParent
floatingObject.distanceToParent = closestSibling.payload.floatingObject.distanceToParent
floatingObject.arrangementStyle = closestSibling.payload.floatingObject.arrangementStyle
break
}
}
} else {
let closestSibling = parentNodeProperty
if (closestSibling !== undefined) {
floatingObject.angleToParent = closestSibling.payload.floatingObject.angleToParent
floatingObject.distanceToParent = closestSibling.payload.floatingObject.distanceToParent
floatingObject.arrangementStyle = closestSibling.payload.floatingObject.arrangementStyle
break
}
}
}
}
}
}
}
}
if (floatingObject.angleToParent === undefined) {
floatingObject.angleToParent = payload.parentNode.payload.floatingObject.angleToParent
floatingObject.distanceToParent = payload.parentNode.payload.floatingObject.distanceToParent
@@ -257,7 +264,7 @@ function newUiObjectConstructor () {
currentStatus: true,
label: undefined,
visible: true,
icons: ['shapes-polygon', 'shapes-polygon-body', 'shapes-polygon-border', 'clone', 'layer-manager', 'process'],
icons: ['arrangement-concave', 'arrangement-convex', 'arrangement-vertical-right', 'arrangement-vertical-left', 'arrangement-horizontal-bottom', 'arrangement-horizontal-top'],
rawRadius: 12,
targetRadius: 0,
currentRadius: 0,
+7 -1
View File
@@ -278,7 +278,13 @@ function newDesignSpace () {
'help',
'key-a',
'key-m',
'key-r'
'key-r',
'arrangement-horizontal-top',
'arrangement-convex',
'arrangement-horizontal-bottom',
'arrangement-vertical-right',
'arrangement-vertical-left',
'arrangement-concave'
]
for (let i = 0; i < iconsNames.length; i++) {
+1
View File
@@ -0,0 +1 @@
{"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":39921.72808500414,"y":29011.239540561746},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"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":39899.18996162789,"y":28906.437038861084},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"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":"Candle-Stairs","id":"90ee9733-ab7e-41a0-ac78-4a7661a27017","savedPayload":{"position":{"x":39894.34302782561,"y":28800.15900804723},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"9ade8e93-9071-422b-8cce-7a50d6dad739","savedPayload":{"position":{"x":39907.122112782716,"y":28694.36575210638},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"b5ef2cf7-3d35-45ec-848c-31970b59c04e","savedPayload":{"position":{"x":39937.14551746402,"y":28592.151020182675},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"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":39983.58525246108,"y":28496.28744561276},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"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":40045.170879966965,"y":28409.383052281606},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"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":40120.220836442306,"y":28333.805138252766},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"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":40206.68717504581,"y":28271.61367628522},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"PLine truncated
-1
View File
@@ -1 +0,0 @@
{"type":"Super Scripts","name":"Superalgos","code":"{ \n\"codeName\": \"Superalgos\"\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":39921.72808500414,"y":29011.239540561746},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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":39899.18996162789,"y":28906.437038861084},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volumes","id":"1a366aef-efef-470e-88e0-2a6fbe4dd91f"}}},{"type":"Data Product","name":"Candle-Stairs","id":"90ee9733-ab7e-41a0-ac78-4a7661a27017","savedPayload":{"position":{"x":39894.34302782561,"y":28800.15900804723},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Candle-Stairs","id":"642474e9-da61-4168-97dc-7f7869bebc02"}}},{"type":"Data Product","name":"Volume-Stairs","id":"9ade8e93-9071-422b-8cce-7a50d6dad739","savedPayload":{"position":{"x":39907.122112782716,"y":28694.36575210638},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false},"referenceParent":{"type":"Product Definition","name":"Volume-Stairs","id":"846e9572-c4d6-4c7e-942e-c82402c5ecea"}}},{"type":"Data Product","name":"Bollinger Bands","id":"b5ef2cf7-3d35-45ec-848c-31970b59c04e","savedPayload":{"position":{"x":39937.14551746402,"y":28592.151020182675},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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":39983.58525246108,"y":28496.28744561276},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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":40045.170879966965,"y":28409.383052281606},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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":40120.220836442306,"y":28333.805138252766},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":2,"distanceToParent":3},"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":40206.68717504581,"y":28271.61367628522},"targetPosition":{"x":40538.570141254444,"y":28824.318034921434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"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","savedPaLine truncated
+17 -7
View File
@@ -187,13 +187,6 @@
/* Set all default values */
bot.VALUES_TO_USE = {
baseAsset: "BTC",
initialBalanceA: 0.001,
initialBalanceB: 0,
minimumBalanceA: 0.0005,
minimumBalanceB: 0,
maximumBalanceA: 0.002,
maximumBalanceB: 0,
slippage: {
positionRate: 0,
stopLoss: 0,
@@ -283,6 +276,23 @@
bot.VALUES_TO_USE.maximumBalanceA = 0
}
}
/* Solve when values are missing. */
if (bot.VALUES_TO_USE.minimumBalanceA === undefined) {
bot.VALUES_TO_USE.minimumBalanceA = 0
}
if (bot.VALUES_TO_USE.minimumBalanceB === undefined) {
bot.VALUES_TO_USE.minimumBalanceB = 0
}
if (bot.VALUES_TO_USE.maximumBalanceA === undefined) {
bot.VALUES_TO_USE.maximumBalanceA = 10000000000000000
}
if (bot.VALUES_TO_USE.maximumBalanceB === undefined) {
bot.VALUES_TO_USE.maximumBalanceB = 10000000000000000
}
}
}
}
+67 -70
View File
@@ -1114,104 +1114,101 @@
minimumBalance = bot.VALUES_TO_USE.minimumBalanceB
maximumBalance = bot.VALUES_TO_USE.maximumBalanceB
}
if (minimumBalance === undefined) {
minimumBalance = 0
let stopRunningDate = new Date(candle.begin)
if (balance <= minimumBalance) {
tradingSystem.error = "Min Balance @ " + stopRunningDate.toLocaleString()
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> " + tradingSystem.error ); }
afterLoop()
return
}
if (maximumBalance === undefined) {
maximumBalance = 10000000000000000
if (balance >= maximumBalance) {
tradingSystem.error = "Max Balance @ " + stopRunningDate.toLocaleString()
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> " + tradingSystem.error); }
afterLoop()
return
}
if (balance > minimumBalance && balance < maximumBalance) {
/*
Here we need to pick a strategy, or if there is not suitable strategy for the current
market conditions, we pass until the next period.
/*
Here we need to pick a strategy, or if there is not suitable strategy for the current
market conditions, we pass until the next period.
To pick a new strategy we will evaluate what we call the trigger on. Once we enter
into one strategy, we will ignore market conditions for others. However there is also
a strategy trigger off which can be hit before taking a position. If hit, we would
be outside a strategy again and looking for the condition to enter all over again.
To pick a new strategy we will evaluate what we call the trigger on. Once we enter
into one strategy, we will ignore market conditions for others. However there is also
a strategy trigger off which can be hit before taking a position. If hit, we would
be outside a strategy again and looking for the condition to enter all over again.
*/
*/
for (let j = 0; j < tradingSystem.strategies.length; j++) {
for (let j = 0; j < tradingSystem.strategies.length; j++) {
let strategy = tradingSystem.strategies[j];
let strategy = tradingSystem.strategies[j];
let triggerStage = strategy.triggerStage
let triggerStage = strategy.triggerStage
if (triggerStage !== undefined) {
if (triggerStage !== undefined) {
if (triggerStage.triggerOn !== undefined) {
if (triggerStage.triggerOn !== undefined) {
for (let k = 0; k < triggerStage.triggerOn.situations.length; k++) {
for (let k = 0; k < triggerStage.triggerOn.situations.length; k++) {
let situation = triggerStage.triggerOn.situations[k];
let passed = true;
let situation = triggerStage.triggerOn.situations[k];
let passed = true;
for (let m = 0; m < situation.conditions.length; m++) {
for (let m = 0; m < situation.conditions.length; m++) {
let condition = situation.conditions[m];
let key = j + '-' + 'triggerStage' + '-' + 'triggerOn' + '-' + k + '-' + m;
let condition = situation.conditions[m];
let key = j + '-' + 'triggerStage' + '-' + 'triggerOn' + '-' + k + '-' + m;
let value = false
if (conditions.get(key) !== undefined) {
value = conditions.get(key).value;
}
if (value === false) { passed = false; }
let value = false
if (conditions.get(key) !== undefined) {
value = conditions.get(key).value;
}
if (passed) {
if (value === false) { passed = false; }
}
strategyStage = 'Trigger Stage';
checkAnnouncements(triggerStage)
if (passed) {
currentStrategyIndex = j;
currentStrategy.begin = candle.begin;
currentStrategy.beginRate = candle.min;
currentStrategy.endRate = candle.min; // In case the strategy does not get exited
currentStrategy.triggerOnSituation = situation.name
strategyStage = 'Trigger Stage';
checkAnnouncements(triggerStage)
if (processingDailyFiles) {
if (positionedAtYesterday) {
yesterday.strategyStage = strategyStage;
yesterday.currentStrategyIndex = currentStrategyIndex;
yesterday.currentStrategy.begin = currentStrategy.begin;
yesterday.currentStrategy.beginRate = currentStrategy.beginRate;
yesterday.currentStrategy.endRate = currentStrategy.endRate;
yesterday.currentStrategy.triggerOnSituation = currentStrategy.triggerOnSituation;
}
currentStrategyIndex = j;
currentStrategy.begin = candle.begin;
currentStrategy.beginRate = candle.min;
currentStrategy.endRate = candle.min; // In case the strategy does not get exited
currentStrategy.triggerOnSituation = situation.name
if (processingDailyFiles) {
if (positionedAtYesterday) {
yesterday.strategyStage = strategyStage;
yesterday.currentStrategyIndex = currentStrategyIndex;
yesterday.currentStrategy.begin = currentStrategy.begin;
yesterday.currentStrategy.beginRate = currentStrategy.beginRate;
yesterday.currentStrategy.endRate = currentStrategy.endRate;
yesterday.currentStrategy.triggerOnSituation = currentStrategy.triggerOnSituation;
}
distanceToLast.triggerOn = 1;
if (processingDailyFiles) {
if (positionedAtYesterday) {
yesterday.distanceToLast.triggerOn = distanceToLast.triggerOn
}
}
checkAnnouncements(triggerStage.triggerOn)
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Switching to Trigger Stage because conditions at Trigger On Event were met."); }
break;
}
distanceToLast.triggerOn = 1;
if (processingDailyFiles) {
if (positionedAtYesterday) {
yesterday.distanceToLast.triggerOn = distanceToLast.triggerOn
}
}
checkAnnouncements(triggerStage.triggerOn)
if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] runSimulation -> loop -> Switching to Trigger Stage because conditions at Trigger On Event were met."); }
break;
}
}
}
}
} else {
let stopRunningDate = new Date(candle.begin)
if (balance <= minimumBalance) {
tradingSystem.error = "Min Balance @ " + stopRunningDate.toLocaleString()
}
if (balance >= maximumBalance) {
tradingSystem.error = "Max Balance @ " + stopRunningDate.toLocaleString()
}
}
}
/* Trigger Off Condition */
-1
View File
@@ -1 +0,0 @@
{"type":"Trading System","name":"Bull Run Rider for BTC/USDT","code":"{ \n\"codeName\": \"BRR-BTC-USDT\"\n}","strategies":[{"type":"Strategy","name":"My Strategy","triggerStage":{"type":"Trigger Stage","triggerOn":{"type":"Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max > chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"1e07e38a-c469-4f3f-b7e8-dccd9f94c546","savedPayload":{"position":{"x":39365.82836640363,"y":18024.168218963674},"targetPosition":{"x":39580.43309418583,"y":18013.241510980984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"a1c434c4-5787-4906-8157-1e355999bba8","savedPayload":{"position":{"x":39580.43309418583,"y":18013.241510980984},"targetPosition":{"x":39795.82183026887,"y":18002.339607729755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.max > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation\n","id":"3fb95a71-efe8-45cf-be43-8b0d94d2f420","savedPayload":{"position":{"x":39560.74976017509,"y":17641.37546255235},"targetPosition":{"x":39677.97500609048,"y":17821.555824077757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"f69f2608-49bd-4b04-b8f8-497675f819fe","savedPayload":{"position":{"x":39677.97500609048,"y":17821.555824077757},"targetPosition":{"x":39795.82183026887,"y":18002.339607729755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"1dfb0689-df0c-4184-9c09-683d012c9dfe","savedPayload":{"position":{"x":39795.82183026887,"y":18002.339607729755},"targetPosition":{"x":39987.61800165299,"y":18099.825253218787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"32d2ee8c-71bd-4e4c-8671-04bbc4a16734","savedPayload":{"position":{"x":39987.61800165299,"y":18099.825253218787},"targetPosition":{"x":40369.80868599963,"y":18293.946872397046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage","id":"a1dd4467-b96b-4084-bd9b-056c6495de95","savedPayload":{"position":{"x":40036.90604970189,"y":17272.087105877887},"targetPosition":{"x":40103.63478212326,"y":17476.753747464914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"b527026c-4be3-4baf-bbde-83ebfd17e567","savedPayload":{"position":{"x":40103.63478212326,"y":17476.753747464914},"targetPosition":{"x":40170.46021986034,"y":17681.58479868604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"41cbb7ba-020c-4e96-a6a7-c3ef8c25b6fd","savedPayload":{"position":{"x":40170.46021986034,"y":17681.58479868604},"targetPosition":{"x":40237.14613497818,"y":17886.475906641663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1af9fdb8-7316-4374-84f2-1b946741b5c6","savedPayload":{"position":{"x":40237.14613497818,"y":17886.475906641663},"targetPosition":{"x":40369.80868599963,"y":18293.946872397046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.max > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation\n","id":"0c15bd8b-b59c-4a2c-b65a-b063aec45216","savedPayload":{"position":{"x":40373.57878568003,"y":17396.87030065395},"targetPosition":{"x":40513.12406224243,"y":17561.3315710958},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"e022ab25-c7d3-439b-bfd7-1217c6abfbfe","savedPayload":{"positionLine truncated
@@ -0,0 +1 @@
{"type":"Trading System","name":"Weak-Hands Buster for ETH/USDT","code":"{ \n\"codeName\": \"Masters-WHB-ETH-USDT\"\n}","strategies":[{"type":"Strategy","name":"My Strategy","triggerStage":{"type":"Trigger Stage","triggerOn":{"type":"Trigger On Event","situations":[{"type":"Situation","name":"volatility breakout","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 5","id":"162a0f76-eae2-431e-bc10-d4602b5cf225","savedPayload":{"position":{"x":38172.58367660867,"y":17286.752383406387},"targetPosition":{"x":39035.37032280493,"y":17354.416856204756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"08d9dca3-240d-463f-b280-067b0cfb0214","savedPayload":{"position":{"x":39035.37032280493,"y":17354.416856204756},"targetPosition":{"x":39898.355047665624,"y":17421.6498073289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"Channel 12 down","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"3e7da14d-0b62-4208-a1fb-91d8911e20ad","savedPayload":{"position":{"x":38205.07581912424,"y":17062.120593848973},"targetPosition":{"x":39051.618610510384,"y":17241.93177605387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"6f5cb54b-b42e-4500-9f60-e8f35dc5ff15","savedPayload":{"position":{"x":39051.618610510384,"y":17241.93177605387},"targetPosition":{"x":39898.355047665624,"y":17421.6498073289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.popularSMA.sma200 - chart.at01hs.popularSMA.sma100 < 10","id":"17ec7aa6-b0fc-426a-b9f9-908f45b06e96","savedPayload":{"position":{"x":38266.59041746168,"y":16843.949092741215},"targetPosition":{"x":39082.3932419648,"y":17132.766967755197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"1b2d9025-3e77-4f49-ad39-74111f970421","savedPayload":{"position":{"x":39082.3932419648,"y":17132.766967755197},"targetPosition":{"x":39898.355047665624,"y":17421.6498073289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"Convergence Divergence","code":"let currentDiff = chart.at01hs.base6SMA.sma120- chart.at01hs.base6SMA.sma60\nlet previousDiff = chart.at01hs.base6SMA.previous.sma120- chart.at01hs.base6SMA.previous.sma60\nif ( currentDiff > 5) { \n if ( previousDiff > currentDiff ) { true} else {false}\n} else {true}\n","id":"d7309167-bc70-459e-9a84-4bb25bfa5042","savedPayload":{"position":{"x":38356.08890756605,"y":16635.681370900234},"targetPosition":{"x":39127.17474393381,"y":17028.56062202951},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"21cfee05-5d30-44bd-b254-b3b8a63e938f","savedPayload":{"position":{"x":39127.17474393381,"y":17028.56062202951},"targetPosition":{"x":39898.355047665624,"y":17421.6498073289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"(\n (chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\") &&\n (chart.at01hs.bollingerSubChannel.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.slope === \"Gentle\")\n) ||\n(\n (chart.at01hs.bollingerSubChannel.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.slope === \"Gentle\") &&\n (chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Gentle\")\n) ||\n(\n (chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Gentle\") &&\n (chart.at01hs.bollingerSubChannel.previous.previous.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.previous.previous.slope === \"Gentle\")\n) ","id":"80Line truncated
+1
View File
@@ -0,0 +1 @@
{"type":"Trading System","name":"Bull Run Rider for BTC/USDT","code":"{ \n\"codeName\": \"Sparta-BRR-BTC-USDT\"\n}","strategies":[{"type":"Strategy","name":"My Strategy","triggerStage":{"type":"Trigger Stage","triggerOn":{"type":"Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.max > chart.at01hs.bollingerBand.movingAverage + chart.at01hs.bollingerBand.deviation","id":"1e07e38a-c469-4f3f-b7e8-dccd9f94c546","savedPayload":{"position":{"x":39365.82836640363,"y":18024.168218963674},"targetPosition":{"x":39580.43309418583,"y":18013.241510980984},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"a1c434c4-5787-4906-8157-1e355999bba8","savedPayload":{"position":{"x":39580.43309418583,"y":18013.241510980984},"targetPosition":{"x":39795.82183026887,"y":18002.339607729755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.max > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation\n","id":"3fb95a71-efe8-45cf-be43-8b0d94d2f420","savedPayload":{"position":{"x":39560.74976017509,"y":17641.37546255235},"targetPosition":{"x":39677.97500609048,"y":17821.555824077757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"f69f2608-49bd-4b04-b8f8-497675f819fe","savedPayload":{"position":{"x":39677.97500609048,"y":17821.555824077757},"targetPosition":{"x":39795.82183026887,"y":18002.339607729755},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"1dfb0689-df0c-4184-9c09-683d012c9dfe","savedPayload":{"position":{"x":39795.82183026887,"y":18002.339607729755},"targetPosition":{"x":39987.61800165299,"y":18099.825253218787},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"32d2ee8c-71bd-4e4c-8671-04bbc4a16734","savedPayload":{"position":{"x":39987.61800165299,"y":18099.825253218787},"targetPosition":{"x":40369.80868599963,"y":18293.946872397046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage","id":"a1dd4467-b96b-4084-bd9b-056c6495de95","savedPayload":{"position":{"x":40036.90604970189,"y":17272.087105877887},"targetPosition":{"x":40103.63478212326,"y":17476.753747464914},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"b527026c-4be3-4baf-bbde-83ebfd17e567","savedPayload":{"position":{"x":40103.63478212326,"y":17476.753747464914},"targetPosition":{"x":40170.46021986034,"y":17681.58479868604},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"41cbb7ba-020c-4e96-a6a7-c3ef8c25b6fd","savedPayload":{"position":{"x":40170.46021986034,"y":17681.58479868604},"targetPosition":{"x":40237.14613497818,"y":17886.475906641663},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"1af9fdb8-7316-4374-84f2-1b946741b5c6","savedPayload":{"position":{"x":40237.14613497818,"y":17886.475906641663},"targetPosition":{"x":40369.80868599963,"y":18293.946872397046},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"takePosition":{"type":"Take Position Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.previous.max > chart.at01hs.bollingerBand.previous.movingAverage + chart.at01hs.bollingerBand.previous.deviation\n","id":"0c15bd8b-b59c-4a2c-b65a-b063aec45216","savedPayload":{"position":{"x":40373.57878568003,"y":17396.87030065395},"targetPosition":{"x":40513.12406224243,"yLine truncated
+1
View File
@@ -0,0 +1 @@
{"type":"Trading System","name":"Weak-Hands Buster for BTC/USDT","code":"{ \n\"codeName\": \"Sparta-WHB-BTC-USDT\"\n}","strategies":[{"type":"Strategy","name":"My Strategy","triggerStage":{"type":"Trigger Stage","triggerOn":{"type":"Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && chart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && chart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","id":"91f3043a-8e9e-43e0-aca3-d740f527e043","savedPayload":{"position":{"x":39599.63256997504,"y":24580.268859831438},"targetPosition":{"x":39786.17768918777,"y":24517.561036570896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"d61ab29a-c3c4-4e3b-8825-245a322c431a","savedPayload":{"position":{"x":39786.17768918777,"y":24517.561036570896},"targetPosition":{"x":39969.2509900202,"y":24424.054231209757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","id":"03a5e03d-c910-4e6c-b63f-0d018e413b02","savedPayload":{"position":{"x":39562.269755460446,"y":24359.423059151686},"targetPosition":{"x":39765.71044180626,"y":24391.88707322271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"16fc43c1-d0c3-42e3-9ba8-cba5c21bafd5","savedPayload":{"position":{"x":39765.71044180626,"y":24391.88707322271},"targetPosition":{"x":39969.2509900202,"y":24424.054231209757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"09012cab-d69d-4763-b014-7f984c1784dc","savedPayload":{"position":{"x":39677.802933641455,"y":24132.822941494287},"targetPosition":{"x":39823.097518575516,"y":24278.34303476004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"89b8b2f6-b215-4e21-a2c8-4aebb11c2e92","savedPayload":{"position":{"x":39823.097518575516,"y":24278.34303476004},"targetPosition":{"x":39969.2509900202,"y":24424.054231209757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || chart.at03hs.percentageBandwidth.movingAverage >= 30 || chart.at04hs.percentageBandwidth.movingAverage >= 30 || chart.at06hs.percentageBandwidth.movingAverage >= 30 || chart.at08hs.percentageBandwidth.movingAverage >= 30","id":"5c98aae6-6601-405b-bc15-e8242092ccd1","savedPayload":{"position":{"x":39904.49263334113,"y":24017.861556857104},"targetPosition":{"x":39936.97933091762,"y":24220.69914182403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"895c4234-e3a8-477d-a5a9-582d81feecc0","savedPayload":{"position":{"x":39936.97933091762,"y":24220.69914182403},"targetPosition":{"x":39969.2509900202,"y":24424.054231209757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"aac48055-7ba2-43af-9b39-7bf71195a3e2","savedPayload":{"position":{"x":39969.2509900202,"y":24424.054231209757},"targetPosition":{"x":40152.30167454365,"y":24516.740667713384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"42e0cd22-e34e-4d51-9252-10bc615949b5","savedPayload":{"position":{"x":40152.30167454365,"y":24516.740667713384},"targetPosition":{"x":40334.90552408193,"y":24608.92685167764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"typLine truncated
-1
View File
@@ -1 +0,0 @@
{"type":"Trading System","name":"Weak-Hands Buster for BTC/USDT","code":"{ \n\"codeName\": \"WHB-BTC-USDT\"\n}","strategies":[{"type":"Strategy","name":"My Strategy","triggerStage":{"type":"Trigger Stage","triggerOn":{"type":"Trigger On Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage && chart.at01hs.candle.previous.close < chart.at01hs.bollingerBand.previous.movingAverage && chart.at01hs.candle.previous.previous.close < chart.at01hs.bollingerBand.previous.previous.movingAverage","id":"91f3043a-8e9e-43e0-aca3-d740f527e043","savedPayload":{"position":{"x":39599.63256997504,"y":24580.268859831438},"targetPosition":{"x":39786.17768918777,"y":24517.561036570896},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"d61ab29a-c3c4-4e3b-8825-245a322c431a","savedPayload":{"position":{"x":39786.17768918777,"y":24517.561036570896},"targetPosition":{"x":39969.2509900202,"y":24424.054231209757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.bollingerBand.deviation > 200","id":"03a5e03d-c910-4e6c-b63f-0d018e413b02","savedPayload":{"position":{"x":39562.269755460446,"y":24359.423059151686},"targetPosition":{"x":39765.71044180626,"y":24391.88707322271},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"16fc43c1-d0c3-42e3-9ba8-cba5c21bafd5","savedPayload":{"position":{"x":39765.71044180626,"y":24391.88707322271},"targetPosition":{"x":39969.2509900202,"y":24424.054231209757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close < chart.at01hs.bollingerBand.movingAverage - chart.at01hs.bollingerBand.deviation","id":"09012cab-d69d-4763-b014-7f984c1784dc","savedPayload":{"position":{"x":39677.802933641455,"y":24132.822941494287},"targetPosition":{"x":39823.097518575516,"y":24278.34303476004},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"89b8b2f6-b215-4e21-a2c8-4aebb11c2e92","savedPayload":{"position":{"x":39823.097518575516,"y":24278.34303476004},"targetPosition":{"x":39969.2509900202,"y":24424.054231209757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at02hs.percentageBandwidth.movingAverage >= 30 || chart.at03hs.percentageBandwidth.movingAverage >= 30 || chart.at04hs.percentageBandwidth.movingAverage >= 30 || chart.at06hs.percentageBandwidth.movingAverage >= 30 || chart.at08hs.percentageBandwidth.movingAverage >= 30","id":"5c98aae6-6601-405b-bc15-e8242092ccd1","savedPayload":{"position":{"x":39904.49263334113,"y":24017.861556857104},"targetPosition":{"x":39936.97933091762,"y":24220.69914182403},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3},"uiObject":{}}},"id":"895c4234-e3a8-477d-a5a9-582d81feecc0","savedPayload":{"position":{"x":39936.97933091762,"y":24220.69914182403},"targetPosition":{"x":39969.2509900202,"y":24424.054231209757},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"id":"aac48055-7ba2-43af-9b39-7bf71195a3e2","savedPayload":{"position":{"x":39969.2509900202,"y":24424.054231209757},"targetPosition":{"x":40152.30167454365,"y":24516.740667713384},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{"isRunning":false}}}],"announcements":[],"id":"42e0cd22-e34e-4d51-9252-10bc615949b5","savedPayload":{"position":{"x":40152.30167454365,"y":24516.740667713384},"targetPosition":{"x":40334.90552408193,"y":24608.92685167764},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2},"uiObject":{"isRunning":false}}},"triggerOff":{"type":"Trigger Off Event","situations":[{"type":"Situation","name":"New Situation","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","code":"chart.at01hs.candle.close > chart.at01hs.bollingerBand.movingAverage","id":"33996f6e-f51b-4667-9f26-36fc8b586eca","savedPayload":{"position":{"x":40055.23249664759,"y":23745.636147864487},Line truncated
-1
View File
@@ -1 +0,0 @@
{"type":"Trading System","name":"Weak-Hands Buster for ETH/USDT","code":"{ \n\"codeName\": \"WHB-ETH-USDT\"\n}","strategies":[{"type":"Strategy","name":"My Strategy","triggerStage":{"type":"Trigger Stage","triggerOn":{"type":"Trigger On Event","situations":[{"type":"Situation","name":"volatility breakout","conditions":[{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.bollingerBand.deviation < 5","id":"162a0f76-eae2-431e-bc10-d4602b5cf225","savedPayload":{"position":{"x":38172.58367660867,"y":17286.752383406387},"targetPosition":{"x":39035.37032280493,"y":17354.416856204756},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"08d9dca3-240d-463f-b280-067b0cfb0214","savedPayload":{"position":{"x":39035.37032280493,"y":17354.416856204756},"targetPosition":{"x":39898.355047665624,"y":17421.6498073289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"Channel 12 down","code":"chart.at06hs.bollingerChannel.direction === \"Down\"","id":"3e7da14d-0b62-4208-a1fb-91d8911e20ad","savedPayload":{"position":{"x":38205.07581912424,"y":17062.120593848973},"targetPosition":{"x":39051.618610510384,"y":17241.93177605387},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"6f5cb54b-b42e-4500-9f60-e8f35dc5ff15","savedPayload":{"position":{"x":39051.618610510384,"y":17241.93177605387},"targetPosition":{"x":39898.355047665624,"y":17421.6498073289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"chart.at01hs.popularSMA.sma200 - chart.at01hs.popularSMA.sma100 < 10","id":"17ec7aa6-b0fc-426a-b9f9-908f45b06e96","savedPayload":{"position":{"x":38266.59041746168,"y":16843.949092741215},"targetPosition":{"x":39082.3932419648,"y":17132.766967755197},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"1b2d9025-3e77-4f49-ad39-74111f970421","savedPayload":{"position":{"x":39082.3932419648,"y":17132.766967755197},"targetPosition":{"x":39898.355047665624,"y":17421.6498073289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"Convergence Divergence","code":"let currentDiff = chart.at01hs.base6SMA.sma120- chart.at01hs.base6SMA.sma60\nlet previousDiff = chart.at01hs.base6SMA.previous.sma120- chart.at01hs.base6SMA.previous.sma60\nif ( currentDiff > 5) { \n if ( previousDiff > currentDiff ) { true} else {false}\n} else {true}\n","id":"d7309167-bc70-459e-9a84-4bb25bfa5042","savedPayload":{"position":{"x":38356.08890756605,"y":16635.681370900234},"targetPosition":{"x":39127.17474393381,"y":17028.56062202951},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3},"uiObject":{}}},"id":"21cfee05-5d30-44bd-b254-b3b8a63e938f","savedPayload":{"position":{"x":39127.17474393381,"y":17028.56062202951},"targetPosition":{"x":39898.355047665624,"y":17421.6498073289},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":4,"distanceToParent":3},"uiObject":{"isRunning":false}}},{"type":"Condition","name":"New Condition","javascriptCode":{"type":"Javascript Code","name":"New Javascript Code","code":"(\n (chart.at01hs.bollingerSubChannel.slope === \"Side\" || chart.at01hs.bollingerSubChannel.slope === \"Gentle\") &&\n (chart.at01hs.bollingerSubChannel.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.slope === \"Gentle\")\n) ||\n(\n (chart.at01hs.bollingerSubChannel.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.slope === \"Gentle\") &&\n (chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Gentle\")\n) ||\n(\n (chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.previous.slope === \"Gentle\") &&\n (chart.at01hs.bollingerSubChannel.previous.previous.previous.slope === \"Side\" || chart.at01hs.bollingerSubChannel.previous.previous.previous.slope === \"Gentle\")\n) ","id":"80120eea-0b87-416c-8944-047b60e19831","savedPayload":{"position":{"x":38472.19777985389,"y":16440.65325354818},"targetPosition":{"x":39185.33295233532,"y":16930.907229808905},"flLine truncated
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB