Merge branch 'Superalgos:develop' into develop
This commit is contained in:
61 files changed
+7571
-3367
No files matched your search
@@ -8,16 +8,14 @@ exports.newDesktopApp = function newDesktopApp() {
|
||||
|
||||
async function run() {
|
||||
/*
|
||||
Heree we will store our running objects:
|
||||
Here we will store our running objects:
|
||||
*/
|
||||
DK.running = {}
|
||||
|
||||
/*
|
||||
This is the Web Sockets client that interacts with the Superalgos Network.
|
||||
This is the Personal Social Graph for the user running this App.
|
||||
*/
|
||||
DK.running.socialGraph = DK.projects.socialTrading.modules.socialGraph.newSocialTradingModulesSocialGraph()
|
||||
await DK.running.socialGraph.initialize()
|
||||
|
||||
/*
|
||||
This is the Web Sockets client that interacts with the Superalgos Network.
|
||||
*/
|
||||
@@ -25,11 +23,11 @@ exports.newDesktopApp = function newDesktopApp() {
|
||||
await DK.running.webSocketsClient.initialize()
|
||||
console.log('Desktop Client Connected to Network Node via Web Sockets ................... Connected to port ' + global.env.NETWORK_WEB_SOCKETS_INTERFACE_PORT)
|
||||
|
||||
/* These are the Network Interfaces by which the UI interacts with the Desktop App.*/
|
||||
/* These are the Network Interfaces by which the Web App interacts with this Desktop Client.*/
|
||||
|
||||
DK.running.webSocketsInterface = DK.projects.socialTrading.modules.webSocketsInterface.newDesktopModulesWebSocketsInterface()
|
||||
DK.running.webSocketsInterface.initialize()
|
||||
console.log('Desktop Client Web Sockets Interface ....................................... Listening at port ' + global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT)
|
||||
console.log('Desktop Client Web Sockets Interface ....................................... Listening at port ' + global.env.DESKTOP_WEB_SOCKETS_INTERFACE_PORT)
|
||||
|
||||
|
||||
DK.running.httpInterface = DK.projects.socialTrading.modules.httpInterface.newDesktopModulesHttpInterface()
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
function newWebApp() {
|
||||
/*
|
||||
In it's current state of development, the Web App only has one module.
|
||||
|
||||
Everything is being coded here until some structure emerges.
|
||||
*/
|
||||
let thisObject = {
|
||||
initialize: initialize,
|
||||
finalize: finalize
|
||||
@@ -123,7 +127,6 @@ function newWebApp() {
|
||||
function addToContentDiv(events) {
|
||||
try {
|
||||
let contentDiv = document.getElementById('content-div')
|
||||
|
||||
/*
|
||||
Delete al current content.
|
||||
*/
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ exports.newDesktopRoot = function newDesktopRoot() {
|
||||
*/
|
||||
global.SA = {}
|
||||
/* Load Environment Variables */
|
||||
let ENVIRONMENT = require('./EnvironmentForDebug.js');
|
||||
let ENVIRONMENT = require('./Environment.js');
|
||||
let ENVIRONMENT_MODULE = ENVIRONMENT.newEnvironment()
|
||||
global.env = ENVIRONMENT_MODULE
|
||||
/*
|
||||
|
||||
+8
-3
@@ -10,14 +10,19 @@ exports.newEnvironment = function () {
|
||||
let thisObject = {
|
||||
BASE_PATH: basePath,
|
||||
WEB_SERVER_URL: 'localhost',
|
||||
CLIENT_WEB_SOCKETS_INTERFACE_PORT: 18041,
|
||||
CLIENT_HTTP_INTERFACE_PORT: 34248,
|
||||
PLATFORM_WEB_SOCKETS_INTERFACE_PORT: 18041,
|
||||
NETWORK_WEB_SOCKETS_INTERFACE_PORT: 18042,
|
||||
DESKTOP_WEB_SOCKETS_INTERFACE_PORT: 18043,
|
||||
DESKTOP_WEB_SOCKETS_INTERFACE_HOST: 'localhost',
|
||||
PLATFORM_HTTP_INTERFACE_PORT: 34248,
|
||||
DESKTOP_HTTP_INTERFACE_PORT: 34249,
|
||||
PATH_TO_DATA_STORAGE: path.join(basePath, './Platform/My-Data-Storage'),
|
||||
PATH_TO_PROJECTS: path.join(basePath, './Projects'),
|
||||
PATH_TO_LOG_FILES: path.join(basePath, './Platform/My-Log-Files'),
|
||||
PATH_TO_PROJECTS_REQUIRED: path.join(basePath, './Projects'),
|
||||
PATH_TO_PROJECT_SCHEMA: path.join(basePath, './Projects/ProjectsSchema.json'),
|
||||
PATH_TO_CLIENT: path.join(basePath, './Platform'),
|
||||
PATH_TO_PLATFORM: path.join(basePath, './Platform'),
|
||||
PATH_TO_DESKTOP: './Desktop',
|
||||
PATH_TO_DEFAULT_WORKSPACE: path.join(basePath, './Projects/Foundations/Plugins/Workspaces'),
|
||||
PATH_TO_MY_WORKSPACES: path.join(basePath, './Platform/My-Workspaces'),
|
||||
PATH_TO_FONTS: path.join(basePath, './Platform/WebServer/Fonts')
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
exports.newEnvironment = function () {
|
||||
|
||||
let thisObject = {
|
||||
WEB_SERVER_URL: 'localhost',
|
||||
CLIENT_WEB_SOCKETS_INTERFACE_PORT: 18041,
|
||||
NETWORK_WEB_SOCKETS_INTERFACE_PORT: 18042,
|
||||
DESKTOP_WEB_SOCKETS_INTERFACE_PORT: 18043,
|
||||
DESKTOP_WEB_SOCKETS_INTERFACE_HOST: 'localhost',
|
||||
CLIENT_HTTP_INTERFACE_PORT: 34248,
|
||||
DESKTOP_HTTP_INTERFACE_PORT: 34249,
|
||||
PATH_TO_DATA_STORAGE: './Platform/My-Data-Storage',
|
||||
PATH_TO_LOG_FILES: './Platform/My-Log-Files',
|
||||
PATH_TO_PROJECTS: './Projects',
|
||||
PATH_TO_PROJECTS_REQUIRED: './Projects',
|
||||
PATH_TO_PROJECT_SCHEMA: './Projects/ProjectsSchema.json',
|
||||
PATH_TO_CLIENT: './Platform',
|
||||
PATH_TO_DESKTOP: './Desktop',
|
||||
PATH_TO_DEFAULT_WORKSPACE: './Projects/Foundations/Plugins/Workspaces',
|
||||
PATH_TO_MY_WORKSPACES: './Platform/My-Workspaces',
|
||||
PATH_TO_FONTS: './Platform/WebServer/Fonts'
|
||||
}
|
||||
|
||||
return thisObject
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "C:\\Superalgos\\Network"
|
||||
},
|
||||
{
|
||||
"path": "C:\\Superalgos\\Projects\\Network"
|
||||
},
|
||||
{
|
||||
"path": "C:\\Superalgos\\Projects\\Social-Trading"
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|
||||
Vendored
-17
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"files.exclude": {
|
||||
"**/Data-Storage": true,
|
||||
"**/Documentation": true,
|
||||
"**/Log-Files": true,
|
||||
"**/node_modules": true,
|
||||
"**/Deprecated-Code": true
|
||||
},
|
||||
"search.exclude": {
|
||||
"**/Data-Storage": true,
|
||||
"**/Documentation": true,
|
||||
"**/Log-Files": true,
|
||||
"**/node_modules": true,
|
||||
"**/Deprecated-Code": true
|
||||
},
|
||||
"search.maintainFileSearchCache": true
|
||||
}
|
||||
@@ -10,14 +10,18 @@ exports.newNetworkNode = function newNetworkNode() {
|
||||
|
||||
async function run() {
|
||||
/*
|
||||
Let's start the Network Interfaces
|
||||
Other Network Nodes and Client Apps will communicate with this Network Node via it's Websocket Interface.
|
||||
*/
|
||||
NT.webSocketsInterface = NT.projects.network.modules.webSocketsInterface.newNetworkModulesWebSocketsInterface()
|
||||
NT.webSocketsInterface.initialize()
|
||||
|
||||
/*
|
||||
The Social Graph Service is the first and for now, the only service this Network Node provides.
|
||||
*/
|
||||
thisObject.socialGraphService = NT.projects.socialTrading.modules.socialGraph.newNetworkModulesSocialGraph()
|
||||
await thisObject.socialGraphService.initialize()
|
||||
|
||||
/*
|
||||
The Sotrage deals with persisting the Social Graph.
|
||||
*/
|
||||
thisObject.storage = NT.projects.socialTrading.modules.storage.newSocialTradingModulesStorage()
|
||||
thisObject.storage.initialize()
|
||||
}
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ exports.newNetworkRoot = function newNetworkRoot() {
|
||||
*/
|
||||
global.SA = {}
|
||||
/* Load Environment Variables */
|
||||
let ENVIRONMENT = require('./EnvironmentForDebug.js');
|
||||
let ENVIRONMENT = require('./Environment.js');
|
||||
let ENVIRONMENT_MODULE = ENVIRONMENT.newEnvironment()
|
||||
global.env = ENVIRONMENT_MODULE
|
||||
/*
|
||||
|
||||
@@ -24,7 +24,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
/*
|
||||
We will create an HTTP Server and leave it running forever.
|
||||
*/
|
||||
SA.nodeModules.http.createServer(onHttpRequest).listen(global.env.CLIENT_HTTP_INTERFACE_PORT)
|
||||
SA.nodeModules.http.createServer(onHttpRequest).listen(global.env.PLATFORM_HTTP_INTERFACE_PORT)
|
||||
/* Starting the browser now is optional */
|
||||
if (process.argv.includes("noBrowser")) {
|
||||
//Running Client only with no UI.
|
||||
@@ -33,7 +33,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
if (initialWorkspace.name !== undefined) {
|
||||
queryString = '/?initialWorkspaceName=' + initialWorkspace.name + '&initialWorkspaceProject=' + initialWorkspace.project + '&initialWorkspaceType=' + initialWorkspace.type
|
||||
}
|
||||
SA.nodeModules.open('http://localhost:' + global.env.CLIENT_HTTP_INTERFACE_PORT + queryString)
|
||||
SA.nodeModules.open('http://localhost:' + global.env.PLATFORM_HTTP_INTERFACE_PORT + queryString)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1311,17 +1311,17 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
break
|
||||
case 'LegacyPlotter.js':
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/LegacyPlotter.js', httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/LegacyPlotter.js', httpResponse)
|
||||
}
|
||||
break
|
||||
case 'PlotterPanel.js':
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/PlotterPanel.js', httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/PlotterPanel.js', httpResponse)
|
||||
}
|
||||
break
|
||||
case 'Images': // This means the Images folder.
|
||||
{
|
||||
let path = global.env.PATH_TO_CLIENT + '/WebServer/Images/' + requestPath[2]
|
||||
let path = global.env.PATH_TO_PLATFORM + '/WebServer/Images/' + requestPath[2]
|
||||
|
||||
if (requestPath[3] !== undefined) {
|
||||
path = path + '/' + requestPath[3]
|
||||
@@ -1403,12 +1403,12 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
break
|
||||
case 'WebServer': // This means the WebServer folder.
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/' + requestPath[2], httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/' + requestPath[2], httpResponse)
|
||||
}
|
||||
break
|
||||
case 'externalScripts': // This means the WebServer folder.
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/externalScripts/' + requestPath[2], httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/externalScripts/' + requestPath[2], httpResponse)
|
||||
}
|
||||
break
|
||||
case 'Plotters': // This means the plotter folder, not to be confused with the Plotters script!
|
||||
@@ -1423,12 +1423,12 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
break
|
||||
case 'ChartLayers':
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/UI/' + endpointOrFile + '/' + requestPath[2], httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/UI/' + endpointOrFile + '/' + requestPath[2], httpResponse)
|
||||
}
|
||||
break
|
||||
case 'Files':
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/UI/Data-Files/' + requestPath[2], httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/UI/Data-Files/' + requestPath[2], httpResponse)
|
||||
}
|
||||
break
|
||||
case 'Fonts':
|
||||
@@ -1943,7 +1943,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
break
|
||||
default:
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithWebFile(httpResponse, endpointOrFile, global.env.PATH_TO_CLIENT)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithWebFile(httpResponse, endpointOrFile, global.env.PATH_TO_PLATFORM)
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
const WEB_SOCKET = SA.nodeModules.ws
|
||||
let socketServer
|
||||
let port = global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT
|
||||
let port = global.env.PLATFORM_WEB_SOCKETS_INTERFACE_PORT
|
||||
|
||||
return thisObject
|
||||
|
||||
|
||||
@@ -135,11 +135,11 @@ exports.newPlatformApp = function newPlatformApp() {
|
||||
console.log('')
|
||||
WEB_SOCKETS_INTERFACE = WEB_SOCKETS_INTERFACE.newWebSocketsInterface()
|
||||
WEB_SOCKETS_INTERFACE.initialize()
|
||||
console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT)
|
||||
console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.PLATFORM_WEB_SOCKETS_INTERFACE_PORT)
|
||||
|
||||
HTTP_INTERFACE = HTTP_INTERFACE.newHttpInterface()
|
||||
HTTP_INTERFACE.initialize(initialWorkspace)
|
||||
console.log('Http Interface .............................................. Listening at port ' + global.env.CLIENT_HTTP_INTERFACE_PORT)
|
||||
console.log('Http Interface .............................................. Listening at port ' + global.env.PLATFORM_HTTP_INTERFACE_PORT)
|
||||
|
||||
console.log('')
|
||||
console.log("You are running Superalgos Beta 12")
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -90,7 +90,7 @@ exports.newDataMiningBotModulesCheckWebhook = function (processIndex) {
|
||||
try {
|
||||
let http = SA.nodeModules.http
|
||||
let url = 'http://' + global.env.WEB_SERVER_URL +
|
||||
':' + global.env.CLIENT_HTTP_INTERFACE_PORT +
|
||||
':' + global.env.PLATFORM_HTTP_INTERFACE_PORT +
|
||||
'/Webhook/Fetch-Messages/' +
|
||||
TS.projects.foundations.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.parentNode.parentNode.config.codeName + "/" +
|
||||
TS.projects.foundations.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.baseAsset.referenceParent.config.codeName + "-" +
|
||||
|
||||
+7
-9
@@ -181,7 +181,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bewährte Praktiken:",
|
||||
"updated": 1634065685236
|
||||
"updated": 1634065685236,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
@@ -198,8 +199,7 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Lo mencionado no afecta su trabajo directamente,pero es bueno tenerlo en cuenta ya que significa que muchos contribuyentes pueden estar trabajando la misma página al mismo tiempo. He aqui la necesidad de actualizar constantemente y de solicitar la contribución a menudo.",
|
||||
"updated": 1633172414535,
|
||||
"style": "Success"
|
||||
"updated": 1633172414535
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -224,8 +224,8 @@
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Make sure your system is up to date running the app.update command.",
|
||||
"updated": 1616762308286,
|
||||
"text": "Make sure your system is up to date running the app.update command in the Searchbar/Command Line at the top of these Docs.",
|
||||
"updated": 1634589766751,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
@@ -490,8 +490,7 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Notará que si abre los documentos mientras el tutorial está corriendo, los documentos automáticamente carga l página correspondiente al paso del tutorial, entonces puede editarlo. Esto es de gran ayuda, ya que podrá traducir la página y ver como se ve en la ventanta del tutorial al mismo tiempo.",
|
||||
"updated": 1633279236805,
|
||||
"style": "Text"
|
||||
"updated": 1633279236805
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -515,5 +514,4 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
}
|
||||
+104
-13
@@ -4,13 +4,27 @@
|
||||
"type": "Data Mining - Datasets Type Conversions",
|
||||
"definition": {
|
||||
"text": "Processes fetching data from the Internet are optimized for accessing a wide range of APIs available out there. The Dataset Type they use to store raw data is usually not the best one for data consumption within the system. For that reason Dataset Type conversions need to be done.",
|
||||
"updated": 1622205220555
|
||||
"updated": 1622205220555,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zusammenfassung: Prozesse, die Daten aus dem Internet abrufen, sind für den Zugriff auf eine breite Palette von APIs optimiert, die dort verfügbar sind. Der Dataset Type (Datentyp), den sie zum Speichern von Rohdaten verwenden, ist in der Regel nicht der beste für die Weiterverwendung innerhalb des Systems. Aus diesem Grund müssen Dataset-Typ-Konvertierungen vorgenommen werden.",
|
||||
"updated": 1634677302182
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Types of Dataset Conversions",
|
||||
"updated": 1622227863425
|
||||
"updated": 1622227863425,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Arten von Dataset-Konvertierungen:",
|
||||
"updated": 1634677318651
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -34,47 +48,110 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "There are two ways to convert from one Dataset type to another. ",
|
||||
"updated": 1621699409527
|
||||
"updated": 1621699409527,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Folgende Arten von Dataset Konvertierungen sind derzeit im System implementiert:",
|
||||
"updated": 1634677350007
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Custom Code: Users can write code to handle the conversion in cases where the standard converter is not available for the type of conversion needed.",
|
||||
"updated": 1622205316515
|
||||
"updated": 1622205316515,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Benutzerdefinierter Code: Benutzer können Code schreiben, um die Konvertierung in den Fällen durchzuführen, in denen der Standardkonverter für die benötigte Art der Konvertierung nicht verfügbar ist.",
|
||||
"updated": 1634677385514
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Standard Converter: Use a standard converter to do the job. Currently there is only one Standard Converter and it works converting from One-Min-Daily Dataset type to Multi-Time-Frame-Daily and Multi-Time-Frame-Market Dataset types. ",
|
||||
"updated": 1621711423050
|
||||
"updated": 1621711423050,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Standardkonverter: Verwenden Sie einen Standardkonverter, um die Aufgabe zu erledigen. Derzeit gibt es nur einen Standardkonverter, der die Konvertierung von One-Min-Daily-Dataset-Typen in Multi-Time-Frame-Daily- und Multi-Time-Frame-Market-Dataset-Typen ermöglicht.",
|
||||
"updated": 1634677568153
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Custom Code Example",
|
||||
"updated": 1622205366974
|
||||
"updated": 1622205366974,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beispiel für custom (benutzerdefinierten) Code:",
|
||||
"updated": 1634677731371
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The Candles-Volumes indicator at the Master Data Mine converts One-Min candles and volumes into candles and volumes of 2 min, 3 min ecc.. up to 24hs. To do this, it runs a custom made algorithm that aggregates that information provided by the Exchange Raw Data Sensor Bot.",
|
||||
"updated": 1622191376005
|
||||
"updated": 1622191376005,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Candles-Volumes-Indikator in der Master Data Mine konvertiert One-Min-Candles und Volumes in Candles und Volumes von 2 Minuten, 3 Minuten usw. bis zu 24 Stunden. Zu diesem Zweck wird ein speziell entwickelter Algorithmus ausgeführt, der die vom Exchange Raw Data Sensor Bot bereitgestellten Informationen aggregiert (zusammenfasst).",
|
||||
"updated": 1634678088585
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "The reason this was implemented as custom code is because when it was needed there was no standard converter and it has not been migrated to the currently existing one.",
|
||||
"updated": 1622205482848
|
||||
"updated": 1622205482848,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Grund dafür, dass dies als benutzerdefinierter Code implementiert wurde, liegt darin, dass es zu dem Zeitpunkt, als es benötigt wurde, keinen Standardkonverter gab und er nicht in den derzeit bestehenden migriert wurde.",
|
||||
"updated": 1634678403439
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Standard Converter Example",
|
||||
"updated": 1621701438440
|
||||
"updated": 1621701438440,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beispiel für einen Standardkonverter:",
|
||||
"updated": 1634678436605
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The Asset Metrics Indicator Bot, defined at the Messari Data Mine, uses the Standard Converter from One-Min-Daily Dataset type to Multi-Time-Frame-Daily and Multi-Time-Frame-Market Dataset types. In order to use the converter, the bot's Process Definition nodes needs to have a framework of the converter defined within its config.",
|
||||
"updated": 1622205718679
|
||||
"updated": 1622205718679,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Asset Metrics Indicator Bot, der in der Messari Data Mine definiert wurde, verwendet den Standardkonverter von dem One-Min-Daily-Dataset-Typ zu Multi-Time-Frame-Daily und Multi-Time-Frame-Market Dataset-Typen. Um den Konverter verwenden zu können, muss die Process Definition Node des Bots ein Framework des Konverters in seiner Konfiguration definiert haben.",
|
||||
"updated": 1634679002933
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "To convert to Multi-Time-Frame-Daily, set the framework name as follows:",
|
||||
"updated": 1622205768649
|
||||
"updated": 1622205768649,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zur Umstellung auf Multi-Time-Frame-Daily stellen Sie den Framework-Namen wie folgt ein:",
|
||||
"updated": 1634679069645
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -84,7 +161,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "To convert to Multi-Time-Frame-Market, set the framework name like this:",
|
||||
"updated": 1622205804137
|
||||
"updated": 1622205804137,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zur Umwandlung in Multi-Time-Frame-Market setzen Sie den Framework-Namen wie folgt:",
|
||||
"updated": 1634679148016
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -94,7 +178,14 @@
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "You will need the standard converter everytime you use the API Data Fetcher Bot to extract data from some Inernet API. The bot will usually save the data in a One-Min-Daily Dataset Type, and you will need to setup an Indicator Bot with two processes in order to convert the One-Min-Daily Dataset Type into a Multi-Time-Frame-Daily and a Multi-Time-Frame-Market Dataset Type.",
|
||||
"updated": 1622191511065
|
||||
"updated": 1622191511065,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie benötigen den Standardkonverter jedes Mal, wenn Sie den API Data Fetcher Bot zum Extrahieren von Daten aus einer Inernet-API verwenden. Der Bot speichert die Daten in der Regel in einem One-Min-Daily Dataset Type, und Sie müssen einen Indicator Bot mit zwei Prozessen einrichten, um den One-Min-Daily Dataset Type in einen Multi-Time-Frame-Daily und einen Multi-Time-Frame-Market Dataset Type zu konvertieren.",
|
||||
"updated": 1634679302507
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+240
-30
@@ -4,69 +4,167 @@
|
||||
"type": "Data Mining - Indicator Frameworks",
|
||||
"definition": {
|
||||
"text": "Indicator Bots are ready to run custom code, or run code provided by a framework in order to do their job.",
|
||||
"updated": 1621705750736
|
||||
"updated": 1621705750736,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Indikator-Bots sind in der Lage, benutzerdefinierten Code auszuführen oder von einem Framework bereitgestellten Code auszuführen, um ihre Aufgabe zu erfüllen.",
|
||||
"updated": 1634679374909
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Types of Indicator Implementations",
|
||||
"updated": 1622211317016
|
||||
"updated": 1622211317016,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Arten von Indikator-Implementierungen:",
|
||||
"updated": 1634679396279
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Custom Code: This means the Indicator Bot will use custom made code to handle all data transformations.",
|
||||
"updated": 1621902418790
|
||||
"updated": 1621902418790,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Custom Code: Dies bedeutet, dass der Indikator-Bot benutzerdefinierten Code verwendet, um alle Datentransformationen durchzuführen.",
|
||||
"updated": 1634679427408
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "When running custom code, users have full control of the process and there is no limit on what can be done in terms of data manipulation. The trade off is that the user must be a developer."
|
||||
"text": "When running custom code, users have full control of the process and there is no limit on what can be done in terms of data manipulation. The trade off is that the user must be a developer.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bei der Ausführung von benutzerdefiniertem Code haben die Benutzer die volle Kontrolle über den Prozess, und es gibt keine Einschränkungen bei der Daten-Verarbeitung/manipulation. Der Nachteil ist, dass der Benutzer ein developer (Entwickler) sein muss.",
|
||||
"updated": 1634679493287
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "UI-Defined: This means that the Indictor Bot will base its behaviour on the definitions at the UI including available frameworks, as well as the code snippets provided by the user.",
|
||||
"updated": 1622211583849
|
||||
"updated": 1622211583849,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "UI-Defined: Dies bedeutet, dass der Indictor Bot sein Verhalten auf die Definitionen auf der UI (Benutzeroberfläche), einschließlich der verfügbaren Frameworks, sowie auf die vom Benutzer bereitgestellten Codeschnipsel stützt.",
|
||||
"updated": 1634679552250
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "By running one of the available frameworks, an indicator can do powerful stuff while only leaving the task of writing a very tiny piece of code to do the data transformations. In this case the flexibility is reduced comparing to custom code, but ease of development is greatly increased.",
|
||||
"updated": 1622211470919
|
||||
"updated": 1622211470919,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Durch den Einsatz eines der verfügbaren Frameworks kann ein Indikator leistungsstarke Funktionen ausführen, wobei nur ein winziger Teil des Codes für die Datenumwandlung geschrieben werden muss. In diesem Fall ist die Flexibilität im Vergleich zu benutzerdefiniertem Code eingeschränkt, aber die Entwicklungsfreundlichkeit wird erheblich gesteigert.",
|
||||
"updated": 1634679804230
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "You don't need to be a developer to write these code snippets, most of the time they are very simple javascript code."
|
||||
"text": "You don't need to be a developer to write these code snippets, most of the time they are very simple javascript code.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie müssen kein Entwickler/Programmierer sein, um diese Codeschnipsel zu schreiben, meistens handelt es sich um sehr einfachen Javascript-Code.",
|
||||
"updated": 1634680675568
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Custom Code Indicators",
|
||||
"updated": 1621703361583
|
||||
"updated": 1621703361583,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Benutzerdefinierte Code-Indicators:",
|
||||
"updated": 1634680705374
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Examples"
|
||||
"text": "Examples",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beispiele:",
|
||||
"updated": 1634680725432
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "These two indicators are currently implemented with custom code."
|
||||
"text": "These two indicators are currently implemented with custom code.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Diese beiden Indikatoren werden derzeit mit benutzerdefiniertem Code implementiert:",
|
||||
"updated": 1634681185936
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Candles-Volumes: Located at the Candles Data Mine",
|
||||
"updated": 1622195776057
|
||||
"updated": 1622195776057,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Candles-Volumes: Zu finden in der Candles Data Mine",
|
||||
"updated": 1634681341936
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Bollinger-Bands: Located at the Bollinger Data Mine",
|
||||
"updated": 1622195696142
|
||||
"updated": 1622195696142,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bollinger-Bands: Zu finden in der Bollinger Data Mine",
|
||||
"updated": 1634681442242
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "How to Implement Custom Code",
|
||||
"updated": 1622212152208
|
||||
"updated": 1622212152208,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wie man custom (benutzerdefinierten) Code implementiert:",
|
||||
"updated": 1634681585244
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The way to implement a Custom Code Indicator is to set up the config for the Bot's Process Definition using the botModule property. This tells the bot that there will be custom code used for this Indicator. This is an example of what it should look like:",
|
||||
"updated": 1622212134508
|
||||
"updated": 1622212134508,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um einen benutzerdefinierten Code-Indikator zu implementieren, muss die Konfiguration für die Prozessdefinition des Bots mithilfe der Eigenschaft botModule eingerichtet werden. Dadurch wird dem Bot mitgeteilt, dass für diesen Indikator ein benutzerdefinierter Code verwendet wird. Dies ist ein Beispiel dafür, wie es aussehen sollte:",
|
||||
"updated": 1634681692004
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -76,17 +174,38 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Then you will need to locate the Project Schema File for the project your bot belongs to. Inside of that file you will need to add some definitions in order for the system to be able to load your new module at runtime and later execute it once users run your bot implemented in this way.",
|
||||
"updated": 1622195849390
|
||||
"updated": 1622195849390,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dann müssen Sie die Project Schema File (Datei) für das Projekt finden, zu dem Ihr Bot gehört. In dieser Datei müssen Sie einige Definitionen hinzufügen, damit das System in der Lage ist, Ihr neues Modul zur Laufzeit zu laden und später auszuführen, wenn Benutzer Ihren auf diese Weise implementierten Bot ausführen.",
|
||||
"updated": 1634681801694
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Most likely your new Bot will be added to the Superalgos project, so you should find the Project Schema File inside the Projects folder.",
|
||||
"updated": 1622196885148
|
||||
"updated": 1622196885148,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Höchstwahrscheinlich wird Ihr neuer Bot zum Superalgos-Projekt hinzugefügt, so dass Sie die Project Schema File (Datei) im Ordner Projects finden sollten.",
|
||||
"updated": 1634681854110
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The definition you will need to add in the Schema file should look something like this:",
|
||||
"updated": 1622212304362
|
||||
"updated": 1622212304362,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Definition, die Sie in der Schemadatei hinzufügen müssen, sollte etwa so aussehen:",
|
||||
"updated": 1634681979851
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -96,61 +215,145 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Finally, you will need to add a new Javascript module with your code to the codebase using the same file name you defined in the Schema file.",
|
||||
"updated": 1622212386180
|
||||
"updated": 1622212386180,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Schließlich müssen Sie ein neues Javascript-Modul mit Ihrem Code zur Codebasis hinzufügen und dabei denselben Dateinamen verwenden, den Sie in der Schema-Datei definiert haben.",
|
||||
"updated": 1634682668873
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "UI-Defined Indicators",
|
||||
"updated": 1621704044375
|
||||
"updated": 1621704044375,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "UI-definierte Indikatoren:",
|
||||
"updated": 1634682711171
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In this case the list is long, as almost all other indicators in existence were build using a framework and defined at the UI with the minimun amount of code written by the users who created them."
|
||||
"text": "In this case the list is long, as almost all other indicators in existence were build using a framework and defined at the UI with the minimun amount of code written by the users who created them.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "In diesem Fall ist die Liste lang, da fast alle anderen existierenden Indikatoren mit Hilfe eines Frameworks erstellt und auf der UI (Benutzeroberfläche) mit einem Minimum an Code von den Benutzern, die sie erstellt haben, definiert wurden.",
|
||||
"updated": 1634682778514
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Indicator Frameworks",
|
||||
"updated": 1621702926075
|
||||
"updated": 1621702926075,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Indikator Frameworks:",
|
||||
"updated": 1634682793982
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "This is the complete list of available Indicator Frameworks",
|
||||
"updated": 1621702917486
|
||||
"updated": 1621702917486,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dies ist die vollständige Liste der verfügbaren Indicator Frameworks:",
|
||||
"updated": 1634682819570
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "From-One-Min-To-Multi-Time-Frame-Daily: It is used to convert one Dataset from type One-Min-Daily to Multi-Time-Frame-Daily.",
|
||||
"updated": 1621703039301
|
||||
"updated": 1621703039301,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "From-One-Min-To-Multi-Time-Frame-Daily: Es wird verwendet, um ein Dataset (Datensatz) vom Typ One-Min-Daily zu Multi-Time-Frame-Daily zu konvertieren.",
|
||||
"updated": 1634683018997
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "From-One-Min-To-Multi-Time-Frame-Market: It is used to convert one Dataset from type One-Min-Daily to Multi-Time-Frame-Market.",
|
||||
"updated": 1621703053342
|
||||
"updated": 1621703053342,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "From-One-Min-To-Multi-Time-Frame-Market: Es wird verwendet, um ein Dataset (Datensatz) vom Typ One-Min-Daily zu Multi-Time-Frame-Market zu konvertieren.",
|
||||
"updated": 1634683080955
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Multi-Time-Frame-Daily: It is used to process data currently available at a Dataset of type Multi-Time-Frame-Daily and produces as output a Dataset of the same type. How the data is going to be transformed is up to the user, since at the UI users can provide code snippets to handle the data transformation at the Data Building Procedure node.",
|
||||
"updated": 1622197436293
|
||||
"updated": 1622197436293,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Multi-Time-Frame-Daily: Sie wird verwendet, um Daten zu verarbeiten, die derzeit in einem Dataset (Datensatz) des Typs Multi-Time-Frame-Daily vorhanden sind, und erzeugt als Ausgabe ein Dataset (Datensatz) desselben Typs. Wie die Daten umgewandelt werden, bleibt dem Benutzer überlassen, da er auf der Benutzeroberfläche Code-snippets (Code-Schnippsel) für die Datenumwandlung an der Node Data Building Procedure bereitstellen kann.",
|
||||
"updated": 1634683354237
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Multi-Time-Frame-Market: It is used to process data currently available at a Dataset of type Multi-Time-Frame-Market and produces as output a Dataset of the same type. How the data is going to be transformed is up to the user, since at the UI users can provide code snippets to handle the data transformation at the Data Building Procedure node.",
|
||||
"updated": 1622197449190
|
||||
"updated": 1622197449190,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Multi-Time-Frame-Market: Es wird verwendet, um Daten zu verarbeiten, die derzeit in einem Dataset (Datensatz) des Typs Multi-Time-Frame-Market vorhanden sind, und erzeugt als Ausgabe ein Dataset (Datensatz) desselben Typs. Wie die Daten umgewandelt werden, bleibt dem Benutzer überlassen, da er auf der UI (Benutzeroberfläche) Code-snippets (Code-Schnipsel) für die Datenumwandlung an der Node Data Building Procedure bereitstellen kann.",
|
||||
"updated": 1634683338887
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "How to Use an Indicator Framework",
|
||||
"updated": 1622212547671
|
||||
"updated": 1622212547671,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wie man ein Indicator Framework benutzt:",
|
||||
"updated": 1634683417986
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In order to use a framework at your Indicator Bot, all you need to do is specify the framework name at the Process Definition under the framework property.",
|
||||
"updated": 1622212711775
|
||||
"updated": 1622212711775,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um ein Framework in Ihrem Indicator Bot zu verwenden, müssen Sie lediglich den Namen des Frameworks in der Process Definition (Prozessdefinition) unter der Eigenschaft Framework angeben.",
|
||||
"updated": 1634683522971
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In this example, the process will use the From-One-Min-To-Multi-Time-Frame-Daily framework.",
|
||||
"updated": 1622197494708
|
||||
"updated": 1622197494708,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "In diesem Beispiel wird der Prozess das \"From-One-Min-To-Multi-Time-Frame-Daily\" Framework verwenden:",
|
||||
"updated": 1634683598320
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -160,7 +363,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Here is an example using the Multi-Time-Frame-Market framework.",
|
||||
"updated": 1622212639925
|
||||
"updated": 1622212639925,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hier ist ein Beispiel welches das Multi-Time-Frame-Market Framework verwendet:",
|
||||
"updated": 1634683708431
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
|
||||
+15
-2
@@ -9,7 +9,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Este tutorial complementa la información entregada en el Welcome to Superalgos Tutorial, centrándose en el Nodes Menu, Backups, Clones y Shares, Plugins, Workspaces, References, y más.",
|
||||
"updated": 1628897004689
|
||||
"updated": 1628897004689,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dieses Tutorial ergänzt die Informationen aus dem Welcome to Superalgos Tutorial und konzentriert sich auf Nodes Menu, Backups, Clones und Shares, Plugins, Workspaces, References, und mehr.",
|
||||
"updated": 1634585384331
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -17,7 +23,14 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "About This Tutorial",
|
||||
"updated": 1617111489986
|
||||
"updated": 1617111489986,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Über dieses Tutorial",
|
||||
"updated": 1634585391510
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
|
||||
+42
-6
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Ahora que comprendes las referencias, podemos profundizar en Backups,tal vez incluso discutir las diferencias con Clones!",
|
||||
"updated": 1626568459683
|
||||
"updated": 1626568459683,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Jetzt, da Sie die Referenzen verstanden haben, können wir uns näher mit Backups befassen und vielleicht sogar die Unterschiede zu Clones diskutieren!",
|
||||
"updated": 1634585586598
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Tienes más que leer! ¡Por favor, lee esta página detenidamente y deja que la información se asimile!",
|
||||
"updated": 1626569135266
|
||||
"updated": 1626569135266,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie müssen noch etwas lesen! Bitte lesen Sie diese Seite sorgfältig und lassen Sie die Informationen auf sich wirken!",
|
||||
"updated": 1634585594377
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -56,7 +68,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "En resumen:",
|
||||
"updated": 1626613851965
|
||||
"updated": 1626613851965,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zusammengefasst:",
|
||||
"updated": 1634585604403
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -74,7 +92,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Outgoing references: Siempre se mantienen intactos.",
|
||||
"updated": 1626569183871
|
||||
"updated": 1626569183871,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ausgehende Referenzen: Sie werden immer beibehalten.",
|
||||
"updated": 1634585629017
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -92,7 +116,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Incoming references: Se conservan solo cuando se elimina la estructura original antes de restaurar la copia de seguridad.",
|
||||
"updated": 1626613813084
|
||||
"updated": 1626613813084,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Eingehende Referenzen: Sie werden nur beibehalten, wenn die Originalstruktur vor der Wiederherstellung der Sicherung gelöscht wird.",
|
||||
"updated": 1634585637023
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -110,7 +140,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Internal references: Permanecen internos, solo cuando la estructura original se elimina primero.",
|
||||
"updated": 1626613836362
|
||||
"updated": 1626613836362,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Interne Referenzen: Sie bleiben nur dann intern, wenn die ursprüngliche Struktur zuerst gelöscht wird.",
|
||||
"updated": 1634585642707
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+28
-4
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Repasemos los mismos ejemplos sobre los que acabas de leer para que te los aprendas de memoria!",
|
||||
"updated": 1626613958881
|
||||
"updated": 1626613958881,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Gehen wir noch einmal die Beispiele durch, die Sie gerade gelesen haben, damit Sie das auswendig lernen!",
|
||||
"updated": 1634585727295
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Realiza una copia de seguridad del Lightning Strike Task y restaurarlo sin eliminar la tarea original. Luego repite la operación pero eliminando la tarea original antes de restaurar la copia de seguridad.",
|
||||
"updated": 1626614204066
|
||||
"updated": 1626614204066,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Erstellen Sie eine Sicherungskopie des Lightning Strike Tasks und stellen Sie diese wieder her, ohne den ursprünglichen Task zu löschen. Dann wiederholen Sie den Vorgang, löschen aber den ursprünglichen Task, bevor Sie die Sicherung wiederherstellen.",
|
||||
"updated": 1634585740393
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -56,7 +68,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Verifica que, en ambos casos, las referencias salientes originadas en el Trading System Reference y el nodo Trading Engine Reference se conservan.",
|
||||
"updated": 1626614637489
|
||||
"updated": 1626614637489,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Vergewissern Sie sich, dass in beiden Fällen die ausgehenden Verweise, die von den Knoten Trading System Reference und Trading Engine Reference ausgehen, erhalten bleiben.",
|
||||
"updated": 1634585747278
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -74,7 +92,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Recuerda que las referencias salientes siempre se conservan!",
|
||||
"updated": 1626614674572
|
||||
"updated": 1626614674572,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Denken Sie daran, dass ausgehende Referenzen immer erhalten bleiben!",
|
||||
"updated": 1634585756386
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+28
-4
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Te dije que iba a insistir en este tema! ¡Probemos el segundo ejemplo!",
|
||||
"updated": 1626614763096
|
||||
"updated": 1626614763096,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ich habe Ihnen gesagt, dass ich dieses Thema mit dem Hammer bearbeiten werde! Lassen Sie uns das zweite Beispiel ausprobieren!",
|
||||
"updated": 1634585921922
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Realiza una copia de seguridad del sistema Lightning Strike trading! Restaura la copia de seguridad sin eliminar el original. Luego, repite la operación de restauración, pero primero elimine el sistema trading original.",
|
||||
"updated": 1626614976596
|
||||
"updated": 1626614976596,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Machen Sie ein Backup des Lightning Strike Handelssystems! Stellen Sie das Backup wieder her, ohne das Original zu löschen. Wiederholen Sie dann den Wiederherstellungsvorgang, aber löschen Sie zuerst das ursprüngliche Handelssystem!",
|
||||
"updated": 1634585943896
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -55,7 +67,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Verifica cómo se conservan las referencias entrantes solo en el segundo caso!",
|
||||
"updated": 1626615039104
|
||||
"updated": 1626615039104,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Überprüfen Sie, wie die eingehenden Referenzen nur im zweiten Fall erhalten bleiben!",
|
||||
"updated": 1634585949205
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -73,7 +91,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Recuerde que, para conservar las referencias entrantes, debe eliminar la estructura original de los nodos antes de restaurar la copia de seguridad.",
|
||||
"updated": 1626615070797
|
||||
"updated": 1626615070797,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Damit die eingehenden Referenzen erhalten bleiben, müssen Sie die ursprüngliche Struktur der Knoten löschen, bevor Sie die Sicherung wiederherstellen!",
|
||||
"updated": 1634585956756
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+28
-4
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Probemos el tercer ejemplo! ¡Observa las referencias que fluyen desde los vértices del polígono hasta los puntos debajo del nodo Chart Points!",
|
||||
"updated": 1626615204304
|
||||
"updated": 1626615204304,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Versuchen wir es mit dem dritten Beispiel! Beachten Sie die Verweise, die von Polygonscheiteln zu Punkten unter dem Knoten Chart Points fließen!",
|
||||
"updated": 1634586079127
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Realiza un backup del nodo Shapes y restauralo en el lateral sin borrar el original. Luego repite, pero eliminando el original antes de restaurar el backup.",
|
||||
"updated": 1626617114505
|
||||
"updated": 1626617114505,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Erstellen Sie eine Sicherungskopie des Knotens Shapes und stellen Sie diese wieder her, ohne das Original zu löschen. Wiederholen Sie den Vorgang, aber löschen Sie das Original, bevor Sie die Sicherung wiederherstellen!",
|
||||
"updated": 1634586087146
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -55,7 +67,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡En el primer caso, las referencias apuntan a que los puntos originales se convierten en referencias externas! Por el contrario, en el segundo caso, ¡las referencias permanecen internas!",
|
||||
"updated": 1626615362499
|
||||
"updated": 1626615362499,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beachten Sie, dass im ersten Fall die Verweise auf die ursprünglichen Punkte zu externen Verweisen werden! Im zweiten Fall hingegen bleiben die Referenzen intern!",
|
||||
"updated": 1634586093378
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -73,7 +91,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Las referencias permanecen internas solo cuando primero eliminas la estructura original!",
|
||||
"updated": 1626615411251
|
||||
"updated": 1626615411251,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Denken Sie daran, dass Referenzen nur dann intern bleiben, wenn Sie die Originalstruktur zuerst löschen!",
|
||||
"updated": 1634586099423
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+15
@@ -21,6 +21,11 @@
|
||||
"text": "¡Espero que hayas comprendido las complejidades de las copias de seguridad y cómo se ven afectadas las referencias en cada caso de restauración en particular!",
|
||||
"updated": 1626617460637,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ich hoffe, Sie haben die Feinheiten von Backups verstanden und wissen, wie Referenzen in jedem einzelnen Wiederherstellungsfall betroffen sind!",
|
||||
"updated": 1634586159314
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "No es necesario que memorices los casos individuales. En cambio, si comprendes el mecanismo subyacente que involucra referencias, ¡entonces puede deducir el comportamiento en cada caso!",
|
||||
"updated": 1626617450873,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie müssen die einzelnen Fälle nicht auswendig lernen. Wenn Sie stattdessen den zugrundeliegenden Mechanismus mit den Referenzen verstehen, können Sie das Verhalten in jedem Fall ableiten!",
|
||||
"updated": 1634586166198
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +70,11 @@
|
||||
"text": "¡Recuerda que cada nodo tiene un ID específico! Cuando se establece una referencia, ambos nodos involucrados tienen un ID único. Las referencias salientes no dependen del ID del nodo, ¡pero las referencias entrantes sí! Si el nodo respaldado se puede restaurar con el mismo ID, las referencias entrantes persistirán; de lo contrario, cambiarán o se perderán.",
|
||||
"updated": 1626617498840,
|
||||
"style": "Note"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Denken Sie daran, dass jeder Knoten eine bestimmte ID hat! Wenn ein Verweis hergestellt wird, haben beide beteiligten Knoten eine eindeutige ID. Ausgehende Referenzen hängen nicht von der ID des Knotens ab, eingehende jedoch schon! Wenn der gesicherte Knoten mit der gleichen ID wiederhergestellt werden kann, bleiben die eingehenden Verweise bestehen; andernfalls ändern sie sich oder gehen verloren!",
|
||||
"updated": 1634586177224
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+42
-6
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Clones difieren de las copias de seguridad en que la función está diseñada para replicar estructuras de datos para que las copias se parezcan al original.",
|
||||
"updated": 1626617648374
|
||||
"updated": 1626617648374,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Clones unterscheiden sich von Backups insofern, als dass die Funktion darauf ausgelegt ist, Datenstrukturen zu replizieren, so dass die Kopien dem Original ähneln.",
|
||||
"updated": 1634586258905
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Lee esta página con atención!",
|
||||
"updated": 1626617702879
|
||||
"updated": 1626617702879,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Lesen Sie diese Seite aufmerksam!",
|
||||
"updated": 1634586264863
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -56,7 +68,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "En resumen:",
|
||||
"updated": 1626617716280
|
||||
"updated": 1626617716280,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zusammengefasst:",
|
||||
"updated": 1634586271229
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -74,7 +92,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Clones se comportan de la misma manera tanto si el original está presente en el momento de la restauración como si no.",
|
||||
"updated": 1626617738901
|
||||
"updated": 1626617738901,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Clones verhalten sich gleich, ob das Original bei der Wiederherstellung vorhanden ist oder nicht.",
|
||||
"updated": 1634586276607
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -91,7 +115,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Las referencias entrantes siempre se descartan.",
|
||||
"updated": 1626617756338
|
||||
"updated": 1626617756338,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Eingehende Referenzen werden immer verworfen.",
|
||||
"updated": 1634586293349
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -109,7 +139,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Siéntate libre de tomarte el tiempo para probar las característica de los Clones por tu cuenta! ¡Pasaremos a otros temas sin más preámbulos!",
|
||||
"updated": 1626617964519
|
||||
"updated": 1626617964519,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Nehmen Sie sich die Zeit, die Funktion Clones selbst zu testen! Wir gehen ohne weiteres zu anderen Themen über!",
|
||||
"updated": 1634586287700
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+28
-4
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Shares son como Backups, ¡pero al archivo resultante se le quita la información personal confidencial!",
|
||||
"updated": 1626618089488
|
||||
"updated": 1626618089488,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Shares sind wie Backups, aber die resultierende Datei ist frei von sensiblen persönlichen Informationen!",
|
||||
"updated": 1634586443245
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Acostúmbrate a compartir Shares. ¡Esta buena práctica te ayudará a evitar errores peligrosos en el futuro!",
|
||||
"updated": 1626618451384
|
||||
"updated": 1626618451384,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Gewöhnen Sie sich daran, Shares zu teilen! Diese gute Praxis wird Ihnen helfen, in Zukunft gefährliche Fehler zu vermeiden!",
|
||||
"updated": 1634586450108
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -55,7 +67,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Leer la página sobre Shares para más información!",
|
||||
"updated": 1626618230044
|
||||
"updated": 1626618230044,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Lesen Sie die Seite über Shares für weitere Informationen!",
|
||||
"updated": 1634586458598
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -72,7 +90,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Siempre que desees compartir tu trabajo, nunca compartas tus archivos Workspace o Backups. Pueden contener información confidencial como tu Exchange Account Key. En cambio, comparte tus Shares!",
|
||||
"updated": 1626618429538
|
||||
"updated": 1626618429538,
|
||||
"style": "Warning"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wann immer Sie Ihre Arbeit freigeben möchten, geben Sie niemals Ihre Workspace Dateien oder Backups frei. Diese Dateien können sensible Informationen wie Ihren Exchange Account Key enthalten. Geben Sie stattdessen Ihre Shares frei!",
|
||||
"updated": 1634586464169
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+35
-5
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Puede pensar en un espacio de trabajo como en el escenario de un teatro. ¡Es el escenario en el que se desarrollará algo!",
|
||||
"updated": 1626618738205
|
||||
"updated": 1626618738205,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können sich einen Workspace wie eine Bühne im Theater vorstellen. Er ist der Rahmen, auf dem sich etwas abspielt!",
|
||||
"updated": 1634587175719
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Puede configurar tantos espacios de trabajo como desee, cada uno de ellos para casos de uso específicos. Por ejemplo:",
|
||||
"updated": 1626618800731
|
||||
"updated": 1626618800731,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können so viele Workspaces einrichten, wie Sie möchten, jeder davon für einen bestimmten Anwendungsfall. Zum Beispiel:",
|
||||
"updated": 1634587186919
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -55,7 +67,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Puede tener un espacio de trabajo para construir un Trading System que necesitarán indicadores específicos de un Data Mine.",
|
||||
"updated": 1626618837507
|
||||
"updated": 1626618837507,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können einen Workspace einrichten, um ein Trading System aufzubauen, das bestimmte Indikatoren aus einer bestimmten Data Mine benötigt.",
|
||||
"updated": 1634587193298
|
||||
}
|
||||
],
|
||||
"updated": 1622374580811
|
||||
@@ -74,7 +92,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Puede tener otra configuración de espacio de trabajo con todos los indicadores disponibles para que puedas estudiar cómo funciona cada uno de ellos.",
|
||||
"updated": 1626618870536
|
||||
"updated": 1626618870536,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können einen anderen Workspace mit allen verfügbaren Indikatoren einrichten, damit Sie die Funktionsweise jedes einzelnen Indikators studieren können.",
|
||||
"updated": 1634587201243
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -92,7 +116,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Lee esta página y aprende los conceptos básicos sobre cómo manejar los espacios de trabajo...",
|
||||
"updated": 1626618939242
|
||||
"updated": 1626618939242,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Lesen Sie diese Seite, um die Grundlagen über den Umgang mit Workspaces zu erfahren...",
|
||||
"updated": 1634587206424
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+17
-2
@@ -21,14 +21,19 @@
|
||||
"text": "Ve a la aplicación Explorador de archivos y busca las siguientes rutas relativas a la carpeta raíz de Superalgos...",
|
||||
"updated": 1626620466947,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Gehen Sie zu Ihrer Datei-Explorer-Anwendung und suchen Sie nach den folgenden Pfaden relativ zum Stammordner von Superalgos...",
|
||||
"updated": 1634587292897
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "\\My-Workspaces\n",
|
||||
"updated": 1615906070844,
|
||||
"text": "\\Platform\\My-Workspaces",
|
||||
"updated": 1634587417482,
|
||||
"translations": [
|
||||
{
|
||||
"language": "IT",
|
||||
@@ -54,6 +59,11 @@
|
||||
"text": "En esta carpeta, encontrarás un archivo llamado Getting Started Tutorials.json. Tel suyo es el espacio de trabajo actual; el que estás usando en este momento. Todo lo que ha estado haciendo últimamente se ha almacenado aquí.",
|
||||
"updated": 1626620522459,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hier finden Sie die Workspaces, die Sie möglicherweise zuvor gespeichert haben. Wenn der Ordner leer ist oder nicht existiert, bedeutet dies, dass Sie noch keine Workspaces gespeichert haben!",
|
||||
"updated": 1634587301340
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -77,6 +87,11 @@
|
||||
"text": "En esta carpeta, encontrarás Plugin Workspaces conectando con Superalgos. Es posible que desees leer los Documentos del \"Community Workspaces\" para saber de qué se trata cada uno de ellos.",
|
||||
"updated": 1626620829014,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "In diesem Ordner finden Sie die Plugin Workspaces, die mit Superalgos ausgeliefert werden. Vielleicht möchten Sie das Thema \"Community Workspaces\" in den Docs lesen, um zu erfahren, worum es bei den einzelnen Workspaces geht!",
|
||||
"updated": 1634587316991
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
+25
@@ -21,6 +21,11 @@
|
||||
"text": "El espacio de trabajo actual es el User Workspace que estés utilizando en cualquier momento.",
|
||||
"updated": 1626621294273,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der aktuelle Workspace ist der User Workspace oder der Plugin Workspace, den Sie gerade verwenden.",
|
||||
"updated": 1634587888849
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "Si cierras y reinicias la aplicación, o actualizas el User Interface, el sistema carga el ultimo Workspace usado.",
|
||||
"updated": 1626622914590,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie die Anwendung schließen und neu starten oder die Benutzeroberfläche UI aktualisieren, lädt das System den zuletzt verwendeten Workspace.",
|
||||
"updated": 1634587898657
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +70,11 @@
|
||||
"text": "Accede al menú del nodo Workspace, doble clic en la etiqueta \"Getting Started Tutorials\" y cámbialo a \"Basic Education\".",
|
||||
"updated": 1626621401640,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Rufen Sie das Menü des Knotens Workspace auf, doppelklicken Sie auf die Bezeichnung \"Getting Started Tutorials\" und ändern Sie sie in \"Basic Education\".",
|
||||
"updated": 1634587910330
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -79,6 +94,11 @@
|
||||
"text": "Ahora presiona Ctrl + Shift + Alt + Key-S",
|
||||
"updated": 1626621439639,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Drücken Sie nun Ctrl + Shift + Alt + Key-S",
|
||||
"updated": 1634587951733
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -98,6 +118,11 @@
|
||||
"text": "Ve a la carpeta My-Workspaces para verificar que el nuevo archivo está allí. ¡Encuéntralo también en la pestaña de espacios de trabajo!",
|
||||
"updated": 1626622475717,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Gehen Sie zum Ordner My-Workspaces , um zu überprüfen, ob die neue Datei dort vorhanden ist. Sie finden sie auch auf der Registerkarte Workspaces !",
|
||||
"updated": 1634587938906
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+20
@@ -21,6 +21,11 @@
|
||||
"text": "Plugins son estructuras de datos que se envían con el sistema y que puede llamar a cualquier espacio de trabajo utilizando la jerarquía de Plugins.",
|
||||
"updated": 1626622977338,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Plugins sind Datenstrukturen, die mit dem System geliefert werden und die Sie über die Plugins-Hierarchie in jedem Workspace aufrufen können.",
|
||||
"updated": 1634588386781
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "Plugins son estructuras de datos destinadas a ser reutilizadas. Es por eso que se envían como plugins, para que puedas colocarlos en cualquier Workspace.",
|
||||
"updated": 1626620113069,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Plugins sind Datenstrukturen, die wiederverwendet werden sollen. Aus diesem Grund werden sie als Plugins ausgeliefert, so dass Sie sie in jedem Workspace platzieren können.",
|
||||
"updated": 1634588379363
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -59,6 +69,11 @@
|
||||
"text": "¡Amplia el nodo Plugins!",
|
||||
"updated": 1626619242709,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Erweitern Sie den Knoten Plugins!",
|
||||
"updated": 1634588371523
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -78,6 +93,11 @@
|
||||
"text": "Como puede deducirse de la estructura de la jerarquía, existen varios tipos de plugins! Se envían como archivos JSON, ordenados por tipo en la carpeta de plugins. ¡Échale un vistazo!",
|
||||
"updated": 1626619903123,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wie Sie an der Struktur der Hierarchie erkennen können, gibt es mehrere Arten von Plugins! Sie werden als JSON-Dateien ausgeliefert, die nach Typ im Plugins-Ordner sortiert sind. Probieren Sie es aus!",
|
||||
"updated": 1634588393321
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
+28
-4
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Encuentra el nodo Plugin Trading Systemsy y expandelo! Nota el nodo del archivo Plugin llamado Masters-Lightning-Strike...",
|
||||
"updated": 1626641150426
|
||||
"updated": 1626641150426,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Suchen Sie den Knoten Plugin Trading Systems und erweitern Sie ihn! Beachten Sie den Plugin-Datei-Knoten namens Masters-Lightning-Strike...",
|
||||
"updated": 1634588528149
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Lightning Strike es la demo Trading System con la que has estado jugando durante el Welcome tutorial. Se ha colocado como plugin en este workspace!",
|
||||
"updated": 1626642058733
|
||||
"updated": 1626642058733,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Lightning Strike ist das Demo Trading System, mit dem Sie während des Willkommens-Tutorials gespielt haben. Es wurde als Plugin in diesem Workspace platziert!",
|
||||
"updated": 1634588533500
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -56,7 +68,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Sige la línea de puntos naranja hacia abajo hasta que encuentre el nodo al que se conecta. Usa el truco del teclado Ctrl + flechas para ir más rápido!",
|
||||
"updated": 1626642159336
|
||||
"updated": 1626642159336,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Folgen Sie der orange gepunkteten Linie nach unten, bis Sie den Knoten finden, mit dem es verbunden ist! Benutzen Sie den Tastaturtrick Ctrl + Pfeile, um schneller zu werden!",
|
||||
"updated": 1634588564331
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -74,7 +92,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Eso es! Encontraste el nodo Lightning Strike Trading System. Si lo arrastras hacia un lado, encontrarás el nodo Plugin File Position debajo.",
|
||||
"updated": 1626642259700
|
||||
"updated": 1626642259700,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das war's! Sie haben den Knoten Lightning Strike Trading System gefunden. Wenn Sie ihn zur Seite ziehen, finden Sie darunter den Knoten Plugin File Position.",
|
||||
"updated": 1634588578954
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+20
@@ -21,6 +21,11 @@
|
||||
"text": "Aquí está la locura... el nodo Plugin File Position determina en qué parte del workspace el plugin es colocado.",
|
||||
"updated": 1626642524737,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Jetzt kommt der verrückte Teil... der Knoten Plugin File Position bestimmt, wo im Workspace das Plugin platziert wird!",
|
||||
"updated": 1634588642076
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "¡Por eso encontraste el nodo Trading System en la parte superior del nodo Plugin File Position!",
|
||||
"updated": 1626642599727,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Aus diesem Grund finden Sie den Knoten Trading System über dem Knoten Plugin File Position!",
|
||||
"updated": 1634588653804
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +70,11 @@
|
||||
"text": "¡Si eliminas el nodo Trading System, volvería a aparecer la próxima vez que recargues el workspace!¡Plugins se cargan desde el archivo plugin cada vez que se carga el workspace!",
|
||||
"updated": 1626642734045,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie den Knoten Trading System löschen, erscheint er wieder, wenn Sie den Workspace das nächste Mal neu laden! Plugins werden jedes Mal aus der Plugin-Datei geladen, wenn der Workspace geladen wird!",
|
||||
"updated": 1634588661690
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -79,6 +94,11 @@
|
||||
"text": "¡No dudes en probarlo! Si lo desea, puedes eliminar el nodo Trading System y actualiza la página. Ten en cuenta que deberás encontrar el Basic Education Tutorial y hacer clic en Resume en el menú para continuar!",
|
||||
"updated": 1626642833516,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Probieren Sie es einfach aus! Wenn Sie möchten, können Sie den Knoten Trading System löschen und die Seite neu laden. Denken Sie daran, dass Sie das Tutorial zur Grundausbildung finden und im Menü auf Fortsetzen klicken müssen, um fortzufahren!",
|
||||
"updated": 1634588669393
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+20
@@ -21,6 +21,11 @@
|
||||
"text": "Para colocar un plugin ien un workspace ¡debe seleccionar la opción para agregar los plugins que faltan en el nodo del tipo correspondiente!",
|
||||
"updated": 1626643106064,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um ein Plugin in einem Workspace zu platzieren, müssen Sie die Option wählen, die fehlenden Plugins auf dem Knoten des passenden Typs hinzuzufügen!",
|
||||
"updated": 1634588716948
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "¡Intentémoslo! ¡Selecciona Add Missing Trading Systems en el nodo Plugin Trading Systems!",
|
||||
"updated": 1626643167865,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Probieren wir es aus! Wählen Sie Add Missing Trading Systems im Knoten Plugin Trading Systems!",
|
||||
"updated": 1634588730509
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +70,11 @@
|
||||
"text": "Nuevos nodos Plugin File se crean para cada plugin in \\Foundations\\Plugins\\Trading-Systems. Puede eliminar los nodos Plugin File que no necesita y conservar los que necesite! Luego, puedes agregar y anclar el nodo Plugin File Position donde deseas colocar la jerarquía del plugin. ",
|
||||
"updated": 1633282144023,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Für jedes Plugin in \\Foundations\\Plugins\\Trading-Systems werden neue Plugin File Knoten erstellt. Sie können die Plugin File Knoten, die Sie nicht benötigen, löschen und die gewünschten behalten! Fügen Sie nun den Knoten Plugin File Position hinzu und heften Sie ihn an die Stelle, an der Sie die Plugin Hierarchie platzieren möchten!",
|
||||
"updated": 1634588766367
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -79,6 +94,11 @@
|
||||
"text": "Plugins se agregarán la próxima vez que cargue el workspace. Si deseas probarlo, ¡actualiza!",
|
||||
"updated": 1626643436449,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Plugins werden hinzugefügt, wenn Sie den Workspace das nächste Mal laden! Wenn Sie sie testen wollen, aktualisieren Sie!",
|
||||
"updated": 1634588775070
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+29
-2
@@ -21,6 +21,11 @@
|
||||
"text": "Recuerda que dije que el archivo plugin se carga cada vez que se carga el espacio de trabajo? Esta característica tiene una consecuencia inmediata ...",
|
||||
"updated": 1626655086632,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Erinnern Sie sich, dass ich sagte, dass die Plugin-Datei jedes Mal geladen wird, wenn der Workspace geladen wird? Diese Funktion hat eine unmittelbare Konsequenz...",
|
||||
"updated": 1634588859041
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "Las Hierarchies (Jerarquías) colocadas en el workspace como plugins (copias) no se guardan en el workspace por defecto. Como resultado, los cambios realizados en esas jerarquías no persiten, a menos que las salve en forma manual o habilite el guardado automático. ",
|
||||
"updated": 1633282516205,
|
||||
"style": "Warning"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hierarchies , die als Plugins im Workspace platziert werden, werden standardmäßig nicht mit dem Workspace gespeichert. Infolgedessen bleiben Änderungen in diesen Hierarchien nicht erhalten, es sei denn, Sie speichern sie manuell oder aktivieren die automatische Speicherung.",
|
||||
"updated": 1634588866809
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +70,11 @@
|
||||
"text": "Hay dos casos principales para modificar los plugins:",
|
||||
"updated": 1633282630926,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es gibt zwei Hauptanwendungsfälle für die Änderung von Plugins:",
|
||||
"updated": 1634588872603
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -71,7 +86,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Desea modificar un plugin para hacer uno propio y continuar trabajando con la versión modificada en el futuro.",
|
||||
"updated": 1633282732027
|
||||
"updated": 1633282732027,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie möchten ein Plugin ändern, um es sich zu eigen zu machen und in Zukunft mit der geänderten Version weiter zu arbeiten.",
|
||||
"updated": 1634588878910
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -82,7 +103,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Desea actualizar y mejorar un plugin para contribuir en el mejoramiento del proyecto.",
|
||||
"updated": 1633282817838
|
||||
"updated": 1633282817838,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie möchten ein Plugin aktualisieren und verbessern, um die Verbesserungen zum Projekt beizutragen.",
|
||||
"updated": 1634588884937
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+8
-1
@@ -4,7 +4,14 @@
|
||||
"type": "Tutorial Step - GIF Saving Plugins",
|
||||
"definition": {
|
||||
"text": "This step will play a video in full screen mode.",
|
||||
"updated": 1628348731575
|
||||
"updated": 1628348731575,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "In diesem Schritt wird ein Video im Vollbildmodus abgespielt.",
|
||||
"updated": 1634589326828
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
|
||||
+15
@@ -21,6 +21,11 @@
|
||||
"text": "Miremos el primer escenario: un caso típico es cuando desea introducir cambios a una estrategia incluída en el sistema para comenzar con una configuración probada.",
|
||||
"updated": 1633283150203,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Schauen wir uns das erste Szenario an: Ein typischer Fall ist, dass Sie Änderungen an einer Strategie vornehmen möchten, die mit dem System ausgeliefert wird, um mit einem bewährten Setup zu beginnen!",
|
||||
"updated": 1634589005531
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "Digamos que está listo para comenzar a jugar con una estrategia.. Quiere comenzar con una existente o introducir modificaciones para entender como trabajan las cosas. No tiene intensiones de contribuir con los cambios. Solo desea jugar con esto y cambiarlo a su gusto! Entonces, haga lo siguiente:",
|
||||
"updated": 1633283766269,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Nehmen wir an, Sie sind bereit, mit einer Strategie zu spielen. Sie möchten mit einer bestehenden Strategie beginnen und Änderungen einführen, um zu verstehen, wie die Dinge funktionieren. Sie haben nicht die Absicht, die Änderungen einzubringen. Sie wollen einfach nur damit spielen und sie nach Ihren Wünschen anpassen! Dann gehen Sie wie folgt vor:",
|
||||
"updated": 1634589029922
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +70,11 @@
|
||||
"text": "Borre el nodo Plugin File correspondiente al Trading System y restablezca el plugin file original en (\\Plugins\\Trading-Systems folder) como si fuera un a backup: arrastre el archivo y suéltelo en el Design Space! La estrategia ahora vive en el workspace y puede modificarlo y grabarlo.",
|
||||
"updated": 1633283708150,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Löschen Sie den Knoten der Plugin File, die dem Trading System entspricht, und stellen Sie die ursprüngliche Plugin-Datei (im Ordner \\Plugins\\Trading-Systems) wieder her, als ob es sich um eine Sicherungskopie handeln würde: Ziehen Sie die Datei und legen Sie sie im Design Space ab! Die Strategie befindet sich nun im Workspace und Sie können sie ändern und speichern!",
|
||||
"updated": 1634589037277
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+18
-1
@@ -21,6 +21,11 @@
|
||||
"text": "Si eres un desarrollador y estás probando un nuevo exchange. Deseas modificar el Sensor Bot para introducir una nueva característica o parámetro.",
|
||||
"updated": 1626710809333,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zum zweiten Szenario: Nehmen wir an, Sie testen den EMA-Indikator, haben einen Fehler gefunden und wissen, wie man ihn beheben kann. Sie beabsichtigen, den Fehler zu beheben, damit alle davon profitieren!",
|
||||
"updated": 1634589198766
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "El Sensor Bot es parte del Candles Data Mine, que generalmente se incluye como plugin en la mayoría de los workspaces de plugins. En tal caso, debes proceder como en el caso anterior: eliminar el nodo Plugin File correspondiente a los Candles Data Mine y restaurar el archivo de mina de datos desde la carpeta Plugins\\Data-Mines como si fuera un backup.",
|
||||
"updated": 1626709343670,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dieser Indicator Bot ist Teil der Sparta Data Mine, die normalerweise als Plugin in einigen Plugin-Workspaces enthalten ist. Um das Plugin aus der UI Benutzeroberfläche heraus zu modifizieren und die Änderungen zu speichern, haben Sie zwei Möglichkeiten:",
|
||||
"updated": 1634589206307
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -52,7 +62,14 @@
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Or use the Save Plugin option to manually save the plugin file whenever you wish to!",
|
||||
"updated": 1629909705348
|
||||
"updated": 1629909705348,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Oder verwenden Sie die Option \"Plugin speichern\", um die Plugin-Datei manuell zu speichern, wann immer Sie es wünschen!",
|
||||
"updated": 1634589217431
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+29
-4
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Ahora que mencioné probar exchanges, hablemos un poco sobre cómo Superalgos los maneja y cuáles puede usar...",
|
||||
"updated": 1628014366400
|
||||
"updated": 1628014366400,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wir alle haben unsere bevorzugten Börsen... lassen Sie uns ein wenig darüber sprechen, wie Superalgos mit ihnen umgeht und welche Sie verwenden können...",
|
||||
"updated": 1634589422384
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,14 +44,27 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Superalgos usa CCXT, una biblioteca de código abierto que propone un estándar para las comunicaciones de API del mercado. El sistema funciona con intercambios que cumplen con el estándar:",
|
||||
"updated": 1628014486689
|
||||
"updated": 1628014486689,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Superalgos verwendet CCXT, eine Open-Source-Bibliothek, die einen Standard für die API-Kommunikation von Börsen vorschlägt. Das System arbeitet mit Börsen, die diesen Standard einhalten:",
|
||||
"updated": 1634589429073
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Link",
|
||||
"text": "List of Exchanges Pledging Compliance With CCXT->github.com/ccxt/ccxt/wiki/Exchange-Markets?r=Superalgos",
|
||||
"updated": 1616001030925
|
||||
"updated": 1616001030925,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Liste der Börsen, die sich zur Einhaltung von CCXT verpflichtet haben ->github.com/ccxt/ccxt/wiki/Exchange-Markets?r=Superalgos",
|
||||
"updated": 1634589471287
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
@@ -61,7 +80,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Aparecer en la lista no es suficiente! ¡Muchos exchanges no cumplen! Como resultado, hay un esfuerzo comunitario continuo para probar los exchanges y documentar qué se puede usar con Superalgos y cómo. Mira el TOC para encontrar qué intercambios se han probado y en qué medida.",
|
||||
"updated": 1628014928782
|
||||
"updated": 1628014928782,
|
||||
"style": "Note"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Aufnahme in die Liste ist jedoch nicht ausreichend! Viele Börsen halten sich nicht wirklich daran! Daher gibt es laufende Bemühungen der Community, Börsen zu testen und zu dokumentieren, welche mit Superalgos verwendet werden können und wie! Dies ist das Thema in den Docs, das diese Bemühungen abdeckt. Schauen Sie sich das TOC an, um herauszufinden, welche Börsen getestet wurden und in welchem Umfang.",
|
||||
"updated": 1634589436559
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+28
-4
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Si eres un desarrollador y tu intercambio preferido no ha sido probado, ¡puedes unirte al esfuerzo y ayudar con las pruebas!",
|
||||
"updated": 1628015097699
|
||||
"updated": 1628015097699,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie ein Entwickler sind und Ihre bevorzugte Börse noch nicht getestet wurde, können Sie sich an den Bemühungen beteiligen und beim Testen helfen!",
|
||||
"updated": 1634589557030
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Este tema en los Documentos explica cómo depurar el Sensor Bot para que obtenga datos de un exchange. Si el exchange admite las funciones básicas requeridas por Superalgos, ¡deberías terminar con una solución!",
|
||||
"updated": 1628015199818
|
||||
"updated": 1628015199818,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dieses Thema in den Docs erklärt, wie man den Sensor Bot debuggt, um ihn dazu zu bringen, Daten von einer Börse zu holen. Wenn die Börse die von Superalgos geforderten Grundfunktionen unterstützt, sollten Sie am Ende eine Lösung haben!",
|
||||
"updated": 1634589564876
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -56,7 +68,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Compartir la solución con la comunidad es una contribución valiosa. ¡Los que vengan pronto podrán disfrutar de su exchange favorito!",
|
||||
"updated": 1628015422895
|
||||
"updated": 1628015422895,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das Teilen der Lösung mit der Community ist ein wertvoller Beitrag. Jeder, der als nächstes kommt, kann sich auch an seiner Lieblingsbörse erfreuen!",
|
||||
"updated": 1634589572089
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -74,7 +92,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Te recomendamos que completes tu educación con todos los tutoriales antes de sumergirte en la configuración de otros exchanges.",
|
||||
"updated": 1628015615665
|
||||
"updated": 1628015615665,
|
||||
"style": "Important"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wir empfehlen Ihnen dringend, Ihre Ausbildung auf Superalgos zu vervollständigen und alle Tutorials zu absolvieren, bevor Sie sich an die Einrichtung anderer Börsen machen.",
|
||||
"updated": 1634589578473
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+20
@@ -21,6 +21,11 @@
|
||||
"text": "Hablando de exchanges y plugins probados, hay un espacio de trabajo de plugins que se puede usar como borrón y cuenta nueva al diseñar cosas nuevas.",
|
||||
"updated": 1628015811665,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Apropos getestete Börsen und Plugins: Es gibt einen Plugin Workspace, den Sie als saubere Schiefertafel verwenden können, wenn Sie neue Sachen entwerfen!",
|
||||
"updated": 1634589661481
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "¡Es el Tested Exchanges Plugin Workspace!",
|
||||
"updated": 1628015859577,
|
||||
"style": "Note"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es ist der Blank Template Plugin Workspace!",
|
||||
"updated": 1634589668492
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +70,11 @@
|
||||
"text": "Una vez que termines tu educación inicial con todos los tutoriales existentes, eventualmente estarás listo para comenzar a construir tu propio Trading System. ¡Este es el Plugin Workspace que puedes usar para ese propósito!",
|
||||
"updated": 1628016330767,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie Ihre anfängliche Ausbildung mit allen vorhandenen Tutorials abgeschlossen haben, werden Sie schließlich bereit sein, mit dem Aufbau Ihres eigenen Trading Systems zu beginnen. Dies ist der Plugin Workspace, den Sie zu diesem Zweck verwenden können!",
|
||||
"updated": 1634589676279
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -79,6 +94,11 @@
|
||||
"text": "Cuenta con un Trading System limpio desde el primer momento, el Install New Market Tutorial y la línea de exchages probados que puedes usar.",
|
||||
"updated": 1628016671067,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hier finden Sie ein sauberes Trading System, das sofort einsatzbereit ist, das New Market Tutorial installieren und eine Reihe von getesteten Börsen, die Sie verwenden können.",
|
||||
"updated": 1634589725969
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+20
@@ -21,6 +21,11 @@
|
||||
"text": "Los datos que descargas de los exchanges y procesas están disponibles en todos los ámbitos, accesibles desde cualquier Workspace y estrategia.",
|
||||
"updated": 1628020470335,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Daten, die Sie von den Börsen herunterladen und mit den Indikatoren verarbeiten, sind übergreifend verfügbar und von jedem Workspace und jeder Strategie aus zugänglich.",
|
||||
"updated": 1634589901473
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "Los datos se almacenan en el disco en la carpeta Data-Storage y están organizados por Project, Data Mine, bot y Market. No importa qué Worksapce hayas utilizado para minar los datos o los indicadores de proceso.",
|
||||
"updated": 1628017724144,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Daten werden auf der Festplatte im Ordner Data-Storage gespeichert und sind nach Project, Data Mine, Bot und Market geordnet. Es spielt keine Rolle, in welchem Workspace Sie die Daten gewonnen oder die Indikatoren verarbeitet haben.",
|
||||
"updated": 1634589981672
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -59,6 +69,11 @@
|
||||
"text": "Todos los datos están disponibles para todos los espacios de trabajo, por lo que puedes trabajar con las mismas fuentes de datos independientemente de lo que estés haciendo.",
|
||||
"updated": 1628017031765,
|
||||
"style": "Note"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Alle Daten stehen in allen Workspaces zur Verfügung, so dass Sie unabhängig von Ihrer Tätigkeit mit denselben Datenquellen arbeiten können.",
|
||||
"updated": 1634589990093
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -78,6 +93,11 @@
|
||||
"text": "No hay gestión de datos incorporada en la aplicación. ¡Utilice tu sistema de archivos!",
|
||||
"updated": 1628019703596,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es gibt keine integrierte Datenverwaltung in der App. Verwenden Sie stattdessen Ihr Dateisystem!",
|
||||
"updated": 1634589996758
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+20
@@ -21,6 +21,11 @@
|
||||
"text": "¡Puedes trabajar con cualquiera de los mercados listados en el exchange! ¡Echa un vistazo a la configuración en el nodo Exchange Markets!",
|
||||
"updated": 1628020751758,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können mit jedem der an der Börse gelisteten Märkte arbeiten! Werfen Sie einen Blick auf die Einrichtung im Knoten Exchange Markets!",
|
||||
"updated": 1634590229826
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "No voy a explicar cómo configurar nuevos mercados, ya que el tema se trata en Install a New Market Tutorial in the Install a New Market Tutorial Plugin Workspace. ¡Solo quería hacerte saber que es fácil!",
|
||||
"updated": 1628020854073,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ich werde nicht erklären, wie man neue Märkte einrichtet, da das Thema im Tutorial Install a New Market Tutorial im the Install a New Market Tutorial Plugin Workspace behandelt wird. Ich wollte Sie nur wissen lassen, dass es ganz einfach ist!",
|
||||
"updated": 1634590236889
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +70,11 @@
|
||||
"text": "¡Eche un vistazo al menú del mercado BTC/USDT! Observe los botones \"Install Market\" y \"Uninstall Market\" . ¡Asi es como lo haces!",
|
||||
"updated": 1628021245760,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Werfen Sie einen Blick auf das Menü des BTC/USDT-Marktes! Beachten Sie die Schaltflächen \"Install Market\" und \"Uninstall Market\"! So machen Sie es!",
|
||||
"updated": 1634590245917
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -79,6 +94,11 @@
|
||||
"text": "¡Lo dejaré así y te dejaré hacer el Install a New Market Tutorial cuando sea tu tiempo!",
|
||||
"updated": 1628021318712,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": " Ich lasse es dabei bewenden und überlasse Ihnen das Install a New Market Tutorial, wenn die Zeit reif ist!",
|
||||
"updated": 1634590252957
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+21
-3
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Si eres un desarrollador o tienes al menos un conocimiento básico de JavaScript, ¡podrás crear tus propios indicadores!",
|
||||
"updated": 1628022227899
|
||||
"updated": 1628022227899,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie ein Entwickler sind oder zumindest ein grundlegendes Verständnis von JavaScript haben, werden Sie in der Lage sein, Ihre eigenen Indikatoren zu erstellen!",
|
||||
"updated": 1634590305087
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Esta es una característica crucial de Superalgos, ya que la inteligencia comercial no puede surgir sin la capacidad de analizar los datos del mercado. Una vez más, no voy a explicar cómo crear indicadores en este momento, ¡pero deseo informarte que lo tenemos cubierto!",
|
||||
"updated": 1628022270052
|
||||
"updated": 1628022270052,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dies ist eine wichtige Funktion von Superalgos, denn ohne die Möglichkeit, Marktdaten zu analysieren, kann keine Handelsintelligenz entstehen! Ich werde an dieser Stelle nicht näher darauf eingehen, wie man Indikatoren erstellt, aber ich möchte Sie darauf hinweisen, dass wir für Sie da sind!",
|
||||
"updated": 1634590310614
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -56,7 +68,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Hay una serie completa de tutoriales en video que explican todo el proceso! ¡Echa un vistazo rápido a esta página en los Documentos!",
|
||||
"updated": 1628022294402
|
||||
"updated": 1628022294402,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es gibt eine umfassende Reihe von Vid eo-Tutorials, die den gesamten Prozess erklären! Werfen Sie einen kurzen Blick auf diese Seite in den Docs!",
|
||||
"updated": 1634590316626
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+20
@@ -21,6 +21,11 @@
|
||||
"text": "¡Los indicadores los construye la comunidad! Un desarrollador construirá indicadores que necesita y los aportará al proyecto en una nueva mina de datos.",
|
||||
"updated": 1628024771860,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Indikatoren werden von der Community erstellt! Normalerweise baut ein Entwickler ein paar Indikatoren, die er oder sie braucht, und stellt sie dem Projekt in einer neuen Data Mine zur Verfügung!",
|
||||
"updated": 1634590447390
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "El Community Data Mines Book es donde puedes encontrar todas los Data Mines y sus indicadores. Cada capítulo del libro corresponde a un Data Mine...",
|
||||
"updated": 1628024715026,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Community Data Mines Buch finden Sie alle bestehenden Data Mines und ihre Indikatoren! Jedes Kapitel des Buches entspricht einer Data Mine...",
|
||||
"updated": 1634590455084
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -59,6 +69,11 @@
|
||||
"text": "¡Escanea el contenido de cada capítulo para saber de lo que está disponible en este momento!",
|
||||
"updated": 1628023653141,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Scannen Sie den Inhalt jedes Kapitels, um eine Vorstellung davon zu bekommen, was an dieser Stelle verfügbar ist!",
|
||||
"updated": 1634590467643
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -78,6 +93,11 @@
|
||||
"text": "Para usar un Data Mine, debes incluirlo en el espacio de trabajo o como complemento e instalar el mercado. ¡Todas las tareas de datos se crearán automáticamente!",
|
||||
"updated": 1628024742935,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um eine Data Mine zu verwenden, müssen Sie sie in den Workspace oder als Plugin einbinden und den Markt installieren. Alle Data Tasks werden dann automatisch erstellt!",
|
||||
"updated": 1634590473687
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+20
@@ -15,6 +15,11 @@
|
||||
"text": "¿Se preguntas cómo obtener datos de fuentes distintas a los intercambios en CCXT? Messari? Twitter? ¡Te tenemos cubierto!",
|
||||
"updated": 1628032498537,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie fragen sich, wie Sie in CCXT Daten aus anderen Quellen als Börsen erhalten können? Messari? Twitter? Wir haben die Lösung für Sie!",
|
||||
"updated": 1634590563604
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -29,6 +34,11 @@
|
||||
"text": "Superalgos le permite obtener datos de cualquier API en Internet, ¡y no necesitas programar para hacerlo! En su lugar, puedes diseñar un API Map o utilizar los que se envían con el sistema.",
|
||||
"updated": 1628032719618,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Superalgos ermöglicht es Ihnen, Daten von jeder beliebigen API im Internet abzurufen, und Sie müssen dafür nicht programmieren! Stattdessen können Sie eine API Map entwerfen oder die mit dem System mitgelieferten verwenden!",
|
||||
"updated": 1634590573292
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -42,6 +52,11 @@
|
||||
"text": "Un API Map es un conjunto de definiciones que dictan cómo un bot puede acceder a una API en particular y cómo interpretar las respuestas del servidor.",
|
||||
"updated": 1628032814964,
|
||||
"style": "Note"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Eine API Map ist eine Reihe von Definitionen, die festlegen, wie ein Bot auf eine bestimmte API zugreifen kann und wie die Antworten des Servers zu interpretieren sind.",
|
||||
"updated": 1634590580114
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -55,6 +70,11 @@
|
||||
"text": "¡Sumérgete en esta sección del Data Mining para explorar el panorama de API!",
|
||||
"updated": 1628032872757,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Tauchen Sie in diesen Abschnitt des Data-Mining-Themas ein, wenn Sie bereit sind, die API-Landschaft zu erkunden!",
|
||||
"updated": 1634590587052
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+20
@@ -21,6 +21,11 @@
|
||||
"text": "¡La comunidad también puede contribuir con Trading Systems! En este punto, solo quedan unos pocos, ¡pero esperamos que surjan más pronto!",
|
||||
"updated": 1628032965847,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Community kann auch Trading Systeme beisteuern! Im Moment gibt es nur ein paar, aber wir hoffen, dass bald mehr dazukommen!",
|
||||
"updated": 1634590727541
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "Busca en los documentos Community Trading Systems!",
|
||||
"updated": 1628032998404,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Suchen Sie in den Docs nach Trading Systemen der Community!",
|
||||
"updated": 1634590737156
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +70,11 @@
|
||||
"text": "Strategies contribuidas por el Community están documentados para que pueda usarlos para aprender.",
|
||||
"updated": 1628033107293,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Strategies, die von der Community beigesteuert werden, sind vollständig dokumentiert, so dass Sie sie zum Lernen verwenden können!",
|
||||
"updated": 1634590749764
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -79,6 +94,11 @@
|
||||
"text": "Recuerda que mientras Trading Systems en Superalgos pueden ser completamente funcionales, ¡están disponibles solo con fines educativos! ¡Eres completamente responsable de cómo lo usas! ¡Trading es un negocio arriesgado!",
|
||||
"updated": 1628033267499,
|
||||
"style": "Warning"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Denken Sie daran, dass Trading Systeme, die mit Superalgos ausgeliefert werden, zwar voll funktionsfähig sind, aber nur zu Lernzwecken zur Verfügung gestellt werden! Sie sind voll verantwortlich dafür, wie Sie sie nutzen! Handeln ist ein riskantes Geschäft!",
|
||||
"updated": 1634590755873
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+20
@@ -21,6 +21,11 @@
|
||||
"text": "¡Felicidades! Te has graduado de tu Basic Education y estas listo para pasar a cosas más avanzadas!",
|
||||
"updated": 1628034332132,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Herzlichen Glückwunsch! Sie haben Ihre Grundausbildung abgeschlossen und sind nun bereit für fortgeschrittenere Dinge!",
|
||||
"updated": 1634590980526
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "En el siguiente tutorial, aprenderás cómo actualizar tu aplicación, cambiar de rama para probar la versión en la rama de desarrollo, algunos trucos sobre los Documentos y más.",
|
||||
"updated": 1628033834427,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im nächsten Tutorial werden Sie lernen, wie Sie Ihre Anwendung aktualisieren, den Zweig wechseln, um die Version im Entwicklungszweig zu testen, ein paar Tricks zu den Docs und vieles mehr!",
|
||||
"updated": 1634590987001
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +70,11 @@
|
||||
"text": "¡También podrás enviar una reseña sobre tu experiencia con Superalgos hasta este momento!",
|
||||
"updated": 1628033856097,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie werden auch die Möglichkeit haben, einen Bericht über Ihre bisherigen Erfahrungen mit Superalgos zu verfassen!",
|
||||
"updated": 1634590998253
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -79,6 +94,11 @@
|
||||
"text": "A medida que avanzas, es posible que necesites un repaso de los temas tratados en este tutorial o en el anterior. Esa es una práctica estándar, ¡así que regresa hasta que aprenda todos los trucos!",
|
||||
"updated": 1628033960361,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie mit Superalgos weiterkommen, brauchen Sie vielleicht eine Auffrischung der Themen, die in diesem oder dem vorherigen Tutorial behandelt wurden! Das ist eine gängige Praxis, also kommen Sie wieder, bis Sie alle Tricks gelernt haben!",
|
||||
"updated": 1634591004640
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+9
-5
@@ -25,7 +25,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ich hoffe, dieses Tutorial hat Ihnen gefallen! Möchten Sie Ihre Dankbarkeit zeigen, indem Sie dem Superalgos Repo einen Stern geben?",
|
||||
"updated": 1634247038916
|
||||
"updated": 1634247038916,
|
||||
"style": "Definition"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -50,7 +51,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Benutzer, die vor Ihnen da waren, haben Zeit und Mühe in die Erstellung von Tutorials gesteckt, damit Sie eine bessere Erfahrung machen können! Ein Stern für unser Repo ist eine schöne Art, Danke zu sagen! Sterne verbessern die Platzierung in der Github-Suche. Je mehr Sterne, desto einfacher ist es für Entwickler, Superalgos zu finden und schließlich zu unterstützen! Einen Stern für das Projektarchiv zu vergeben, dient auch Ihren eigenen Interessen!",
|
||||
"updated": 1634247047379
|
||||
"updated": 1634247047379,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -74,7 +76,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie es noch nicht getan haben, gehen Sie bitte zu unserem Repository und klicken Sie auf den Stern-Button in der oberen rechten Ecke!",
|
||||
"updated": 1634247053562
|
||||
"updated": 1634247053562,
|
||||
"style": "Callout"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -91,8 +94,9 @@
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Here's a link for your convenience! Thank you! ->github.com/Superalgos/Superalgos",
|
||||
"updated": 1634247097586
|
||||
"text": "Hier ist ein Link für Sie! Ich danke Ihnen!->github.com/Superalgos/Superalgos",
|
||||
"updated": 1634590878814,
|
||||
"style": "Link"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
host = 'localhost'
|
||||
}
|
||||
if (port === undefined) {
|
||||
port = global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT
|
||||
port = global.env.PLATFORM_WEB_SOCKETS_INTERFACE_PORT
|
||||
}
|
||||
|
||||
let messageCounter = 0
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -1,5 +1,16 @@
|
||||
exports.newNetworkModulesWebSocketsInterface = function newNetworkModulesWebSocketsInterface() {
|
||||
/*
|
||||
This module represents the websockets interface of the Network Node.
|
||||
|
||||
A Network Nodes is epected to receive conections request from 2 different types
|
||||
of entities:
|
||||
|
||||
1. Other Network Nodes.
|
||||
2. Clients / Apps.
|
||||
|
||||
This module deals with those 2 connection types and is the one receiving from
|
||||
and sending messages to those entities.
|
||||
*/
|
||||
let thisObject = {
|
||||
networkClients: undefined,
|
||||
networkPeers: undefined,
|
||||
@@ -45,7 +56,6 @@ exports.newNetworkModulesWebSocketsInterface = function newNetworkModulesWebSock
|
||||
socketServer.on('connection', onConnectionOpened)
|
||||
|
||||
function onConnectionOpened(socket)
|
||||
|
||||
/*
|
||||
This function is executed every time a new Websockets connection
|
||||
is stablished.
|
||||
|
||||
@@ -4,8 +4,14 @@ exports.newSocialTradingModulesSocialGraph = function newSocialTradingModulesSoc
|
||||
the user profile of the user of the Desktop App. A personal social
|
||||
graph is very similar to the one mantained at a Netwrok Node,
|
||||
the mainn difference is that it only includes information relevant
|
||||
to this particular user, and not for al the users in the system
|
||||
to this particular user, and not for all Superalgos users
|
||||
as in the Network Node.
|
||||
|
||||
Why we need this?
|
||||
|
||||
Because we need to minimize the calls to the network. There might be
|
||||
information that the web app needs that we already have, so there is
|
||||
no need to ask it to a network node.
|
||||
*/
|
||||
let thisObject = {
|
||||
initialize: initialize,
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
exports.newSocialTradingModulesWebAppInterface = function newSocialTradingModulesWebAppInterface() {
|
||||
/*
|
||||
This module handles the incomming messages from the Web App.
|
||||
At it's current iteration, it will jusr forward those messages
|
||||
At it's current version, it will jusr forward those messages
|
||||
to the Network Node it is connected to.
|
||||
|
||||
Later, it will try to use the personal social graph as a cache,
|
||||
so as to minimize the requests to Network Nodes.
|
||||
*/
|
||||
let thisObject = {
|
||||
messageReceived: messageReceived,
|
||||
@@ -144,6 +147,14 @@ exports.newSocialTradingModulesWebAppInterface = function newSocialTradingModule
|
||||
}
|
||||
|
||||
async function savePostAtStorage(postText, commitMessage, timestamp) {
|
||||
/*
|
||||
Each user, has a git repository that acts as his publicly accesible
|
||||
storage for posts.
|
||||
|
||||
They way we store post there is first saving the data at the local disk
|
||||
which has a clone of the remote git repository, and once done, we push
|
||||
the changes to the public git repo.
|
||||
*/
|
||||
const { createHash } = await import('crypto')
|
||||
const hash = createHash('sha256')
|
||||
let post = {
|
||||
@@ -174,6 +185,12 @@ exports.newSocialTradingModulesWebAppInterface = function newSocialTradingModule
|
||||
}
|
||||
|
||||
async function getPostText(userProfileHandle, postHash, timestamp) {
|
||||
/*
|
||||
When the Web App makes a query that includes Post text as responses,
|
||||
we need to fetch the text from the public git repositories, since
|
||||
the Network Nodes do not store that info themselves, they just
|
||||
store the structure of the social graph.
|
||||
*/
|
||||
let promise = new Promise((resolve, reject) => {
|
||||
|
||||
const fileName = postHash + ".json"
|
||||
|
||||
@@ -45,7 +45,7 @@ exports.newDesktopModulesWebSocketsInterface = function newDesktopModulesWebSock
|
||||
webApp = {
|
||||
socket: socket
|
||||
}
|
||||
console.log('Desktop Web App Connected to Web Sockets Interface ......................... Connected to port ' + global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT)
|
||||
console.log('Desktop Web App Connected to Web Sockets Interface ......................... Connected to port ' + global.env.DESKTOP_WEB_SOCKETS_INTERFACE_PORT)
|
||||
|
||||
webApp.socket.on('close', onConnectionClosed)
|
||||
webApp.socket.on('message', onMenssage)
|
||||
@@ -92,7 +92,7 @@ exports.newDesktopModulesWebSocketsInterface = function newDesktopModulesWebSock
|
||||
|
||||
function onConnectionClosed() {
|
||||
webApp = undefined
|
||||
console.log('Desktop Web App Discoonnected from Web Sockets Interface ................... Disonnected from port ' + global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT)
|
||||
console.log('Desktop Web App Discoonnected from Web Sockets Interface ................... Disonnected from port ' + global.env.DESKTOP_WEB_SOCKETS_INTERFACE_PORT)
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
exports.newDesktopModulesHttpInterface = function newDesktopModulesHttpInterface() {
|
||||
|
||||
/*
|
||||
This module represent the HTTP API of the
|
||||
Desktop App. All HTTP request are processed
|
||||
Desktop App Client. All HTTP request are processed
|
||||
by this module.
|
||||
*/
|
||||
let thisObject = {
|
||||
|
||||
@@ -3,6 +3,13 @@ exports.newBootstrap = function newBootstrap() {
|
||||
This module helps the Network Node to bootstrap, by
|
||||
loading all the services and data that needs to start
|
||||
operating.
|
||||
|
||||
In particular, a network node operates with all User Profiles loaded in
|
||||
memory maps. These profiles become part of the system in the form of User Profiles
|
||||
Plugins at the Governance System, when user submit them. This means
|
||||
that all these profiles are already at the local disk of the Network Node.
|
||||
|
||||
From there they will be loaded into memory as part of this bootstrapping process.
|
||||
*/
|
||||
let thisObject = {
|
||||
/* Framework Functions */
|
||||
|
||||
@@ -6,6 +6,10 @@ exports.newSocialTradingModulesClientInterface = function newSocialTradingModule
|
||||
|
||||
* Send an Event that happened at the Network Client to the Network.
|
||||
* Make a Query to the Network Node for info needed at the Network Client.
|
||||
|
||||
This interface is one layer above the communication protocol interface
|
||||
where actual messages are received through, like for instance the
|
||||
websockets interface.
|
||||
*/
|
||||
let thisObject = {
|
||||
messageReceived: messageReceived,
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
exports.newSocialTradingModulesPeerInterface = function newSocialTradingModulesPeerInterface() {
|
||||
|
||||
/*
|
||||
This module represents the Interface the Network Node have
|
||||
with other Network Nodes connected to it.
|
||||
|
||||
This interface is one layer above the communication protocol interface
|
||||
where actual messages are received through, like for instance the
|
||||
websockets interface.
|
||||
*/
|
||||
let thisObject = {
|
||||
initialize: initialize,
|
||||
finalize: finalize,
|
||||
@@ -17,6 +24,6 @@ exports.newSocialTradingModulesPeerInterface = function newSocialTradingModulesP
|
||||
}
|
||||
|
||||
function run() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
exports.newNetworkModulesSocialGraph = function newNetworkModulesSocialGraph() {
|
||||
/*
|
||||
This module represents the Social Graph Service that
|
||||
this deals with the Social Graph this node mantains.
|
||||
deals with the Social Graph this node mantains.
|
||||
The Social Graph is one of the services the Network Node provides.
|
||||
|
||||
This service is responsible for mantaining the whole Social Graph
|
||||
|
||||
@@ -3,6 +3,15 @@ exports.newSocialTradingModulesStorage = function newSocialTradingModulesStorage
|
||||
This module represents the Network Node Physical Storage.
|
||||
It is used to save the in-memory events and also to load
|
||||
them when the node is starting.
|
||||
|
||||
Each node has a github repository to store its social graph.
|
||||
That Github repository can be used by any other node to get the history of
|
||||
events that can build the social graph.
|
||||
|
||||
Each Network Node saves locally all unsaved events, every one minute,
|
||||
and after saving, pushes the changes to it's Github repo, which
|
||||
acts as a backup of itself, and also for other new nodes to bootstrap
|
||||
their own copy of the social graph.
|
||||
*/
|
||||
let thisObject = {
|
||||
initialize: initialize,
|
||||
|
||||
+2
-2
@@ -1,11 +1,11 @@
|
||||
/*
|
||||
The Superalgos Desktop is one of the 3 clients of the Superalgos Network:
|
||||
The Superalgos Desktop is one of the 3 clients of the Superalgos P2P Network:
|
||||
|
||||
* Superalgos Mobile
|
||||
* Superalgos Desktop
|
||||
* Superalgos Server
|
||||
|
||||
Users can unse any of these clients for their social trading activities.
|
||||
Users can use any of these clients for their social trading activities.
|
||||
|
||||
This module represents the Nodejs command that users have to start the Desktop App..
|
||||
|
||||
|
||||
Reference in new issue
Block a user