Lastes fixes

This commit is contained in:
Luis Fernando Molina committed 2020-10-12 14:23:04 +02:00
1 parent b5444d6c77
commit 0c66f27beb
6 files changed
+82 -158

No files matched your search

+4 -1
View File
@@ -50,7 +50,10 @@
onresize="onResize()">
<div id="contributors" class="credits">
<p>Superalgos is <span class="red">open-source</span> and <span class="red">free</span> thanks to the generosity of contributors:</p>
<p>Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis, Jeff Braun, rico4dev, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, and Francisco J. Santillán.</p>
<p>Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis,
Jeff Braun, rico4dev, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, Francisco J. Santillán, Viktoria B.,
Javier A., Gustavo J., Romina, Pedro P., Thais M., Loui M., Natalia M., Bashar A., Carlos V., Diego M.,
Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M. and Nicanor M.</p>
<p><span class="red">Help us keep Superalgos free for all. Become a contributor!</span></p>
</div>
<div id="masterApp"></div>
@@ -169,6 +169,7 @@ function newFloatingObject() {
if (thisObject.payload.parentNode.payload.floatingObject !== undefined) {
if (thisObject.payload.parentNode.payload.floatingObject.isCollapsed === true) {
thisObject.payload.parentNode.payload.floatingObject.isCollapsed = false
thisObject.payload.parentNode.payload.floatingObject.collapsedManually = false
thisObject.payload.parentNode.payload.floatingObject.unCollapseParent()
}
}
+1 -1
View File
@@ -1 +1 @@
{"type":"Data Mine","name":"Masters","config":"{\n\"codeName\": \"Masters\"\n}","sensorBots":[{"type":"Sensor Bot","name":"Exchange Raw Data","config":"{\n\"codeName\": \"Exchange-Raw-Data\",\n\"repo\": \"Exchange-Raw-Data-Sensor-Bot\"\n}","processes":[{"type":"Process Definition","name":"Historic-OHLCVs","config":"{\n \"codeName\": \"Historic-OHLCVs\",\n \"description\": \"Retrieves and saves historical maket data\",\n \"startMode\": {\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[],"outputDatasetFolders":[],"id":"dfe2556e-a765-4e38-9d30-7f91090c0069","savedPayload":{"position":{"x":19696.65896528582,"y":18077.80666168302},"targetPosition":{"x":19676.617425695335,"y":18484.33639924593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"ea39c98b-18e2-44ce-9f7f-86a8a76a688a","savedPayload":{"position":{"x":20113.534021268813,"y":17812.56375630177},"targetPosition":{"x":19895.316491438505,"y":18148.31980838774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"5c7fae5a-6da6-4864-a167-f2f21d578c72","savedPayload":{"position":{"x":19895.316491438505,"y":18148.31980838774},"targetPosition":{"x":19676.617425695335,"y":18484.33639924593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e","savedPayload":{"position":{"x":20033.71582860312,"y":18302.406526432995},"targetPosition":{"x":19676.617425695335,"y":18484.33639924593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","id":"957e7e3a-b167-40be-93b5-9ba4ceff56e5","savedPayload":{"position":{"x":20077.30856507894,"y":18504.680081128765},"targetPosition":{"x":19676.617425695335,"y":18484.33639924593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd","savedPayload":{"position":{"x":20021.51506449239,"y":18692.64493952324},"targetPosition":{"x":19676.617425695335,"y":18484.33639924593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc","savedPayload":{"position":{"x":19676.617425695335,"y":18484.33639924593},"targetPosition":{"x":19280.707614323983,"y":18686.55263969416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Trades","config":"{\n\"codeName\": \"Trades\"\n}","datasets":[{"type":"Dataset Definition","name":"Trades","config":"{\n\"codeName\": \"Trades\"\n}","id":"fbb7c17e-a909-4fa2-b3c5-eb8ca86297c4","savedPayload":{"position":{"x":19941.732540593195,"y":18582.456194349146},"targetPosition":{"x":19743.31504137297,"y":18614.06022300575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"38dbb942-a15b-450b-a867-02a94030965f","savedPayload":{"position":{"x":19743.31504137297,"y":18614.06022300575},"targetPosition":{"x":19280.707614323983,"y":18686.55263969416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Candles","config":"{\n\"codeName\": \"Candles\"\n}","datasets":[{"type":"Dataset Definition","name":"One-Min","config":"{\n\"codeName\": \"One-Min\"\n}","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c","savedPayload":{"position":{"x":19937.702085675992,Line truncated
{"type":"Data Mine","name":"Masters","config":"{\n\"codeName\": \"Masters\"\n}","sensorBots":[{"type":"Sensor Bot","name":"Exchange Raw Data","config":"{\n\"codeName\": \"Exchange-Raw-Data\",\n\"repo\": \"Exchange-Raw-Data-Sensor-Bot\"\n}","processes":[{"type":"Process Definition","name":"Historic-OHLCVs","config":"{\n \"codeName\": \"Historic-OHLCVs\",\n \"description\": \"Retrieves and saves historical maket data\",\n \"startMode\": {\n \"noTime\": {\n \"run\": \"true\"\n },\n \"fixedInterval\": {\n \"run\": \"false\",\n \"interval\": 0\n }\n },\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000\n}","processOutput":{"type":"Process Output","name":"New Process Output","outputDatasets":[],"outputDatasetFolders":[],"id":"dfe2556e-a765-4e38-9d30-7f91090c0069","savedPayload":{"position":{"x":19696.65896528582,"y":18077.80666168302},"targetPosition":{"x":19676.617425695335,"y":18484.33639924593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"processDependencies":{"type":"Process Dependencies","name":"New Process Dependencies","statusDependencies":[{"type":"Status Dependency","name":"Exchange Raw Data Historic-OHLCVs","config":"{\n \"mainUtility\": \"Self Reference\"\n}","id":"ea39c98b-18e2-44ce-9f7f-86a8a76a688a","savedPayload":{"position":{"x":20113.534021268813,"y":17812.56375630177},"targetPosition":{"x":19895.316491438505,"y":18148.31980838774},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{},"referenceParent":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e"}}}],"dataDependencies":[],"dataMineDataDependencies":[],"id":"5c7fae5a-6da6-4864-a167-f2f21d578c72","savedPayload":{"position":{"x":19895.316491438505,"y":18148.31980838774},"targetPosition":{"x":19676.617425695335,"y":18484.33639924593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"statusReport":{"type":"Status Report","name":"New Status Report","id":"181c7c34-7243-497a-9ddb-1b0067c6d66e","savedPayload":{"position":{"x":20033.71582860312,"y":18302.406526432995},"targetPosition":{"x":19676.617425695335,"y":18484.33639924593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionStartedEvent":{"type":"Execution Started Event","name":"","id":"957e7e3a-b167-40be-93b5-9ba4ceff56e5","savedPayload":{"position":{"x":20077.30856507894,"y":18504.680081128765},"targetPosition":{"x":19676.617425695335,"y":18484.33639924593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"executionFinishedEvent":{"type":"Execution Finished Event","name":"New Execution Finished Event","id":"fe40a546-43ee-49df-908a-7e72f598f0cd","savedPayload":{"position":{"x":20021.51506449239,"y":18692.64493952324},"targetPosition":{"x":19676.617425695335,"y":18484.33639924593},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{}}},"id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc","savedPayload":{"position":{"x":19676.617425695335,"y":18484.33639924593},"targetPosition":{"x":19280.707614323983,"y":18686.55263969416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"products":[{"type":"Product Definition","name":"Trades","config":"{\n\"codeName\": \"Trades\"\n}","datasets":[{"type":"Dataset Definition","name":"Trades","config":"{\n\"codeName\": \"Trades\"\n}","id":"fbb7c17e-a909-4fa2-b3c5-eb8ca86297c4","savedPayload":{"position":{"x":19941.732540593195,"y":18582.456194349146},"targetPosition":{"x":19743.31504137297,"y":18614.06022300575},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":2,"arrangementStyle":0},"uiObject":{}}}],"id":"38dbb942-a15b-450b-a867-02a94030965f","savedPayload":{"position":{"x":19743.31504137297,"y":18614.06022300575},"targetPosition":{"x":19280.707614323983,"y":18686.55263969416},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Product Definition","name":"Candles","config":"{\n\"codeName\": \"Candles\"\n}","datasets":[{"type":"Dataset Definition","name":"One-Min","config":"{\n\"codeName\": \"One-Min\"\n}","id":"1c3696e4-c28e-4744-9100-706d6dce0c3c","savedPayload":{"position":{"x":19937.702085675992,Line truncated
@@ -0,0 +1 @@
{"type":"Workspace","name":"Weak-hands Buster v2","rootNodes":[{"type":"Network","name":"My Network","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","dataMining":{"type":"Data Mining","name":"New Data Mining","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","taskManagers":[{"type":"Task Manager","name":"Sparta","tasks":[{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","config":"{}","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","id":"9adffd60-8756-44f0-9290-692711f43349","savedPayload":{"position":{"x":23796.023627541625,"y":29309.637679073698},"targetPosition":{"x":24089.467907761766,"y":29372.011186319025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","id":"559fc728-018a-4e8e-a5fa-1e37958e4f6c","savedPayload":{"position":{"x":23996.762809449283,"y":29086.69423143048},"targetPosition":{"x":24089.467907761766,"y":29372.011186319025},"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":"82a8c05f-a6f6-4728-8271-7b327c2b72ee","savedPayload":{"position":{"x":24089.467907761766,"y":29372.011186319025},"targetPosition":{"x":24312.411355404984,"y":29572.750368226683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8ae4fc50-8c1f-4e45-9ffd-fad368816b9a","savedPayload":{"position":{"x":24312.411355404984,"y":29572.750368226683},"targetPosition":{"x":24535.3548030482,"y":29773.48955013434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51b49b9d-cb97-4d98-ad8f-9f691320bac2","savedPayload":{"position":{"x":24535.3548030482,"y":29773.48955013434},"targetPosition":{"x":24758.29825069142,"y":29974.228732042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"63728769-73e4-474e-8aa3-0d82bedca08e","savedPayload":{"position":{"x":24758.29825069142,"y":29974.228732042},"targetPosition":{"x":24981.241698334637,"y":30174.96791394966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Tasks","name":"Masters","taskManagers":[{"type":"Task Manager","name":"Masters","tasks":[{"type":"Task","name":"Exchange Raw Data","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","id":"149bc037-9762-4737-b1b8-945b5ccee230","savedPayload":{"position":{"x":24503.771167102317,"y":28919.249010579722},"targetPosition":{"x":24704.510349009975,"y":29142.19245822294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"507bc325-1cbd-40f4-85eb-cfe77b78000e","savedPayload":{"position":{"x":24704.510349009975,"y":29142.19245822294},"targetPosition":{"x":24905.249530917634,"y":29365.13590586616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c28a4a4-86da-43be-9e89-d01b202f27eb","savedPayload":{"position":{"x":24905.249530917634,"y":29365.13590586616},"targetPosition":{"x":25105.988712825292,"y":29588.079353509376},"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","config":"{}","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","id":"ab6608Line truncated
@@ -1 +0,0 @@
{"type":"Workspace","name":"Weak-hands Buster","rootNodes":[{"type":"Network","name":"My Network","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","dataMining":{"type":"Data Mining","name":"New Data Mining","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","taskManagers":[{"type":"Task Manager","name":"Sparta","tasks":[{"type":"Task","name":"EMA","bot":{"type":"Indicator Bot Instance","name":"EMA","config":"{}","processes":[{"type":"Indicator Process Instance","name":"EMA Multi-Period-Market","id":"9adffd60-8756-44f0-9290-692711f43349","savedPayload":{"position":{"x":23796.023627541625,"y":29309.637679073698},"targetPosition":{"x":24089.467907761766,"y":29372.011186319025},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Multi-Period-Market","id":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"EMA Multi-Period-Daily","id":"559fc728-018a-4e8e-a5fa-1e37958e4f6c","savedPayload":{"position":{"x":23996.762809449283,"y":29086.69423143048},"targetPosition":{"x":24089.467907761766,"y":29372.011186319025},"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":"82a8c05f-a6f6-4728-8271-7b327c2b72ee","savedPayload":{"position":{"x":24089.467907761766,"y":29372.011186319025},"targetPosition":{"x":24312.411355404984,"y":29572.750368226683},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"8ae4fc50-8c1f-4e45-9ffd-fad368816b9a","savedPayload":{"position":{"x":24312.411355404984,"y":29572.750368226683},"targetPosition":{"x":24535.3548030482,"y":29773.48955013434},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"51b49b9d-cb97-4d98-ad8f-9f691320bac2","savedPayload":{"position":{"x":24535.3548030482,"y":29773.48955013434},"targetPosition":{"x":24758.29825069142,"y":29974.228732042},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"63728769-73e4-474e-8aa3-0d82bedca08e","savedPayload":{"position":{"x":24758.29825069142,"y":29974.228732042},"targetPosition":{"x":24981.241698334637,"y":30174.96791394966},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Tasks","name":"Masters","taskManagers":[{"type":"Task Manager","name":"Masters","tasks":[{"type":"Task","name":"Exchange Raw Data","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","id":"149bc037-9762-4737-b1b8-945b5ccee230","savedPayload":{"position":{"x":24503.771167102317,"y":28919.249010579722},"targetPosition":{"x":24704.510349009975,"y":29142.19245822294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"507bc325-1cbd-40f4-85eb-cfe77b78000e","savedPayload":{"position":{"x":24704.510349009975,"y":29142.19245822294},"targetPosition":{"x":24905.249530917634,"y":29365.13590586616},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c28a4a4-86da-43be-9e89-d01b202f27eb","savedPayload":{"position":{"x":24905.249530917634,"y":29365.13590586616},"targetPosition":{"x":25105.988712825292,"y":29588.079353509376},"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","config":"{}","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","id":"ab6608d2-Line truncated
+75 -155
View File
@@ -1,184 +1,104 @@
let candle = record.current // This is the primary dependency
let volume = getElement('volumes', candle) // Here I get the volume bar corresponding to the current candle
let totalVolume = volume.buy + volume.sell // Candles Volumes split the volume received from the exchange evenly betwen buy and sell because it does not know how much of it there is.
variable.buyVolume = 0
variable.sellVolume = 0
let candle = record.current
let previousCandle = record.previous
/*
We will estimate a buy volume or sell volume proportional to the distance from
the open to the max and min of the candle.
*/
let distanceOpenMax = candle.max - candle.open
let distanceOpenMin = candle.open - candle.min
let distanceMaxMin = candle.max - candle.min
variable.supportResistanceZone = calculateSupportResistanceZone()
variable.buyVolume = totalVolume * distanceOpenMax * 100 / distanceMaxMin
variable.sellVolume = totalVolume * distanceOpenMin * 100 / distanceMaxMin
deleteResistances(candle.max)
increasePeriods()
variable.resistance = {}
variable.resistance.rate = 0
variable.resistance.period = 0
variable.resistance.type = ''
if (previousCandle !== undefined) {
let previousPreviousCandle = record.previous.previous
if (previousPreviousCandle !== undefined) {
if (previousCandle.max > previousPreviousCandle.max && previousCandle.max > candle.max) {
variable.resistance.rate = previousCandle.max
variable.resistance.period = 0
variable.resistance.type = 'Resistance'
increaseResistancesBounces(variable.resistance.rate)
rememberResistance(variable.resistance.rate)
}
let totalBuy
let totalSell
let totalNonZero
/* Maintain the 20 periods moving averages. */
variable.last20Buy.splice(0, 1)
variable.last20Buy.push(variable.buyVolume)
totalBuy = 0
totalNonZero = 0
for (let i = 0; i < variable.last20Buy.length; i++) {
let value = variable.last20Buy[i]
if (value > 0) {
totalBuy = totalBuy + value
totalNonZero++
}
}
variable.buySMA20 = totalBuy / totalNonZero
setClosestResistances()
function deleteResistances(rate) {
let max
for (let i = 0; i < variable.resistances.length; i++) {
let currenRecord = variable.resistances[i]
let currentRate = currenRecord[0]
if (rate >= currentRate + currentRate * variable.supportResistanceZone / 2 / 100) { // It must go through the support / resistance zone around the current rate value
max = i
}
}
if (max !== undefined) {
variable.resistances.splice(0, max + 1)
variable.last20Sell.splice(0, 1)
variable.last20Sell.push(variable.sellVolume)
totalSell = 0
totalNonZero = 0
for (let i = 0; i < variable.last20Sell.length; i++) {
let value = variable.last20Sell[i]
if (value > 0) {
totalSell = totalSell + value
totalNonZero++
}
}
variable.sellSMA20 = totalSell / totalNonZero
function increasePeriods() {
for (let i = 0; i < variable.resistances.length; i++) {
let currenRecord = variable.resistances[i]
currenRecord[1] = currenRecord[1] + 1
/* Maintain the 200 periods moving averages. */
variable.last200Buy.splice(0, 1)
variable.last200Buy.push(variable.buyVolume)
totalBuy = 0
totalNonZero = 0
for (let i = 0; i < variable.last200Buy.length; i++) {
let value = variable.last200Buy[i]
if (value > 0) {
totalBuy = totalBuy + value
totalNonZero++
}
}
variable.buySMA200 = totalBuy / totalNonZero
function setClosestResistances() {
let record
record = variable.resistances[0]
if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }
variable.resistance1Rate = record[0]
variable.resistance1Period = record[1]
variable.resistance1Bounce1 = record[2]
variable.resistance1Bounce2 = record[3]
variable.resistance1Bounce3 = record[4]
variable.resistance1Bounce5 = record[5]
variable.resistance1Bounce10 = record[6]
variable.resistance1BounceAll = record[7]
record = variable.resistances[1]
if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }
variable.resistance2Rate = record[0]
variable.resistance2Period = record[1]
variable.resistance2Bounce1 = record[2]
variable.resistance2Bounce2 = record[3]
variable.resistance2Bounce3 = record[4]
variable.resistance2Bounce5 = record[5]
variable.resistance2Bounce10 = record[6]
variable.resistance2BounceAll = record[7]
record = variable.resistances[2]
if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }
variable.resistance3Rate = record[0]
variable.resistance3Period = record[1]
variable.resistance3Bounce1 = record[2]
variable.resistance3Bounce2 = record[3]
variable.resistance3Bounce3 = record[4]
variable.resistance3Bounce5 = record[5]
variable.resistance3Bounce10 = record[6]
variable.resistance3BounceAll = record[7]
record = variable.resistances[3]
if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }
variable.resistance4Rate = record[0]
variable.resistance4Period = record[1]
variable.resistance4Bounce1 = record[2]
record = variable.resistances[4]
if (record === undefined) { record = [0, 0, 0, 0, 0, 0, 0, 0] }
variable.resistance5Rate = record[0]
variable.resistance5Period = record[1]
variable.resistance5Bounce1 = record[2]
}
function rememberResistance(rate) {
if (variable.resistances.length === 0) {
variable.resistances.push([rate, 1, 0, 0, 0, 0, 0, 0])
return
}
for (let i = 0; i < variable.resistances.length; i++) {
let currenRecord = variable.resistances[i]
let currentRate = currenRecord[0]
if (rate > currentRate - currentRate * variable.supportResistanceZone / 2 / 100 && rate < currentRate + currentRate * variable.supportResistanceZone / 2 / 100) {
// We are not going to remember this new level since it is absorved by this existing one.
return
}
if (rate < currentRate) {
variable.resistances.splice(i, 0, [rate, 1, 0, 0, 0, 0, 0, 0])
return
}
if (i === variable.resistances.length - 1) {
variable.resistances.push([rate, 1, 0, 0, 0, 0, 0, 0])
return
}
variable.last200Sell.splice(0, 1)
variable.last200Sell.push(variable.sellVolume)
totalSell = 0
totalNonZero = 0
for (let i = 0; i < variable.last200Sell.length; i++) {
let value = variable.last200Sell[i]
if (value > 0) {
totalSell = totalSell + value
totalNonZero++
}
}
variable.sellSMA200 = totalSell / totalNonZero
function increaseResistancesBounces(rate) {
/* Finaly we compute how many times the 200 moving average the volume is */
variable.buyForce = Math.trunc(variable.buyVolume / variable.buySMA200)
variable.sellForce = Math.trunc(variable.sellVolume / variable.sellSMA200)
for (let i = 0; i < variable.resistances.length; i++) {
let currenRecord = variable.resistances[i]
let currentRate = currenRecord[0]
let percentage = 100 - rate * 100 / currentRate
if (percentage <= variable.supportResistanceZone / 2 * 1) {
currenRecord[2] = currenRecord[2] + 1
}
if (percentage <= variable.supportResistanceZone / 2 * 2) {
currenRecord[3] = currenRecord[3] + 1
}
if (percentage <= variable.supportResistanceZone / 2 * 3) {
currenRecord[4] = currenRecord[4] + 1
}
if (percentage <= variable.supportResistanceZone / 2 * 5) {
currenRecord[5] = currenRecord[5] + 1
}
if (percentage <= variable.supportResistanceZone / 2 * 10) {
currenRecord[6] = currenRecord[6] + 1
}
currenRecord[7] = currenRecord[7] + 1
}
variable.last20Buy = []
variable.last20Sell = []
variable.last200Buy = []
variable.last200Sell = []
for (let i = 0; i < 20; i++) {
variable.last20Buy.push(0)
variable.last20Sell.push(0)
}
function calculateSupportResistanceZone() {
/*
The variable % is a percentage we will use for support and resistance based on the time frame.
We will fix the % for 1 minute candles and for 24 hs candle and the use the formula to obtain
y on a line by knowing 2 points of the line as described here: https://en.wikipedia.org/wiki/Line_(geometry)
*/
for (let i = 0; i < 200; i++) {
variable.last200Buy.push(0)
variable.last200Sell.push(0)
}
let x0 = system.ONE_MIN_IN_MILISECONDS
let y0 = 0.1 // At one min, we will consider the resistance / support zone to be 0.1% resistance
let x1 = system.ONE_DAY_IN_MILISECONDS
let y1 = 4 // At one day, we will consider the resistance / support zone to be 4% resistance
let x = system.timeFrame // This is the current time frame being calculated
let y = (x - x0) * (y1 - y0) / (x1 - x0) + y0
return y
}