Merge pull request #3 from Superalgos/develop

Updating Forked Develop Branch
This commit is contained in:
Smidy authored and GitHub committed 2021-04-03 12:59:45 +13:00
commit f82ac03d2e
585 files changed
+4426 -1328

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

+1 -1
View File
@@ -1,7 +1,7 @@
.credits {
width: 100%;
margin: auto;
margin-bottom: 50;
margin-bottom: 25;
text-align: center;
position:absolute;
bottom:0;
+4 -4
View File
@@ -520,14 +520,14 @@ color: #ffd1a9;
.docs-footer-language {
width: 30px;
margin-top: 10px;
padding: 10 10px;
margin-top: 7px;
padding: 7 7px;
}
.docs-footer-language-selected {
width: 30px;
margin-top: 10px;
padding: 10 10px;
margin-top: 7px;
padding: 7 7px;
background-color: rgba(230, 234, 234, 0.2);
/* border: 1px solid rgba(205, 212, 213, 0.5); DELETE Candidate*/
border: 1px solid rgba(200, 200, 200, .5);
+3 -10
View File
@@ -55,17 +55,10 @@
style="overflow:hidden; background: url(Images/superalgos-platform.jpg); background-size: cover;"
onresize="onResize()">
<div id="contributors" class="credits">
<p style="font-size: 120%;">Superalgos is <span class="credits-red">open source</span>, <span class="credits-red">forever free</span> for <span class="credits-red">everyone</span>, and is <span class="credits-red">constantly improving</span> thanks to the involvement of contributors:</p>
<p style="font-size: 100%;">Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Ira Miller, matbenitez, bearcanrun, nikolabjelo, 9808us, pmmax, suttridge, Basalt09, Mhnramin, 0xperez, infin1t3, benitezme, whtv, cozed-gh, Eduardo678-dotcom, Smidy13, teehanming, 64bittuning, joenij, apronotti, Noeljarillo, ssplatt, rico4dev, DougJCook, mane, Cordo-van-Saviour, CarnivalBen, Sil3ntLight, pisukesoramame, Edodi, harrellbm, CaptainJeff, Jeff Braun, Francisco J. Santillán, Norman, Viktoria B., Guillermo V., Daniel J., Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia M., Bashar A., Carlos V., Diego M., Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Mateo H., Lan T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B.</p>
<p style="font-size: 120%;">Please, <span class="credits-red">give a star to the Superalgos repo at GitHub.com...</span> It helps other devs find the project!</p>
<p id="credits-page-status-paragraph" class="credits-yellow">The UI is loading...</p>
<p>Superalgos is <span class="credits-red">open source</span> and <span class="credits-red">free</span>, for <span class="credits-red">everyone</span>, <span class="credits-red">forever</span>, and it's
<span class="credits-red">relentlessly improving</span> thanks to the involvement of contributors:</p>
<p>Luis Fernando Molina, Julian Molina, Andreja Cobeljic, Matías Benitez, Ira Miller, Eduardo Remis,
Jeff Braun, rico4dev, 9808us, Barry Low, Nikola Bjelogrlic, Hirajin Koizuko, Francisco J. Santillán, Norman,
Viktoria B., Guillermo V., Carl J, Daniel J.,
Javier A., Gustavo J., Romina GS, Pedro P., Thais M., Andrey M., Loui M., Natalia M., Bashar A., Carlos V.,
Diego M., CarnivalBen,
Sebastian E., Bogdan P., Marko V., Igor S., Niksa K., Rodrigo M., Nicanor M., Alejandro P., Mateo H., Lan
T., Leon A., Uroš R., Filip M., Vladimir J. and Pavle B.</p>
<p>Thanks for giving a <span class="credits-red">star</span> to the Superalgos <span class="credits-red">repo at GitHub.com</span>... It helps other devs find the project!</p>
</div>
<div id="masterApp"></div>
<div id="canvasApp"></div>
+20 -15
View File
@@ -70,47 +70,47 @@ try {
WEB_SERVER = WEB_SERVER.newWebServer()
WEB_SERVER.initialize()
WEB_SERVER.run()
console.log('Web Server ......................... Started')
console.log('Web Server .................................................. Started')
UI_FILE_SERVER = UI_FILE_SERVER.newUIFileServer()
UI_FILE_SERVER.initialize()
UI_FILE_SERVER.run()
console.log('UI File Server ..................... Started')
console.log('UI File Server .............................................. Started')
PROJECT_FILE_SERVER = PROJECT_FILE_SERVER.newProjectFileServer()
PROJECT_FILE_SERVER.initialize()
PROJECT_FILE_SERVER.run()
console.log('Project File Server ................ Started')
console.log('Project File Server ......................................... Started')
PLUGIN_SERVER = PLUGIN_SERVER.newPluginServer()
PLUGIN_SERVER.initialize()
PLUGIN_SERVER.run()
console.log('Plugin Server ...................... Started')
console.log('Plugin Server ............................................... Started')
DATA_FILE_SERVER = DATA_FILE_SERVER.newDataFileServer()
DATA_FILE_SERVER.initialize()
DATA_FILE_SERVER.run()
console.log('Data File Server ................... Started')
console.log('Data File Server ............................................ Started')
EVENT_SERVER = EVENT_SERVER.newEventServer()
EVENT_SERVER.initialize()
EVENT_SERVER.run()
console.log('Events Server ...................... Started')
console.log('Events Server ............................................... Started')
TASK_MANAGER_SERVER = TASK_MANAGER_SERVER.newTaskManagerServer(WEB_SOCKETS_INTERFACE, EVENT_SERVER)
TASK_MANAGER_SERVER.initialize()
TASK_MANAGER_SERVER.run()
console.log('Task Manager Server ................ Started')
console.log('Task Manager Server ......................................... Started')
CCXT_SERVER = CCXT_SERVER.newCCXTServer()
CCXT_SERVER.initialize()
CCXT_SERVER.run()
console.log('CCXT Server ........................ Started')
console.log('CCXT Server ................................................. Started')
WEB3_SERVER = WEB3_SERVER.newWeb3Server()
WEB3_SERVER.initialize()
WEB3_SERVER.run()
console.log('WEB3 Server ........................ Started')
console.log('WEB3 Server ................................................. Started')
console.log('')
console.log('CLIENT INTERFACES:')
@@ -119,25 +119,30 @@ try {
WEB_SOCKETS_INTERFACE = WEB_SOCKETS_INTERFACE.newWebSocketsInterface(EVENT_SERVER)
WEB_SOCKETS_INTERFACE.initialize()
WEB_SOCKETS_INTERFACE.run()
console.log('Web Sockets Interface .............. Listening at port ' + global.env.WEB_SOCKETS_INTERFACE_PORT)
console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.WEB_SOCKETS_INTERFACE_PORT)
HTTP_INTERFACE = HTTP_INTERFACE.newHttpInterface(WEB_SERVER, DATA_FILE_SERVER, PROJECT_FILE_SERVER, UI_FILE_SERVER, PLUGIN_SERVER, CCXT_SERVER, WEB3_SERVER)
HTTP_INTERFACE.initialize()
HTTP_INTERFACE.run()
console.log('Http Interface ..................... Listening at port ' + global.env.HTTP_INTERFACE_PORT)
console.log('Http Interface .............................................. Listening at port ' + global.env.HTTP_INTERFACE_PORT)
console.log('')
console.log("You are running Superalgos Beta 9")
console.log('')
console.log("What's new? The following was implemented here:")
console.log('')
console.log('Merket Data Structure .............. This allows any strategy to use data from markets different from the one it is running at.')
console.log('Exchange Data Structure ............ This allows any strategy to use data from exchanges and markets different from the one it is running at.')
console.log('Market Data Structure ....................................... This allows any strategy to use data from markets different from the one it is running at.')
console.log('Exchange Data Structure ..................................... This allows any strategy to use data from exchanges and markets different from the one it is running at.')
console.log('Tensor Flow Integration ..................................... This allows the creation and training of ML models that later can be used for predictions.')
console.log('SA Token .................................................... This allows the project to compensate contributors that add value to it.')
console.log('')
console.log("What's next? At the development pipeline we have:")
console.log('')
console.log('Ethereum Integration ............... This will allow mining data from an Ethereum network node, create indicators with it, an use it on strategies.')
console.log('Machine Learning Infrastructure .... This will enable a new kind of Bot that can learn from data mined. Later that knowledge can be used at trading strategies.')
console.log('Contribution Management ..................................... This will allow us to manage contributions at scale, and distribute the SA token more efficiently at each release.')
console.log('Infraestructure to sensor any API .......................... This will allow us to fetch data from any API, turn it into indicators and plot it.')
console.log('Usage of ML Predictions at Trading Systems .................. This will enable a new kind of Bot that can learn from data mined. Later that knowledge can be used at trading strategies.')
console.log('Ethereum Integration ........................................ This will allow mining data from an Ethereum network node, create indicators with it, an use it on strategies.')
console.log('')
} catch (err) {
@@ -0,0 +1,12 @@
<svg width="112" height="112" viewBox="0 0 112 112" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<path d="M56 112C67.0758 112 77.9028 108.716 87.1119 102.562C96.3211 96.4089 103.499 87.6629 107.737 77.4303C111.976 67.1976 113.085 55.9379 110.924 45.0749C108.763 34.212 103.43 24.2338 95.598 16.402C87.7662 8.57027 77.788 3.23679 66.9251 1.07602C56.0621 -1.08475 44.8024 0.0242338 34.5697 4.26274C24.3371 8.50125 15.5911 15.6789 9.4377 24.8881C3.28434 34.0972 0 44.9242 0 56C0 70.8521 5.89998 85.0959 16.402 95.598C26.9041 106.1 41.1479 112 56 112V112Z" fill="#23292F"/>
<path d="M76.49 32.15H84.91L67.4 49.62C64.3568 52.6598 60.2314 54.3673 55.93 54.3673C51.6286 54.3673 47.5032 52.6598 44.46 49.62L27 32.15H35.41L48.71 45.42C50.6375 47.3454 53.2506 48.4269 55.975 48.4269C58.6994 48.4269 61.3125 47.3454 63.24 45.42L76.49 32.15Z" fill="white"/>
<path d="M35.37 80.74H27L44.57 63.16C47.6132 60.1202 51.7386 58.4127 56.04 58.4127C60.3414 58.4127 64.4668 60.1202 67.51 63.16L85.12 80.74H76.71L63.31 67.36C61.3825 65.4346 58.7694 64.3531 56.045 64.3531C53.3206 64.3531 50.7075 65.4346 48.78 67.36L35.37 80.74Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0">
<rect width="112" height="112" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-703 270 512 512" style="enable-background:new -703 270 512 512;" xml:space="preserve">
<style type="text/css">
.st0{display:none;}
.st1{clip-path:url(#SVGID_2_);}
.st2{fill:#E30A17;}
.st3{fill:#FFFFFF;}
</style>
<polygon class="st0" points="557.7,-304 299,-304 299,208 811,208 811,44.1 557.7,44.1 "/>
<rect x="557.7" y="-304" class="st0" width="253.3" height="348.1"/>
<g class="st0">
<text transform="matrix(1 0 0 1 335.4224 -173.0488)" style="display:inline;fill:#CDD4D5; font-family:'Saira-Black'; font-size:64.1866px;">E = mc</text>
<text transform="matrix(1 0 0 1 528.1074 -194.4227)" style="display:inline;fill:#CDD4D5; font-family:'Saira-Black'; font-size:37.4208px;">2</text>
</g>
<g>
<defs>
<circle id="SVGID_1_" cx="-447" cy="526" r="256"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" style="overflow:visible;"/>
</clipPath>
<g id="XMLID_11_" class="st1">
<rect id="XMLID_22_" x="-744.6" y="270" class="st2" width="768" height="512"/>
<g id="XMLID_12_">
<polygon id="XMLID_14_" class="st3" points="-281.9,489.9 -324.3,503.7 -350.6,467.6 -350.6,512.2 -393,526 -350.6,539.8
-350.6,584.4 -324.3,548.3 -281.9,562.1 -308.1,526 "/>
<path id="XMLID_13_" class="st3" d="M-458.5,624.3c-54.3,0-98.3-44-98.3-98.3c0-54.3,44-98.3,98.3-98.3
c29.1,0,55.2,12.6,73.2,32.7c-21.8-34.4-60.2-57.3-103.9-57.3c-67.9,0-122.9,55-122.9,122.9s55,122.9,122.9,122.9
c43.7,0,82.1-22.9,103.9-57.3C-403.4,611.7-429.5,624.3-458.5,624.3z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -1 +1 @@
{"type":"Workspace","name":"BB Top Bounce","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Sparta","project":"Superalgos","tasks":[{"type":"Task","name":"Exponential Moving Average (EMA)","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Exponential Moving Average (EMA)","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Market","project":"Superalgos","id":"c95597e5-5d5c-4dd7-9510-99874a022eac","savedPayload":{"position":{"x":23249.9640031147,"y":29769.33400760472},"targetPosition":{"x":23539.74175100142,"y":29691.688294073963},"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":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Daily","project":"Superalgos","id":"e588dc58-d99c-4938-aaab-747d23408301","savedPayload":{"position":{"x":23249.9640031147,"y":29614.042580543206},"targetPosition":{"x":23539.74175100142,"y":29691.688294073963},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"44fefa5e-341a-43c7-8967-7545a6e229ad","savedPayload":{"position":{"x":23539.74175100142,"y":29691.688294073963},"targetPosition":{"x":23839.74175100142,"y":29691.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e55a456-ff9c-48bf-b9ea-01082495fcc9","savedPayload":{"position":{"x":23839.74175100142,"y":29691.688294073963},"targetPosition":{"x":24139.74175100142,"y":29691.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Relative Strenght Index (RSI)","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Relative Strenght Index (RSI)","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Relative Strenght Index (RSI) Multi-Period-Market","project":"Superalgos","id":"7f2c9023-e07e-43f7-a6f3-b7399af54bd6","savedPayload":{"position":{"x":23627.609716645457,"y":28959.941017447334},"targetPosition":{"x":23839.74175100142,"y":29172.073051803298},"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":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Relative Strenght Index (RSI) Multi-Period-Daily","project":"Superalgos","id":"be48bd61-bf78-49f5-8ac9-b433c9ee9dd5","savedPayload":{"position":{"x":23762.096037470663,"y":28882.295303916577},"targetPosition":{"x":23839.74175100142,"y":29172.073051803298},"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":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"fe19f69a-14f3-487c-a9d4-47ae3bd197b9","savedPayload":{"position":{"x":23839.74175100142,"y":29172.073051803298},"targetPosition":{"x":23989.74175100142,"y":29431.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"50b773e6-93e5-485e-86fc-b454fef82dbb","savedPayload":{"position":{"x":23989.74175100142,"y":29431.88067293863},"targetPosition":{"x":24139.74175100142,"y":29691.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93Line truncated
{"type":"Workspace","name":"BB Top Bounce","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Sparta","project":"Superalgos","tasks":[{"type":"Task","name":"Exponential Moving Average (EMA)","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Exponential Moving Average (EMA)","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Market","project":"Superalgos","id":"c95597e5-5d5c-4dd7-9510-99874a022eac","savedPayload":{"position":{"x":23249.9640031147,"y":29769.33400760472},"targetPosition":{"x":23539.74175100142,"y":29691.688294073963},"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":"278c34a7-199d-400e-8a06-087149e3d391"}}},{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Daily","project":"Superalgos","id":"e588dc58-d99c-4938-aaab-747d23408301","savedPayload":{"position":{"x":23249.9640031147,"y":29614.042580543206},"targetPosition":{"x":23539.74175100142,"y":29691.688294073963},"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":"943ea24f-ee24-4eae-9b4b-e8a73122b1c2"}}}],"id":"44fefa5e-341a-43c7-8967-7545a6e229ad","savedPayload":{"position":{"x":23539.74175100142,"y":29691.688294073963},"targetPosition":{"x":23839.74175100142,"y":29691.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"1e55a456-ff9c-48bf-b9ea-01082495fcc9","savedPayload":{"position":{"x":23839.74175100142,"y":29691.688294073963},"targetPosition":{"x":24139.74175100142,"y":29691.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Relative Strenght Index (RSI)","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Relative Strenght Index (RSI)","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Relative Strenght Index (RSI) Multi-Period-Market","project":"Superalgos","id":"7f2c9023-e07e-43f7-a6f3-b7399af54bd6","savedPayload":{"position":{"x":23627.609716645457,"y":28959.941017447334},"targetPosition":{"x":23839.74175100142,"y":29172.073051803298},"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":"96f31416-5090-428a-be83-985a0b3ab275"}}},{"type":"Indicator Process Instance","name":"Relative Strenght Index (RSI) Multi-Period-Daily","project":"Superalgos","id":"be48bd61-bf78-49f5-8ac9-b433c9ee9dd5","savedPayload":{"position":{"x":23762.096037470663,"y":28882.295303916577},"targetPosition":{"x":23839.74175100142,"y":29172.073051803298},"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":"f1177bcd-22dc-425b-8f30-878844aa82b8"}}}],"id":"fe19f69a-14f3-487c-a9d4-47ae3bd197b9","savedPayload":{"position":{"x":23839.74175100142,"y":29172.073051803298},"targetPosition":{"x":23989.74175100142,"y":29431.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"50b773e6-93e5-485e-86fc-b454fef82dbb","savedPayload":{"position":{"x":23989.74175100142,"y":29431.88067293863},"targetPosition":{"x":24139.74175100142,"y":29691.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"93Line truncated
@@ -1 +1 @@
{"type":"Workspace","name":"Getting Started","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d244c564-4e86-43c7-9796-dc3b6294ec8b","savedPayload":{"position":{"x":23490.023749611923,"y":29239.135911211026},"targetPosition":{"x":23779.801497498644,"y":29316.781624741783},"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":"343313ae-5705-484d-8bf8-aed25ba61cfa","savedPayload":{"position":{"x":23779.801497498644,"y":29316.781624741783},"targetPosition":{"x":24069.579245385365,"y":29394.42733827254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8f38508-1cac-4ab1-815f-d338fc813377","savedPayload":{"position":{"x":24069.579245385365,"y":29394.42733827254},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"f0ef12ed-f0fd-4b88-8e15-27cf24265a5f","savedPayload":{"position":{"x":23799.549372136753,"y":28802.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"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":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7c8b312c-09bf-4c59-853f-1592391a9c57","savedPayload":{"position":{"x":24059.356993272086,"y":28652.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"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":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"8d58e84b-d7ef-464f-8079-0ec0887e3da3","savedPayload":{"position":{"x":24059.356993272086,"y":28952.457809532632},"targetPosition":{"x":24209.356993272086,"y":29212.265430667965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bf29e3bd-9386-408b-9091-042da0c53e81","savedPayload":{"position":{"x":24209.356993272086,"y":29212.265430667965},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","project":"Superalgos","id":"a707814e-b81b-4102-9b5b-4e2fe969324f","savedPayload":{"position":{"x":24437.002706802843,"y":28602.739808143135},"targetPosition":{"x":24514.6484203336,"y":28892.517556029856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"refeLine truncated
{"type":"Workspace","name":"Getting Started","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d244c564-4e86-43c7-9796-dc3b6294ec8b","savedPayload":{"position":{"x":23490.023749611923,"y":29239.135911211026},"targetPosition":{"x":23779.801497498644,"y":29316.781624741783},"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":"343313ae-5705-484d-8bf8-aed25ba61cfa","savedPayload":{"position":{"x":23779.801497498644,"y":29316.781624741783},"targetPosition":{"x":24069.579245385365,"y":29394.42733827254},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a8f38508-1cac-4ab1-815f-d338fc813377","savedPayload":{"position":{"x":24069.579245385365,"y":29394.42733827254},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"f0ef12ed-f0fd-4b88-8e15-27cf24265a5f","savedPayload":{"position":{"x":23799.549372136753,"y":28802.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"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":"9f683143-a33f-42c1-9fa8-c601f01ee4e1"}}},{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Daily","project":"Superalgos","id":"7c8b312c-09bf-4c59-853f-1592391a9c57","savedPayload":{"position":{"x":24059.356993272086,"y":28652.457809532632},"targetPosition":{"x":24059.356993272086,"y":28952.457809532632},"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":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"8d58e84b-d7ef-464f-8079-0ec0887e3da3","savedPayload":{"position":{"x":24059.356993272086,"y":28952.457809532632},"targetPosition":{"x":24209.356993272086,"y":29212.265430667965},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"bf29e3bd-9386-408b-9091-042da0c53e81","savedPayload":{"position":{"x":24209.356993272086,"y":29212.265430667965},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Resistances and Supports","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Resistances and Supports","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Resistances and Supports Multi-Period-Market","project":"Superalgos","id":"a707814e-b81b-4102-9b5b-4e2fe969324f","savedPayload":{"position":{"x":24437.002706802843,"y":28602.739808143135},"targetPosition":{"x":24514.6484203336,"y":28892.517556029856},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"refeLine truncated
@@ -1 +1 @@
{"type":"Workspace","name":"Hello World Tutorial","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Sparta","project":"Superalgos","tasks":[{"type":"Task","name":"Simple Moving Average (SMA)","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Simple Moving Average (SMA)","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Simple Moving Average (SMA) Multi-Period-Market","project":"Superalgos","id":"fde9aeb6-2b65-4ba5-a8b3-07f2b189a9ec","savedPayload":{"position":{"x":23969.74175100142,"y":29687.688294073963},"targetPosition":{"x":24119.74175100142,"y":29687.688294073963},"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":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Simple Moving Average (SMA) Multi-Period-Daily","project":"Superalgos","id":"17d24742-6026-4fe5-b400-69df5a057aa1","savedPayload":{"position":{"x":24044.74175100142,"y":29557.784483506297},"targetPosition":{"x":24119.74175100142,"y":29687.688294073963},"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":"a773898a-8b8f-4654-b907-a4f0b988d59e","savedPayload":{"position":{"x":24119.74175100142,"y":29687.688294073963},"targetPosition":{"x":24249.645561569087,"y":29762.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a98d1697-98c9-44dc-a4b2-b777917ca292","savedPayload":{"position":{"x":24249.645561569087,"y":29762.688294073963},"targetPosition":{"x":24379.549372136753,"y":29837.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"802f1ee2-1dba-4999-8b29-068b68aee9ef","savedPayload":{"position":{"x":24379.549372136753,"y":29837.688294073963},"targetPosition":{"x":24509.45318270442,"y":29912.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d24c01eb-3d21-430e-a965-cbf645bb7853","savedPayload":{"position":{"x":24509.45318270442,"y":29912.688294073963},"targetPosition":{"x":24639.356993272086,"y":29987.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{\n \"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"9de8a5c8-7c2e-4625-afa4-176c43777eb3","savedPayload":{"position":{"x":24414.356993272086,"y":29297.976862370964},"targetPosition":{"x":24489.356993272086,"y":29427.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"d96308e3-a9ae-4a87-ad7c-cf7948fe0939","savedPayload":{"position":{"x":24489.356993272086,"y":29427.88067293863},"targetPosition":{"x":24564.356993272086,"y":29557.784483506297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa7991b3-e23e-4cLine truncated
{"type":"Workspace","name":"Hello World Tutorial","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Sparta","project":"Superalgos","tasks":[{"type":"Task","name":"Simple Moving Average (SMA)","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Simple Moving Average (SMA)","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Simple Moving Average (SMA) Multi-Period-Market","project":"Superalgos","id":"fde9aeb6-2b65-4ba5-a8b3-07f2b189a9ec","savedPayload":{"position":{"x":23969.74175100142,"y":29687.688294073963},"targetPosition":{"x":24119.74175100142,"y":29687.688294073963},"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":"456269f6-9849-4d5f-9c8c-7cd7d1eef297"}}},{"type":"Indicator Process Instance","name":"Simple Moving Average (SMA) Multi-Period-Daily","project":"Superalgos","id":"17d24742-6026-4fe5-b400-69df5a057aa1","savedPayload":{"position":{"x":24044.74175100142,"y":29557.784483506297},"targetPosition":{"x":24119.74175100142,"y":29687.688294073963},"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":"a773898a-8b8f-4654-b907-a4f0b988d59e","savedPayload":{"position":{"x":24119.74175100142,"y":29687.688294073963},"targetPosition":{"x":24249.645561569087,"y":29762.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"a98d1697-98c9-44dc-a4b2-b777917ca292","savedPayload":{"position":{"x":24249.645561569087,"y":29762.688294073963},"targetPosition":{"x":24379.549372136753,"y":29837.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"802f1ee2-1dba-4999-8b29-068b68aee9ef","savedPayload":{"position":{"x":24379.549372136753,"y":29837.688294073963},"targetPosition":{"x":24509.45318270442,"y":29912.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}}],"id":"d24c01eb-3d21-430e-a965-cbf645bb7853","savedPayload":{"position":{"x":24509.45318270442,"y":29912.688294073963},"targetPosition":{"x":24639.356993272086,"y":29987.688294073963},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":2,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Data Mine","name":"Sparta","id":"9cfffc48-486a-48cb-b641-98c82e314d3a"}}},{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{\n \"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"9de8a5c8-7c2e-4625-afa4-176c43777eb3","savedPayload":{"position":{"x":24414.356993272086,"y":29297.976862370964},"targetPosition":{"x":24489.356993272086,"y":29427.88067293863},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"d96308e3-a9ae-4a87-ad7c-cf7948fe0939","savedPayload":{"position":{"x":24489.356993272086,"y":29427.88067293863},"targetPosition":{"x":24564.356993272086,"y":29557.784483506297},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"fa7991b3-e23e-4cLine truncated
@@ -1 +1 @@
{"type":"Workspace","name":"Tested Exchanges","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[],"id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe","savedPayload":{"position":{"x":25089.356993272086,"y":30767.11115747996},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[],"id":"0818dfbe-61ea-40b8-8544-bee25d7f45be","savedPayload":{"position":{"x":25389.356993272086,"y":30767.11115747996},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[],"id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb","savedPayload":{"position":{"x":25539.356993272086,"y":31026.918778615294},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[],"id":"673caa5f-511d-4688-9305-e5f0f0f780cd","savedPayload":{"position":{"x":25389.356993272086,"y":31286.726399750627},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25070.19913560607,"y":31588.15985816277},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24959.356993272086,"y":31550.53402088596},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[],"id":"2845a687-becc-4c3b-bc79-b2293ba876ba","savedPayload":{"position":{"x":24871.350991184714,"y":31473.354828453244},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25089.356993272086,"y":31286.726399750627},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25239.356993272086,"y":31026.918778615294},"targetPosition":{"x":24939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24939.356993272086,"y":31026.918778615294},"targetPosition":{"x":24939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[Line truncated
{"type":"Workspace","name":"Tested Exchanges","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[],"id":"40af91d9-431c-4b7d-addc-aed37bc2f3fe","savedPayload":{"position":{"x":25089.356993272086,"y":30767.11115747996},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningTasks":{"type":"Learning Tasks","name":"New Learning Tasks","project":"Superalgos","projectLearningTasks":[],"id":"0818dfbe-61ea-40b8-8544-bee25d7f45be","savedPayload":{"position":{"x":25389.356993272086,"y":30767.11115747996},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"testingTradingTasks":{"type":"Testing Trading Tasks","name":"New Testing Trading Tasks","project":"Superalgos","projectTradingTasks":[],"id":"8117db0a-e418-4f56-8fe4-fda2ddac1cbb","savedPayload":{"position":{"x":25539.356993272086,"y":31026.918778615294},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"productionTradingTasks":{"type":"Production Trading Tasks","name":"New Production Trading Tasks","project":"Superalgos","projectTradingTasks":[],"id":"673caa5f-511d-4688-9305-e5f0f0f780cd","savedPayload":{"position":{"x":25389.356993272086,"y":31286.726399750627},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"dataStorage":{"type":"Data Storage","name":"New Data Storage","project":"Superalgos","dataMinesData":{"type":"Data Mines Data","name":"New Data Mines Data","project":"Superalgos","projectDataProducts":[],"id":"32e7c122-fa5a-4d00-9d71-d54e890e32de","savedPayload":{"position":{"x":25070.19913560607,"y":31588.15985816277},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"tradingMinesData":{"type":"Trading Mines Data","name":"New Trading Mines Data","project":"Superalgos","projectTradingProducts":[],"id":"e4e268f3-a677-4f90-90a1-d87244e647e5","savedPayload":{"position":{"x":24959.356993272086,"y":31550.53402088596},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"learningMinesData":{"type":"Learning Mines Data","name":"New Learning Mines Data","project":"Superalgos","projectLearningProducts":[],"id":"2845a687-becc-4c3b-bc79-b2293ba876ba","savedPayload":{"position":{"x":24871.350991184714,"y":31473.354828453244},"targetPosition":{"x":25109.356993272086,"y":31290.726399750627},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"e2697759-6038-4943-b90c-5a68651ff9a8","savedPayload":{"position":{"x":25089.356993272086,"y":31286.726399750627},"targetPosition":{"x":25239.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":true,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"d"}}},"id":"e452cf65-2b2b-44f2-9e67-bdd9d3c008e4","savedPayload":{"position":{"x":25239.356993272086,"y":31026.918778615294},"targetPosition":{"x":24939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":""}}}],"id":"3c165071-7558-4708-9999-8ffe71d346b1","savedPayload":{"position":{"x":24939.356993272086,"y":31026.918778615294},"targetPosition":{"x":24939.356993272086,"y":31026.918778615294},"floatingObject":{"isPinned":true,"isFrozen":false,"isCollapsed":false,"angleToParent":1,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false,"shortcutKey":"s"}}},{"type":"Crypto Ecosystem","name":"My Crypto Ecosystem","project":"Superalgos","cryptoExchanges":[{"type":"Crypto Exchanges","name":"Tested","project":"Superalgos","exchanges":[Line truncated
@@ -1 +1 @@
{"type":"Workspace","name":"Trading System Design Tutorials","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d0ff77d8-76de-4d50-840a-e50a55ad7d1b","savedPayload":{"position":{"x":23464.287287440642,"y":29377.997434862405},"targetPosition":{"x":23762.643856051123,"y":29409.355973842703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"b4e33f51-f9ff-4ef3-a9b7-ccb904163cae","savedPayload":{"position":{"x":23762.643856051123,"y":29409.355973842703},"targetPosition":{"x":24061.000424661604,"y":29440.714512823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"23ae53f9-b478-4eb4-96e7-12d07d7ae4f0","savedPayload":{"position":{"x":24061.000424661604,"y":29440.714512823},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"dcf3d790-5362-4a95-b977-82d0cf0e07f1","savedPayload":{"position":{"x":23646.16814072914,"y":28934.397538066118},"targetPosition":{"x":23913.47009798565,"y":29070.59468798798},"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","project":"Superalgos","id":"775fadbd-5b55-41b2-81ac-454f5e52dca6","savedPayload":{"position":{"x":23750.078387481142,"y":28818.993517604355},"targetPosition":{"x":23913.47009798565,"y":29070.59468798798},"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":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"fc478301-77ac-4396-bd3b-915b4c681fa0","savedPayload":{"position":{"x":23913.47009798565,"y":29070.59468798798},"targetPosition":{"x":24136.413545628868,"y":29271.33386989564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30054a4b-7c93-4a3a-a6db-2e0d38507b2e","savedPayload":{"position":{"x":24136.413545628868,"y":29271.33386989564},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Bands","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"bf0f739f-98b7-4c73-ae06-8d3fe83147ce","savedPayload":{"position":{"x":24098.412828859568,"y":28617.882534106506},"targetPosition":{"x":24234.60997878143,"y":28885.184491363016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"PLine truncated
{"type":"Workspace","name":"Trading System Design Tutorials","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Masters","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"d0ff77d8-76de-4d50-840a-e50a55ad7d1b","savedPayload":{"position":{"x":23464.287287440642,"y":29377.997434862405},"targetPosition":{"x":23762.643856051123,"y":29409.355973842703},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"Process Definition","name":"Historic-OHLCVs","id":"5eb11d6a-022e-4f60-97c4-d6cf90b249dc"}}}],"id":"b4e33f51-f9ff-4ef3-a9b7-ccb904163cae","savedPayload":{"position":{"x":23762.643856051123,"y":29409.355973842703},"targetPosition":{"x":24061.000424661604,"y":29440.714512823},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"23ae53f9-b478-4eb4-96e7-12d07d7ae4f0","savedPayload":{"position":{"x":24061.000424661604,"y":29440.714512823},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Candles Volumes","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Candles Volumes","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Candles Volumes Multi-Period-Market","project":"Superalgos","id":"dcf3d790-5362-4a95-b977-82d0cf0e07f1","savedPayload":{"position":{"x":23646.16814072914,"y":28934.397538066118},"targetPosition":{"x":23913.47009798565,"y":29070.59468798798},"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","project":"Superalgos","id":"775fadbd-5b55-41b2-81ac-454f5e52dca6","savedPayload":{"position":{"x":23750.078387481142,"y":28818.993517604355},"targetPosition":{"x":23913.47009798565,"y":29070.59468798798},"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":"980ceb1d-7be6-454f-90d9-01ba1fd4a65d"}}}],"id":"fc478301-77ac-4396-bd3b-915b4c681fa0","savedPayload":{"position":{"x":23913.47009798565,"y":29070.59468798798},"targetPosition":{"x":24136.413545628868,"y":29271.33386989564},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"30054a4b-7c93-4a3a-a6db-2e0d38507b2e","savedPayload":{"position":{"x":24136.413545628868,"y":29271.33386989564},"targetPosition":{"x":24359.356993272086,"y":29472.073051803298},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},{"type":"Task","name":"Bollinger Bands","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"Bollinger Bands","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Bollinger Bands Multi-Period-Market","project":"Superalgos","id":"bf0f739f-98b7-4c73-ae06-8d3fe83147ce","savedPayload":{"position":{"x":24098.412828859568,"y":28617.882534106506},"targetPosition":{"x":24234.60997878143,"y":28885.184491363016},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":3,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false},"referenceParent":{"type":"PLine truncated
@@ -1 +0,0 @@
{"type":"Workspace","name":"Weak-hands Buster v2","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Sparta","project":"Superalgos","tasks":[{"type":"Task","name":"EMA","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"EMA","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Market","project":"Superalgos","id":"9adffd60-8756-44f0-9290-692711f43349","savedPayload":{"position":{"x":23320.126508730755,"y":29392.688294073963},"targetPosition":{"x":23620.126508730755,"y":29392.688294073963},"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":"Exponential Moving Average (EMA) Multi-Period-Daily","project":"Superalgos","id":"559fc728-018a-4e8e-a5fa-1e37958e4f6c","savedPayload":{"position":{"x":23470.126508730755,"y":29132.88067293863},"targetPosition":{"x":23620.126508730755,"y":29392.688294073963},"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":23620.126508730755,"y":29392.688294073963},"targetPosition":{"x":23879.934129866087,"y":29542.688294073963},"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":23879.934129866087,"y":29542.688294073963},"targetPosition":{"x":24139.74175100142,"y":29692.688294073963},"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":24139.74175100142,"y":29692.688294073963},"targetPosition":{"x":24399.549372136753,"y":29842.688294073963},"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":24399.549372136753,"y":29842.688294073963},"targetPosition":{"x":24659.356993272086,"y":29992.688294073963},"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","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"149bc037-9762-4737-b1b8-945b5ccee230","savedPayload":{"position":{"x":23931.241698334637,"y":28863.681567010735},"targetPosition":{"x":24173.94679664712,"y":29040.017142698478},"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":24173.94679664712,"y":29040.017142698478},"targetPosition":{"x":24416.651894959603,"y":29216.35271838622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c28a4a4-86da-43be-9e89-d01b202f27eb","sLine truncated
@@ -0,0 +1 @@
{"type":"Workspace","name":"Weak-hands Buster v2","rootNodes":[{"type":"Network","name":"My Network","project":"Superalgos","networkNodes":[{"type":"Network Node","name":"My Computer","config":"{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}","project":"Superalgos","dataTasks":{"type":"Data Tasks","name":"New Data Tasks","project":"Superalgos","projectDataTasks":[{"type":"Project Data Tasks","name":"Superalgos","project":"Superalgos","exchangeDataTasks":[{"type":"Exchange Data Tasks","name":"Binance","project":"Superalgos","marketDataTasks":[{"type":"Market Data Tasks","name":"Binance BTC/USDT","project":"Superalgos","dataMineTasks":[{"type":"Data Mine Tasks","name":"Sparta","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Sparta","project":"Superalgos","tasks":[{"type":"Task","name":"EMA","project":"Superalgos","bot":{"type":"Indicator Bot Instance","name":"EMA","config":"{}","project":"Superalgos","processes":[{"type":"Indicator Process Instance","name":"Exponential Moving Average (EMA) Multi-Period-Market","project":"Superalgos","id":"9adffd60-8756-44f0-9290-692711f43349","savedPayload":{"position":{"x":23320.126508730755,"y":29392.688294073963},"targetPosition":{"x":23620.126508730755,"y":29392.688294073963},"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":"Exponential Moving Average (EMA) Multi-Period-Daily","project":"Superalgos","id":"559fc728-018a-4e8e-a5fa-1e37958e4f6c","savedPayload":{"position":{"x":23470.126508730755,"y":29132.88067293863},"targetPosition":{"x":23620.126508730755,"y":29392.688294073963},"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":23620.126508730755,"y":29392.688294073963},"targetPosition":{"x":23879.934129866087,"y":29542.688294073963},"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":23879.934129866087,"y":29542.688294073963},"targetPosition":{"x":24139.74175100142,"y":29692.688294073963},"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":24139.74175100142,"y":29692.688294073963},"targetPosition":{"x":24399.549372136753,"y":29842.688294073963},"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":24399.549372136753,"y":29842.688294073963},"targetPosition":{"x":24659.356993272086,"y":29992.688294073963},"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","project":"Superalgos","taskManagers":[{"type":"Task Manager","name":"Masters","project":"Superalgos","tasks":[{"type":"Task","name":"Exchange Raw Data","project":"Superalgos","bot":{"type":"Sensor Bot Instance","name":"Exchange Raw Data","config":"{ \n\"startDate\": \"2020-01-01\"\n}","project":"Superalgos","processes":[{"type":"Sensor Process Instance","name":"Exchange Raw Data Historic-OHLCVs","project":"Superalgos","id":"149bc037-9762-4737-b1b8-945b5ccee230","savedPayload":{"position":{"x":23931.241698334637,"y":28863.681567010735},"targetPosition":{"x":24173.94679664712,"y":29040.017142698478},"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":24173.94679664712,"y":29040.017142698478},"targetPosition":{"x":24416.651894959603,"y":29216.35271838622},"floatingObject":{"isPinned":false,"isFrozen":false,"isCollapsed":false,"angleToParent":2,"distanceToParent":3,"arrangementStyle":0},"uiObject":{"isRunning":false}}},"id":"7c28a4a4-86da-43be-9e89-d01b202f27eb","sLine truncated
+5 -2
View File
@@ -15452,6 +15452,10 @@
{
"codeName": "ZAR",
"iconName": "zar"
},
{
"codeName": "XRP",
"iconName": "xrp"
}
]
},
@@ -15785,8 +15789,7 @@
}
],
"initialValues": {
"config": "{ \n\"codeName\": \"DOUBLE_CLICK_ON_THIS_STRING_TO_SELECT_IT_XXX_DELETE_IT_AND_PASTE_YOUR_EXCHANGE_API_PUBLIC_KEY\",\n\"secret\": \"REPLACE_THIS_STRING_WITH_YOUR_API_KEY_SECRET\"\n}"
},
"config": "{ \n\"codeName\": \"DOUBLE_CLICK_ON_THIS_STRING_TO_SELECT_IT_XXX_DELETE_IT_AND_PASTE_YOUR_EXCHANGE_API_PUBLIC_KEY\",\n\"secret\": \"REPLACE_THIS_STRING_WITH_YOUR_API_KEY_SECRET\"\n,\n\"uid\": \"REPLACE_THIS_STRING_WITH_YOUR_UID_IF_NECESSARY\"\n}" },
"addLeftIcons": true,
"editors": {
"config": true
@@ -16,7 +16,8 @@
},
{
"style": "Success",
"text": "To do a tutorial, load the corresponding plugin workspace, find the tutorial at the bottom of the design space, and select Run on the menu."
"text": "To do a tutorial, load the corresponding plugin workspace, find the tutorial at the bottom of the design space, and select Play on the menu.",
"updated": 1617036749800
},
{
"style": "Text",
@@ -24,7 +25,8 @@
},
{
"style": "Text",
"text": "The recommended order is given by the list of chapters below, but the truth is doing all tutorials is what matters, regardless of the order."
"text": "The recommended order is given by the list below, but the truth is doing all tutorials is what matters, regardless of the order.",
"updated": 1617036785768
},
{
"style": "Title",
@@ -32,7 +34,8 @@
},
{
"style": "Text",
"text": "For your convenience, find a relation of plugin workspaces and the tutorials each of them feature."
"text": "For your convenience, find a relation of Plugin Workspaces and the tutorials each of them feature.",
"updated": 1617105574778
},
{
"style": "Include",
@@ -41,43 +44,53 @@
},
{
"style": "Chapter",
"text": "I->Superalgos->Tutorial->Welcome to Superalgos!->You have most likely already done the Welcome tutorial. However, it is so densely packed with information that most users choose to do it more than once. Find the Welcome tutorial in the Getting Started plugin workspace.",
"updated": 1610915848630
"text": "I->Superalgos->Tutorial->Welcome to Superalgos!->This tutorial introduces you to the Superalgos universe. It walks you through the main areas of the system, teaches you the basic operation, walks you through the process of backtesting a demo Trading System, and even sets you up with your first Live Trading Session.",
"updated": 1617207891956
},
{
"style": "Chapter",
"text": "II->Superalgos->Tutorial->Install a New Market->If you are anxious to start trying things out in your preferred altcoin markets, this tutorial teaches you how to set them up. Find this tutorial in the Getting Started plugin workspace.",
"updated": 1610916232999
"text": "II->Superalgos->Tutorial->Basic Education->This tutorial complements the information delivered in the Welcome to Superalgos Tutorial, focusing on the Nodes Menu, Backups, Clones and Shares, Plugins, Workspaces, References, and more.",
"updated": 1617208207170
},
{
"style": "Chapter",
"text": "III->Superalgos->Tutorial->Trading Bot Layers->This tutorial expands what you learned on the Welcome tutorial about the layers that the Trading Bot makes available in the charts. It is fundamental information to understand your backtests and simulations in general. Find this tutorial in the Weak-hands Buster V2 plugin workspace.",
"updated": 1610916386240
"text": "III->Superalgos->Tutorial->Contribute to Superalgos!->This tutorial covers the setup to allow the app to interact with your Github fork, the commands to update the app, switching branches, and how to contribute to the project.",
"updated": 1617208248309
},
{
"style": "Chapter",
"text": "IV->Superalgos->Tutorial->Intro to Trading Systems->This is the first tutorial in a series about building trading systems and the strategies within. The tutorial lays out the key aspects of the framework so that you may open your mind to what comes next. Find this tutorial in the Trading Systems Design Tutorials workspace.",
"updated": 1610953567118
"text": "IV->Superalgos->Tutorial->Trading Bot Layers->This tutorial walks you through the layers made available by the Trading Bot on the charts, in particular, the layers associated with all types of Trading Sessions. You will run a backtest of the BTC-USDT - Weak-hands Buster - WHB trading system and explore some of the trades while learning how to use the layers.",
"updated": 1617208309588
},
{
"style": "Chapter",
"text": "V->Superalgos->Tutorial->Defining a Trading Idea->This tutorial is the second in the series about building strategies. It covers the conceptual aspects of formulating a testable trading idea, a requirement for designing a trading strategy. Find this tutorial in the Trading Systems Design Tutorials plugin workspace.",
"updated": 1610953544399
"text": "V->Superalgos->Tutorial->Hello World Tutorial->This tutorial is a flash course, cut-to-the-chase style, introducing you to the notion of building a simple Trading System. The tutorial assumes a basic understanding of how Trading Strategies are defined. That said, you may find it useful as a first step introduction too, particularly if you like direct, to-the-point information.",
"updated": 1617208438763
},
{
"style": "Chapter",
"text": "VI->Superalgos->Tutorial->Testing a Trading Idea - The Trigger Stage->This tutorial is the third in the series about building strategies. It covers the implementation of the trading idea developed in the previous tutorial, at the level of the Trigger Stage. Find this tutorial in the Trading Systems Design Tutorials plugin workspace.",
"updated": 1610955670388
"text": "VI->Superalgos->Tutorial->Intro to Trading Systems->This tutorial is the first in a series of tutorials that teach you how to build trading systems. The series goes deep into multiple topics and takes you through a progression that intends to match basic trading knowledge with particular Superalgos implementations. This first tutorial covers theoretical concepts, explains how trading systems are structured in Superalgos, and highlights how you need to frame your strategies to make the most out of the trading framework built-in the system.",
"updated": 1617208471535
},
{
"style": "Chapter",
"text": "VII->Superalgos->Tutorial->Testing a Trading Idea - The Other Stages->This tutorial is the fourth in the series and completes the implementation and testing of the trading idea. Find this tutorial in the Trading Systems Design Tutorials plugin workspace.",
"updated": 1610955678658
"text": "VII->Superalgos->Tutorial->Defining a Trading Idea->This tutorial teaches you how to formulate a testable trading idea. In a way, it is an introduction to the systematic approach to trading, a crucial concept that you must grasp to automate strategies. The example laid out in this tutorial is later used in the rest of the series.",
"updated": 1617208506342
},
{
"style": "Chapter",
"text": "VIII->Superalgos->Tutorial->Developers Intro->This tutorial is a technical overview on the architecture of Superalgos, it's main components, and notes on design criteria.",
"updated": 1610955692420
"text": "VIII->Superalgos->Tutorial->Testing a Trading Idea - The Trigger Stage->This tutorial walks you through the implementation of the trading idea defined in the previous tutorial, covering the definitions of the Trigger Stage.",
"updated": 1617208539216
},
{
"style": "Chapter",
"text": "IX->Superalgos->Tutorial->Testing a Trading Idea - The Other Stages->This tutorial completes the implementation of the trading idea formulated in the previous tutorials, covering the definitions of the Open Stage, Manage Stage, and Close Stage.",
"updated": 1617208575390
},
{
"style": "Chapter",
"text": "X->Superalgos->Tutorial->Install a New Market->This tutorial covers the process of installing a new market. The process automates the creation of data and trading tasks, as well as charts for the said Market.",
"updated": 1617208663643
}
]
}
@@ -88,6 +88,11 @@
"text": "XV->Superalgos->Topic->Troubleshooting->Superalgos is a vast system and you will run into confusing situations while learning it. You must acquire the knowledge on how to analyze the issues that you may encounter. There usually is a good explanation for what is going on. This chapter helps you in that process.",
"updated": 1611649840313
},
{
"style": "Chapter",
"text": "XVI->Superalgos->Topic->Contributing to Superalgos->Superalgos is a Community project. Everything you build with Superalgos is susceptible to be contributed to the project. Contributing to the project earns you Superalgos (SA) tokens! This chapter covers how you may contribute some of the intelligence you build for yourself, and also how you may get involved with the project at a deeper level.",
"updated": 1617094031124
},
{
"style": "Text",
"text": ""
@@ -1,8 +1,8 @@
{
"type": "List of Plugin Workspaces and Tutorials",
"definition": {
"text": "Tutorials exists withing specific workspaces. This is a list of the workspaces shipping with Superalgos and the tutorials each of the feature.",
"updated": 1613848190790
"text": "Tutorials exists withing specific workspaces. This is a list of the workspaces shipping with Superalgos and the tutorials each of them feature.",
"updated": 1616703721108
},
"paragraphs": [
{
@@ -16,15 +16,18 @@
},
{
"style": "List",
"text": "Welcome to Superalgos!"
"text": "Welcome to Superalgos Tutorial",
"updated": 1616703643988
},
{
"style": "List",
"text": "Developers Intro"
"text": "Basic Education Tutorial",
"updated": 1616695524660
},
{
"style": "List",
"text": "Install a New Market"
"text": "Contribute to Superalgos Tutorial",
"updated": 1616703652140
},
{
"style": "Subtitle",
@@ -32,7 +35,17 @@
},
{
"style": "List",
"text": "Trading Bot Layers"
"text": "Trading Bot Layers Tutorial",
"updated": 1616703658875
},
{
"style": "Subtitle",
"text": "Hello World Tutorial Plugin Workspace",
"updated": 1616695480453
},
{
"style": "List",
"text": "Hello World Tutorial"
},
{
"style": "Subtitle",
@@ -40,19 +53,32 @@
},
{
"style": "List",
"text": "Intro to Trading Systems"
"text": "Intro to Trading Systems Tutorial",
"updated": 1616703668889
},
{
"style": "List",
"text": "Defining a Trading Idea"
"text": "Defining a Trading Idea Tutorial",
"updated": 1616703676357
},
{
"style": "List",
"text": "Testing a Trading Idea - The Trigger Stage"
"text": "Testing a Trading Idea - The Trigger Stage Tutorial",
"updated": 1616703683018
},
{
"style": "List",
"text": "Testing a Trading Idea - The Other Stages"
"text": "Testing a Trading Idea - The Other Stages Tutorial",
"updated": 1616703689861
},
{
"style": "Subtitle",
"text": "Tested Exchanges Plugin Workspace"
},
{
"style": "List",
"text": "Install a New Market Tutorial",
"updated": 1616703698477
},
{
"style": "Text",
@@ -30,23 +30,8 @@
},
{
"style": "Title",
"text": "Configuring Execution Algorithm"
},
{
"style": "Text",
"text": "To configure the execution algorithm node, select Configure on the menu."
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": " \"percentageOfStageTargetSize\": 100"
},
{
"style": "Text",
"text": "}"
"text": "Execution Algorithm Configuration",
"updated": 1617197817510
},
{
"style": "List",
@@ -14,13 +14,13 @@
},
{
"style": "Text",
"text": "When set at the level of the time machine, the scale settings affect all charts within the time machine. When set at the level of the timeline chart, the settings override the rate scale at the time machine level. ",
"updated": 1610136729523
"text": "When set at the level of the time machine, the scale settings affect all charts within the time machine. When set at the level of the timeline chart, the settings override the rate scale at the time machine level.",
"updated": 1616512866155
},
{
"style": "Success",
"text": "This allows having multiple charts on the same time machine, each with a different rate scale. This is the way to set up indicators the are designed for a scale different than that of the rate of the assets in the market. For example, the RSI and Percentage Bandwidth indicators oscillate between 0 and 100.",
"updated": 1610136956037
"text": "This allows having multiple charts on the same time machine, each with a different rate scales. This is the way to set up indicators the are designed for a scale different than that of the rate of the assets in the market. For example, the RSI and Percentage Bandwidth indicators oscillate between 0 and 100.",
"updated": 1616512886656
},
{
"style": "Title",
@@ -32,7 +32,8 @@
},
{
"style": "Text",
"text": "In technical terms, the minimum and maximum scale values are constantly changing as, whenever you pan across the charts, you are directly affecting the minimum and maximum scale values. That said, the actual scale may change dynamically or not, depending on the scale-automation settings."
"text": "In technical terms, the minimum and maximum scale values are constantly changing as, whenever you pan the charts vertically, you are directly affecting the minimum and maximum scale values. That said, the actual scale may change dynamically or not, depending on the scale-automation settings.",
"updated": 1616512946283
},
{
"style": "Title",
@@ -40,18 +41,19 @@
},
{
"style": "Text",
"text": "The system features an automatic adjustment of the scale, which is turned on by default in our shared workspaces. The scale may be automatic in its minimum value, in its maximum value, or both."
"text": "The system features an automatic adjustment of the scale, which is turned on by default in some of the Plugin Workspaces. The scale may be automatic in its minimum value, in its maximum value, on both, or on none (manual mode).",
"updated": 1616513013651
},
{
"style": "Text",
"style": "List",
"text": "When the scale is automatic in the minimum value, the scale is adjusted so that no piece of information in the span of the chart ever remains below the bottom of the chart. As a result, the lowest data point aligns with the bottom of the chart."
},
{
"style": "Text",
"style": "List",
"text": "When the scale is automatic in the maximum value, the scale is adjusted so that no piece of information in the span of the chart ever remains above the top of the chart. As a result, the highest data point aligns with the top of the chart."
},
{
"style": "Text",
"style": "List",
"text": "The scale may be automated on either, or both minimum and maximum values at the same time. In the later case, no data point in the span of the chart ever remains out of the visible area of the chart, as the lowest data point aligns with the bottom of the chart and the highest aligns with the top."
},
{
@@ -70,6 +72,11 @@
"style": "Text",
"text": "The offset is a feature of the rate scale by which the scale may be shifted upwards or downwards. As a result, charts aligned on the vertical axis&mdash;synchronized in datetime by a shared time machine&mdash;may be put one above the other. In technical terms, what happens is that the scale is shifted upwards or downwards."
},
{
"style": "Block",
"text": "Charts",
"updated": 1616673863766
},
{
"style": "Title",
"text": "Rate Scale at the Charts"
@@ -81,8 +88,17 @@
},
{
"style": "Text",
"text": "To change the automatic scale settings, place the mouse pointer over the corresponding time machine or timeline chart rate box, press the <kbd>Shift</kbd> key and slowly scroll the wheel of the mouse. The action cycles through different possible scale automation settings. Notice a tiny green triangle below and/or above the rate scale icon.",
"updated": 1609783256953
"text": "To change the automatic scale settings, place the mouse pointer over the corresponding time machine or timeline chart rate box, press the Shift key and slowly scroll the wheel of the mouse. The action cycles through different possible scale automation settings. ",
"updated": 1616513170991
},
{
"style": "Text",
"text": "You may also place the mouse pointer on the scale box and use the side arrows ← → to toggle through the different automation settings.",
"updated": 1616513210816
},
{
"style": "Success",
"text": "Notice a tiny green triangle below and/or above the rate scale icon."
},
{
"style": "List",
@@ -107,11 +123,13 @@
},
{
"style": "Text",
"text": "2. To adjust the scale, make sure either or both minimum and maximum values are in manual mode. Place the mouse pointer over the corresponding time machine or timeline chart rate box and scroll the wheel of the mouse. The scale will increase or decrease accordingly, depending on which values are set to manual."
"text": "To adjust the scale, make sure either or both minimum and maximum values are in manual mode. Place the mouse pointer over the corresponding time machine or timeline chart rate box and scroll the wheel of the mouse. The scale will increase or decrease accordingly, depending on which values are set to manual.",
"updated": 1616513228715
},
{
"style": "Text",
"text": "{% include image.html file='interface/rate-scale-01.gif' url='yes' max-width='100' caption='When the scale is set to manual, scrolling the mouse wheel on top of the rate scale box changes the scale.' %}"
"text": "Alternatively, you may also place the mouse pointer on the scale box and use the vertical arrows ↑ ↓ to affect the scale.",
"updated": 1616513309746
},
{
"style": "Text",
@@ -128,11 +146,8 @@
},
{
"style": "Text",
"text": "3. To shift or offset a timeline chart on the vertical axis, place the mouse pointer on the rate box, left-click and drag upwards or downwards, as desired. The timeline chart will shift in the specified direction while the remaining charts stay in the same position."
},
{
"style": "Text",
"text": "{% include image.html file='interface/rate-scale-02.gif' url='yes' max-width='100' caption='To control the offset between timeline charts, right-click on the rate box and drag upwards or downwards.' %}"
"text": "To shift or offset a timeline chart on the vertical axis, place the mouse pointer on the rate box, left-click and drag upwards or downwards, as desired. The timeline chart will shift in the specified direction while the remaining charts stay in the same position.",
"updated": 1616513340914
},
{
"style": "Note",
@@ -30,6 +30,10 @@
"text": "To set a time frame value, place the mouse pointer over the corresponding time machine or timeline chart time frame box and scroll the mouse wheel.",
"updated": 1609783625339
},
{
"style": "Text",
"text": "Alternatively, you may place the mouse pointer and use the up and down arrows ↑ ↓ to toggle through the available time frames."
},
{
"style": "Block",
"text": "Configuring",
@@ -26,23 +26,25 @@
},
{
"style": "Text",
"text": "The system features an automatic adjustment of the scale, which is turned on by default in our shared workspaces. The scale may be automatic in its minimum value, in its maximum value, or both."
"text": "The system features an automatic adjustment of the scale, which is turned on by default in some of the Plugin Workspaces. The scale may be automatic in its minimum value, in its maximum value, in both, or none (manual mode).",
"updated": 1616506577511
},
{
"style": "Text",
"style": "List",
"text": "When the scale is automatic in the minimum value, the scale is adjusted so that the chart shows all data from the beginning of the market. Panning the charts under such setting has the effect of compressing and decompressing the data against the left border of the chart."
},
{
"style": "Text",
"style": "List",
"text": "When the scale is automatic in the maximum value, the scale is adjusted so that the chart shows all data until the end of the market. In such case, panning the charts has the effect of compressing and decompressing the data against the right border of the chart."
},
{
"style": "Text",
"style": "List",
"text": "When the scale is automatic in both the minimum and maximum value, the scale is adjusted so that the chart shows the whole market. In such case, when you click and drag to pan the charts, the settings turns back to manual on both ends of the chart."
},
{
"style": "Note",
"text": "Having the time scale set to automatic by default helps finding the data as soon as it starts being processed the first time you run the Masters bot instances."
"text": "Having the time scale set to automatic by default helps finding the data as soon as it starts being processed the first time you run the Masters Data Mine Bots.",
"updated": 1616506548663
},
{
"style": "Title",
@@ -67,8 +69,18 @@
},
{
"style": "Text",
"text": "To change the automatic scale settings, place the mouse pointer over the corresponding time box, press the <kbd>Shift</kbd> key and slowly scroll the wheel of the mouse. The action cycles through different possible scale automation settings. Notice a tiny green triangle to the sides of the time scale icon.",
"updated": 1609782562160
"text": "To change the automatic scale settings, place the mouse pointer over the corresponding time box, press the Shift key and slowly scroll the wheel of the mouse.",
"updated": 1616506660450
},
{
"style": "Text",
"text": "If you run into issues using the mouse wheel (certain OS + browser + mouse combinations may not work as expected), you may also point the mouse at the scale box and use ↑ ↓ to toggle through the different automatic modes.",
"updated": 1616506765350
},
{
"style": "Success",
"text": "Notice the tiny green triangles to the sides of the time scale icon.",
"updated": 1616506804850
},
{
"style": "List",
@@ -93,11 +105,8 @@
},
{
"style": "Text",
"text": "2. To adjust the scale, make sure either or both minimum and maximum values are in manual mode. Place the mouse pointer over the time box and scroll the wheel of the mouse. The scale will increase or decrease accordingly, depending on which values are set to manual."
},
{
"style": "Text",
"text": "{% include image.html file='interface/time-scale-01.gif' url='yes' max-width='100' caption='When the scale is set to manual, scrolling the mouse wheel on top of the time scale box changes the scale.' %}"
"text": "To adjust the scale, make sure either or both minimum and maximum values are in manual mode. Place the mouse pointer over the time box and scroll the wheel of the mouse. The scale will increase or decrease accordingly, depending on which values are set to manual.",
"updated": 1616512684144
},
{
"style": "Text",
@@ -1,7 +1,8 @@
{
"type": "Trading Strategy",
"definition": {
"text": "A trading strategy is the description of a set of actions or events run in stages. Events are triggered upon the validation of precise conditions describing specific market situations. Trading strategies are designed to achieve a specific goal within the broader plan of a trading system via taking and managing positions."
"text": "A trading strategy is the description of a set of actions or events that run in stages. Events are triggered upon the validation of precise conditions describing specific market situations. Trading strategies are designed to achieve a specific goal within the broader plan of a trading system via taking and managing positions.",
"updated": 1617184911508
},
"paragraphs": [
{
@@ -0,0 +1,60 @@
{
"review": "Superalgos Project Review",
"pageNumber": 6,
"type": "Superalgos Review - The Most Powerful Trading System To Date (But Also the Most Complex)",
"definition": {
"text": "Superalgos is by far the most powerful, intuitive, and flexible trading system available today. It's so much more than a traditional trading bot. The power and extensibility of this open-source marvel is mind-blowing. However, it's often said that nothing in life worth having is easy, and that's certainly true of Superalgos. You'll have to invest a lot of time and patience to learn a system that has more features than the newest Tesla. Is it worth it? Absolutely!",
"updated": 1616413671040
},
"paragraphs": [
{
"style": "Text",
"text": "I stumbled across Superalgos a few month ago when I was researching free trading bots for cryptocurrency and saw a post about a new open-source trading system available through Github. It was the best find of my life. Although this system is very early in its development, it is already developed enough to allow complicated trading strategies to be implemented, and it has undergone massive improvement in just the short time I've been using it.",
"updated": 1616414254789
},
{
"style": "Text",
"text": "Superalgos is a visual, layered system. It taked object-oreineted technology to a new level never before seen in a user environment. Until now, you had to work for a multi-national finance enterprise to find this kind of sophistication in a software system. Put the time and effort into learning it, and you'll have unbelievable trading power at your fingertips. This system definitely give you the tools to implement profitable trading strategies in multiple markets and exchanges simultaneously, whether you use existing strategies (which are soon to come to this primordial system) or develop your own complex trading algorithms. Yet, you don't have to know programming to use it, but learming simple javascript commands, functions, and operators will help."
},
{
"style": "Text",
"text": "The most important thing to make Superalgos work for you is to take the time to learn as much about it as possible. First, do the 'Welcome to Superalgos!' tutorial, and do it multiple times to catch the nuances you missed in previous reviews of the tutorial. Then do the 'Install a New Market' tutorial and the trading system design tutorials (in a separate plug-in) multiple times. Finally go through the Users Manual in the documentation to learn about all the important features in this comprehensive software package.",
"updated": 1616418160500
},
{
"style": "Text",
"text": "This program is supported by a vibrant user and developer community on Telegram. Join it and ask any questions you might have to help you understand and progress through the system. Superalgos is a dynamic development system. If you see something missing or would like an enhancement, just ask, and if it makes sense, you may be surprised by how quickly it gets implemented.",
"updated": 1616422495138
},
{
"style": "Text",
"text": "Before you know it, you'll be able to develop custom trading indicators and sophisticated strategies that you can thoroughly test on untold markets and then share these profit-making tools with the rest of the Superalgos partnership.",
"updated": 1616421994567
},
{
"style": "Text",
"text": "Superalgos is a goldmine, and it can pay off like one if you put in the time and effort upfront, and colloborate with the community. Happy Trading!",
"updated": 1616422536155
},
{
"style": "Text",
"text": "DougJCook"
},
{
"style": "Text",
"text": ""
},
{
"style": "Text",
"text": ""
},
{
"style": "Text",
"text": ""
},
{
"style": "Text",
"text": ""
}
]
}
@@ -22,8 +22,8 @@
"translations": [
{
"language": "ID",
"text": "Sekarang anda memiliki Superalgos versi terbaru. Perlu diingat untuk selalu memulai ulang Client dan UI. Jika memiliki Task yang berjalan, maka anda harus menghentikan Task tersebut terlebih dahulu, lalu memulai ulang Client, sehingga anda dapat menjalankan Task tersebut lagi menggunakan codebase yang terupdate.",
"updated": 1613892095568,
"text": "Sekarang Superalgos berada diversi terbaru. Perlu diingat untuk selalu restart Client dan UI. Jika memiliki Task yang berjalan, maka anda harus menghentikan Task tersebut terlebih dahulu, lalu memulai ulang Client, sehingga anda dapat menjalankan Task tersebut lagi menggunakan codebase yang terupdate. ",
"updated": 1616762115115,
"style": "Success"
}
]
@@ -34,8 +34,8 @@
"translations": [
{
"language": "ID",
"text": "Pembaruan yang Anda buat, hanya mempengaruhi Client yang terhubung melalui http menggunakan browser ini. Jika Anda memiliki lebih banyak Client yang berjalan sebagai bagian dari Network, anda juga perlu memperbaruinya, baik secara manual menggunakan Git atau dengan menavigasikan browser anda ke URL tujuan dan menjalankan App Update Command di sana.",
"updated": 1613892300538,
"text": "Pembaruan yang Anda buat, hanya berlaku di Client ini yang terkoneksi http dengan browser. Jika kamu memiliki banyak Client yang berjalan di Network, juga harus diperbaharui, baik secara manual menggunakan Git atau dengan menavigasikan browser ke URL tujuan dan menjalankan App Update Command di sana. ",
"updated": 1616762450808,
"style": "Note"
}
],
@@ -8,8 +8,8 @@
"translations": [
{
"language": "ID",
"text": "Proses pembaruan berjalan dengan lancar namun tidak ada perubahan yang terjadi karena versi Superalgos anda sudah diversi paling baru dengan cabang saat ini. Tidak perlu tindakan lebih lanjut.",
"updated": 1613892507215,
"text": "Proses pembaruan berjalan lancar namun tidak ada perubahan karena versi instalasi sudah terbaru dengan branch sekarang . Tidak perlu tindakan lebih lanjut.",
"updated": 1616761518007,
"style": "Definition"
}
]
@@ -22,10 +22,14 @@
"text": "Superalgos->Node->Time Scale->Content",
"updated": 1610137173127
},
{
"style": "Include",
"text": "Superalgos->Node->Time Scale->Charts",
"updated": 1616673746726
},
{
"style": "Title",
"text": "Rate Scale",
"updated": 1610137179866
"text": "Rate Scale"
},
{
"style": "Include",
@@ -37,10 +41,14 @@
"text": "Superalgos->Node->Rate Scale->Content",
"updated": 1610137185478
},
{
"style": "Include",
"text": "Superalgos->Node->Rate Scale->Charts",
"updated": 1616673907214
},
{
"style": "Title",
"text": "Time Frame Scale",
"updated": 1610137195480
"text": "Time Frame Scale"
},
{
"style": "Include",
@@ -49,8 +57,12 @@
},
{
"style": "Include",
"text": "Superalgos->Node->Time Frame Scale->Content",
"updated": 1610137202224
"text": "Superalgos->Node->Time Frame Scale->Content"
},
{
"style": "Include",
"text": "Superalgos->Node->Time Frame Scale->Charts",
"updated": 1616673811765
}
]
}
@@ -0,0 +1,20 @@
{
"topic": "Community Workspaces",
"pageNumber": "9",
"type": "Machine Learning Demo Plugin Workspace",
"definition": {
"text": "The workspace features the basic setup to start exploring the integration of the TensorFlow Project.",
"updated": 1616693308998
},
"paragraphs": [
{
"style": "Title",
"text": "Brought to you by",
"updated": 1616693330070
},
{
"style": "Text",
"text": "@luis-fernando-molina"
}
]
}
@@ -0,0 +1,21 @@
{
"topic": "Contributing to Superalgos",
"pageNumber": 1,
"type": "How to Contribute to Superalgos",
"definition": {
"text": "This topic covers the logistics and details of how to contribute different kinds of assets to the project, including a Trading System, a Data Mine, icons, documentation, translations, and so on.",
"updated": 1617032255373
},
"paragraphs": [
{
"style": "Text",
"text": "Scan the table of contents below to find the documentation about how to contribute the kind of asset you may have in mind.",
"updated": 1617032405931
},
{
"style": "Success",
"text": "If there is no explanation about the type of asset you wish to contribute, please reach out to the team in the Superalgos Community Group!",
"updated": 1617032427271
}
]
}
@@ -1,6 +1,6 @@
{
"topic": "Contributing to Superalgos",
"pageNumber": "1",
"pageNumber": 2,
"type": "How to Contribute a Trading System",
"definition": {
"text": "To contribute a Trading System, you must provide the trading system file, a clean workspace, and proper documentation.",
@@ -1,6 +1,6 @@
{
"topic": "Contributing to Superalgos",
"pageNumber": "2",
"pageNumber": 3,
"type": "How to Contribute Icons",
"definition": {
"text": "Superalgos' visual interface features hundreds of icons and many more icons are required with each release, as new functionality is rolled out. Designing icons is a great way to leave your mark, as it puts your work directly in front of every user!",
@@ -1,6 +1,6 @@
{
"topic": "Contributing to Superalgos",
"pageNumber": "3",
"pageNumber": 4,
"type": "How to Contribute to the Docs",
"definition": {
"text": "Helping with keeping the Docs up to date, improving the delivery of the information, expanding on explanations, or simply fixing typos and grammar mistakes makes for a better user experience and lowers entry barriers for new users.",
@@ -1,6 +1,6 @@
{
"topic": "Contributing to Superalgos",
"pageNumber": "4",
"pageNumber": 5,
"type": "How to Contribute Translations",
"definition": {
"text": "The Docs are originally written in English. Making Superalgos more accessible is a key endeavor to grow the Community and the user base. Translating tutorials and software documentation into languages other than English is of huge value!",
@@ -23,9 +23,9 @@
"updated": 1613822457097
},
{
"style": "Note",
"text": "Before you being, please read the page Docs In English.",
"updated": 1613822688747
"style": "Include",
"text": "Superalgos->Topic->Docs In English->Content",
"updated": 1616762047762
},
{
"style": "Text",
@@ -48,9 +48,14 @@
"updated": 1613824072677
},
{
"style": "Text",
"text": "As explained in the How to Contribute to the Docs page, you must switch to the develop branch and make sure your system is up to date.",
"updated": 1613825583367
"style": "List",
"text": "As explained in the How to Contribute to the Docs page, you must switch your Contributions Branch and your Current Branch to the develop branch. Remember to restart the app after the switch.",
"updated": 1616762259778
},
{
"style": "List",
"text": "Make sure your system is up to date running the app.update command.",
"updated": 1616762308286
},
{
"style": "List",
@@ -71,6 +76,11 @@
"text": "Remember that translations exist at the level of each paragraph. Always make sure that the translation you input matches the correct paragraph. This is important because if a paragraph is updated in the English version, all translations will get a notice that the particular paragraph may be outdated.",
"updated": 1613824142107
},
{
"style": "List",
"text": "Participate in the Superalgos Docs Group. Let people know what part of the Docs or which Tutorial you will be working with. This basic coordination will help avoid conflicts when more than one user works on the same pages at the same time.",
"updated": 1616762526615
},
{
"style": "Success",
"text": "You may start with the translation of the Docs in [Language] page that you land on after you switch the language.",
@@ -3,13 +3,14 @@
"pageNumber": 3,
"type": "Docs Page Category",
"definition": {
"text": "The Docs feature six categories of pages: nodes, concepts, topics, tutorials, reviews, and books. Each category is represented by a tab in the Docs Search Results.",
"updated": 1613759267463,
"text": "The Docs feature six categories of pages: Node, Concept, Topic, Tutorial, Review, and Book. Each category is represented by a tab in the Docs Search Results.",
"updated": 1616876130108,
"translations": [
{
"language": "ID",
"text": "Didalam dokumen ini menampilkan enam kategori halaman yaitu: nodes, concepts, topics, tutorials, reviews, dan books. Setiap kategori diwakilkan oleh sebuah tab dalam Docs Search Results.",
"updated": 1613859527741
"updated": 1613859527741,
"style": "Definition"
}
]
},
@@ -26,7 +27,8 @@
{
"language": "ID",
"text": "Kategori Halaman Node ",
"updated": 1613859587112
"updated": 1613859587112,
"style": "Title"
}
]
},
@@ -37,7 +39,8 @@
{
"language": "ID",
"text": "Setiap Node ditentukan dalam konteks Project yang menampilkan Docs Node Page yang menjelaskan apa itu Node dan bagaimana penggunaannya. Halaman ini akan terbuka saat mengklik tombol bantuan di menu node.",
"updated": 1613859807031
"updated": 1613859807031,
"style": "Text"
}
]
},
@@ -48,7 +51,8 @@
{
"language": "ID",
"text": "Kategori Halaman Concept",
"updated": 1613859855103
"updated": 1613859855103,
"style": "Title"
}
]
},
@@ -59,7 +63,8 @@
{
"language": "ID",
"text": "Konseps adalah pemikiran atau gagasan yang tidak direpresentasikan sebagai node dalam hierarcy. Halaman dalam kategori konsep mencakup pemikiran atau gagasan yang dapat dijelaskan dalam satu halaman. Intinya, konsep adalah gagasan yang dapat dibahas secara lengkap dalam satu halaman.",
"updated": 1613860012881
"updated": 1613860012881,
"style": "Text"
}
]
},
@@ -70,7 +75,8 @@
{
"language": "ID",
"text": "Kategori Halaman Topic",
"updated": 1613860037593
"updated": 1613860037593,
"style": "Title"
}
]
},
@@ -81,7 +87,8 @@
{
"language": "ID",
"text": "Topik adalah konsep yang lebih dalam dan memiliki banyak segi yang membutuhkan lebih dari satu halaman untuk dijelaskan. Topik adalah sekumpulan konsep yang berkaitan erat, disusun secara berurutan. Namun, bukan halaman itu saja. Melainkan, ini adalah kumpulan dari halaman-halaman.",
"updated": 1613860164710
"updated": 1613860164710,
"style": "Text"
}
]
},
@@ -92,7 +99,8 @@
{
"language": "ID",
"text": "Kategori Halaman Tutorial",
"updated": 1613860197070
"updated": 1613860197070,
"style": "Title"
}
]
},
@@ -103,7 +111,8 @@
{
"language": "ID",
"text": "Adapun dalam Tutorial adalah hirarki yang dapat mengatur berbagai jenis node termasuk node Tutorial Topic dan Tutorial Step. Setiap node dalam hierarki mengarah ke Tutorial Step di Docs tempat sumber informasi. Dalam konteks Docs, halaman dalam tutorial diatur secara runtut seperti topik.",
"updated": 1613860411843
"updated": 1613860411843,
"style": "Text"
}
]
},
@@ -114,7 +123,8 @@
{
"language": "ID",
"text": "Kategori Halaman Reviews",
"updated": 1613860442084
"updated": 1613860442084,
"style": "Title"
}
]
},
@@ -125,7 +135,8 @@
{
"language": "ID",
"text": "Reviews adalah konten buatan pengguna yang menjelaskan pengalaman mereka dengan komponen tertentu dari Superalgos atau proyek lain.",
"updated": 1613860497517
"updated": 1613860497517,
"style": "Text"
}
]
},
@@ -136,7 +147,8 @@
{
"language": "ID",
"text": "Kategori Halaman Books",
"updated": 1613860532720
"updated": 1613860532720,
"style": "Title"
}
]
},
@@ -147,7 +159,8 @@
{
"language": "ID",
"text": "Books merupakan halaman itu sendiri. Halaman tersebut menampilkan daftar topik yang masing-masing merupakan satu bab dalam buku tersebut.",
"updated": 1613860614179
"updated": 1613860614179,
"style": "Text"
}
]
}
@@ -7,10 +7,14 @@
"updated": 1610976158171
},
"paragraphs": [
{
"style": "Warning",
"text": "Make sure you consult with the Superalgos Documentation Group before using the Docs Repaginate Command on existing topics or tutorials. The repagination changes all files in the collection. For that reason, the command may be prone to creating conflicts with other users that may be working on those files too.",
"updated": 1616705086396
},
{
"style": "Title",
"text": "Syntax",
"updated": 1610393031768
"text": "Syntax"
},
{
"style": "Javascript",
@@ -11,6 +11,11 @@
"text": "Il comando docs.reindex ha avviato la ricostruzione del Docs Search Engine Index.",
"updated": 1614713649286,
"style": "Definition"
},
{
"language": "ID",
"text": "docs.reindex command akan menyusun ulang Docs Search Engine Index.",
"updated": 1616764015935
}
]
},
@@ -25,6 +30,11 @@
"text": "La reindicizzazione é un processo dispendioso dal punto di vista computazionale. Mentre é in atto, non sarai in grado di usare l'interfaccia grafica perché tutte le risorse della CPU saranno impegnate a ricostruire l'indice il più velocemente possibile.",
"updated": 1614713781526,
"style": "Success"
},
{
"language": "ID",
"text": "Reindexing merupakan proses intensif sumber daya. Saat proses berjalan, kamu tidak akan dapat menggunakan antarmuka karena semua sumber daya CPU didedikasikan untuk membuat ulang indeks secepat mungkin.",
"updated": 1616764125582
}
]
},
@@ -37,6 +47,11 @@
"text": "La dimensione del tuo Workspace ha influenza sul tempo richiesto per la reindicizzazione, perché ogni suo nodo deve essere scansionato. Tutto il codice e le varie configurazioni sono indicizzate.",
"updated": 1614714208819,
"style": "Text"
},
{
"language": "ID",
"text": "Beratnya workspace berdampak pada waktu yang digunakan untuk reindex konten karena tiap node di workspace harus discan. Semua code dan konfigurasi juga diindex.",
"updated": 1616764251832
}
]
},
@@ -49,6 +64,11 @@
"text": "Aspetta qualche secondo perché il processo finisca. Riceverai un messaggio quando questo avviene.",
"updated": 1614713939759,
"style": "Text"
},
{
"language": "ID",
"text": "Tunggu sebentar untuk beberapa detik sampai proses selesai. Kamu akan mendapatkan pesan baru setelah selesai.",
"updated": 1616764371829
}
]
}
@@ -11,6 +11,11 @@
"text": "Il comando docs.reindex ha terminato di ricostruire il Docs Search Engine Index.",
"updated": 1614713976492,
"style": "Definition"
},
{
"language": "ID",
"text": "docs.reindex command selesai membuat ulang Docs Search Engine Index.",
"updated": 1616762872651
}
]
},
@@ -25,6 +30,11 @@
"text": "L'indice é stato ricostruito e ora include tutte le ultime modifiche fatte da quando hai aperto l'interfaccia grafica, o dall'ultima volta che hai lanciato il comando docs.reindex. Questo significa che i nuovi contenuti creati adesso possono essere cercati. Anche i cambiamenti del Workspace sono stati indicizzati.",
"updated": 1614714113459,
"style": "Success"
},
{
"language": "ID",
"text": "Index sudah dibuat ulang dan memiliki perubahan terbaru yang kamu buat sejak kamu membuka UI atau menjalankan docs.reindex command. Artinya konten baru sudah dibuat dan bisa dicari. Perubahan di Workspace sudah masuk ke index juga.",
"updated": 1616763231526
}
]
}
@@ -4,13 +4,27 @@
"type": "Docs Message - Deleting Done",
"definition": {
"text": "The docs.delete command deleted from memory the page you requested.",
"updated": 1610973738997
"updated": 1610973738997,
"translations": [
{
"language": "ID",
"text": "docs.delete command menghapus page yang diminta dari memori.",
"updated": 1616763338862
}
]
},
"paragraphs": [
{
"style": "Important",
"text": "The page was flagged to be deleted. It will be removed from the in-memory collection of pages once you run the Docs Save Command. The Docs Save Command instructs the Client to delete the file from disk. To remove the page from the index you must run the Docs Reindex Command.",
"updated": 1610973712136
"updated": 1610973712136,
"translations": [
{
"language": "ID",
"text": "Page ini ditandai untuk dihapus. Dan akan dihapus dari koleksi page dari memori setelah kamu menjalankan Docs Save Command yang mengintruksi Client untuk menghapus file dari disk. Untuk menghapus page dari index kamu harus menjalankan Docs Reindex Command.",
"updated": 1616763669131
}
]
}
]
}
@@ -4,13 +4,27 @@
"type": "Docs Message - Repagination Done",
"definition": {
"text": "The docs.repaginate command finished repaginating.",
"updated": 1610973772448
"updated": 1610973772448,
"translations": [
{
"language": "ID",
"text": "docs.repaginate command akan menyelesaikan repaginasi.",
"updated": 1616763736459
}
]
},
"paragraphs": [
{
"style": "Important",
"text": "To complete this procedure, you need to manually delete from disk all the files of the Topic / Tutorial you just repaginated, and execute the Docs Save Command to save the in-memory updated pages.",
"updated": 1610292163004
"updated": 1610292163004,
"translations": [
{
"language": "ID",
"text": "Untuk menyelesaikan prosedur ini, kamu harus menghapus manual semua file dari topic / Tutorial yang direpaginasi dari disk , dan menjalankan Docs Save Command untuk menyimpan memori page yang sudah diupdate",
"updated": 1616763866864
}
]
}
]
}
@@ -7,19 +7,19 @@
"updated": 1613820592771
},
"paragraphs": [
{
"style": "Block",
"text": "Content",
"updated": 1616761358289
},
{
"style": "Text",
"text": "English is considered the default language. When you switch to a different language, the system attempts to show the content in the new language. However, if the translation is not yet available, it shows the English version instead.",
"updated": 1613820612132
"text": "English is considered the default language. When you switch to a different language, the system attempts to show the content in the new language. However, if the translation is not yet available, it shows the English version instead."
},
{
"style": "Text",
"text": "Node types, variable names, the title of pages in the Docs, and a few more elements of Superalgos may not be translated, as they are unique identifiers of the said elements. You will always get those in English."
},
{
"style": "Success",
"text": "If you wish to contribute translations, read the How to Contribute Translations page."
},
{
"style": "Success",
"text": "To switch languages, click on the flags on the footer of the Docs."
@@ -28,6 +28,15 @@
"style": "Note",
"text": "You may only add or delete pages to the Docs when the language is set to English.",
"updated": 1613820648230
},
{
"style": "Block",
"text": "End"
},
{
"style": "Success",
"text": "If you wish to contribute translations, read the How to Contribute Translations page.",
"updated": 1616761556162
}
]
}
@@ -0,0 +1,39 @@
{
"topic": "Docs Languages",
"pageNumber": "7",
"type": "Docs In Turkish",
"definition": {
"text": "The Docs pages of Superalgos and other projects integrated are originally written in English. The system allows users to search and browse pages in other languages as well, as long as users have previously contributed the corresponding translations.",
"updated": 1613820592771,
"translations": [
]
},
"paragraphs": [
{
"style": "Text",
"text": "English is considered the default language. When you switch to a different language, the system attempts to show the content in the new language. However, if the translation is not yet available, it shows the English version instead.",
"updated": 1613820612132,
"translations": [
]
},
{
"style": "Text",
"text": "Node types, variable names, the title of pages in the Docs, and a few more elements of Superalgos may not be translated, as they are unique identifiers of the said elements. You will always get those in English.",
"translations": [
]
},
{
"style": "Success",
"text": "If you wish to contribute translations, read the How to Contribute Translations page."
},
{
"style": "Success",
"text": "To switch languages, click on the flags on the footer of the Docs."
},
{
"style": "Note",
"text": "You may only add or delete pages to the Docs when the language is set to English.",
"updated": 1613820648230
}
]
}
@@ -4,7 +4,14 @@
"type": "Telegram Announcements",
"definition": {
"text": "Setup a Telegram bot to broadcast the activity of trading sessions to a Telegram group. You may produce plain-text or dynamic-content announcements at every event in your trading systems.",
"updated": 1611484869105
"updated": 1611484869105,
"translations": [
{
"language": "ID",
"text": "Penyiapan Telegram bot untuk membroadcast aktivitas dari sesi trading ke grup Telegram. Kamu dapat membuat plain-text atau pengumuman berbentuk dynamic-contenct di setiap event pada trading sistem milikmu.",
"updated": 1616926732019
}
]
},
"paragraphs": [
{
@@ -14,15 +21,36 @@
},
{
"style": "Text",
"text": "The announcements feature allows users to set up notifications tied to specific events, and triggered once each particular event becomes active while running any of the available types of trading sessions."
"text": "The announcements feature allows users to set up notifications tied to specific events, and triggered once each particular event becomes active while running any of the available types of trading sessions.",
"translations": [
{
"language": "ID",
"text": "Fitur pengumuman memungkinkan pengguna untuk mengatur pemberitahuan yang terkait dengan event tertentu, dan terpicu setelah setiap event menjadi aktif saat menjalankan salah satu jenis sesi trading yang tersedia.",
"updated": 1616927035635
}
]
},
{
"style": "Text",
"text": "You may use this feature to stay informed about the actions of your strategies while trading live, or to broadcast signals over a Telegram group while paper trading, for instance."
"text": "You may use this feature to stay informed about the actions of your strategies while trading live, or to broadcast signals over a Telegram group while paper trading, for instance.",
"translations": [
{
"language": "ID",
"text": "Kamu akan menggunakan fitur ini tetap mendapat informasi tentang tindakan dari strategi saat live trading, atau untuk membroadcast sinyal melalui grup Telegram, misalnya paper trading.",
"updated": 1616927218638
}
]
},
{
"style": "Text",
"text": "Supported events are:"
"text": "Supported events are:",
"translations": [
{
"language": "ID",
"text": "Events yang didukung:",
"updated": 1616927255808
}
]
},
{
"style": "List",
@@ -42,20 +70,48 @@
},
{
"style": "Text",
"text": "In addition, you can implement announcements at the level of stop and take profit phases, a particular case that shall be discussed too."
"text": "In addition, you can implement announcements at the level of stop and take profit phases, a particular case that shall be discussed too.",
"translations": [
{
"language": "ID",
"text": "Selain itu, kamu dapat mengimplementasikan pengumuman di level fase stop dan take profit, hal-hal lain juga akan kita bahas nantinya.",
"updated": 1616927456192
}
]
},
{
"style": "Text",
"text": "The current implementation is based on broadcasting announcements via Telegram bots. The system uses Telegram’s bots API to interact with a Telegram bot you will create. The bot will be added as a user in the Telegram group of your choice in which it will deliver the announcements as per the configuration you will set up in the system."
"text": "The current implementation is based on broadcasting announcements via Telegram bots. The system uses Telegram’s bots API to interact with a Telegram bot you will create. The bot will be added as a user in the Telegram group of your choice in which it will deliver the announcements as per the configuration you will set up in the system.",
"translations": [
{
"language": "ID",
"text": "Implementasi pada saat ini berdasar pada membroadcast pengumuman dari Telegram bot. Sistem menggunakan Telegram bot API untuk menghubungkan Telegram bot yang kamu buat. Bot akan ditambahkan sebagai user di Telegram grup pilihanmu yang akan mengirimkan pengumuman sesuai konfigurasi yang kamu atur pada sistem.",
"updated": 1616927659463
}
]
},
{
"style": "Title",
"text": "Setting Up a Telegram Bot and a Telegram Group"
"text": "Setting Up a Telegram Bot and a Telegram Group",
"translations": [
{
"language": "ID",
"text": "Menyiapkan Telegram Bot dan Telegram Grup",
"updated": 1616927728752
}
]
},
{
"style": "Text",
"text": "Telegram’s documentation explains the details of how to use Telegram bots:",
"updated": 1611485108327
"updated": 1611485108327,
"translations": [
{
"language": "ID",
"text": "Dokumentasi Telegram menjelaskan secara detail cara menggunakan Telegram bot:",
"updated": 1616927702979
}
]
},
{
"style": "Link",
@@ -64,62 +120,153 @@
},
{
"style": "Text",
"text": "You may choose to read Telegram’s documentation or simple follow the next few steps, which have been extracted for your convenience:"
"text": "You may choose to read Telegram’s documentation or simple follow the next few steps, which have been extracted for your convenience:",
"translations": [
{
"language": "ID",
"text": "Kamu dapat memilih untuk membaca dokumentasi Telegram atau mengikuti beberapa step berikut, yang telah diekstrak untuk kemudahanmu:",
"updated": 1616927824426
}
]
},
{
"style": "List",
"text": "1. Go to Telegram and find the user @BotFather: You may use the link or simply search for the user.",
"updated": 1611485257909
"updated": 1611485257909,
"translations": [
{
"language": "ID",
"text": "1. Pergi ke Telegram dan cari user @BotFather: Kamu dapat menggunakan tautan atau langsung mencari user.",
"updated": 1616927906032
}
]
},
{
"style": "List",
"text": "2. Type and send /newbot: BotFather will ask you to pick a name for your bot. Once the name is set, it will respond with the token (a text string) to access the HTTP API.",
"updated": 1611485277898
"updated": 1611485277898,
"translations": [
{
"language": "ID",
"text": "2. Ketik dan kirimkan /newbot: BotFather akan memintamu untuk memasukkan nama bot. Setelah ditetapkan, ia akan merespon dengan token (sebuah text string) untuk mengakses HTTP API.",
"updated": 1616928012542
}
]
},
{
"style": "Text",
"text": "You will need this token at a later time."
"text": "You will need this token at a later time.",
"translations": [
{
"language": "ID",
"text": "Kamu akan membuuhkan token ini nantinya.",
"updated": 1616928036024
}
]
},
{
"style": "List",
"text": "3. Create a Telegram: Your bot will broadcast the announcements here.",
"updated": 1611485421498
"updated": 1611485421498,
"translations": [
{
"language": "ID",
"text": "3. Buat Telegram Grup: Bot-mu akan membroadcast pengumuman disini nantinya.",
"updated": 1616928100241
}
]
},
{
"style": "List",
"text": "4. Add your bot in the group: And add @myidbot as user in the group too.",
"updated": 1611485472896
"updated": 1611485472896,
"translations": [
{
"language": "ID",
"text": "4. Tambahkan bot-mu kedalam grup: Dan tambahkan juga @myidbot sebagai user didalamnya.",
"updated": 1616928168243
}
]
},
{
"style": "List",
"text": "5. Type and send /getgroupid in the group: IDBot will answer with the group’s ID.",
"updated": 1611485491256
"updated": 1611485491256,
"translations": [
{
"language": "ID",
"text": "5. Ketik dan kirimkan /getgroupid didalam grup: IDBot akan menjawab dengan sebuah group’s ID.",
"updated": 1616928215518
}
]
},
{
"style": "Text",
"text": "You will need this ID at a later time."
"text": "You will need this ID at a later time.",
"translations": [
{
"language": "ID",
"text": "Kamu juga akan membutuhkan ID ini nantinya.",
"updated": 1616928242124
}
]
},
{
"style": "Title",
"text": "Setting Up the Telegram Bot in Superalgos"
"text": "Setting Up the Telegram Bot in Superalgos",
"translations": [
{
"language": "ID",
"text": "Menyiapkan Bot Telegram di Superalgos",
"updated": 1616928254405
}
]
},
{
"style": "Text",
"text": "You will set up your bot in a backtesting session, so that you may easily test the announcements."
"text": "You will set up your bot in a backtesting session, so that you may easily test the announcements.",
"translations": [
{
"language": "ID",
"text": "Kamu akan mensetup bot pada backtesting session, sehingga kamu lebih mudah dalam mengetest pengumuman.",
"updated": 1616928314869
}
]
},
{
"style": "List",
"text": "1. Go to any of your backtesting sessions and add a Social Bot node using the session’s menu: A social bot will be added along with a telegram bot.",
"updated": 1611485546279
"updated": 1611485546279,
"translations": [
{
"language": "ID",
"text": "1. Pergi ke backtesting sessions dan tambahkan Social Bot node dari session’s menu: social bot akan ditambahkan bersama telegram bot.",
"updated": 1616928451125
}
]
},
{
"style": "List",
"text": "2. Select Edit Telegram Bot on the telegram bot menu: Replace the placeholder text with the actual botToken and chatId you got earlier.",
"updated": 1611485581216
"updated": 1611485581216,
"translations": [
{
"language": "ID",
"text": "2. Pilih Edit Telegram Bot di telegram bot menu: Ubah placeholder text dengan aktual botToken dan chatId yang kamu dapatkan sebelumnya.",
"updated": 1616928506093
}
]
},
{
"style": "Text",
"text": "For example:"
"text": "For example:",
"translations": [
{
"language": "ID",
"text": "Contohnya:",
"updated": 1616928514397
}
]
},
{
"style": "Json",
@@ -128,19 +275,47 @@
},
{
"style": "Text",
"text": "The system now has everything it needs to communicate with your Telegram bot."
"text": "The system now has everything it needs to communicate with your Telegram bot.",
"translations": [
{
"language": "ID",
"text": "Sistem sekarang memiliki semua yang dibutuhkan untuk berkomunikasi dengan Telegram Bots milikmu.",
"updated": 1616928562420
}
]
},
{
"style": "Title",
"text": "Create Your Announcements"
"text": "Create Your Announcements",
"translations": [
{
"language": "ID",
"text": "Membuat Pengumumanmu",
"updated": 1616928589846
}
]
},
{
"style": "Text",
"text": "You may create as many announcements as you wish, on any of the events listed in the Overview section above by clicking Add Announcement on the corresponding event node menu."
"text": "You may create as many announcements as you wish, on any of the events listed in the Overview section above by clicking Add Announcement on the corresponding event node menu.",
"translations": [
{
"language": "ID",
"text": "Kamu akan membuat pengumuman sebanyak yang kamu mau, sesuai dengan event terdaftar pada Overview section diatas dengan mengclick Add Announcement di koresponden menu event node.",
"updated": 1616928711745
}
]
},
{
"style": "Text",
"text": "There are two different ways in which you may customize announcements:"
"text": "There are two different ways in which you may customize announcements:",
"translations": [
{
"language": "ID",
"text": "Ada dua cara berbeda untuk mengkostumisasi pengumuman:",
"updated": 1616928734728
}
]
},
{
"style": "List",
@@ -153,7 +328,14 @@
{
"style": "Success",
"text": "The Weak-hands buster strategy shipping with Superalgos features a complete set of announcements. Check them out and reuse them in your setup!",
"updated": 1611485640517
"updated": 1611485640517,
"translations": [
{
"language": "ID",
"text": "Strategi Weak-hands buster berkaitan dengan fitur Superalgos sebagai serangkaian lengkap dari pengumuman. Lihat mereka dan siapkan kembali di setup!",
"updated": 1616928883164
}
]
},
{
"style": "Title",
@@ -161,11 +343,25 @@
},
{
"style": "Text",
"text": "To set a plain text announcement, click Edit Announcement on the announcement node menu and set a message on the field text."
"text": "To set a plain text announcement, click Edit Announcement on the announcement node menu and set a message on the field text.",
"translations": [
{
"language": "ID",
"text": "Untuk membuat pengumuman plain text, click Edit Announcement pada announcement node menu dan set pesan di tempat text.",
"updated": 1616928982224
}
]
},
{
"style": "Text",
"text": "For example:"
"text": "For example:",
"translations": [
{
"language": "ID",
"text": "Contohnya:",
"updated": 1616928991922
}
]
},
{
"style": "Json",
@@ -178,15 +374,36 @@
},
{
"style": "Text",
"text": "To broadcast more elaborate messages that may include dynamic values of any of the current indicators or internal variables, set the message in the formula attached to the announcement instead."
"text": "To broadcast more elaborate messages that may include dynamic values of any of the current indicators or internal variables, set the message in the formula attached to the announcement instead.",
"translations": [
{
"language": "ID",
"text": "Untuk membroadcast pesan yang lebih rumit yang mungkin menyertakan dynamic content dari salah satu indikator atau variabel internal, atur pesan dengan formula dibawah kedalam pengumuman.",
"updated": 1616929292467
}
]
},
{
"style": "Text",
"text": "The typical set up for a dynamic message consists of building a string by alternating “text between double quotes” with variables, separating them with plus signs (+)."
"text": "The typical set up for a dynamic message consists of building a string by alternating “text between double quotes” with variables, separating them with plus signs (+).",
"translations": [
{
"language": "ID",
"text": "Penyiapan sederhana untuk pesan Dynamic terdiri dari pembuatan string dengan mengganti \"text diantara tanda kutip\" dengan variabel, dan memisahkannya dengan tanda tambah (+).",
"updated": 1616929904380
}
]
},
{
"style": "Text",
"text": "For example, a typical announcement formula for the take position event may look like this:"
"text": "For example, a typical announcement formula for the take position event may look like this:",
"translations": [
{
"language": "ID",
"text": "Contohnya, formula pengumuman sederhana untuk ambil posisi pada suatu event.",
"updated": 1616929983820
}
]
},
{
"style": "Javascript",
@@ -194,7 +411,14 @@
},
{
"style": "Text",
"text": ".toFixed(0) rounds the number to zero decimal places. The above formula would result in something like:"
"text": ".toFixed(0) rounds the number to zero decimal places. The above formula would result in something like:",
"translations": [
{
"language": "ID",
"text": ".toFixed(0) membulatkan angka ke tempat nol desimal. formula di atas akan menghasilkan sesuatu seperti:",
"updated": 1616930071150
}
]
},
{
"style": "Json",
@@ -203,7 +427,14 @@
{
"style": "Note",
"text": "If your formula is valid, the system will ignore the plain text version you may have set up in the announcement configuration. If for any reason the formula results in an error, then the plain text version will be used.",
"updated": 1611485748590
"updated": 1611485748590,
"translations": [
{
"language": "ID",
"text": "Jika formulamu valid, Sistem akan mengabaikan versi plain text yang telah kamu atur untuk konfigurasi pengumuman. Jika dalam suatu keadaan formua menghasilkan error, maka versi plain text akan digunakan.",
"updated": 1616930177921
}
]
},
{
"style": "Title",
@@ -211,23 +442,58 @@
},
{
"style": "Text",
"text": "We mentioned earlier that, beyond setting announcements on events, you may also implement announcements at the level of a stop or take profit phase. These are useful to broadcast the management of dynamic stop and take profit targets."
"text": "We mentioned earlier that, beyond setting announcements on events, you may also implement announcements at the level of a stop or take profit phase. These are useful to broadcast the management of dynamic stop and take profit targets.",
"translations": [
{
"language": "ID",
"text": "Kami telah jelaskan sebelumnya bahwa, selain menetapkan pengumuman dalam event, Kamu juga dapat menerapkan pengumuman pada level fase stop atau take profit, Hal ini berguna untuk membroadcast manajemen dari dynamic target stop dan target take profit.",
"updated": 1616930312081
}
]
},
{
"style": "Text",
"text": "When implemented at the level of a phase, the announcement is triggered every time the value of the underlying variable (the stop or take profit target) changes. This is an important difference, as the value may change at every candle (if you are using formulas that use variables)."
"text": "When implemented at the level of a phase, the announcement is triggered every time the value of the underlying variable (the stop or take profit target) changes. This is an important difference, as the value may change at every candle (if you are using formulas that use variables).",
"translations": [
{
"language": "ID",
"text": "Ketika diterapkan pada level suatu fasem pengumuman akan memicu setiap kali nilai variable yang mendasari (target stop atau take profit) berubah. Hal ini adalah perbedaan penting, karena nilainya dapat berubah di setiap candle (jika kamu menggunakan formula yang menggunakan variabel).",
"updated": 1616930435548
}
]
},
{
"style": "Text",
"text": "This could result in too many announcements in relatively short intervals."
"text": "This could result in too many announcements in relatively short intervals.",
"translations": [
{
"language": "ID",
"text": "Hal ini dapat mengakibatkan terlalu banyak pengumuman dalam interval yang relatif singkat.",
"updated": 1616930454433
}
]
},
{
"style": "Text",
"text": "The valueVariation parameter introduced in the announcement configuration may be used to filter out announcements until a certain threshold is achieved. The value you enter will set the percentage of variation that needs to occur before a new announcement is broadcasted."
"text": "The valueVariation parameter introduced in the announcement configuration may be used to filter out announcements until a certain threshold is achieved. The value you enter will set the percentage of variation that needs to occur before a new announcement is broadcasted.",
"translations": [
{
"language": "ID",
"text": "mempengenalkan kedalam konfigurasi pengumuman untuk digunakan dalam memfilter pengumuman hingga ketreshold tertentu. Nilai yang kamu masukkan akan diatur dalam persentase variasi yang dibutuhkan sebelum pengumuman dibroadcast.",
"updated": 1616930623021
}
]
},
{
"style": "Text",
"text": "For instance, \"valueVariation\": 0.5 means a new announcement will be broadcasted every time the value of the underlying variable changes by 0.5%."
"text": "For instance, \"valueVariation\": 0.5 means a new announcement will be broadcasted every time the value of the underlying variable changes by 0.5%.",
"translations": [
{
"language": "ID",
"text": "Contohnya, \"valueVariation\": 0.5 artinya pengumuman baru akan di broadcast setiap kali nilai dari dasar variabel berubah sebanyak 0.5%.",
"updated": 1616930700904
}
]
},
{
"style": "Json",
@@ -236,53 +502,137 @@
},
{
"style": "Title",
"text": "Finishing the Setup"
"text": "Finishing the Setup",
"translations": [
{
"language": "ID",
"text": "Menyelesaikan Setup",
"updated": 1616930723890
}
]
},
{
"style": "Text",
"text": "It is unlikely that you will want to use the announcements feature from within a backtesting session. A more likely scenario is you will want to use it with a paper trading session (to generate signals) or from a live trading session, to monitor the activity of your live trading."
"text": "It is unlikely that you will want to use the announcements feature from within a backtesting session. A more likely scenario is you will want to use it with a paper trading session (to generate signals) or from a live trading session, to monitor the activity of your live trading.",
"translations": [
{
"language": "ID",
"text": "Kemungkinan kecil kamu akan menggunakan fitur pengumuman dari backtesting session. Skenario yang lebih memungkinkan jika kamu ingin menggunakannya dengan paper trading session (Menggenerate sinyal) atau dari live trading session, untuk memonitor aktivitas dari live tradingmu.",
"updated": 1616930923555
}
]
},
{
"style": "Text",
"text": "All you need to do to finish your set up is detach the social bot node from the backtesting session and attach it to the session you wish to use it in. Make sure the corresponding tasks are stopped before detaching and attaching the social bot."
"text": "All you need to do to finish your set up is detach the social bot node from the backtesting session and attach it to the session you wish to use it in. Make sure the corresponding tasks are stopped before detaching and attaching the social bot.",
"translations": [
{
"language": "ID",
"text": "Yang perlu kamu lakukan untuk menyelesaikan penyiapan ini adalah melepaskan social bot node dari backtesting session dan pasangkan kepada session yang kamu inginkan. Pastikan tasks yang berjalan sudah berhenti sebelum melepaskan dan memasangkan social bot.",
"updated": 1616931073057
}
]
},
{
"style": "Title",
"text": "Commercial Setups"
"text": "Commercial Setups",
"translations": [
{
"language": "ID",
"text": "Setup untuk Komersial",
"updated": 1616931096555
}
]
},
{
"style": "Text",
"text": "If you are settting up a signals business or require a more complex setup to broadcast announcements from multiple sessions, multiple strategies, or even to multiple groups, the following considerations may help you decide how to move forwards."
"text": "If you are settting up a signals business or require a more complex setup to broadcast announcements from multiple sessions, multiple strategies, or even to multiple groups, the following considerations may help you decide how to move forwards.",
"translations": [
{
"language": "ID",
"text": "Jika kamu sedang menyiapkan bisnis sinyal atau memerlukan penyiapan yang lebih kompleks untuk membroadcast pengumuman dari beberapa sessions, beberapa strategi, atau bahkan kebeberapa grup, Hal ini akan membantu mempertimbangkan keputusanmu untuk keberikutnya.",
"updated": 1616931205053
}
]
},
{
"style": "Important",
"text": "Telegram does not allow running multiple instances of the same bot. Doing so may produce warnings, cause errors, delays in message delivery, lost messages, and erratic behavior in general.",
"updated": 1611485876079
"updated": 1611485876079,
"translations": [
{
"language": "ID",
"text": "Telegram tidak mengizinkan menjalankan banyak instance dari bot yang sama. Melakukan hal tersebut dapat menghasilkan peringatan, menyebabkan kesalahan, keterlambatan pengiriman pesan, pesan hilang, dan perilaku tidak menentu secara umum dari malfungsi bot.",
"updated": 1616931335441
}
]
},
{
"style": "Text",
"text": "The solution is quite simple. Set up multiple bots. The rule of thumb is you should use one bot for each trading session. Remember you can include as many bots as you wish in your Telegram groups. That is, you may have different bots broadcast from different sessions in the same group."
"text": "The solution is quite simple. Set up multiple bots. The rule of thumb is you should use one bot for each trading session. Remember you can include as many bots as you wish in your Telegram groups. That is, you may have different bots broadcast from different sessions in the same group.",
"translations": [
{
"language": "ID",
"text": "Solusinya cukup mudah. Siapkan multiple bot. Aturan mainnya adalah kamu harus menggunakan satu untuk setiap sesi trading. Ingat kamu dapat memasukkan bot sebanyak kamu inginkan kedalam grup Telegrammu. Aritnya, kamu mungkin memiliki bot berbeda yang dibroadcast dari session berbeda dalam grup yang sama.",
"updated": 1616931501454
}
]
},
{
"style": "Success",
"text": "If you wish to broadcast signals from multiple sessions to the same Telegram Group, you may name each bot in a way that each references their specific session, so that group members know exactly what each message is referring to.",
"updated": 1611485909076
"updated": 1611485909076,
"translations": [
{
"language": "ID",
"text": "Jika kamu ingin membroadcast sinyal dari beberapa session kedalam grup Telegram yang sama, kamu dapat menamai setiap bot dengan referesinya masing-masing terhadap spesifik session. Sehingga anggota grup tahu persis apa yang dirujuk setiap pesan.",
"updated": 1616931602612
}
]
},
{
"style": "Text",
"text": "For example, let’s say you are broadcasting signals from different markets… you may name your bots BTC/USDT, ETH/USDT and XMR/BTC."
"text": "For example, let’s say you are broadcasting signals from different markets… you may name your bots BTC/USDT, ETH/USDT and XMR/BTC.",
"translations": [
{
"language": "ID",
"text": "Misalnya, kamu membroadcast sinyal dari market yang berbeda… Kamu dapat menamai bot dengan BTC / USDT, ETH / USDT, dan XMR / BTC.",
"updated": 1616931653602
}
]
},
{
"style": "Text",
"text": "Or maybe you have different strategies, then simply name the bots after each strategy."
"text": "Or maybe you have different strategies, then simply name the bots after each strategy.",
"translations": [
{
"language": "ID",
"text": "Atau mungkin kamu memiliki strategi yang berbeda, maka cukup beri nama bot dengan setiap strategi.",
"updated": 1616931697879
}
]
},
{
"style": "Text",
"text": "This makes it really easy for group members to know what market or strategy the bot broadcasting the signal is referring to."
"text": "This makes it really easy for group members to know what market or strategy the bot broadcasting the signal is referring to.",
"translations": [
{
"language": "ID",
"text": "Ini membuatnya sangat mudah bagi anggota grup untuk mengetahui market atau strategi apa yang dirujuk oleh bot yang membroadcast sinyal.",
"updated": 1616931728131
}
]
},
{
"style": "Text",
"text": "Another example… let’s say you are running a trading operation for friends and family. Each person is working with a different initial capital, different assets or different exchanges. in such case, you may set up multiple Telegram groups and multiple bots, so that each person may get precise information on what the bots are doing."
"text": "Another example… let’s say you are running a trading operation for friends and family. Each person is working with a different initial capital, different assets or different exchanges. in such case, you may set up multiple Telegram groups and multiple bots, so that each person may get precise information on what the bots are doing.",
"translations": [
{
"language": "ID",
"text": "Contoh lain… misalkan kamu menjalankan trading operation untuk teman dan keluarga. Setiap orang bekerja dengan modal awal yang berbeda, aset yang berbeda, atau exchange yang berbeda. dalam kasus seperti itu, kamu dapat mengatur beberapa grup Telegram dan beberapa bot, sehingga setiap orang dapat memperoleh informasi yang tepat tentang apa yang dilakukan bot tersebut.",
"updated": 1616931801957
}
]
}
]
}
@@ -0,0 +1,56 @@
{
"topic": "Tested Exchanges",
"pageNumber": "10",
"type": "Bitstamp Test Status",
"definition": {
"text": "Bitstamp is fully tested for data mining and trading.",
"updated": 1615141847424
},
"paragraphs": [
{
"style": "Title",
"text": "Properties",
"updated": 1615143100216
},
{
"style": "List",
"text": "1-min OHLCVs Capability [*]: Yes."
},
{
"style": "List",
"text": "Market History: Starting on September 2017.",
"updated": 1615142912901
},
{
"style": "List",
"text": "Trading Capability [**]: Yes.",
"updated": 1615143016205
},
{
"style": "List",
"text": "Comments: Fully tested. ",
"updated": 1615142951363
},
{
"style": "Text",
"text": "[*] The ability to fetch historic data for backtesting purposes has been verified."
},
{
"style": "Text",
"text": "[**] The ability to run strategies in live-trading mode has been verified."
},
{
"style": "Title",
"text": "Configuration"
},
{
"style": "Json",
"text": "{\n \"codeName\": \"bitstamp\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}",
"updated": 1616805179437
},
{
"style": "Text",
"text": ""
}
]
}
@@ -23,8 +23,8 @@
},
{
"style": "Text",
"text": "A Network, represented by the Network Hierarchy it is just a definition that allows the system to know where Tasks need to be run, and where data is hosted. At any workspace you mighd define one or even more than one Netwrok Hiererchy. For simplicity we will continue the explanation assuming only one Network is defined.",
"updated": 1614353405812
"text": "A Network, represented by the Network Hierarchy, is just a definition that allows the system to know where Tasks need to be run, and where data is hosted. At any workspace you might define one, or even more than one, Network Hierarchy. For simplicity, we will continue the explanation assuming only one Network is defined.",
"updated": 1617263502648
},
{
"style": "Text",
@@ -51,7 +51,8 @@
},
{
"style": "Text",
"text": "There are many different way you might want to organize the Tasks across several Clients. It is really up to you. The system don't care or have any preferred way for you to do so. It just need to know where each Task runs, and where the Data is located. That's it."
"text": "There are many different way you might want to organize the Tasks across several Clients. It is really up to you. The system doesn't care or have any preferred way for you to do so. It justs need to know where each Task runs, and where the Data is located. That's it.",
"updated": 1617263562866
},
{
"style": "Callout",
@@ -71,7 +72,8 @@
},
{
"style": "Callout",
"text": "In other words, the system allows building any arrangement of networks of nodes responding to the organizational logic of your preference."
"text": "In other words, the system allows building any arrangement of networks of nodes corresponding to the organizational logic of your preference.",
"updated": 1617263606632
},
{
"style": "Title",
@@ -80,11 +82,13 @@
},
{
"style": "Text",
"text": "When you define a Task, inside of it you are referencing a Process Definition, which has in turn definition regarding to which other processes it depends on (for example to start after some other process finished) and it also has Data Dependencies, which means that in order to run, it needs to read the data output from other processes."
"text": "When you define a Task, inside of it you are referencing a Process Definition, which has in turn a definition specifying which other processes it depends on (for example to start after some other process finished) and it also has Data Dependencies, which means that in order to run, it needs to read the data output from other processes.",
"updated": 1617263665349
},
{
"style": "Note",
"text": "All these definitions are built-in inside Data Mines, Trading Mines and Learning mines at a conceptual level. This means that a Data Mine does not really know where the data a process depends on actually is, or where a process that it depends on is actually running. That problem is solved at runtime once a Task is executed."
"text": "All these definitions are built-in inside Data Mines, Trading Mines and Learning mines at a conceptual level. This means that a Data Mine does not really know where the data a process depends on actually is, or where a process that it depends on, is actually running. That problem is solved at runtime once a Task is executed.",
"updated": 1617263712801
},
{
"style": "Text",
@@ -93,7 +97,8 @@
},
{
"style": "Text",
"text": "This is achieved by sending to a newly executed Task a snapshot of the Network Map at the instant when the Task is being run. From the Mine definition the Task can know which processes and data it depends on, and by looking into the snapshot of the Network, it can guess which Client is hosting the Data or the Tasks that the process depends on, allowing it to communicate with those Client s and fetch the data from them or wait for the right events signaling that the dependen process has finished."
"text": "This is achieved by sending to a newly executed Task a snapshot of the Network Map at the instant when the Task is being run. From the Mine definition the Task can know which processes and data it depends on, and by looking into the snapshot of the Network, it can guess which Client is hosting the Data or the Tasks that the process depends on, allowing it to communicate with those Clients, and fetch the data from them, or wait for the right events signaling that the dependent process has finished.",
"updated": 1617263799269
},
{
"style": "Title",
@@ -27,8 +27,8 @@
},
{
"style": "Text",
"text": "The procedure to setup a Network Node is by executing the Install Market menu option of a certain Market node. This is a complex procedure that will connect all the dots for you from A to Z. You can do by hand what this procedure does, but it will take you a lot of time and you will need to know all the details of how to connect everything together.",
"updated": 1614355139550
"text": "The procedure to setup a Network Node is by executing the Install Market menu option of a certain Market node. This is a complex procedure that will connect all the dots for you from A to Z. You can do by hand what this procedure does, but it will take you a lot of time, and you will need to know all the details of how to connect everything together.",
"updated": 1617263888269
},
{
"style": "Important",
@@ -36,12 +36,13 @@
},
{
"style": "Text",
"text": "For exmaple: if you have 2 trading systems, it will automatically create backtesting and live trading tasks for both of them.",
"updated": 1614355238724
"text": "For example: if you have 2 trading systems, it will automatically create backtesting and live trading tasks for both of them.",
"updated": 1617263908126
},
{
"style": "Text",
"text": "The procedure will also be applied to each Network Node found at the workspace assuming that you will later delete the Tasks or other branches you don't need. But in order to do so, you need to know what is being added as a result of this execution."
"text": "The procedure will also be applied to each Network Node found at the workspace, assuming that you will later delete the Tasks or other branches you don't need. But in order to do so, you need to know what is being added as a result of this execution.",
"updated": 1617263931507
},
{
"style": "Subtitle",
@@ -49,7 +50,8 @@
},
{
"style": "Text",
"text": "Here this procedure will essentially add 2 thigs:"
"text": "Here this procedure will essentially add 2 things:",
"updated": 1617263943061
},
{
"style": "List",
@@ -57,8 +59,8 @@
},
{
"style": "List",
"text": "Data Products: You can think of this as references to the physical data. This definitions are what tells the system in general where the data is physically located.",
"updated": 1614355507769
"text": "Data Products: You can think of this as references to the physical data. These definitions are what tells the system in general where the data is physically located.",
"updated": 1617263962570
},
{
"style": "Subtitle",
@@ -66,12 +68,13 @@
},
{
"style": "Text",
"text": "Here this procedure will add Time Machine s with Timeline Chart s inside of them. Deeper inside this brach, you will find Layer s node, which references the Data Products at the Network Hierarchy. That reference is crucial for the system to know when you turn on a Layer at the charts, where the data needs to be fetched from (which Client).",
"updated": 1614357169345
"text": "Here this procedure will add Time Machine s with Timeline Chart s inside of them. Deeper inside this branch, you will find Layer s node, which references the Data Products at the Network Hierarchy. That reference is crucial for the system to know when you turn on a Layer at the charts, where the data needs to be fetched from (which Client).",
"updated": 1617263990004
},
{
"style": "Success",
"text": "If you understand all the previous relationships, you can go ahead and install a market in all Network Node s at the same time, and then try to delete all the duplicated definitions. If you don't have all that clear, it is recommended that you install all your markets at one single Network Node and then move the braches you want from one Network Node to the other."
"text": "If you understand all the previous relationships, you can go ahead and install a market in all Network Node s at the same time, and then try to delete all the duplicated definitions. If you don't have all that clear, it is recommended that you install all your markets at one single Network Node and then move the branches you want from one Network Node to the other.",
"updated": 1617264010597
},
{
"style": "Title",
@@ -84,8 +87,8 @@
},
{
"style": "Text",
"text": "There are different types of Tasks and each one needs to be moved together with their corresponding Data Products definitions in order for the system to being able to track dependencies. The Data Products dedinitions are the one under the Data Storage node of a Network Node. They are subdivided in different branches depending of the Type of Data, Project, Exchange, Market and many other stuff, but in the end you will find Data Product nodes which reference Product Definitions inside Mines. When you move Tasks from one Network Node to other you also need to move the related brach at Data Storage to the same Network Node.",
"updated": 1614356433556
"text": "There are different types of Tasks and each one needs to be moved together with their corresponding Data Products definitions in order for the system to being able to track dependencies. The Data Products definitions are the ones under the Data Storage node of a Network Node. They are subdivided in different branches depending of the Type of Data, Project, Exchange, Market and many other stuff, but in the end you will find Data Product nodes which reference Product Definitions inside Mines. When you move Tasks from one Network Node to other you also need to move the related branch at Data Storage to the same Network Node.",
"updated": 1617264118423
},
{
"style": "Text",
@@ -97,12 +100,13 @@
},
{
"style": "Success",
"text": "The refinitions at the Charting System hirierchy do not need to be changed at all. They will continue pointing to the Data Products they were pointint to no matter where you moved those Data Products definitions. If you changed them from one Network Node to another, the Pltotter will simply fetch the data from the Network Node where you left thos Data Product s definitions."
"text": "The definitions at the Charting System hierarchy do not need to be changed at all. They will continue pointing to the Data Products they were pointed to no matter where you moved those Data Products definitions. If you changed them from one Network Node to another, the Plotter will simply fetch the data from the Network Node where you left those Data Product s definitions.",
"updated": 1617264173906
},
{
"style": "Note",
"text": "Whey we say moving what we are saying is detaching a Node brach and re attaching that same brach somewhere else. Note that if you for example make a backup of a branch, restore that somehwhere else without deleting the original branch first, you will inadvertently be creating new ids for each Node at this branch and messing up with incomming references, which will produce things not to work anymoere.",
"updated": 1614357412126
"text": "When we say moving, what we are saying is detaching a Node branch and re-attaching that same branch somewhere else. Note that if you, for example, make a backup of a branch, restore that somehwhere else without deleting the original branch first, you will inadvertently be creating new ids for each Node at this branch and messing up the incoming references, which will cause things to not work anymore.",
"updated": 1617264249424
},
{
"style": "Text",
@@ -155,8 +159,8 @@
},
{
"style": "Success",
"text": "For organizational purposes and to avoid confusion later on, it is recommended to clean up the home node’s workspace uninstalling the markets that you don’t need.",
"updated": 1611343505445
"text": "For organizational purposes and to avoid confusion later on, it is recommended to clean up the home node’s workspace, uninstalling the markets that you don’t need.",
"updated": 1617264320991
},
{
"style": "Text",
@@ -189,7 +193,8 @@
},
{
"style": "List",
"text": "host is the machine or hardware represented by the network node. The default parameter is localhost, but if you intend to access the Client services of this node from a remote computer, then you must change localhost for the IP Address of the machine on which the node is running, for example, to 147.0.0.1."
"text": "host is the machine or hardware represented by the network node. The default parameter is localhost, but if you intend to access the Client services of this node from a remote computer, then you must change localhost for the IP Address of the machine on which the node is running, for example, to 147.0.0.1. Use the dotted IP address rather than a host name, since this reduces host name lookups.",
"updated": 1617264451129
},
{
"style": "List",
@@ -0,0 +1,24 @@
{
"tutorial": "Basic Education",
"pageNumber": 1,
"type": "Basic Education Tutorial",
"definition": {
"text": "This tutorial complements the information delivered in the Welcome to Superalgos Tutorial, focusing on the Nodes Menu, Backups, Clones and Shares, Plugins, Workspaces, References, and more.",
"updated": 1616697309196
},
"paragraphs": [
{
"style": "Title",
"text": "About This Tutorial",
"updated": 1617111489986
},
{
"style": "List",
"text": "Workspace: Getting Started Plugin Workspace."
},
{
"style": "List",
"text": "Maintainer: @julianmolina (Telegram)."
}
]
}
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "1",
"pageNumber": 2,
"type": "Tutorial Step - Back to School!",
"definition": {
"text": "I hear my friend the Welcome tutorial showed you around and mesmerized you with a few cheap tricks... What a show-off!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "2",
"pageNumber": 3,
"type": "Tutorial Step - From the Ground Up",
"definition": {
"text": "To be fair, my welcoming friend taught you many of the basic operations that you need to know to move around and feel comfortable with the interface...",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "3",
"pageNumber": 4,
"type": "Tutorial Step - Let's Start With the Menu",
"definition": {
"text": "The left-hand side of a node's menu is common to most nodes. The right-hand side, however, is specific to the type of node!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "4",
"pageNumber": 5,
"type": "Tutorial Step - Pinned Nodes Can't Dance",
"definition": {
"text": "When a node is pinned, it becomes fixed to a position regardless of the setting of the rest of the arrangement properties!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "4",
"pageNumber": 6,
"type": "Tutorial Step - Starting From a Plugin",
"definition": {
"text": "A typical case is when you wish to introduce changes to a strategy shipping with the system to start with a proven setup!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "5",
"pageNumber": 7,
"type": "Tutorial Step - Mary Go Round",
"definition": {
"text": "By default, nodes are locked to a rotational symmetry around their parent node. The symmetry may span 360 degrees or less, depending on the setting!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "6",
"pageNumber": 8,
"type": "Tutorial Step - 180 Degrees",
"definition": {
"text": "When all offspring nodes are set to 180 degrees angle, each node takes a slot in a fraction of a circumference spanning 180 degrees, normal to the parent.",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "7",
"pageNumber": 9,
"type": "Tutorial Step - Node's Independence",
"definition": {
"text": "Notice how you changed the Angle to Parent setting on different siblings and each of them reacted to the new setting independently from the rest!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "8",
"pageNumber": 10,
"type": "Tutorial Step - Free-range Nodes",
"definition": {
"text": "When you select the option to cancel the Angle to Parent setting, the node is free to take any angle relative to its parent and siblings!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "9",
"pageNumber": 11,
"type": "Tutorial Step - Controlling Distances",
"definition": {
"text": "The next option in the menu controls the distance from the node to its parent. Clicking on the button cycles through options.",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "10",
"pageNumber": 12,
"type": "Tutorial Step - Play With The Tape!",
"definition": {
"text": "Try the different distance settings of the Lightning Strike Trading System Reference node! Go ahead! Click the tape button!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "11",
"pageNumber": 13,
"type": "Tutorial Step - How About The Hierarchy?",
"definition": {
"text": "The reason why the distance to the parent node is relative to the distance of the parent to its parent is so that you may affect long structures of nodes!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "12",
"pageNumber": 14,
"type": "Tutorial Step - Arrangement Style",
"definition": {
"text": "The button cycles through several arrangement options that affect where a node is placed in relation to its parent.",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "13",
"pageNumber": 15,
"type": "Tutorial Step - Shall We Improve This?",
"definition": {
"text": "If you experiment with this feature, you will notice that the behavior of each of the settings is not clear or predictable.",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "13",
"pageNumber": 16,
"type": "Tutorial Step - Shall We Improve This?",
"definition": {
"text": "If you experiment with this feature, you will notice that the behavior of each of the settings is not clear or predictable.",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "14",
"pageNumber": 17,
"type": "Tutorial Step - Freeze!",
"definition": {
"text": "The freeze button makes sense under very specific circumstances: when physics are activated at the level of the Design Space.",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "15",
"pageNumber": 18,
"type": "Tutorial Step - Let's Talk Backups",
"definition": {
"text": "Backups are very powerful, and there are multiple use cases! When you click on the backup button, the node and its offspring are saved on a JSON file!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "16",
"pageNumber": 19,
"type": "Tutorial Step - Working With Versions",
"definition": {
"text": "Let's say you want to test a strategy with different sets of parameters, so you take a backup of the Trading Parameters node!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "17",
"pageNumber": 20,
"type": "Tutorial Step - Detaching and Attaching",
"definition": {
"text": "Now follow my lead! We are not really going to test the strategy with different parameters... we are just simulating a use case!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "18",
"pageNumber": 21,
"type": "Tutorial Step - Attaching The Backup",
"definition": {
"text": "Now we need to attach the backup of the Trading Parameters node to the Backtesting Session. How do we do that?",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "19",
"pageNumber": 22,
"type": "Tutorial Step - Irrelevant Nodes",
"definition": {
"text": "Nodes that are not attached to a hierarchy are not computed. They exist in the workspace, but they don't affect the workings of the system at any level.",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "21",
"pageNumber": 23,
"type": "Tutorial Step - Nodes' Attaching Rules",
"definition": {
"text": "Click the help button on the Trading Parameters node to access the node's Docs page. I'm going to show you something...",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "22",
"pageNumber": 24,
"type": "Tutorial Step - Dealing with References",
"definition": {
"text": "References are how a node may obtain information about another otherwise unrelated node. This is a crucial concept so pay attention!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "23",
"pageNumber": 25,
"type": "Tutorial Step - Let's See Some References",
"definition": {
"text": "Notice the two nodes under the Backtesting Session: Trading System Reference and Trading Engine Reference. Why do we need these nodes?",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "24",
"pageNumber": 26,
"type": "Tutorial Step - Visualizing References",
"definition": {
"text": "When you hover the mouse pointer over a node with an outgoing reference, the reference becomes visible.",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "25",
"pageNumber": 27,
"type": "Tutorial Step - Establishing References",
"definition": {
"text": "At some point, you will need to establish a reference, so let's do some basic training to develop the formidable skills required!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "26",
"pageNumber": 28,
"type": "Tutorial Step - Let's Get On With It!",
"definition": {
"text": "What if the nodes are far away from each other, maybe even in different hierarchies? Watch the video to learn a few tricks!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "27",
"pageNumber": 29,
"type": "Tutorial Step - Is It Done?",
"definition": {
"text": "If you haven't yet, go ahead and establish a reference from the Trading System Reference to the Lightning Strike Trading System!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "28",
"pageNumber": 30,
"type": "Tutorial Step - One Last Point!",
"definition": {
"text": "Pretty much like with Node Attaching Rules, nodes that may establish references also have rules in that regard.",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "29",
"pageNumber": 31,
"type": "Tutorial Step - Back to Backups!",
"definition": {
"text": "Now that you understand references, we can go deeper into Backups, and maybe even discuss the differences with Clones!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "30",
"pageNumber": 32,
"type": "Tutorial Step - Hammering Backups Home",
"definition": {
"text": "Let's go over the same examples that you just read about so that you learn this by heart!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "31",
"pageNumber": 33,
"type": "Tutorial Step - Back It Up Again!",
"definition": {
"text": "I told you I was going to hammer home this topic! Let's try the second example!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "32",
"pageNumber": 34,
"type": "Tutorial Step - One Last Backup!",
"definition": {
"text": "Let's try the third example! Notice the references flowing from polygon vertices to points under the Chart Points node!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "33",
"pageNumber": 35,
"type": "Tutorial Step - No Need to Memorize",
"definition": {
"text": "I hope you got to grasp the intricacies of backups and how references are affected in each particular restoration case!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "34",
"pageNumber": 36,
"type": "Tutorial Step - What About Clones?",
"definition": {
"text": "Clones differ from backups in that the feature is designed to replicate data structures so that the copies resemble the original.",
@@ -0,0 +1,28 @@
{
"tutorial": "Basic Education",
"pageNumber": 37,
"type": "Tutorial Step - Only Share Shares!",
"definition": {
"text": "Shares are just like Backups, but the resulting file is stripped off sensitive personal information!",
"icon": {
"name": "share-entity",
"project": "Superalgos"
},
"updated": 1617037759268
},
"paragraphs": [
{
"style": "Text",
"text": "Get used to share Shares! This good practice will help you avoid dangerous mistakes in the future!",
"updated": 1617037960260
},
{
"style": "Callout",
"text": "Read the page about Shares for more info!"
},
{
"style": "Warning",
"text": "Whenever you wish to share your work, never share your Workspace files or Backups. Those files may contain sensitive information such as your Exchange Account Key. Instead, share your Shares!"
}
]
}
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "35",
"pageNumber": 37,
"type": "Tutorial Step - Working with Workspaces",
"definition": {
"text": "You may think of a workspace as a stage in a theatre. It is the setting on which something will play out!",
@@ -0,0 +1,34 @@
{
"tutorial": "Basic Education",
"pageNumber": 38,
"type": "Tutorial Step - Working with Workspaces",
"definition": {
"text": "You may think of a workspace as a stage in a theatre. It is the setting on which something will play out!",
"icon": {
"name": "workspace",
"project": "Superalgos"
},
"updated": 1615893942449
},
"paragraphs": [
{
"style": "Text",
"text": "You may set up as many workspaces as you like, each of them for specific use cases. For example:",
"updated": 1615904641004
},
{
"style": "List",
"text": "You may have a workspace to build a Trading Sytem that will need specific indicators from a specific Data Mine."
},
{
"style": "List",
"text": "You may have another workspace setup with all the available indicators so that you may study how each of them works.",
"updated": 1615904707330
},
{
"style": "Callout",
"text": "Read this page to learn the basics about how to deal with workspaces...",
"updated": 1615904777283
}
]
}
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "36",
"pageNumber": 38,
"type": "Tutorial Step - Your Workspace vs Plugins",
"definition": {
"text": "Go to your File Explorer app and look for the following paths relative to the root Superalgos folder...",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "37",
"pageNumber": 39,
"type": "Tutorial Step - The Current Workspace",
"definition": {
"text": "The current workspace is the one you are using at any point.",
@@ -0,0 +1,38 @@
{
"tutorial": "Basic Education",
"pageNumber": 39,
"type": "Tutorial Step - Your Workspace vs Plugins",
"definition": {
"text": "Go to your File Explorer app and look for the following paths relative to the root Superalgos folder...",
"icon": {
"name": "plugins",
"project": "Superalgos"
},
"updated": 1615906049600
},
"paragraphs": [
{
"style": "Json",
"text": "\\My-Workspaces\n",
"updated": 1615906070844
},
{
"style": "List",
"text": "In this folder, you will find a file named Getting Started.json. This is the current workspace; the one you are using at this moment. Everything you have been doing lately has been stored in this file.",
"updated": 1615906276410
},
{
"style": "Json",
"text": "\\Projects\\Superalgos\\Plugins\\Workspaces"
},
{
"style": "List",
"text": "In this folder, you will find Plugin Workspaces shipping with Superalgos. You may want to read the Plugin Workspaces topic in the Docs to learn what each of them is about!",
"updated": 1616259823223
},
{
"style": "Text",
"text": ""
}
]
}
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "38",
"pageNumber": 40,
"type": "Tutorial Step - Let's Talk Plugins",
"definition": {
"text": "Plugins are data structures that ship with the system and that you may call into any workspace using the Plugins hierarchy.",
@@ -0,0 +1,35 @@
{
"tutorial": "Basic Education",
"pageNumber": 40,
"type": "Tutorial Step - The Current Workspace",
"definition": {
"text": "The current workspace is the one you are using at any point.",
"icon": {
"name": "workspace",
"project": "Superalgos"
},
"updated": 1615906908608
},
"paragraphs": [
{
"style": "Text",
"text": "If you close and restart the app, or refresh the UI, the system loads the workspace that was last in use.",
"updated": 1615907362014
},
{
"style": "Callout",
"text": "Go to the menu of the Workspace node, double-click on the Getting Started label and change the name of the workspace to Basic Education.",
"updated": 1615907154715
},
{
"style": "Text",
"text": "Now hit Ctrl + Shift + Alt + Key-S",
"updated": 1615907276880
},
{
"style": "Success",
"text": "You just created a new workspace! Go to the My-Workspaces folder to verify the new file is there.",
"updated": 1615907412107
}
]
}
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "39",
"pageNumber": 41,
"type": "Tutorial Step - How Plugins Work",
"definition": {
"text": "Find the Plugin Trading Systems node and expand it! Note the Plugin File node named Masters-Lightning-Strike...",
@@ -0,0 +1,38 @@
{
"tutorial": "Basic Education",
"pageNumber": 41,
"type": "Tutorial Step - Let's Talk Plugins",
"definition": {
"text": "Plugins are data structures that ship with the system and that you may call into any workspace using the Plugins hierarchy.",
"updated": 1615914003358,
"icon": {
"name": "plugins",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Text",
"text": "Plugins are data structures meant to be reused. That is why they ship as plugins, so that you may place them on any workspace.",
"updated": 1615917170964
},
{
"style": "Callout",
"text": "Expand the Plugins node!"
},
{
"style": "Text",
"text": "As you can tell from the structure of the hierarchy, there are several types of plugins! They ship as JSON files, sorted by type in the plugins folder. Check it out!",
"updated": 1615917052972
},
{
"style": "Json",
"text": "\\Projects\\Superalgos\\Plugins",
"updated": 1615916283983
},
{
"style": "Text",
"text": ""
}
]
}
@@ -0,0 +1,30 @@
{
"tutorial": "Basic Education",
"pageNumber": 42,
"type": "Tutorial Step - How Plugins Work",
"definition": {
"text": "Find the Plugin Trading Systems node and expand it! Note the Plugin File node named Masters-Lightning-Strike...",
"icon": {
"name": "expand-structure-of-nodes",
"project": "Superalgos"
},
"updated": 1615919140092
},
"paragraphs": [
{
"style": "Text",
"text": "Lightning Strike is the demo Trading System you've been playing with during the Welcome tutorial. It has been placed as a plugin in this workspace!",
"updated": 1615924603782
},
{
"style": "Callout",
"text": "Follow the orange dotted line downwards until you find the node it connects to! Use the keyboard trick Ctrl + arrows to go faster!",
"updated": 1615919519995
},
{
"style": "Text",
"text": "That's it! You found the Lightning Strike Trading System node. If you drag it to the side, you will find the Plugin File Position node below.",
"updated": 1615919373745
}
]
}
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "40",
"pageNumber": 42,
"type": "Tutorial Step - Positioning Plugins",
"definition": {
"text": "Here's the crazy bit... the Plugin File Position node determines where in the workspace the plugin is placed!",
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "41",
"pageNumber": 43,
"type": "Tutorial Step - Placing Plugins",
"definition": {
"text": "To place a plugin in a workspace you must select the option to add the missing plugins on the node of the matching type!",
@@ -0,0 +1,30 @@
{
"tutorial": "Basic Education",
"pageNumber": 43,
"type": "Tutorial Step - Positioning Plugins",
"definition": {
"text": "Here's the crazy bit... the Plugin File Position node determines where in the workspace the plugin is placed!",
"updated": 1615921131447,
"icon": {
"name": "plugin-file-position",
"project": "Superalgos"
}
},
"paragraphs": [
{
"style": "Text",
"text": "That is why you found the Trading System node on top of the Plugin File Position node!",
"updated": 1615920675491
},
{
"style": "Success",
"text": "If you deleted the Trading System node, it would show up again the next time you reload the workspace! Plugins are loaded from the plugin file every time the workspace is loaded!",
"updated": 1615920995477
},
{
"style": "Text",
"text": "Feel free to try it! If so you wish, you may delete the Trading System node and refresh the page. Bear in mind that you will need to find the Basic Education tutorial and click Resume on the menu to continue!",
"updated": 1615921187621
}
]
}
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "42",
"pageNumber": 44,
"type": "Tutorial Step - Non-Persistence of Changes",
"definition": {
"text": "Remember I said that the plugin file is loaded every time the workspace is loaded? This feature has an immediate consequence...",
@@ -0,0 +1,30 @@
{
"tutorial": "Basic Education",
"pageNumber": 44,
"type": "Tutorial Step - Placing Plugins",
"definition": {
"text": "To place a plugin in a workspace you must select the option to add the missing plugins on the node of the matching type!",
"icon": {
"name": "plugin-trading-systems",
"project": "Superalgos"
},
"updated": 1615925984822
},
"paragraphs": [
{
"style": "Callout",
"text": "Let's give it a shot! Select Add Missing Trading Systems in the Plugin Trading Systems node!",
"updated": 1615926961650
},
{
"style": "Text",
"text": "New Plugin File nodes are created for every plugin in the \\Plugins\\Trading-Systems folder! You may delete the Plugin File nodes you don't need and keep the ones you do need! Now you may pin the Plugin File Position node where you wish to place the actual plugin data structure!",
"updated": 1615927372538
},
{
"style": "Success",
"text": "Plugins will be added the next time you load the workspace! If you wish to test it, refresh!",
"updated": 1615978260752
}
]
}
@@ -1,6 +1,6 @@
{
"tutorial": "Basic Education",
"pageNumber": "44",
"pageNumber": 45,
"type": "Tutorial Step - Improving a Plugin",
"definition": {
"text": "Let's say you are a developer and are testing a new exchange. You wish to modify the Sensor Bot to introduce a new feature or param.",
Loaded 100 of 585 files, more files were not shown because too many files have changed in this diff. Show more