Merge remote-tracking branch 'superalgos/develop' into develop
# Conflicts: # package-lock.json # package.json
This commit is contained in:
commit
1bbe09a7d0
278 files changed
+56645
-10969
No files matched your search
@@ -27,7 +27,7 @@ jobs:
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ steps.vars.outputs.tag }}.${{ steps.date.outputs.date }}
|
||||
tag_name: ${{ steps.vars.outputs.tag }}-${{ steps.date.outputs.date }}
|
||||
release_name: Superalgos-Beta-v${{ steps.vars.outputs.tag }} Snapshot ${{ steps.date.outputs.date }}
|
||||
keep_num: 5
|
||||
keep_tags: false
|
||||
|
||||
Vendored
+2
-1
@@ -21,5 +21,6 @@
|
||||
"**/My-Data-Storage": true,
|
||||
"**/My-Log-Files": true,
|
||||
},
|
||||
"search.maintainFileSearchCache": true
|
||||
"search.maintainFileSearchCache": true,
|
||||
"editor.mouseWheelZoom": true
|
||||
}
|
||||
+1
-1
@@ -64,7 +64,7 @@ exports.newDesktopRoot = function newDesktopRoot() {
|
||||
}
|
||||
for (let i = 0; i < SA.secrets.array.length; i++) {
|
||||
let secret = SA.secrets.array[i]
|
||||
SA.secrets.map.set (secret.signingAccountChildCodeName, secret)
|
||||
SA.secrets.map.set (secret.nodeCodeName, secret)
|
||||
}
|
||||
|
||||
run()
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ WORKDIR /app
|
||||
COPY . .
|
||||
RUN apk add --no-cache --virtual .build-deps make g++ \
|
||||
&& apk add --no-cache python3 \
|
||||
&& if [ "$(uname -m)" = "x86_64" ]; then node setup noShortcuts tensorflow; else node setup noShortcuts; fi \
|
||||
&& npm ci \
|
||||
&& mkdir -p ./Platform/My-Data-Storage ./Platform/My-Log-Files ./Platform/My-Workspaces \
|
||||
&& addgroup superalgos \
|
||||
&& adduser --disabled-password --no-create-home --ingroup superalgos superalgos \
|
||||
|
||||
@@ -28,9 +28,11 @@ exports.newEnvironment = function () {
|
||||
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_SECRETS: path.join(basePath, './My-Secrets'),
|
||||
PATH_TO_FONTS: path.join(basePath, './Platform/WebServer/Fonts'),
|
||||
DESKTOP_APP_SIGNING_ACCOUNT: 'Social-Trading-Desktop-App-1',
|
||||
DESKTOP_APP_MAX_OUTGOING_PEERS: 1,
|
||||
TASK_SERVER_APP_MAX_OUTGOING_PEERS: 1,
|
||||
MOBILE_APP_SIGNING_ACCOUNT: 'Social-Trading-Mobile-App-1',
|
||||
SERVER_APP_SIGNING_ACCOUNT: 'Social-Trading-Server-App-1',
|
||||
PLATFORM_APP_SIGNING_ACCOUNT: 'Algo-Traders-Platform-1',
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
const { exec, execSync } = require("child_process");
|
||||
const os = require("os");
|
||||
const os = require("os");
|
||||
|
||||
// Get the name of the main directory
|
||||
let cwd = __dirname;
|
||||
@@ -21,7 +21,7 @@ if (os.platform() == "win32") {
|
||||
// Place Shortcuts using powershell
|
||||
for (let dir of shortcutPaths) {
|
||||
let command = `$ws = New-Object -ComObject WScript.Shell; $s = $ws.CreateShortcut("${dir}"); $S.TargetPath = "${target}"; $S.IconLocation = "${icon}"; $S.Save()`;
|
||||
|
||||
|
||||
exec( command,
|
||||
{
|
||||
shell: "powershell.exe",
|
||||
@@ -52,12 +52,12 @@ if (os.platform() == "win32") {
|
||||
let icon = path.join( __dirname,"..", "/Projects/Foundations/Icons/superalgos.png");
|
||||
|
||||
// Create .desktop shortcut file
|
||||
fs.writeFileSync( `${name}.desktop`,
|
||||
fs.writeFileSync( `${name}.desktop`,
|
||||
`[Desktop Entry]
|
||||
Type=Application
|
||||
Encoding=UTF-8
|
||||
Name=${name}
|
||||
Comment=Launch Shortcut for Superalgos
|
||||
Comment=Launch Shortcut for Superalgos
|
||||
Path=${__dirname}
|
||||
Exec=gnome-terminal -e ${__dirname}/launch-linux-mac.sh
|
||||
Terminal=true
|
||||
@@ -87,20 +87,20 @@ if (os.platform() == "win32") {
|
||||
});
|
||||
|
||||
} else {
|
||||
console.log( "Automatic shortcut creation is not yet supported on your flavor of linux. If you would like to see this feature add, message @harrellbm on telegram or discord to ask how you can help!")
|
||||
console.log( "Automatic shortcut creation is not yet supported on your flavor of linux. If you would like to see this feature add, message @harrellbm on telegram or discord to ask how you can help!")
|
||||
}
|
||||
|
||||
|
||||
// Mac Shortcuts
|
||||
} else if (os.platform() == "darwin") {
|
||||
const icon = path.join( __dirname,"/superalgos.ico");
|
||||
const createShortcutCommand = `chmod +x ${name}.command & cp ${name}.command ~/Desktop/${name}.command`
|
||||
const installFileIconcommand = `npm install fileicon`;
|
||||
const installFileIconcommand = `npm install -g fileicon`;
|
||||
const changeIconCommand = `./node_modules/fileicon/bin/fileicon set ~/Desktop/${name}.command ./Launch-Scripts/superalgos.ico`
|
||||
const unInstallFileIconcommand = `npm uninstall fileicon`;
|
||||
|
||||
const unInstallFileIconcommand = `npm uninstall -g fileicon`;
|
||||
|
||||
try {
|
||||
// Create .desktop shortcut file
|
||||
fs.writeFileSync( `${name}.command`,
|
||||
fs.writeFileSync( `${name}.command`,
|
||||
`#!/bin/sh
|
||||
cd ${__dirname}
|
||||
cd ..
|
||||
@@ -113,14 +113,14 @@ if (os.platform() == "win32") {
|
||||
|
||||
// Remove temporary .command file
|
||||
fs.unlinkSync( `${name}.command` )
|
||||
|
||||
//Install fileicon utility
|
||||
|
||||
//Install fileicon utility
|
||||
execSync(installFileIconcommand, {stdio: 'inherit', timeout: 30000});
|
||||
|
||||
//change Icon
|
||||
execSync(changeIconCommand, {stdio: 'inherit', timeout: 30000});
|
||||
|
||||
//Un-Install fileicon utility
|
||||
//Un-Install fileicon utility
|
||||
execSync(unInstallFileIconcommand, {stdio: 'inherit', timeout: 30000});
|
||||
} catch (error) {
|
||||
console.log('');
|
||||
@@ -135,4 +135,4 @@ if (os.platform() == "win32") {
|
||||
// Misc Operating System
|
||||
} else {
|
||||
console.log("Automatic shortcut creation is not currently supported on your operating system. If you would like to see your operating system added please reachout on discord or telegram to let the devs know.")
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -62,7 +62,7 @@ exports.newNetworkRoot = function newNetworkRoot() {
|
||||
}
|
||||
for (let i = 0; i < SA.secrets.array.length; i++) {
|
||||
let secret = SA.secrets.array[i]
|
||||
SA.secrets.map.set(secret.signingAccountChildCodeName, secret)
|
||||
SA.secrets.map.set(secret.nodeCodeName, secret)
|
||||
}
|
||||
|
||||
NT.app = require('./Network/NetwokNode.js').newNetworkNode()
|
||||
|
||||
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Launch Program",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"program": "${workspaceFolder}\\..\\PlatformRoot.js"
|
||||
}
|
||||
]
|
||||
}
|
||||
Vendored
+26
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"files.exclude": {
|
||||
"**/Data-Storage": true,
|
||||
"**/Log-Files": true,
|
||||
"**/node_modules": true,
|
||||
"**/My-Social-Trading-Data": true,
|
||||
"**/My-Network-Nodes-Data": true,
|
||||
"**/My-Workspaces": true,
|
||||
"**/My-Secrets": true,
|
||||
"**/My-Data-Storage": true,
|
||||
"**/My-Log-Files": true,
|
||||
},
|
||||
"search.exclude": {
|
||||
"**/Data-Storage": true,
|
||||
"**/Log-Files": true,
|
||||
"**/node_modules": true,
|
||||
"**/My-Social-Trading-Data": true,
|
||||
"**/My-Network-Nodes-Data": true,
|
||||
"**/My-Workspaces": true,
|
||||
"**/My-Secrets": true,
|
||||
"**/My-Data-Storage": true,
|
||||
"**/My-Log-Files": true,
|
||||
},
|
||||
"search.maintainFileSearchCache": true,
|
||||
"editor.mouseWheelZoom": true
|
||||
}
|
||||
@@ -4,6 +4,7 @@ exports.newGithubServer = function newGithubServer() {
|
||||
getGithubStars: getGithubStars,
|
||||
getGithubWatchers: getGithubWatchers,
|
||||
getGithubForks: getGithubForks,
|
||||
createGithubFork: createGithubFork,
|
||||
mergePullRequests: mergePullRequests,
|
||||
initialize: initialize,
|
||||
finalize: finalize,
|
||||
@@ -162,6 +163,46 @@ exports.newGithubServer = function newGithubServer() {
|
||||
}
|
||||
}
|
||||
|
||||
async function createGithubFork(token) {
|
||||
try {
|
||||
token = unescape(token)
|
||||
|
||||
await doGithub()
|
||||
|
||||
async function doGithub() {
|
||||
try {
|
||||
const { Octokit } = SA.nodeModules.octokit
|
||||
const octokit = new Octokit({
|
||||
auth: token,
|
||||
userAgent: 'Superalgos ' + SA.version
|
||||
})
|
||||
|
||||
await octokit.repos.createFork({
|
||||
owner: 'Superalgos',
|
||||
repo: 'Superalgos'
|
||||
})
|
||||
} catch (err) {
|
||||
if (err === undefined) { return }
|
||||
console.log('[ERROR] Github Server -> createGithubFork -> doGithub -> err.stack = ' + err.stack)
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('[ERROR] Github Server -> createGithubFork -> Method call produced an error.')
|
||||
console.log('[ERROR] Github Server -> createGithubFork -> err.stack = ' + err.stack)
|
||||
console.log('[ERROR] Github Server -> createGithubFork -> repository = ' + repository)
|
||||
console.log('[ERROR] Github Server -> createGithubFork -> username = ' + username)
|
||||
console.log('[ERROR] Github Server -> createGithubFork -> token starts with = ' + token.substring(0, 10) + '...')
|
||||
console.log('[ERROR] Github Server -> createGithubFork -> token ends with = ' + '...' + token.substring(token.length - 10))
|
||||
|
||||
let error = {
|
||||
result: 'Fail Because',
|
||||
message: err.message,
|
||||
stack: err.stack
|
||||
}
|
||||
return error
|
||||
}
|
||||
}
|
||||
|
||||
async function mergeGithubPullRequests(commitMessage, username, token) {
|
||||
try {
|
||||
commitMessage = unescape(commitMessage)
|
||||
@@ -323,6 +364,11 @@ exports.newGithubServer = function newGithubServer() {
|
||||
if (await validateUserProfileBlockchainAccountDoesNotBelongtoAnotherUserProfile() === false) { continue }
|
||||
if (await validateUserProfileSigningAccountsDoesNotBelongtoAnotherUserProfile() === false) { continue }
|
||||
|
||||
/*
|
||||
TODO: We need to check before merging a User Profile that none of id of the node of the profile hierearchy exists at any other
|
||||
User Profile already at the repository, to avoid atacts of users highjacking references of other user profiles.
|
||||
*/
|
||||
|
||||
if (await mergePullRequest() === false) {
|
||||
console.log('[WARN] Github Server -> mergeGithubPullRequests -> Merge Failed -> Pull Request "' + pullRequest.title + '" not merged because Github could not merge it. -> mergeResponse.message = ' + mergeResponse.data.message)
|
||||
} else {
|
||||
|
||||
+200
-136
@@ -139,7 +139,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
return
|
||||
}
|
||||
default: {
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify({error: 'Method ' + params.method + ' is invalid.'}), httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify({ error: 'Method ' + params.method + ' is invalid.' }), httpResponse)
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
@@ -325,6 +325,42 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
}
|
||||
}
|
||||
break
|
||||
case 'Secrets': {
|
||||
switch (requestPath[2]) { // switch by command
|
||||
case 'Save-Secrets-File': {
|
||||
SA.projects.foundations.utilities.httpRequests.getRequestBody(httpRequest, httpResponse, processRequest)
|
||||
|
||||
async function processRequest(body) {
|
||||
try {
|
||||
|
||||
let filePath = global.env.PATH_TO_SECRETS + '/'
|
||||
let fileName = "Secrets.json"
|
||||
|
||||
createNewDir(filePath)
|
||||
SA.nodeModules.fs.writeFileSync(filePath + '/' + fileName, body)
|
||||
|
||||
console.log('[SUCCESS] ' + filePath + '/' + fileName + ' created.')
|
||||
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse)
|
||||
|
||||
} catch (err) {
|
||||
console.log('[ERROR] httpInterface -> Secrets -> Save-Secrets-File -> Method call produced an error.')
|
||||
console.log('[ERROR] httpInterface -> Secrets -> Save-Secrets-File -> err.stack = ' + err.stack)
|
||||
console.log('[ERROR] httpInterface -> Secrets -> Save-Secrets-File -> Params Received = ' + body)
|
||||
|
||||
let error = {
|
||||
result: 'Fail Because',
|
||||
message: err.message,
|
||||
stack: err.stack
|
||||
}
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(error), httpResponse)
|
||||
}
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
break
|
||||
case 'Docs': {
|
||||
switch (requestPath[2]) { // switch by command
|
||||
case 'Save-Node-Schema': {
|
||||
@@ -633,16 +669,6 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function createNewDir(path) {
|
||||
try {
|
||||
fs.mkdirSync(path, {recursive: true})
|
||||
} catch (err) {
|
||||
if (err.message.indexOf('file already exists') < 0) {
|
||||
throw (err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return noErrorsDuringSaving
|
||||
@@ -697,7 +723,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
contribute()
|
||||
|
||||
async function contribute() {
|
||||
const {lookpath} = SA.nodeModules.lookpath
|
||||
const { lookpath } = SA.nodeModules.lookpath
|
||||
const gitpath = await lookpath('git')
|
||||
if (gitpath === undefined) {
|
||||
console.log('[ERROR] `git` not installed.')
|
||||
@@ -768,7 +794,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
|
||||
async function doGithub() {
|
||||
|
||||
const {Octokit} = SA.nodeModules.octokit
|
||||
const { Octokit } = SA.nodeModules.octokit
|
||||
|
||||
const octokit = new Octokit({
|
||||
auth: token,
|
||||
@@ -832,7 +858,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
update()
|
||||
|
||||
async function update() {
|
||||
const {lookpath} = SA.nodeModules.lookpath
|
||||
const { lookpath } = SA.nodeModules.lookpath
|
||||
const gitpath = await lookpath('git');
|
||||
if (gitpath === undefined) {
|
||||
console.log('[ERROR] `git` not installed.')
|
||||
@@ -873,11 +899,11 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
let message
|
||||
try {
|
||||
message = await git.pull('https://github.com/Superalgos/Superalgos', currentBranch)
|
||||
return {message: message}
|
||||
return { message: message }
|
||||
} catch (err) {
|
||||
console.log('[ERROR] Error updating ' + currentBranch)
|
||||
console.log(err.stack)
|
||||
return {error: err}
|
||||
return { error: err }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -903,7 +929,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
checkout()
|
||||
|
||||
async function checkout() {
|
||||
const {lookpath} = SA.nodeModules.lookpath
|
||||
const { lookpath } = SA.nodeModules.lookpath
|
||||
const gitpath = await lookpath('git');
|
||||
if (gitpath === undefined) {
|
||||
console.log('[ERROR] `git` not installed.')
|
||||
@@ -1001,7 +1027,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
branch()
|
||||
|
||||
async function branch() {
|
||||
const {lookpath} = SA.nodeModules.lookpath
|
||||
const { lookpath } = SA.nodeModules.lookpath
|
||||
const gitpath = await lookpath('git');
|
||||
if (gitpath === undefined) {
|
||||
console.log('[ERROR] `git` not installed.')
|
||||
@@ -1135,7 +1161,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
try {
|
||||
console.log('fixSchemas...' + allAppSchemas.length)
|
||||
let projects = SA.projects.foundations.utilities.filesAndDirectories.getDirectories(global.env.PATH_TO_PROJECTS)
|
||||
const fs = SA.nodeModules.fs
|
||||
//const fs = SA.nodeModules.fs
|
||||
let needFixing = 0
|
||||
for (let i = 0; i < allAppSchemas.length; i++) {
|
||||
let schemaDocument = allAppSchemas[i]
|
||||
@@ -1183,13 +1209,13 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
}
|
||||
}
|
||||
|
||||
if (wasUpdated === true) {
|
||||
let fileContent = JSON.stringify(schemaDocument, undefined, 4)
|
||||
let filePath = allAppSchemasFilePaths[i]
|
||||
//if (wasUpdated === true) {
|
||||
//let fileContent = JSON.stringify(schemaDocument, undefined, 4)
|
||||
//let filePath = allAppSchemasFilePaths[i]
|
||||
//console.log('Saving File at ' + filePath)
|
||||
//console.log(fileContent)
|
||||
//fs.writeFileSync(filePath, fileContent)
|
||||
}
|
||||
//}
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err.stack)
|
||||
@@ -1286,6 +1312,15 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(serverResponse), httpResponse)
|
||||
return
|
||||
}
|
||||
case 'createGithubFork': {
|
||||
|
||||
let serverResponse = await PL.servers.GITHUB_SERVER.createGithubFork(
|
||||
params.token
|
||||
)
|
||||
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(serverResponse), httpResponse)
|
||||
return
|
||||
}
|
||||
case 'mergePullRequests': {
|
||||
|
||||
let serverResponse = await PL.servers.GITHUB_SERVER.mergePullRequests(
|
||||
@@ -1318,8 +1353,21 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
|
||||
let error
|
||||
|
||||
await checkFork()
|
||||
await updateUser()
|
||||
|
||||
async function checkFork() {
|
||||
let serverResponse = await PL.servers.GITHUB_SERVER.createGithubFork(
|
||||
params.token
|
||||
)
|
||||
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify(serverResponse), httpResponse)
|
||||
|
||||
if(error != undefined) {
|
||||
console.log('[ERROR] httpInterface -> Gov -> createFork -> You already have a fork. Good for you!')
|
||||
}
|
||||
}
|
||||
|
||||
async function updateUser() {
|
||||
|
||||
await doGithubUser()
|
||||
@@ -1343,7 +1391,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
|
||||
async function doGithubUser() {
|
||||
|
||||
const {Octokit} = SA.nodeModules.octokit
|
||||
const { Octokit } = SA.nodeModules.octokit
|
||||
|
||||
const octokit = new Octokit({
|
||||
auth: token,
|
||||
@@ -1353,8 +1401,14 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
const repo = 'Superalgos'
|
||||
const owner = 'Superalgos'
|
||||
const head = username + ':' + contributionsBranch
|
||||
const base = currentBranch
|
||||
const title = 'Contribution: ' + mess
|
||||
//const base = currentBranch
|
||||
let base = undefined
|
||||
if (process.env.SA_MODE === 'gitDisable') {
|
||||
base = 'develop'
|
||||
} else {
|
||||
base = currentBranch
|
||||
}
|
||||
const title = 'Governance: ' + mess
|
||||
const path = 'Projects/Governance/Plugins/User-Profiles/' + username + '.json';
|
||||
|
||||
const sha = await getSHA(path);
|
||||
@@ -1429,11 +1483,11 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
|
||||
async function getSHA(path) {
|
||||
let sha = ''
|
||||
const {graphql} = SA.nodeModules.graphql
|
||||
const { graphql } = SA.nodeModules.graphql
|
||||
|
||||
try {
|
||||
|
||||
const {repository} = await graphql(
|
||||
const { repository } = await graphql(
|
||||
'{ ' +
|
||||
' repository(name: "SuperAlgos", owner: "' + username + '") {' +
|
||||
' object(expression: "develop:' + path + '") {' +
|
||||
@@ -1518,7 +1572,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
return
|
||||
}
|
||||
default: {
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify({error: 'Method ' + params.method + ' is invalid.'}), httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(JSON.stringify({ error: 'Method ' + params.method + ' is invalid.' }), httpResponse)
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
@@ -1549,132 +1603,132 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
}
|
||||
break
|
||||
case 'Images': // This means the Images folder.
|
||||
{
|
||||
let path = global.env.PATH_TO_PLATFORM + '/WebServer/Images/' + requestPath[2]
|
||||
{
|
||||
let path = global.env.PATH_TO_PLATFORM + '/WebServer/Images/' + requestPath[2]
|
||||
|
||||
if (requestPath[3] !== undefined) {
|
||||
path = path + '/' + requestPath[3]
|
||||
if (requestPath[3] !== undefined) {
|
||||
path = path + '/' + requestPath[3]
|
||||
}
|
||||
|
||||
if (requestPath[4] !== undefined) {
|
||||
path = path + '/' + requestPath[4]
|
||||
}
|
||||
|
||||
if (requestPath[5] !== undefined) {
|
||||
path = path + '/' + requestPath[5]
|
||||
}
|
||||
|
||||
path = unescape(path)
|
||||
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithImage(path, httpResponse)
|
||||
}
|
||||
|
||||
if (requestPath[4] !== undefined) {
|
||||
path = path + '/' + requestPath[4]
|
||||
}
|
||||
|
||||
if (requestPath[5] !== undefined) {
|
||||
path = path + '/' + requestPath[5]
|
||||
}
|
||||
|
||||
path = unescape(path)
|
||||
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithImage(path, httpResponse)
|
||||
}
|
||||
break
|
||||
case 'Icons': // This means the Icons folder under Projects.
|
||||
{
|
||||
let path = global.env.PATH_TO_PROJECTS + '/' + requestPath[2] + '/Icons'
|
||||
{
|
||||
let path = global.env.PATH_TO_PROJECTS + '/' + requestPath[2] + '/Icons'
|
||||
|
||||
if (requestPath[3] !== undefined) {
|
||||
path = path + '/' + requestPath[3]
|
||||
if (requestPath[3] !== undefined) {
|
||||
path = path + '/' + requestPath[3]
|
||||
}
|
||||
|
||||
if (requestPath[4] !== undefined) {
|
||||
path = path + '/' + requestPath[4]
|
||||
}
|
||||
|
||||
if (requestPath[5] !== undefined) {
|
||||
path = path + '/' + requestPath[5]
|
||||
}
|
||||
|
||||
path = unescape(path)
|
||||
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithImage(path, httpResponse)
|
||||
}
|
||||
|
||||
if (requestPath[4] !== undefined) {
|
||||
path = path + '/' + requestPath[4]
|
||||
}
|
||||
|
||||
if (requestPath[5] !== undefined) {
|
||||
path = path + '/' + requestPath[5]
|
||||
}
|
||||
|
||||
path = unescape(path)
|
||||
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithImage(path, httpResponse)
|
||||
}
|
||||
break
|
||||
case 'GIFs': // This means the GIFs folder under Projects.
|
||||
{
|
||||
let path = global.env.PATH_TO_PROJECTS + '/' + requestPath[2] + '/GIFs'
|
||||
{
|
||||
let path = global.env.PATH_TO_PROJECTS + '/' + requestPath[2] + '/GIFs'
|
||||
|
||||
if (requestPath[3] !== undefined) {
|
||||
path = path + '/' + requestPath[3]
|
||||
if (requestPath[3] !== undefined) {
|
||||
path = path + '/' + requestPath[3]
|
||||
}
|
||||
|
||||
if (requestPath[4] !== undefined) {
|
||||
path = path + '/' + requestPath[4]
|
||||
}
|
||||
|
||||
if (requestPath[5] !== undefined) {
|
||||
path = path + '/' + requestPath[5]
|
||||
}
|
||||
|
||||
path = unescape(path)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithImage(path, httpResponse)
|
||||
}
|
||||
|
||||
if (requestPath[4] !== undefined) {
|
||||
path = path + '/' + requestPath[4]
|
||||
}
|
||||
|
||||
if (requestPath[5] !== undefined) {
|
||||
path = path + '/' + requestPath[5]
|
||||
}
|
||||
|
||||
path = unescape(path)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithImage(path, httpResponse)
|
||||
}
|
||||
break
|
||||
case 'PNGs': // This means the PNGs folder under Projects.
|
||||
{
|
||||
let path = global.env.PATH_TO_PROJECTS + '/' + requestPath[2] + '/PNGs'
|
||||
{
|
||||
let path = global.env.PATH_TO_PROJECTS + '/' + requestPath[2] + '/PNGs'
|
||||
|
||||
if (requestPath[3] !== undefined) {
|
||||
path = path + '/' + requestPath[3]
|
||||
if (requestPath[3] !== undefined) {
|
||||
path = path + '/' + requestPath[3]
|
||||
}
|
||||
|
||||
if (requestPath[4] !== undefined) {
|
||||
path = path + '/' + requestPath[4]
|
||||
}
|
||||
|
||||
if (requestPath[5] !== undefined) {
|
||||
path = path + '/' + requestPath[5]
|
||||
}
|
||||
|
||||
path = unescape(path)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithImage(path, httpResponse)
|
||||
}
|
||||
|
||||
if (requestPath[4] !== undefined) {
|
||||
path = path + '/' + requestPath[4]
|
||||
}
|
||||
|
||||
if (requestPath[5] !== undefined) {
|
||||
path = path + '/' + requestPath[5]
|
||||
}
|
||||
|
||||
path = unescape(path)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithImage(path, httpResponse)
|
||||
}
|
||||
break
|
||||
case 'WebServer': // This means the WebServer folder.
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/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.
|
||||
{
|
||||
// This allows to have sub-folders in externalScripts
|
||||
let fullPath = ''
|
||||
for (let i = 2; i < requestPath.length; i++) {
|
||||
fullPath += requestPath[i]
|
||||
if (i !== requestPath.length - 1) {
|
||||
fullPath += '/'
|
||||
{
|
||||
// This allows to have sub-folders in externalScripts
|
||||
let fullPath = ''
|
||||
for (let i = 2; i < requestPath.length; i++) {
|
||||
fullPath += requestPath[i]
|
||||
if (i !== requestPath.length - 1) {
|
||||
fullPath += '/'
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sometimes libs will call fonts/images etc. by themselves thus we should have a filter for file type to respond with the correct content and headers, but from the externalScripts folder
|
||||
* This code should be improved when needed with specific file types
|
||||
*/
|
||||
|
||||
let requestedFileExtension = requestPath[requestPath.length - 1].split('.').pop()
|
||||
switch (requestedFileExtension) {
|
||||
case 'otf':
|
||||
case 'ttf':
|
||||
case 'eot':
|
||||
case 'woff':
|
||||
case 'woff2':
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFont(global.env.PATH_TO_PLATFORM + '/WebServer/externalScripts/' + fullPath, httpResponse)
|
||||
break
|
||||
default:
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/externalScripts/' + fullPath, httpResponse)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Sometimes libs will call fonts/images etc. by themselves thus we should have a filter for file type to respond with the correct content and headers, but from the externalScripts folder
|
||||
* This code should be improved when needed with specific file types
|
||||
*/
|
||||
|
||||
let requestedFileExtension = requestPath[requestPath.length - 1].split('.').pop()
|
||||
switch (requestedFileExtension) {
|
||||
case 'otf':
|
||||
case 'ttf':
|
||||
case 'eot':
|
||||
case 'woff':
|
||||
case 'woff2':
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFont(global.env.PATH_TO_PLATFORM + '/WebServer/externalScripts/' + fullPath, httpResponse)
|
||||
break
|
||||
default:
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/externalScripts/' + fullPath, httpResponse)
|
||||
}
|
||||
|
||||
}
|
||||
break
|
||||
case 'Plotters': // This means the plotter folder, not to be confused with the Plotters script!
|
||||
{
|
||||
let project = requestPath[2]
|
||||
let dataMine = requestPath[3]
|
||||
let codeName = requestPath[4]
|
||||
let moduleName = requestPath[5]
|
||||
let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/' + 'Bots-Plotters-Code' + '/' + dataMine + '/plotters/' + codeName + '/' + moduleName
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(filePath, httpResponse)
|
||||
}
|
||||
{
|
||||
let project = requestPath[2]
|
||||
let dataMine = requestPath[3]
|
||||
let codeName = requestPath[4]
|
||||
let moduleName = requestPath[5]
|
||||
let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/' + 'Bots-Plotters-Code' + '/' + dataMine + '/plotters/' + codeName + '/' + moduleName
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(filePath, httpResponse)
|
||||
}
|
||||
break
|
||||
case 'ChartLayers': {
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/UI/' + endpointOrFile + '/' + requestPath[2], httpResponse)
|
||||
@@ -1872,8 +1926,8 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
fileName
|
||||
)
|
||||
.then(response => {
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(response, httpResponse)
|
||||
}
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithContent(response, httpResponse)
|
||||
}
|
||||
)
|
||||
.catch(err => {
|
||||
let error = {
|
||||
@@ -2053,7 +2107,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
|
||||
/* Create Dir if it does not exist */
|
||||
if (!fs.existsSync(dir)) {
|
||||
fs.mkdirSync(dir, {recursive: true});
|
||||
fs.mkdirSync(dir, { recursive: true });
|
||||
}
|
||||
|
||||
fs.writeFile(filePath, fileContent, onFileWritten)
|
||||
@@ -2197,4 +2251,14 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function createNewDir(path) {
|
||||
try {
|
||||
SA.nodeModules.fs.mkdirSync(path, { recursive: true })
|
||||
} catch (err) {
|
||||
if (err.message.indexOf('file already exists') < 0) {
|
||||
throw (err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 9.7 KiB |
@@ -42,6 +42,15 @@
|
||||
try {
|
||||
drawSplashText()
|
||||
loadSuperalgos()
|
||||
window.api.receive('fromMaster', (data) => {
|
||||
if(data.newUser){
|
||||
UI.projects.foundations.spaces.designSpace.workspace.replaceWorkspaceByLoadingOne(data.newUser[0], data.newUser[1])
|
||||
}else if(data.submit){
|
||||
UI.projects.governance.spaces.reportsSpace.commandInterface.command = data.submit[0]
|
||||
UI.projects.governance.spaces.reportsSpace.commandInterface.detectCommands()
|
||||
//const element = document.getElementsByClassName("governance-filter-input")[0]
|
||||
}
|
||||
})
|
||||
} catch (err) {
|
||||
console.log("[ERROR] UI can not be started. Please check that WebServer is running.", err);
|
||||
}
|
||||
@@ -66,6 +75,13 @@
|
||||
|
||||
function drawSplashText() {
|
||||
const splashTextArray = [
|
||||
{
|
||||
"splashTextLine1Html": '<span class="credits-red">Every month, 10M SA tokens, with a market value of more than 500,000 USD are distributed between everyone contributing to the project during that month. </span>'
|
||||
,
|
||||
"splashTextLine2Html": 'In October 2021 we counted around 50 contributors, with an average mining reward of 10,000 USD for each one. Contributing to Superalgos now is like mining Bitcoin in 2010 where there were no more than 50 people mining it. Ask the community moderators how to join a team an participate in the next distribution.'
|
||||
,
|
||||
"splashTextLine3Html": ''
|
||||
} /*,
|
||||
{
|
||||
"splashTextLine1Html": '<span class="credits-red">Superalgos is open source, forever free for everyone, and is constantly improving thanks to the involvement of contributors!</span>'
|
||||
,
|
||||
@@ -107,7 +123,7 @@
|
||||
"splashTextLine2Html": 'Look around, find something that is missing and start coding! If you need help, ask in the chat groups to find a mentor!'
|
||||
,
|
||||
"splashTextLine3Html": 'Follow our motto: Just code it!'
|
||||
}
|
||||
} */
|
||||
]
|
||||
|
||||
let arrayIndex = Math.trunc(Math.random() * splashTextArray.length)
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -17,7 +17,7 @@
|
||||
"situations": [
|
||||
{
|
||||
"type": "Situation",
|
||||
"name": "EMA crossover",
|
||||
"name": "Crossover",
|
||||
"project": "Foundations",
|
||||
"conditions": [
|
||||
{
|
||||
@@ -27,17 +27,17 @@
|
||||
"javascriptCode": {
|
||||
"type": "Javascript Code",
|
||||
"name": "New Javascript Code",
|
||||
"code": "chart.at01hs.EMA.previous.ema1 < chart.at01hs.EMA.previous.ema2",
|
||||
"code": "chart.at01hs.EMA.ema1 > chart.at01hs.EMA.ema2 && chart.at01hs.EMA.previous.ema1 < chart.at01hs.EMA.previous.ema2",
|
||||
"project": "Foundations",
|
||||
"id": "c4e9205d-5729-4c06-92ab-6c48ca195f9b",
|
||||
"id": "eac8aa9b-2ead-4376-8ea2-aaf1a276c568",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 29767.05237465183,
|
||||
"y": 30529.07127139445
|
||||
"x": 30145.01097090622,
|
||||
"y": 29906.8528149571
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 30066.6412350782,
|
||||
"y": 30513.370484521565
|
||||
"x": 30357.143005262184,
|
||||
"y": 30118.984849313063
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
@@ -52,71 +52,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "3a2d3669-04fb-43dc-9f4f-1fc14643dec3",
|
||||
"id": "9d9ff49e-cb3b-4f2c-a562-3d33beb8fe32",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30066.6412350782,
|
||||
"y": 30513.370484521565
|
||||
"x": 30357.143005262184,
|
||||
"y": 30118.984849313063
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 30366.230095504572,
|
||||
"y": 30497.669697648682
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Condition",
|
||||
"name": "Crossover",
|
||||
"code": "chart.at24hs.Fisher.begin > chart.at24hs.Fisher.begin",
|
||||
"project": "Foundations",
|
||||
"javascriptCode": {
|
||||
"type": "Javascript Code",
|
||||
"name": "New Javascript Code",
|
||||
"code": "chart.at01hs.EMA.ema1 > chart.at01hs.EMA.ema2",
|
||||
"project": "Foundations",
|
||||
"id": "b7f0dd1f-4d65-417a-b815-0fe0b138229e",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30039.446674495557,
|
||||
"y": 29994.46735688143
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 30202.838385000065,
|
||||
"y": 30246.068527265055
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "8dbc8bd5-b3a9-48b5-945b-881bf38b216b",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30202.838385000065,
|
||||
"y": 30246.068527265055
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 30366.230095504572,
|
||||
"y": 30497.669697648682
|
||||
"x": 30569.275039618147,
|
||||
"y": 30331.116883669027
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
@@ -132,7 +76,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "66bd082e-2824-46c5-9791-d650ca28276d",
|
||||
"id": "567cfdbe-b067-4990-9611-dbfba9b9a793",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30569.275039618147,
|
||||
@@ -145,7 +89,7 @@
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": true,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 2,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
@@ -157,7 +101,7 @@
|
||||
}
|
||||
],
|
||||
"announcements": [],
|
||||
"id": "e6cb0b5d-da60-4cf1-9d0a-cce48aacdfdb",
|
||||
"id": "fc232171-151c-471b-a0b8-6ad2f7cb6adf",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30781.40707397411,
|
||||
@@ -186,7 +130,7 @@
|
||||
"situations": [
|
||||
{
|
||||
"type": "Situation",
|
||||
"name": "EMA Crossunder",
|
||||
"name": "Crossunder",
|
||||
"project": "Foundations",
|
||||
"conditions": [
|
||||
{
|
||||
@@ -195,17 +139,17 @@
|
||||
"project": "Foundations",
|
||||
"javascriptCode": {
|
||||
"type": "Javascript Code",
|
||||
"code": "chart.at01hs.EMA.ema1 < chart.at01hs.EMA.ema2",
|
||||
"code": "chart.at01hs.EMA.ema1 < chart.at01hs.EMA.ema2 && chart.at01hs.EMA.previous.ema1 > chart.at01hs.EMA.previous.ema2",
|
||||
"project": "Foundations",
|
||||
"id": "b4730ec2-fbc3-4b6c-b36e-71f1d4a5816e",
|
||||
"id": "f47f7cc3-395f-4a45-9e6e-21f02a522e3a",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30128.535252952344,
|
||||
"y": 30074.683073224664
|
||||
"x": 30993.539108330075,
|
||||
"y": 29555.380952380954
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 30421.979533172485,
|
||||
"y": 30137.05658046999
|
||||
"x": 30993.539108330075,
|
||||
"y": 29855.380952380954
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
@@ -220,70 +164,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "7dde214e-8ecf-4541-bdab-9768c8236f65",
|
||||
"id": "13378aa9-2623-4f2b-a300-158a35bf46d6",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30421.979533172485,
|
||||
"y": 30137.05658046999
|
||||
"x": 30993.539108330075,
|
||||
"y": 29855.380952380954
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 30715.423813392626,
|
||||
"y": 30199.43008771532
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Condition",
|
||||
"name": "New Condition",
|
||||
"project": "Foundations",
|
||||
"javascriptCode": {
|
||||
"type": "Javascript Code",
|
||||
"name": "New Javascript Code",
|
||||
"code": "chart.at01hs.EMA.previous.ema1 > chart.at01hs.EMA.previous.ema2",
|
||||
"project": "Foundations",
|
||||
"id": "82a1f178-10f4-4d9f-a41c-56f6e0cab768",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31116.902177207943,
|
||||
"y": 29753.543192428882
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 30916.162995300285,
|
||||
"y": 29976.4866400721
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
},
|
||||
"uiObject": {
|
||||
"isRunning": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "f5c13131-c464-4510-9648-38be2d1905a5",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30916.162995300285,
|
||||
"y": 29976.4866400721
|
||||
},
|
||||
"targetPosition": {
|
||||
"x": 30715.423813392626,
|
||||
"y": 30199.43008771532
|
||||
"x": 30993.539108330075,
|
||||
"y": 30155.380952380954
|
||||
},
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
@@ -299,7 +188,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "7f57d1a7-6c2f-4483-a3cc-2c04cb187cf3",
|
||||
"id": "2f91ed82-f85d-4b30-b255-465382b39a6f",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30993.539108330075,
|
||||
@@ -312,7 +201,7 @@
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": true,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 3,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
@@ -324,7 +213,7 @@
|
||||
}
|
||||
],
|
||||
"announcements": [],
|
||||
"id": "b2e64101-d51b-4c7b-9cd7-11df40ec6169",
|
||||
"id": "0e26f382-b651-4f73-98a3-90e154012560",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30993.539108330075,
|
||||
@@ -365,7 +254,7 @@
|
||||
"name": "New Javascript Code",
|
||||
"code": "true",
|
||||
"project": "Foundations",
|
||||
"id": "108efe9b-0e78-4650-95fa-5f47ea4566c3",
|
||||
"id": "b88c81e8-4f12-46bc-9d3f-2be795784a46",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31445.622609705046,
|
||||
@@ -388,7 +277,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "5c513fb3-8787-41ba-87e9-09e2611b26ae",
|
||||
"id": "8a94a57d-7752-4eb7-ac6c-587af40cef77",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31309.425459783182,
|
||||
@@ -412,7 +301,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "7be78fed-0640-4023-910b-b1404f16bd3a",
|
||||
"id": "ef049a10-10d0-4cd0-8174-b114c669860b",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31173.22830986132,
|
||||
@@ -437,7 +326,7 @@
|
||||
}
|
||||
],
|
||||
"announcements": [],
|
||||
"id": "09472203-67ee-4eba-ac2f-1f3cb48226df",
|
||||
"id": "6f7e0b1f-883b-4e9f-a997-4e531da4eb41",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31205.67114268604,
|
||||
@@ -461,7 +350,7 @@
|
||||
}
|
||||
},
|
||||
"announcements": [],
|
||||
"id": "e4f2b5cb-2cb8-4619-9de3-c066aaa1a214",
|
||||
"id": "829fe6d9-f8e8-44a7-8175-a884132e7497",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30993.539108330075,
|
||||
@@ -502,7 +391,7 @@
|
||||
"name": "Entry Target Rate",
|
||||
"code": "tradingEngine.tradingCurrent.tradingEpisode.candle.close.value",
|
||||
"project": "Foundations",
|
||||
"id": "f8736b16-edde-45a2-b565-49673a3d524e",
|
||||
"id": "3c57e8dc-6924-48b4-8275-3345e2535577",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31853.346729465407,
|
||||
@@ -525,7 +414,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "db001dc4-af5f-4059-a17c-0ce7c5583f78",
|
||||
"id": "934af723-db70-4eb3-bc63-1439c7669173",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31703.346729465407,
|
||||
@@ -557,7 +446,7 @@
|
||||
"name": "Target Size in Quoted Asset",
|
||||
"code": "tradingEngine.tradingCurrent.tradingEpisode.episodeQuotedAsset.balance.value\n",
|
||||
"project": "Foundations",
|
||||
"id": "c45c5654-232e-4ebe-a0eb-8103901a3fb6",
|
||||
"id": "801ccf6e-6b49-4433-8f3d-f6217c6caab7",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 32153.346729465407,
|
||||
@@ -580,7 +469,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "726c5b24-7420-4496-84fb-9ada5054e1b3",
|
||||
"id": "40607c04-0955-4e90-9367-d4a26806833a",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31853.346729465407,
|
||||
@@ -603,7 +492,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "1350ac22-df5a-422e-bce3-771e15a3c75f",
|
||||
"id": "298964cc-3b37-4019-b576-6f9a96b1dacd",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31553.346729465407,
|
||||
@@ -640,7 +529,7 @@
|
||||
{
|
||||
"type": "Market Buy Order",
|
||||
"name": "New Market Buy Order",
|
||||
"config": "{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}",
|
||||
"config": "{\n\"percentageOfAlgorithmSize\": 20, \n\"spawnMultipleOrders\": true \n}",
|
||||
"project": "Foundations",
|
||||
"createOrderEvent": {
|
||||
"type": "Create Order Event",
|
||||
@@ -659,9 +548,9 @@
|
||||
"javascriptCode": {
|
||||
"type": "Javascript Code",
|
||||
"name": "New Javascript Code",
|
||||
"code": "chart.at01hs.WEMAsignal.signal > 0.5 && chart.at01hs.WEMAsignal.signal >= chart.at01hs.WEMAsignal.previous.signal",
|
||||
"code": "chart.at01hs.WEMAsignal.signal >= 0.5 ",
|
||||
"project": "Foundations",
|
||||
"id": "8596b4b4-d567-4c5d-868e-65e6688c5e70",
|
||||
"id": "05bd7461-7d39-4620-ad3e-62ca086103c7",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 33112.1924562774,
|
||||
@@ -684,7 +573,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "71d536ee-8221-4903-981e-03e98374cbb8",
|
||||
"id": "8b212c49-db16-4604-ab38-c75386fe0ae8",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 32852.38483514207,
|
||||
@@ -708,7 +597,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "cc73b406-6cb8-45cd-9173-4565e2355337",
|
||||
"id": "602edc66-1cda-4517-80b0-8b70b8e837cd",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 32592.57721400674,
|
||||
@@ -733,7 +622,7 @@
|
||||
}
|
||||
],
|
||||
"announcements": [],
|
||||
"id": "4874e11f-9b13-4da0-ba2f-a48b6e50ab89",
|
||||
"id": "c155e10a-1cc7-48e6-b1f0-a8bd33f39710",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 32332.769592871406,
|
||||
@@ -756,7 +645,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "321a9446-757c-4f6b-bd08-b251cc5743dc",
|
||||
"id": "9790e36e-c011-420a-b37b-02411270d505",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 32072.961971736073,
|
||||
@@ -814,7 +703,7 @@
|
||||
"marketSellOrders": [],
|
||||
"limitBuyOrders": [],
|
||||
"limitSellOrders": [],
|
||||
"id": "9b82b9ad-205e-4bea-82ca-c51ba13e8a31",
|
||||
"id": "bca241c1-d104-4f57-82cf-910871e45362",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31813.15435060074,
|
||||
@@ -839,7 +728,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "ccf4976a-236f-4856-9061-bde952db5e57",
|
||||
"id": "66b8730e-850a-4a29-a205-5a81725e93b7",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31553.346729465407,
|
||||
@@ -863,7 +752,7 @@
|
||||
}
|
||||
},
|
||||
"announcements": [],
|
||||
"id": "2b77a85e-6bb5-4c68-997c-c9fce2b84388",
|
||||
"id": "9059702a-8b3a-47e2-a0a6-c2bd0e4397a8",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31293.539108330075,
|
||||
@@ -903,7 +792,7 @@
|
||||
"name": "Target Rate Formula",
|
||||
"code": "tradingEngine.tradingCurrent.tradingEpisode.candle.close.value",
|
||||
"project": "Foundations",
|
||||
"id": "08cd7f3b-d747-44c5-a69e-99303464414f",
|
||||
"id": "699d2c78-c689-4b1c-baad-43256bdfa585",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31663.15435060074,
|
||||
@@ -926,7 +815,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "10599ce9-11ac-4093-b633-fd8b9665d991",
|
||||
"id": "fe062d57-7da6-4773-bfec-5809514f3c66",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31403.346729465407,
|
||||
@@ -958,7 +847,7 @@
|
||||
"name": "New Formula",
|
||||
"code": "tradingEngine.tradingCurrent.tradingEpisode.episodeBaseAsset.balance.value",
|
||||
"project": "Foundations",
|
||||
"id": "50bc8bac-b0e4-462c-85c1-3767a4e5076f",
|
||||
"id": "20b4c043-a62c-458c-b0dd-9d9f0fe8e5a9",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31143.539108330075,
|
||||
@@ -981,7 +870,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "ba2f4863-486a-4215-a8dd-dac6b357c439",
|
||||
"id": "c89cb5c4-d81c-4232-8086-c3fcfc1b2c48",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31143.539108330075,
|
||||
@@ -1004,7 +893,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "aedbcfb2-3a10-4f76-ad0f-67d6952d6cb7",
|
||||
"id": "558b4a55-7cbd-4794-a3ad-009015aca2f3",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 31143.539108330075,
|
||||
@@ -1041,7 +930,7 @@
|
||||
{
|
||||
"type": "Market Sell Order",
|
||||
"name": "New Market Sell Order",
|
||||
"config": "{\n\"percentageOfAlgorithmSize\": 100, \n\"spawnMultipleOrders\": false \n}",
|
||||
"config": "{\n\"percentageOfAlgorithmSize\": 20, \n\"spawnMultipleOrders\": true \n}",
|
||||
"project": "Foundations",
|
||||
"createOrderEvent": {
|
||||
"type": "Create Order Event",
|
||||
@@ -1060,9 +949,9 @@
|
||||
"javascriptCode": {
|
||||
"type": "Javascript Code",
|
||||
"name": "New Javascript Code",
|
||||
"code": "chart.at01hs.WEMAsignal.previous.signal >= 0.5 && chart.at01hs.WEMAsignal.signal < 0.5",
|
||||
"code": "chart.at01hs.WEMAsignal.signal < 0.5",
|
||||
"project": "Foundations",
|
||||
"id": "d129d107-2206-4230-adaf-4976981c397d",
|
||||
"id": "e1fe9c08-832a-4411-9a46-19dad548583e",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30626.476248922347,
|
||||
@@ -1085,7 +974,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "197420ae-f425-41ac-b4b4-d10a61c964ba",
|
||||
"id": "ad126cf6-3be8-431c-9221-d23ed5a9b318",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30548.83053539159,
|
||||
@@ -1109,7 +998,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "f1ba99a2-6819-44b5-9087-a24855b4b48a",
|
||||
"id": "e801551a-f69e-4433-bcf4-070b750fa909",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30471.184821860832,
|
||||
@@ -1144,9 +1033,9 @@
|
||||
"javascriptCode": {
|
||||
"type": "Javascript Code",
|
||||
"name": "New Javascript Code",
|
||||
"code": "tradingEngine.tradingCurrent.tradingEpisode.candle.close.value >= tradingEngine.tradingCurrent.position.entryTargetRate.value * 1.30",
|
||||
"code": "tradingEngine.tradingCurrent.tradingEpisode.candle.close.value >= tradingEngine.tradingCurrent.position.entryTargetRate.value * 1.17",
|
||||
"project": "Foundations",
|
||||
"id": "67ae2544-d4ec-4fcd-beaa-6768984bbf48",
|
||||
"id": "f6578611-b4d5-4cb8-84a5-af567b367c55",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 29943.539108330075,
|
||||
@@ -1169,7 +1058,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "03b9f164-f638-41c7-ad06-94cfeca007e7",
|
||||
"id": "ed0fb6c0-acf8-402f-9b62-21f9f6a2d204",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30093.539108330075,
|
||||
@@ -1193,7 +1082,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "3a2b7b7d-36a4-42d4-9147-4112115c53f7",
|
||||
"id": "9f1e5745-3edc-4c75-96a7-806c90146778",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30243.539108330075,
|
||||
@@ -1230,7 +1119,7 @@
|
||||
"name": "New Javascript Code",
|
||||
"code": "tradingEngine.tradingCurrent.tradingEpisode.candle.close.value < 0.99 * tradingEngine.tradingCurrent.position.entryTargetRate.value",
|
||||
"project": "Foundations",
|
||||
"id": "2b58539e-d6c9-4c81-aa81-d0f6d762f8f8",
|
||||
"id": "49d2a48c-caab-4ce6-9430-809c9f68345d",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 29524.20586466991,
|
||||
@@ -1253,7 +1142,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "55eb23dc-b9c8-4ed3-be4b-cceee33097ce",
|
||||
"id": "caaf0c1e-4faa-439c-b80e-53ffa2774540",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 29813.983612556633,
|
||||
@@ -1277,7 +1166,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "ce8433b3-1764-477d-b7fe-cb37c3e21f6c",
|
||||
"id": "e8fe9bbc-b9d8-4177-b291-e1e88952ea07",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30103.761360443354,
|
||||
@@ -1302,7 +1191,7 @@
|
||||
}
|
||||
],
|
||||
"announcements": [],
|
||||
"id": "7d35f880-508f-4de0-b8b4-1779fd3f85d0",
|
||||
"id": "fd3e6184-de9d-440d-8d1b-cc0f68f227bf",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30393.539108330075,
|
||||
@@ -1325,7 +1214,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "208a3dfa-fd43-4d88-97e9-cd72b9b7cf13",
|
||||
"id": "bacbbd95-ce0d-49de-9991-4820ea678296",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30543.539108330075,
|
||||
@@ -1382,7 +1271,7 @@
|
||||
],
|
||||
"limitBuyOrders": [],
|
||||
"limitSellOrders": [],
|
||||
"id": "e628be12-6c65-4c84-87f1-93b9743e3ff3",
|
||||
"id": "abf3b874-e889-4735-bb49-6e3cf7b0dbd1",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30693.539108330075,
|
||||
@@ -1406,7 +1295,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "e05fc323-fde9-4b43-9559-fb88abf5f3e3",
|
||||
"id": "d070d00a-5728-4ff7-8763-95e52e7eee86",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30843.539108330075,
|
||||
@@ -1430,7 +1319,7 @@
|
||||
}
|
||||
},
|
||||
"announcements": [],
|
||||
"id": "be7862dd-f241-4b73-9faf-ca0fb9bee6b7",
|
||||
"id": "392a1c94-23e2-45ac-bc59-f10284ec2f16",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30993.539108330075,
|
||||
@@ -1453,7 +1342,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "85ed96f4-8744-43ce-a7ca-d7277f3e8183",
|
||||
"id": "889d297a-c62d-4fcb-b7bc-1e6526111891",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30993.539108330075,
|
||||
@@ -1466,7 +1355,7 @@
|
||||
"floatingObject": {
|
||||
"isPinned": false,
|
||||
"isFrozen": false,
|
||||
"isCollapsed": true,
|
||||
"isCollapsed": false,
|
||||
"angleToParent": 1,
|
||||
"distanceToParent": 3,
|
||||
"arrangementStyle": 0
|
||||
@@ -1477,7 +1366,7 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"id": "e9a1f6f4-7f43-4355-921e-a4f24375de5f",
|
||||
"id": "9e13804e-0aca-4773-960a-fbe37184f0c6",
|
||||
"savedPayload": {
|
||||
"position": {
|
||||
"x": 30693.539108330075,
|
||||
|
||||
+40
-5
@@ -27,23 +27,58 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In practical terms, a trading system is a hierarchical arrangement organizing the actionable aspects of your investment plan. The hierarchy contains definitions regarding any number of trading strategies, all operating on the same market and sharing the same initial capital allocation."
|
||||
"text": "In practical terms, a trading system is a hierarchical arrangement organizing the actionable aspects of your investment plan. The hierarchy contains definitions regarding any number of trading strategies, all operating on the same market and sharing the same initial capital allocation.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "En términos prácticos, un Trading System es una disposición jerárquica que organiza los aspectos procesables de su plan de inversión. Esta jerarquía contiene definiciones respecto a un sinnúmero de estrategias de trading, todas operando en el mismo mercado y compartiendo la misma asignación de capital inicial.",
|
||||
"updated": 1637880963165
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "You use a trading system to define strategies following the Superalgos Protocol, splitting strategies into four stages: trigger, open, manage, and close."
|
||||
"text": "You use a trading system to define strategies following the Superalgos Protocol, splitting strategies into four stages: trigger, open, manage, and close.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Se utiliza un Trading System para definir estrategias acorde al protocolo de Superalgos, dividiendo a éstas en cuatro etapas: activación, apertura, gestión y cierre.",
|
||||
"updated": 1637880976135
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The concept of describing strategies in stages is fundamental to the methodical aspect of the trading system, as it provides a framework to run every strategy with the same framework, which contributes to developing scalable trading systems that may grow to any number of strategies."
|
||||
"text": "The concept of describing strategies in stages is fundamental to the methodical aspect of the trading system, as it provides a framework to run every strategy with the same framework, which contributes to developing scalable trading systems that may grow to any number of strategies.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "El concepto de describir estrategias en etapas es fundamental para el aspecto metódico del Trading System, ya que provee la infraestructura necesaria para ejecutar cualquier estrategia con la misma infraestructura. Esto contribuye a desarrollar Trading Systems escalables, que pueden alcanzar innumerable cantidad de estrategias.",
|
||||
"updated": 1637880986625
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "When a trading system features more than one strategy, the first strategy has precedence over the second, the second over the third, and so on. This means that strategies are evaluated in a sequence. When a given strategy is triggered-on, the remaining strategies in the queue are no longer evaluated until the strategy triggers off. In other words, when multiple strategies are deployed within a single trading system, only one strategy may trade at any given moment, and precedence is given by the order around the trading system node."
|
||||
"text": "When a trading system features more than one strategy, the first strategy has precedence over the second, the second over the third, and so on. This means that strategies are evaluated in a sequence. When a given strategy is triggered-on, the remaining strategies in the queue are no longer evaluated until the strategy triggers off. In other words, when multiple strategies are deployed within a single trading system, only one strategy may trade at any given moment, and precedence is given by the order around the trading system node.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Cuando un Trading System ofrece más de una estrategia, la primera estrategia tiene prioridad sobre la segunda, la segunda sobre la tercera, y así sucesivamente. Esto significa que las estrategias son analizadas de manera secuencial. Cuando una estrategia dada es activada, las estrategias restantes no serán analizadas hasta que ésta se desactive. En otras palabras, cuando se implementan múltiples estrategias bajo un único Trading System, solo una estrategia puede operar en un momento dado, y la prioridad está dada por el orden especificado en el Nodo del Trading System.",
|
||||
"updated": 1637881003253
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "As a corollary to the above, if you wish strategies to operate in different markets, or you wish strategies to be able to take positions simultaneously, then you must set up those strategies in different trading systems."
|
||||
"text": "As a corollary to the above, if you wish strategies to operate in different markets, or you wish strategies to be able to take positions simultaneously, then you must set up those strategies in different trading systems.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Como complemento a lo anterior, si se desea configurar estrategias que operen sobre diferentes mercados, o estrategias que tengan la posibilidad de abrir posiciones de forma simultánea, entonces se las deberá configurar bajo Trading Systems distintos.",
|
||||
"updated": 1637881023208
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+1
-1
@@ -150,7 +150,7 @@ exports.newAlgorithmicTradingBotModulesSnapshots = function(processIndex) {
|
||||
}
|
||||
|
||||
/* Now we go down through all this node children */
|
||||
let schemaDocument = TS.projects.foundations.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type)
|
||||
let schemaDocument = SA.projects.foundations.globals.schemas.APP_SCHEMA_MAP.get(node.project + '-' + node.type)
|
||||
if (schemaDocument === undefined) { return }
|
||||
|
||||
if (schemaDocument.childrenNodesProperties !== undefined) {
|
||||
|
||||
+3
-3
@@ -112,7 +112,7 @@ exports.newAlgorithmicTradingBotModulesTradingEngine = function (processIndex) {
|
||||
destinationNode.value = originNode.value
|
||||
|
||||
/* Now we go down through all the children of the origin node, assuming the destination node has the same children structure*/
|
||||
let schemaDocument = TS.projects.foundations.globals.taskConstants.APP_SCHEMA_MAP.get(originNode.project + '-' + originNode.type)
|
||||
let schemaDocument = SA.projects.foundations.globals.schemas.APP_SCHEMA_MAP.get(originNode.project + '-' + originNode.type)
|
||||
if (schemaDocument === undefined) { return }
|
||||
|
||||
if (schemaDocument.childrenNodesProperties !== undefined) {
|
||||
@@ -151,7 +151,7 @@ exports.newAlgorithmicTradingBotModulesTradingEngine = function (processIndex) {
|
||||
nodesMap.set(node.id, node)
|
||||
|
||||
/* Now we go down through all this node children */
|
||||
let schemaDocument = TS.projects.foundations.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type)
|
||||
let schemaDocument = SA.projects.foundations.globals.schemas.APP_SCHEMA_MAP.get(node.project + '-' + node.type)
|
||||
if (schemaDocument === undefined) { return }
|
||||
|
||||
if (schemaDocument.childrenNodesProperties !== undefined) {
|
||||
@@ -194,7 +194,7 @@ exports.newAlgorithmicTradingBotModulesTradingEngine = function (processIndex) {
|
||||
}
|
||||
|
||||
/* Now we go down through all this node children */
|
||||
let schemaDocument = TS.projects.foundations.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type)
|
||||
let schemaDocument = SA.projects.foundations.globals.schemas.APP_SCHEMA_MAP.get(node.project + '-' + node.type)
|
||||
if (schemaDocument === undefined) { return }
|
||||
|
||||
if (schemaDocument.childrenNodesProperties !== undefined) {
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ exports.newAlgorithmicTradingBotModulesTradingOutput = function (processIndex) {
|
||||
/* Preparing everything for the Simulation */
|
||||
let tradingSimulationModuleObject = TS.projects.algorithmicTrading.botModules.tradingSimulation.newAlgorithmicTradingBotModulesTradingSimulation(processIndex)
|
||||
|
||||
let outputDatasets = TS.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
|
||||
let outputDatasets = SA.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
|
||||
let outputDatasetsMap = new Map()
|
||||
|
||||
await TS.projects.foundations.functionLibraries.outputManagementFunctions.readFiles(
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ exports.newAlgorithmicTradingBotModulesTradingRecords = function (processIndex)
|
||||
we have a pointer to the node that have the information we need to extract.
|
||||
Later, based on the product record definition we will extract each individual value.
|
||||
*/
|
||||
let outputDatasets = TS.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
|
||||
let outputDatasets = SA.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
|
||||
|
||||
for (let i = 0; i < outputDatasets.length; i++) {
|
||||
let outputDatasetNode = outputDatasets[i]
|
||||
|
||||
+2
-2
@@ -372,8 +372,8 @@ exports.newAlgorithmicTradingBotModulesTradingSimulation = function (processInde
|
||||
}
|
||||
|
||||
function positionChart(chart) {
|
||||
let dataDependencies = TS.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processDependencies, 'Data Dependency')
|
||||
dataDependencies = TS.projects.visualScripting.utilities.nodeFunctions.filterOutNodeWihtoutReferenceParentFromNodeArray(dataDependencies)
|
||||
let dataDependencies = SA.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processDependencies, 'Data Dependency')
|
||||
dataDependencies = SA.projects.visualScripting.utilities.nodeFunctions.filterOutNodeWihtoutReferenceParentFromNodeArray(dataDependencies)
|
||||
|
||||
/* Finding the Current Element on Daily Files */
|
||||
if (TS.projects.foundations.globals.processVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).TRADING_PROCESSING_DAILY_FILES) {
|
||||
|
||||
+1
-1
@@ -272,7 +272,7 @@ exports.newAlgorithmicTradingBotModulesTradingSystem = function (processIndex) {
|
||||
}
|
||||
|
||||
/* Now we go down through all this node children */
|
||||
let schemaDocument = TS.projects.foundations.globals.taskConstants.APP_SCHEMA_MAP.get(node.project + '-' + node.type)
|
||||
let schemaDocument = SA.projects.foundations.globals.schemas.APP_SCHEMA_MAP.get(node.project + '-' + node.type)
|
||||
if (schemaDocument === undefined) { return }
|
||||
|
||||
if (schemaDocument.childrenNodesProperties !== undefined) {
|
||||
|
||||
@@ -105,6 +105,9 @@ function newAlgorithmicTradingFunctionLibraryTradingSessionFunctions() {
|
||||
'Managed Stop Loss->Managed Take Profit->' +
|
||||
'Phase->Formula->Next Phase Event->Move To Phase Event->Phase->' +
|
||||
'Situation->Condition->Javascript Code->' +
|
||||
'Outgoing Signals->Incoming Signals->Signal Reference->' +
|
||||
'Trigger On Signal->Trigger Off Signal->Take Position Signal->' +
|
||||
'Create Order Signal->Cancel Order Signal->' +
|
||||
'Close Stage->' +
|
||||
'Initial Targets->Target Size In Base Asset->Target Size In Quoted Asset->Target Rate->Formula->' +
|
||||
'Open Execution->Close Execution->' +
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -201,7 +201,7 @@ exports.newDataMiningBotModulesFetchingProcess = function (processIndex) {
|
||||
if (recordProperty.apiResponseFieldReference !== undefined) {
|
||||
if (recordProperty.apiResponseFieldReference.referenceParent !== undefined) {
|
||||
let apiResponseField = recordProperty.apiResponseFieldReference.referenceParent
|
||||
let endpointNodeFound = TS.projects.visualScripting.utilities.nodeFunctions.findNodeInNodeMesh(apiResponseField, 'API Endpoint')
|
||||
let endpointNodeFound = SA.projects.visualScripting.utilities.nodeFunctions.findNodeInNodeMesh(apiResponseField, 'API Endpoint')
|
||||
/*
|
||||
Every Record Property with an apiResponseFieldReference must be on the path
|
||||
to a certain endpoint.
|
||||
|
||||
@@ -52,13 +52,13 @@
|
||||
}
|
||||
|
||||
/* The first phase here is about checking that we have everything we need at the definition level. */
|
||||
let dataDependencies = TS.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(
|
||||
let dataDependencies = SA.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(
|
||||
TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processDependencies, 'Data Dependency'
|
||||
)
|
||||
|
||||
if (TS.projects.foundations.functionLibraries.singleMarketFunctions.validateDataDependencies(processIndex, dataDependencies, callBackFunction) !== true) { return }
|
||||
|
||||
let outputDatasets = TS.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(
|
||||
let outputDatasets = SA.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(
|
||||
TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset'
|
||||
)
|
||||
if (TS.projects.foundations.functionLibraries.singleMarketFunctions.validateOutputDatasets(processIndex, outputDatasets, callBackFunction) !== true) { return }
|
||||
@@ -138,9 +138,9 @@
|
||||
contextSummary.dataset = outputDatasetNode.referenceParent.config.codeName
|
||||
contextSummary.product = outputDatasetNode.referenceParent.parentNode.config.codeName
|
||||
|
||||
let botNode = TS.projects.visualScripting.utilities.nodeFunctions.findNodeInNodeMesh(outputDatasetNode, 'Indicator Bot')
|
||||
let botNode = SA.projects.visualScripting.utilities.nodeFunctions.findNodeInNodeMesh(outputDatasetNode, 'Indicator Bot')
|
||||
contextSummary.bot = botNode.config.codeName
|
||||
let dataMineNode = TS.projects.visualScripting.utilities.nodeFunctions.findNodeInNodeMesh(outputDatasetNode, 'Data Mine')
|
||||
let dataMineNode = SA.projects.visualScripting.utilities.nodeFunctions.findNodeInNodeMesh(outputDatasetNode, 'Data Mine')
|
||||
contextSummary.dataMine = dataMineNode.config.codeName
|
||||
contextSummary.mineType = dataMineNode.type.replace(' ', '-')
|
||||
contextSummary.project = dataMineNode.project
|
||||
|
||||
@@ -513,7 +513,7 @@
|
||||
}
|
||||
|
||||
function writeDataRanges(callBack) {
|
||||
let outputDatasets = TS.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(
|
||||
let outputDatasets = SA.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(
|
||||
TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
|
||||
let outputDatasetIndex = -1;
|
||||
controlLoop()
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
|
||||
function writeTimeFramesFiles(callBack) {
|
||||
let outputDatasets =
|
||||
TS.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
|
||||
SA.projects.visualScripting.utilities.nodeFunctions.nodeBranchToArray(TS.projects.foundations.globals.taskConstants.TASK_NODE.bot.processes[processIndex].referenceParent.processOutput, 'Output Dataset')
|
||||
let outputDatasetIndex = -1;
|
||||
controlLoop()
|
||||
|
||||
|
||||
+8
-7
@@ -119,16 +119,17 @@
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Custom Shortcuts"
|
||||
"text": "Custom Shortcuts to Nodes",
|
||||
"updated": 1637691249937
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Topic->Keyboard Shortcuts to Nodes->Custom Node Shortcuts",
|
||||
"updated": 1637691223240
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "It is also possible to set a custom shortcut to any node you would like. Simply hover over a node and hit Ctrl + Alt + your preferred key to assign the shortcut.",
|
||||
"updated": 1634909920250
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "A more detailed walk through can be found here: Keyboard Shortcuts to Nodes"
|
||||
"text": "It is also possible to set a custom shortcut to any node you would like. Simply hover over a node and hit Ctrl + Alt + your preferred key to assign the shortcut."
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
|
||||
@@ -676,7 +676,7 @@ function newFoundationsDocsDocumentPage() {
|
||||
}
|
||||
case 'Tutorial': {
|
||||
orderedTutorialPageIndexArray = UI.projects.education.utilities.docs.buildOrderedPageIndex(
|
||||
UI.projects.education.spaces.docsSpace.currentDocumentBeingRendered.project,
|
||||
project,
|
||||
'Tutorial',
|
||||
chapterName
|
||||
)
|
||||
|
||||
@@ -141,6 +141,12 @@ function newFoundationsDocsFooter() {
|
||||
}
|
||||
HTML = HTML + '"></a>'
|
||||
|
||||
HTML = HTML + '<a href="#" onClick="UI.projects.education.spaces.docsSpace.changeLanguage(\'EL\')"><img src="Images/Languages/EL.png" title="Greek" class="docs-footer-language'
|
||||
if (languageCode === 'EL') {
|
||||
HTML = HTML + '-selected'
|
||||
}
|
||||
HTML = HTML + '"></a>'
|
||||
|
||||
HTML = HTML + '</div>'
|
||||
|
||||
HTML = HTML + '<div class="docs-footer-cell">'
|
||||
|
||||
@@ -52,6 +52,10 @@ function newEducationUtilitiesLanguages() {
|
||||
languageLabel = 'Arabic'
|
||||
break
|
||||
}
|
||||
case 'EL': {
|
||||
languageLabel = 'Greek'
|
||||
break
|
||||
}
|
||||
}
|
||||
return languageLabel
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 69 KiB |
@@ -0,0 +1,8 @@
|
||||
exports.newFoundationsGlobalsSchemas = function () {
|
||||
|
||||
let thisObject = {
|
||||
APP_SCHEMA_MAP: new Map()
|
||||
}
|
||||
|
||||
return thisObject
|
||||
}
|
||||
@@ -70,7 +70,7 @@
|
||||
"compatibleTypes": "->Plotter Module->"
|
||||
},
|
||||
"attachingRules": {
|
||||
"compatibleTypes": "->Data-Mining|Sensor Bot->Data-Mining|API Data Fetcher Bot->Data-Mining|Indicator Bot->Trading Bot->Learning Bot->Product Definition Folder->"
|
||||
"compatibleTypes": "->Sensor Bot->API Data Fetcher Bot->Indicator Bot->Trading Bot->Learning Bot->Product Definition Folder->"
|
||||
},
|
||||
"childrenNodesProperties": [
|
||||
{
|
||||
|
||||
@@ -17,6 +17,26 @@
|
||||
"relatedUiObjectProject": "Social-Bots",
|
||||
"actionProject": "Visual-Scripting"
|
||||
},
|
||||
{
|
||||
"action": "Add UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"disableIfPropertyIsDefined": true,
|
||||
"propertyToCheckFor": "outgoingSignals",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"label": "Add Outgoing Signals",
|
||||
"relatedUiObject": "Outgoing Signals",
|
||||
"relatedUiObjectProject": "Trading-Signals"
|
||||
},
|
||||
{
|
||||
"action": "Add UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"disableIfPropertyIsDefined": true,
|
||||
"propertyToCheckFor": "incomingSignals",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"label": "Add Incoming Signals",
|
||||
"relatedUiObject": "Incoming Signals",
|
||||
"relatedUiObjectProject": "Trading-Signals"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
@@ -45,6 +65,18 @@
|
||||
"type": "array",
|
||||
"childType": "Announcement",
|
||||
"project": "Social-Bots"
|
||||
},
|
||||
{
|
||||
"name": "outgoingSignals",
|
||||
"type": "node",
|
||||
"childType": "Outgoing Signals",
|
||||
"project": "Trading-Signals"
|
||||
},
|
||||
{
|
||||
"name": "incomingSignals",
|
||||
"type": "node",
|
||||
"childType": "Incoming Signals",
|
||||
"project": "Trading-Signals"
|
||||
}
|
||||
],
|
||||
"propertyNameAtParent": "takePosition"
|
||||
|
||||
@@ -87,6 +87,16 @@
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add UI Object",
|
||||
"disableIfPropertyIsDefined": true,
|
||||
"propertyToCheckFor": "taskServerAppReference",
|
||||
"label": "Add Task Server App Reference",
|
||||
"relatedUiObject": "Task Server App Reference",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Governance"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
@@ -134,6 +144,12 @@
|
||||
"name": "keyReference",
|
||||
"type": "node",
|
||||
"childType": "Key Reference"
|
||||
},
|
||||
{
|
||||
"name": "taskServerAppReference",
|
||||
"type": "node",
|
||||
"childType": "Task Server App Reference",
|
||||
"project": "Governance"
|
||||
}
|
||||
],
|
||||
"propertyNameAtParent": "tasks"
|
||||
|
||||
@@ -9,6 +9,16 @@
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"disableIfPropertyIsDefined": true,
|
||||
"propertyToCheckFor": "socialTradingBotReference",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"label": "Add Social Trading Bot Reference",
|
||||
"relatedUiObject": "Social Trading Bot Reference",
|
||||
"relatedUiObjectProject": "Governance"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
@@ -31,6 +41,12 @@
|
||||
"type": "array",
|
||||
"childType": "Trading Process Instance",
|
||||
"autoAdd": false
|
||||
},
|
||||
{
|
||||
"name": "socialTradingBotReference",
|
||||
"type": "node",
|
||||
"childType": "Social Trading Bot Reference",
|
||||
"autoAdd": false
|
||||
}
|
||||
],
|
||||
"propertyNameAtParent": "bot"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"menuItems": [
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"askConfirmation": true,
|
||||
"confirmationLabel": "Confirm to Delete",
|
||||
"label": "Delete",
|
||||
|
||||
@@ -17,6 +17,26 @@
|
||||
"relatedUiObjectProject": "Social-Bots",
|
||||
"actionProject": "Visual-Scripting"
|
||||
},
|
||||
{
|
||||
"action": "Add UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"disableIfPropertyIsDefined": true,
|
||||
"propertyToCheckFor": "outgoingSignals",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"label": "Add Outgoing Signals",
|
||||
"relatedUiObject": "Outgoing Signals",
|
||||
"relatedUiObjectProject": "Trading-Signals"
|
||||
},
|
||||
{
|
||||
"action": "Add UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"disableIfPropertyIsDefined": true,
|
||||
"propertyToCheckFor": "incomingSignals",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"label": "Add Incoming Signals",
|
||||
"relatedUiObject": "Incoming Signals",
|
||||
"relatedUiObjectProject": "Trading-Signals"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
@@ -45,6 +65,18 @@
|
||||
"type": "array",
|
||||
"childType": "Announcement",
|
||||
"project": "Social-Bots"
|
||||
},
|
||||
{
|
||||
"name": "outgoingSignals",
|
||||
"type": "node",
|
||||
"childType": "Outgoing Signals",
|
||||
"project": "Trading-Signals"
|
||||
},
|
||||
{
|
||||
"name": "incomingSignals",
|
||||
"type": "node",
|
||||
"childType": "Incoming Signals",
|
||||
"project": "Trading-Signals"
|
||||
}
|
||||
],
|
||||
"propertyNameAtParent": "triggerOff"
|
||||
|
||||
@@ -17,6 +17,26 @@
|
||||
"relatedUiObjectProject": "Social-Bots",
|
||||
"actionProject": "Visual-Scripting"
|
||||
},
|
||||
{
|
||||
"action": "Add UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"disableIfPropertyIsDefined": true,
|
||||
"propertyToCheckFor": "outgoingSignals",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"label": "Add Outgoing Signals",
|
||||
"relatedUiObject": "Outgoing Signals",
|
||||
"relatedUiObjectProject": "Trading-Signals"
|
||||
},
|
||||
{
|
||||
"action": "Add UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"disableIfPropertyIsDefined": true,
|
||||
"propertyToCheckFor": "incomingSignals",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"label": "Add Incoming Signals",
|
||||
"relatedUiObject": "Incoming Signals",
|
||||
"relatedUiObjectProject": "Trading-Signals"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
@@ -45,6 +65,18 @@
|
||||
"type": "array",
|
||||
"childType": "Announcement",
|
||||
"project": "Social-Bots"
|
||||
},
|
||||
{
|
||||
"name": "outgoingSignals",
|
||||
"type": "node",
|
||||
"childType": "Outgoing Signals",
|
||||
"project": "Trading-Signals"
|
||||
},
|
||||
{
|
||||
"name": "incomingSignals",
|
||||
"type": "node",
|
||||
"childType": "Incoming Signals",
|
||||
"project": "Trading-Signals"
|
||||
}
|
||||
],
|
||||
"propertyNameAtParent": "triggerOn"
|
||||
|
||||
@@ -39,6 +39,13 @@
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add Specified Workspace Project",
|
||||
"label": "Add Specified Workspace Project",
|
||||
"relatedUiObject": "Workspace",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Check For Missing References",
|
||||
"label": "Check For Missing References",
|
||||
@@ -58,7 +65,8 @@
|
||||
"config": "{\"docsLanguage\": \"EN\"}"
|
||||
},
|
||||
"editors": {
|
||||
"config": true
|
||||
"config": true,
|
||||
"list": true
|
||||
},
|
||||
"isTitleAllwaysVisible": true,
|
||||
"addLeftIcons": false,
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
"language": "ES",
|
||||
"text": "Este libro lo guía por el camino que lo ayudará a aprender Superalgos de la manera más eficiente posible. Los tutoriales interactivos son la mejor herramienta para abordar la curva de aprendizaje. Es muy recomendable hacer los tutoriales en el orden propuesto.",
|
||||
"updated": 1628207193722
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Эта книга проведет вас по пути, который поможет вам изучить Superalgos наиболее эффективным способом. Интерактивные учебники - лучший инструмент для преодоления кривой обучения. Настоятельно рекомендуется выполнять учебники в предложенном порядке.",
|
||||
"updated": 1637920073292
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -15,7 +20,14 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "How to Use This Book",
|
||||
"updated": 1610955545072
|
||||
"updated": 1610955545072,
|
||||
"translations": [
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Как использовать эту книгу",
|
||||
"updated": 1637920084060
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -25,6 +37,11 @@
|
||||
"language": "ES",
|
||||
"text": "Los Tutoriales proveen la mejor experiencia de aprendizaje práctico. Hacer todos los tutoriales existentes ha demostrado ser la forma más eficaz de abordar la curva de aprendizaje.",
|
||||
"updated": 1636560408468
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Учебники обеспечивают максимальный практический опыт обучения. Изучение всех существующих учебников оказалось наиболее эффективным способом преодоления кривой обучения.",
|
||||
"updated": 1637920111715
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -37,6 +54,11 @@
|
||||
"language": "ES",
|
||||
"text": "Para hacer un tutorial, cargue el correspondiente plugin workspace,busque el tutorial en la parte inferior del espacio de diseño y seleccione Play en el menu.",
|
||||
"updated": 1636560468727
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Чтобы сделать учебник, загрузите соответствующее рабочее пространство плагина, найдите учебник в нижней части пространства проектирования и выберите в меню пункт Play.",
|
||||
"updated": 1637920130755
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -48,6 +70,11 @@
|
||||
"language": "ES",
|
||||
"text": "Cuando necesite un repaso rápido, siempre puede volver atrás y rehacer todo el tutorial o algunos pasos. Debido a que los tutoriales se componen de páginas en las que se pueden realizar búsquedas, también puede escanear el contenido sin hacer el tutorial.",
|
||||
"updated": 1636560519878
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Когда вам нужно быстрое обновление, вы всегда можете вернуться и переделать весь учебник или несколько шагов. Поскольку учебники состоят из страниц с возможностью поиска, вы также можете сканировать содержимое, фактически не выполняя учебник.",
|
||||
"updated": 1637920230871
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,12 +87,24 @@
|
||||
"language": "ES",
|
||||
"text": "El orden recomendado viene dado por la lista a continuación, pero la verdad es que hacer todos los tutoriales es lo que importa, sin importar el orden.",
|
||||
"updated": 1636560552820
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Рекомендуемый порядок приведен в списке ниже, но правда в том, что все учебники имеют значение, независимо от порядка.",
|
||||
"updated": 1637920246813
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "List of Plugin Workspaces and Tutorials"
|
||||
"text": "List of Plugin Workspaces and Tutorials",
|
||||
"translations": [
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Список рабочих пространств и учебников по плагинам",
|
||||
"updated": 1637920261835
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -76,6 +115,11 @@
|
||||
"language": "ES",
|
||||
"text": "Para su conveniencia, encuentre la relación del Plugin Workspaces y los tutoriales de cada uno de ellos.",
|
||||
"updated": 1636560626471
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Для вашего удобства приведено соотношение рабочих пространств плагинов (Plugin Workspaces) и учебников, которые есть в каждом из них.",
|
||||
"updated": 1637920336885
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -138,6 +182,11 @@
|
||||
"style": "Chapter",
|
||||
"text": "XI->Foundations->Tutorial->Setting Up a New Chart->This tutorial walks through the basic inner workings of the Charting Space to help you learn how to create your own custom charts.",
|
||||
"updated": 1621991930816
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "XII->Governance->Tutorial->Creating Your User Profile Tutorial->This tutorial covers everything you need to know about adding a user profile within the Superalgos Governance system.",
|
||||
"updated": 1637591853047
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -102,12 +102,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "XVII->Foundations->Topic->Contributing to Foundations->Superalgos is a Community project. Everything you build with Superalgos is susceptible to be contributed to the project. Contributing to the project earns you Superalgos (SA) tokens! This chapter covers how you may contribute some of the intelligence you build for yourself, and also how you may get involved with the project at a deeper level.",
|
||||
"text": "XVII->Foundations->Topic->Contributing to Superalgos->Superalgos is a Community project. Everything you build with Superalgos is susceptible to be contributed to the project. Contributing to the project earns you Superalgos (SA) tokens! This chapter covers how you may contribute some of the intelligence you build for yourself, and also how you may get involved with the project at a deeper level.",
|
||||
"updated": 1617708229948
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+8
@@ -216,6 +216,14 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Token Distrabution Superalgos"
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Creating Your User Profile Tutorial"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
|
||||
+16
-2
@@ -2,13 +2,27 @@
|
||||
"type": "Node JS Javsacript",
|
||||
"definition": {
|
||||
"text": "A Task in Superalgos runs in Node JS, which means that the Conditions and Formulas you write at your Trading System must comply with Javascript for Node JS syntax. ",
|
||||
"updated": 1611323749488
|
||||
"updated": 1611323749488,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Eine Task in Superalgos läuft in Node JS, was bedeutet, dass die Bedingungen und Formeln, die Sie in Ihrem Trading System schreiben, der Syntax von Javascript für Node JS entsprechen müssen.",
|
||||
"updated": 1637416496544
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The same is true for properties values in configs. They need to be valid data types of Javascript for Node JS.",
|
||||
"updated": 1611323797820
|
||||
"updated": 1611323797820,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das Gleiche gilt für propertie values in den Configs. Sie müssen gültige Datentypen von Javascript für Node JS sein.",
|
||||
"updated": 1637416588142
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"type": "Superalgos Project",
|
||||
"definition": {
|
||||
"text": "The Superalgos Project is the open Community, together with it's body of work.",
|
||||
"updated": 1630235520885
|
||||
"text": "The Superalgos Project is the open Community, together with its body of work.",
|
||||
"updated": 1637684804458
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
|
||||
@@ -2,22 +2,50 @@
|
||||
"type": "API Endpoint",
|
||||
"definition": {
|
||||
"text": "Endpoints are important aspects of interacting with server-side web APIs, as they specify where resources can be accessed. Usually the access is via a URL to which HTTP requests are posted. Once these requests are posted correctly, the API will respond with the requested data.",
|
||||
"updated": 1622854645690
|
||||
"updated": 1622854645690,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Endpoints sind wichtige Aspekte der Interaktion mit serverseitigen Web-APIs, da sie angeben, wo auf Ressourcen zugegriffen werden kann. Normalerweise erfolgt der Zugriff über eine URL, an die HTTP-Anforderungen gesendet werden. Sobald diese Anfragen korrekt übermittelt wurden, antwortet die API mit den angeforderten Daten.",
|
||||
"updated": 1637406311302
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "How to Use an Endpoint Node",
|
||||
"updated": 1622854703461
|
||||
"updated": 1622854703461,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "So verwenden sie Endpoint Node`s:",
|
||||
"updated": 1637406356154
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Read the docs of the API you are trying to map, and identify which endpoints they support. From there you can choose which endpoint holds the information you are interested in and begin to map it. For a detailed description of how to do this, please read the following description. In addition please see the API Map page as well as the Data Mining topic for other important concepts surrounding setting up an api map. ",
|
||||
"updated": 1622855071509
|
||||
"updated": 1622855071509,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Lesen Sie die Dokumentation der API, die Sie abbilden möchten, und stellen Sie fest, welche endpoints sie unterstützt. Von dort aus können Sie wählen, welcher Endpunkt die Informationen enthält, an denen Sie interessiert sind, und damit beginnen, diese zuzuordnen (mapping). Eine detaillierte Beschreibung der Vorgehensweise finden Sie in der folgenden Beschreibung. Darüber hinaus finden Sie auf der Seite API-Map und im Data Mining topic weitere wichtige Konzepte zur Einrichtung einer API-Map.",
|
||||
"updated": 1637406471296
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "The first page of the Data Mining topic is Data Mining - Introduction."
|
||||
"text": "The first page of the Data Mining topic is Data Mining - Introduction.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die erste Seite des Themas Data Mining lautet: Data Mining - Introduction.",
|
||||
"updated": 1637406539017
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
@@ -27,15 +55,36 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "API Endpoint Configuration",
|
||||
"updated": 1622895671396
|
||||
"updated": 1622895671396,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "API Endpoint Konfiguration",
|
||||
"updated": 1637406560957
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Properties"
|
||||
"text": "Properties",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Properties/Eigenschaften:",
|
||||
"updated": 1637406584743
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "codeName: Define the endpoint this branch of the map will handle."
|
||||
"text": "codeName: Define the endpoint this branch of the map will handle.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "codeName: Definieren Sie den endpoint, den dieser branch der Map behandeln soll.",
|
||||
"updated": 1637406633445
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -8,6 +8,11 @@
|
||||
"language": "ES",
|
||||
"text": "Un API Map representa el mapeo de una API para que pueda ser consumida por bots dentro de Superalgos. API Maps Son creados por los usuarios y compartidos como Plugins para que cualquier otro miembro de la comunidad pueda usarlos con sus bots.",
|
||||
"updated": 1628046227514
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Eine API-Map stellt das Mapping einer API dar, so dass sie von Bots innerhalb von Superalgos genutzt werden kann. API Maps werden von Nutzern erstellt und als Plugins geteilt, so dass jedes andere Community-Mitglied sie mit seinen Bots nutzen kann.",
|
||||
"updated": 1637407347172
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -15,40 +20,96 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The way to create an API Map is to read the API's documentation for each endpoint as well as the Data Mining Topic. These sources will provide you with all the information you need to make a successful API Map.",
|
||||
"updated": 1622847308932
|
||||
"updated": 1622847308932,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um eine API-Map zu erstellen, sollten Sie die API-Dokumentation für jeden Endpunkt sowie das Data Mining Topic lesen. Diese Quellen liefern Ihnen alle Informationen, die Sie für die Erstellung einer erfolgreichen API-Map benötigen.",
|
||||
"updated": 1637407413755
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The basic way you can think about an API Map is as a representation of the URL link needed to request information from the API as well as the layout of the data returned by the API. This means that an API Map hold all the information needed to request data and decipher the data once it is returned.",
|
||||
"updated": 1622847337343
|
||||
"updated": 1622847337343,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Grundsätzlich kann man sich eine API-Map als eine Darstellung des URL-Links vorstellen, der für die Anforderung (request) von Informationen von der API benötigt wird, sowie als das Layout der von der API zurückgegebenen Daten. Das bedeutet, dass eine API-Map alle Informationen enthält, die zum Anfordern von Daten und zum Entschlüsseln der zurückgegebenen Daten erforderlich sind.",
|
||||
"updated": 1637407595202
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "How are API Maps used?",
|
||||
"updated": 1622847013897
|
||||
"updated": 1622847013897,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wie werden API Maps verwendet?",
|
||||
"updated": 1637407620683
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "API Maps are used by API Data Fetcher Bots to request and save the data from an API. In order to do this a user needs to set up a task to run the bot. This set up is done automatically as part of the Install Market procedure if both an API Map and its data mine is detected within the Worksapce. From within that Task, a reference to the API Map is established.",
|
||||
"updated": 1622847596702
|
||||
"updated": 1622847596702,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "API Maps werden von API Data Fetcher Bots verwendet, um Daten von einer API anzufordern und zu speichern. Dazu muss der Benutzer eine Task zur Ausführung des Bots einrichten. Diese Einrichtung erfolgt automatisch als Teil des Install Market-Verfahrens, wenn sowohl eine API Map als auch die zugehörige Datamine im Workspace erkannt werden. In dieser Task wird ein Verweis (reference) auf die API-Map eingerichtet.",
|
||||
"updated": 1637407784736
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "When the Task is run, the UI will send to the Task Server all the definitions inside the API Map so that the API Data Fetcher Bot can use them to connect to the API Server, fetch data from it, and correctly interpret the responses."
|
||||
"text": "When the Task is run, the UI will send to the Task Server all the definitions inside the API Map so that the API Data Fetcher Bot can use them to connect to the API Server, fetch data from it, and correctly interpret the responses.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "When the Task is run, the UI will send to the Task Server all the definitions inside the API Map so that the API Data Fetcher Bot can use them to connect to the API Server, fetch data from it, and correctly interpret the responses. Wenn die Task ausgeführt wird, sendet die UI (Benutzeroberfläche) alle Definitionen in der API Map an den Task Server, damit der API Data Fetcher Bot sie verwenden kann, um eine Verbindung zum API Server herzustellen, Daten von ihm abzurufen und die Antworten korrekt zu interpretieren.",
|
||||
"updated": 1637407893809
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "How to Read an API Request URL",
|
||||
"updated": 1622847733042
|
||||
"updated": 1622847733042,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wie man eine \"API Request URL\" liest:",
|
||||
"updated": 1637407947758
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The API you are trying to map should have it's API Endpoints documented. If not, check any examples they may provide for how to request the data and see if there are inner folders below the main folder of the API Enpoint. Each one of these folders are an API Path Parameter that needs to be defined.",
|
||||
"updated": 1622847657548
|
||||
"updated": 1622847657548,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die API, die Sie abbilden (mappen) möchten, sollte über eine Dokumentation ihrer API Endpoints verfügen. Wenn dies nicht der Fall ist, prüfen Sie alle Beispiele, die sie für die Abfrage der Daten bereitstellen, und sehen Sie nach, ob es innere Ordner unterhalb des Hauptordners des API Endpoints gibt. Jeder dieser Ordner ist ein API Path Parameter, der definiert werden muss.",
|
||||
"updated": 1637408139914
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Here are some examples of API request URLs:"
|
||||
"text": "Here are some examples of API request URLs:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hier sind einige Beispiele für API request URLs:",
|
||||
"updated": 1637408182777
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -61,15 +122,37 @@
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Sections of an API Request URL"
|
||||
"text": "Sections of an API Request URL",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Abschnitte einer API Request URL:",
|
||||
"updated": 1637408214715
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Let's break down one of these URLs and identify each part of it."
|
||||
"text": "Let's break down one of these URLs and identify each part of it.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Lassen Sie uns eine dieser URLs aufschlüsseln und jeden Teil davon identifizieren.",
|
||||
"updated": 1637408255353
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Internet Protocol: This is the section on the very front of almost any internet link you will see."
|
||||
"text": "Internet Protocol: This is the section at the beginning of almost any internet link you will see.",
|
||||
"updated": 1637408357293,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Internet Protocol: Dieser Teil steht am Anfang fast jedes Internet-Links, den Sie sehen werden.",
|
||||
"updated": 1637408455485
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -78,11 +161,25 @@
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You define this using the protocol config property in the main API Map node.",
|
||||
"updated": 1622847750228
|
||||
"updated": 1622847750228,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie definieren dies über die Eigenschaft protocol config in der main API Map node.",
|
||||
"updated": 1637408526085
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Root Domain Name: This is the section of the URL that is before the first backslash:"
|
||||
"text": "Root Domain Name: This is the section of the URL that is before the first backslash:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Root Domain Name: Dies ist der Teil der URL, der vor dem ersten Backslash steht:",
|
||||
"updated": 1637408573940
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -91,11 +188,25 @@
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You define this using the hostName config property in the main API Map node.",
|
||||
"updated": 1622847770913
|
||||
"updated": 1622847770913,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie definieren dies über die hostName config property in der main API Map node.",
|
||||
"updated": 1637408669762
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "API Path: This is the section that defines the main path to the API:"
|
||||
"text": "API Path: This is the section that defines the main path to the API:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "API Path: Dies ist der Abschnitt, der den Hauptpfad zur API definiert:",
|
||||
"updated": 1637408725011
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -104,25 +215,60 @@
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You define this using the path config property in the main API Map node.",
|
||||
"updated": 1622847800732
|
||||
"updated": 1622847800732,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie definieren dies über die path config property in der main API Map node.",
|
||||
"updated": 1637408876286
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "API Version Number: This is the section that defines the API version to which you are making requests."
|
||||
"text": "API Version Number: This is the section that defines the API version to which you are making requests.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "API Version Number: In diesem Abschnitt wird die API-Version definiert, an die Sie Anfragen stellen.",
|
||||
"updated": 1637408824379
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
"text": " v1"
|
||||
"text": " v1",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "v1",
|
||||
"updated": 1637408808732
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You define this using the codeName config property in the API Version node.",
|
||||
"updated": 1622847982153
|
||||
"updated": 1622847982153,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hinweis: Sie definieren dies über die codeName config property in der API Version node.",
|
||||
"updated": 1637408939849
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "API Endpoint: This is the section that tells the API what kind of data you wish to request.",
|
||||
"updated": 1622847877226
|
||||
"updated": 1622847877226,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "API Endpoint: In diesem Abschnitt wird der API mitgeteilt, welche Art von Daten Sie anfordern möchten.",
|
||||
"updated": 1637414433995
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -131,12 +277,26 @@
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You define this using the config codeName property of the API Endpoint node.",
|
||||
"updated": 1622847959761
|
||||
"updated": 1622847959761,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie definieren dies über die config codeName property des API-Endpoint node.",
|
||||
"updated": 1637414475525
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Path Parameters: These are the remaning sections of the path before the question mark they further narrow down what data you wish to request from the API. In this case we want to receive data about bitcoin:",
|
||||
"updated": 1622848189591
|
||||
"updated": 1622848189591,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Path Parameters: Dies sind die verbleibenden Abschnitte des Pfads vor dem Fragezeichen. Sie grenzen die Daten, die Sie von der API anfordern möchten, weiter ein. In diesem Fall möchten wir Daten über Bitcoin erhalten:",
|
||||
"updated": 1637414552491
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -145,12 +305,26 @@
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You define each of these using the codeName config property in the API Path Parameter node.",
|
||||
"updated": 1622848212517
|
||||
"updated": 1622848212517,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie definieren jedes dieser Elemente über die codeName config property in der API Path Parameter node.",
|
||||
"updated": 1637414615962
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Query Parameters: These are all the sections after the question mark. They are often used to pair down the amount of data returned by the API so that you only receive what you are interested in:",
|
||||
"updated": 1622848284105
|
||||
"updated": 1622848284105,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Query Parameters: Dies sind alle Abschnitte nach dem Fragezeichen. Sie werden häufig verwendet, um die von der API zurückgegebene Datenmenge zu reduzieren, damit Sie nur die Daten erhalten, an denen Sie interessiert sind:",
|
||||
"updated": 1637414650342
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -158,7 +332,14 @@
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You define these using the codeName and value config properties of the API Query Parameter node."
|
||||
"text": "You define these using the codeName and value config properties of the API Query Parameter node.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie definieren diese über die codeName und value config property der API Query Parameter node.",
|
||||
"updated": 1637414687252
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
@@ -173,7 +354,14 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "API Map Configuration",
|
||||
"updated": 1622895474056
|
||||
"updated": 1622895474056,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "API Map Konfiguration:",
|
||||
"updated": 1637414725997
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
@@ -182,36 +370,85 @@
|
||||
{
|
||||
"style": "List",
|
||||
"text": "codeName: this must be the same codename as the Data Mine codename in order for the Install New Market procedure to link them properly at the API Map Reference node.",
|
||||
"updated": 1622895563618
|
||||
"updated": 1622895563618,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dies muss derselbe Codename sein wie der Codename der Data Mine, damit die Prozedur Install New Market sie ordnungsgemäß mit der API Map Reference node verknüpfen kann.",
|
||||
"updated": 1637414868207
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "protocol: the protocol to be used to access the API. For now either http or https.",
|
||||
"updated": 1622895574503
|
||||
"updated": 1622895574503,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "protocol: das Protokoll, das für den Zugriff auf die API verwendet werden soll. Im Moment entweder http oder https.",
|
||||
"updated": 1637415023731
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "portNumber: the port at which the API server is listening.",
|
||||
"updated": 1622895581034
|
||||
"updated": 1622895581034,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "portNumber: der Port, an dem der API-Server lauscht.",
|
||||
"updated": 1637415047128
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "hostName: the domain name or IP address of the API server.",
|
||||
"updated": 1622895586641
|
||||
"updated": 1622895586641,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "hostName: der Domain Name oder die IP-Adresse des API Servers.",
|
||||
"updated": 1637415198987
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "path: the URL path to where the API is located within the remote server.",
|
||||
"updated": 1622895592146
|
||||
"updated": 1622895592146,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "path: der URL Pfad zu dem Ort, an dem sich die API auf dem entfernten Server befindet.",
|
||||
"updated": 1637415193838
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "millisecondsBetweenCalls: [Optional] the number of milliseconds to wait before calling the remote host. This is particuary useful if there is pagination, so that there is a delay before requesting each page.",
|
||||
"updated": 1622863477228
|
||||
"updated": 1622863477228,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "millisecondsBetweenCalls: [Optional] Die Anzahl der Millisekunden, die vor dem Aufruf des entfernten Hosts gewartet wird. Dies ist besonders nützlich, wenn es eine Paginierung gibt, so dass es eine Verzögerung gibt, bevor jede Seite angefordert wird.",
|
||||
"updated": 1637415663997
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Here is an example API Map config:"
|
||||
"text": "Here is an example API Map config:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hier ein Beispiel für eine API Map config:",
|
||||
"updated": 1637415687389
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "El close stage se ocupa de las definiciones que componen la lógica para cerrar una posición, incluida la tasa y el tamaño objetivo, y la ejecución de la orden.",
|
||||
"updated": 1624460574874
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Статия закрытия имеет дело с определениями, которые составляют логику закрытия позиции, включая целевую ставку и размер, а также исполнение ордера.",
|
||||
"updated": 1637757567864
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "Conditions son reglas dentro de una situación. Cuando todas las condiciones de una situación se validan como verdaderas, la situación también se valida y se activa el evento asociado.",
|
||||
"updated": 1624459710047
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Условия - это правила внутри ситуации. Когда все условия в ситуации проверяются на истинность, ситуация также проверяется, и запускается соответствующее событие.\n",
|
||||
"updated": 1637756827569
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "The trading bot realiza sus funciones con respecto las órdenes del exchange y cuentas en dos ciclos consecutivos para cada vela.",
|
||||
"updated": 1624457112696
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Торговый бот выполняет свои обязанности в отношении биржевых ордеров и счетов в два последовательных цикла для каждой свечи.",
|
||||
"updated": 1637596581446
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
+13
-1
@@ -12,6 +12,11 @@
|
||||
"language": "RU",
|
||||
"text": "Процедура построения данных обрабатывает информацию, которая должна быть передана свойствам, хранящимся на выход�� данных.\n",
|
||||
"updated": 1636569783197
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die data building procedure verarbeitet die Informationen, die den Eigenschaften (properties) zugeführt werden, die im Ausgabedatensatz (output dataset) gespeichert sind.",
|
||||
"updated": 1637588171931
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -22,7 +27,14 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "This procedure holds the core logic of the bot, as it features the code that performs the calculations required to produce the new data set. The code is split between a procedure initialization and a procedure loop."
|
||||
"text": "This procedure holds the core logic of the bot, as it features the code that performs the calculations required to produce the new data set. The code is split between a procedure initialization and a procedure loop.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Diese Prozedur enthält die Kernlogik des Bots, da sie den Code enthält, der die Berechnungen durchführt, die erforderlich sind, um den neuen Datensatz zu erzeugen. Der Code ist aufgeteilt in eine Prozedurinitialisierung (procedure initialization) und eine Prozedurschleife (procedure loop).",
|
||||
"updated": 1637588231987
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+5
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "Un execution algorithmes es un conjunto de instrucciones que se utilizan para realizar y gestionar pedidos en el exchange.",
|
||||
"updated": 1624459612098
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Алгоритм выполнения - это набор инструкций, используемых для размещения и управления ордерами на бирже.",
|
||||
"updated": 1637756233547
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "Una fórmula es una expresión matemática destinada a determinar un valor numérico que se aplicará dinámicamente a una determinada propiedad.",
|
||||
"updated": 1624460095928
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Формула - это математическое выражение, предназначенное для определения числового значения, которое будет динамически применяться к определенному свойству.",
|
||||
"updated": 1637757255574
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"type": "Foundations Project",
|
||||
"definition": {
|
||||
"text": "The Superalgos Project hierarchy governs the assets that relate to Superalgos. In its current state, it serves the purpose of spawning hierarchies."
|
||||
"text": "The Foundations Project hierarchy governs the assets that relate to Superalgos. In its current state, it serves the purpose of spawning hierarchies."
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "Un limit sell order es una instrucción enviada al exchange para comprar el asset base, para su ejecución a una tasa específica o mejor.",
|
||||
"updated": 1624457049736
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Лимитный ордер на продажу - это приказ, отправленный на биржу для продажи базового актива, для исполнения по определенному курсу или выше.\n",
|
||||
"updated": 1637596266339
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "El open stage se ocupa de las definiciones que componen la lógica para ingresar a una posición, incluida la tasa y el tamaño objetivo, y la ejecución de la orden.",
|
||||
"updated": 1624459561011
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "На открытой стадии рассматриваются определения, которые составляют логику входа в позицию, включая целевую ставку и размер, а также выполнение ордеров.",
|
||||
"updated": 1637756161148
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "El nodo order rate define la tasa de órdenes límite.",
|
||||
"updated": 1624459989822
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Узел скорости заказов определяет скорость лимитных ордеров.",
|
||||
"updated": 1637757390733
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "Un plotter o trazadores un dispositivo que se utiliza para producir una representación gráfica de conjuntos de datos generados por bots.",
|
||||
"updated": 1624496084904
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Плоттер - это устройство, используемое для создания графического представления набора данных, сгенерированных ботами.",
|
||||
"updated": 1637657371222
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "Un situation se refiere a un estado específico del mercado en el que debe tener lugar un determinado evento, definido por una serie de condiciones.",
|
||||
"updated": 1624496155342
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Ситуация относится к определенному состоянию, в котором должно произойти определенное событие, поределяемое любым количеством условий.",
|
||||
"updated": 1637756401865
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
"language": "ES",
|
||||
"text": "El trigger stage se ocupa del seguimiento del mercado en busca de oportunidades de trading con la estrategia correspondiente.",
|
||||
"updated": 1624459676185
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Стадия запуска занимается мониторингом рынка в поисках торговых возможностей с соответствующей стратегией.",
|
||||
"updated": 1637756311221
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"review": "Superalgos Project Review",
|
||||
"pageNumber": 38,
|
||||
"type": "Superalgos Review - SuperAlogs for the future",
|
||||
"definition": {
|
||||
"text": "Write a summary for this review page."
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "During my Tutorial, I have come to the realization that the Superalgos platform will form an integral part of trading in the future.",
|
||||
"updated": 1637689604734
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Having a system that is free and managed by the community is awesome, this allows everyone to benefit form multiple people and share they`re knowledge. "
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "A bit Thank you to the founders as this is and will be an amazing project for people to enjoy. "
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+72
-9
@@ -4,13 +4,27 @@
|
||||
"type": "App Error - Contribution Not Sent",
|
||||
"definition": {
|
||||
"text": "There was a problem trying to send your contribution to your fork of the Superalgos repository, or from your fork to the Superalgos/Superalgos main repository.",
|
||||
"updated": 1611129378492
|
||||
"updated": 1611129378492,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es gab ein Problem beim Versuch, Ihren Beitrag (contribution) an Ihre Fork des Superalgos-Repositorys oder von Ihrer Fork an das Superalgos/Superalgos main repository zu senden.",
|
||||
"updated": 1637847176279
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Check the following section for details on what may have happened. After you fix the issue that prevented the App Contribute Command to run, you may try again.",
|
||||
"updated": 1611152997869
|
||||
"updated": 1611152997869,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Lesen Sie den folgenden Abschnitt, um zu erfahren, was passiert sein könnte. Nachdem Sie das Problem behoben haben, das die Ausführung des App Contribute Command verhindert hat, können Sie es erneut versuchen.",
|
||||
"updated": 1637847279708
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
@@ -19,20 +33,48 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In the following section, you will find the information recorded when the error occurred."
|
||||
"text": "In the following section, you will find the information recorded when the error occurred.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im folgenden Abschnitt finden Sie die Informationen, die beim Auftreten des Fehlers aufgezeichnet wurden.",
|
||||
"updated": 1637847305339
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You will only see the information if you opened this page as a result of the error actually occurring.",
|
||||
"updated": 1611153032408
|
||||
"updated": 1611153032408,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hinweis: Diese Informationen werden nur angezeigt, wenn Sie diese Seite geöffnet haben, weil der Fehler tatsächlich aufgetreten ist.",
|
||||
"updated": 1637847343322
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Error Message"
|
||||
"text": "Error Message",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Fehlermeldung (Error Message)",
|
||||
"updated": 1637847408680
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The following is the Error Message of the Exception that occurred at the Client:"
|
||||
"text": "The following is the Error Message of the Exception that occurred at the Client:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Folgenden wird die Fehlermeldung der beim Client aufgetretenen Ausnahme angezeigt:",
|
||||
"updated": 1637847389630
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Placeholder",
|
||||
@@ -44,7 +86,14 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The following is the Error Stack of the Exception that occurred at the Client:"
|
||||
"text": "The following is the Error Stack of the Exception that occurred at the Client:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Folgenden ist der Error Stack der beim Client aufgetretenen Ausnahme dargestellt:",
|
||||
"updated": 1637847442850
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Placeholder",
|
||||
@@ -56,7 +105,14 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The following is the Error Code of the Exception that occurred at the Client:"
|
||||
"text": "The following is the Error Code of the Exception that occurred at the Client:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Folgenden wird der Fehlercode der beim Client aufgetretenen Ausnahme angegeben:",
|
||||
"updated": 1637847479023
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Placeholder",
|
||||
@@ -70,7 +126,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The following are all the Error details of the Exception that occurred at the Client:",
|
||||
"updated": 1611154675224
|
||||
"updated": 1611154675224,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Folgenden werden alle Fehlerdetails der beim Client aufgetretenen Ausnahme aufgeführt:",
|
||||
"updated": 1637847501074
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Placeholder",
|
||||
|
||||
+71
-9
@@ -4,7 +4,17 @@
|
||||
"type": "App Error - Github Credentials Missing",
|
||||
"definition": {
|
||||
"text": "To manage contributions from within the app or update the app by running a command, you must first provide your Github.com credentials so that the Client can get you authenticated when pushing your changes to the remote repository.",
|
||||
"updated": 1611129104270
|
||||
"updated": 1611129104270,
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Para administrar las contribuciones desde la aplicación o actualizar la aplicación ejecutando un comando, primero debe proporcionar sus credenciales de Github.com para que el Client (Cliente) puede conseguir que se autentique cuando envíe sus cambios al repositorio remoto.",
|
||||
"updated": 1637851982343 }, {
|
||||
"language": "DE",
|
||||
"text": "Um Beiträge aus der App heraus zu verwalten oder die App durch Ausführen eines Befehls zu aktualisieren, müssen Sie zunächst Ihre Github.com Anmeldedaten (Github-credentials) angeben, damit der Client Sie authentifizieren kann, wenn Sie Ihre Änderungen an das remote Repository übertragen.",
|
||||
"updated": 1637872276765
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
@@ -15,12 +25,29 @@
|
||||
{
|
||||
"style": "Error",
|
||||
"text": "Github Credentials are Missing. Please solve this issue and try again.",
|
||||
"updated": 1620591786589
|
||||
"updated": 1620591786589,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Github-Anmeldeinformationen (Github Credentials) fehlen. Bitte lösen Sie dieses Problem und versuchen Sie es erneut.",
|
||||
"updated": 1637872324423
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "To solve this issue follow the following instructions on how to set up your GitHub.com credentials so that the system can automate the tasks needed to submit your contributions to the main repository of the Superalgos project.",
|
||||
"updated": 1609945787577
|
||||
"updated": 1609945787577,
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Para resolver este problema, siga las siguientes instrucciones sobre cómo configurar sus credenciales de GitHub.com para que el sistema pueda automatizar las tareas necesarias para enviar sus contribuciones al repositorio principal del proyecto Superalgos.",
|
||||
"updated": 1637852010003}, {
|
||||
"language": "DE",
|
||||
"text": "Um dieses Problem zu lösen, befolgen Sie die folgenden Anweisungen, um Ihre GitHub.com-Anmeldedaten (GitHub.com credentials) einzurichten, damit das System die Aufgaben automatisieren kann, die erforderlich sind, um Ihre Beiträge in das main repository des Superalgos-Projekts einzureichen.",
|
||||
"updated": 1637872432244
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Anchor",
|
||||
@@ -29,7 +56,14 @@
|
||||
{
|
||||
"style": "Error",
|
||||
"text": "Github Credentials are Missing. The Hierarchy APIs was not found at your workspace. Please create it following the guide below and try again.",
|
||||
"updated": 1620591795457
|
||||
"updated": 1620591795457,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Github-Anmeldeinformationen (Github Credentials) fehlen. Die Hierarchy APIs wurden in Ihrem Workspace nicht gefunden. Bitte erstellen Sie sie gemäß der unten stehenden Anleitung und versuchen Sie es erneut.",
|
||||
"updated": 1637872483733
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Anchor",
|
||||
@@ -39,7 +73,14 @@
|
||||
{
|
||||
"style": "Error",
|
||||
"text": "Github Credentials are Missing. The Hierarchy APIs does not have a child of type Github API. Please create it following the guide below and try again.",
|
||||
"updated": 1620591802895
|
||||
"updated": 1620591802895,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Github-Anmeldeinformationen (Github Credentials) fehlen. Die Hierarchie-APIs haben kein child (Node welche von Node abgeht) vom Typ Github API. Bitte erstellen Sie sie gemäß der unten stehenden Anleitung und versuchen Sie es erneut.",
|
||||
"updated": 1637872623504
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Anchor",
|
||||
@@ -49,7 +90,14 @@
|
||||
{
|
||||
"style": "Error",
|
||||
"text": "Github Credentials are Missing. The property username is missing or empty. Please create it following the guide below and try again.",
|
||||
"updated": 1620591810613
|
||||
"updated": 1620591810613,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Github-Anmeldeinformationen (Github Credentials) fehlen. Die Eigenschaft username fehlt oder ist leer. Bitte erstellen Sie sie gemäß der unten stehenden Anleitung und versuchen Sie es erneut.",
|
||||
"updated": 1637872711952
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Anchor",
|
||||
@@ -59,7 +107,14 @@
|
||||
{
|
||||
"style": "Error",
|
||||
"text": "Github Credentials are Missing. The property token is missing or empty. Please create it following the guide below and try again.",
|
||||
"updated": 1610559900470
|
||||
"updated": 1610559900470,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Github-Anmeldeinformationen (Github Credentials) fehlen. Das Property-Token fehlt oder ist leer. Bitte erstellen Sie sie gemäß der unten stehenden Anleitung und versuchen Sie es erneut.",
|
||||
"updated": 1637872739244
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -67,7 +122,14 @@
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Applies to"
|
||||
"text": "Applies to",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Gilt für:",
|
||||
"updated": 1637872755816
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -87,4 +149,4 @@
|
||||
"updated": 1609945833844
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
+8
-1
@@ -4,7 +4,14 @@
|
||||
"type": "App Error - Update Failed",
|
||||
"definition": {
|
||||
"text": "There was a problem trying to update the Client. Check the console for errors and make sure your GitHub.com credentials are correct.",
|
||||
"updated": 1611129344277
|
||||
"updated": 1611129344277,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es gab ein Problem beim aktualisieren ihres client`s. Überprüfen sie die Konsole nach error-Meldungen und vergewissern sie sich, das ihre Github.com credentials korrekt sind.",
|
||||
"updated": 1637772440444
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
|
||||
+20
@@ -16,6 +16,11 @@
|
||||
"language": "DE",
|
||||
"text": "Warten Sie, während die Änderungen auf GitHub.com hochgeladen werden und ein Pull Request erstellt wird. Sie werden eine neue Nachricht erhalten, wenn der Vorgang abgeschlossen ist.",
|
||||
"updated": 1634163736599
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Espere mientras se cargan los cambios en GitHub.com y una Pull Request es creada. Recibirá un nuevo mensaje cuando se complete la operación.",
|
||||
"updated": 1637852411598
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -53,6 +58,11 @@
|
||||
"language": "DE",
|
||||
"text": "Es ist keine weitere Aktion von Ihnen erforderlich. Jemand wird Ihren Pull Request überprüfen und ihn in die neueste Version der Software einfügen, wenn alles in Ordnung ist. Wenn Ihre Änderungen aus irgendeinem Grund abgelehnt werden, müssen Sie das Thema auf Github.com weiterverfolgen.",
|
||||
"updated": 1634163822210
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "No es necesario que realice ninguna otra acción. Alguien revisará su Pull Request ay fusionarlo con la última versión del software si todo está en orden. Si sus cambios son rechazados por cualquier motivo, deberá hacer un seguimiento del problema en Github.com.",
|
||||
"updated": 1637852466417
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -71,6 +81,11 @@
|
||||
"language": "DE",
|
||||
"text": "Sollten Sie weitere Beiträge einreichen, während der Pull Request geprüft wird, werden diese automatisch an den offenen Pull Request angehängt.",
|
||||
"updated": 1634163831841
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Si envía más contribuciones mientras la Pull Request está en revisión, se agregarán automáticamente a la Pull Request abierta.",
|
||||
"updated": 1637852529296
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -89,6 +104,11 @@
|
||||
"language": "DE",
|
||||
"text": "Sie sollten eine E-Mail von Github.com erhalten, wenn Änderungen zusammengeführt werden, oder wenn der Prüfer Kommentare abgibt oder die Änderungen ablehnt. Sie können Ihre E-Mail-Einstellungen auf GitHub.com verwalten.",
|
||||
"updated": 1634163842377
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Debería recibir un correo electrónico de Github.com cuando se fusionen los cambios, o si el revisor hace comentarios o rechaza los cambios. Puede administrar la configuración de su suscripción de correo electrónico en GitHub.com.",
|
||||
"updated": 1637852558644
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+237
-27
@@ -11,6 +11,11 @@
|
||||
"text": "Este comando te permite contribuir con trabajo al proyecto. El aporte va al repositorio de Superalgos a través de un Pull Request de tu fork de Superalgos.",
|
||||
"updated": 1628205171216,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Mit diesem Befehl können Sie einen Beitrag zum Projekt leisten. Der Beitrag geht an das Superalgos-Repository über einen Pull Request von Ihrer Superalgos fork.",
|
||||
"updated": 1636810389931
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -24,6 +29,11 @@
|
||||
"language": "ES",
|
||||
"text": "Este comando envia todos los cambios que hayas hecho en las paginas de documentos pero también de but also en cualquier archivo de la carpeta de Superalgos (a excepción de My-Workspaces, Data-Storage, (Archivo de datos de mi espacio de trabajo) y My-Logs folders (mis carpetas de registros) a tu bifurcación en Github.com. También serán enviados desde tu bifurcación al repositorio principal de Superalgos Lo hará específicamente desde la rama actual a la rama de las contribuciones mencionados al final de ésta página.",
|
||||
"updated": 1633175695567
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dieser Befehl sendet alle Änderungen, die Sie an den Docs-Seiten, aber auch an allen Dateien innerhalb des Superalgos-Ordners (außer den Ordnern My-Workspaces, Data-Storage und My-Logs) vorgenommen haben, an Ihren Fork auf Github.com. Es wird sie auch von Ihrem Fork an das Main Superalgos Repository senden. Und zwar vom Current Branch zum Contributions Branch, der in der Fußzeile dieser Seite erwähnt wird.",
|
||||
"updated": 1636810799062
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -36,6 +46,11 @@
|
||||
"language": "ES",
|
||||
"text": "Nunca utilice su carpeta de Superalgos para almacenar archivos personales, ya que toda la carpeta, salvo las pocas excepciones mencionadas arriba, están sujetas a ser enviadas a través de internet a un sitio público.",
|
||||
"updated": 1633175880707
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Verwenden Sie niemals Ihren Superalgos-Ordner, um persönliche Dateien zu speichern, da der gesamte Ordner, mit Ausnahme der wenigen oben erwähnten Ausnahmen, über das Internet an eine öffentliche Website gesendet werden kann.",
|
||||
"updated": 1636810844509
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -48,6 +63,11 @@
|
||||
"language": "ES",
|
||||
"text": "En la mayoría de los casos,, las contribuciones deben ir desde la rama de desarrollo a la rama de desarrollo, o desde la rama de plugins-docs (documentos complementarios) a la rama de plugins-docs, salvo que previamente haya acordado con los miembros del equipo que enviará una contribución de master a master.",
|
||||
"updated": 1633176160361
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "In den meisten Fällen müssen Beiträge(contributions) vom develop branch zum develop branch oder vom plugins-docs branch zum plugins-docs branch gehen, es sei denn, Sie haben vorher mit den Teammitgliedern vereinbart, dass Sie einen Beitrag von master zu master schicken.",
|
||||
"updated": 1636811150520
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -60,6 +80,11 @@
|
||||
"language": "ES",
|
||||
"text": "Master ( Maestra) es una rama estable y es muy poco porbable que vayamos a emerger contribuciones allí. En cambio todas las contribuciones se espera que vayan a as ramas de desarrollo o de documentos complementarios, donde muchos usuarios están chequeando esa rama cada día. Las contribuciones de enchufes o documentos puede alcanzar a maenudo la rama maestra. Contribuciones a la rama de desarrollo llegará a la rama maestra en la siguiente liberación.",
|
||||
"updated": 1633176639433
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Master ist unser stable branch und es ist sehr unwahrscheinlich, dass wir contributions dorthin mergen werden. Stattdessen wird erwartet, dass alle contributions in den Zweigen develop oder plugins-docs landen, wo viele Benutzer diese branches jeden Tag testen. Beiträge zu Plugins und Docs werden oft den Master-branch erreichen. Contributions zum develop branch werden den master branch bei der nächsten Veröffentlichung erreichen.",
|
||||
"updated": 1636811857881
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -72,6 +97,11 @@
|
||||
"language": "ES",
|
||||
"text": "Es también muy poco probable que las contribuciones provenientes de la rama maestra será traída en la rama de desarrollo, ya que ello puede provocar que emergan conflictos.",
|
||||
"updated": 1633176834093
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es ist auch sehr unwahrscheinlich, dass Beiträge aus dem master branch in den develop branch gemerged werden, da dies normalerweise zu Konflikten beim mergen führen kann.",
|
||||
"updated": 1636811942836
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -83,6 +113,11 @@
|
||||
"language": "ES",
|
||||
"text": "Chequear el pie de los documentos par qverificar que en que ramas está operando antes de enviar su contribución",
|
||||
"updated": 1633176955159
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Prüfen Sie in der Fußzeile der Dokumente, mit welchen Zweigen Sie arbeiten, bevor Sie Ihre contributions einreichen!",
|
||||
"updated": 1636812025309
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -102,12 +137,26 @@
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Message: Enter a brief description of what your contribution is about. It is optional but appreciated.",
|
||||
"updated": 1610909386562
|
||||
"updated": 1610909386562,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Message: Geben Sie eine kurze Beschreibung, worum es in Ihrer contribution geht. Die Angabe ist freiwillig, wird aber geschätzt.",
|
||||
"updated": 1636812085622
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Example",
|
||||
"updated": 1609943733276
|
||||
"updated": 1609943733276,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beispiel (dieser Befehl reicht für Übersetzungen vollkommen aus. Denken sie daran vor dem app.contribute command den docs.save command auszuführen um änderungen zu speichern)",
|
||||
"updated": 1636812385303
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -117,29 +166,71 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "For Devs",
|
||||
"updated": 1609944102567
|
||||
"updated": 1609944102567,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Für Entwickler:",
|
||||
"updated": 1636812168426
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "This is what the command does:",
|
||||
"updated": 1610909409653
|
||||
"updated": 1610909409653,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dies ist die Funktion des Befehls:",
|
||||
"updated": 1636812191434
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "git.add: adds the changes you've made to contributable files to a git commit.",
|
||||
"updated": 1610909452789
|
||||
"updated": 1610909452789,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "git.add: fügt die Änderungen, die Sie an beitragsfähigen Dateien vorgenommen haben, einem Git-Commit hinzu.",
|
||||
"updated": 1636812217041
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "git.commit: commits all the changes."
|
||||
"text": "git.commit: commits all the changes.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "git.commit: überträgt alle Änderungen.",
|
||||
"updated": 1636812231989
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "git.push: pushes the changes to your fork."
|
||||
"text": "git.push: pushes the changes to your fork.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "git.push: überträgt die Änderungen auf Ihren Fork.",
|
||||
"updated": 1636812247666
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "github.createPullRequest: creates a Pull Request at the Superalgos repository, or add commits to an existing Pull Request."
|
||||
"text": "github.createPullRequest: creates a Pull Request at the Superalgos repository, or add commits to an existing Pull Request.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "github.createPullRequest: erstellt einen Pull Request im Superalgos Repository, oder fügt Commits zu einem bestehenden Pull Request hinzu.",
|
||||
"updated": 1636812305579
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -153,12 +244,26 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "For the App Contribute Command to run properly, two different authentications are required:",
|
||||
"updated": 1610909501561
|
||||
"updated": 1610909501561,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Damit der App Contribute-Befehl ordnungsgemäß ausgeführt werden kann, sind zwei verschiedene Authentifizierungen erforderlich:",
|
||||
"updated": 1636812413275
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Git Authentication: The first time you run this command, Git will open a pop up window that will ask you for your Github.com credentials. This happens only once. Git will use these credentials to push the commit to your Superalgos fork at Github.com.",
|
||||
"updated": 1610909551187
|
||||
"updated": 1610909551187,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Git Authentication: Wenn Sie diesen Befehl zum ersten Mal ausführen, öffnet Git ein Popup-Fenster, in dem Sie nach Ihren Github.com-Anmeldedaten gefragt werden. Dies geschieht nur einmal. Git verwendet diese Anmeldedaten, um den commit an Ihren Superalgos-Fork auf Github.com zu übertragen.",
|
||||
"updated": 1636812477503
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -172,7 +277,14 @@
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Create the token by following this link:",
|
||||
"updated": 1610909635250
|
||||
"updated": 1610909635250,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Erstellen Sie den Token, indem Sie diesem Link folgen:",
|
||||
"updated": 1636812794679
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Link",
|
||||
@@ -186,7 +298,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Once you have your token, find the GitHub API node (you may search for it in the Documentation). The configuration looks like this:",
|
||||
"updated": 1610909728136
|
||||
"updated": 1610909728136,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sobald Sie Ihr Token haben, suchen Sie die GitHub-API-Node (Sie können in der Documentation danach suchen). Die Konfiguration sieht wie folgt aus:",
|
||||
"updated": 1636812850344
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -195,8 +314,15 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "If you can't find the node by using the search box, it may not exist in the active workspace. The APIs hierarchy is included by default in the Getting Started workspace only. You may spawn a new APIs hierarchy from the Other Hierarchies node in the Superalgos Project hierarchy.",
|
||||
"updated": 1610909893231
|
||||
"text": "If you can't find the node by using the search box, it may not exist in the active workspace. The APIs hierarchy is included by default in the Getting Started workspace only. You may spawn a new APIs hierarchy from the Other Hierarchies node in the Foundations Project hierarchy.",
|
||||
"updated": 1610909893231,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie die node nicht über das Suchfeld finden können, ist er möglicherweise nicht im aktiven Arbeitsbereich vorhanden. Die APIs-Hierarchie ist standardmäßig nur im Arbeitsbereich \"Erste Schritte\" enthalten. Sie können eine neue APIs-Hierarchie über den Node \"Other Hierarchies\" in der Foundations Project hierarchy erstellen.",
|
||||
"updated": 1636813227032
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
@@ -205,31 +331,73 @@
|
||||
{
|
||||
"style": "List",
|
||||
"text": "username: Type your GitHub.com username.",
|
||||
"updated": 1610909927500
|
||||
"updated": 1610909927500,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "username: Geben Sie Ihren GitHub.com-Benutzernamen ein.",
|
||||
"updated": 1636813245695
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "token: Paste the token you created.",
|
||||
"updated": 1610909948426
|
||||
"updated": 1610909948426,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "token: Fügen Sie das von Ihnen erstellte Token ein.",
|
||||
"updated": 1636813265485
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You may run the command any time after you made and saved changes.",
|
||||
"updated": 1610910009790
|
||||
"updated": 1610910009790,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können den Befehl jederzeit ausführen, nachdem Sie Änderungen vorgenommen und gespeichert haben.",
|
||||
"updated": 1636813300417
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Troubleshooting Authentication Issues",
|
||||
"updated": 1610909171028
|
||||
"updated": 1610909171028,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Fehlerbehebung bei Authentifizierungsproblemen",
|
||||
"updated": 1636813315620
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Some issues may arrise when you have more than one Git installation active in your OS.",
|
||||
"updated": 1610910061699
|
||||
"updated": 1610910061699,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Einige Probleme können auftreten, wenn Sie mehr als eine Git-Installation in Ihrem Betriebssystem aktiv haben.",
|
||||
"updated": 1636813483077
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "For example, if you see the following authentication screen, it means an older version of Git is trying to deal with the authentication:"
|
||||
"text": "For example, if you see the following authentication screen, it means an older version of Git is trying to deal with the authentication:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie zum Beispiel den folgenden Authentifizierungsbildschirm sehen, bedeutet dies, dass eine ältere Version von Git versucht, die Authentifizierung durchzuführen:",
|
||||
"updated": 1636813517718
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Png",
|
||||
@@ -239,7 +407,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The current authentication screen is similar to this one instead:",
|
||||
"updated": 1610910533633
|
||||
"updated": 1610910533633,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der derzeitige Authentifizierungsbildschirm sieht stattdessen ähnlich aus wie dieser:",
|
||||
"updated": 1636813625546
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Png",
|
||||
@@ -249,27 +424,62 @@
|
||||
{
|
||||
"style": "Important",
|
||||
"text": "If you didn't install the latest version of Git before installing Superalgos, then that is likely the reason the authentication is not working. The latest version of Git is required.",
|
||||
"updated": 1610910817057
|
||||
"updated": 1610910817057,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie vor der Installation von Superalgos nicht die neueste Version von Git installiert haben, dann ist das wahrscheinlich der Grund, warum die Authentifizierung nicht funktioniert. Die neueste Version von Git ist erforderlich.",
|
||||
"updated": 1636813687527
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "If you did install Git and you are experiencing the issue described above, restarting your PC may help things sort themselves out.",
|
||||
"updated": 1610910739376
|
||||
"updated": 1610910739376,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie Git installiert haben und das oben beschriebene Problem auftritt, kann ein Neustart des PCs helfen, das Problem zu beheben.",
|
||||
"updated": 1636813720650
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Linux and iOS",
|
||||
"updated": 1621085154588
|
||||
"text": "Linux and macOS",
|
||||
"updated": 1637872934184,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Linux und macOS",
|
||||
"updated": 1637873000919
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Input your personal authentication token (PAT) in place of your password and hit enter. ",
|
||||
"updated": 1621085095513
|
||||
"updated": 1621085095513,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Geben Sie Ihr persönliches Authentifizierungs-Token (PAT) anstelle Ihres Passworts ein und drücken Sie die Eingabetaste (Enter).",
|
||||
"updated": 1636813892055
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "If you don't want to keep entering in your token then you can have git cach your credentials:",
|
||||
"updated": 1621085196186
|
||||
"updated": 1621085196186,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie Ihr Token nicht ständig eingeben wollen, können Sie Ihre Anmeldedaten von Git zwischenspeichern lassen:",
|
||||
"updated": 1636813912653
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Link",
|
||||
|
||||
+2
-15
@@ -318,27 +318,14 @@
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Data Mine->Definition",
|
||||
"text": "Data-Mining->Node->Data Mine->Definition",
|
||||
"updated": 1611407782909
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Data Mine->Content",
|
||||
"text": "Data-Mining->Node->Data Mine->Content",
|
||||
"updated": 1611407786577
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Concept->Reusable Snippets->Note for Hierarchy Tables No Discussion"
|
||||
},
|
||||
{
|
||||
"style": "Hierarchy",
|
||||
"text": "Foundations->Data Mine->2",
|
||||
"updated": 1611407832651
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Sensor Bot",
|
||||
|
||||
+71
-10
@@ -11,6 +11,11 @@
|
||||
"text": "Use F11 to zoom in to the code once it stops at the breaking point, and use F5 to take it step by step forward. ",
|
||||
"updated": 1614338803641,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Verwenden Sie F11, um in den Code zu zoomen, sobald er am breaking point anhält, und verwenden Sie F5, um ihn Schritt für Schritt weiterzuverfolgen.",
|
||||
"updated": 1637875078405
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -18,12 +23,26 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Ssssh, be quiet... wait for it...",
|
||||
"updated": 1614512153973
|
||||
"updated": 1614512153973,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Pssst, sei still... warte ...",
|
||||
"updated": 1637875098578
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "As soon as the data for your indicator is being processed, your IDE will pause the process at the break point we set earlier...",
|
||||
"updated": 1614512188902
|
||||
"updated": 1614512188902,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sobald die Daten für Ihren Indikator verarbeitet werden, hält Ihre IDE den Prozess an dem zuvor festgelegten break point an...",
|
||||
"updated": 1637875140804
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Javascript",
|
||||
@@ -31,12 +50,26 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "... allowing you to zoom in to the details what's really going on."
|
||||
"text": "... allowing you to zoom in to the details what's really going on.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "...so dass Sie in die Details zoomen können, um zu sehen was wirklich vor sich geht.",
|
||||
"updated": 1637875228203
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Keep an eye out for when your Breaking point changes from a dot to an arrow.",
|
||||
"updated": 1614334261604
|
||||
"updated": 1614334261604,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Achten Sie darauf, wann Ihr Breaking Point von einem Punkt zu einem Pfeil wird.",
|
||||
"updated": 1637875252248
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Png",
|
||||
@@ -50,15 +83,36 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Use F11 to zoom into the code and F5 to step forward."
|
||||
"text": "Use F11 to zoom into the code and F5 to step forward.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Benutze F11 um in den code zu zoomen und F5 um einen Schritt weiterzugehen.",
|
||||
"updated": 1637875286767
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Keep stepping forward to follow the flow of data."
|
||||
"text": "Keep stepping forward to follow the flow of data.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Treten Sie weiter vor, um dem Datenfluss zu folgen.",
|
||||
"updated": 1637875300199
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Monitor what's going on in the code, and hover over your variables to check what values they get."
|
||||
"text": "Monitor what's going on in the code, and hover over your variables to check what values they get.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beobachten Sie, was im Code vor sich geht, und schweben sie mit ihrer Maus über Ihre Variablen, um zu sehen, welche Werte sie erhalten.",
|
||||
"updated": 1637875367673
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Png",
|
||||
@@ -66,9 +120,16 @@
|
||||
"updated": 1623411423507
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "Tip: In cases where the values turn to \"NaN\" or stays \"undefined\" without a logical reason - There's a point to raise doubt.",
|
||||
"updated": 1614512232138
|
||||
"style": "Success",
|
||||
"text": "In cases where the values turn to \"NaN\" or stays \"undefined\" without a logical reason - There's a point to raise doubt.",
|
||||
"updated": 1637882309343,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "In Fällen, in denen die Werte ohne logischen Grund zu \"NaN\" werden oder \"undefiniert\" bleiben, ist es angebracht, Zweifel zu äußern.",
|
||||
"updated": 1637875568347
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+22
@@ -99,6 +99,11 @@
|
||||
"text": "Ctrl or <kbd>⌘</kbd> + ↓ to pan downwards.",
|
||||
"updated": 1634912309430
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
"text": "Moving Node Shortcuts",
|
||||
"updated": 1637690456615
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Moving Nodes"
|
||||
@@ -131,6 +136,23 @@
|
||||
"text": "There are also keyboard shortcuts to accomplish node snapping. See Keyboard Shortcut Quick Guide page for more details.",
|
||||
"updated": 1634915239339
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "These UI tricks may also make your life easier:",
|
||||
"updated": 1637691123266
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Use the design space map as many times as required to find your way from one hierarchy to the other."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Remove the pin once the reference is established so that the node goes back to its place."
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
"text": "Keyboard Shortcuts Reference"
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Keyboard Shortcuts"
|
||||
|
||||
+12
-2
@@ -7,10 +7,20 @@
|
||||
"updated": 1610043042775
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Block",
|
||||
"text": "Custom Node Shortcuts",
|
||||
"updated": 1637691199216
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "You may define shortcuts for frequently-used nodes with the following procedure:",
|
||||
"updated": 1610043064924
|
||||
"text": "It is also possible to set a custom shortcut to any node you would like. This is useful for accessing frequenty used nodes.",
|
||||
"updated": 1637691354831
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "You may define this type of shortcut using the following procedure:",
|
||||
"updated": 1637691378647
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
|
||||
+10
@@ -28,6 +28,11 @@
|
||||
"language": "DE",
|
||||
"text": "Der Befehl docs.save war erfolgreich und alle Änderungen wurden auf dem Superalgos Client gespeichert.",
|
||||
"updated": 1633901325278
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Команда docs.save была выполнена успешно, и все изменения были сохранены в клиенте (Client) Superalgos .",
|
||||
"updated": 1637920657694
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -53,6 +58,11 @@
|
||||
"language": "DE",
|
||||
"text": "Alle aktuellen Änderungen an node, concept, topic, tutorial, review, and book pages wurden auf der Festplatte gespeichert.",
|
||||
"updated": 1633901444521
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Все последние изменения на страницах узлов, концепций, тем, учебников, обзоров и книг были сохранены на диске.",
|
||||
"updated": 1637920599631
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+30
@@ -10,6 +10,11 @@
|
||||
"language": "DE",
|
||||
"text": "Die Docs-Seiten von Superalgos und anderen integrierten Projekten sind ursprünglich in Englisch verfasst. Das System ermöglicht es den Nutzern, die Seiten auch in anderen Sprachen zu suchen und zu durchsuchen, sofern die Nutzer zuvor die entsprechenden Übersetzungen beigetragen haben.",
|
||||
"updated": 1636750003639
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Страницы Docs Superalgos и других интегрированных проектов изначально написаны на английском языке. Система позволяет пользователям искать и просматривать страницы и на других языках, при условии, что пользователи предварительно предоставили соответствующие переводы.",
|
||||
"updated": 1637919515814
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -23,6 +28,11 @@
|
||||
"language": "DE",
|
||||
"text": "Englisch gilt als Standardsprache. Wenn Sie zu einer anderen Sprache wechseln, versucht das System, den Inhalt in der neuen Sprache anzuzeigen. Wenn die Übersetzung jedoch noch nicht verfügbar ist, wird stattdessen die englische Version angezeigt.",
|
||||
"updated": 1636750015798
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Английский язык считается языком по умолчанию. При переходе на другой язык система пытается показать содержимое на новом языке. Однако, если перевод еще не доступен, то вместо этого он покажет английскую версию.",
|
||||
"updated": 1637919584958
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -34,6 +44,11 @@
|
||||
"language": "DE",
|
||||
"text": "Node types, variable names, der Titel von Seiten in den Docs und einige weitere Elemente von Superalgos werden nicht übersetzt, da sie eindeutige Bezeichner der genannten Elemente sind. Sie erhalten diese immer auf Englisch.",
|
||||
"updated": 1636750023487
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Типы узлов (Node), имена переменных, название страниц в Docs и несколько других элементов Superalgos могут быть переведены, так как они являются уникальными идентификаторами указанных элементов. Вы всегда получите их на английском языке.",
|
||||
"updated": 1637919662038
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -45,6 +60,11 @@
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie Übersetzungen beisteuern möchten, lesen Sie die Seite: How to Contribute Translations.",
|
||||
"updated": 1636750035891
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Если вы хотите внести свой вклад в переводы, прочитайте страницу Как вносить переводы (How to Contribute Translations ).",
|
||||
"updated": 1637919738801
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -57,6 +77,11 @@
|
||||
"language": "DE",
|
||||
"text": "Um die Sprache zu wechseln, klicken Sie auf die Flaggen in der Fußzeile der Docs.",
|
||||
"updated": 1636750056716
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Пользователи могут переключаться между языками с помощью ссылок/флагов, представленных в нижнем колонтитуле каждой страницы Docs.",
|
||||
"updated": 1637919818588
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -69,6 +94,11 @@
|
||||
"language": "DE",
|
||||
"text": "Sie können nur Seiten zu den Docs hinzufügen oder löschen, wenn die Sprache auf Englisch eingestellt ist. Für die Übersetzung müssen Sie die Sprache auswählen, in die Sie übersetzen möchten. ",
|
||||
"updated": 1636750092775
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Вы можете добавлять или удалять страницы в Документах только в том случае, если для этого языка установлен английский. Для перевода вы должны выбрать язык, на который вы хотите перевести. (В данном случае русский)",
|
||||
"updated": 1637919928768
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+48
-6
@@ -4,30 +4,72 @@
|
||||
"type": "Docs In Simplified Chinese-Mandarin",
|
||||
"definition": {
|
||||
"text": "The Docs pages of Superalgos and other projects integrated are originally written in English. The system allows users to search and browse pages in other languages as well, as long as users have previously contributed the corresponding translations.",
|
||||
"updated": 1613820592771
|
||||
"updated": 1613820592771,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Docs-Seiten von Superalgos und anderen integrierten Projekten sind ursprünglich in Englisch verfasst. Das System ermöglicht es den Nutzern, die Seiten auch in anderen Sprachen zu suchen und zu durchsuchen, sofern die Nutzer zuvor die entsprechenden Übersetzungen beigetragen haben.",
|
||||
"updated": 1637874117986
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "English is considered the default language. When you switch to a different language, the system attempts to show the content in the new language. However, if the translation is not yet available, it shows the English version instead.",
|
||||
"updated": 1613820612132
|
||||
"updated": 1613820612132,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Englisch gilt als Standardsprache. Wenn Sie zu einer anderen Sprache wechseln, versucht das System, den Inhalt in der neuen Sprache anzuzeigen. Wenn die Übersetzung jedoch noch nicht verfügbar ist, wird stattdessen die englische Version angezeigt.",
|
||||
"updated": 1637874156323
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Node types, variable names, the title of pages in the Docs, and a few more elements of Superalgos may not be translated, as they are unique identifiers of the said elements. You will always get those in English."
|
||||
"text": "Node types, variable names, the title of pages in the Docs, and a few more elements of Superalgos may not be translated, as they are unique identifiers of the said elements. You will always get those in English.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Node types, variable names, der Titel von Seiten in den Docs und einige weitere Elemente von Superalgos werden nicht übersetzt, da sie eindeutige Bezeichner der genannten Elemente sind. Sie erhalten diese immer auf Englisch.",
|
||||
"updated": 1637874166523
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "If you wish to contribute translations, read the How to Contribute Translations page."
|
||||
"text": "If you wish to contribute translations, read the How to Contribute Translations page.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie Übersetzungen beisteuern möchten, lesen Sie die Seite: How to Contribute Translations.",
|
||||
"updated": 1637874205878
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "To switch languages, click on the flags on the footer of the Docs."
|
||||
"text": "To switch languages, click on the flags on the footer of the Docs.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um die Sprache zu wechseln, klicken Sie auf die Flaggen in der Fußzeile der Docs.",
|
||||
"updated": 1637874233687
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You may only add or delete pages to the Docs when the language is set to English.",
|
||||
"updated": 1613820648230
|
||||
"updated": 1613820648230,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Note: Sie können nur Seiten zu den Dokumenten hinzufügen oder löschen, wenn die Sprache auf Englisch eingestellt ist. Für die Übersetzung müssen Sie die Sprache auswählen, in die Sie übersetzen möchten.",
|
||||
"updated": 1637874245715
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+16
-2
@@ -4,12 +4,26 @@
|
||||
"type": "Value Zero",
|
||||
"definition": {
|
||||
"text": "At runtime some nodes might acquire a value, and when it is expected not to be zero this type of error will pop up. To avoid this type of error, Make sure that the Node where the error popped up never get a zero value.",
|
||||
"updated": 1611652416098
|
||||
"updated": 1611652416098,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zur Laufzeit (runtime) können einige nodes einen Wert erhalten, und wenn erwartet wird, dass er nicht Null sein wird, wird diese Art von Fehler angezeigt. Um diese Art von Error zu vermeiden, stellen Sie sicher, dass die Node, bei dem der Fehler auftrat, niemals einen Nullwert erhält (zero value).",
|
||||
"updated": 1637874566068
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Right click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use docs.save to save your changes and app.contribute to send it to the main repository."
|
||||
"text": "Right click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use docs.save to save your changes and app.contribute to send it to the main repository.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Klicken Sie mit der rechten Maustaste auf \"Bearbeiten\", um in den Bearbeitungsmodus zu gelangen und diesen Text zu ändern. ENTER, um neue Absätze zu schreiben. ESC, um den Bearbeitungsmodus zu verlassen. Dann können Sie docs.save verwenden, um Ihre Änderungen zu speichern und app.contribute, um sie an das Haupt-Repository zu senden.",
|
||||
"updated": 1637874594189
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+16
-2
@@ -4,12 +4,26 @@
|
||||
"type": "Value Zero Or Negative",
|
||||
"definition": {
|
||||
"text": "At runtime some nodes might acquire a value, and when it is expected not to be zero or negative this type of error will pop up. To avoid this type of error, Make sure that the Node where the error popped up never get a zero or negative value.",
|
||||
"updated": 1611652451957
|
||||
"updated": 1611652451957,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zur Laufzeit können einige Nodes einen Wert erhalten, und wenn erwartet wird, dass er nicht Null oder negativ ist, wird diese Art von Fehler angezeigt. Um diese Art von Fehler zu vermeiden, stellen Sie sicher, dass die Node, bei dem der Fehler auftrat, niemals einen Null- oder Negativwert erhält.",
|
||||
"updated": 1637874899636
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Right click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use docs.save to save your changes and app.contribute to send it to the main repository."
|
||||
"text": "Right click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use docs.save to save your changes and app.contribute to send it to the main repository.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Klicken Sie mit der rechten Maustaste auf \"Bearbeiten\", um in den Bearbeitungsmodus zu gelangen und diesen Text zu ändern. ENTER, um neue Absätze zu schreiben. ESC, um den Bearbeitungsmodus zu verlassen. Dann können Sie docs.save verwenden, um Ihre Änderungen zu speichern und app.contribute, um sie an das Haupt-Repository zu senden.",
|
||||
"updated": 1637874816277
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+14
-71
@@ -3,8 +3,8 @@
|
||||
"pageNumber": "2",
|
||||
"type": "Establish and Remove References",
|
||||
"definition": {
|
||||
"text": "To establish a reference, right-click on the first node and drag it close to the target node. The remove a reference, use the delink button on the menu.",
|
||||
"updated": 1609949247846,
|
||||
"text": "To establish a reference, right-click on the first node and drag it close to the target node. To remove a reference, use the delink button on the menu.",
|
||||
"updated": 1637690929227,
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
@@ -39,7 +39,7 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The reference is visually represented by a faint grey dotted line. Such line is visible only when both ends of the reference are visible.",
|
||||
"text": "The reference is visually represented by a faint grey dotted line.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
@@ -47,7 +47,12 @@
|
||||
"updated": 1633521251780,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
],
|
||||
"updated": 1637691076887
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "You may toggle these grey lines on and off using: Ctrl + Shift + Alt + Key-R"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -77,8 +82,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The process is exactly the same. All you need to do is master a few tricks so that you may drag one of the nodes all the way to where the second node is.",
|
||||
"updated": 1611940896508,
|
||||
"text": "The process is exactly the same. All you need to do is master a few tricks so that you may move one of the nodes all the way to where the second node is.",
|
||||
"updated": 1637690797249,
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
@@ -89,71 +94,9 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Youtube",
|
||||
"text": "_7Qp8KmNmWU?rel=0&autoplay=1&mute=1",
|
||||
"updated": 1616182407466
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "These UI tricks may make your life easier:",
|
||||
"updated": 1611940968078,
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Estos UI trucos pueden hacer tu vida más fácil:",
|
||||
"updated": 1633295979755,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Use the design space map as many times as required to find your way from one hierarchy to the other.",
|
||||
"updated": 1611940996169,
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Use el design space map tantas veces como sea necesario para encontrar el camino desde una jeraquía a la otra.",
|
||||
"updated": 1633296062866,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Pin the node you are going to move across the design space, so that you may drop it at any point to check the design space map for directions.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Fije el nodo que va a mover a través del espacio de diseño, para que pueda soltarlo en cualquier punto para chequear las direcciones en el mapa del espacio de diseño.",
|
||||
"updated": 1633296213030,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Use Ctrl / Command + arrow keys to drag the node across the screen after clicking on it with the mouse. Keep keys pressed and the node flies!",
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Use Ctrl / Command + arteclas de flechas para arrastrar el nodo a través dela pantalla despues de clickear en el con el mouse. Mantenga las teclas presionadas y el nodo vuela!",
|
||||
"updated": 1633296325908,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Remove the pin once the reference is established so that the node goes back to its place.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Remueve el fijado ona vez que la referencia sea establecida para que el nodo vuelva a su lugar.",
|
||||
"updated": 1633521325505,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
"style": "Include",
|
||||
"text": "Foundations->Topic->Basic Navigation->Moving Node Shortcuts",
|
||||
"updated": 1637690507758
|
||||
}
|
||||
]
|
||||
}
|
||||
+2
-1
@@ -54,7 +54,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": " Note: The Bots page brings these conceptual definitions down to earth and offers an overview of how what these top-level concepts are and how they interact with each other."
|
||||
"text": "The Bots page brings these conceptual definitions down to earth and offers an overview of how what these top-level concepts are and how they interact with each other.",
|
||||
"updated": 1637697607949
|
||||
}
|
||||
]
|
||||
}
|
||||
+20
-11
@@ -43,11 +43,18 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In the pages describing data mines and trading mines you will learn that bots are algorithms defined in such mines. That is, mines hold the source code and configuration—the complete set of definitions—of the three existing kinds of bots: sensors, indicators, and the trading bot."
|
||||
"text": "Bots are a very fluid concept within superalgos. You can think of them like a set of personal assistants each with a very specific job to do. A sensor bot collects information. An indicator bot preforms calculations on that information to create trading indicators. A trading bot places trade orders or backtests strategies. A social bot sends notifications using a social platform based on the preformance of the other bots, etc.",
|
||||
"updated": 1637698573606
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "As a user, you may use all bots in data mines shipping with the system. As a developer, you may create your own mines to develop your own sensors, indicators, and even a new trading bot."
|
||||
"text": "In the pages describing data mines and trading mines you will learn that bots are algorithms defined within these mines. That is, mines hold the source code and configuration—the complete set of definitions—of the existing kinds of bots: sensors, indicators, social, learning, the trading bots, etc. You can think of mines as the home for each kind of bot.",
|
||||
"updated": 1637698856223
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "As a user, you may use all bots in data mines shipping with the system. As a developer, you may create your own mines to develop your own bots. Anything that can be executed using a computer algorithm can be turned into a bot! The sky is the limit, with developers adding new bots regularly.",
|
||||
"updated": 1637698955490
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
@@ -81,6 +88,15 @@
|
||||
"style": "Text",
|
||||
"text": "A good example of such dependencies may be found when running a live trading session. In such a case, the trading bot depends on the sensor and all indicator bots used in the referenced trading system. Indicators must process the data so that the trading bot may analyze it in realtime. Therefore, before running a live trading session, the data mining operation must be running and up to date."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Bots need to know what kind of data they will need to access to do its job. Trading bots need to know which market of which exchange they should work with. Exchanges and markets are defined in the crypto ecosystem hierarchy. Bots obtain that information by establishing references with the appropriate markets in that hierarchy. It also needs to know which type of trading session it should run, and what trading system’s rules it should follow. For those reasons, trading bots are paired with a specific session, which in turn, references a trading system.",
|
||||
"updated": 1637699705206
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Trading systems are themselves hierarchies. You may create a trading system by following a framework in which strategies are described in stages. You do not need to code to create a strategy, as the rules are written with simple mathematical statements. However, both basic and advanced knowledge of JavaScript will give you an edge. You may test and deploy your trading system by running trading sessions from within the network hierarchy."
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Bots Execution"
|
||||
@@ -91,15 +107,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Bots need to know which market of which exchange they should work with. Exchanges and markets are defined in the crypto ecosystem hierarchy. Bots obtain that information by establishing references with the appropriate markets in that hierarchy."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In the case of the trading bot, it also needs to know which type of trading session it should run, and what trading system’s rules it should follow. For those reasons, trading bots are paired with a specific session, which in turn, references a trading system."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Trading systems are themselves hierarchies. You may create a trading system by following a framework in which strategies are described in stages. You do not need to code to create a strategy, as the rules are written with simple mathematical statements. However, both basic and advanced knowledge of JavaScript will give you an edge. You may test and deploy your trading system by running trading sessions from within the network hierarchy."
|
||||
"text": "In the end, bots can be created to access and use data from all hierarchies within the Superalgos ecosystem. They use this data to preform a job that helps the whole system work together to acomplish fine tuned effective trading!",
|
||||
"updated": 1637699645798
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
|
||||
+14
-14
@@ -31,12 +31,12 @@
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Superalgos Project->Definition",
|
||||
"text": "Foundations->Node->Foundations Project->Definition",
|
||||
"updated": 1609944933341
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Superalgos Project->Content",
|
||||
"text": "Foundations->Node->Foundations Project->Content",
|
||||
"updated": 1609944944285
|
||||
},
|
||||
{
|
||||
@@ -105,12 +105,12 @@
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Trading System->Definition",
|
||||
"text": "Algorithmic-Trading->Node->Trading System->Definition",
|
||||
"updated": 1609945942207
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Trading System->Content",
|
||||
"text": "Algorithmic-Trading->Node->Trading System->Content",
|
||||
"updated": 1609945952584
|
||||
},
|
||||
{
|
||||
@@ -119,12 +119,12 @@
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Trading Mine->Definition",
|
||||
"text": "Algorithmic-Trading->Node->Trading Mine->Definition",
|
||||
"updated": 1609945981528
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Trading Mine->Content",
|
||||
"text": "Algorithmic-Trading->Node->Trading Mine->Content",
|
||||
"updated": 1609945984960
|
||||
},
|
||||
{
|
||||
@@ -134,12 +134,12 @@
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Trading Engine->Definition",
|
||||
"text": "Algorithmic-Trading->Node->Trading Engine->Definition",
|
||||
"updated": 1609945998216
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Trading Engine->Content",
|
||||
"text": "Algorithmic-Trading->Node->Trading Engine->Content",
|
||||
"updated": 1609946001567
|
||||
},
|
||||
{
|
||||
@@ -149,12 +149,12 @@
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Data Mine->Definition",
|
||||
"text": "Data-Mining->Node->Data Mine->Definition",
|
||||
"updated": 1609946022992
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Data Mine->Content",
|
||||
"text": "Data-Mining->Node->Data Mine->Content",
|
||||
"updated": 1609946026584
|
||||
},
|
||||
{
|
||||
@@ -164,12 +164,12 @@
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Plugins->Definition",
|
||||
"text": "Community-Plugins->Node->Plugins->Definition",
|
||||
"updated": 1609946038957
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Plugins->Content",
|
||||
"text": "Community-Plugins->Node->Plugins->Content",
|
||||
"updated": 1609946042538
|
||||
},
|
||||
{
|
||||
@@ -179,12 +179,12 @@
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Tutorial->Definition",
|
||||
"text": "Education->Node->Tutorial->Definition",
|
||||
"updated": 1609946067573
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Tutorial->Content",
|
||||
"text": "Education->Node->Tutorial->Content",
|
||||
"updated": 1609946070683
|
||||
},
|
||||
{
|
||||
|
||||
+2
-2
@@ -9,12 +9,12 @@
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Trading Bot->Definition",
|
||||
"text": "Algorithmic-Trading->Node->Trading Bot->Definition",
|
||||
"updated": 1610218014743
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Trading Bot->Content",
|
||||
"text": "Algorithmic-Trading->Node->Trading Bot->Content",
|
||||
"updated": 1610218017545
|
||||
},
|
||||
{
|
||||
|
||||
-24
@@ -115,30 +115,6 @@
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Execution Started Event->Content",
|
||||
"updated": 1610105598223
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Foundations->Node->XXXXXXXX->Definition"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Foundations->Node->XXXXXXXX->Content"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Foundations->Node->XXXXXXXX->Definition"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Foundations->Node->XXXXXXXX->Content"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Foundations->Node->XXXXXXXX->Definition"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Foundations->Node->XXXXXXXX->Content"
|
||||
}
|
||||
]
|
||||
}
|
||||
+8
-8
@@ -3,8 +3,8 @@
|
||||
"pageNumber": 10,
|
||||
"type": "Bittrex Test Status",
|
||||
"definition": {
|
||||
"text": "Bittrex is tested for data mining BUT not for live trading.",
|
||||
"updated": 1634135329154
|
||||
"text": "Bittrex passed all tests.",
|
||||
"updated": 1637964636009
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
@@ -24,13 +24,13 @@
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616005641922
|
||||
"text": "Trading Capability [**]: Yes. The ability to run strategies in live-trading mode has been verified.",
|
||||
"updated": 1637964666144
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining it's extremely slow due to API restriction",
|
||||
"updated": 1615450349464
|
||||
"text": "Comments: KYC needed before using the platform. Google Authenticator needed to create API keys",
|
||||
"updated": 1637964814435
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
@@ -38,8 +38,8 @@
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"bittrex\",\n \"API\": [\n {\n \"method\": \"fetchOHLCV\",\n \"limit\": 1500\n }\n ]\n}",
|
||||
"updated": 1634135616222
|
||||
"text": "{ \n\"codeName\": \"bittrex\",\n \n\"sandBox\": \"false\"\n}",
|
||||
"updated": 1637964874756
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
|
||||
+2
-2
@@ -9,12 +9,12 @@
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Trading Engine->Definition",
|
||||
"text": "Algorithmic-Trading->Node->Trading Engine->Definition",
|
||||
"updated": 1611253576142
|
||||
},
|
||||
{
|
||||
"style": "Include",
|
||||
"text": "Foundations->Node->Trading Engine->Content"
|
||||
"text": "Algorithmic-Trading->Node->Trading Engine->Content"
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
|
||||
+128
-16
@@ -4,77 +4,189 @@
|
||||
"type": "Trading Farms - Set Up a Network of Nodes",
|
||||
"definition": {
|
||||
"text": "Install Superalgos on each machine, to then create and set up a network node for each machine. ",
|
||||
"updated": 1614352888183
|
||||
"updated": 1614352888183,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Installieren Sie Superalgos auf jedem Rechner, um dann für jeden Rechner eine Netzwerknode (Netzwerk Knoten) zu erstellen und einzurichten.\nIns deutsche Übersetzt von gitforkgit.",
|
||||
"updated": 1637876698345
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "There are essentially two approaches from here. ",
|
||||
"updated": 1614354810094
|
||||
"updated": 1614354810094,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Von hier aus gibt es im Wesentlichen zwei Ansätze.",
|
||||
"updated": 1637875828713
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Install All in One Node: The first one and probably the easiest one is to first install the markets at one Network Node and later move the branches you want to move to other Network Nodes.",
|
||||
"updated": 1614354841546
|
||||
"updated": 1614354841546,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "All in One Node installieren: Die erste und wahrscheinlich einfachste Möglichkeit besteht darin, die Markets zunächst an einer Netzwerk node zu installieren und später die branches (Zweigstellen), die Sie verschieben möchten, zu anderen Netzwerk nodes zu verschieben.",
|
||||
"updated": 1637875895046
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Install All in All Nodes: In this approach, you first create all Network Nodes and the install the markets you wish to work with, the install procedure will install each market at all nodes, so then you will need to delete all the duplicate stuff by hand."
|
||||
"text": "Install All in All Nodes: In this approach, you first create all Network Nodes and the install the markets you wish to work with, the install procedure will install each market at all nodes, so then you will need to delete all the duplicate stuff by hand.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "All in All Node installieren: Bei diesem Ansatz erstellen Sie zunächst alle Network Nodes und installieren dann die markets, mit denen Sie arbeiten möchten. Die Installationsprozedur installiert jeden Markt auf allen Knoten, so dass Sie anschließend alle doppelten Daten (Duplikate) von Hand löschen müssen.",
|
||||
"updated": 1637875971847
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Install Market"
|
||||
"text": "Install Market",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Market installieren",
|
||||
"updated": 1637875998237
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The procedure to setup a Network Node is by executing the Install Market menu option of a certain Market node. This is a complex procedure that will connect all the dots for you from A to Z. You can do by hand what this procedure does, but it will take you a lot of time, and you will need to know all the details of how to connect everything together.",
|
||||
"updated": 1617263888269
|
||||
"updated": 1617263888269,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das Verfahren zur Einrichtung einer Network node besteht darin, die Market menu option einer bestimmten Market node zu installieren. Dies ist ein komplexes Verfahren, das alle Punkte für Sie von A bis Z verbindet. Sie können dieses Verfahren auch von Hand ausführen, aber es wird Sie viel Zeit kosten, und Sie müssen alle Details kennen, um alles miteinander zu verbinden.",
|
||||
"updated": 1637876433613
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Important",
|
||||
"text": "One of the most important things to understand of this procedure is that it takes into account the things you have at the workspace at the moment you run this command. "
|
||||
"text": "One of the most important things to understand of this procedure is that it takes into account the things you have at the workspace at the moment you run this command. ",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Eines der wichtigsten Dinge, die Sie bei diesem Verfahren verstehen müssen, ist, dass es die Dinge berücksichtigt, die Sie zum Zeitpunkt der Ausführung dieses Befehls im Workspace haben.",
|
||||
"updated": 1637876525803
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "For example: if you have 2 trading systems, it will automatically create backtesting and live trading tasks for both of them.",
|
||||
"updated": 1617263908126
|
||||
"updated": 1617263908126,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ein Beispiel: Wenn Sie 2 trading systems haben, werden automatisch Backtesting und Live-Trading tasks für beide erstellt.",
|
||||
"updated": 1637876565042
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The procedure will also be applied to each Network Node found at the workspace, assuming that you will later delete the Tasks or other branches you don't need. But in order to do so, you need to know what is being added as a result of this execution.",
|
||||
"updated": 1617263931507
|
||||
"updated": 1617263931507,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das Verfahren wird auch auf jede Network Node im Workspace angewandt, vorausgesetzt, Sie löschen später die tasks oder andere nicht benötigte branches. Dazu müssen Sie aber wissen, was als Ergebnis dieser Ausführung hinzugefügt wird.",
|
||||
"updated": 1637876635609
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "At the LAN Network Hierarchy"
|
||||
"text": "At the LAN Network Hierarchy",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "In der LAN Network Hierarchy (LAN-Netzwerkhierarchie)",
|
||||
"updated": 1637876677554
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Here this procedure will essentially add 2 things:",
|
||||
"updated": 1617263943061
|
||||
"updated": 1617263943061,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hier wird dieses Verfahren im Wesentlichen 2 Dinge hinzufügen:",
|
||||
"updated": 1637876719719
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Tasks: This includes Backtesting, Live Trading, Learning or any other supported type of Task."
|
||||
"text": "Tasks: This includes Backtesting, Live Trading, Learning or any other supported type of Task.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Tasks: Dazu gehören Backtesting, Live Trading, Learning oder jede andere unterstützte Art von Task.",
|
||||
"updated": 1637876758941
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Data Products: You can think of this as references to the physical data. These definitions are what tells the system in general where the data is physically located.",
|
||||
"updated": 1617263962570
|
||||
"updated": 1617263962570,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Data Products: Sie können sich dies als Verweise auf die physischen Daten vorstellen. Diese Definitionen sagen dem System im Allgemeinen, wo sich die Daten physisch befinden.",
|
||||
"updated": 1637876822591
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "At the Charting Space Hierarchy"
|
||||
"text": "At the Charting Space Hierarchy",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "In der Charting Space Hierarchie",
|
||||
"updated": 1637876836807
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Here this procedure will add Time Machine s with Timeline Chart s inside of them. Deeper inside this branch, you will find Layer s node, which references the Data Products at the LAN Network Hierarchy. That reference is crucial for the system to know when you turn on a Layer at the charts, where the data needs to be fetched from (which Client).",
|
||||
"updated": 1617263990004
|
||||
"updated": 1617263990004,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hier wird dieses Verfahren Time Machine s mit Timeline Chart s in ihnen hinzufügen. Tiefer in dieser Branch finden Sie die Node Layer s, welche auf die Data products (Datenprodukte) in der LAN Network Hierarchy verweist. Diese reference (Referenz) ist wichtig, damit das System weiß, woher die Daten geholt werden müssen (von welchem Client), wenn Sie eine Layer in den Charts (Diagrammen) einschalten.",
|
||||
"updated": 1637877101462
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "If you understand all the previous relationships, you can go ahead and install a market in all Network Node s at the same time, and then try to delete all the duplicated definitions. If you don't have all that clear, it is recommended that you install all your markets at one single Network Node and then move the branches you want from one Network Node to the other.",
|
||||
"updated": 1617264010597
|
||||
"updated": 1617264010597,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie alle vorherigen Beziehungen verstehen, können Sie einen Markt in allen Network Node s gleichzeitig installieren und dann versuchen, alle duplizierten Definitionen zu löschen. Wenn Ihnen das nicht klar ist, empfiehlt es sich, alle markets in einer einzigen Network Node zu installieren und dann die gewünschten branches von einer Networknode zur anderen zu verschieben.",
|
||||
"updated": 1637877260476
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
|
||||
+8
-1
@@ -19,7 +19,14 @@
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Collaborate with this data mine and report issues directly at the contributor’s repository."
|
||||
"text": "Collaborate with this data mine and report issues directly at the contributor’s repository.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Arbeiten Sie mit dieser Datamine zusammen und melden Sie Probleme direkt an das Repository des Mitwirkenden.",
|
||||
"updated": 1637874691756
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+34
-3
@@ -4,13 +4,37 @@
|
||||
"type": "Setting Up a New Chart Tutorial",
|
||||
"definition": {
|
||||
"text": "This Tutorial walks through the basic inner workings of the Charting Space to help you learn how to create your own custom charts.",
|
||||
"updated": 1617371694835
|
||||
"updated": 1617371694835,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dieses Tutorial führt Sie durch die grundlegenden Funktionen des Charting Space, damit Sie lernen, wie Sie Ihre eigenen benutzerdefinierten Charts erstellen können.",
|
||||
"updated": 1637608066574
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "В этом Tutorial рассматриваются основные внутренние механизмы работы с Charting Space чтобы помочь вам научиться создавать собственные пользовательские графики.",
|
||||
"updated": 1637912833054
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "About This Tutorial",
|
||||
"updated": 1621986758641
|
||||
"updated": 1621986758641,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Über dieses Tutorial:",
|
||||
"updated": 1637608082763
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Об этом учебнике",
|
||||
"updated": 1637912854224
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -20,7 +44,14 @@
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Maintainer: @harrellbm (Telegram, and Discord).",
|
||||
"updated": 1621986769553
|
||||
"updated": 1621986769553,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Betreuer: @harrellbm (Telegram, and Discord).",
|
||||
"updated": 1637608124979
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+30
@@ -14,6 +14,16 @@
|
||||
"language": "ES",
|
||||
"text": "Hoy aprenderemos cómo agregar tus propios gráficos personalizados! Tendrás los conocimientos básicos que necesitas para desbloquear el poder de la Charting Space.",
|
||||
"updated": 1628637486011
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Heute werden wir lernen, wie Sie Ihre eigenen benutzerdefinierten Diagramme hinzufügen können! Am Ende dieses Tutorials werden Sie über die grundlegenden Kenntnisse verfügen, die Sie benötigen, um die Möglichkeiten des Charting Space zu nutzen.",
|
||||
"updated": 1637608290435
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Сегодня мы узнаем, как добавить свои собственные пользовательские диаграммы! К концу этого урока у вас будут базовые знания, необходимые для раскрытия возможностей Charting Space.",
|
||||
"updated": 1637913040668
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -27,6 +37,16 @@
|
||||
"language": "ES",
|
||||
"text": "¡El sistema de gráficos dentro de Superalgos es poderoso! Reúne información de todo el sistema para que puedas visualizarla cómodamente en un solo lugar. Como habrás descubierto, hay muchas piezas móviles dentro de Superalgos. The Charting Space te permite acceder a la información específica que desea ver.",
|
||||
"updated": 1628637309713
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das charting system ist leistungsstark! Es fasst Informationen aus dem gesamten System zusammen, so dass Sie sie bequem an einem Ort visualisieren können. Wie Sie vielleicht schon gemerkt haben, gibt es bei Superalgos eine Menge beweglicher Teile. Mit dem Charting Space können Sie die spezifischen Informationen abrufen, die Sie sehen möchten.",
|
||||
"updated": 1637608487988
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Система построения графиков очень мощная! Она собирает информацию из всей системы, чтобы вы могли удобно визуализировать ее в одном месте. Как вы уже догадались, в Superalgos очень много движущихся частей. Charting Space позволяет получить конкретную информацию, которую вы хотите увидеть.",
|
||||
"updated": 1637913209029
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -39,6 +59,16 @@
|
||||
"language": "ES",
|
||||
"text": "Puedes ver diferentes combinaciones de indicadores, backtesting y resultados de operaciones en vivo, ¡y datos de diferentes mercados y exchanges! Esta flexibilidad hace posible personalizar gráficos.",
|
||||
"updated": 1628637909692
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können verschiedene Kombinationen von Indikatoren, Backtesting- und Live Trading Ergebnissen und sogar Daten von verschiedenen Markets (Märkten) und Exchanges (Börsen) betrachten! Dank dieser Flexibilität können Sie die Charts nach Herzenslust anpassen. Ziemlich cool, oder?",
|
||||
"updated": 1637608620263
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Вы можете просматривать различные комбинации индикаторов, результаты бэктестинга и реальной торговли Trading , даже данные с разных рынков и бирж! Такая гибкость позволяет настраивать графики по своему усмотрению. Очень круто!",
|
||||
"updated": 1637913366764
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+62
-4
@@ -14,6 +14,16 @@
|
||||
"language": "ES",
|
||||
"text": "Antes de comenzar a crear gráficos personalizados, debes asegurate de conocer los conceptos básicos para moverse dentro de Superalgos.",
|
||||
"updated": 1628638892014
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bevor Sie mit der Erstellung von benutzerdefinierten Diagrammen beginnen, sollten Sie sicherstellen, dass Sie sich mit den Grundlagen in Superalgos vertraut gemacht haben.",
|
||||
"updated": 1637608746725
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Прежде чем приступить к созданию пользовательских графиков, необходимо убедиться, что вы знаете основы работы в Superalgos.",
|
||||
"updated": 1637914097943
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -27,24 +37,62 @@
|
||||
"language": "ES",
|
||||
"text": "Antes de comenzar, este tutorial asume que has terminado los siguientes tutoriales:",
|
||||
"updated": 1628638917375
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bevor wir beginnen, geht dieses Tutorial davon aus, dass Sie die folgenden Tutorials abgeschlossen haben:",
|
||||
"updated": 1637608800606
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Прежде чем мы начнем, в этом руководстве предполагается, что вы закончили следующие руководства:",
|
||||
"updated": 1637914133306
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Welcome to Superalgos Tutorial"
|
||||
"text": "Welcome to Superalgos Tutorial",
|
||||
"translations": [
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Welcome to Superalgos Tutorial (Добро пожаловать в учебник Superalgos)",
|
||||
"updated": 1637914330246
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Basic Education Tutorial"
|
||||
"text": "Basic Education Tutorial",
|
||||
"translations": [
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Basic Education Tutorial (Учебный курс по базовому образованию)",
|
||||
"updated": 1637914368864
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Beyond the Basics Tutorial"
|
||||
"text": "Beyond the Basics Tutorial",
|
||||
"translations": [
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Beyond the Basics Tutorial (За пределами базового урока)",
|
||||
"updated": 1637914402201
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Install a New Market Tutorial"
|
||||
"text": "Install a New Market Tutorial",
|
||||
"translations": [
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Install a New Market Tutorial (Установка нового учебника по рынку)",
|
||||
"updated": 1637914425622
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -55,6 +103,16 @@
|
||||
"language": "ES",
|
||||
"text": "Si no has completado estos tutoriales y no tienes un conocimiento básico de cómo moverte dentro de tu Workspace, este tutorial puede resultar confuso. Te sugiero que hagas una pausa y vuelvas aquí una vez que conozcas un poco el camino.",
|
||||
"updated": 1628638970811
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie diese Tutorials noch nicht absolviert haben und nicht wissen, wie Sie sich in Ihrem Arbeitsbereich bewegen, kann dieses Tutorial verwirrend sein. Ich würde vorschlagen, dass Sie eine Pause einlegen und hierher zurückkommen, sobald Sie sich ein wenig auskennen.",
|
||||
"updated": 1637609330133
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Если вы не прошли эти уроки и не имеете базовых знаний о том, как перемещаться в рабочей области (Workspace), этот урок может показаться вам непонятным. Я бы предложил вам сделать паузу и вернуться сюда, когда вы немного освоитесь.",
|
||||
"updated": 1637914221449
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+30
@@ -14,6 +14,16 @@
|
||||
"language": "ES",
|
||||
"text": "Es frustrante mirar un gráfico vacío. Estoy aquí para asegurarme de que no te sientas atrapado configurando los gráficos de tus sueños.",
|
||||
"updated": 1628639062880
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es ist frustrierend, auf eine leere chart zu schauen. Ich bin hier, um dafür zu sorgen, dass Sie nicht das Gefühl haben, die charts Ihrer Träume nicht erstellen zu können.",
|
||||
"updated": 1637612228833
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Обидно смотреть на пустой график. Я здесь, чтобы убедиться, что вы не застрянете в настройке графиков вашей мечты.",
|
||||
"updated": 1637914550680
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -27,6 +37,16 @@
|
||||
"language": "ES",
|
||||
"text": "Si recién está comenzando aquí en Superalgos, toda esta libertad puede ser un poco abrumadora. Superalgos te permite hacer casi cualquier cosa que se te ocurra, pero hay algunas piezas clave del rompecabezas que deben estar en su lugar.",
|
||||
"updated": 1628639135840
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie gerade erst in Superalgos anfangen, könnte all diese Freiheit ein wenig überwältigend sein. Superalgos erlaubt es Ihnen, fast alles zu tun, was Sie sich ausdenken können, aber es gibt einige wichtige Puzzlestücke, die an ihrem Platz sein müssen.",
|
||||
"updated": 1637612271526
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Если вы только начинаете работать в Superalgos, вся эта свобода может показаться вам немного подавляющей. Superalgos позволяет вам делать практически все, что вы можете придумать, но есть несколько ключевых частей головоломки, которые должны быть на месте.",
|
||||
"updated": 1637914687650
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -39,6 +59,16 @@
|
||||
"language": "ES",
|
||||
"text": "¡Ahí es donde entro yo! ¡Mis amigos y yo les explicaremos cómo personalizar gráficos de principio a fin! Cuando terminemos, tendrás las herramientas para crear gráficos limitados solo por su imaginación.",
|
||||
"updated": 1628639172038
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Genau da komme ich ins Spiel! Meine Freunde und ich werden Ihnen zeigen, wie Sie charts (Diagramme) von Anfang bis Ende anpassen können! Wenn wir fertig sind, werden Sie die Werkzeuge haben, um charts zu erstellen, die nur durch Ihre Fantasie begrenzt sind.",
|
||||
"updated": 1637612350300
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Вот тут-то я и прихожу на помощь! Я и мои друзья расскажем вам, как настроить диаграммы от начала до конца! К тому времени, когда мы закончим, у вас будут инструменты для создания диаграмм, ограниченные только вашим воображением.",
|
||||
"updated": 1637914717905
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+54
-3
@@ -14,6 +14,16 @@
|
||||
"language": "ES",
|
||||
"text": "Seguí adelante e instalé algunos bloques de construcción básicos dentro de este Workspace para que podamos empezar a crear gráficos personalizados rápidamente.",
|
||||
"updated": 1628639251718
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ich habe einige grundlegende building blocks (Bausteine) in diesem Arbeitsbereich installiert, damit wir schnell mit der Erstellung benutzerdefinierter charts beginnen können.",
|
||||
"updated": 1637612559440
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Я установил несколько основных строительных блоков в этом рабочем пространстве (Workspace) чтобы мы могли быстро перейти к созданию пользовательских графиков.",
|
||||
"updated": 1637914880463
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -27,20 +37,51 @@
|
||||
"language": "ES",
|
||||
"text": "Los bloques de construcción que instalé son:",
|
||||
"updated": 1628639290050
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die von mir installierten building blocks sind:",
|
||||
"updated": 1637612546766
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Строительные блоки, которые я установил, следующие:",
|
||||
"updated": 1637914914956
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Data Mine"
|
||||
"text": "Data Mine",
|
||||
"translations": [
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Data Mine (Шахта данных)",
|
||||
"updated": 1637914966428
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading System "
|
||||
"text": "Trading System ",
|
||||
"translations": [
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Trading System (Торговая система)",
|
||||
"updated": 1637914984112
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market "
|
||||
"text": "Market ",
|
||||
"translations": [
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Market (Рынок)",
|
||||
"updated": 1637914999664
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -51,6 +92,16 @@
|
||||
"language": "ES",
|
||||
"text": "Todo lo que hagamos hoy se construirá sobre esta configuración básica. Te guiaré a través de lo que instalé para darte una idea de lo que construiremos hoy.",
|
||||
"updated": 1628639317378
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Alles, was wir heute tun, wird auf diesem Basic setup aufbauen. Ich werde Ihnen zeigen, was ich installiert habe, um Ihnen eine Vorstellung davon zu geben, worauf wir heute aufbauen werden.",
|
||||
"updated": 1637612647749
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Все, что мы будем делать сегодня, будет построено на основе этой базовой установки. Я расскажу вам о том, что я установил, чтобы дать вам представление о том, на чем мы будем строить сегодня.",
|
||||
"updated": 1637915029388
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+30
@@ -14,6 +14,16 @@
|
||||
"language": "ES",
|
||||
"text": "Antes de que podamos ver los gráficos, ¡necesitamos datos! He instalado algunos Data Mines y un Trading System.",
|
||||
"updated": 1628639352007
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bevor wir uns Charts ansehen können, brauchen wir Daten! Ich habe ein paar Data Mines und ein Trading System installiert.",
|
||||
"updated": 1637612731757
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Прежде чем рассматривать графики, нам нужны данные! Я установил несколько шахт данных (Data Mines) и торговую систему (Trading System).",
|
||||
"updated": 1637915147584
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -27,6 +37,16 @@
|
||||
"language": "ES",
|
||||
"text": "You should see the Candles, Masters, y Sparta data mine plugins. Estos nos dan acceso a una serie de indicadores interesantes. Para este tutorial solo usaremos el Candles Data Mine. Mis amigos te enseñarán cómo crear gráficos usando el otro data mines. También instalé el plugin Lighting Strike Trading System.",
|
||||
"updated": 1628639477988
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie sollten die Candles, Masters und Sparta data mine plugins ansehen. Diese ermöglichen uns den Zugang zu einer Reihe interessanter Indikatoren. In diesem Tutorial werden wir nur die Candles Data Mine verwenden. Meine Freunde werden Ihnen später zeigen, wie Sie charts mit den anderen data mines erstellen können. Ich habe auch das Lighting Strike Trading System Plugin installiert.",
|
||||
"updated": 1637613044410
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Вы должны увидеть плагины Candles, Masters и Sparta data mine. Они дают нам доступ к ряду интересных индикаторов. Для этого учебника мы будем использовать только шахты данных свечей (Data Mine). Мои друзья научат вас создавать графики с использованием других шахт данных позже. Я также установил плагин торговой системы Lighting Strike (Trading System).",
|
||||
"updated": 1637915564262
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -39,6 +59,16 @@
|
||||
"language": "ES",
|
||||
"text": "Este es el mismo sistema comercial con el que interactuó durante los tutoriales de bienvenida.",
|
||||
"updated": 1628639517053
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dies ist dasselbe trading system, mit dem Sie während der Willkommens-Tutorials interagiert haben.",
|
||||
"updated": 1637613102882
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Это та же самая торговая система, с которой вы взаимодействовали во время приветственных уроков.",
|
||||
"updated": 1637915579748
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+51
-1
@@ -14,6 +14,16 @@
|
||||
"language": "ES",
|
||||
"text": "Puedes recordar esta pregunta del tutorial de bienvenida. ¿Estás operando en binance.com o binance.us?",
|
||||
"updated": 1628639559252
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Vielleicht erinnern Sie sich an diese Frage aus dem Willkommenstutorial. Handeln Sie bei binance.com oder binance.us?",
|
||||
"updated": 1637613425795
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Возможно, вы помните этот вопрос из приветственного урока. Вы торгуете на binance.com или binance.us?",
|
||||
"updated": 1637915646125
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -27,6 +37,16 @@
|
||||
"language": "ES",
|
||||
"text": "Este espacio de trabajo fue construido usando binance.com. Si ese es su intercambio, continúe y omita este paso. Sin embargo, si sus datos están almacenados en binance.us, deberá realizar un ajuste rápido.",
|
||||
"updated": 1628639619761
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dieser workspace wurde mit binance.com erstellt. Wenn dies Ihr exchange ist, können Sie diesen Schritt überspringen. Wenn Ihre Daten jedoch auf binance.us gespeichert sind, müssen Sie eine kurze Anpassung vornehmen.",
|
||||
"updated": 1637613649493
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Это рабочее пространство было построено с использованием binance.com. Если это ваш обмен, продолжайте и пропустите этот шаг. Однако, если ваши данные хранятся на binance.us вам нужно будет сделать одну быструю настройку.",
|
||||
"updated": 1637915731066
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -39,18 +59,38 @@
|
||||
"language": "ES",
|
||||
"text": "Configure el nodo Binance a tu izquierda.",
|
||||
"updated": 1628639643918
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Konfigurieren Sie die Binance Node zu Ihrer Linken.",
|
||||
"updated": 1637613673124
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Настройте узел Binance слева от вас.",
|
||||
"updated": 1637915753924
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Open the configuration and change the codeName to binanceus. Move the mouse pointer out of the configuration bubble and it will close and save automatically.",
|
||||
"updated": 1628362245139,
|
||||
"updated": 1637613950322,
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Open la configuración y cambiar la codeName a binanceus. Mueva el puntero del mouse fuera de la burbuja de configuración y se cerrará y guardará automáticamente.",
|
||||
"updated": 1628639735404
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Öffnen Sie die configuration und ändern Sie den CodeName in binance.us. Bewegen Sie den Mauszeiger aus der Konfigurationsblase und sie wird automatisch geschlossen und gespeichert",
|
||||
"updated": 1637614015199
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Откройте конфигурацию и измените CodeName на binanceus. Выведите указатель мыши из пузырька конфигурации, и он автоматически закроется и сохранится.",
|
||||
"updated": 1637915859838
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -63,6 +103,16 @@
|
||||
"language": "ES",
|
||||
"text": "Clic en Edit de la etiqueta del nodo a leer Binanceus.",
|
||||
"updated": 1628639820319
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ändern Sie die Bezeichnung der Node so, dass sie Binanceus lautet.",
|
||||
"updated": 1637614035479
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Отредактируйте метку узла так, чтобы она читалась как Binanceus.",
|
||||
"updated": 1637915855217
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+30
@@ -14,6 +14,16 @@
|
||||
"language": "ES",
|
||||
"text": "Para finalizar esta configuración básica, seguí adelante e instalé el BTC/USDT mercado para usted.",
|
||||
"updated": 1628639995753
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um dieses basic setup abzuschließen, habe ich den BTC/USDT-Markt für Sie installiert.",
|
||||
"updated": 1637614250929
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Чтобы завершить эту базовую настройку, я установил для вас рынок BTC/USDT.",
|
||||
"updated": 1637916046153
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -27,6 +37,16 @@
|
||||
"language": "ES",
|
||||
"text": "El Install a New Market Tutorial le enseñó que instalar un mercado establece todo lo que necesita para un espacio de trabajo básico de Superalgos. Esto incluye configurar automáticamente un Backtesting Session, Live Trading Session, y gráficos para cada Trading System presente en el workspace.",
|
||||
"updated": 1628640053192
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Tutorial \"Install a New Market Tutorial\" haben Sie gelernt, dass die Installation eines Marktes alles einrichtet, was Sie für einen grundlegenden Superalgos Workspace benötigen. Dazu gehört das automatische Einrichten einer Backtesting Session, Live Trading Session, und von Charts für jedes Trading System, das im Workspace vorhanden ist.",
|
||||
"updated": 1637614488304
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "В руководстве по установке нового рынка (Install a New Market Tutorial) вы узнали, что установка рынка настраивает все необходимое для базового рабочего пространства Superalgos. Это включает в себя автоматическую настройку сеанса бэктестинга (Backtesting Session),торговой сессии в реальном времени (Live Trading Session), и графиков для каждой торговой системы (Trading System) присутствующей в рабочем пространстве.",
|
||||
"updated": 1637916802936
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -39,6 +59,16 @@
|
||||
"language": "ES",
|
||||
"text": "Puede ejecutar esta configuración básica tal como está. De hecho, si estás buscando una forma básica de configurar las cosas, instala un plugin Data Mine, Trading System, y terminando instalando un Market te pondrán en funcionamiento en poco tiempo. ¡Pero ese no es el objetivo de este tutorial! ",
|
||||
"updated": 1628641375531
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können dieses basic setup in ihrer jetzigen Form verwenden. Wenn Sie nach einer einfachen Möglichkeit suchen, die Dinge einzurichten, reicht es aus, eine Plugin Data Mine, ein trading system und schließlich einen Markt zu installieren, damit Sie im Handumdrehen loslegen können. Aber das ist nicht der Sinn dieses Tutorials! Schauen wir uns ein paar custom charts (Benutzerdefinierte) an!",
|
||||
"updated": 1637614729947
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Вы можете использовать эту базовую установку в ее нынешнем виде. На самом деле, если вы ищете базовый способ настройки, установка плагина Data Mine, Trading System, и, наконец, установка Market позволит вам быстро начать работу. Но это не главное в этом учебнике (Tutorial)! Давайте рассмотрим некоторые пользовательские графики!",
|
||||
"updated": 1637917553893
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+40
@@ -14,6 +14,16 @@
|
||||
"language": "ES",
|
||||
"text": "Este tutorial te ayudará a configurar tu primer gráfico personalizado. Los conceptos fundamentales que aprenda aquí lo ayudarán a aprovechar al máximo la Charting Space.",
|
||||
"updated": 1628641477952
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dieses Tutorial hilft Ihnen, Ihre erste benutzerdefinierte chart zu erstellen. Die grundlegenden Konzepte, die Sie hier lernen, werden Ihnen helfen, das Beste aus dem Charting Space herauszuholen.",
|
||||
"updated": 1637615937010
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Этот учебник поможет вам настроить свою первую пользовательскую диаграмму. Основополагающие концепции, которые вы здесь изучите, помогут вам максимально использовать возможности Charting Space.",
|
||||
"updated": 1637918595225
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -27,6 +37,16 @@
|
||||
"language": "ES",
|
||||
"text": "En particular, vamos a conectar un Time Machine a los indicadores de la Candles Data Mine. Estos indicadores serán los datos básicos que trazamos en nuestro gráfico.",
|
||||
"updated": 1628641565219
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Insbesondere werden wir eine Time Machine mit den Indikatoren der Candles Data Mine verbinden. Diese Indikatoren werden die Kerndaten sein, die wir in unserer chart plotten (darstellen).",
|
||||
"updated": 1637616024944
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "В частности, мы собираемся подключить машину времени (Time Machine) к индикаторам шахты Candles Data Mine. Эти индикаторы будут основными данными, которые мы наносим на наш график.",
|
||||
"updated": 1637918725340
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -39,6 +59,16 @@
|
||||
"language": "ES",
|
||||
"text": "Por ejemplo velas, bandas de bollinger, soportes, etc.",
|
||||
"updated": 1628641605085
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zum Beispiel candles, bollinger bands, supports, etc.",
|
||||
"updated": 1637616191419
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Например, свечи, полосы Боллинджера, поддержки и т.д.",
|
||||
"updated": 1637918742832
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -51,6 +81,16 @@
|
||||
"language": "ES",
|
||||
"text": "También adjuntaremos el Backtesting Session para el Lighting Strike Trading System. Esto nos permitirá ver la salida del trading system en nuestro gráfico también.",
|
||||
"updated": 1628641719712
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wir werden auch die Backtesting Session mit dem Lighting Strike Trading System verbinden. So können wir den Output des trading systems auch in unserem Chart sehen!",
|
||||
"updated": 1637616271842
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Мы также приложим сессию бэктестинга (Backtesting Session) для торговой системы (Trading System) Lighting Strike. Это позволит нам увидеть вывод торговой системы на нашем графике!",
|
||||
"updated": 1637918901245
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+40
@@ -14,6 +14,16 @@
|
||||
"language": "ES",
|
||||
"text": "El primer nodo del que aprenderemos hoy es el Dashboard. Un Dashboard nos ayuda a mantenernos organizados.",
|
||||
"updated": 1628641836641
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die erste node, welche wir heute kennenlernen werden, ist das Dashboard. Ein Dashboard hilft uns, organisiert zu bleiben.",
|
||||
"updated": 1637616416519
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Первый узел, о котором мы сегодня узнаем, - это Dashboard. Dashboard - Приборная панель помогает нам оставаться организованными.",
|
||||
"updated": 1637920880908
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -27,6 +37,16 @@
|
||||
"language": "ES",
|
||||
"text": "Para empezar, quiero que se sienta un poco más cómodo con la forma en que Charting Space está arreglado.",
|
||||
"updated": 1628641961306
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Für den Anfang möchte ich, dass Sie sich ein wenig mit dem Aufbau des Charting Space vertraut machen.",
|
||||
"updated": 1637616455845
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Чтобы начать, я хочу, чтобы вы немного освоились с тем, как настроено пространство графиков (Charting Space).",
|
||||
"updated": 1637920928928
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -39,6 +59,16 @@
|
||||
"language": "ES",
|
||||
"text": "Tómate unos minutos y observa esta jerarquía. ¿Que notaste?",
|
||||
"updated": 1628641984247
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Nehmen Sie sich ein paar Minuten Zeit und sehen Sie sich in dieser Hierarchie um. Was fällt Ihnen auf?",
|
||||
"updated": 1637616473699
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Уделите несколько минут и оглянитесь вокруг этой иерархии. Что вы заметили?",
|
||||
"updated": 1637920975675
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -51,6 +81,16 @@
|
||||
"language": "ES",
|
||||
"text": "¡Así es! Hay un Dashboard configurado para Backtesting,uno para Live Trading, Y un tercero para Learning Tasks. Dashboards son una forma conveniente de agrupar gráficos según el tipo o cualquier otro criterio, para el caso.",
|
||||
"updated": 1628642097225
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das ist richtig! Es gibt ein Dashboard für das Backtesting, eines für das Live Trading und ein drittes für Learning Tasks. Dashboards sind eine bequeme Möglichkeit, Charts nach ihrem Typ oder nach anderen Kriterien zu gruppieren.",
|
||||
"updated": 1637616563270
|
||||
},
|
||||
{
|
||||
"language": "RU",
|
||||
"text": "Правильно! Одна приборная панель (Dashboard) настроена для бэктестинга, другая - для реальной торговли Live (Trading), а третья - для учебных задач (Learning Tasks). Приборные панели - это удобный способ группировки графиков по типу или любым другим критериям, если на то пошло.",
|
||||
"updated": 1637921124261
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
Loaded 100 of 278 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user