Merge branch 'Superalgos:develop' into develop
This commit is contained in:
430 files changed
+429382
-382091
No files matched your search
@@ -0,0 +1,29 @@
|
||||
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
|
||||
|
||||
# These owners will be the default owners for everything in
|
||||
# the repo. Unless a later match takes precedence, these will be requested for
|
||||
# review when someone opens a pull request.
|
||||
* @Superalgos/core-devs
|
||||
|
||||
# Project Teams
|
||||
/Projects/Algorithmic-Trading @Superalgos/algorithmic-trading-project
|
||||
/Projects/Community-Plugins @Superalgos/community-plugins-project
|
||||
/Projects/Data-Mining @Superalgos/data-mining-project
|
||||
/Projects/Ethereum @Superalgos/ethereum-project
|
||||
/Projects/Foundations @Superalgos/foundations-project
|
||||
/Projects/Governance @Superalgos/governance-project
|
||||
/Projects/Machine-Learning @Superalgos/machine-learning-project
|
||||
/Projects/Network @Superalgos/network-project
|
||||
/Projects/Social-Bots @Superalgos/social-bots-project
|
||||
/Projects/Social-Trading @Superalgos/social-trading-project
|
||||
/Projects/TensorFlow @Superalgos/tensorflow-project
|
||||
/Projects/Visual-Scripting @Superalgos/visual-scripting-project
|
||||
|
||||
/Projects/Education @Superalgos/education-project
|
||||
Docs*/ @Superalgos/education-project
|
||||
|
||||
/.github @Superalgos/sysadmins-team
|
||||
/Docker @Superalgos/sysadmins-team
|
||||
.git* @Superalgos/sysadmins-team
|
||||
.docker* @Superalgos/sysadmins-team
|
||||
package*.json @Superalgos/sysadmins-team
|
||||
@@ -1,33 +0,0 @@
|
||||
# name of your github action
|
||||
name: CI
|
||||
# this will help you specify where to run
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
# this will run on the electron branch
|
||||
- develop
|
||||
# this is where the magic happens, each job happens in parallel btw
|
||||
jobs:
|
||||
build_on_mac:
|
||||
runs-on: macOS-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
with:
|
||||
ref: develop
|
||||
- uses: actions/setup-node@master
|
||||
with:
|
||||
node-version: 16
|
||||
- name: see directory
|
||||
run: ls
|
||||
|
||||
build_on_win:
|
||||
runs-on: windows-2016
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
with:
|
||||
ref: develop
|
||||
- uses: actions/setup-node@master
|
||||
with:
|
||||
node-version: 16
|
||||
- name: see directory
|
||||
run: ls
|
||||
@@ -1,9 +1,14 @@
|
||||
name: Build/release
|
||||
name: Build/release Binaries
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
tags:
|
||||
- '*'
|
||||
release:
|
||||
types: [published, created, edited]
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
release:
|
||||
@@ -11,16 +16,16 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest]
|
||||
os: [windows-latest, macos-latest]
|
||||
|
||||
steps:
|
||||
- name: Check out Git repository
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install Node.js, NPM and Yarn
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 16
|
||||
node-version: 14
|
||||
|
||||
- name: Build/release Electron app
|
||||
uses: samuelmeuli/action-electron-builder@v1
|
||||
@@ -28,7 +33,8 @@ jobs:
|
||||
# GitHub token, automatically provided to the action
|
||||
# (No need to define this secret in the repo settings)
|
||||
github_token: ${{ secrets.github_token }}
|
||||
args: "-c.extraMetadata.main=electron-wrapper.js -c build/electron-builder.json"
|
||||
|
||||
# If the commit is tagged with a version (e.g. "v1.0.0"),
|
||||
# release the app after building
|
||||
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
||||
release: ${{ startsWith(github.ref, 'refs/tags/') }}
|
||||
@@ -0,0 +1,80 @@
|
||||
name: Nightly develop Binaries
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '20 3 * * *'
|
||||
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
create-release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Download a file
|
||||
run: curl "https://raw.githubusercontent.com/${{ github.repository }}/develop/package.json" -o package.json
|
||||
|
||||
- name: Get current date
|
||||
id: date
|
||||
run: echo "::set-output name=date::$(date +'%Y%m%d')"
|
||||
|
||||
- name: get-version
|
||||
id: version
|
||||
uses: nyaa8/package-version@v1
|
||||
with:
|
||||
path: './package.json'
|
||||
|
||||
- name: Create nightly release
|
||||
id: create_release
|
||||
uses: viperproject/create-nightly-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ env.PACKAGE_VERSION }}.${{ steps.date.outputs.date }}
|
||||
release_name: Superalgos ${{ env.PACKAGE_VERSION }} Snapshot ${{ steps.date.outputs.date }}
|
||||
keep_num: 5
|
||||
keep_tags: false
|
||||
|
||||
build-release:
|
||||
runs-on: ${{ matrix.os }}
|
||||
needs: create-release
|
||||
strategy:
|
||||
matrix:
|
||||
os: [windows-latest, macos-latest]
|
||||
|
||||
steps:
|
||||
- name: Get current date
|
||||
id: date
|
||||
run: echo "::set-output name=date::$(date +'%Y%m%d')"
|
||||
|
||||
- name: Check out Git repository
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: develop
|
||||
|
||||
- name: Install Node.js, NPM and Yarn
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
|
||||
- name: get-version
|
||||
id: version
|
||||
uses: nyaa8/package-version@v1
|
||||
with:
|
||||
path: './package.json'
|
||||
|
||||
- name: Build/release Electron app
|
||||
#env:
|
||||
# DATE: ${{ steps.date.outputs.date }}
|
||||
uses: samuelmeuli/action-electron-builder@v1
|
||||
with:
|
||||
# GitHub token, automatically provided to the action
|
||||
# (No need to define this secret in the repo settings)
|
||||
github_token: ${{ secrets.github_token }}
|
||||
args: "-c.extraMetadata.main=electron-wrapper.js -c.extraMetadata.version=${{ env.PACKAGE_VERSION }}.${{ steps.date.outputs.date }} -c build/electron-builder.json -p onTagOrDraft"
|
||||
|
||||
# If the commit is tagged with a version (e.g. "v1.0.0"),
|
||||
# release the app after building
|
||||
# release: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
||||
release: true
|
||||
|
||||
|
||||
Vendored
+10
-10
@@ -4,22 +4,22 @@
|
||||
"**/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,
|
||||
"**/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,
|
||||
"**/My-Network-Nodes-Data": true,
|
||||
"**/My-Workspaces": true,
|
||||
"**/My-Secrets": true,
|
||||
"**/My-Data-Storage": true,
|
||||
"**/My-Log-Files": true,
|
||||
},
|
||||
"search.maintainFileSearchCache": true
|
||||
}
|
||||
@@ -8,16 +8,14 @@ exports.newDesktopApp = function newDesktopApp() {
|
||||
|
||||
async function run() {
|
||||
/*
|
||||
Heree we will store our running objects:
|
||||
Here we will store our running objects:
|
||||
*/
|
||||
DK.running = {}
|
||||
|
||||
/*
|
||||
This is the Web Sockets client that interacts with the Superalgos Network.
|
||||
This is the Personal Social Graph for the user running this App.
|
||||
*/
|
||||
DK.running.socialGraph = DK.projects.socialTrading.modules.socialGraph.newSocialTradingModulesSocialGraph()
|
||||
await DK.running.socialGraph.initialize()
|
||||
|
||||
/*
|
||||
This is the Web Sockets client that interacts with the Superalgos Network.
|
||||
*/
|
||||
@@ -25,11 +23,11 @@ exports.newDesktopApp = function newDesktopApp() {
|
||||
await DK.running.webSocketsClient.initialize()
|
||||
console.log('Desktop Client Connected to Network Node via Web Sockets ................... Connected to port ' + global.env.NETWORK_WEB_SOCKETS_INTERFACE_PORT)
|
||||
|
||||
/* These are the Network Interfaces by which the UI interacts with the Desktop App.*/
|
||||
/* These are the Network Interfaces by which the Web App interacts with this Desktop Client.*/
|
||||
|
||||
DK.running.webSocketsInterface = DK.projects.socialTrading.modules.webSocketsInterface.newDesktopModulesWebSocketsInterface()
|
||||
DK.running.webSocketsInterface.initialize()
|
||||
console.log('Desktop Client Web Sockets Interface ....................................... Listening at port ' + global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT)
|
||||
console.log('Desktop Client Web Sockets Interface ....................................... Listening at port ' + global.env.DESKTOP_WEB_SOCKETS_INTERFACE_PORT)
|
||||
|
||||
|
||||
DK.running.httpInterface = DK.projects.socialTrading.modules.httpInterface.newDesktopModulesHttpInterface()
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
function newWebApp() {
|
||||
/*
|
||||
In it's current state of development, the Web App only has one module.
|
||||
|
||||
Everything is being coded here until some structure emerges.
|
||||
*/
|
||||
let thisObject = {
|
||||
initialize: initialize,
|
||||
finalize: finalize
|
||||
@@ -123,7 +127,6 @@ function newWebApp() {
|
||||
function addToContentDiv(events) {
|
||||
try {
|
||||
let contentDiv = document.getElementById('content-div')
|
||||
|
||||
/*
|
||||
Delete al current content.
|
||||
*/
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ exports.newDesktopRoot = function newDesktopRoot() {
|
||||
*/
|
||||
global.SA = {}
|
||||
/* Load Environment Variables */
|
||||
let ENVIRONMENT = require('./EnvironmentForDebug.js');
|
||||
let ENVIRONMENT = require('./Environment.js');
|
||||
let ENVIRONMENT_MODULE = ENVIRONMENT.newEnvironment()
|
||||
global.env = ENVIRONMENT_MODULE
|
||||
/*
|
||||
|
||||
+8
-3
@@ -10,14 +10,19 @@ exports.newEnvironment = function () {
|
||||
let thisObject = {
|
||||
BASE_PATH: basePath,
|
||||
WEB_SERVER_URL: 'localhost',
|
||||
CLIENT_WEB_SOCKETS_INTERFACE_PORT: 18041,
|
||||
CLIENT_HTTP_INTERFACE_PORT: 34248,
|
||||
PLATFORM_WEB_SOCKETS_INTERFACE_PORT: 18041,
|
||||
NETWORK_WEB_SOCKETS_INTERFACE_PORT: 18042,
|
||||
DESKTOP_WEB_SOCKETS_INTERFACE_PORT: 18043,
|
||||
DESKTOP_WEB_SOCKETS_INTERFACE_HOST: 'localhost',
|
||||
PLATFORM_HTTP_INTERFACE_PORT: 34248,
|
||||
DESKTOP_HTTP_INTERFACE_PORT: 34249,
|
||||
PATH_TO_DATA_STORAGE: path.join(basePath, './Platform/My-Data-Storage'),
|
||||
PATH_TO_PROJECTS: path.join(basePath, './Projects'),
|
||||
PATH_TO_LOG_FILES: path.join(basePath, './Platform/My-Log-Files'),
|
||||
PATH_TO_PROJECTS_REQUIRED: path.join(basePath, './Projects'),
|
||||
PATH_TO_PROJECT_SCHEMA: path.join(basePath, './Projects/ProjectsSchema.json'),
|
||||
PATH_TO_CLIENT: path.join(basePath, './Platform'),
|
||||
PATH_TO_PLATFORM: path.join(basePath, './Platform'),
|
||||
PATH_TO_DESKTOP: './Desktop',
|
||||
PATH_TO_DEFAULT_WORKSPACE: path.join(basePath, './Projects/Foundations/Plugins/Workspaces'),
|
||||
PATH_TO_MY_WORKSPACES: path.join(basePath, './Platform/My-Workspaces'),
|
||||
PATH_TO_FONTS: path.join(basePath, './Platform/WebServer/Fonts')
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
exports.newEnvironment = function () {
|
||||
|
||||
let thisObject = {
|
||||
WEB_SERVER_URL: 'localhost',
|
||||
CLIENT_WEB_SOCKETS_INTERFACE_PORT: 18041,
|
||||
NETWORK_WEB_SOCKETS_INTERFACE_PORT: 18042,
|
||||
DESKTOP_WEB_SOCKETS_INTERFACE_PORT: 18043,
|
||||
DESKTOP_WEB_SOCKETS_INTERFACE_HOST: 'localhost',
|
||||
CLIENT_HTTP_INTERFACE_PORT: 34248,
|
||||
DESKTOP_HTTP_INTERFACE_PORT: 34249,
|
||||
PATH_TO_DATA_STORAGE: './Platform/My-Data-Storage',
|
||||
PATH_TO_LOG_FILES: './Platform/My-Log-Files',
|
||||
PATH_TO_PROJECTS: './Projects',
|
||||
PATH_TO_PROJECTS_REQUIRED: './Projects',
|
||||
PATH_TO_PROJECT_SCHEMA: './Projects/ProjectsSchema.json',
|
||||
PATH_TO_CLIENT: './Platform',
|
||||
PATH_TO_DESKTOP: './Desktop',
|
||||
PATH_TO_DEFAULT_WORKSPACE: './Projects/Foundations/Plugins/Workspaces',
|
||||
PATH_TO_MY_WORKSPACES: './Platform/My-Workspaces',
|
||||
PATH_TO_FONTS: './Platform/WebServer/Fonts'
|
||||
}
|
||||
|
||||
return thisObject
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "C:\\Superalgos\\Network"
|
||||
},
|
||||
{
|
||||
"path": "C:\\Superalgos\\Projects\\Network"
|
||||
},
|
||||
{
|
||||
"path": "C:\\Superalgos\\Projects\\Social-Trading"
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|
||||
Vendored
-17
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"files.exclude": {
|
||||
"**/Data-Storage": true,
|
||||
"**/Documentation": true,
|
||||
"**/Log-Files": true,
|
||||
"**/node_modules": true,
|
||||
"**/Deprecated-Code": true
|
||||
},
|
||||
"search.exclude": {
|
||||
"**/Data-Storage": true,
|
||||
"**/Documentation": true,
|
||||
"**/Log-Files": true,
|
||||
"**/node_modules": true,
|
||||
"**/Deprecated-Code": true
|
||||
},
|
||||
"search.maintainFileSearchCache": true
|
||||
}
|
||||
@@ -10,14 +10,18 @@ exports.newNetworkNode = function newNetworkNode() {
|
||||
|
||||
async function run() {
|
||||
/*
|
||||
Let's start the Network Interfaces
|
||||
Other Network Nodes and Client Apps will communicate with this Network Node via it's Websocket Interface.
|
||||
*/
|
||||
NT.webSocketsInterface = NT.projects.network.modules.webSocketsInterface.newNetworkModulesWebSocketsInterface()
|
||||
NT.webSocketsInterface.initialize()
|
||||
|
||||
/*
|
||||
The Social Graph Service is the first and for now, the only service this Network Node provides.
|
||||
*/
|
||||
thisObject.socialGraphService = NT.projects.socialTrading.modules.socialGraph.newNetworkModulesSocialGraph()
|
||||
await thisObject.socialGraphService.initialize()
|
||||
|
||||
/*
|
||||
The Sotrage deals with persisting the Social Graph.
|
||||
*/
|
||||
thisObject.storage = NT.projects.socialTrading.modules.storage.newSocialTradingModulesStorage()
|
||||
thisObject.storage.initialize()
|
||||
}
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ exports.newNetworkRoot = function newNetworkRoot() {
|
||||
*/
|
||||
global.SA = {}
|
||||
/* Load Environment Variables */
|
||||
let ENVIRONMENT = require('./EnvironmentForDebug.js');
|
||||
let ENVIRONMENT = require('./Environment.js');
|
||||
let ENVIRONMENT_MODULE = ENVIRONMENT.newEnvironment()
|
||||
global.env = ENVIRONMENT_MODULE
|
||||
/*
|
||||
|
||||
@@ -20,16 +20,20 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
webhook = undefined
|
||||
}
|
||||
|
||||
function initialize() {
|
||||
function initialize(initialWorkspace) {
|
||||
/*
|
||||
We will create an HTTP Server and leave it running forever.
|
||||
*/
|
||||
SA.nodeModules.http.createServer(onHttpRequest).listen(global.env.CLIENT_HTTP_INTERFACE_PORT)
|
||||
SA.nodeModules.http.createServer(onHttpRequest).listen(global.env.PLATFORM_HTTP_INTERFACE_PORT)
|
||||
/* Starting the browser now is optional */
|
||||
if (process.argv.includes("noBrowser")) {
|
||||
//Running Client only with no UI.
|
||||
} else {
|
||||
SA.nodeModules.open('http://localhost:' + global.env.CLIENT_HTTP_INTERFACE_PORT)
|
||||
let queryString = ''
|
||||
if (initialWorkspace.name !== undefined) {
|
||||
queryString = '/?initialWorkspaceName=' + initialWorkspace.name + '&initialWorkspaceProject=' + initialWorkspace.project + '&initialWorkspaceType=' + initialWorkspace.type
|
||||
}
|
||||
SA.nodeModules.open('http://localhost:' + global.env.PLATFORM_HTTP_INTERFACE_PORT + queryString)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -637,7 +641,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
break
|
||||
}
|
||||
switch (requestPath[2]) { // switch by command
|
||||
|
||||
|
||||
case 'Contribute': {
|
||||
try {
|
||||
let commitMessage = unescape(requestPath[3])
|
||||
@@ -655,7 +659,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
|
||||
contribute()
|
||||
|
||||
async function contribute() {
|
||||
async function contribute() {
|
||||
const { lookpath } = SA.nodeModules.lookpath
|
||||
const gitpath = await lookpath('git')
|
||||
if (gitpath === undefined) {
|
||||
@@ -898,6 +902,27 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
const git = simpleGit(options)
|
||||
try {
|
||||
await git.checkout(currentBranch)
|
||||
|
||||
// Check to see it main repo has been set as upstream
|
||||
let remotes = await git.getRemotes();
|
||||
let isUpstreamSet
|
||||
for (let remote in remotes) {
|
||||
if (remotes[remote].name === 'upstream') {
|
||||
isUpstreamSet = true
|
||||
} else {
|
||||
isUpstreamSet = false
|
||||
}
|
||||
}
|
||||
// If upstream has not been set. Set it now
|
||||
if (isUpstreamSet === false) {
|
||||
await git.addRemote('upstream', 'https://github.com/Superalgos/Superalgos');
|
||||
}
|
||||
// Pull branch from main repo
|
||||
await git.pull('upstream', currentBranch);
|
||||
// Reset branch to match main repo
|
||||
let upstreamLocation = `upstream/${currentBranch}`
|
||||
await git.reset('hard', [upstreamLocation])
|
||||
|
||||
} catch (err) {
|
||||
console.log('[ERROR] Error changing current branch to ' + currentBranch)
|
||||
console.log(err.stack)
|
||||
@@ -907,18 +932,17 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
|
||||
async function runNodeSetup() {
|
||||
console.log("Running Node setup to adjust for new Branch")
|
||||
const process = require("process");
|
||||
const { execSync } = require("child_process");
|
||||
const process = SA.nodeModules.process
|
||||
const childProcess = SA.nodeModules.childProcess
|
||||
|
||||
let dir = process.cwd()
|
||||
let command = "node setup";
|
||||
let stdout = execSync(command,
|
||||
let command = "node setup noShortcuts";
|
||||
let stdout = childProcess.execSync(command,
|
||||
{
|
||||
cwd: dir
|
||||
}).toString();
|
||||
|
||||
console.log("Node Setup has completed with the following result:", stdout)
|
||||
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
@@ -1015,6 +1039,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
let directoryCount = 0
|
||||
let allAppSchemas = []
|
||||
let allAppSchemasFilePaths = []
|
||||
let allAppSchemasFileProjects = []
|
||||
|
||||
for (let i = 0; i < projects.length; i++) {
|
||||
let project = projects[i]
|
||||
@@ -1050,6 +1075,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
SCHEMA_MAP.set(schemaDocument.type, schemaDocument)
|
||||
allAppSchemas.push(schemaDocument)
|
||||
allAppSchemasFilePaths.push(fileToRead)
|
||||
allAppSchemasFileProjects.push(project)
|
||||
} catch (err) {
|
||||
console.log('[ERROR] sendSchema -> Error Parsing JSON File: ' + fileToRead + ' .Error = ' + err.stack)
|
||||
return
|
||||
@@ -1094,6 +1120,14 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
hits++
|
||||
foundProject = project
|
||||
multiProject = multiProject + ' -> ' + project
|
||||
|
||||
let fileProject = allAppSchemasFileProjects[i]
|
||||
//console.log(fileProject, project)
|
||||
if (fileProject === project) {
|
||||
/* If the projec of the file is the same as the project found, then we consider this a match*/
|
||||
hits = 1
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1277,17 +1311,17 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
break
|
||||
case 'LegacyPlotter.js':
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/LegacyPlotter.js', httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/LegacyPlotter.js', httpResponse)
|
||||
}
|
||||
break
|
||||
case 'PlotterPanel.js':
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/PlotterPanel.js', httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/PlotterPanel.js', httpResponse)
|
||||
}
|
||||
break
|
||||
case 'Images': // This means the Images folder.
|
||||
{
|
||||
let path = global.env.PATH_TO_CLIENT + '/WebServer/Images/' + requestPath[2]
|
||||
let path = global.env.PATH_TO_PLATFORM + '/WebServer/Images/' + requestPath[2]
|
||||
|
||||
if (requestPath[3] !== undefined) {
|
||||
path = path + '/' + requestPath[3]
|
||||
@@ -1369,12 +1403,12 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
break
|
||||
case 'WebServer': // This means the WebServer folder.
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/' + requestPath[2], httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/' + requestPath[2], httpResponse)
|
||||
}
|
||||
break
|
||||
case 'externalScripts': // This means the WebServer folder.
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/WebServer/externalScripts/' + requestPath[2], httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/WebServer/externalScripts/' + requestPath[2], httpResponse)
|
||||
}
|
||||
break
|
||||
case 'Plotters': // This means the plotter folder, not to be confused with the Plotters script!
|
||||
@@ -1389,12 +1423,12 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
break
|
||||
case 'ChartLayers':
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/UI/' + endpointOrFile + '/' + requestPath[2], httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/UI/' + endpointOrFile + '/' + requestPath[2], httpResponse)
|
||||
}
|
||||
break
|
||||
case 'Files':
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_CLIENT + '/UI/Data-Files/' + requestPath[2], httpResponse)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithFile(global.env.PATH_TO_PLATFORM + '/UI/Data-Files/' + requestPath[2], httpResponse)
|
||||
}
|
||||
break
|
||||
case 'Fonts':
|
||||
@@ -1909,7 +1943,7 @@ exports.newHttpInterface = function newHttpInterface() {
|
||||
break
|
||||
default:
|
||||
{
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithWebFile(httpResponse, endpointOrFile, global.env.PATH_TO_CLIENT)
|
||||
SA.projects.foundations.utilities.httpResponses.respondWithWebFile(httpResponse, endpointOrFile, global.env.PATH_TO_PLATFORM)
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
//console.log('[INFO] Client -> Task Manager Server -> runTask -> Task Name = ' + message.event.taskName)
|
||||
//console.log('[INFO] Client -> Task Manager Server -> runTask -> Task Id = ' + message.event.taskId)
|
||||
|
||||
let path = './TaskServerRoot.js'
|
||||
let path = global.env.BASE_PATH + '/TaskServerRoot.js'
|
||||
|
||||
/* Workarround to avoid having the same debug port at the forked process which makes it crash. */
|
||||
for (let i = 0; i < process.execArgv.length; i++) {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
const WEB_SOCKET = SA.nodeModules.ws
|
||||
let socketServer
|
||||
let port = global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT
|
||||
let port = global.env.PLATFORM_WEB_SOCKETS_INTERFACE_PORT
|
||||
|
||||
return thisObject
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ exports.newPlatformApp = function newPlatformApp() {
|
||||
|
||||
return thisObject
|
||||
|
||||
async function run() {
|
||||
async function run(initialWorkspace) {
|
||||
|
||||
process.on('uncaughtException', function (err) {
|
||||
if (err.message && err.message.indexOf("EADDRINUSE") > 0) {
|
||||
@@ -133,14 +133,13 @@ exports.newPlatformApp = function newPlatformApp() {
|
||||
console.log('')
|
||||
console.log('SUPERALGOS PLATFORM CLIENT INTERFACES:')
|
||||
console.log('')
|
||||
|
||||
WEB_SOCKETS_INTERFACE = WEB_SOCKETS_INTERFACE.newWebSocketsInterface()
|
||||
WEB_SOCKETS_INTERFACE.initialize()
|
||||
console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.CLIENT_WEB_SOCKETS_INTERFACE_PORT)
|
||||
console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.PLATFORM_WEB_SOCKETS_INTERFACE_PORT)
|
||||
|
||||
HTTP_INTERFACE = HTTP_INTERFACE.newHttpInterface()
|
||||
HTTP_INTERFACE.initialize()
|
||||
console.log('Http Interface .............................................. Listening at port ' + global.env.CLIENT_HTTP_INTERFACE_PORT)
|
||||
HTTP_INTERFACE.initialize(initialWorkspace)
|
||||
console.log('Http Interface .............................................. Listening at port ' + global.env.PLATFORM_HTTP_INTERFACE_PORT)
|
||||
|
||||
console.log('')
|
||||
console.log("You are running Superalgos Beta 12")
|
||||
|
||||
@@ -218,11 +218,12 @@ function newEventsServerClient(lanNetworkNode) {
|
||||
try {
|
||||
let host
|
||||
let port
|
||||
/* At this point the node does not have the payload property yet, that is why we have to do this manually */
|
||||
let extwsurl
|
||||
try {
|
||||
let config = JSON.parse(lanNetworkNode.config)
|
||||
host = config.host
|
||||
port = config.webSocketsPort
|
||||
extwsurl = config.webSocketsExternalURL
|
||||
|
||||
/* Check if we really have to stablish the connection. */
|
||||
if (config.autoConnect === false) { return }
|
||||
@@ -268,8 +269,12 @@ function newEventsServerClient(lanNetworkNode) {
|
||||
return
|
||||
}
|
||||
|
||||
const WEB_SOCKETS_URL = 'ws://' + host + ':' + port + ''
|
||||
let wsurl = 'ws://' + host + ':' + port + ''
|
||||
if (extwsurl !== undefined) {
|
||||
wsurl = extwsurl
|
||||
}
|
||||
|
||||
const WEB_SOCKETS_URL = wsurl
|
||||
WEB_SOCKETS_CONNECTION = new WebSocket(WEB_SOCKETS_URL)
|
||||
WEB_SOCKETS_CONNECTION.onerror = error => {
|
||||
console.log('WebSocket error:' + JSON.stringify(error))
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 5.5 KiB |
@@ -25,6 +25,27 @@ content: "Summary: ";
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.tutorial-content-div {
|
||||
overflow-y: auto;
|
||||
overflow-x: clip;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 5px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #888;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #555;
|
||||
}
|
||||
|
||||
.tutorial-definitionTable {
|
||||
background-color: #f3f3f3;
|
||||
border-top-color: #a6e1ec;
|
||||
|
||||
+31
-4
@@ -48,13 +48,40 @@ SA.nodeModules = {
|
||||
ccxt: require('ccxt'),
|
||||
octokit: require("@octokit/rest"),
|
||||
simpleGit: require('simple-git'),
|
||||
lookpath: require('lookpath')
|
||||
lookpath: require('lookpath'),
|
||||
process: require('process'),
|
||||
childProcess: require('child_process')
|
||||
}
|
||||
/*
|
||||
Check if we are starting from a particular workspace.
|
||||
*/
|
||||
let initialWorkspace = {}
|
||||
|
||||
for (let i = 0; i < process.argv.length; i++) {
|
||||
let arg = process.argv[i]
|
||||
|
||||
if (arg === 'noBrowser') { continue }
|
||||
if (arg === 'minMemo') { continue }
|
||||
if (arg.indexOf(':') >= 0) { continue }
|
||||
if (arg.indexOf('/') >= 0) { continue }
|
||||
|
||||
if (initialWorkspace.project === undefined) {
|
||||
if (arg !== 'My-Workspaces') {
|
||||
initialWorkspace.type = 'Plugin'
|
||||
initialWorkspace.project = arg
|
||||
} else {
|
||||
initialWorkspace.type = 'My-Workspaces'
|
||||
initialWorkspace.project = ''
|
||||
}
|
||||
} else {
|
||||
initialWorkspace.name = arg
|
||||
}
|
||||
}
|
||||
|
||||
run()
|
||||
run(initialWorkspace)
|
||||
|
||||
async function run() {
|
||||
async function run(initialWorkspace) {
|
||||
PL.app = require('./Platform/PlatformApp.js').newPlatformApp()
|
||||
await PL.app.run()
|
||||
await PL.app.run(initialWorkspace)
|
||||
console.log('Superalgos Platform App is Running!')
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -1262,7 +1262,7 @@ exports.newAlgorithmicTradingBotModulesTradingOrders = function (processIndex) {
|
||||
tradingSystem.highlights.push(executionAlgorithm.id)
|
||||
tradingSystem.highlights.push(executionNode.id)
|
||||
|
||||
announcementsModuleObject.makeAnnoucements(event)
|
||||
announcementsModuleObject.makeAnnouncements(event)
|
||||
return situation.name // if the event is triggered, we return the name of the situation that passed
|
||||
}
|
||||
}
|
||||
|
||||
+85
-82
@@ -147,8 +147,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
/* Initialize this */
|
||||
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.triggerOn.value = 1
|
||||
|
||||
announcementsModuleObject.makeAnnoucements(triggerStage.triggerOn)
|
||||
announcementsModuleObject.makeAnnoucements(triggerStage)
|
||||
announcementsModuleObject.makeAnnouncements(triggerStage.triggerOn)
|
||||
|
||||
if (TS.projects.foundations.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.type === 'Backtesting Session') {
|
||||
if (sessionParameters.snapshots !== undefined) {
|
||||
@@ -159,6 +158,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
}
|
||||
|
||||
changeStageStatus('Trigger Stage', 'Open')
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -194,7 +194,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
tradingSystem.highlights.push(triggerStage.id)
|
||||
|
||||
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.triggerOff.value = 1
|
||||
announcementsModuleObject.makeAnnoucements(triggerStage.triggerOff)
|
||||
announcementsModuleObject.makeAnnouncements(triggerStage.triggerOff)
|
||||
changeStageStatus('Trigger Stage', 'Closed', 'Trigger Off Event')
|
||||
tradingStrategyModuleObject.closeStrategy('Trigger Off')
|
||||
}
|
||||
@@ -233,8 +233,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
|
||||
tradingPositionModuleObject.openPosition(situation.name)
|
||||
|
||||
announcementsModuleObject.makeAnnoucements(triggerStage.takePosition)
|
||||
announcementsModuleObject.makeAnnoucements(strategy.openStage)
|
||||
announcementsModuleObject.makeAnnouncements(triggerStage.takePosition)
|
||||
|
||||
if (TS.projects.foundations.globals.processConstants.CONSTANTS_BY_PROCESS_INDEX_MAP.get(processIndex).SESSION_NODE.type === 'Backtesting Session') {
|
||||
if (sessionParameters.snapshots !== undefined) {
|
||||
@@ -436,7 +435,6 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
|
||||
/* Now we switch to the Open status. */
|
||||
changeStageStatus('Manage Stage', 'Open')
|
||||
announcementsModuleObject.makeAnnoucements(manageStage)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -487,7 +485,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
tradingPositionModuleObject.applyStopLossFormula(tradingSystem.formulas, phase.formula.id)
|
||||
|
||||
if (tradingEngine.tradingCurrent.position.stopLoss.value !== previousValue) {
|
||||
announcementsModuleObject.makeAnnoucements(phase)
|
||||
announcementsModuleObject.makeAnnouncements(phase)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -510,7 +508,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
tradingPositionModuleObject.applyTakeProfitFormula(tradingSystem.formulas, phase.formula.id)
|
||||
|
||||
if (tradingEngine.tradingCurrent.position.takeProfit.value !== previousValue) {
|
||||
announcementsModuleObject.makeAnnoucements(phase)
|
||||
announcementsModuleObject.makeAnnouncements(phase)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -591,7 +589,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
|
||||
tradingPositionModuleObject.updateStopLoss(tradingEngine.tradingCurrent.position.stopLoss.stopLossPhase.value + 1)
|
||||
|
||||
announcementsModuleObject.makeAnnoucements(nextPhaseEvent)
|
||||
announcementsModuleObject.makeAnnouncements(nextPhaseEvent)
|
||||
|
||||
/* Reset this counter */
|
||||
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.nextPhase.value = 1
|
||||
@@ -642,7 +640,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
continue
|
||||
}
|
||||
|
||||
announcementsModuleObject.makeAnnoucements(moveToPhaseEvent)
|
||||
announcementsModuleObject.makeAnnouncements(moveToPhaseEvent)
|
||||
|
||||
/* Reset this counter */
|
||||
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.moveToPhase.value = 1
|
||||
@@ -698,7 +696,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
|
||||
tradingPositionModuleObject.updateTakeProfit(tradingEngine.tradingCurrent.position.takeProfit.takeProfitPhase.value + 1)
|
||||
|
||||
announcementsModuleObject.makeAnnoucements(nextPhaseEvent)
|
||||
announcementsModuleObject.makeAnnouncements(nextPhaseEvent)
|
||||
|
||||
/* Reset this counter */
|
||||
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.nextPhase.value = 1
|
||||
@@ -749,7 +747,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
continue
|
||||
}
|
||||
|
||||
announcementsModuleObject.makeAnnoucements(moveToPhaseEvent)
|
||||
announcementsModuleObject.makeAnnouncements(moveToPhaseEvent)
|
||||
|
||||
/* Reset this counter */
|
||||
tradingEngine.tradingCurrent.tradingEpisode.distanceToTradingEvent.moveToPhase.value = 1
|
||||
@@ -762,54 +760,50 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
}
|
||||
|
||||
function checkStopLossOrTakeProfitWasHit() {
|
||||
{
|
||||
let strategy = tradingSystem.tradingStrategies[tradingEngine.tradingCurrent.strategy.index.value]
|
||||
/*
|
||||
Checking what happened since the last execution. We need to know if the Stop Loss
|
||||
or our Take Profit were hit.
|
||||
*/
|
||||
let strategy = tradingSystem.tradingStrategies[tradingEngine.tradingCurrent.strategy.index.value]
|
||||
/*
|
||||
Checking what happened since the last execution. We need to know if the Stop Loss
|
||||
or our Take Profit were hit.
|
||||
*/
|
||||
|
||||
/* Stop Loss condition: Here we verify if the Stop Loss was hit or not. */
|
||||
if (
|
||||
(
|
||||
tradingEngine.tradingCurrent.position.stopLoss.stopLossPosition.value === 'Above' &&
|
||||
tradingEngine.tradingCurrent.tradingEpisode.candle.max.value >= tradingEngine.tradingCurrent.position.stopLoss.value
|
||||
) ||
|
||||
(
|
||||
tradingEngine.tradingCurrent.position.stopLoss.stopLossPosition.value === 'Below' &&
|
||||
tradingEngine.tradingCurrent.tradingEpisode.candle.min.value <= tradingEngine.tradingCurrent.position.stopLoss.value
|
||||
)
|
||||
) {
|
||||
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Stop Loss was hit.')
|
||||
/* Stop Loss condition: Here we verify if the Stop Loss was hit or not. */
|
||||
if (
|
||||
(
|
||||
tradingEngine.tradingCurrent.position.stopLoss.stopLossPosition.value === 'Above' &&
|
||||
tradingEngine.tradingCurrent.tradingEpisode.candle.max.value >= tradingEngine.tradingCurrent.position.stopLoss.value
|
||||
) ||
|
||||
(
|
||||
tradingEngine.tradingCurrent.position.stopLoss.stopLossPosition.value === 'Below' &&
|
||||
tradingEngine.tradingCurrent.tradingEpisode.candle.min.value <= tradingEngine.tradingCurrent.position.stopLoss.value
|
||||
)
|
||||
) {
|
||||
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Stop Loss was hit.')
|
||||
|
||||
tradingPositionModuleObject.closingPosition('Stop Loss')
|
||||
changeStageStatus('Close Stage', 'Opening')
|
||||
changeStageStatus('Manage Stage', 'Closed', 'Stop Loss Hit')
|
||||
announcementsModuleObject.makeAnnoucements(strategy.closeStage)
|
||||
return
|
||||
}
|
||||
|
||||
/* Take Profit condition: Here we verify if the Take Profit was hit or not. */
|
||||
if (
|
||||
(
|
||||
tradingEngine.tradingCurrent.position.takeProfit.takeProfitPosition.value === 'Below' &&
|
||||
tradingEngine.tradingCurrent.tradingEpisode.candle.min.value <= tradingEngine.tradingCurrent.position.takeProfit.value
|
||||
) ||
|
||||
(
|
||||
tradingEngine.tradingCurrent.position.takeProfit.takeProfitPosition.value === 'Above' &&
|
||||
tradingEngine.tradingCurrent.tradingEpisode.candle.max.value >= tradingEngine.tradingCurrent.position.takeProfit.value
|
||||
)
|
||||
) {
|
||||
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Take Profit was hit.')
|
||||
|
||||
tradingPositionModuleObject.closingPosition('Take Profit')
|
||||
changeStageStatus('Close Stage', 'Opening')
|
||||
changeStageStatus('Manage Stage', 'Closed', 'Take Profit Hit')
|
||||
announcementsModuleObject.makeAnnoucements(strategy.closeStage)
|
||||
return
|
||||
}
|
||||
tradingPositionModuleObject.closingPosition('Stop Loss')
|
||||
changeStageStatus('Close Stage', 'Opening')
|
||||
changeStageStatus('Manage Stage', 'Closed', 'Stop Loss Hit')
|
||||
return
|
||||
}
|
||||
|
||||
/* Take Profit condition: Here we verify if the Take Profit was hit or not. */
|
||||
if (
|
||||
(
|
||||
tradingEngine.tradingCurrent.position.takeProfit.takeProfitPosition.value === 'Below' &&
|
||||
tradingEngine.tradingCurrent.tradingEpisode.candle.min.value <= tradingEngine.tradingCurrent.position.takeProfit.value
|
||||
) ||
|
||||
(
|
||||
tradingEngine.tradingCurrent.position.takeProfit.takeProfitPosition.value === 'Above' &&
|
||||
tradingEngine.tradingCurrent.tradingEpisode.candle.max.value >= tradingEngine.tradingCurrent.position.takeProfit.value
|
||||
)
|
||||
) {
|
||||
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[INFO] checkStopLossOrTakeProfitWasHit -> Take Profit was hit.')
|
||||
|
||||
tradingPositionModuleObject.closingPosition('Take Profit')
|
||||
changeStageStatus('Close Stage', 'Opening')
|
||||
changeStageStatus('Manage Stage', 'Closed', 'Take Profit Hit')
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1114,7 +1108,7 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
tradingSystem.highlights.push(closeStageEvent.id)
|
||||
tradingSystem.highlights.push(stage.id)
|
||||
|
||||
announcementsModuleObject.makeAnnoucements(closeStageEvent)
|
||||
announcementsModuleObject.makeAnnouncements(closeStageEvent)
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -1148,9 +1142,11 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
if (stage.status.value === 'Open') {
|
||||
openStage(stage)
|
||||
checkUserDefinedCode(stageName, 'Open')
|
||||
checkAnnounce(stageName, 'Open')
|
||||
}
|
||||
if (stage.status.value === 'Closed') {
|
||||
checkUserDefinedCode(stageName, 'Closed')
|
||||
checkAnnounce(stageName, 'Closed')
|
||||
closeStage(stage, stageName)
|
||||
}
|
||||
|
||||
@@ -1186,7 +1182,6 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
if (stageName === 'Close Stage') {
|
||||
if (tradingEngine.tradingCurrent.position.status.value === 'Open') {
|
||||
tradingPositionModuleObject.closingPosition('Close Stage Closed')
|
||||
/* NOTE:TODO: Announcement May need added Here */
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1271,33 +1266,41 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
|
||||
/* checkUserDefinedCode(): Checks if User Defined Code exists and processes if applicable. */
|
||||
function checkUserDefinedCode(stage, status, when) {
|
||||
let tradingSystemStage = getTradingSystemStage(stage);
|
||||
let tradingSystemStage = getTradingSystemStage(stage);
|
||||
|
||||
if (tradingSystemStage !== undefined &&
|
||||
tradingSystemStage.userDefinedCode !== undefined) {
|
||||
if (status === 'Running' && when !== tradingSystemStage.userDefinedCode.config.whileAtStageWhenToRun) { return; }
|
||||
if (tradingSystemStage !== undefined &&
|
||||
tradingSystemStage.userDefinedCode !== undefined) {
|
||||
if (status === 'Running' && when !== tradingSystemStage.userDefinedCode.config.whileAtStageWhenToRun) { return; }
|
||||
|
||||
switch(status) {
|
||||
case 'Open' : {
|
||||
if (tradingSystemStage.userDefinedCode.config.runWhenEnteringStage) {
|
||||
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
|
||||
switch(status) {
|
||||
case 'Open' : {
|
||||
if (tradingSystemStage.userDefinedCode.config.runWhenEnteringStage) {
|
||||
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'Running' : {
|
||||
if (tradingSystemStage.userDefinedCode.config.runWhileAtStage) {
|
||||
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'Closed' : {
|
||||
if (tradingSystemStage.userDefinedCode.config.runWhenExitingStage) {
|
||||
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'Running' : {
|
||||
if (tradingSystemStage.userDefinedCode.config.runWhileAtStage) {
|
||||
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'Closed' : {
|
||||
if (tradingSystemStage.userDefinedCode.config.runWhenExitingStage) {
|
||||
tradingSystem.evalUserCode(tradingSystemStage, 'User Defined Code');
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// checkAnnounce(): Check if stage announcement should be made
|
||||
function checkAnnounce(stage, status) {
|
||||
let tradingSystemStage = getTradingSystemStage(stage);
|
||||
if (status === 'Open' || status === 'Closed') {
|
||||
announcementsModuleObject.makeAnnouncements(tradingSystemStage, status)
|
||||
}
|
||||
}
|
||||
|
||||
/* getTradingSystemStage(): takes stage name returns stage object. */
|
||||
@@ -1321,4 +1324,4 @@ exports.newAlgorithmicTradingBotModulesTradingStages = function (processIndex) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -348,13 +348,13 @@ exports.newAlgorithmicTradingBotModulesTradingSystem = function (processIndex) {
|
||||
}
|
||||
if (errorMessage !== undefined) {
|
||||
tradingSystem.addError([node.id, errorMessage, docs])
|
||||
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[ERROR] evalCondition -> errorMessage = ' + errorMessage)
|
||||
}
|
||||
if (value !== undefined) {
|
||||
tradingSystem.values.push([node.id, value])
|
||||
}
|
||||
|
||||
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[INFO] evalCondition -> value = ' + value)
|
||||
TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, '[INFO] evalCondition -> errorMessage = ' + errorMessage)
|
||||
}
|
||||
|
||||
function evalFormula(node) {
|
||||
|
||||
@@ -33,6 +33,10 @@ function newAlgorithmicTradingActionSwitch() {
|
||||
UI.projects.algorithmicTrading.functionLibraries.tradingSessionFunctions.stopSession(action.node, action.callBackFunction)
|
||||
}
|
||||
break
|
||||
|
||||
default: {
|
||||
console.log("[WARN] Action sent to Algorithmic-Trading Action Switch does not belong here. Verify at the App Schema file of the node that triggered this action that the actionProject is pointing to the right project. -> Action = " + action.name + " -> Action Node Name = " + action.node.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -93,6 +93,10 @@ function newCommunityPluginsActionSwitch() {
|
||||
UI.projects.communityPlugins.functionLibraries.pluginsFunctions.savePlugin(action.node, action.rootNodes)
|
||||
}
|
||||
break
|
||||
|
||||
default: {
|
||||
console.log("[WARN] Action sent to Community-Plugins Action Switch does not belong here. Verify at the App Schema file of the node that triggered this action that the actionProject is pointing to the right project. -> Action = " + action.name + " -> Action Node Name = " + action.node.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -90,7 +90,7 @@ exports.newDataMiningBotModulesCheckWebhook = function (processIndex) {
|
||||
try {
|
||||
let http = SA.nodeModules.http
|
||||
let url = 'http://' + global.env.WEB_SERVER_URL +
|
||||
':' + global.env.CLIENT_HTTP_INTERFACE_PORT +
|
||||
':' + global.env.PLATFORM_HTTP_INTERFACE_PORT +
|
||||
'/Webhook/Fetch-Messages/' +
|
||||
TS.projects.foundations.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.parentNode.parentNode.config.codeName + "/" +
|
||||
TS.projects.foundations.globals.taskConstants.TASK_NODE.parentNode.parentNode.parentNode.referenceParent.baseAsset.referenceParent.config.codeName + "-" +
|
||||
|
||||
@@ -33,6 +33,10 @@ function newDataMiningActionSwitch() {
|
||||
UI.projects.dataMining.functionLibraries.mineFunctions.addAllDataMineDataDependencies(action.node, action.rootNodes)
|
||||
}
|
||||
break
|
||||
|
||||
default: {
|
||||
console.log("[WARN] Action sent to Data-Mining Action Switch does not belong here. Verify at the App Schema file of the node that triggered this action that the actionProject is pointing to the right project. -> Action = " + action.name + " -> Action Node Name = " + action.node.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,11 @@
|
||||
"text": "La jerarquía del tutorial presenta una disposición libre de los nodos Tutorial Topic y Tutorial Step que componen un tutorial. Cada nodo de la jerarquía, incluido el nodo del tutorial principal, representa una página HTML que puede superponerse en la parte superior de ambos Design Space y el Charting Space.",
|
||||
"updated": 1627245866146,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Tutorial-Hierarchie besteht aus einer freien Anordnung von Tutorial Topic (Themen) und Tutorial Step nodes (Schritten), die ein Tutorial ausmachen. Jede node in der Hierarchie, einschließlich des übergeordneten Tutorial-nodes, stellt eine HTML-Seite dar, die sowohl über dem Design Space als auch dem Charting Space eingeblendet werden kann. Übersetzt ins deutsche von gitforkgit.",
|
||||
"updated": 1633975790458
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -20,22 +25,50 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Nodes in the hierarchy may be arranged freely, meaning that there may be as many tutorial topics and tutorial steps as desired. Tutorial topics may contain tutorial steps but also other tutorial topics. This allows nesting topics to be used as subtopics.",
|
||||
"updated": 1617649482153
|
||||
"updated": 1617649482153,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Nodes in der Hierarchie können frei angeordnet werden, das heißt es können beliebig viele Tutorial-Themen (topic) und Tutorial-Steps vorhanden sein. Tutorial Themen können Tutorial Schritte aber auch andere Tutorial Themen enthalten. Dies erlaubt es verschachtelte Themen als Unterthemen verwendet werden.",
|
||||
"updated": 1633975991952
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The system – as usual – evaluates the hierarchy in a clockwise direction starting from the node to the right of the parent Tutorial node, and goes to the deepest node of each branch before moving to the next one.",
|
||||
"updated": 1617649522223
|
||||
"updated": 1617649522223,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das System wertet die Hierarchie - wie üblich - im Uhrzeigersinn aus, beginnend mit dem Knoten rechts vom übergeordneten Tutorial-Knoten, zum tiefsten Knoten jedes Zweigs geht, bevor es zum nächsten geht.",
|
||||
"updated": 1633976627129
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Callout",
|
||||
"text": "In general terms, all types of nodes behave similarly in the sense that each node, independently of the precise type, represents a tutorial step in and of itself. That is, all nodes including the top-level Tutorial node, the Tutorial Topic node, and the Tutorial Step node may display a content page as a step in the tutorial. Subtle differences shall be pointed where appropriate.",
|
||||
"updated": 1617622995279
|
||||
"updated": 1617622995279,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Allgemeinen verhalten sich alle nodes ähnlich in dem Sinne, dass jede node, unabhängig vom genauen Typ, für sich genommen einen Lernschritt darstellt. Das heißt, alle nodes, einschließlich der obersten Tutorial-node, der Tutorial Topic node und der Tutorial Step node können eine Inhaltsseite als Schritt im Tutorial anzeigen. Feinere Unterschiede sind gegebenenfalls hervorzuheben.",
|
||||
"updated": 1633976586338
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "The key similarity among all types of nodes in the hierarchy is that all of them may draw content from the tutorial's collection of pages in the Docs. That is, each node in the hierarchy points to a Docs Page, and it is that page in the Docs that features the content displayed for the given step. The pointer is specified in the configuration of each node (see the docs property).",
|
||||
"updated": 1617623101039
|
||||
"updated": 1617623101039,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die wichtigste Gemeinsamkeit aller Knotentypen in der Hierarchie ist, dass sie alle Inhalte aus der Sammlung der Dokumentseiten des Tutorials beziehen können. Das heißt, jeder Knoten in der Hierarchie zeigt auf eine Docs Page (Dokumentationsseite), und es ist diese Seite in den Dokumenten, die den Inhalt für den gegebenen Schritt anzeigt. Der Zeiger wird in der Konfiguration jedes Knotens angegeben (siehe die Eigenschaft docs).",
|
||||
"updated": 1633976778899
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -44,37 +77,86 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Tutorial Configuration",
|
||||
"updated": 1609704877058
|
||||
"updated": 1609704877058,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Tutorial Konfiguration",
|
||||
"updated": 1633976794872
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The configuration of each node in the tutorial hierarchy determines the content and behavior of each step. All types of nodes share the same basic configuration. However, Tutorial Step nodes have extra properties, described on the Tutorial Step node page.",
|
||||
"updated": 1617623609988
|
||||
"updated": 1617623609988,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Konfiguration jedes Knotens in der Tutorial-Hierarchie bestimmt den Inhalt und das Verhalten der einzelnen Schritte. Alle node-typen haben die gleiche Grundkonfiguration. Tutorial Step nodes haben jedoch zusätzliche Eigenschaften, die auf der Seite \" Tutorial Step nodes \" beschrieben werden.",
|
||||
"updated": 1633977045116
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "The configuration properties discussed on this page apply to all types of nodes in the hierarchy.",
|
||||
"updated": 1617623631110
|
||||
"updated": 1617623631110,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die auf dieser Seite beschriebenen Konfigurationseigenschaften gelten für alle Arten von Nodes in der Hierarchie.",
|
||||
"updated": 1633977077545
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The layout of the HTML page follows the layout of the associated page in the Docs, although displayed within the confines of the tutorial window.",
|
||||
"updated": 1617610416865
|
||||
"updated": 1617610416865,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das Layout der HTML-Seite folgt dem Layout der zugehörigen Seite in den Docs, wird aber innerhalb der Grenzen des Tutorial-Fensters angezeigt.",
|
||||
"updated": 1633977110132
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Callout",
|
||||
"text": "In other words, you affect the layout of the particular step by writing content and applying styles to individual paragraphs in the associated Docs Page.",
|
||||
"updated": 1617610435932
|
||||
"updated": 1617610435932,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Mit anderen Worten beeinflussen Sie das Layout des jeweiligen Schritts, indem Sie Inhalte schreiben und Stile auf einzelne Absätze in der zugehörigen Docs-Page anwenden.",
|
||||
"updated": 1633977352460
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "The HTML page features a limited space and does not support scrolling. If too much information is defined in the associated Docs Page, the resulting content overflows the available space in the tutorial window. There is no system-side control to deal with such overflows, so it's up to you to spread information across multiple steps and keep each page within its limits.",
|
||||
"updated": 1613839536547
|
||||
"updated": 1613839536547,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die HTML / Tutorial -Seite verfügt über einen begrenzten Platz und unterstützt kein Scrollen. Wenn zu viele Informationen in der zugehörigen Docs Page definiert werden, übersteigt der resultierende Inhalt den verfügbaren Platz im Tutorial-Fenster. Es gibt keine systemseitige Kontrolle, um mit solchen Text-Überläufen (in den Tutorial fenstern) umzugehen, so dass es an Ihnen liegt, die Informationen auf mehrere Schritte zu verteilen und jede Seite innerhalb ihrer Grenzen zu halten.",
|
||||
"updated": 1633977528479
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration Properties",
|
||||
"updated": 1617635291377
|
||||
"updated": 1617635291377,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Eigenschaften der Konfiguration",
|
||||
"updated": 1633977545673
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
@@ -84,19 +166,47 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The property icon requires two definitions:",
|
||||
"updated": 1617635366207
|
||||
"updated": 1617635366207,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das Eigenschaftssymbol benötigt zwei Definitionen:",
|
||||
"updated": 1633977572877
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "The \"name\" of the icon without the extension; "
|
||||
"text": "The \"name\" of the icon without the extension; ",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der \"name\" des Symbols ohne die Erweiterung;",
|
||||
"updated": 1633977609627
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "The \"project\" the icon belongs to."
|
||||
"text": "The \"project\" the icon belongs to.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das \"project\", zu dem das Symbol gehört.",
|
||||
"updated": 1633977635502
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "For your reference, icons are stored in the following path:"
|
||||
"text": "For your reference, icons are stored in the following path:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zu Ihrer Information: Die Icons (Symbole) werden unter folgendem Pfad gespeichert:",
|
||||
"updated": 1633977674577
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -106,12 +216,26 @@
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Use the existing collection of icons to illustrate each step of the tutorial. These illustrations help make for more compelling communication.",
|
||||
"updated": 1617623866873
|
||||
"updated": 1617623866873,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Verwenden Sie die vorhandene Sammlung von Icons (Symbolen), um jeden Schritt des Tutorials zu illustrieren. Diese Illustrationen tragen sehr viel zu einer überzeugenderen Kommunikation bei.",
|
||||
"updated": 1633977745001
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "When the configuration exists, the icon is placed within a table, side by side with the text block that makes up the definition field of the associated Docs Page. When there is no icon, the definition occupies the full width of the page.",
|
||||
"updated": 1617635415677
|
||||
"updated": 1617635415677,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn die Konfiguration vorhanden ist, wird das Symbol in einer Tabelle neben dem Textblock platziert, der das Definitionsfeld der zugehörigen Docs Page bildet. Wenn kein Symbol vorhanden ist, nimmt die Definition die gesamte Breite der Seite ein.",
|
||||
"updated": 1633977797138
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -121,7 +245,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The above configuration places the balance.png icon of the Superalgos project in the table of the corresponding Docs page (see the docs property below).",
|
||||
"updated": 1617635461827
|
||||
"updated": 1617635461827,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die obige Konfiguration platziert das Symbol balance.png des Superalgos-Projekts in der Tabelle der entsprechenden Docs-Seite (siehe die docs Eigenschaft unten).",
|
||||
"updated": 1633977851249
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
@@ -131,7 +262,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The position property determines the position of the floating HTML. There are three alternatives... \"Left\", \"Right\", or leave the field empty to position the page on the center of the screen.",
|
||||
"updated": 1617635484212
|
||||
"updated": 1617635484212,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Eigenschaft \"position\" bestimmt die Position des fließenden HTML-Dokuments (Tutorial-Fensters). Es gibt drei Alternativen... \"Links\", \"Rechts\", oder lassen Sie das Feld leer, um die Seite in der Mitte des Bildschirms zu positionieren.",
|
||||
"updated": 1633977968939
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -141,7 +279,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The configuration above places the tutorial step on the left-hand side of the screen.",
|
||||
"updated": 1617635642707
|
||||
"updated": 1617635642707,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bei der obigen Konfiguration befindet sich das Tutorial-Fenster auf der linken Seite des Bildschirms.",
|
||||
"updated": 1633978012441
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
@@ -150,7 +295,14 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The slider property determines the position of the horizontal slider. There are three alternatives... \"toTop\", \"toBottom\", \"toMiddle\"."
|
||||
"text": "The slider property determines the position of the horizontal slider. There are three alternatives... \"toTop\", \"toBottom\", \"toMiddle\".",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Eigenschaft slider bestimmt die Position des horizontalen Schiebereglers. Es gibt drei Alternativen... \"toTop\", \"toBottom\", \"toMiddle\".",
|
||||
"updated": 1633978051324
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -174,12 +326,26 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The pressButton property allows you to forcefully \"Stop\" the tutorial, go to the \"Next\" step, go to the \"Previous\" step, or \"Skip\" a step. When a step is loaded and one of these options is configured in this property, the action is applied immediately."
|
||||
"text": "The pressButton property allows you to forcefully \"Stop\" the tutorial, go to the \"Next\" step, go to the \"Previous\" step, or \"Skip\" a step. When a step is loaded and one of these options is configured in this property, the action is applied immediately.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Mit der Eigenschaft pressButton können Sie das Tutorial zwangsweise \"anhalten\", zum \"nächsten\" Schritt gehen, zum \"vorherigen\" Schritt gehen oder einen Schritt \"überspringen\". Wenn ein Schritt geladen wird und eine dieser Optionen in dieser Eigenschaft konfiguriert ist, wird die Aktion sofort ausgeführt.",
|
||||
"updated": 1633978127988
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "A common use of this feature is to skip a step, for instance, a Tutorial Topic node that is used solely for organizational purposes within the hierarchy, thus features no content. Leave the field empty for the step to play in the usual fashion.",
|
||||
"updated": 1617649582774
|
||||
"updated": 1617649582774,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Eine häufige Verwendung dieser Funktion ist das Überspringen eines Schrittes, z.B. einer Tutorial-topic-node, die ausschließlich für organisatorische Zwecke innerhalb der Hierarchie verwendet wird und daher keinen Inhalt hat. Lassen Sie das Feld leer, damit der Schritt auf die übliche Weise abgespielt wird.",
|
||||
"updated": 1633978359504
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -189,12 +355,26 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The above configuration takes the user to the next step in the tutorial without displaying any content for the node in question.",
|
||||
"updated": 1617648136262
|
||||
"updated": 1617648136262,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die obige Konfiguration führt den Benutzer zum nächsten Schritt des Tutorials, ohne dass der Inhalt der betreffenden node angezeigt wird.",
|
||||
"updated": 1633978461463
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "You may use Tutorial Topic nodes for organizational purposes only, for instance, to arrange the hierarchy in a way that it's easy to read and maintain. Topics with too many steps are harder to deal with later on. In other words, you may use a Tutorial Topic node to group several steps, even if you don't intend the Tutorial Topic node to display any content. In such cases, you may use this property to skip the step that is not intended for content display.",
|
||||
"updated": 1617649616576
|
||||
"updated": 1617649616576,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können Tutorial Topic nodes nur zu organisatorischen Zwecken verwenden, z.B. um die Hierarchie so anzuordnen, dass sie einfach zu lesen und zu pflegen ist. Themen mit zu vielen Schritten sind später schwieriger zu handhaben. Mit anderen Worten: Sie können einen Tutorial Topic node verwenden, um mehrere Schritte zu gruppieren, auch wenn Sie nicht beabsichtigen, dass die Tutorial Topic node irgendeinen Inhalt anzeigt. In solchen Fällen können Sie diese Eigenschaft verwenden, um den Schritt zu überspringen, der nicht für die Anzeige von Inhalten vorgesehen ist.",
|
||||
"updated": 1633979074457
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
@@ -204,7 +384,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The docs property is used to point to the Docs Tutorial Page that feeds content to the particular tutorial step. The definition requires the name of the Project, the Docs Page Category which is always \"Tutorial\", and the complete name of the Docs Page, that is, the \"type\" as specified in the JSON file.",
|
||||
"updated": 1617648211414
|
||||
"updated": 1617648211414,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die docs-Eigenschaft wird verwendet, um auf die Docs Tutorial Page zu verweisen, die den Inhalt für den jeweiligen Tutorial-Schritt liefert. Die Definition erfordert den Namen des Project (Projekts), die Docs Page Category (Kategorie) welche immer \"Tutorial\" ist, und den vollständigen Namen der Docs Page, das heißt den \"Typ\", wie in der JSON-Datei angegeben.",
|
||||
"updated": 1633979212224
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -218,12 +405,26 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The property is used to control the behavior of the Docs panel. Within controlDocs, several properties are available, and all of them are optional. Let's review each in detail."
|
||||
"text": "The property is used to control the behavior of the Docs panel. Within controlDocs, several properties are available, and all of them are optional. Let's review each in detail.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Eigenschaft wird verwendet, um das Verhalten des Docs-Panels zu steuern. Innerhalb von controlDocs sind mehrere Eigenschaften verfügbar, die alle optional sind. Sehen wir uns jede im Detail an.",
|
||||
"updated": 1633979296433
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The panel property may be set to \"Open\" or \"Close\". This property controls the tab that allows you to open the Docs Panel in one step, and close it on a different step when it's no longer needed.",
|
||||
"updated": 1617649653900
|
||||
"updated": 1617649653900,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Panel-Eigenschaft kann auf \"Öffnen\" oder \"Schließen\" eingestellt werden. Diese Eigenschaft steuert die Registerkarte, mit der Sie das Doku-Panel in einem Schritt öffnen und in einem anderen Schritt wieder schließen können, wenn es nicht mehr benötigt wird.",
|
||||
"updated": 1633979356912
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -237,12 +438,26 @@
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "If the Docs Panel is closed, the rest of the properties are somehow irrelevant. However, when the Docs Panel is open, the rest of the properties control what is displayed in the Docs Panel.",
|
||||
"updated": 1617635061507
|
||||
"updated": 1617635061507,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn das Docs Panel geschlossen ist, sind die restlichen Eigenschaften irgendwie irrelevant. Wenn das Docs-Panel jedoch geöffnet ist, steuern die restlichen Eigenschaften, was im Docs-Panel angezeigt wird.",
|
||||
"updated": 1633979402232
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The property closeTutorialEditor may switch on and off the Docs editor. When set to false or when there is no definition, and provided no specific Docs Page is called (see controlDocs below), the Docs panel shows the page associated with the current tutorial step in editing mode.",
|
||||
"updated": 1617649781891
|
||||
"updated": 1617649781891,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Eigenschaft closeTutorialEditor kann den Docs-Editor ein- und ausschalten. Wenn die Eigenschaft auf false gesetzt ist oder wenn es keine Definition gibt und wenn keine spezifische Docs-Seite aufgerufen wird (siehe controlDocs unten), zeigt das Docs-Panel die Seite, die mit dem aktuellen Tutorial-Schritt im Bearbeitungsmodus verbunden ist.",
|
||||
"updated": 1633979594120
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -252,12 +467,26 @@
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Because this definition is set to false by default, this is the usual behavior. That is, by default, when the Docs Panel is opened while a tutorial step is playing, the Docs Panel shows the Docs Page associated with the specific step so that the page may be edited right then and there.",
|
||||
"updated": 1617648335347
|
||||
"updated": 1617648335347,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Da diese Definition standardmäßig auf false gesetzt ist, ist dies das standardmäßige Verhalten. Das heißt, wenn das Docs-Bedienfeld geöffnet wird, während ein Tutorial-Schritt abgespielt wird, zeigt das Docs-Bedienfeld standardmäßig die Docs-Seite an, die mit dem jeweiligen Schritt verknüpft ist, so dass die Seite direkt an Ort und Stelle bearbeitet werden kann.",
|
||||
"updated": 1633979921238
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "When the closeTutorialEditor property is set to true and there is no request to open a Docs page (see page property below), then the Docs panel shows whatever Docs Page was being displayed in the previous step.",
|
||||
"updated": 1617648434580
|
||||
"updated": 1617648434580,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn die Eigenschaft closeTutorialEditor auf true gesetzt ist und keine Anforderung zum Öffnen einer Dokumentseite vorliegt (siehe Eigenschaft page weiter unten), dann zeigt das Dokumentseiten-Panel die Dokumentseite an, die im vorherigen Schritt angezeigt wurde.",
|
||||
"updated": 1633979700958
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -267,12 +496,26 @@
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "You may want to close the tutorial editor when the user is supposed to interact with the Docs from one step to the next. For example, let's say the tutorial instructs the user to run a search and discusses the search results in the following step. In that case, you will want the tutorial editor to remain closed, as otherwise, the search performed by the user would be lost, and instead the page corresponding to the new tutorial step would be loaded.",
|
||||
"updated": 1617649832578
|
||||
"updated": 1617649832578,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es kann sinnvoll sein, den Tutorial Editor zu schließen, wenn der Benutzer von einem Schritt zum nächsten mit den Docs interagieren soll. Nehmen wir zum Beispiel an, das Tutorial weist den Benutzer an, eine Suche durchzuführen und dieses Ergebnis im nächsten Schritt zu besprechen. In diesem Fall möchten Sie, dass der Editor des Tutorials geschlossen bleibt, da sonst die vom Benutzer durchgeführte Suche verloren ginge und stattdessen die Seite geladen würde, die dem neuen Schritt des Tutorials entspricht.",
|
||||
"updated": 1633979902886
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The searchPage property overruns the tutorial editor settings and loads the home search page featuring the search box in the center.",
|
||||
"updated": 1617649861459
|
||||
"updated": 1617649861459,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Eigenschaft searchPage überschreibt die Einstellungen des Tutorial-Editors und lädt die Hauptsuchseite mit dem Suchfeld in der Mitte.",
|
||||
"updated": 1633979953175
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -282,12 +525,26 @@
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Use the above setting when you wish the user to get the clean search box to make a search or run a command.",
|
||||
"updated": 1617648884933
|
||||
"updated": 1617648884933,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Verwenden Sie die obige Einstellung, wenn Sie möchten, dass der Benutzer das saubere Suchfeld erhält, um eine Suche durchzuführen oder einen Befehl auszuführen.",
|
||||
"updated": 1633980006636
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The page property is where you define which Docs Page must be loaded. You must specify the Project, the Docs Page Category, and the \"type\" which is the complete name of the page. The optional property anchor allows you to point the user to a specific paragraph in the page with the Docs Anchor Style.",
|
||||
"updated": 1630752089891
|
||||
"updated": 1630752089891,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Mit der page property legen Sie fest, welche Docs Page geladen werden soll. Sie müssen das Project (Projekt), die Docs Page Category (Kategorie) und den \"type\" (Typ), also den vollständigen Namen der Seite, angeben. Die optionale Eigenschaft anchor ermöglicht es Ihnen, den Benutzer mit dem Docs Anchor Style auf einen bestimmten Absatz der Seite zu verweisen.",
|
||||
"updated": 1633980112889
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -297,7 +554,14 @@
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Use the above configuration when you wish the user to read a specific page in the Docs.",
|
||||
"updated": 1617649085529
|
||||
"updated": 1617649085529,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Verwenden Sie die obige Konfiguration, wenn Sie möchten, dass der Benutzer eine bestimmte Seite in den Docs liest.",
|
||||
"updated": 1633980693215
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -53,6 +53,10 @@ function newEducationActionSwitch() {
|
||||
UI.projects.education.spaces.tutorialSpace.resetTutorialProgress(action.node)
|
||||
}
|
||||
break
|
||||
|
||||
default: {
|
||||
console.log("[WARN] Action sent to Education Action Switch does not belong here. Verify at the App Schema file of the node that triggered this action that the actionProject is pointing to the right project. -> Action = " + action.name + " -> Action Node Name = " + action.node.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1380,11 +1380,16 @@ function newEducationTutorialSpace() {
|
||||
}
|
||||
}
|
||||
|
||||
let divHeight
|
||||
if (fullscreenMode === false) {
|
||||
html = html + '<h2 class="tutorial-font-medium">' + title + '</h2>'
|
||||
|
||||
divHeight = "78%"
|
||||
} else {
|
||||
divHeight = "91%"
|
||||
}
|
||||
|
||||
html = html + '<div>'
|
||||
html = html + '<div class="tutorial-content-div" style="height: ' + divHeight + '">'
|
||||
|
||||
if (schemaDocument.definition !== undefined && schemaDocument.definition.text !== '') {
|
||||
if (fullscreenMode === false) {
|
||||
|
||||
@@ -38,7 +38,8 @@
|
||||
"actionProject": "Visual-Scripting",
|
||||
"label": "Add Data Mine",
|
||||
"relatedUiObject": "Data Mine",
|
||||
"actionFunction": "payload.executeAction"
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Ethereum"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
|
||||
@@ -23,6 +23,10 @@ function newEthereumActionSwitch() {
|
||||
UI.projects.ethereum.functionLibraries.accounts.createWalletAccount(action.node)
|
||||
break
|
||||
}
|
||||
|
||||
default: {
|
||||
console.log("[WARN] Action sent to Ethereum Action Switch does not belong here. Verify at the App Schema file of the node that triggered this action that the actionProject is pointing to the right project. -> Action = " + action.name + " -> Action Node Name = " + action.node.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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
+21723
-14306
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
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
+136344
-13727
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -36,7 +36,8 @@
|
||||
"label": "Add Project Dashboards",
|
||||
"relatedUiObject": "Project Dashboards",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add Missing Project Dashboards",
|
||||
@@ -45,7 +46,8 @@
|
||||
"confirmationLabel": "Confirm to Proceed",
|
||||
"workDoneLabel": "Done",
|
||||
"relatedUiObject": "Project Dashboards",
|
||||
"actionFunction": "payload.executeAction"
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
"label": "Add Project Data Products",
|
||||
"relatedUiObject": "Project Data Products",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add Missing Project Data Products",
|
||||
@@ -15,11 +16,12 @@
|
||||
"confirmationLabel": "Confirm to Proceed",
|
||||
"workDoneLabel": "Done",
|
||||
"relatedUiObject": "Project Data Products",
|
||||
"actionFunction": "payload.executeAction"
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"askConfirmation": true,
|
||||
"confirmationLabel": "Confirm to Delete",
|
||||
"label": "Delete",
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
"label": "Add Project Data Tasks",
|
||||
"relatedUiObject": "Project Data Tasks",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add Missing Project Data Tasks",
|
||||
@@ -35,11 +36,12 @@
|
||||
"confirmationLabel": "Confirm to Proceed",
|
||||
"workDoneLabel": "Done",
|
||||
"relatedUiObject": "Project Data Tasks",
|
||||
"actionFunction": "payload.executeAction"
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"askConfirmation": true,
|
||||
"confirmationLabel": "Confirm to Delete",
|
||||
"label": "Delete",
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
"action": "Add UI Object",
|
||||
"label": "Add Asset",
|
||||
"relatedUiObject": "Asset",
|
||||
"relatedUiObjectProject": "Foundations",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
},
|
||||
@@ -22,11 +23,12 @@
|
||||
"confirmationLabel": "Confirm to Proceed",
|
||||
"workDoneLabel": "Done",
|
||||
"relatedUiObject": "Asset",
|
||||
"relatedUiObjectProject": "Foundations",
|
||||
"actionFunction": "payload.executeAction"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"askConfirmation": true,
|
||||
"confirmationLabel": "Confirm to Delete",
|
||||
"label": "Delete",
|
||||
|
||||
@@ -5,12 +5,13 @@
|
||||
"action": "Add UI Object",
|
||||
"label": "Add Feature",
|
||||
"relatedUiObject": "Feature",
|
||||
"relatedUiObjectProject": "TensorFlow",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"askConfirmation": true,
|
||||
"confirmationLabel": "Confirm to Delete",
|
||||
"label": "Delete",
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
"label": "Add Project Learning Products",
|
||||
"relatedUiObject": "Project Learning Products",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add Missing Project Learning Products",
|
||||
@@ -15,11 +16,12 @@
|
||||
"confirmationLabel": "Confirm to Proceed",
|
||||
"workDoneLabel": "Done",
|
||||
"relatedUiObject": "Project Learning Products",
|
||||
"actionFunction": "payload.executeAction"
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"askConfirmation": true,
|
||||
"confirmationLabel": "Confirm to Delete",
|
||||
"label": "Delete",
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
"label": "Add Project Learning Tasks",
|
||||
"relatedUiObject": "Project Learning Tasks",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add Missing Project Learning Tasks",
|
||||
@@ -35,11 +36,12 @@
|
||||
"confirmationLabel": "Confirm to Proceed",
|
||||
"workDoneLabel": "Done",
|
||||
"relatedUiObject": "Project Learning Tasks",
|
||||
"actionFunction": "payload.executeAction"
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"askConfirmation": true,
|
||||
"confirmationLabel": "Confirm to Delete",
|
||||
"label": "Delete",
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
"label": "Add Data Mine",
|
||||
"relatedUiObject": "Data Mine",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Data-Mining"
|
||||
},
|
||||
{
|
||||
"action": "Add UI Object",
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
"label": "Add Project Trading Tasks",
|
||||
"relatedUiObject": "Project Trading Tasks",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add Missing Project Trading Tasks",
|
||||
@@ -35,11 +36,12 @@
|
||||
"confirmationLabel": "Confirm to Proceed",
|
||||
"workDoneLabel": "Done",
|
||||
"relatedUiObject": "Project Trading Tasks",
|
||||
"actionFunction": "payload.executeAction"
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"askConfirmation": true,
|
||||
"confirmationLabel": "Confirm to Delete",
|
||||
"label": "Delete",
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
"label": "Add Project Trading Tasks",
|
||||
"relatedUiObject": "Project Trading Tasks",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add Missing Project Trading Tasks",
|
||||
@@ -35,11 +36,12 @@
|
||||
"confirmationLabel": "Confirm to Proceed",
|
||||
"workDoneLabel": "Done",
|
||||
"relatedUiObject": "Project Trading Tasks",
|
||||
"actionFunction": "payload.executeAction"
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"askConfirmation": true,
|
||||
"confirmationLabel": "Confirm to Delete",
|
||||
"label": "Delete",
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
"label": "Add Project Trading Products",
|
||||
"relatedUiObject": "Project Trading Products",
|
||||
"actionFunction": "payload.executeAction",
|
||||
"actionProject": "Visual-Scripting"
|
||||
"actionProject": "Visual-Scripting",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Add Missing Project Trading Products",
|
||||
@@ -15,11 +16,12 @@
|
||||
"confirmationLabel": "Confirm to Proceed",
|
||||
"workDoneLabel": "Done",
|
||||
"relatedUiObject": "Project Trading Products",
|
||||
"actionFunction": "payload.executeAction"
|
||||
"actionFunction": "payload.executeAction",
|
||||
"relatedUiObjectProject": "Foundations"
|
||||
},
|
||||
{
|
||||
"action": "Delete UI Object",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"actionProject": "Visual-Scripting",
|
||||
"askConfirmation": true,
|
||||
"confirmationLabel": "Confirm to Delete",
|
||||
"label": "Delete",
|
||||
|
||||
+137
-17
@@ -2,7 +2,14 @@
|
||||
"type": "Reusable Snippets",
|
||||
"definition": {
|
||||
"text": "This page lists snippets of text required in multiple pages. Keeping snippets in a central location makes maintenance easier and avoids duplicating content. Each snippet is arranged under a block featuring the same name as the title displayed before the snippet. To use these snippets, include the corresponding block on the destination page.",
|
||||
"updated": 1610121599173
|
||||
"updated": 1610121599173,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Diese Seite listet Textausschnitte auf, die auf mehreren Seiten benötigt werden. Die Aufbewahrung von Snippets an einem zentralen Ort erleichtert die Pflege und vermeidet die Duplizierung von Inhalten. Jedes Snippet ist unter einem Block angeordnet, der denselben Namen trägt wie der Titel, der vor dem Snippet angezeigt wird. Um diese Snippets zu verwenden, fügen Sie den entsprechenden Block auf der Zielseite ein.",
|
||||
"updated": 1634293291023
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
@@ -17,7 +24,14 @@
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "This page discusses the top-level information about the section of the hierarchy represented in the below table. Click on any of the nodes to get the details, including particulars on their configuration, when applicable.",
|
||||
"updated": 1610124674614
|
||||
"updated": 1610124674614,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Diese Seite behandelt die Top-Level-Informationen über den Abschnitt der Hierarchie, der in der folgenden Tabelle dargestellt ist. Klicken Sie auf einen der Knoten, um die Details zu erfahren, einschließlich der Angaben zur Konfiguration, falls zutreffend.",
|
||||
"updated": 1634293316369
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -37,7 +51,14 @@
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "Click on any of the nodes to get the details, including particulars on their configuration, when applicable.",
|
||||
"updated": 1611254904577
|
||||
"updated": 1611254904577,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Klicken Sie auf einen der Knoten, um die Details zu erfahren, gegebenenfalls auch Einzelheiten zu ihrer Konfiguration.",
|
||||
"updated": 1634293331744
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -55,7 +76,14 @@
|
||||
{
|
||||
"style": "Important",
|
||||
"text": "Running a live session requires the setup of a key reference at the Task. It also requires a live data feed, meaning that the corresponding Sensor Bot Instance, along with all indicators used by the referenced Trading System, must be up and running. Finally, a live session also requires at least 48 hours of historic market data. Bear in mind that the Trading System may require even more historic market data to properly analyze the market depending on the indicators used.",
|
||||
"updated": 1610106222219
|
||||
"updated": 1610106222219,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Durchführung einer Live-Sitzung erfordert die Einrichtung einer Schlüsselreferenz im Task. Außerdem ist ein Live-Datenfeed erforderlich, d. h. die entsprechende Sensor Bot Instance muss zusammen mit allen Indikatoren, die vom referenzierten Trading System verwendet werden, betriebsbereit sein. Schließlich sind für eine Live-Sitzung auch mindestens 48 Stunden historischer Marktdaten erforderlich. Beachten Sie, dass das Trading System je nach den verwendeten Indikatoren möglicherweise noch mehr historische Marktdaten benötigt, um den Markt richtig zu analysieren.",
|
||||
"updated": 1634293415385
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -78,7 +106,14 @@
|
||||
{
|
||||
"style": "Warning",
|
||||
"text": "Deleting this node causes market install and uninstall scripts to stop working, even if the node is recreated after being deleted.",
|
||||
"updated": 1610122503324
|
||||
"updated": 1610122503324,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das Löschen dieses Knotens führt dazu, dass die Skripte zur Marktinstallation und -deinstallation nicht mehr funktionieren, selbst wenn der Knoten nach dem Löschen neu erstellt wird.",
|
||||
"updated": 1634293427532
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -98,7 +133,14 @@
|
||||
{
|
||||
"style": "Warning",
|
||||
"text": "Trading, trading with bots, and trading with Community-shared trading systems entail risks. Make sure you read the whole page, including the warnings at the bottom of the page. You should fully understand how this trading system works so that you may make your own informed decisions as of how to use it. Use this trading system at your own risk.",
|
||||
"updated": 1611675586788
|
||||
"updated": 1611675586788,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Handel, der Handel mit Bots und der Handel mit von der Community freigegebenen Handelssystemen sind mit Risiken verbunden. Lesen Sie unbedingt die gesamte Seite, einschließlich der Warnhinweise am Ende der Seite. Sie sollten die Funktionsweise dieses Handelssystems vollständig verstehen, damit Sie Ihre eigenen fundierten Entscheidungen über seine Verwendung treffen können. Die Nutzung dieses Handelssystems erfolgt auf eigenes Risiko.",
|
||||
"updated": 1634293480146
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -118,7 +160,14 @@
|
||||
{
|
||||
"style": "Warning",
|
||||
"text": "Superalgos is a piece of computer software. Like with any software, errors may occur at any point, including errors that may cause you to lose money. You are responsible for taking all precautions you may deem appropriate before trading live. Even if you take all possible precautionary measures, things may still go wrong and errors may occur. By using this software to trade live despite the warnings, you acknowledge that you are aware of the inherent risks in trading and in using software for that purpose. The Superalgos project offers the software AS IS, with no explicit or implied warranties of any kind. The project, the software, the superalgos.org website, this documentation, and the Community do not offer financial advice. Although the strategies shipping with the system may be fully functional, Superalgos does not make any express or implied recommendation as to how you should use them. We share strategies for educational purposes only. Trade under your responsibility and at your own risk. The use of the software is subject to the terms of the <a href=\"https://github.com/Superalgos/Superalgos/blob/master/LICENSE\" target=\"_blank\">LICENSE</a>.",
|
||||
"updated": 1611675794734
|
||||
"updated": 1611675794734,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Superalgos ist ein Stück Computer-Software. Wie bei jeder Software können jederzeit Fehler auftreten, auch solche, durch die Sie Geld verlieren können. Sie sind dafür verantwortlich, alle Vorsichtsmaßnahmen zu treffen, die Sie für angemessen halten, bevor Sie live handeln. Selbst wenn Sie alle möglichen Vorsichtsmaßnahmen ergreifen, kann immer noch etwas schief gehen und es können Fehler auftreten. Indem Sie diese Software trotz der Warnungen für den Live-Handel verwenden, erkennen Sie an, dass Sie sich der inhärenten Risiken des Handels und der Verwendung von Software für diesen Zweck bewusst sind. Das Superalgos-Projekt bietet die Software so an, wie sie ist, ohne ausdrückliche oder stillschweigende Garantien jeglicher Art. Das Projekt, die Software, die Website superalgos.org, diese Dokumentation und die Community bieten keine Finanzberatung. Obwohl die Strategien, die mit dem System geliefert werden, voll funktionsfähig sind, gibt Superalgos keine ausdrückliche oder stillschweigende Empfehlung ab, wie Sie sie verwenden sollten. Wir stellen die Strategien nur zu Bildungszwecken zur Verfügung. Handeln Sie auf eigene Verantwortung und auf eigenes Risiko. Die Nutzung der Software unterliegt den Bedingungen der <a href='https://github.com/Superalgos/Superalgos/blob/master/LICENSE'>LICENSE</a>.",
|
||||
"updated": 1634293625788
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -138,7 +187,14 @@
|
||||
{
|
||||
"style": "Important",
|
||||
"text": "THIS IS NOT FINANCIAL ADVICE. ALTHOUGH STRATEGIES SHIPPING WITH SUPERALGOS MAY BE FULLY FUNCTIONAL, SUPERALGOS DOES NOT MAKE ANY EXPRESS OR IMPLIED RECOMMENDATION AS OF HOW YOU SHOULD USE THEM. WE SHARE STRATEGIES FOR EDUCATIONAL PURPOSES ONLY. TRADE AT YOUR OWN RISK.<br/><br/><b>Performance in backtesting is not an indication of live trading performance.</b> Live performance may vary in relation to performance in backtesting, for better or for worse, most likely for worse. This happens because the design of trading strategies is done after the fact, with the hindsight of what happened in a certain range of the market. Patterns upon which strategies may be based on may keep occurring or not. Trading strategies attempt to interpret patterns and predict what may follow, but they are far from being perfect or accurate. The best-case scenario is a strategy being right more times than it is wrong.<br/><br/><b>Live performance is not an indication of future performance. </b>Similarly, even when a strategy has delivered a certain performance trading live, there is no guarantee of what performance the strategy may achieve in the future. Live performance results are certainly more valuable than backtesting or simulated performance but still can’t predict the future.<br/><br/><b>Trading strategies lose effectiveness with time. </b>How much time? No-one knows. Markets evolve, change, go through different cycles, both long and short-term, some of which may not have been tested. That is true for all markets, let alone crypto, which is a very young market, still in its very early stages. Crypto markets change dramatically fast, as the market cap increases, more pro-traders enter the space, more smart money pours larger capitals, more bots take over operations of ever-increasing volumes, more complexity is added to the ecosystem with the availability of derivative markets, and so on.",
|
||||
"updated": 1611676109591
|
||||
"updated": 1611676109591,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "DIES IST KEINE FINANZIELLE BERATUNG. AUCH WENN DIE MIT SUPERALGOS VERSANDTEN STRATEGIEN VOLL FUNKTIONSFÄHIG SIND, GIBT SUPERALGOS KEINE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE EMPFEHLUNG AB, WIE SIE SIE VERWENDEN SOLLTEN. WIR TEILEN DIE STRATEGIEN NUR ZU LEHRZWECKEN. HANDELN SIE AUF IHR EIGENES RISIKO.<br><br><b>Die Performance im Backtesting ist kein Hinweis auf die Performance im Live-Handel.</b> Die Live-Performance kann im Verhältnis zur Backtesting-Performance variieren, zum Guten oder zum Schlechten, höchstwahrscheinlich zum Schlechten. Dies liegt daran, dass die Entwicklung von Handelsstrategien im Nachhinein erfolgt, d. h. im Nachhinein, wenn man weiß, was in einem bestimmten Marktbereich passiert ist. Die Muster, auf die sich die Strategien stützen, können immer wieder auftreten oder auch nicht. Handelsstrategien versuchen, Muster zu interpretieren und vorherzusagen, was folgen könnte, aber sie sind weit davon entfernt, perfekt oder genau zu sein. Im günstigsten Fall liegt eine Strategie öfter richtig als falsch.<br><br><b>Die aktuelle Leistung ist kein Hinweis auf die künftige Leistung.</b> Auch wenn eine Strategie im Live-Handel eine bestimmte Leistung erbracht hat, gibt es keine Garantie dafür, welche Leistung die Strategie in Zukunft erzielen wird. Live-Performance-Ergebnisse sind sicherlich wertvoller als Backtesting oder simulierte Performance, können aber dennoch nicht die Zukunft vorhersagen.<br><br><b>Handelsstrategien verlieren mit der Zeit an Effektivität.</b> Wie viel Zeit? Das weiß niemand. Die Märkte entwickeln sich, verändern sich, durchlaufen verschiedene Zyklen, sowohl lang- als auch kurzfristige, von denen einige vielleicht noch nicht getestet wurden. Das gilt für alle Märkte, ganz zu schweigen von den Kryptomärkten, die ein sehr junger Markt sind, der sich noch in einem sehr frühen Stadium befindet. Kryptomärkte verändern sich dramatisch schnell, wenn die Marktgröße steigt, mehr Profi-Händler in den Markt eintreten, mehr intelligentes Geld größere Summen investiert, mehr Bots den Betrieb von immer größeren Volumina übernehmen, das Ökosystem durch die Verfügbarkeit von Derivatemärkten komplexer wird und so weiter.",
|
||||
"updated": 1634293787716
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -161,7 +217,14 @@
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "All contributions to the Docs and Plugins must be submitted to the Plugins-Docs branch. All contributions to the code base must be submitted to the Develop branch. Make sure you update to the latest version in new branch and that everything you are submitting works properly in that version.",
|
||||
"updated": 1620501903096
|
||||
"updated": 1620501903096,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Alle Beiträge zu den Docs und Plugins müssen im Plugins-Docs Branch eingereicht werden. Alle Beiträge zur Codebasis müssen im Develop Branch eingereicht werden. Stellen Sie sicher, dass Sie auf die neueste Version im neuen Zweig aktualisieren und dass alles, was Sie einreichen, in dieser Version korrekt funktioniert.",
|
||||
"updated": 1634294150617
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
@@ -171,26 +234,61 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "To switch to the plugins-docs or the develop branch:",
|
||||
"updated": 1620501928162
|
||||
"updated": 1620501928162,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um in den Branch plugins-docs oder den Branch develop zu wechseln:",
|
||||
"updated": 1634294172533
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Go to the footer of this page."
|
||||
"text": "Go to the footer of this page.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Gehen Sie zur Fußzeile dieser Seite.",
|
||||
"updated": 1634294184016
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Select Plugins-Docs or Develop under the Contributions Branch title.",
|
||||
"updated": 1620501942290
|
||||
"updated": 1620501942290,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wählen Sie Plugins-Docs oder Develop unter dem Titel Contributions Branch.",
|
||||
"updated": 1634294206303
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Then select Plugins-Docs or Develop under the Choose the Current Branch title.",
|
||||
"updated": 1620501951286
|
||||
"updated": 1620501951286,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wählen Sie dann Plugins-Docs oder Develop unter dem Titel Choose the Current Branch.",
|
||||
"updated": 1634294219034
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Follow the instructions to close and restart the app.",
|
||||
"updated": 1613810110150
|
||||
"updated": 1613810110150,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Folgen Sie den Anweisungen zum Schließen und Neustarten der Anwendung.",
|
||||
"updated": 1634294225801
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
@@ -198,7 +296,15 @@
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Run the App Update Command"
|
||||
"text": "Run the App Update Command by typing it into the Searchfield at the top of the Docs",
|
||||
"updated": 1634293024048,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Führen Sie den App Update Command aus, indem Sie ihn in das Suchfeld oben in den Docs eingeben",
|
||||
"updated": 1634294256578
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -206,7 +312,14 @@
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Close the app and restart."
|
||||
"text": "Close the app and restart.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Schließen Sie die Anwendung und starten Sie sie neu.",
|
||||
"updated": 1634294268406
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
@@ -215,7 +328,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Before you go any further, do the Beyond the Basics tutorial in the Getting Started plugin workspace so that you learn the basics on how to deal with contributions from within the app. The tutorial will help you get your setup right so that contributions are seamless.",
|
||||
"updated": 1613828879531
|
||||
"updated": 1613828879531,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bevor Sie weitermachen, sollten Sie das Tutorial \"Beyond the Basics\" im Workspace des Plugins \"Getting Started\" durcharbeiten, damit Sie die Grundlagen für den Umgang mit Beiträgen innerhalb der App erlernen. Das Tutorial hilft Ihnen bei der richtigen Einrichtung, damit die Beiträge reibungslos funktionieren.",
|
||||
"updated": 1634294294775
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
|
||||
+12
-1
@@ -15,7 +15,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Tus contribuciones se cargaron en tu Superalgos Fork y tu Pull Request fue enviado al repositorio principal de Superalgos.",
|
||||
"updated": 1628207320785
|
||||
"updated": 1628207320785,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ihre Beiträge wurden in Ihren Superalgos Fork hochgeladen und ein Pull Request wurde an das Haupt-Repository von Superalgos gesendet.",
|
||||
"updated": 1634163888387
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -30,6 +36,11 @@
|
||||
"text": "Anda tidak perlu melakukan tindakan apapun. Seseorang akan meninjau Pull Request anda dan menggabungkannya ke perangkat lunak versi terbaru jika semuanya telah selesai. Jika perubahan anda ditolak karena alasan apa pun, anda harus memfollow up ke Github.com.",
|
||||
"updated": 1613861030185,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"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 Problem auf Github.com verfolgen.",
|
||||
"updated": 1634163896241
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+25
@@ -11,6 +11,11 @@
|
||||
"text": "Tunggu sebentar perubahan yang dilakukan sedang diupload ke GitHub.com dan Pull Request sedang dibuat. Anda akan mendapatkan pesan baru setelah penguploadtan selesai.",
|
||||
"updated": 1613891008401,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"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
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -25,6 +30,11 @@
|
||||
"text": "Lalu Selanjutnya ?",
|
||||
"updated": 1613891025030,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wie geht es nun weiter?",
|
||||
"updated": 1634163743036
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,6 +48,11 @@
|
||||
"text": "Tidak perlu melakukan tindakan lebih lanjut. Seseorang akan meninjau Pull Request anda dan menggabungkannya ke perangkat lunak versi terbaru setelah semuanya selesai. Jika perubahan anda ditolak karena alasan apa pun, anda harus follow up masalah tersebut ke Github.com.",
|
||||
"updated": 1613891172587,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"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
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -51,6 +66,11 @@
|
||||
"text": "Jika Anda mengirimkan lebih dari satu kontribusi saat Pull Request sedang direview, Hal tersebut akan secara otomatis ditambahkan ke Pull Request terbuka.",
|
||||
"updated": 1613891268456,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"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
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -64,6 +84,11 @@
|
||||
"text": "Anda akan menerima email dari Github.com ketika perubahan dimerger, atau jika para peninjau memberikan komentar bahkan penolakan dalam perubahan. Anda dapat mengelola pengaturan berlangganan email anda di GitHub.com.",
|
||||
"updated": 1613891399207,
|
||||
"style": "Note"
|
||||
},
|
||||
{
|
||||
"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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+10
@@ -11,6 +11,11 @@
|
||||
"text": "Proses pembaruan berjalan lancar namun tidak ada perubahan karena versi instalasi sudah terbaru dengan branch sekarang . Tidak perlu tindakan lebih lanjut.",
|
||||
"updated": 1616761518007,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Aktualisierungsprozess wurde erfolgreich durchgeführt, aber es wurden keine Änderungen vorgenommen, da Ihre Installation mit dem aktuellen Zweig auf dem neuesten Stand ist. Es sind keine weiteren Maßnahmen erforderlich.",
|
||||
"updated": 1634485256076
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -25,6 +30,11 @@
|
||||
"text": "Anda sudah diversi paling up-to-date. Tidak perlu me-reboot Client atau merefresh halaman UI ini.",
|
||||
"updated": 1613892633200,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie sind auf dem neuesten Stand. Sie müssen den Client nicht neu starten oder die UI-Website aktualisieren.",
|
||||
"updated": 1634485290648
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+48
-6
@@ -4,32 +4,74 @@
|
||||
"type": "Fundamental Charting Space Concepts",
|
||||
"definition": {
|
||||
"text": "The charting space provides great control over how information generated on other hierarchies is visualized.",
|
||||
"updated": 1610134431825
|
||||
"updated": 1610134431825,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Charting Space bietet eine große Kontrolle darüber, wie die auf anderen Hierarchien erzeugten Informationen visualisiert werden.",
|
||||
"updated": 1634486374442
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Conceptually, Superalgos places the focus on the visual experience. Not just because it’s nice to see data in a graphical representation, but because our analysis capabilities are extended when we incorporate senses in the mix. Human’s capacity to think abstractly may be more or less developed across individuals, but one thing is clear: our thought process benefits from being able to see.",
|
||||
"updated": 1610134441689
|
||||
"updated": 1610134441689,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das Konzept von Superalgos legt den Schwerpunkt auf die visuelle Erfahrung. Nicht nur, weil es schön ist, Daten in einer grafischen Darstellung zu sehen, sondern weil unsere Analysefähigkeiten erweitert werden, wenn wir Sinne mit einbeziehen. Die Fähigkeit des Menschen, abstrakt zu denken, mag bei jedem Menschen mehr oder weniger ausgeprägt sein, aber eines ist klar: Unser Denkprozess profitiert davon, dass wir sehen können.",
|
||||
"updated": 1634486364773
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The Charting Space is conceived to provide an unprecedented level of flexibility and control over the way information is displayed graphically. Everything that you see in the form of charts when you pull the slider down is configured in the charting space hierarchy while using the information available in other hierarchies.",
|
||||
"updated": 1610134480039
|
||||
"updated": 1610134480039,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Charting Space ist so konzipiert, dass er ein noch nie dagewesenes Maß an Flexibilität und Kontrolle über die Art und Weise bietet, wie Informationen grafisch dargestellt werden. Alles, was Sie in Form von Diagrammen sehen, wenn Sie den Schieberegler nach unten ziehen, wird in der Hierarchie des Charting Space konfiguriert, wobei die in anderen Hierarchien verfügbaren Informationen verwendet werden.",
|
||||
"updated": 1634486341592
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In other words, you use the charting space hierarchy to create Time Machines and Timeline Charts, and to configure their scales and so on, but the information feeding those charts come from bots running on the Network hierarchy. Those bots obtain exchange and market information from the Crypto Ecosystem hierarchy via references, and their source code is defined in Data Mines.",
|
||||
"updated": 1610134533861
|
||||
"updated": 1610134533861,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Mit anderen Worten: Sie verwenden die Charting Space Hierarchie, um Time Machines und Timeline Charts zu erstellen und ihre Skalen usw. zu konfigurieren, aber die Informationen, die diese Charts speisen, stammen von Bots, die auf der Network hierarchy ( Hierarchie) laufen. Diese Bots beziehen Börsen- und Marktinformationen über Referenzen aus der Crypto Ecosystem Hierarchie, und ihr Quellcode ist in Data Mines definiert.",
|
||||
"updated": 1634486583344
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The above means that, in order to have information to visualize, you will first need to run sensor and indicator bots. We call that data mining, and it’s done from the data mining section of the network hierarchy."
|
||||
"text": "The above means that, in order to have information to visualize, you will first need to run sensor and indicator bots. We call that data mining, and it’s done from the data mining section of the network hierarchy.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das bedeutet, dass Sie zunächst Sensor- und Indicator-Bots ausführen müssen, um Informationen zur Visualisierung zu erhalten. Wir nennen das Data-Mining, und es wird im Data-Mining-Bereich der network hierarchy durchgeführt.",
|
||||
"updated": 1634486674422
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The workspaces shipping with the system feature several configurations of exchanges, markets, and charts that you may start using right away. To configure your own charts, you will need to learn the basics of the Charting Space, and that is exactly the information covered on these pages.",
|
||||
"updated": 1610134602649
|
||||
"updated": 1610134602649,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die mit dem System gelieferten Arbeitsbereiche enthalten mehrere Konfigurationen von Börsen, Märkten und Charts, die Sie sofort verwenden können. Um Ihre eigenen Charts zu konfigurieren, müssen Sie die Grundlagen des Charting Space erlernen, und genau diese Informationen werden auf diesen Seiten behandelt.",
|
||||
"updated": 1634486718746
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+8
-1
@@ -4,7 +4,14 @@
|
||||
"type": "Charting Space Hierarchy",
|
||||
"definition": {
|
||||
"text": "The charting space hierarchy organizes the charts on the Viewport and controls their behavior.",
|
||||
"updated": 1610134676796
|
||||
"updated": 1610134676796,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Hierarchie des Charting Space organisiert die Diagramme im Viewport und steuert ihr Verhalten.",
|
||||
"updated": 1634486807958
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
|
||||
+486
-54
@@ -4,7 +4,15 @@
|
||||
"type": "How to Contribute Icons",
|
||||
"definition": {
|
||||
"text": "Superalgos' visual interface features hundreds of icons and many more icons are required with each release, as new functionality is rolled out. Designing icons is a great way to leave your mark, as it puts your work directly in front of every user!",
|
||||
"updated": 1613590520324
|
||||
"updated": 1613590520324,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die visuelle Schnittstelle von Superalgos enthält Hunderte von Icons, und mit jeder neuen Version werden viele weitere Icons benötigt, da neue Funktionen eingeführt werden. Das Entwerfen von Icons ist eine großartige Möglichkeit, Ihre Spuren zu hinterlassen, da Sie Ihre Arbeit jedem Benutzer direkt vor Augen führen können!",
|
||||
"updated": 1634068601269,
|
||||
"style": "Definition"
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
@@ -14,12 +22,28 @@
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Attribution"
|
||||
"text": "Attribution",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zuordnung",
|
||||
"updated": 1634038894914,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The original set of icons is a web design pack made by Freepik and is available at:",
|
||||
"updated": 1613378893975
|
||||
"updated": 1613378893975,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der ursprüngliche Icon-Satz ist ein Webdesign-Paket von Freepik und ist verfügbar unter:",
|
||||
"updated": 1634038855754,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Link",
|
||||
@@ -28,22 +52,54 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The rest of the series is inspired in the design style developed for the original set."
|
||||
"text": "The rest of the series is inspired in the design style developed for the original set.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Rest der Serie orientiert sich an dem für die ursprüngliche Serie entwickelten Designstil.",
|
||||
"updated": 1634038873222,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The authorship of each icon not in the original series may be tracked in the repository's history.",
|
||||
"updated": 1613591688551
|
||||
"updated": 1613591688551,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Urheberschaft eines jeden Symbols, das nicht in der Originalserie enthalten ist, kann in der Historie des Repositorys nachverfolgt werden.",
|
||||
"updated": 1634038880155,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Coordination",
|
||||
"updated": 1613591702695
|
||||
"updated": 1613591702695,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Koordinierung",
|
||||
"updated": 1634038908706,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Join the following group to coordinate works:",
|
||||
"updated": 1613591754190
|
||||
"updated": 1613591754190,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Treten Sie der folgenden Gruppe bei, um die Arbeiten zu koordinieren:",
|
||||
"updated": 1634039014215,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Link",
|
||||
@@ -53,21 +109,53 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Please, introduce yourself and get up to speed with the group currently doing the work. The main coordination task is keeping track of who will block what part of the pending work so that we don’t duplicate efforts.",
|
||||
"updated": 1613591821097
|
||||
"updated": 1613591821097,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bitte stellen Sie sich vor und machen Sie sich mit der Gruppe vertraut, die derzeit an der Arbeit ist. Die wichtigste Koordinierungsaufgabe besteht darin, den Überblick darüber zu behalten, wer welchen Teil der anstehenden Arbeiten blockieren wird, damit wir keine Doppelarbeit leisten.",
|
||||
"updated": 1634039021445,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Design Brief",
|
||||
"updated": 1613591872004
|
||||
"updated": 1613591872004,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Design Briefing",
|
||||
"updated": 1634039116341,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Color Palette"
|
||||
"text": "Color Palette",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Farbpalette",
|
||||
"updated": 1634039166618,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "We use a restricted palette, with a playful selection of colors that work well both over a black background—on the Design Space — and a white background — on the Docs and the Charting Space.",
|
||||
"updated": 1613591919434
|
||||
"updated": 1613591919434,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wir verwenden eine begrenzte Palette mit einer spielerischen Auswahl von Farben, die sowohl auf schwarzem Hintergrund - im Design Space - als auch auf weißem Hintergrund - in den Dokumenten und im Charting Space - gut funktionieren.",
|
||||
"updated": 1634039205517,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Png",
|
||||
@@ -77,28 +165,76 @@
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Look & Feel",
|
||||
"updated": 1613592080753
|
||||
"updated": 1613592080753,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Erscheinungsbild und Gefühl",
|
||||
"updated": 1634039241859,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Superalgos is a large and rather complex system aimed at all sorts of user profiles. The ultimate goal of the project is to massify the use of the system, thus, Superalgos should be accessible to a wide user base: from professional traders to crypto-holders, and everything in between."
|
||||
"text": "Superalgos is a large and rather complex system aimed at all sorts of user profiles. The ultimate goal of the project is to massify the use of the system, thus, Superalgos should be accessible to a wide user base: from professional traders to crypto-holders, and everything in between.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Superalgos ist ein großes und ziemlich komplexes System, das sich an alle Arten von Nutzerprofilen richtet. Das ultimative Ziel des Projekts ist es, die Nutzung des Systems zu verbreiten. Daher sollte Superalgos für eine breite Nutzerbasis zugänglich sein: von professionellen Händlern bis hin zu Krypto-Besitzern und allem dazwischen.",
|
||||
"updated": 1634039263684,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The choice of a playful look and feel responds to the underlying strategy to achieve massification: to gamify the user experience, in the sense that building profitable trading strategies may be turned into a strategy game in and of itself."
|
||||
"text": "The choice of a playful look and feel responds to the underlying strategy to achieve massification: to gamify the user experience, in the sense that building profitable trading strategies may be turned into a strategy game in and of itself.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Wahl eines spielerischen Erscheinungsbildes entspricht der zugrundeliegenden Strategie zur Erreichung der Massifizierung: die Benutzererfahrung soll spielerisch sein, in dem Sinne, dass die Entwicklung profitabler Handelsstrategien zu einem Strategiespiel an und für sich werden kann.",
|
||||
"updated": 1634039267322,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "We choose to depart from realistic or corporate styles and lean towards cartoonish, joyful, and spirited ideas instead."
|
||||
"text": "We choose to depart from realistic or corporate styles and lean towards cartoonish, joyful, and spirited ideas instead.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wir haben uns dafür entschieden, von realistischen oder unternehmerischen Stilen abzuweichen und uns stattdessen auf cartoonartige, fröhliche und lebendige Ideen zu stützen.",
|
||||
"updated": 1634039275640,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "What we Like"
|
||||
"text": "What we Like",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Was wir mögen",
|
||||
"updated": 1634039295838,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The following are examples of icons we like among the existing batch.",
|
||||
"updated": 1613592138585
|
||||
"updated": 1613592138585,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Nachfolgend finden Sie Beispiele für Icons, die uns aus dem vorhandenen Stapel gefallen.",
|
||||
"updated": 1634039318570,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -157,11 +293,27 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Abstract Icons",
|
||||
"updated": 1613727494249
|
||||
"updated": 1613727494249,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Abstrakte Icons",
|
||||
"updated": 1634039411739,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The group above features icons representing ideas that directly or indirectly remind of the underlying concept they represent. However, icons may also be abstract, and have a loose or no obvious connection with the concept being represented:"
|
||||
"text": "The group above features icons representing ideas that directly or indirectly remind of the underlying concept they represent. However, icons may also be abstract, and have a loose or no obvious connection with the concept being represented:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die obige Gruppe enthält Icons, die Ideen darstellen, die direkt oder indirekt an das zugrunde liegende Konzept erinnern, das sie repräsentieren. Icons können jedoch auch abstrakt sein und einen losen oder keinen offensichtlichen Zusammenhang mit dem dargestellten Konzept haben:",
|
||||
"updated": 1634039416461,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -211,11 +363,27 @@
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Figurative Icons",
|
||||
"updated": 1613727775420
|
||||
"updated": 1613727775420,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bildliche Icons",
|
||||
"updated": 1634039499153,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Sometimes, the relationship between the drawing and the actual concept being represented may be figurative, such as when the icon illustrates an alternative interpretation of the word:"
|
||||
"text": "Sometimes, the relationship between the drawing and the actual concept being represented may be figurative, such as when the icon illustrates an alternative interpretation of the word:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Manchmal kann die Beziehung zwischen der Zeichnung und dem dargestellten Konzept figurativ sein, z. B. wenn das Symbol eine alternative Interpretation des Wortes illustriert:",
|
||||
"updated": 1634039503471,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -265,19 +433,51 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Design Tips",
|
||||
"updated": 1613728186362
|
||||
"updated": 1613728186362,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Design-Tipps",
|
||||
"updated": 1634039550249,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Several design tricks make up the character of the collection of icons. The more of these tricks you use in your creations, the better they will integrate with the rest, and resonate with users."
|
||||
"text": "Several design tricks make up the character of the collection of icons. The more of these tricks you use in your creations, the better they will integrate with the rest, and resonate with users.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Mehrere Designtricks machen den Charakter der Iconsammlung aus. Je mehr dieser Tricks Sie in Ihren Kreationen verwenden, desto besser werden sie sich in den Rest integrieren und bei den Nutzern ankommen.",
|
||||
"updated": 1634039592247,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Split Colors"
|
||||
"text": "Split Colors",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Aufgeteilte Farben",
|
||||
"updated": 1634039600471,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "A stylistic resource that we favour and that helps to create depth and richness in the composition is the split in half of the drawing, giving each half a slight shift in color, using adjacent colors in the palette on each half:"
|
||||
"text": "A stylistic resource that we favour and that helps to create depth and richness in the composition is the split in half of the drawing, giving each half a slight shift in color, using adjacent colors in the palette on each half:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ein stilistisches Mittel, das wir bevorzugen und das dazu beiträgt, der Komposition Tiefe und Reichtum zu verleihen, ist die Teilung der Zeichnung in zwei Hälften, wobei jede Hälfte eine leichte Farbverschiebung erfährt und benachbarte Farben der Palette auf jeder Hälfte verwendet werden:",
|
||||
"updated": 1634039657943,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -327,11 +527,27 @@
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Non-Realistic Proportions",
|
||||
"updated": 1613729175379
|
||||
"updated": 1613729175379,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Nicht-realistische Proportionen",
|
||||
"updated": 1634039802256,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "It’s one of the characteristics of the cartoonish look and feel:"
|
||||
"text": "It’s one of the characteristics of the cartoonish look and feel:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das ist eines der Merkmale des Cartoon-Looks und - Erscheinungsbild:",
|
||||
"updated": 1634039807183,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -344,11 +560,27 @@
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Rounded Corners"
|
||||
"text": "Rounded Corners",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Abgerundete Ecken",
|
||||
"updated": 1634039869418,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Again, one other typical characteristic:"
|
||||
"text": "Again, one other typical characteristic:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wiederum ein weiteres typisches Merkmal:",
|
||||
"updated": 1634039873152,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -361,11 +593,27 @@
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Highlights"
|
||||
"text": "Highlights",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Besonderheiten",
|
||||
"updated": 1634039983062,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Occasionally, a simple drawing may be embellished with a playful highlight effect that brings light to the creation. Notice how an otherwise flat drawing comes to life with the simple light-reflection effect on the right hand side."
|
||||
"text": "Occasionally, a simple drawing may be embellished with a playful highlight effect that brings light to the creation. Notice how an otherwise flat drawing comes to life with the simple light-reflection effect on the right hand side.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Gelegentlich kann eine einfache Zeichnung mit einem spielerischen Lichteffekt verschönert werden, der Licht in die Kreation bringt. Beachten Sie, wie eine ansonsten flache Zeichnung durch den einfachen Lichtreflexionseffekt auf der rechten Seite zum Leben erweckt wird.",
|
||||
"updated": 1634039987174,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -382,7 +630,15 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "When multiple elements lie on top of each other, the drawing may loose clarity, probably due to the restricted color palette. In such cases, a cutout on the background object that creates a slight separation with the foreground object can look cool and help the visual interpretation. Notice the 20 pts wide cutout around the red arrow."
|
||||
"text": "When multiple elements lie on top of each other, the drawing may loose clarity, probably due to the restricted color palette. In such cases, a cutout on the background object that creates a slight separation with the foreground object can look cool and help the visual interpretation. Notice the 20 pts wide cutout around the red arrow.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn mehrere Elemente übereinander liegen, kann die Zeichnung an Klarheit verlieren, wahrscheinlich aufgrund der eingeschränkten Farbpalette. In solchen Fällen kann ein Ausschnitt auf dem Hintergrundobjekt, der einen leichten Abstand zum Vordergrundobjekt schafft, cool aussehen und die visuelle Interpretation unterstützen. Beachten Sie den 20 pts breiten Ausschnitt um den roten Pfeil.",
|
||||
"updated": 1634040052783,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
@@ -396,56 +652,152 @@
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Level of Detail"
|
||||
"text": "Level of Detail",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Detailgenauigkeit",
|
||||
"updated": 1634040092150,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "It is important to notice that icons must work well when used in small sizes. Too much detail may create alias and artifacts when the icon is reduced in size.",
|
||||
"updated": 1613729535358
|
||||
"updated": 1613729535358,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es ist wichtig zu beachten, dass Icons auch in kleinen Größen gut funktionieren müssen. Zu viele Details können zu Verzerrungen und Artefakten führen, wenn das Symbol verkleinert wird.",
|
||||
"updated": 1634040128172,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "As a rule of thumb, try to avoid lines or shapes smaller than 20 pt in the original composition."
|
||||
"text": "As a rule of thumb, try to avoid lines or shapes smaller than 20 pt in the original composition.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Als Faustregel gilt: Versuchen Sie, Linien oder Formen zu vermeiden, die in der ursprünglichen Komposition kleiner als 20 pt sind.",
|
||||
"updated": 1634040146706,
|
||||
"style": "Success"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Full Size and Centered",
|
||||
"updated": 1613729698417
|
||||
"updated": 1613729698417,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Vollformat und zentriert",
|
||||
"updated": 1634040188101,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Ideally, icons occupy the whole canvas, either in the horizontal or vertical dimension, or both. Save from exceptions, this is a requirement, as any departure from this standard is quite noticeable."
|
||||
"text": "Ideally, icons occupy the whole canvas, either in the horizontal or vertical dimension, or both. Save from exceptions, this is a requirement, as any departure from this standard is quite noticeable.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Idealfall nehmen die Symbole die gesamte Leinwand ein, entweder in der horizontalen oder vertikalen Dimension oder in beiden. Von Ausnahmen abgesehen, ist dies eine Voraussetzung, da jede Abweichung von diesem Standard sehr auffällig ist.",
|
||||
"updated": 1634040195591,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Technical Requirements"
|
||||
"text": "Technical Requirements",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Technische Anforderungen",
|
||||
"updated": 1634040232305,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Icons are created and maintained in vectors, in the SVG format, but are used in the system and documentation—the current two main use cases—as raster images in the PNG format, for technical reasons."
|
||||
"text": "Icons are created and maintained in vectors, in the SVG format, but are used in the system and documentation—the current two main use cases—as raster images in the PNG format, for technical reasons.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Icons werden als Vektoren im SVG-Format erstellt und verwaltet, werden aber im System und in der Dokumentation - den beiden derzeitigen Hauptanwendungsfällen - aus technischen Gründen als Rasterbilder im PNG-Format verwendet.",
|
||||
"updated": 1634040237516,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Important",
|
||||
"text": "You must provide both types of files."
|
||||
"text": "You must provide both types of files.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie müssen beide Datei-Arten bereitstellen.",
|
||||
"updated": 1634040271424,
|
||||
"style": "Important"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Vector Source Files"
|
||||
"text": "Vector Source Files",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Vektor-Quelldateien",
|
||||
"updated": 1634040310912,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Table",
|
||||
"text": "| Criterion | Details |\n| Format | SVG |\n| Width | 512 pt |\n| Height | 512 pt |\n| Extension | svg (lower-case) |",
|
||||
"updated": 1613729829253
|
||||
"updated": 1613729829253,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "| Kriterium| Details |\n| Format | SVG |\n| Breite| 512 pt |\n| Höhe | 512 pt |\n| Erweiterung| svg (Kleinbuchstaben) |",
|
||||
"updated": 1634040349756,
|
||||
"style": "Table"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Add vector files in the Icons-SVG-Sources folder under the corresponding project.",
|
||||
"updated": 1613731185141
|
||||
"updated": 1613731185141,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Fügen Sie Vektordateien in den Ordner Icons-SVG-Sources unter dem entsprechenden Projekt hinzu.",
|
||||
"updated": 1634040381912,
|
||||
"style": "Success"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In the case of the Superalgos project, SVG source files are organized in subfolders, under the following directory:",
|
||||
"updated": 1614854522604
|
||||
"updated": 1614854522604,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Fall des Superalgos-Projekts sind die SVG-Quelldateien in Unterordnern organisiert, die sich im folgenden Verzeichnis befinden:",
|
||||
"updated": 1634040421592,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -455,7 +807,15 @@
|
||||
{
|
||||
"style": "Table",
|
||||
"text": "| Folder | Description |\n| assets | Assets listed at exchanges |\n| color-palette | A reference color plette |\n| docs-menu | Options in the floating Docs menu |\n| exchanges | Crypto exchanges |\n| flags | Round flags used to identify languages |\n| layers | Types of layers represented in a Layer Manager |\n| menu | The options in the menu of nodes |\n| mouse | Mouse and keyboard graphics used on video captures |\n| nodes | Icons of nodes |\n| various | Items that do not fit into the rest of the categories |",
|
||||
"updated": 1613730961904
|
||||
"updated": 1613730961904,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "| Ordner | Beschreibung |\n| assets | An Börsen gelistete Assets |\n| color-palette | Eine Referenzfarbpalette |\n| docs-menu | Optionen im floating-Docs-Menü |\n| exchanges | Crypto-Börsen |\n| flags | Runde Flaggen zur Identifizierung von Sprachen |\n| layers | Typen von Layern, die in einem Layer Manager dargestellt werden |\n| menu | Die Optionen im Menü der Knoten |\n| mouse | Maus- und Tastaturgrafiken, die bei Videoaufnahmen verwendet werden |\n| nodes | Symbole für Knoten |\n| various | Elemente, die nicht in die übrigen Kategorien passen |",
|
||||
"updated": 1634040572694,
|
||||
"style": "Table"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -464,47 +824,119 @@
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Raster Images",
|
||||
"updated": 1613731087478
|
||||
"updated": 1613731087478,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Pixel Grafiken",
|
||||
"updated": 1634040828765,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Table",
|
||||
"text": "| Criterion | Details |\n| Format | PNG |\n| Application Size | 512 x 512 px |\n| Color Depth | 24 bits (PNG-24) |\n| Transparency | Yes |\n| Interlaced | No |\n| Extension | png (lower-case) |",
|
||||
"updated": 1613731098874
|
||||
"updated": 1613731098874,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "| Kriterium | Details |\n| Format | PNG |\n| Größe | 512 x 512 px |\n| Farbtiefe | 24 bits (PNG-24) |\n| Transparenz | Yes |\n| Zeilensprung | No |\n| Erweiterung | png (Kleinbuchstaben) |",
|
||||
"updated": 1634040875690,
|
||||
"style": "Table"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Add all PNG files in the Icons folder.",
|
||||
"updated": 1613731261077
|
||||
"updated": 1613731261077,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Fügen Sie alle PNG-Dateien in den Ordner \"Icons\" ein.",
|
||||
"updated": 1634040904191,
|
||||
"style": "Success"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Naming Convention",
|
||||
"updated": 1613731313234
|
||||
"updated": 1613731313234,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Namensgebung",
|
||||
"updated": 1634040968345,
|
||||
"style": "Subtitle"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Files inherit the name of the node, asset, exchange, or whatever the icon represents, and are named in lower case, each word separated by a hyphen, and with a lower-case extension. ",
|
||||
"updated": 1615462236475
|
||||
"updated": 1615462236475,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dateien erben den Namen des Knotens, des Assets, des Austauschs oder was auch immer das Symbol repräsentiert und werden in Kleinbuchstaben benannt, wobei jedes Wort durch einen Bindestrich getrennt ist und die Erweiterung in Kleinbuchstaben angegeben wird.",
|
||||
"updated": 1634040972888,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "For example:",
|
||||
"updated": 1615462266490
|
||||
"updated": 1615462266490,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zum Beispiel:",
|
||||
"updated": 1634040981984,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "In the case of nodes, the PNG file for the Managed Take Profit node is managed-take-profit.png",
|
||||
"updated": 1615462396196
|
||||
"updated": 1615462396196,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bei Knoten lautet die PNG-Datei für den Knoten Managed Take Profit managed-take-profit.png",
|
||||
"updated": 1634041080051,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "In the case of assets, the name of the file must is the literal name of the asset. For instance, for Bitcoin, it is bitcoin.png; for Tether it is tether.png; and so on...",
|
||||
"updated": 1615462488610
|
||||
"updated": 1615462488610,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Falle von Vermögenswerten muss der Name der Datei der wörtliche Name des Vermögenswerts sein. Für Bitcoin lautet er beispielsweise bitcoin.png, für Tether tether.png und so weiter...",
|
||||
"updated": 1634041097451,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "In the case of an exchange, again, the literal name of the exchange is used, as it is listed in the CCXT library. for instance, Binance is binance.png.",
|
||||
"updated": 1615462532995
|
||||
"updated": 1615462532995,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Falle eines Austauschs wird wiederum der wörtliche Name des Austauschs verwendet, wie er in der CCXT-Bibliothek aufgeführt ist. Zum Beispiel Binance ist binance.png.",
|
||||
"updated": 1634041141304,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
|
||||
+286
-27
@@ -6,6 +6,12 @@
|
||||
"text": "The Docs are originally written in English. Making Superalgos more accessible is a key endeavor to grow the Community and the user base. Translating tutorials and software documentation into languages other than English is of huge value!",
|
||||
"updated": 1613822257340,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Docs sind ursprünglich in Englisch geschrieben. Superalgos zugänglicher zu machen ist ein wichtiges Ziel, um die Gemeinschaft und die Community zu vergrößern. Die Übersetzung von Tutorials und Software-Dokumentation in andere Sprachen als Englisch ist von großem Wert! Ins deutsche übersetzt von gitforkgit.",
|
||||
"updated": 1634133734053,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Los Docs (documentos) son originalmente escritos en Ingles. Hacer a Superalgos más accesible es un esfuerzo clave para el crecimiento de la comunidad y la base de usuarios. Traducir tutoriales y documentación del software a otros idiomas que no sean el Inglés es un aporte muy valioso!",
|
||||
@@ -20,6 +26,12 @@
|
||||
"text": "Read About Contributing to the Docs",
|
||||
"updated": 1613822300139,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Lesen Sie über die Contribution (Mitarbeit) an den Docs:",
|
||||
"updated": 1634063494221,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Read About Contributing to the Docs (Leer sobre como contribuir a los Docs)",
|
||||
@@ -33,6 +45,12 @@
|
||||
"text": "Translations are a particular case of contributing to the Docs. Please read the How to Contribute to the Docs page first, and come back here for the details about how we deal with translations in particular.",
|
||||
"updated": 1613822394353,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Übersetzungen sind ein besonderer Fall von Beiträgen zu den Docs. Bitte lesen Sie zuerst die Seite How to Contribute to the Docs (Wie man zu den Docs beiträgt) und kommen Sie danach hierher zurück, um zu erfahren, wie wir mit Übersetzungen im Besonderen umgehen.",
|
||||
"updated": 1634064332897,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Las traducciones son un caso particular de contribuir con los documentos. Por favor leer primero la página de como contribuir con los documentos, y regresar aqui para los detalles de como nosotros nos manejamos particularmente con las traducciones.",
|
||||
@@ -46,6 +64,12 @@
|
||||
"text": "About Translations",
|
||||
"updated": 1613822457097,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Über Übersetzungen:",
|
||||
"updated": 1634064347886,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "About Translations ( Acerca de las traducciones)",
|
||||
@@ -64,6 +88,12 @@
|
||||
"text": "The system stores the content of each Docs Page in a single file, regardless of how many translations may exist for each page.",
|
||||
"updated": 1613822896070,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das System speichert den Inhalt jeder Docs Page (Dokumentationsseite) in einer einzigen Datei, unabhängig davon, wie viele Übersetzungen für jede Seite existieren.",
|
||||
"updated": 1634064802911,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "El sistema guarda el contenido de cada pagina de los Documentos en un solo archivo, independientemente de cuantas traducciones existan por cada página.",
|
||||
@@ -77,6 +107,12 @@
|
||||
"text": "Actually, translations exist at the level of each paragraph. This means that, for each paragraph in a page, there may be as many translations as there are supported languages.",
|
||||
"updated": 1613825539396,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Tatsächlich gibt es Übersetzungen auf der Ebene der einzelnen Absätze. Das bedeutet, dass es für jeden Absatz einer Seite so viele Übersetzungen geben kann, wie es unterstützte Sprachen gibt.",
|
||||
"updated": 1634065039731,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Actualmente, existen al nivel de cada párrafo. Esto significa que, por cada párrafo de la página, puede haber tantas traducciones como lenguages de soporte hayan.",
|
||||
@@ -87,22 +123,67 @@
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "The above doesn't affect your work directly, but it is worth noting because it means that many contributors may be working on the same page at any point in time. Hence the need to constantly update and to submit contributions frequently.",
|
||||
"updated": 1613823174025,
|
||||
"text": "The above doesn't affect your work directly, but it is worth noting because it means that many contributors may be working on the same page at any point in time. Hence the need to constantly update and to submit contributions frequently.",
|
||||
"updated": 1634056155573,
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Lo mencionado no afecta su trabajo directamente,pero es bueno tenerlo en cuenta ya que significa que muchos contribuyentes pueden estar trabajando la misma página al mismo tiempo. He aqui la necesidad de actualizar constantemente y de solicitar la contribución a menudo.",
|
||||
"updated": 1633172414535,
|
||||
"language": "DE",
|
||||
"text": "Dies hat zwar keine direkten Auswirkungen auf Ihre Arbeit, ist aber dennoch erwähnenswert, weil es bedeutet, dass viele Mitwirkende zu einem bestimmten Zeitpunkt an derselben Seite arbeiten können. Daher ist es notwendig, die Seite ständig zu aktualisieren und häufig contributions (Beiträge) einzureichen.",
|
||||
"updated": 1634065120896,
|
||||
"style": "Success"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Best Practices",
|
||||
"updated": 1613824072677,
|
||||
"style": "Important",
|
||||
"text": "Whatever you translate, be careful not to translate keywords. They offer the possibility to jump to the docs page of the respective keyword by clicking on the keywords. You can recognize them by the dashed line below them and the fact that they start with a capital letter. For example Node. But it can also be short phrases that are linked by the heading of an docs article. You can translate them by putting them in () after the keywords so that new Superalgos users have an easier start.",
|
||||
"updated": 1634057127540,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Was auch immer Sie übersetzen, achten Sie darauf, dass Sie keine Schlüsselwörter übersetzen. Sie bieten die Möglichkeit, durch Anklicken der Schlüsselwörter auf die Dokumentseite des jeweiligen Schlüsselworts zu springen. Sie erkennen sie an der gestrichelten Linie unter ihnen und daran, dass sie mit einem Großbuchstaben beginnen. Zum Beispiel Node. Es können aber auch kurze Phrasen sein, die durch die Überschrift eines Doku-Artikels verlinkt sind. Sie können sie übersetzen, indem Sie sie in () nach den Schlüsselwörtern einfügen, damit neue Superalgos-Benutzer einen leichteren Einstieg haben.",
|
||||
"updated": 1634065297899,
|
||||
"style": "Important"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Examples of keywords/-phrases that should not be translated:",
|
||||
"updated": 1634058099408,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beispiele für Schlüsselwörter/Phrasen, die nicht übersetzt werden sollten:",
|
||||
"updated": 1634065317195,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Table",
|
||||
"text": "|Keywords|Key-phrases|\n|Nodes|How to Contribute to the Docs|\n|Tutorial|Docs Save Command|\n|Community|Docs Group|\n|Client|Docs Page|\n|...|...|",
|
||||
"updated": 1634065561865,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "|Schlüsselwörter|Schlüssel-Phrasen|\n|Nodes|How to Contribute to the Docs|\n|Tutorial|Docs Save Command|\n|Community|Docs Group|\n|Client|Docs Page|\n|...|...|",
|
||||
"updated": 1634065598815,
|
||||
"style": "Table"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Best Practices:",
|
||||
"updated": 1634065658837,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bewährte Praktiken:",
|
||||
"updated": 1634065685236,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Best Practices (Las mejores prácticas)",
|
||||
@@ -112,26 +193,51 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "As explained in the How to Contribute to the Docs page, you must switch your Contributions Branch and your Current Branch to the develop branch. Remember to restart the app after the switch.",
|
||||
"updated": 1616762259778,
|
||||
"text": "The above doesn't affect your work directly, but it is worth noting because it means that many contributors may be working on the same page at any point in time. Hence the need to constantly update and to submit contributions frequently.",
|
||||
"updated": 1613823174025,
|
||||
"translations": [
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Como fue explicado en la página de How to Contribute to the Docs, debe cambiar su Contributions Branch (rama de contribución) y su Current Branch (rama actual) a la rama de desarrollo. Recuerde de recomenzar la app luego del cambio.",
|
||||
"updated": 1633277617230
|
||||
"text": "Lo mencionado no afecta su trabajo directamente,pero es bueno tenerlo en cuenta ya que significa que muchos contribuyentes pueden estar trabajando la misma página al mismo tiempo. He aqui la necesidad de actualizar constantemente y de solicitar la contribución a menudo.",
|
||||
"updated": 1633172414535
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Make sure your system is up to date running the app.update command.",
|
||||
"updated": 1616762308286,
|
||||
"text": "As explained in the How to Contribute to the Docs page, you must switch your Contributions Branch and your Current Branch to the develop branch. Remember to restart the app after the switch.",
|
||||
"updated": 1616762259778,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wie auf der Seite How to Contribute to the Docs beschrieben, müssen Sie Ihren Contributions Branch und Ihren Current Branch auf den Develop Branch umstellen. Denken Sie daran, die Anwendung nach dem Wechsel neu zu starten.",
|
||||
"updated": 1634066110481,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Como fue explicado en la página de How to Contribute to the Docs, debe cambiar su Contributions Branch (rama de contribución) y su Current Branch (rama actual) a la rama de desarrollo. Recuerde de recomenzar la app luego del cambio.",
|
||||
"updated": 1633277617230,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Make sure your system is up to date running the app.update command in the Searchbar/Command Line at the top of these Docs.",
|
||||
"updated": 1634589766751,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist, indem Sie den Befehl app.update ausführen.",
|
||||
"updated": 1634066143147,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Asegúrese de que sus sitema esté actualizado haciendo correr el comando app.update.",
|
||||
"updated": 1633277826500
|
||||
"updated": 1633277826500,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -139,10 +245,17 @@
|
||||
"style": "List",
|
||||
"text": "Then, switch to the language you wish to translate to.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wechseln Sie dann zu der Sprache, in die Sie übersetzen möchten. In diesem Fall wahrscheinlich Deutsch falls noch nicht geschehen.",
|
||||
"updated": 1634066189038,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Entonces, cambie el idioma al cual desea traducir.",
|
||||
"updated": 1633277782209
|
||||
"updated": 1633277782209,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -151,10 +264,17 @@
|
||||
"text": "To translate a paragraph, right-click to edit the content and replace the English text with your translation. That's it!",
|
||||
"updated": 1613825599051,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um einen Absatz zu übersetzen, klicken Sie mit der rechten Maustaste auf den zu übersetzenden Absatz, um den Inhalt zu bearbeiten und den englischen Text durch Ihre Übersetzung zu ersetzen. Das war's!",
|
||||
"updated": 1634066255678,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Para traducir un párrafo cliquear botón derecho editar el contenido y reemplace e texto en Inglés con su traducción. Eso es!",
|
||||
"updated": 1633277934174
|
||||
"updated": 1633277934174,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -163,10 +283,17 @@
|
||||
"text": "You may find it easier to write your translations in a separate text editor, where you may use spelling and grammar-checking software. Once you've double-checked your translation, you may come back to Superalgos to replace each paragraph with the translated version.",
|
||||
"updated": 1613825640442,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Vielleicht finden Sie es einfacher, Ihre Übersetzungen in einem separaten Texteditor zu schreiben, in dem Sie eine Software zur Rechtschreib und Grammatikprüfung verwenden können. Sobald Sie Ihre Übersetzung überprüft haben, können Sie zu Superalgos zurückkehren und jeden Absatz durch die übersetzte Version ersetzen.",
|
||||
"updated": 1634066679625,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Puede encontrar más fácil escribir su traducción en un editor de texto separado, donde puede utilizar corrector ortográfico y gramatical. Ona vez que haya doble chequeado su traducción, puede volver a Superalgos para reemplazar cada parrafo con la versión traducida.",
|
||||
"updated": 1633278119180
|
||||
"updated": 1633278119180,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -175,10 +302,17 @@
|
||||
"text": "Remember that translations exist at the level of each paragraph. Always make sure that the translation you input matches the correct paragraph. This is important because if a paragraph is updated in the English version, all translations will get a notice that the particular paragraph may be outdated.",
|
||||
"updated": 1613824142107,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Denken Sie daran, dass Übersetzungen auf der Ebene der einzelnen Absätze existieren. Vergewissern Sie sich immer, dass die von Ihnen eingegebene Übersetzung dem richtigen Absatz entspricht. Dies ist wichtig, denn wenn ein Absatz in der englischen Version aktualisiert wird, erhalten alle Übersetzungen einen Hinweis, dass der betreffende Absatz möglicherweise veraltet ist. Ein Abschnitt ist das was Blau hinterlegt ist wenn sie mit der rechten Maustaste draufklicken.",
|
||||
"updated": 1634066760100,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Recuerde que las traducciones existen al nivel de cada párrafo. Siempre asegúrese de que la traducción que introduzca corresponda con el párrafo adecuado. TEsto es impotante porque si el pàrrafo es actualizado en la versión en Inglés, todas las traducciones recibirán un aviso de que ese parrafo en particular puede necesitar actualización.",
|
||||
"updated": 1633278353289
|
||||
"updated": 1633278353289,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -187,10 +321,17 @@
|
||||
"text": "Participate in the Superalgos Docs Group. Let people know what part of the Docs or which Tutorial you will be working with. This basic coordination will help avoid conflicts when more than one user works on the same pages at the same time.",
|
||||
"updated": 1616762526615,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beteiligen Sie sich an der Superalgos Docs Group (Gruppe). Teilen Sie anderen mit, an welchem Teil der Docs oder an welchem Tutorial Sie arbeiten werden. Diese grundlegende Koordination hilft, Konflikte zu vermeiden, wenn mehrere Benutzer gleichzeitig an denselben Seiten arbeiten.",
|
||||
"updated": 1634066998278,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Participe en Superalgos Docs Group ( grupo de documentos de superalgos). Permita que la gente sepa que parte de los documentos o que tutoriales va a estar trabajando. Esto coordinación básica ayudará a evitar conflictos cuando más de un usuario trabajan en la misma página al mismo tiempo.",
|
||||
"updated": 1633278524671
|
||||
"updated": 1633278524671,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -199,22 +340,114 @@
|
||||
"text": "You may start with the translation of the Docs in [Language] page that you land on after you switch the language.",
|
||||
"updated": 1613823805871,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können mit der Übersetzung der Seite \"Docs in [Sprache]\" beginnen, auf die Sie nach dem Umschalten der Sprache gelangen. Falls dieser schon übersetzt ist, suchen sie sich mit Absprache in der Docs Group einen oder mehrere andere noch nicht übersetzte Artikel aus.",
|
||||
"updated": 1634067346839,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Puede comenzar con la traducción de los documentos de la pagina [Language] (idioma) que abra luego de cambiar el idioma.",
|
||||
"updated": 1633278662035
|
||||
"updated": 1633278662035,
|
||||
"style": "Success"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Translating Tutorials",
|
||||
"updated": 1613823828960,
|
||||
"text": "You want to add an important information that is missing?",
|
||||
"updated": 1634061304642,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie möchten eine wichtige Information hinzufügen, die noch fehlt?",
|
||||
"updated": 1634067408405,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "change your language in the footer to english as it is the origin language. Click on the English Circle in the footer.",
|
||||
"updated": 1634060264417,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ändern Sie die Sprache in der Fußzeile auf Englisch, da dies die Ausgangssprache ist. Klicken Sie auf den englischen Kreis in der Fußzeile.",
|
||||
"updated": 1634067430126,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "navigte to the docs page you want to add something to.",
|
||||
"updated": 1634061337706,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Navigieren Sie zu der Dokumentseite, zu der Sie etwas hinzufügen möchten.",
|
||||
"updated": 1634067447605,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "find yourself a paragraph after which you want to add the paragraph (no matter what style) right click on it go to the end off the last sentence of the paragraph and hit \"Enter\". If you switched into a new line right click on another existing paragraph. Trough that you create a line break. Now you should see a new paragraph. If that didnt work, repeat the procedure but write something in the new line, anything.",
|
||||
"updated": 1634061488285,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Suchen Sie sich einen Absatz, nach dem Sie den Absatz einfügen möchten (unabhängig vom Stil), klicken Sie mit der rechten Maustaste darauf, gehen Sie zum Ende des letzten Satzes des Absatzes und drücken Sie \"Enter\". Wenn Sie in eine neue Zeile gewechselt haben, klicken Sie mit der rechten Maustaste auf einen anderen bestehenden Absatz. Dadurch erzeugen Sie einen Zeilenumbruch. Jetzt sollten Sie einen neuen Absatz sehen. Wenn das nicht funktioniert hat, wiederholen Sie den Vorgang, aber schreiben Sie etwas in die neue Zeile, irgendetwas.",
|
||||
"updated": 1634067513279,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "You can now again right click on the new paragraph and use all editing Features like, changing the style.",
|
||||
"updated": 1634067833935,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können nun wieder mit der rechten Maustaste auf den neuen Absatz klicken und alle Bearbeitungsfunktionen nutzen, wie z.B. das Ändern des Stils.",
|
||||
"updated": 1634067539969,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Remember to switch back your language after you docs.save the changes and or app.contribute the changes. Otherwise you may forget it and later translate the original english text into your language which could cause problems.",
|
||||
"updated": 1634067837318,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Denken Sie daran, die Sprache wieder umzuschalten, nachdem Sie die Änderungen mit docs.save gespeichert oder mit app.contribute commited haben. Andernfalls könnten Sie es vergessen und später den englischen Originaltext in Ihre Sprache übersetzen, was zu Problemen führen könnte.",
|
||||
"updated": 1634067925417,
|
||||
"style": "List"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Translating Tutorials:",
|
||||
"updated": 1634067600964,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Tutorials übersetzen:",
|
||||
"updated": 1634067758085,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Translating Tutorials Traduciendo tutoriales",
|
||||
"updated": 1633278676243
|
||||
"updated": 1633278676243,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -223,15 +456,34 @@
|
||||
"text": "Tutorial pages present certain challenges that we must take into account while translating: the first and foremost is that the space available in the tutorial window is limited. This means that you have to be mindful of the length of the translated text and that you must test each of the tutorial steps to make sure the translation fits the available space.",
|
||||
"updated": 1613825681579,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bei der Übersetzung von Tutorial`s gibt es einige Herausforderungen, die wir berücksichtigen müssen: In erster Linie ist der Platz im Tutorial Fenster begrenzt. Das bedeutet, dass Sie auf die Länge des übersetzten Textes achten müssen und dass Sie jeden einzelnen Schritt des Tutorials testen müssen, um sicherzustellen, dass die Übersetzung in den verfügbaren Platz passt.",
|
||||
"updated": 1634068068151,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Las páginas de los Tutorial presentan ciertos desafíos que debemos tener en cuenta mientras traducimos: el primero y principal es que el espacio disponible en la ventana del tutorial es limitado. Esto significa que debe considerar la extensión del texto traducido y que debe probar cada paso del tutorial para asegurarse que la traducción cabe en el espacio disponible.",
|
||||
"updated": 1633279006183
|
||||
"updated": 1633279006183,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "You will notice that if you open the Docs when a tutorial is running, the Docs automatically load the page of the corresponding tutorial step, so that you may edit it. This is quite helpful, as you may translate the page and see how it looks on the tutorial window in real-time. This is the recommended way.",
|
||||
"updated": 1634068533341,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "You will notice that if you open the Docs when a tutorial is running, the Docs automatically load the page of the corresponding tutorial step, so that you may edit it. This is quite helpful, as you may translate the page and see how it looks on the tutorial window in real-time. Dies ist der empfohlene Weg.",
|
||||
"updated": 1634068602979,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"text": "You will notice that if you open the Docs when a tutorial is running, the Docs automatically load the page of the corresponding tutorial step, so that you may edit it. This is quite helpful, as you may translate the page and see how it looks on the tutorial window in real-time.",
|
||||
"updated": 1613825697215,
|
||||
"translations": [
|
||||
@@ -247,10 +499,17 @@
|
||||
"text": "However, this is not always the case. Some tutorial steps are configured to close the Docs or the editor, and when you open the Docs manually, the tutorial step page is not loaded automatically. In such cases, you must search for the name of the page — which should match the title of the tutorial step — so that you may access the page manually.",
|
||||
"updated": 1613825460620,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dies ist jedoch nicht immer der Fall. Einige tutorial steps sind so konfiguriert, dass sie die Docs (Dokumentation) oder den Editor schließen, und wenn Sie die Dokumentation manuell öffnen, wird die Seite (Fenster) des tutorial steps nicht automatisch geladen. In solchen Fällen müssen Sie nach dem Namen der Seite suchen - der mit dem Titel des tutorial steps übereinstimmen sollte -, damit Sie die Seite manuell aufrufen können.",
|
||||
"updated": 1634068950060,
|
||||
"style": "Important"
|
||||
},
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "De todos modos, este no es siempre el caso. Algunos pasos de los tutoriales están configurados para cerrar los dcumentos o el editor, y cuando abre los documentos manualmente, la página del paso del tutorial no se carga automáticamente. En estos casos, deberá buscar la pagina por su nombre — la cual debería coincidir con el titulo del paso en el tutorial — podrá acceder a la página en forma manual.",
|
||||
"updated": 1633279497908
|
||||
"updated": 1633279497908,
|
||||
"style": "Important"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+64
-8
@@ -4,43 +4,99 @@
|
||||
"type": "Data Mining - Introduction",
|
||||
"definition": {
|
||||
"text": "Data Mining in Superalgos means extracting data from external sources and processing that data in order to have it ready for consumption by trading strategies.",
|
||||
"updated": 1622200589433
|
||||
"updated": 1622200589433,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Data Mining in Superalgos bedeutet die Extraktion von Daten aus externen Quellen und die Verarbeitung dieser Daten, um sie für Handelsstrategien nutzbar zu machen. Ins deutsche übersetzt von gitforkgit.",
|
||||
"updated": 1634502828004
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Superalgos offers an extensive set of Data Mining tools. These tools allow users to fetch data from external sources, process that data into more elaborate datasets, plot the datasets within the Charting Space, feed ML Bot's models, and ultimately consume the data within their trading strategies.",
|
||||
"updated": 1622200769538
|
||||
"updated": 1622200769538,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Superalgos bietet ein umfangreiches Set von Data-Mining-Tools. Mit diesen Werkzeugen können Benutzer Daten aus externen Quellen abrufen, diese Daten zu komplexeren Datensätzen verarbeiten, die Datensätze im Charting Space darstellen, die Modelle von ML Bot füttern und die Daten schließlich in ihre Handelsstrategien einfließen lassen.",
|
||||
"updated": 1634502210131
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "The Big Picture",
|
||||
"updated": 1622188702833
|
||||
"updated": 1622188702833,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das Große Ganze",
|
||||
"updated": 1634502312960
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "All of the data inside the Superalgos system has an origin somewhere outside the system, usually somewhere on the Internet. There are currently 3 ways to bring data into the system:",
|
||||
"updated": 1622200785987
|
||||
"updated": 1622200785987,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Alle Daten innerhalb des Superalgos-Systems haben ihren Ursprung irgendwo außerhalb des Systems, normalerweise irgendwo im Internet. Derzeit gibt es 3 Möglichkeiten, Daten in das System einzubringen:",
|
||||
"updated": 1634502941525
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "By coding an Algorithm: with this method, users who have developer skills can extract data from any source imaginable. The way to do it is by implementing a new process within the already existing Sensor Bot. In other words, the sensor bot allows users to write code that extracts data from different places outside of the system. This method is ideal for when it is not possible to use the second method listed below. An example of such algorithms is the Historic-OHLCVs which uses the CCXT open source library to extract one minute candles from any exchange supported by that library.",
|
||||
"updated": 1622201355726
|
||||
"updated": 1622201355726,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Durch das Programmieren eines Algorithmus: Mit dieser Methode können Benutzer, die über Entwicklerfähigkeiten (Programmierwissen) verfügen, Daten aus jeder erdenklichen Quelle extrahieren. Dies geschieht durch die Implementierung eines neuen Prozesses innerhalb des bereits bestehenden Sensor Bots. Mit anderen Worten: Der Sensor Bot ermöglicht es den Benutzern, Code zu schreiben, der Daten von verschiedenen Stellen außerhalb des Systems extrahiert. Diese Methode ist ideal, wenn es nicht möglich ist, die zweite unten aufgeführte Methode zu verwenden. Ein Beispiel für einen solchen Algorithmus ist der Historic-OHLCVs, der die Open-Source-Bibliothek CCXT verwendet, um einminütige Kerzen von jeder von dieser Bibliothek unterstützten Börse zu extrahieren.",
|
||||
"updated": 1634503371051
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Without coding an Algorithm: (available since Beta 10) via the API Data Fetcher Bot. This method involves designing an API Map which is later feed to an API Data Fetcher Bot at runtime. From there it can fetch data from APIs without needing the user to write a single line of code.",
|
||||
"updated": 1622201515378
|
||||
"updated": 1622201515378,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ohne einen Algorithmus zu programmieren: (verfügbar seit Beta 10) über den API Data Fetcher Bot. Bei dieser Methode wird eine API Map entworfen, die später zur Laufzeit an einen API Data Fetcher Bot übergeben wird. Von dort aus kann er Daten von APIs abrufen, ohne dass der Benutzer eine einzige Zeile Code schreiben muss.",
|
||||
"updated": 1634503494799
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "External processing: it is also possible to gather data and process it outside the system. Once data has been processed in this manner, it can be put in the right folder, with the right format, and the system will pick it up from there. This use case is not the most popular, but it is a valid possibility.",
|
||||
"updated": 1622201656015
|
||||
"updated": 1622201656015,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Externe Verarbeitung: Es ist auch möglich, Daten zu sammeln und sie außerhalb des Systems zu verarbeiten. Sobald die Daten auf diese Weise verarbeitet wurden, können sie in den richtigen Ordner mit dem richtigen Format gelegt werden, und das System übernimmt sie von dort. Dieser Anwendungsfall ist nicht der populärste, aber er ist eine gute Möglichkeit.",
|
||||
"updated": 1634503579635
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Once data is within the system, it is then processed for different reasons by Indicator Bots. Some of the processed data might be plotted, some might feed machine learning bots, and some might be consumed by a Trading Strategy.",
|
||||
"updated": 1622201764822
|
||||
"updated": 1622201764822,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sobald die Daten im System sind, werden sie aus verschiedenen Gründen von Indikator-Bots verarbeitet. Einige der verarbeiteten Daten werden geplottet, andere können Bots für maschinelles Lernen füttern, und wieder andere können von einer Trading Strategy (Handelsstrategie) genutzt werden.",
|
||||
"updated": 1634504086365
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+153
-19
@@ -4,22 +4,50 @@
|
||||
"type": "Data Mining - Workflows",
|
||||
"definition": {
|
||||
"text": "Superalgos enables users to setup powerful data mining operations. This page will introduce the workflows that are involved in data mining.",
|
||||
"updated": 1622201830789
|
||||
"updated": 1622201830789,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Superalgos ermöglicht es Benutzern, leistungsstarke Data-Mining-Operationen einzurichten. Auf dieser Seite werden die Arbeitsabläufe vorgestellt, die beim Data Mining involviert sind.",
|
||||
"updated": 1634578254653
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In general, data flows from the Internet into the Superalgos system. Once inside, it is then processed and reprocessed and finally consumed by trading strategies.",
|
||||
"updated": 1622201876819
|
||||
"updated": 1622201876819,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Im Allgemeinen fließen die Daten aus dem Internet in das Superalgos-System. Dort werden sie anschließend verarbeitet und weiterverarbeitet und schließlich von den trading strategies (Handelsstrategien) verbraucht.",
|
||||
"updated": 1634578330154
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "As more users jump in to contribute and create more assets that they share with the community, the data mining capabilities of the system will expand.",
|
||||
"updated": 1622201931367
|
||||
"updated": 1622201931367,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bedingt dadurch, dass sich mehr Nutzer beteiligen und mehr Inhalte erstellen, die sie mit der Gemeinschaft teilen, werden die Data-Mining-Funktionen des Systems erweitert.",
|
||||
"updated": 1634578512210
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Two Main Data Workflows"
|
||||
"text": "Two Main Data Workflows",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die zwei Haupt Daten-Workflows:",
|
||||
"updated": 1634578558625
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
@@ -28,74 +56,180 @@
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Sensor Bot Workflow: Data arrives into the system through a Sensor Bot. In this main workflow, the resulting dataset serves as an input for an Indicator Bot that will further process it. ",
|
||||
"updated": 1622202312743
|
||||
"updated": 1622202312743,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sensor Bot Workflow: Die Daten werden über einen Sensor Bot in das System eingespeist. In diesem Haupt-Workflow dient der resultierende Datensatz als Input für einen Indicator Bot, der ihn weiterverarbeitet.",
|
||||
"updated": 1634580249065
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Why? Because the data arrives in a format that is not standardized to be consumed by trading strategies or plotted at the charts just yet (except for Webhooks that record data in the Single-File Dataset type which can be consumed by plotters and trading strategies)."
|
||||
"text": "Why? Because the data arrives in a format that is not standardized to be consumed by trading strategies or plotted at the charts just yet (except for Webhooks that record data in the Single-File Dataset type which can be consumed by plotters and trading strategies).",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Warum? Weil die Daten in einem Format ankommen, das noch nicht standardisiert ist, um von Handelsstrategien verarbeitet oder in Charts dargestellt zu werden (mit Ausnahme von Webhooks, die Daten im Typ Single-File Dataset aufzeichnen, der von Plottern und trading strategies (Handelsstrategien) verarbeitet werden kann).",
|
||||
"updated": 1634580399832
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "API Data Fetcher Bot Workflow: Data arrives into the system through an API Data Fetcher Bot. In this main workflow, the resulting dataset serves as an input for an Indicator Bot that will further process it.",
|
||||
"updated": 1622202181798
|
||||
"updated": 1622202181798,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "API Data Fetcher Bot Workflow: Die Daten werden über einen API Data Fetcher Bot in das System eingespeist. In diesem Haupt-Workflow dient der resultierende Datensatz als Eingabe für einen Indicator Bot, der ihn danach weiter verarbeitet.",
|
||||
"updated": 1634580475107
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "The data arriving from an external source is considered Raw Data. Both of these 2 workflows produce Raw Data that has to be digested by Indicator Bots.",
|
||||
"updated": 1622202291043
|
||||
"updated": 1622202291043,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Daten, die von einer externen Quelle kommen, werden als Raw Data (Rohdaten) betrachtet. Beide Workflows erzeugen Rohdaten, die von Indikator-Bots verarbeitet werden müssen.",
|
||||
"updated": 1634580517112
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Raw Data -> Indicator Bots",
|
||||
"updated": 1621698286836
|
||||
"updated": 1621698286836,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Rohdaten -> Indicator-Bots",
|
||||
"updated": 1634580556564
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Indicator bots have two different purposes. "
|
||||
"text": "Indicator bots have two different purposes:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Indicator-Bots haben zwei unterschiedliche Zwecke:",
|
||||
"updated": 1634580952464
|
||||
}
|
||||
],
|
||||
"updated": 1634580879323
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Standardize Datasets: They are used for standardization of raw data extracted from the Internet by a Sensor Bot or an API Data Fetcher Bot. Once data is standardized, it can be run through other Indicator Bots that will extract the juice out of them. Once standardized, data can also be plotted and consumed by Trading Strategies. By standardizing, we are specifically referring to transforming the data into a Dataset type that can be used for plotting charts, or feeding Learning and Trading Bots. These Dataset types are Multi-Time-Frame-Daily and Multi-Time-Frame-Market.",
|
||||
"updated": 1622203207179
|
||||
"updated": 1622203207179,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Datensätze standardisieren: Sie werden zur Standardisierung von Rohdaten verwendet, die von einem Sensor Bot oder einem API Data Fetcher Bot aus dem Internet extrahiert wurden. Sobald die Daten standardisiert sind, können sie durch andere Indikator-Bots geleitet werden, die das Beste aus ihnen herausholen. Sobald die Daten standardisiert sind, können sie auch geplottet und von Trading Strategies (Handelsstrategien) verwendet werden. Mit Standardisierung meinen wir insbesondere die Umwandlung der Daten in einen Dataset Typ, der zum Plotten von Diagrammen oder zum Füttern von Lern- und Trading-Bots verwendet werden kann. Diese Datensatztypen sind Multi-Time-Frame-Daily und Multi-Time-Frame-Market.",
|
||||
"updated": 1634582999079
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Process Data: This means processing the data in any way that makes sense for users. Many users use Indicator Bots to calculate standard indicators, others calculate non-standard stuff, even ideas of what could be useful to extract from a certain dataset can be implemented. The system is open and allows users to do just that, play with the data by transforming it in any way they wish.",
|
||||
"updated": 1622203469938
|
||||
"updated": 1622203469938,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Daten verarbeiten: Dies bedeutet, dass die Daten auf jede Art und Weise verarbeitet werden, die für die Nutzer sinnvoll ist. Viele Nutzer verwenden Indicator Bots, um Standardindikatoren zu berechnen, andere berechnen nicht standardisierte Dinge, sogar Ideen, was aus einem bestimmten Datensatz nützlich sein könnte, können umgesetzt werden. Das System ist offen und erlaubt es den Nutzern, mit den Daten zu spielen, indem sie sie auf jede beliebige Art und Weise umwandeln.",
|
||||
"updated": 1634583321196
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Indicators -> Plotters",
|
||||
"updated": 1621900608845
|
||||
"updated": 1621900608845,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Indicators -> Plotter",
|
||||
"updated": 1634583699357
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Plotters are tools for users, not for bots. Plotters will render the information of a Dataset at the charts based on the plotter's definition. This allows users to visually discover patterns in datasets and generate ideas. These ideas can then help the user decide how to process the data further or feed the data to a Learning Bot or a Trading Bot.",
|
||||
"updated": 1622203827359
|
||||
"updated": 1622203827359,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Plotter sind Werkzeuge für Benutzer, nicht für Bots. Plotter stellen die Informationen eines Datensatzes auf der Grundlage der Definition des Plotters in den Diagrammen dar. Auf diese Weise können Nutzer visuell Muster in Datensätzen entdecken und Ideen entwickeln. Diese Ideen können dem Nutzer dann bei der Entscheidung helfen, wie er die Daten weiterverarbeitet oder sie an einen Learning Bot oder Trading Bot weitergibt.",
|
||||
"updated": 1634583962530
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Important",
|
||||
"text": "Plotters can only read data from certain Dataset types, you will learn which ones later on in this Topic."
|
||||
"text": "Plotters can only read data from certain Dataset types, you will learn which ones later on in this Topic.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Plotter können nur Daten von bestimmten Dataset Typen lesen. Welche das sind, erfahren Sie später in diesem Thema.",
|
||||
"updated": 1634583996041
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Indicators -> Learning Bots (under development)",
|
||||
"updated": 1621698378105
|
||||
"updated": 1621698378105,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Indikatoren -> Learning Bots (stecken mitten in der Entwicklung):",
|
||||
"updated": 1634585606476
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Learning Bots have access to mined data which they use to train their AI Models. Once trained, these AI Models can be used by trading strategies to request predictions and act upon them.",
|
||||
"updated": 1622204001242
|
||||
"updated": 1622204001242,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Learning Bots haben Zugang zu geschürften Daten, die sie zum Trainieren ihrer KI-Modelle verwenden. Einmal trainiert, können diese KI-Modelle von Trading-Strategien genutzt werden, um Vorhersagen anzufordern und daraufhin zu handeln.",
|
||||
"updated": 1634585521697
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Indicators -> Trading Bots",
|
||||
"updated": 1621698387166
|
||||
"updated": 1621698387166,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Indikatoren -> Trading Bots",
|
||||
"updated": 1634585651731
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Trading bots are the ultimate consumer of data. They use the data they receive to make trading decisions based on their definitions. The ultimate purpose of the whole Data Mining operation is to digest data so that it is easily accessible for trading strategies.",
|
||||
"updated": 1622204325508
|
||||
"updated": 1622204325508,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Trading Bots sind die ultimativen Konsumenten von Daten. Sie nutzen die Daten, die sie erhalten, um auf der Grundlage ihrer Definitionen Handelsentscheidungen zu treffen. Der ultimative Zweck der gesamten Data-Mining-Operation besteht darin, Daten so zu verarbeiten, dass sie für Handelsstrategien leicht zugänglich sind.",
|
||||
"updated": 1634585828124
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+32
-4
@@ -4,7 +4,14 @@
|
||||
"type": "Data Mining - Dataset Types",
|
||||
"definition": {
|
||||
"text": "Superalgos organizes data into datasets. These datasets are standardized across the system using different type definitions.",
|
||||
"updated": 1622204454559
|
||||
"updated": 1622204454559,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zusammenfassung: Superalgos organisiert Daten in Datasets (Datensätze). Diese Datensätze sind systemübergreifend durch unterschiedliche Typdefinitionen standardisiert.",
|
||||
"updated": 1634586751277
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
@@ -15,16 +22,37 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Dataset Types",
|
||||
"updated": 1622227827875
|
||||
"updated": 1622227827875,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Datensatz-Typen:",
|
||||
"updated": 1634586996444
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "This is the complete list of Dataset types currently supported by the system:"
|
||||
"text": "This is the complete list of Dataset types currently supported by the system:",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dies ist die vollständige Liste der derzeit vom System unterstützten Dataset Typen:",
|
||||
"updated": 1634587492613
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Single-File: As the name suggests, this Dataset consists of only one file containing all the data. This Dataset type can be plotted and its data consumed by and within Trading Strategies. The API Data Fetcher Bot can also save Raw Data in this type of dataset, if needed.",
|
||||
"updated": 1622204763019
|
||||
"updated": 1622204763019,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Single-File (Einzeldatei): Wie der Name schon sagt, besteht dieses Dataset aus nur einer Datei, die alle Daten enthält. Dieser Dataset-Typ kann geplottet werden und seine Daten können von und in Handelsstrategien verwendet werden. Der API Data Fetcher Bot kann bei Bedarf auch Rohdaten in diesem Dataset-Typ speichern.",
|
||||
"updated": 1634588065048
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
|
||||
+104
-13
@@ -4,13 +4,27 @@
|
||||
"type": "Data Mining - Datasets Type Conversions",
|
||||
"definition": {
|
||||
"text": "Processes fetching data from the Internet are optimized for accessing a wide range of APIs available out there. The Dataset Type they use to store raw data is usually not the best one for data consumption within the system. For that reason Dataset Type conversions need to be done.",
|
||||
"updated": 1622205220555
|
||||
"updated": 1622205220555,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zusammenfassung: Prozesse, die Daten aus dem Internet abrufen, sind für den Zugriff auf eine breite Palette von APIs optimiert, die dort verfügbar sind. Der Dataset Type (Datentyp), den sie zum Speichern von Rohdaten verwenden, ist in der Regel nicht der beste für die Weiterverwendung innerhalb des Systems. Aus diesem Grund müssen Dataset-Typ-Konvertierungen vorgenommen werden.",
|
||||
"updated": 1634677302182
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Types of Dataset Conversions",
|
||||
"updated": 1622227863425
|
||||
"updated": 1622227863425,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Arten von Dataset-Konvertierungen:",
|
||||
"updated": 1634677318651
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -34,47 +48,110 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "There are two ways to convert from one Dataset type to another. ",
|
||||
"updated": 1621699409527
|
||||
"updated": 1621699409527,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Folgende Arten von Dataset Konvertierungen sind derzeit im System implementiert:",
|
||||
"updated": 1634677350007
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Custom Code: Users can write code to handle the conversion in cases where the standard converter is not available for the type of conversion needed.",
|
||||
"updated": 1622205316515
|
||||
"updated": 1622205316515,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Benutzerdefinierter Code: Benutzer können Code schreiben, um die Konvertierung in den Fällen durchzuführen, in denen der Standardkonverter für die benötigte Art der Konvertierung nicht verfügbar ist.",
|
||||
"updated": 1634677385514
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Standard Converter: Use a standard converter to do the job. Currently there is only one Standard Converter and it works converting from One-Min-Daily Dataset type to Multi-Time-Frame-Daily and Multi-Time-Frame-Market Dataset types. ",
|
||||
"updated": 1621711423050
|
||||
"updated": 1621711423050,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Standardkonverter: Verwenden Sie einen Standardkonverter, um die Aufgabe zu erledigen. Derzeit gibt es nur einen Standardkonverter, der die Konvertierung von One-Min-Daily-Dataset-Typen in Multi-Time-Frame-Daily- und Multi-Time-Frame-Market-Dataset-Typen ermöglicht.",
|
||||
"updated": 1634677568153
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Custom Code Example",
|
||||
"updated": 1622205366974
|
||||
"updated": 1622205366974,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beispiel für custom (benutzerdefinierten) Code:",
|
||||
"updated": 1634677731371
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The Candles-Volumes indicator at the Master Data Mine converts One-Min candles and volumes into candles and volumes of 2 min, 3 min ecc.. up to 24hs. To do this, it runs a custom made algorithm that aggregates that information provided by the Exchange Raw Data Sensor Bot.",
|
||||
"updated": 1622191376005
|
||||
"updated": 1622191376005,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Candles-Volumes-Indikator in der Master Data Mine konvertiert One-Min-Candles und Volumes in Candles und Volumes von 2 Minuten, 3 Minuten usw. bis zu 24 Stunden. Zu diesem Zweck wird ein speziell entwickelter Algorithmus ausgeführt, der die vom Exchange Raw Data Sensor Bot bereitgestellten Informationen aggregiert (zusammenfasst).",
|
||||
"updated": 1634678088585
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "The reason this was implemented as custom code is because when it was needed there was no standard converter and it has not been migrated to the currently existing one.",
|
||||
"updated": 1622205482848
|
||||
"updated": 1622205482848,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Grund dafür, dass dies als benutzerdefinierter Code implementiert wurde, liegt darin, dass es zu dem Zeitpunkt, als es benötigt wurde, keinen Standardkonverter gab und er nicht in den derzeit bestehenden migriert wurde.",
|
||||
"updated": 1634678403439
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Standard Converter Example",
|
||||
"updated": 1621701438440
|
||||
"updated": 1621701438440,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beispiel für einen Standardkonverter:",
|
||||
"updated": 1634678436605
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The Asset Metrics Indicator Bot, defined at the Messari Data Mine, uses the Standard Converter from One-Min-Daily Dataset type to Multi-Time-Frame-Daily and Multi-Time-Frame-Market Dataset types. In order to use the converter, the bot's Process Definition nodes needs to have a framework of the converter defined within its config.",
|
||||
"updated": 1622205718679
|
||||
"updated": 1622205718679,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Asset Metrics Indicator Bot, der in der Messari Data Mine definiert wurde, verwendet den Standardkonverter von dem One-Min-Daily-Dataset-Typ zu Multi-Time-Frame-Daily und Multi-Time-Frame-Market Dataset-Typen. Um den Konverter verwenden zu können, muss die Process Definition Node des Bots ein Framework des Konverters in seiner Konfiguration definiert haben.",
|
||||
"updated": 1634679002933
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "To convert to Multi-Time-Frame-Daily, set the framework name as follows:",
|
||||
"updated": 1622205768649
|
||||
"updated": 1622205768649,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zur Umstellung auf Multi-Time-Frame-Daily stellen Sie den Framework-Namen wie folgt ein:",
|
||||
"updated": 1634679069645
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -84,7 +161,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "To convert to Multi-Time-Frame-Market, set the framework name like this:",
|
||||
"updated": 1622205804137
|
||||
"updated": 1622205804137,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zur Umwandlung in Multi-Time-Frame-Market setzen Sie den Framework-Namen wie folgt:",
|
||||
"updated": 1634679148016
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -94,7 +178,14 @@
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "You will need the standard converter everytime you use the API Data Fetcher Bot to extract data from some Inernet API. The bot will usually save the data in a One-Min-Daily Dataset Type, and you will need to setup an Indicator Bot with two processes in order to convert the One-Min-Daily Dataset Type into a Multi-Time-Frame-Daily and a Multi-Time-Frame-Market Dataset Type.",
|
||||
"updated": 1622191511065
|
||||
"updated": 1622191511065,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie benötigen den Standardkonverter jedes Mal, wenn Sie den API Data Fetcher Bot zum Extrahieren von Daten aus einer Inernet-API verwenden. Der Bot speichert die Daten in der Regel in einem One-Min-Daily Dataset Type, und Sie müssen einen Indicator Bot mit zwei Prozessen einrichten, um den One-Min-Daily Dataset Type in einen Multi-Time-Frame-Daily und einen Multi-Time-Frame-Market Dataset Type zu konvertieren.",
|
||||
"updated": 1634679302507
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+240
-30
@@ -4,69 +4,167 @@
|
||||
"type": "Data Mining - Indicator Frameworks",
|
||||
"definition": {
|
||||
"text": "Indicator Bots are ready to run custom code, or run code provided by a framework in order to do their job.",
|
||||
"updated": 1621705750736
|
||||
"updated": 1621705750736,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Indikator-Bots sind in der Lage, benutzerdefinierten Code auszuführen oder von einem Framework bereitgestellten Code auszuführen, um ihre Aufgabe zu erfüllen.",
|
||||
"updated": 1634679374909
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Types of Indicator Implementations",
|
||||
"updated": 1622211317016
|
||||
"updated": 1622211317016,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Arten von Indikator-Implementierungen:",
|
||||
"updated": 1634679396279
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Custom Code: This means the Indicator Bot will use custom made code to handle all data transformations.",
|
||||
"updated": 1621902418790
|
||||
"updated": 1621902418790,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Custom Code: Dies bedeutet, dass der Indikator-Bot benutzerdefinierten Code verwendet, um alle Datentransformationen durchzuführen.",
|
||||
"updated": 1634679427408
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "When running custom code, users have full control of the process and there is no limit on what can be done in terms of data manipulation. The trade off is that the user must be a developer."
|
||||
"text": "When running custom code, users have full control of the process and there is no limit on what can be done in terms of data manipulation. The trade off is that the user must be a developer.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bei der Ausführung von benutzerdefiniertem Code haben die Benutzer die volle Kontrolle über den Prozess, und es gibt keine Einschränkungen bei der Daten-Verarbeitung/manipulation. Der Nachteil ist, dass der Benutzer ein developer (Entwickler) sein muss.",
|
||||
"updated": 1634679493287
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "UI-Defined: This means that the Indictor Bot will base its behaviour on the definitions at the UI including available frameworks, as well as the code snippets provided by the user.",
|
||||
"updated": 1622211583849
|
||||
"updated": 1622211583849,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "UI-Defined: Dies bedeutet, dass der Indictor Bot sein Verhalten auf die Definitionen auf der UI (Benutzeroberfläche), einschließlich der verfügbaren Frameworks, sowie auf die vom Benutzer bereitgestellten Codeschnipsel stützt.",
|
||||
"updated": 1634679552250
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "By running one of the available frameworks, an indicator can do powerful stuff while only leaving the task of writing a very tiny piece of code to do the data transformations. In this case the flexibility is reduced comparing to custom code, but ease of development is greatly increased.",
|
||||
"updated": 1622211470919
|
||||
"updated": 1622211470919,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Durch den Einsatz eines der verfügbaren Frameworks kann ein Indikator leistungsstarke Funktionen ausführen, wobei nur ein winziger Teil des Codes für die Datenumwandlung geschrieben werden muss. In diesem Fall ist die Flexibilität im Vergleich zu benutzerdefiniertem Code eingeschränkt, aber die Entwicklungsfreundlichkeit wird erheblich gesteigert.",
|
||||
"updated": 1634679804230
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "You don't need to be a developer to write these code snippets, most of the time they are very simple javascript code."
|
||||
"text": "You don't need to be a developer to write these code snippets, most of the time they are very simple javascript code.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie müssen kein Entwickler/Programmierer sein, um diese Codeschnipsel zu schreiben, meistens handelt es sich um sehr einfachen Javascript-Code.",
|
||||
"updated": 1634680675568
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Custom Code Indicators",
|
||||
"updated": 1621703361583
|
||||
"updated": 1621703361583,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Benutzerdefinierte Code-Indicators:",
|
||||
"updated": 1634680705374
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Examples"
|
||||
"text": "Examples",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Beispiele:",
|
||||
"updated": 1634680725432
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "These two indicators are currently implemented with custom code."
|
||||
"text": "These two indicators are currently implemented with custom code.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Diese beiden Indikatoren werden derzeit mit benutzerdefiniertem Code implementiert:",
|
||||
"updated": 1634681185936
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Candles-Volumes: Located at the Candles Data Mine",
|
||||
"updated": 1622195776057
|
||||
"updated": 1622195776057,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Candles-Volumes: Zu finden in der Candles Data Mine",
|
||||
"updated": 1634681341936
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Bollinger-Bands: Located at the Bollinger Data Mine",
|
||||
"updated": 1622195696142
|
||||
"updated": 1622195696142,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bollinger-Bands: Zu finden in der Bollinger Data Mine",
|
||||
"updated": 1634681442242
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "How to Implement Custom Code",
|
||||
"updated": 1622212152208
|
||||
"updated": 1622212152208,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wie man custom (benutzerdefinierten) Code implementiert:",
|
||||
"updated": 1634681585244
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The way to implement a Custom Code Indicator is to set up the config for the Bot's Process Definition using the botModule property. This tells the bot that there will be custom code used for this Indicator. This is an example of what it should look like:",
|
||||
"updated": 1622212134508
|
||||
"updated": 1622212134508,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um einen benutzerdefinierten Code-Indikator zu implementieren, muss die Konfiguration für die Prozessdefinition des Bots mithilfe der Eigenschaft botModule eingerichtet werden. Dadurch wird dem Bot mitgeteilt, dass für diesen Indikator ein benutzerdefinierter Code verwendet wird. Dies ist ein Beispiel dafür, wie es aussehen sollte:",
|
||||
"updated": 1634681692004
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -76,17 +174,38 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Then you will need to locate the Project Schema File for the project your bot belongs to. Inside of that file you will need to add some definitions in order for the system to be able to load your new module at runtime and later execute it once users run your bot implemented in this way.",
|
||||
"updated": 1622195849390
|
||||
"updated": 1622195849390,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dann müssen Sie die Project Schema File (Datei) für das Projekt finden, zu dem Ihr Bot gehört. In dieser Datei müssen Sie einige Definitionen hinzufügen, damit das System in der Lage ist, Ihr neues Modul zur Laufzeit zu laden und später auszuführen, wenn Benutzer Ihren auf diese Weise implementierten Bot ausführen.",
|
||||
"updated": 1634681801694
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "Most likely your new Bot will be added to the Superalgos project, so you should find the Project Schema File inside the Projects folder.",
|
||||
"updated": 1622196885148
|
||||
"updated": 1622196885148,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Höchstwahrscheinlich wird Ihr neuer Bot zum Superalgos-Projekt hinzugefügt, so dass Sie die Project Schema File (Datei) im Ordner Projects finden sollten.",
|
||||
"updated": 1634681854110
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The definition you will need to add in the Schema file should look something like this:",
|
||||
"updated": 1622212304362
|
||||
"updated": 1622212304362,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Definition, die Sie in der Schemadatei hinzufügen müssen, sollte etwa so aussehen:",
|
||||
"updated": 1634681979851
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -96,61 +215,145 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Finally, you will need to add a new Javascript module with your code to the codebase using the same file name you defined in the Schema file.",
|
||||
"updated": 1622212386180
|
||||
"updated": 1622212386180,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Schließlich müssen Sie ein neues Javascript-Modul mit Ihrem Code zur Codebasis hinzufügen und dabei denselben Dateinamen verwenden, den Sie in der Schema-Datei definiert haben.",
|
||||
"updated": 1634682668873
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "UI-Defined Indicators",
|
||||
"updated": 1621704044375
|
||||
"updated": 1621704044375,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "UI-definierte Indikatoren:",
|
||||
"updated": 1634682711171
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In this case the list is long, as almost all other indicators in existence were build using a framework and defined at the UI with the minimun amount of code written by the users who created them."
|
||||
"text": "In this case the list is long, as almost all other indicators in existence were build using a framework and defined at the UI with the minimun amount of code written by the users who created them.",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "In diesem Fall ist die Liste lang, da fast alle anderen existierenden Indikatoren mit Hilfe eines Frameworks erstellt und auf der UI (Benutzeroberfläche) mit einem Minimum an Code von den Benutzern, die sie erstellt haben, definiert wurden.",
|
||||
"updated": 1634682778514
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Indicator Frameworks",
|
||||
"updated": 1621702926075
|
||||
"updated": 1621702926075,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Indikator Frameworks:",
|
||||
"updated": 1634682793982
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "This is the complete list of available Indicator Frameworks",
|
||||
"updated": 1621702917486
|
||||
"updated": 1621702917486,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dies ist die vollständige Liste der verfügbaren Indicator Frameworks:",
|
||||
"updated": 1634682819570
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "From-One-Min-To-Multi-Time-Frame-Daily: It is used to convert one Dataset from type One-Min-Daily to Multi-Time-Frame-Daily.",
|
||||
"updated": 1621703039301
|
||||
"updated": 1621703039301,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "From-One-Min-To-Multi-Time-Frame-Daily: Es wird verwendet, um ein Dataset (Datensatz) vom Typ One-Min-Daily zu Multi-Time-Frame-Daily zu konvertieren.",
|
||||
"updated": 1634683018997
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "From-One-Min-To-Multi-Time-Frame-Market: It is used to convert one Dataset from type One-Min-Daily to Multi-Time-Frame-Market.",
|
||||
"updated": 1621703053342
|
||||
"updated": 1621703053342,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "From-One-Min-To-Multi-Time-Frame-Market: Es wird verwendet, um ein Dataset (Datensatz) vom Typ One-Min-Daily zu Multi-Time-Frame-Market zu konvertieren.",
|
||||
"updated": 1634683080955
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Multi-Time-Frame-Daily: It is used to process data currently available at a Dataset of type Multi-Time-Frame-Daily and produces as output a Dataset of the same type. How the data is going to be transformed is up to the user, since at the UI users can provide code snippets to handle the data transformation at the Data Building Procedure node.",
|
||||
"updated": 1622197436293
|
||||
"updated": 1622197436293,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Multi-Time-Frame-Daily: Sie wird verwendet, um Daten zu verarbeiten, die derzeit in einem Dataset (Datensatz) des Typs Multi-Time-Frame-Daily vorhanden sind, und erzeugt als Ausgabe ein Dataset (Datensatz) desselben Typs. Wie die Daten umgewandelt werden, bleibt dem Benutzer überlassen, da er auf der Benutzeroberfläche Code-snippets (Code-Schnippsel) für die Datenumwandlung an der Node Data Building Procedure bereitstellen kann.",
|
||||
"updated": 1634683354237
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Multi-Time-Frame-Market: It is used to process data currently available at a Dataset of type Multi-Time-Frame-Market and produces as output a Dataset of the same type. How the data is going to be transformed is up to the user, since at the UI users can provide code snippets to handle the data transformation at the Data Building Procedure node.",
|
||||
"updated": 1622197449190
|
||||
"updated": 1622197449190,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Multi-Time-Frame-Market: Es wird verwendet, um Daten zu verarbeiten, die derzeit in einem Dataset (Datensatz) des Typs Multi-Time-Frame-Market vorhanden sind, und erzeugt als Ausgabe ein Dataset (Datensatz) desselben Typs. Wie die Daten umgewandelt werden, bleibt dem Benutzer überlassen, da er auf der UI (Benutzeroberfläche) Code-snippets (Code-Schnipsel) für die Datenumwandlung an der Node Data Building Procedure bereitstellen kann.",
|
||||
"updated": 1634683338887
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "How to Use an Indicator Framework",
|
||||
"updated": 1622212547671
|
||||
"updated": 1622212547671,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wie man ein Indicator Framework benutzt:",
|
||||
"updated": 1634683417986
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In order to use a framework at your Indicator Bot, all you need to do is specify the framework name at the Process Definition under the framework property.",
|
||||
"updated": 1622212711775
|
||||
"updated": 1622212711775,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um ein Framework in Ihrem Indicator Bot zu verwenden, müssen Sie lediglich den Namen des Frameworks in der Process Definition (Prozessdefinition) unter der Eigenschaft Framework angeben.",
|
||||
"updated": 1634683522971
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In this example, the process will use the From-One-Min-To-Multi-Time-Frame-Daily framework.",
|
||||
"updated": 1622197494708
|
||||
"updated": 1622197494708,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "In diesem Beispiel wird der Prozess das \"From-One-Min-To-Multi-Time-Frame-Daily\" Framework verwenden:",
|
||||
"updated": 1634683598320
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
@@ -160,7 +363,14 @@
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Here is an example using the Multi-Time-Frame-Market framework.",
|
||||
"updated": 1622212639925
|
||||
"updated": 1622212639925,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Hier ist ein Beispiel welches das Multi-Time-Frame-Market Framework verwendet:",
|
||||
"updated": 1634683708431
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
|
||||
+37
-12
@@ -45,7 +45,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Node Seiten-Kategorie",
|
||||
"updated": 1633857256015
|
||||
"updated": 1633857256015,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -80,7 +81,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Concept Seiten-Kategorie",
|
||||
"updated": 1633857303758
|
||||
"updated": 1633857303758,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -97,7 +99,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Concepts (Konzepte) sind Begriffe oder Ideen, die nicht als Knotenpunkte in einer Hierarchie dargestellt werden. Die Seiten in der Kategorie \"Concept\" behandeln Begriffe oder Ideen, die auf einer einzigen Seite erklärt werden können. Das heißt, Konzepte sind Begriffe, die auf einer einzigen Seite ausreichend behandelt werden können.",
|
||||
"updated": 1633856673559
|
||||
"updated": 1633856673559,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -114,7 +117,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Topic Seiten-Kategorie",
|
||||
"updated": 1633860678628
|
||||
"updated": 1633860678628,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -131,7 +135,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Topics (Themen) sind vielschichtige, tiefgreifende Konzepte, die mehr als eine Seite benötigen, um korrekt behandelt zu werden. Topics sind Gruppen von eng miteinander verbundenen Konzepten, die in einer Reihenfolge angeordnet sind. Ein Topic ist jedoch keine Seite an sich. Es handelt sich vielmehr um eine Sammlung von Seiten.",
|
||||
"updated": 1633856641151
|
||||
"updated": 1633856641151,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -148,7 +153,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Tutorial Seiten-Kategorie",
|
||||
"updated": 1633860764085
|
||||
"updated": 1633860764085,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -165,7 +171,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Eine Tutorial-Hierarchie kann verschiedene Arten von nodes beinhalten, einschließlich Tutorial Topic und Tutorial Step nodes. Jede node in der Hierarchie zeigt auf eine „ Tutorial Step “ Seite in den Docs, von der er Informationen bezieht. Im Kontext der Docs sind die Seiten eines Tutorials in einer Reihenfolge angeordnet, wie bei Themen.",
|
||||
"updated": 1633856957281
|
||||
"updated": 1633856957281,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -182,7 +189,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Reviews Seiten-Kategorie",
|
||||
"updated": 1633860775633
|
||||
"updated": 1633860775633,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -199,7 +207,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Reviews sind von Benutzern erstellte Inhalte, die ihre Erfahrungen mit bestimmten Komponenten von Superalgos oder anderen Projekten beschreiben.",
|
||||
"updated": 1633857053512
|
||||
"updated": 1633857053512,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -216,7 +225,8 @@
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Books Seiten-Kategorie",
|
||||
"updated": 1633860789952
|
||||
"updated": 1633860789952,
|
||||
"style": "Title"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -232,10 +242,25 @@
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ein \"Book\" ist eine eigenständige Seite. Die Seite enthält eine Liste von Themen, die jeweils ein Kapitel des Buches darstellen.",
|
||||
"updated": 1633857223332
|
||||
"text": "Ein \"Book\" ist eine eigenständige Seite. Die Seite enthält eine Liste von Themen, die jeweils ein Kapitel des Buches darstellen. ",
|
||||
"updated": 1634053406718,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Workspace Page Category",
|
||||
"updated": 1634054845364
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The \"Workspace\" tab does not actually display a docs page but content from the workspaces. It is a possibility to search trough workspaces with a keyword. It shows all nodes which are related to the keyword. Make a query in the search bar with a keyword you like (e.g. \"market\") and have a look at the Workspace Category.",
|
||||
"updated": 1634055788510
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+55
-7
@@ -4,7 +4,15 @@
|
||||
"type": "Docs In English",
|
||||
"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": "Zusammenfassung: 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. Ins deutsche übersetzt von gitforkgit.",
|
||||
"updated": 1634133897069,
|
||||
"style": "Definition"
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
@@ -14,20 +22,52 @@
|
||||
},
|
||||
{
|
||||
"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."
|
||||
"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.",
|
||||
"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": 1634069381374,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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": 1634069418064,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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 Dokumente.",
|
||||
"updated": 1634069431390,
|
||||
"style": "Success"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You may only add or delete pages to the Docs when the language is set to English.",
|
||||
"updated": 1613820648230
|
||||
"text": "You may only add or delete pages / paragraphs to the Docs when the language is set to English.",
|
||||
"updated": 1634069492600,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können nur Seiten/Absätze zu den Docs hinzufügen oder löschen, wenn die Sprache auf Englisch eingestellt ist.",
|
||||
"updated": 1634069541313,
|
||||
"style": "Note"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -36,7 +76,15 @@
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "If you wish to contribute translations, read the How to Contribute Translations page.",
|
||||
"updated": 1616761556162
|
||||
"updated": 1616761556162,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie Übersetzungen beisteuern möchten, lesen Sie die Seite: How to Contribute Translations.",
|
||||
"updated": 1634069577126,
|
||||
"style": "Success"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+45
-6
@@ -5,32 +5,71 @@
|
||||
"definition": {
|
||||
"text": "The Docs pages of Superalgos and other projects integrated are originally written in English. The system allows users to search and browse pages in other languages as well, as long as users have previously contributed the corresponding translations.",
|
||||
"updated": 1613820592771,
|
||||
"translations": []
|
||||
"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": 1634069661035
|
||||
}
|
||||
]
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "English is considered the default language. When you switch to a different language, the system attempts to show the content in the new language. However, if the translation is not yet available, it shows the English version instead.",
|
||||
"updated": 1613820612132,
|
||||
"translations": []
|
||||
"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": 1634069558213
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Node types, variable names, the title of pages in the Docs, and a few more elements of Superalgos may not be translated, as they are unique identifiers of the said elements. You will always get those in English.",
|
||||
"translations": []
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Knoten-Typen, Variablennamen, 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": 1634069562887
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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": 1634069593485
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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 Dokumente.",
|
||||
"updated": 1634069610043
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"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": "Sie können nur Seiten zu den Dokumenten hinzufügen oder löschen, wenn die Sprache auf Englisch eingestellt ist.",
|
||||
"updated": 1634069626053
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+296
-13
@@ -11,6 +11,11 @@
|
||||
"text": "Penyiapan Telegram bot untuk membroadcast aktivitas dari sesi trading ke grup Telegram. Kamu dapat membuat plain-text atau pengumuman berbentuk dynamic-contenct di setiap event pada trading sistem milikmu.",
|
||||
"updated": 1616926732019,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Richten Sie einen Telegram-Bot ein, um die Aktivität von trading sessions an eine Telegram-Gruppe zu senden. Sie können bei jedem Ereignis in Ihrer trading session Ankündigungen im Klartext oder mit dynamischem Inhalt erstellen. Ins deutsche übersetzt von gitforkgit.",
|
||||
"updated": 1634135285796
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -18,7 +23,14 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Overview",
|
||||
"updated": 1611484892100
|
||||
"updated": 1634135230540,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Übersicht:",
|
||||
"updated": 1634135272764
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -29,6 +41,11 @@
|
||||
"text": "Fitur pengumuman memungkinkan pengguna untuk mengatur pemberitahuan yang terkait dengan event tertentu, dan terpicu setelah setiap event menjadi aktif saat menjalankan salah satu jenis sesi trading yang tersedia.",
|
||||
"updated": 1616927035635,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Ankündigungsfunktion ermöglicht es den Benutzern, an bestimmte Ereignisse gebundene Benachrichtigungen einzurichten, die ausgelöst werden, sobald ein bestimmtes Ereignis während der Ausführung einer der verfügbaren Arten von trading sessions aktiv wird.",
|
||||
"updated": 1634135336601
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,11 +58,16 @@
|
||||
"text": "Kamu akan menggunakan fitur ini tetap mendapat informasi tentang tindakan dari strategi saat live trading, atau untuk membroadcast sinyal melalui grup Telegram, misalnya paper trading.",
|
||||
"updated": 1616927218638,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können diese Funktion nutzen, um über die Aktionen Ihrer Strategien informiert zu bleiben, während Sie live traden, oder um Signale über eine Telegram-Gruppe zu senden, während Sie z.B. paper traden.",
|
||||
"updated": 1634135938242
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"style": "Subtitle",
|
||||
"text": "Supported events are:",
|
||||
"translations": [
|
||||
{
|
||||
@@ -53,6 +75,11 @@
|
||||
"text": "Events yang didukung:",
|
||||
"updated": 1616927255808,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Unterstützte Ereignisse sind:",
|
||||
"updated": 1634135999559
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -81,6 +108,11 @@
|
||||
"text": "Selain itu, kamu dapat mengimplementasikan pengumuman di level fase stop dan take profit, hal-hal lain juga akan kita bahas nantinya.",
|
||||
"updated": 1616927456192,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Darüber hinaus können Sie Ankündigungen auf der Ebene der Stop and Take Profit-Phasen implementieren, ein Sonderfall, der ebenfalls diskutiert werden soll.",
|
||||
"updated": 1634136066228
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -93,6 +125,11 @@
|
||||
"text": "Implementasi pada saat ini berdasar pada membroadcast pengumuman dari Telegram bot. Sistem menggunakan Telegram bot API untuk menghubungkan Telegram bot yang kamu buat. Bot akan ditambahkan sebagai user di Telegram grup pilihanmu yang akan mengirimkan pengumuman sesuai konfigurasi yang kamu atur pada sistem.",
|
||||
"updated": 1616927659463,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die aktuelle Implementierung basiert auf der Verbreitung von Ankündigungen über Telegram-Bots. Das System verwendet die Bots-API von Telegram, um mit einem von Ihnen erstellten Telegram-Bot zu interagieren. Der Bot wird als Benutzer in der Telegram-Gruppe Ihrer Wahl hinzugefügt, in der er die Ankündigungen gemäß der von Ihnen im System eingerichteten Konfiguration übermittelt.",
|
||||
"updated": 1634136109323
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -105,6 +142,11 @@
|
||||
"text": "Menyiapkan Telegram Bot dan Telegram Grup",
|
||||
"updated": 1616927728752,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Einrichten eines Telegram-Bots und einer Telegram-Gruppe:",
|
||||
"updated": 1634136130771
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -118,6 +160,11 @@
|
||||
"text": "Dokumentasi Telegram menjelaskan secara detail cara menggunakan Telegram bot:",
|
||||
"updated": 1616927702979,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Dokumentation von Telegram erklärt die Details zur Verwendung von Telegram-Bots:",
|
||||
"updated": 1634136144109
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -135,6 +182,11 @@
|
||||
"text": "Kamu dapat memilih untuk membaca dokumentasi Telegram atau mengikuti beberapa step berikut, yang telah diekstrak untuk kemudahanmu:",
|
||||
"updated": 1616927824426,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können entweder die Dokumentation von Telegram lesen oder einfach die folgenden Schritte befolgen, die wir hier für Sie extrahiert haben:",
|
||||
"updated": 1634136212355
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -148,6 +200,11 @@
|
||||
"text": "1. Pergi ke Telegram dan cari user @BotFather: Kamu dapat menggunakan tautan atau langsung mencari user.",
|
||||
"updated": 1616927906032,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "1. Gehen Sie zu Telegram und suchen Sie den Benutzer @BotFather: Du kannst den Link verwenden oder einfach nach dem Benutzer suchen.",
|
||||
"updated": 1634136636781
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -161,11 +218,16 @@
|
||||
"text": "2. Ketik dan kirimkan /newbot: BotFather akan memintamu untuk memasukkan nama bot. Setelah ditetapkan, ia akan merespon dengan token (sebuah text string) untuk mengakses HTTP API.",
|
||||
"updated": 1616928012542,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Tippen und senden Sie /newbot: BotFather fordert Sie auf, einen Namen für Ihren Bot zu wählen. Sobald der Name festgelegt ist, antwortet er mit dem Token (einer Textzeichenfolge) für den Zugriff auf die HTTP-API.",
|
||||
"updated": 1634136805349
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"style": "Important",
|
||||
"text": "You will need this token at a later time.",
|
||||
"translations": [
|
||||
{
|
||||
@@ -173,6 +235,11 @@
|
||||
"text": "Kamu akan membuuhkan token ini nantinya.",
|
||||
"updated": 1616928036024,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie benötigen diesen Token später noch.",
|
||||
"updated": 1634136830601
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -199,6 +266,11 @@
|
||||
"text": "4. Tambahkan bot-mu kedalam grup: Dan tambahkan juga @myidbot sebagai user didalamnya.",
|
||||
"updated": 1616928168243,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "4. Füge deinen Bot in die Gruppe ein: Und fügen Sie @myidbot auch als Benutzer in der Gruppe hinzu.",
|
||||
"updated": 1634137115127
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -212,11 +284,16 @@
|
||||
"text": "5. Ketik dan kirimkan /getgroupid didalam grup: IDBot akan menjawab dengan sebuah group’s ID.",
|
||||
"updated": 1616928215518,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Tippen und senden Sie /getgroupid in die Gruppe: Der IDBot wird mit der ID der Gruppe antworten.",
|
||||
"updated": 1634137139192
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"style": "Important",
|
||||
"text": "You will need this ID at a later time.",
|
||||
"translations": [
|
||||
{
|
||||
@@ -224,6 +301,11 @@
|
||||
"text": "Kamu juga akan membutuhkan ID ini nantinya.",
|
||||
"updated": 1616928242124,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie benötigen diese ID später noch.",
|
||||
"updated": 1634137252418
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -236,6 +318,11 @@
|
||||
"text": "Menyiapkan Bot Telegram di Superalgos",
|
||||
"updated": 1616928254405,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Einrichten des Telegram-Bots in Superalgos:",
|
||||
"updated": 1634137346218
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -248,6 +335,11 @@
|
||||
"text": "Kamu akan mensetup bot pada backtesting session, sehingga kamu lebih mudah dalam mengetest pengumuman.",
|
||||
"updated": 1616928314869,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie werden Ihren Bot in einer Backtesting-Session einrichten, so dass Sie die Ankündigungen leicht testen können.",
|
||||
"updated": 1634137383775
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -261,6 +353,11 @@
|
||||
"text": "1. Pergi ke backtesting sessions dan tambahkan Social Bot node dari session’s menu: social bot akan ditambahkan bersama telegram bot.",
|
||||
"updated": 1616928451125,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "1. Gehen Sie zu einer Ihrer Backtesting-Sessions und fügen Sie über das Menü der Session eine Social Bot-node hinzu: Ein Social Bot wird zusammen mit einem Telegram-Bot hinzugefügt.",
|
||||
"updated": 1634137642393
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -274,11 +371,16 @@
|
||||
"text": "2. Pilih Edit Telegram Bot di telegram bot menu: Ubah placeholder text dengan aktual botToken dan chatId yang kamu dapatkan sebelumnya.",
|
||||
"updated": 1616928506093,
|
||||
"style": "List"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wählen Sie Edit Telegram Bot im Telegram-Bot-Menü: Ersetzen Sie den Platzhaltertext durch den tatsächlichen botToken und die chatId, die Sie zuvor erhalten haben.",
|
||||
"updated": 1634137756639
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"style": "Subtitle",
|
||||
"text": "For example:",
|
||||
"translations": [
|
||||
{
|
||||
@@ -286,6 +388,11 @@
|
||||
"text": "Contohnya:",
|
||||
"updated": 1616928514397,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zum Beispiel:",
|
||||
"updated": 1634137878962
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -303,6 +410,11 @@
|
||||
"text": "Sistem sekarang memiliki semua yang dibutuhkan untuk berkomunikasi dengan Telegram Bots milikmu.",
|
||||
"updated": 1616928562420,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Das System hat nun alles, was es braucht, um mit Ihrem Telegram Bot zu kommunizieren.",
|
||||
"updated": 1634137902314
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -315,6 +427,11 @@
|
||||
"text": "Membuat Pengumumanmu",
|
||||
"updated": 1616928589846,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Erstellen Sie Ihre Ankündigungen:",
|
||||
"updated": 1634138052389
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -327,6 +444,11 @@
|
||||
"text": "Kamu akan membuat pengumuman sebanyak yang kamu mau, sesuai dengan event terdaftar pada Overview section diatas dengan mengclick Add Announcement di koresponden menu event node.",
|
||||
"updated": 1616928711745,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Sie können beliebig viele Ankündigungen zu den oben im Abschnitt Übersicht aufgeführten Ereignissen erstellen, indem Sie im Menü der entsprechenden Ereignis Node auf Add Announcement klicken.",
|
||||
"updated": 1634138203849
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -339,16 +461,35 @@
|
||||
"text": "Ada dua cara berbeda untuk mengkostumisasi pengumuman:",
|
||||
"updated": 1616928734728,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es gibt zwei verschiedene Möglichkeiten, wie Sie Announcememts (Ankündigungen) anpassen können:",
|
||||
"updated": 1634138277445
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Plain text"
|
||||
"text": "Plain text",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Klartext (Klarer Text)",
|
||||
"updated": 1634138443719
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Dynamic content"
|
||||
"text": "Dynamic content",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dynamischer Inhalt",
|
||||
"updated": 1634138310912
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
@@ -360,12 +501,24 @@
|
||||
"text": "Strategi Weak-hands buster berkaitan dengan fitur Superalgos sebagai serangkaian lengkap dari pengumuman. Lihat mereka dan siapkan kembali di setup!",
|
||||
"updated": 1616928883164,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die mit Superalgos ausgelieferte Weak-hands-Buster-Strategie enthält ein komplettes Set von announcements. Sieh sie dir an und nutze sie in deinem Setup.",
|
||||
"updated": 1634138392687
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Plain Text"
|
||||
"text": "Plain Text",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Klartext (Klarer Text):",
|
||||
"updated": 1634138453511
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -376,11 +529,16 @@
|
||||
"text": "Untuk membuat pengumuman plain text, click Edit Announcement pada announcement node menu dan set pesan di tempat text.",
|
||||
"updated": 1616928982224,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um eine Klartext-Ansage zu erstellen, klicken Sie im Menü der Announcement Node auf Edit Announcement und geben Sie eine Nachricht in das Feld Text ein.",
|
||||
"updated": 1634138630132
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"style": "Subtitle",
|
||||
"text": "For example:",
|
||||
"translations": [
|
||||
{
|
||||
@@ -388,6 +546,11 @@
|
||||
"text": "Contohnya:",
|
||||
"updated": 1616928991922,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zum Beispiel:",
|
||||
"updated": 1634138698640
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -398,7 +561,14 @@
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Dynamic Content"
|
||||
"text": "Dynamic Content",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dynamischer Inhalt:",
|
||||
"updated": 1634138806038
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -409,6 +579,11 @@
|
||||
"text": "Untuk membroadcast pesan yang lebih rumit yang mungkin menyertakan dynamic content dari salah satu indikator atau variabel internal, atur pesan dengan formula dibawah kedalam pengumuman.",
|
||||
"updated": 1616929292467,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um umfangreichere Nachrichten zu senden, die dynamische Werte der aktuellen Indikatoren oder internen Variablen enthalten können, legen Sie die Nachricht stattdessen in der Formel fest, die der Ankündigung beigefügt ist.",
|
||||
"updated": 1634138901663
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -421,6 +596,11 @@
|
||||
"text": "Penyiapan sederhana untuk pesan Dynamic terdiri dari pembuatan string dengan mengganti \"text diantara tanda kutip\" dengan variabel, dan memisahkannya dengan tanda tambah (+).",
|
||||
"updated": 1616929904380,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der typische Aufbau einer dynamischen Nachricht besteht darin, dass eine Zeichenkette abwechselnd aus \"Text in Anführungszeichen\" und Variablen besteht, die durch Pluszeichen (+) voneinander getrennt sind.",
|
||||
"updated": 1634139436330
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -433,6 +613,11 @@
|
||||
"text": "Contohnya, formula pengumuman sederhana untuk ambil posisi pada suatu event.",
|
||||
"updated": 1616929983820,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Eine typische announcement-Formel für das Ereignis \"take position\" könnte zum Beispiel so aussehen:",
|
||||
"updated": 1634139522688
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -449,6 +634,11 @@
|
||||
"text": ".toFixed(0) membulatkan angka ke tempat nol desimal. formula di atas akan menghasilkan sesuatu seperti:",
|
||||
"updated": 1616930071150,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": ".toFixed(0) rundet die Zahl auf null Dezimalstellen. Die obige Formel würde etwa Folgendes ergeben:",
|
||||
"updated": 1634139757535
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -466,12 +656,24 @@
|
||||
"text": "Jika formulamu valid, Sistem akan mengabaikan versi plain text yang telah kamu atur untuk konfigurasi pengumuman. Jika dalam suatu keadaan formua menghasilkan error, maka versi plain text akan digunakan.",
|
||||
"updated": 1616930177921,
|
||||
"style": "Note"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Ihre Formel gültig ist, ignoriert das System die Klartextversion, die Sie möglicherweise in der announcement configuration (Ankündigungskonfiguration) eingerichtet haben. Sollte die Formel aus irgendeinem Grund zu einem Fehler führen, wird die Klartextversion verwendet.",
|
||||
"updated": 1634140201126
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Announcements on Stop and Take Profit Phases"
|
||||
"text": "Announcements on Stop and Take Profit Phases",
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ankündigungen zu Stop und Take Profit Phases:",
|
||||
"updated": 1634140248939
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
@@ -482,6 +684,11 @@
|
||||
"text": "Kami telah jelaskan sebelumnya bahwa, selain menetapkan pengumuman dalam event, Kamu juga dapat menerapkan pengumuman pada level fase stop atau take profit, Hal ini berguna untuk membroadcast manajemen dari dynamic target stop dan target take profit.",
|
||||
"updated": 1616930312081,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wir haben bereits erwähnt, dass Sie nicht nur Ankündigungen zu Ereignissen einstellen können, sondern auch Ankündigungen auf der Ebene einer Stop- oder Take-Profit-Phase implementieren können. Diese sind nützlich, um die Verwaltung von dynamischen Stop- und Take-Profit-targets zu übertragen.",
|
||||
"updated": 1634140571230
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -494,6 +701,11 @@
|
||||
"text": "Ketika diterapkan pada level suatu fasem pengumuman akan memicu setiap kali nilai variable yang mendasari (target stop atau take profit) berubah. Hal ini adalah perbedaan penting, karena nilainya dapat berubah di setiap candle (jika kamu menggunakan formula yang menggunakan variabel).",
|
||||
"updated": 1616930435548,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Bei der Implementierung auf Phasenebene wird die announcement (Ankündigung) jedes Mal ausgelöst, wenn sich der Wert der zugrundeliegenden Variable (das Stop- oder Take-Profit-Ziel) ändert. Dies ist ein wichtiger Unterschied, da sich der Wert bei jeder candle (Kerze) ändern kann (wenn Sie Formeln verwenden, die Variablen nutzen).",
|
||||
"updated": 1634141019584
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -506,6 +718,11 @@
|
||||
"text": "Hal ini dapat mengakibatkan terlalu banyak pengumuman dalam interval yang relatif singkat.",
|
||||
"updated": 1616930454433,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dies könnte dazu führen, dass in relativ kurzen Abständen zu viele announcements (Ankündigungen) gemacht werden.",
|
||||
"updated": 1634141068598
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -518,6 +735,11 @@
|
||||
"text": "mempengenalkan kedalam konfigurasi pengumuman untuk digunakan dalam memfilter pengumuman hingga ketreshold tertentu. Nilai yang kamu masukkan akan diatur dalam persentase variasi yang dibutuhkan sebelum pengumuman dibroadcast.",
|
||||
"updated": 1616930623021,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der in der (announcement configuration) Ansagekonfiguration eingeführte Parameter \"valueVariation\" kann verwendet werden, um Ansagen herauszufiltern, bis ein bestimmter Schwellenwert erreicht ist. Der von Ihnen eingegebene Wert legt den Prozentsatz der Abweichung fest, der auftreten muss, bevor eine neue Ansage gesendet wird.",
|
||||
"updated": 1634141303521
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -530,6 +752,11 @@
|
||||
"text": "Contohnya, \"valueVariation\": 0.5 artinya pengumuman baru akan di broadcast setiap kali nilai dari dasar variabel berubah sebanyak 0.5%.",
|
||||
"updated": 1616930700904,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Zum Beispiel bedeutet \"valueVariation\": 0,5 dass jedes Mal, wenn sich der Wert der zugrunde liegenden Variablen um 0,5 % ändert, eine neue Meldung gesendet wird.",
|
||||
"updated": 1634141412852
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -547,6 +774,11 @@
|
||||
"text": "Menyelesaikan Setup",
|
||||
"updated": 1616930723890,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Fertigstellung der Einrichtung:",
|
||||
"updated": 1634141441661
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -559,6 +791,11 @@
|
||||
"text": "Kemungkinan kecil kamu akan menggunakan fitur pengumuman dari backtesting session. Skenario yang lebih memungkinkan jika kamu ingin menggunakannya dengan paper trading session (Menggenerate sinyal) atau dari live trading session, untuk memonitor aktivitas dari live tradingmu.",
|
||||
"updated": 1616930923555,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Es ist unwahrscheinlich, dass Sie die Ankündigungsfunktion im Rahmen einer Backtesting-Sitzung verwenden möchten. Wahrscheinlicher ist es, dass Sie die Funktion in einer paper trading session (zur Generierung von Signalen) oder in einer Live-trading-session verwenden möchten, um die Aktivitäten Ihres Live-Handels zu überwachen.",
|
||||
"updated": 1634141656071
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -571,6 +808,11 @@
|
||||
"text": "Yang perlu kamu lakukan untuk menyelesaikan penyiapan ini adalah melepaskan social bot node dari backtesting session dan pasangkan kepada session yang kamu inginkan. Pastikan tasks yang berjalan sudah berhenti sebelum melepaskan dan memasangkan social bot.",
|
||||
"updated": 1616931073057,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Um die Einrichtung abzuschließen, müssen Sie nur noch die Social Bot Node von der Backtesting-Sitzung trennen und sie an die Sitzung anhängen, in der Sie sie verwenden möchten. Vergewissern Sie sich, dass die dazugehörigen Aufgaben gestoppt sind, bevor Sie den Social Bot abnehmen und anhängen.",
|
||||
"updated": 1634141864376
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -583,6 +825,11 @@
|
||||
"text": "Setup untuk Komersial",
|
||||
"updated": 1616931096555,
|
||||
"style": "Title"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Kommerzielle Einrichtungen:",
|
||||
"updated": 1634141888154
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -595,6 +842,11 @@
|
||||
"text": "Jika kamu sedang menyiapkan bisnis sinyal atau memerlukan penyiapan yang lebih kompleks untuk membroadcast pengumuman dari beberapa sessions, beberapa strategi, atau bahkan kebeberapa grup, Hal ini akan membantu mempertimbangkan keputusanmu untuk keberikutnya.",
|
||||
"updated": 1616931205053,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Wenn Sie ein Signal-business einrichten oder eine komplexere Einrichtung benötigen, um Ankündigungen von mehreren Sitzungen, mehreren Strategien zu empfangen oder sogar an mehrere Gruppen zu senden, können Ihnen die folgenden Überlegungen bei der Entscheidung helfen, wie Sie vorgehen wollen.",
|
||||
"updated": 1634142140213
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -608,7 +860,7 @@
|
||||
"text": "Telegram tidak mengizinkan menjalankan banyak instance dari bot yang sama. Melakukan hal tersebut dapat menghasilkan peringatan, menyebabkan kesalahan, keterlambatan pengiriman pesan, pesan hilang, dan perilaku tidak menentu secara umum dari malfungsi bot.",
|
||||
"updated": 1616931335441,
|
||||
"style": "Important"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -620,6 +872,12 @@
|
||||
"text": "Solusinya cukup mudah. Siapkan multiple bot. Aturan mainnya adalah kamu harus menggunakan satu untuk setiap sesi trading. Ingat kamu dapat memasukkan bot sebanyak kamu inginkan kedalam grup Telegrammu. Aritnya, kamu mungkin memiliki bot berbeda yang dibroadcast dari session berbeda dalam grup yang sama.",
|
||||
"updated": 1616931501454,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Telegram erlaubt es nicht, mehrere Instanzen desselben Bots zu betreiben. Dies kann zu Warnungen, Fehlern, Verzögerungen bei der Nachrichtenzustellung, verlorenen Nachrichten und allgemeinem unregelmäßigem Verhalten führen.",
|
||||
"updated": 1634142192077,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -633,6 +891,11 @@
|
||||
"text": "Jika kamu ingin membroadcast sinyal dari beberapa session kedalam grup Telegram yang sama, kamu dapat menamai setiap bot dengan referesinya masing-masing terhadap spesifik session. Sehingga anggota grup tahu persis apa yang dirujuk setiap pesan.",
|
||||
"updated": 1616931602612,
|
||||
"style": "Success"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die Lösung ist ganz einfach. Richten Sie mehrere Bots ein. Als Faustregel gilt, dass Sie für jede Trading-Session einen Bot verwenden sollten. Denken Sie daran, dass Sie so viele Bots in Ihre Telegram-Gruppen aufnehmen können, wie Sie möchten. Das heißt, Sie können verschiedene Bots von verschiedenen Sitzungen in derselben Gruppe senden lassen.",
|
||||
"updated": 1634142359920
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -645,6 +908,11 @@
|
||||
"text": "Misalnya, kamu membroadcast sinyal dari market yang berbeda… Kamu dapat menamai bot dengan BTC / USDT, ETH / USDT, dan XMR / BTC.",
|
||||
"updated": 1616931653602,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Nehmen wir zum Beispiel an, Sie senden Signale von verschiedenen Märkten... Sie können Ihre Bots BTC/USDT, ETH/USDT und XMR/BTC nennen.",
|
||||
"updated": 1634142490405
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -657,6 +925,11 @@
|
||||
"text": "Atau mungkin kamu memiliki strategi yang berbeda, maka cukup beri nama bot dengan setiap strategi.",
|
||||
"updated": 1616931697879,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Oder vielleicht haben Sie verschiedene Strategien, dann benennen Sie die Bots einfach nach jeder Strategie.",
|
||||
"updated": 1634142528664
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -669,6 +942,11 @@
|
||||
"text": "Ini membuatnya sangat mudah bagi anggota grup untuk mengetahui market atau strategi apa yang dirujuk oleh bot yang membroadcast sinyal.",
|
||||
"updated": 1616931728131,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "So können die Gruppenmitglieder leicht erkennen, auf welchen Markt oder welche Strategie sich der Bot, der das Signal sendet, bezieht.",
|
||||
"updated": 1634142549897
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -681,8 +959,13 @@
|
||||
"text": "Contoh lain… misalkan kamu menjalankan trading operation untuk teman dan keluarga. Setiap orang bekerja dengan modal awal yang berbeda, aset yang berbeda, atau exchange yang berbeda. dalam kasus seperti itu, kamu dapat mengatur beberapa grup Telegram dan beberapa bot, sehingga setiap orang dapat memperoleh informasi yang tepat tentang apa yang dilakukan bot tersebut.",
|
||||
"updated": 1616931801957,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ein anderes Beispiel... nehmen wir an, Sie betreiben eine trading operation für Freunde und Familie. Jede Person arbeitet mit einem anderen Anfangskapital, anderen Vermögenswerten oder anderen exchanges. In diesem Fall können Sie mehrere Telegram-Gruppen und mehrere Bots einrichten, so dass jede Person genaue Informationen darüber erhält, was die Bots tun.",
|
||||
"updated": 1634142831015
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
+14
-7
@@ -9,7 +9,8 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Este tópico cubre los resultados de los trabajos de testeo de la comunidad en los exchanges. Cada página en el tópico describe el resultados de los testeos realizados en un exchange, y explica si el exchange es utilizable o no.",
|
||||
"updated": 1633284067216
|
||||
"updated": 1633284067216,
|
||||
"style": "Definition"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -26,7 +27,8 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Superalgos utiliza el CCXT library para comunicarse con los exchanges. CCXT es proyecto de código abierto que intenta estandarizar el acceso a las APIs de los exchanges .",
|
||||
"updated": 1633284193717
|
||||
"updated": 1633284193717,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +40,8 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "El proyecto lista más de 120 exchanges as \"supported\" and a few dozen exchanges as \"certified\". See the list in the following ink:",
|
||||
"updated": 1633284228947
|
||||
"updated": 1633284228947,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -55,7 +58,8 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "De todos modos, no está muy claro exactamente cuales están respaldados y cuales certificados. Experiencias actuales muestran que la estandarización todavía tiene un largo recorrido por delante.",
|
||||
"updated": 1633284466832
|
||||
"updated": 1633284466832,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -67,7 +71,8 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Para saber si su exchange preferido está listo para ser utiliado por Superalgos, consulte la página correspondiente a este tópico.",
|
||||
"updated": 1633284553628
|
||||
"updated": 1633284553628,
|
||||
"style": "Success"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -84,7 +89,8 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Si tu exchange preferido no está incluído en este listado, significa que no ha sido probado. Puede querer preguntar en el Develop Group si alguien ha comenzado con el testeo.",
|
||||
"updated": 1633284684470
|
||||
"updated": 1633284684470,
|
||||
"style": "Text"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -95,7 +101,8 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Si eres un developer, puedes querer aprender How to Test New Exchanges y ayudar a la comunidad en la búsqueda de expandir el listado.",
|
||||
"updated": 1633284798025
|
||||
"updated": 1633284798025,
|
||||
"style": "Success"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 3,
|
||||
"type": "Binance Futures USDⓈ-M/COIN-M Test Status",
|
||||
"type": "Binance Futures USDS-M/COIN-M Test Status",
|
||||
"definition": {
|
||||
"text": "Binance Futures Perpetual contracts are partially tested for data mining. Testing in progress for live trading. Note that Quarterly Contract trading will be tested in the future based on users requirement/demand.",
|
||||
"updated": 1615141847424
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 3,
|
||||
"pageNumber": 4,
|
||||
"type": "FTX Test Status",
|
||||
"definition": {
|
||||
"text": "FTX is tested for data mining but not for live trading.",
|
||||
+48
-48
@@ -1,49 +1,49 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 4,
|
||||
"type": "Binance-US Test Status",
|
||||
"definition": {
|
||||
"text": "Binance US is tested for data mining and live trading",
|
||||
"updated": 1616241967855
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified",
|
||||
"updated": 1616241978955
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Starting on Genuary 2020",
|
||||
"updated": 1615210971704
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Yes. The ability to run strategies in live-trading mode has been verified",
|
||||
"updated": 1616241962902
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining can be slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API",
|
||||
"updated": 1615205045729
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"binanceus\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}",
|
||||
"updated": 1615210940971
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 5,
|
||||
"type": "Binance-US Test Status",
|
||||
"definition": {
|
||||
"text": "Binance US is tested for data mining and live trading",
|
||||
"updated": 1616241967855
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified",
|
||||
"updated": 1616241978955
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Starting on Genuary 2020",
|
||||
"updated": 1615210971704
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Yes. The ability to run strategies in live-trading mode has been verified",
|
||||
"updated": 1616241962902
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining can be slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API",
|
||||
"updated": 1615205045729
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"binanceus\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}",
|
||||
"updated": 1615210940971
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 5,
|
||||
"type": "Bitfinex Test Status",
|
||||
"definition": {
|
||||
"text": "Bitfinex is tested for data mining but not for live trading.",
|
||||
"updated": 1616003876885
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1616003797511
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: 1 year.",
|
||||
"updated": 1616004049653
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616003817998
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining can be slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API.",
|
||||
"updated": 1616004065179
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"bitfinex\",\n \"API\": [\n {\n \"rateLimit\": 999\n }\n ]\n}",
|
||||
"updated": 1615211032603
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 5,
|
||||
"type": "FTX Test Status",
|
||||
"definition": {
|
||||
"text": "FTX is tested for data mining but not for live trading.",
|
||||
"updated": 1616003850379
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1616003666832
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Starting on September 2019",
|
||||
"updated": 1615204614502
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616003699055
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining can be slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API",
|
||||
"updated": 1615205045729
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"ftx\"\n}",
|
||||
"updated": 1615204693035
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+48
-48
@@ -1,49 +1,49 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 6,
|
||||
"type": "Bitfinex Test Status",
|
||||
"definition": {
|
||||
"text": "Bitfinex is tested for data mining but not for live trading.",
|
||||
"updated": 1616003876885
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1616003797511
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: 1 year.",
|
||||
"updated": 1616004049653
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616003817998
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining can be slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API.",
|
||||
"updated": 1616004065179
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"bitfinex\",\n \"API\": [\n {\n \"rateLimit\": 999\n }\n ]\n}",
|
||||
"updated": 1615211032603
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 6,
|
||||
"type": "Bitfinex Test Status",
|
||||
"definition": {
|
||||
"text": "Bitfinex is tested for data mining but not for live trading.",
|
||||
"updated": 1616003876885
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1616003797511
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: 1 year.",
|
||||
"updated": 1616004049653
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616003817998
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining can be slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API.",
|
||||
"updated": 1616004065179
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"bitfinex\",\n \"API\": [\n {\n \"rateLimit\": 1500\n }\n ]\n}",
|
||||
"updated": 1634113060318
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 6,
|
||||
"type": "Kucoin Test Status",
|
||||
"definition": {
|
||||
"text": "Kucoin is tested for data mining and for live trading.",
|
||||
"updated": 1632650068116
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1632650093003
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: 1 day",
|
||||
"updated": 1615211188110
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Yes. The ability to run strategies in live-trading mode has been verified.",
|
||||
"updated": 1632650205665
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: This exchange has not yet fully tested but I'm currently live trading on SHIB-USDT pair. I will update this section when I will have had the opportunity to do a more in-depth test",
|
||||
"updated": 1632650423168
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"kucoin\"\n}",
|
||||
"updated": 1615211313657
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+48
-48
@@ -1,49 +1,49 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 7,
|
||||
"type": "Kucoin Test Status",
|
||||
"definition": {
|
||||
"text": "Kucoin is tested for data mining and for live trading.",
|
||||
"updated": 1632650068116
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1632650093003
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: 1 day",
|
||||
"updated": 1615211188110
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Yes. The ability to run strategies in live-trading mode has been verified.",
|
||||
"updated": 1632650205665
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: This exchange has not yet fully tested but I'm currently live trading on SHIB-USDT pair. I will update this section when I will have had the opportunity to do a more in-depth test",
|
||||
"updated": 1632650423168
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"kucoin\"\n}",
|
||||
"updated": 1615211313657
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 7,
|
||||
"type": "Kucoin Test Status",
|
||||
"definition": {
|
||||
"text": "Kucoin is tested for data mining and for live trading.",
|
||||
"updated": 1632650068116
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1632650093003
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: 1 day",
|
||||
"updated": 1615211188110
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Yes. The ability to run strategies in live-trading mode has been verified.",
|
||||
"updated": 1632650205665
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: This exchange has not yet fully tested but I'm currently live trading on SHIB-USDT pair. I will update this section when I will have had the opportunity to do a more in-depth test",
|
||||
"updated": 1632650423168
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"kucoin\"\n}",
|
||||
"updated": 1615211313657
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 7,
|
||||
"type": "Luno Test Status",
|
||||
"definition": {
|
||||
"text": "Luno is tested for data mining and for live trading - however, due to recent changes in their API, it has become virtually useless for back-testing, and not much better for live trading. See below for explanation.",
|
||||
"updated": 1621587736536
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes - but with severe restrictions. The ability to fetch historic data for backtesting purposes has been now been severely restricted, since you can no longer fetch trades older than 24 hours.",
|
||||
"updated": 1621587332130
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Yes - but with restrictions. The ability to run strategies in live-trading mode is now possible. Ensure that the version of the CCXT library being used by Superalgos is 1.42.77 or better - earlier versions of this library did not correctly apply the precision settings of the exchange in the amounts specified for creating orders.",
|
||||
"updated": 1621587760053
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining is extremely slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API. One day of Raw Data used to take about 5 minutes to download. However, since a recent upgrade (somewhere around 15th May, 2021) it is no longer possible to retrieve raw trades older than 24 hours. This means that a start day must be fully specified (i.e. both date and time), and it must be less than 24 hours behind the current date/time. Keep this in mind when setting a start date. The reason for this is because they do not support fetching of OHCLV data - this data has to be compiled by fetching individual trades. The fetching of trades is limited to 100 trades per request, and the rate limit is 1 second. Furthermore, you will need to run data mining for at least 24 hours before being able to start running any trading.",
|
||||
"updated": 1621587866572
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "RECOMMENDATION: Luno is no longer suitable for use with SuperAlgos until such time that the Luno developers implement the correct API for retrieving OHLCV data.",
|
||||
"updated": 1621588017824
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"luno\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"useFetchTradesForFetchOHLCVs\": true,\n \"maxTradesPerFetch\": 100,\n \"limit\": 200,\n \"rateLimit\": 1100\n }\n ]\n}",
|
||||
"updated": 1615211372349
|
||||
}
|
||||
]
|
||||
}
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 8,
|
||||
"type": "Kraken Test Status",
|
||||
"definition": {
|
||||
"text": "Kraken is tested for data mining but not for live trading.",
|
||||
"updated": 1616005542987
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1616005497164
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Unknown",
|
||||
"updated": 1615204614502
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616005523609
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: With standard settings only one day worth of Raw Data is fetched. To retrieve Raw Data in Kraken, pairs in config are reversed. Backtesting and Live Trading behaviour unknown",
|
||||
"updated": 1615278620667
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"USDT/BTC\"\n}",
|
||||
"updated": 1615278483740
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+44
-44
@@ -1,45 +1,45 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 8,
|
||||
"type": "Luno Test Status",
|
||||
"definition": {
|
||||
"text": "Luno is tested for data mining and for live trading - however, due to recent changes in their API, it has become virtually useless for back-testing, and not much better for live trading. See below for explanation.",
|
||||
"updated": 1621587736536
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes - but with severe restrictions. The ability to fetch historic data for backtesting purposes has been now been severely restricted, since you can no longer fetch trades older than 24 hours.",
|
||||
"updated": 1621587332130
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Yes - but with restrictions. The ability to run strategies in live-trading mode is now possible. Ensure that the version of the CCXT library being used by Superalgos is 1.42.77 or better - earlier versions of this library did not correctly apply the precision settings of the exchange in the amounts specified for creating orders.",
|
||||
"updated": 1621587760053
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining is extremely slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API. One day of Raw Data used to take about 5 minutes to download. However, since a recent upgrade (somewhere around 15th May, 2021) it is no longer possible to retrieve raw trades older than 24 hours. This means that a start day must be fully specified (i.e. both date and time), and it must be less than 24 hours behind the current date/time. Keep this in mind when setting a start date. The reason for this is because they do not support fetching of OHCLV data - this data has to be compiled by fetching individual trades. The fetching of trades is limited to 100 trades per request, and the rate limit is 1 second. Furthermore, you will need to run data mining for at least 24 hours before being able to start running any trading.",
|
||||
"updated": 1621587866572
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "RECOMMENDATION: Luno is no longer suitable for use with SuperAlgos until such time that the Luno developers implement the correct API for retrieving OHLCV data.",
|
||||
"updated": 1621588017824
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"luno\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"useFetchTradesForFetchOHLCVs\": true,\n \"maxTradesPerFetch\": 100,\n \"limit\": 200,\n \"rateLimit\": 1100\n }\n ]\n}",
|
||||
"updated": 1615211372349
|
||||
}
|
||||
]
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 8,
|
||||
"type": "Luno Test Status",
|
||||
"definition": {
|
||||
"text": "Luno is tested for data mining and for live trading - however, due to recent changes in their API, it has become virtually useless for back-testing, and not much better for live trading. See below for explanation.",
|
||||
"updated": 1621587736536
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes - but with severe restrictions. The ability to fetch historic data for backtesting purposes has been now been severely restricted, since you can no longer fetch trades older than 24 hours.",
|
||||
"updated": 1621587332130
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Yes - but with restrictions. The ability to run strategies in live-trading mode is now possible. Ensure that the version of the CCXT library being used by Superalgos is 1.42.77 or better - earlier versions of this library did not correctly apply the precision settings of the exchange in the amounts specified for creating orders.",
|
||||
"updated": 1621587760053
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining is extremely slow due to exchange restrictions on their API that limit the number of data it can be requested via Rest API. One day of Raw Data used to take about 5 minutes to download. However, since a recent upgrade (somewhere around 15th May, 2021) it is no longer possible to retrieve raw trades older than 24 hours. This means that a start day must be fully specified (i.e. both date and time), and it must be less than 24 hours behind the current date/time. Keep this in mind when setting a start date. The reason for this is because they do not support fetching of OHCLV data - this data has to be compiled by fetching individual trades. The fetching of trades is limited to 100 trades per request, and the rate limit is 1 second. Furthermore, you will need to run data mining for at least 24 hours before being able to start running any trading.",
|
||||
"updated": 1621587866572
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "RECOMMENDATION: Luno is no longer suitable for use with SuperAlgos until such time that the Luno developers implement the correct API for retrieving OHLCV data.",
|
||||
"updated": 1621588017824
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"luno\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"useFetchTradesForFetchOHLCVs\": true,\n \"maxTradesPerFetch\": 100,\n \"limit\": 200,\n \"rateLimit\": 1100\n }\n ]\n}",
|
||||
"updated": 1615211372349
|
||||
}
|
||||
]
|
||||
}
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 9,
|
||||
"type": "Bittrex Test Status",
|
||||
"definition": {
|
||||
"text": "Bittrex is not fully tested for data mining nor for live trading.",
|
||||
"updated": 1616005578529
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Unknown. The ability to fetch historic data for backtesting purposes has not been verified.",
|
||||
"updated": 1616005666238
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Unknown.",
|
||||
"updated": 1616005647200
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616005641922
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining it's extremely slow due to API restriction",
|
||||
"updated": 1615450349464
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"bittrex\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"limit\": 2\n }\n ]\n}",
|
||||
"updated": 1615450253869
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+48
-48
@@ -1,49 +1,49 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 9,
|
||||
"type": "Kraken Test Status",
|
||||
"definition": {
|
||||
"text": "Kraken is tested for data mining but not for live trading.",
|
||||
"updated": 1616005542987
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1616005497164
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Unknown",
|
||||
"updated": 1615204614502
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616005523609
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: With standard settings only one day worth of Raw Data is fetched. To retrieve Raw Data in Kraken, pairs in config are reversed. Backtesting and Live Trading behaviour unknown",
|
||||
"updated": 1615278620667
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"USDT/BTC\"\n}",
|
||||
"updated": 1615278483740
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 9,
|
||||
"type": "Kraken Test Status",
|
||||
"definition": {
|
||||
"text": "Kraken is tested for data mining but not for live trading.",
|
||||
"updated": 1616005542987
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1616005497164
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Unknown",
|
||||
"updated": 1615204614502
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616005523609
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: With standard settings only one day worth of Raw Data is fetched. To retrieve Raw Data in Kraken, pairs in config are reversed. Backtesting and Live Trading behaviour unknown",
|
||||
"updated": 1615278620667
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"USDT/BTC\"\n}",
|
||||
"updated": 1615278483740
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
-56
@@ -1,56 +0,0 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": "10",
|
||||
"type": "Bitstamp Test Status",
|
||||
"definition": {
|
||||
"text": "Bitstamp is fully tested for data mining and trading.",
|
||||
"updated": 1615141847424
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability [*]: Yes."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Starting on September 2017.",
|
||||
"updated": 1615142912901
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Yes.",
|
||||
"updated": 1615143016205
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Fully tested. ",
|
||||
"updated": 1615142951363
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "[*] The ability to fetch historic data for backtesting purposes has been verified."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "[**] The ability to run strategies in live-trading mode has been verified."
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"bitstamp\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}",
|
||||
"updated": 1616805179437
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+48
-48
@@ -1,49 +1,49 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 10,
|
||||
"type": "Bittrex Test Status",
|
||||
"definition": {
|
||||
"text": "Bittrex is not fully tested for data mining nor for live trading.",
|
||||
"updated": 1616005578529
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Unknown. The ability to fetch historic data for backtesting purposes has not been verified.",
|
||||
"updated": 1616005666238
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Unknown.",
|
||||
"updated": 1616005647200
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616005641922
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining it's extremely slow due to API restriction",
|
||||
"updated": 1615450349464
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"bittrex\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"limit\": 2\n }\n ]\n}",
|
||||
"updated": 1615450253869
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 10,
|
||||
"type": "Bittrex Test Status",
|
||||
"definition": {
|
||||
"text": "Bittrex is tested for data mining BUT not for live trading.",
|
||||
"updated": 1634135329154
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. The ability to fetch historic data for backtesting purposes has been verified.",
|
||||
"updated": 1634135432569
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Tested from 2020-01-01",
|
||||
"updated": 1634135568527
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Unknown. The ability to run strategies in live-trading mode has not been verified.",
|
||||
"updated": 1616005641922
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data mining it's extremely slow due to API restriction",
|
||||
"updated": 1615450349464
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"bittrex\",\n \"API\": [\n {\n \"method\": \"fetchOHLCV\",\n \"limit\": 1500\n }\n ]\n}",
|
||||
"updated": 1634135616222
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
-57
@@ -1,57 +0,0 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 10,
|
||||
"type": "CoinbasePro Test Status",
|
||||
"definition": {
|
||||
"text": "Coinbase Pro is not fully tested for data mining nor for live trading.",
|
||||
"updated": 1616005773803
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. Backtesting and Paper trading are functional. The data mining process is extremely slow when retrieving full history due to API limits but it is adequate for live trading purposes.",
|
||||
"updated": 1617935711274
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Full extent is unknown, however it is at least 2020-01-01.",
|
||||
"updated": 1617935743856
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Partial. With a proper key configuration placing orders is possible. Currently, closing orders is not fully functional, so all types of trading strategies may not be fully functional.",
|
||||
"updated": 1617935811860
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data fetching extremely slow due to API restrictions, see config.",
|
||||
"updated": 1616005813658
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Exchange Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"coinbasepro\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"limit\": 300\n }\n ]\n}",
|
||||
"updated": 1617935879109
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "API Key Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"APIKEY\",\n \"secret\": \"SECRETKEY\",\n \"password\": \"PASSPHRASE\"\n}"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+55
-55
@@ -1,56 +1,56 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": "11",
|
||||
"type": "Bitstamp Test Status",
|
||||
"definition": {
|
||||
"text": "Bitstamp is fully tested for data mining and trading.",
|
||||
"updated": 1615141847424
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability [*]: Yes."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Starting on September 2017.",
|
||||
"updated": 1615142912901
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Yes.",
|
||||
"updated": 1615143016205
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Fully tested. ",
|
||||
"updated": 1615142951363
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "[*] The ability to fetch historic data for backtesting purposes has been verified."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "[**] The ability to run strategies in live-trading mode has been verified."
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"bitstamp\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}",
|
||||
"updated": 1616805179437
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 11,
|
||||
"type": "Bitstamp Test Status",
|
||||
"definition": {
|
||||
"text": "Bitstamp is fully tested for data mining and trading.",
|
||||
"updated": 1615141847424
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability [*]: Yes."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Starting on September 2017.",
|
||||
"updated": 1615142912901
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability [**]: Yes.",
|
||||
"updated": 1615143016205
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Fully tested. ",
|
||||
"updated": 1615142951363
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "[*] The ability to fetch historic data for backtesting purposes has been verified."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "[**] The ability to run strategies in live-trading mode has been verified."
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"bitstamp\",\n \"API\": [\n {\n \"method\": \"fetchTrades\",\n \"fetchType\": \"by Id\",\n \"fetchTradesMethod\": \"publicGetHistoricalTrades\",\n \"firstId\": \"f\"\n }\n ]\n}",
|
||||
"updated": 1616805179437
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+56
-56
@@ -1,57 +1,57 @@
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 12,
|
||||
"type": "CoinbasePro Test Status",
|
||||
"definition": {
|
||||
"text": "Coinbase Pro is not fully tested for data mining nor for live trading.",
|
||||
"updated": 1616005773803
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. Backtesting and Paper trading are functional. The data mining process is extremely slow when retrieving full history due to API limits but it is adequate for live trading purposes.",
|
||||
"updated": 1617935711274
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Full extent is unknown, however it is at least 2020-01-01.",
|
||||
"updated": 1617935743856
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Partial. With a proper key configuration placing orders is possible. Currently, closing orders is not fully functional, so all types of trading strategies may not be fully functional.",
|
||||
"updated": 1617935811860
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data fetching extremely slow due to API restrictions, see config.",
|
||||
"updated": 1616005813658
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Exchange Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"coinbasepro\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"limit\": 300\n }\n ]\n}",
|
||||
"updated": 1617935879109
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "API Key Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"APIKEY\",\n \"secret\": \"SECRETKEY\",\n \"password\": \"PASSPHRASE\"\n}"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
{
|
||||
"topic": "Tested Exchanges",
|
||||
"pageNumber": 12,
|
||||
"type": "CoinbasePro Test Status",
|
||||
"definition": {
|
||||
"text": "Coinbase Pro is not fully tested for data mining nor for live trading.",
|
||||
"updated": 1616005773803
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Properties",
|
||||
"updated": 1615143100216
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "1-min OHLCVs Capability: Yes. Backtesting and Paper trading are functional. The data mining process is extremely slow when retrieving full history due to API limits but it is adequate for live trading purposes.",
|
||||
"updated": 1617935711274
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market History: Full extent is unknown, however the sensor bot start from 2021-05-01 even through set date is 2020-01-01",
|
||||
"updated": 1634126300339
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Trading Capability: Partial. With a proper key configuration placing orders is possible. Currently, closing orders is not fully functional, so all types of trading strategies may not be fully functional.",
|
||||
"updated": 1617935811860
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Comments: Raw Data fetching extremely slow due to API restrictions, see config.",
|
||||
"updated": 1616005813658
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Exchange Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"coinbasepro\",\n \"API\": [\n {\n \"method\": \"fetch_ohlcv\",\n \"limit\": 100\n }\n ]\n}",
|
||||
"updated": 1634116119423
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "API Key Configuration"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"APIKEY\",\n \"secret\": \"SECRETKEY\",\n \"password\": \"PASSPHRASE\"\n}"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+15
-2
@@ -9,7 +9,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Este tutorial complementa la información entregada en el Welcome to Superalgos Tutorial, centrándose en el Nodes Menu, Backups, Clones y Shares, Plugins, Workspaces, References, y más.",
|
||||
"updated": 1628897004689
|
||||
"updated": 1628897004689,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Dieses Tutorial ergänzt die Informationen aus dem Welcome to Superalgos Tutorial und konzentriert sich auf Nodes Menu, Backups, Clones und Shares, Plugins, Workspaces, References, und mehr.",
|
||||
"updated": 1634585384331
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -17,7 +23,14 @@
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "About This Tutorial",
|
||||
"updated": 1617111489986
|
||||
"updated": 1617111489986,
|
||||
"translations": [
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Über dieses Tutorial",
|
||||
"updated": 1634585391510
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
|
||||
+20
@@ -21,6 +21,11 @@
|
||||
"text": "Escuché que mi amigo el Welcome Tutorial te mostró todo y te hipnotizó con algunos trucos baratos... ¡Qué presumido!",
|
||||
"updated": 1625934965685,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Ich habe gehört, dass mein Freund, das Willkommens-Tutorial, dich herumgeführt und mit ein paar billigen Tricks hypnotisiert hat... Was für eine Angeber!",
|
||||
"updated": 1634296891537
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -41,6 +46,11 @@
|
||||
"text": "Bueno, ¡ahora es el momento de trabajar!",
|
||||
"updated": 1625934949953,
|
||||
"style": "Note"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Nun, jetzt ist es an der Zeit zu arbeiten!",
|
||||
"updated": 1634296898849
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -59,6 +69,11 @@
|
||||
"text": "¡Aprender Superalgos es todo un esfuerzo! No porque sea difícil, sino porque el sistema es vasto, extremadamente flexible y está construido sobre un nuevo paradigma que al principio no es obvio...",
|
||||
"updated": 1627322852878,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Superalgos zu lernen ist ein ziemliches Unterfangen! Nicht, weil es schwierig ist, sondern weil das System sehr umfangreich, extrem flexibel und auf einem neuen Paradigma aufgebaut ist, das am Anfang nicht offensichtlich ist...",
|
||||
"updated": 1634296907253
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -78,6 +93,11 @@
|
||||
"text": "¡Pero no te preocupes! Si prestas atención y haces todos los tutoriales disponibles, ¡podrás afrontar la curva de aprendizaje como un campeón! Aún así, ten cuidado... ¡la mayoría de la gente hace los tutoriales más de una vez!",
|
||||
"updated": 1625935125952,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Aber keine Sorge! Wenn Sie aufmerksam sind und alle verfügbaren Tutorials absolvieren, werden Sie die Lernkurve wie ein Champion meistern! Aber seien Sie gewarnt... die meisten Leute machen die Tutorials mehr als einmal!",
|
||||
"updated": 1634296988459
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+28
-4
@@ -19,7 +19,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "El lado izquierdo del menú de un nodo es común a la mayoría de los nodos. El lado derecho, es específico del tipo de nodo.",
|
||||
"updated": 1625935528260
|
||||
"updated": 1625935528260,
|
||||
"style": "Definition"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Die linke Seite des Menüs eines Knotens ist für die meisten Knoten gleich. Die rechte Seite ist jedoch spezifisch für den Typ des Knotens!",
|
||||
"updated": 1634297081552
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -38,7 +44,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "¡Echemos un vistazo al lado izquierdo!",
|
||||
"updated": 1625935546791
|
||||
"updated": 1625935546791,
|
||||
"style": "Note"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Schauen wir uns die linke Seite genau an!",
|
||||
"updated": 1634297088928
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -55,7 +67,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "El espacio de diseño funciona bajo el paradigma de un espacio de trabajo autoorganizado en el que los nodos tienden a encontrar su lugar guiados por ciertas propiedades de disposición que puedes controlar desde el menú del nodo.",
|
||||
"updated": 1625935593161
|
||||
"updated": 1625935593161,
|
||||
"style": "Text"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Der Design Space funktioniert nach dem Paradigma eines sich selbst organisierenden Workspace, in dem die Knoten dazu neigen, ihren Platz zu finden, geleitet von bestimmten Anordnungseigenschaften, die Sie über das Menü des Knotens steuern können.",
|
||||
"updated": 1634297127960
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -73,7 +91,13 @@
|
||||
{
|
||||
"language": "ES",
|
||||
"text": "Haz clic en el botón de alfiler en la esquina superior izquierda del Session Base Asset. ¡Ahora arrastra el nodo y suéltalo! Arrastra y suelta cualquier otro nodo sin fijarlo. ¿Ves la diferencia?",
|
||||
"updated": 1625935633792
|
||||
"updated": 1625935633792,
|
||||
"style": "Callout"
|
||||
},
|
||||
{
|
||||
"language": "DE",
|
||||
"text": "Klicken Sie auf die Schaltfläche \"Pin/Unpin\" in der oberen linken Ecke des Knotens \"Session Base Asset\". Ziehen Sie nun den Knoten weg und lassen Sie ihn los! Ziehen Sie nun einen beliebigen anderen Knoten weg, ohne ihn anzuheften. Sehen Sie den Unterschied?",
|
||||
"updated": 1634297180198
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Loaded 100 of 430 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user