diff --git a/Client/MultiProject.js b/Client/MultiProject.js new file mode 100644 index 000000000..21e8b08ef --- /dev/null +++ b/Client/MultiProject.js @@ -0,0 +1,73 @@ +exports.newMultiProject = function () { + + let thisObject = { + initialize: initialize + } + + return thisObject; + + function initialize() { + /* + First thing is to load the project schema file. + */ + let PROJECTS_SCHEMA = require(global.env.PATH_TO_PROJECTS_REQUIRED + '/' + 'ProjectsSchema.json') + + /* + Here we will setup the CL object, with all the + projects and modules that will have inside. + */ + global.CL = { + projects: {} + } + for (let i = 0; i < PROJECTS_SCHEMA.length; i++) { + let projectDefinition = PROJECTS_SCHEMA[i] + global.CL.projects[projectDefinition.propertyName] = {} + let projectInstance = global.CL.projects[projectDefinition.propertyName] + + projectInstance.utilities = {} + projectInstance.globals = {} + projectInstance.functionLibraries = {} + projectInstance.taskModules = {} + projectInstance.processModules = {} + projectInstance.botModules = {} + + if (projectDefinition.CL === undefined) { continue } + + /* Set up Utilities of this Project */ + if (projectDefinition.CL.utilities !== undefined) { + for (let j = 0; j < projectDefinition.CL.utilities.length; j++) { + let utilityDefinition = projectDefinition.CL.utilities[j] + let path = global.env.PATH_TO_PROJECTS_REQUIRED + '/' + projectDefinition.name + '/' + 'CL' + '/' + 'Utilities' + '/' + utilityDefinition.fileName + + let requiredObject = require(path) + let requiredFunction = requiredObject[utilityDefinition.functionName] + projectInstance.utilities[utilityDefinition.propertyName] = requiredFunction.call() + } + } + + /* Set up Globals of this Project */ + if (projectDefinition.CL.globals !== undefined) { + for (let j = 0; j < projectDefinition.CL.globals.length; j++) { + let globalDefinition = projectDefinition.CL.globals[j] + let path = global.env.PATH_TO_PROJECTS_REQUIRED + '/' + projectDefinition.name + '/' + 'CL' + '/' + 'Globals' + '/' + globalDefinition.fileName + + let requiredObject = require(path) + let requiredFunction = requiredObject[globalDefinition.functionName] + projectInstance.globals[globalDefinition.propertyName] = requiredFunction.call() + } + } + + /* Set up Function Libraries of this Project */ + if (projectDefinition.CL.functionLibraries !== undefined) { + for (let j = 0; j < projectDefinition.CL.functionLibraries.length; j++) { + let functionLibraryDefinition = projectDefinition.CL.functionLibraries[j] + let path = global.env.PATH_TO_PROJECTS_REQUIRED + '/' + projectDefinition.name + '/' + 'CL' + '/' + 'Function-Libraries' + '/' + functionLibraryDefinition.fileName + + let requiredObject = require(path) + let requiredFunction = requiredObject[functionLibraryDefinition.functionName] + projectInstance.functionLibraries[functionLibraryDefinition.propertyName] = requiredFunction.call() + } + } + } + } +} \ No newline at end of file diff --git a/Client/client.js b/Client/client.js index 3c4d2d247..9f4a241e0 100644 --- a/Client/client.js +++ b/Client/client.js @@ -64,12 +64,27 @@ let EVENT_SERVER = require('./eventServer.js') let TASK_MANAGER_SERVER = require('./taskManagerServer.js') let CCXT_SERVER = require('./ccxtServer.js') let WEB3_SERVER = require('./web3Server.js') +let GITHUB_SERVER = require('./githubServer.js') /* Network Interfaces */ let WEB_SOCKETS_INTERFACE = require('./webSocketsServer.js') let HTTP_INTERFACE = require('./httpInterface.js') try { + /* + Setting up the modules that will be available for the Servers Running inside this Client + */ + let MULTI_PROJECT = require('./MultiProject.js'); + let MULTI_PROJECT_MODULE = MULTI_PROJECT.newMultiProject() + MULTI_PROJECT_MODULE.initialize() + /* + Setting up external dependencies. + */ + CL.nodeModules = { + fs: require('fs'), + nodeFetch: require('node-fetch') + } + console.log('CLIENT SERVERS:') console.log('') @@ -87,7 +102,7 @@ try { PROJECT_FILE_SERVER.initialize() PROJECT_FILE_SERVER.run() console.log('Project File Server ......................................... Started') - + PLUGIN_SERVER = PLUGIN_SERVER.newPluginServer() PLUGIN_SERVER.initialize() PLUGIN_SERVER.run() @@ -112,12 +127,17 @@ try { CCXT_SERVER.initialize() CCXT_SERVER.run() console.log('CCXT Server ................................................. Started') - + WEB3_SERVER = WEB3_SERVER.newWeb3Server() WEB3_SERVER.initialize() WEB3_SERVER.run() console.log('WEB3 Server ................................................. Started') + GITHUB_SERVER = GITHUB_SERVER.newGithubServer() + GITHUB_SERVER.initialize() + GITHUB_SERVER.run() + console.log('Github Server ............................................... Started') + console.log('') console.log('CLIENT INTERFACES:') console.log('') @@ -127,7 +147,16 @@ try { WEB_SOCKETS_INTERFACE.run() console.log('Web Sockets Interface ....................................... Listening at port ' + global.env.WEB_SOCKETS_INTERFACE_PORT) - HTTP_INTERFACE = HTTP_INTERFACE.newHttpInterface(WEB_SERVER, DATA_FILE_SERVER, PROJECT_FILE_SERVER, UI_FILE_SERVER, PLUGIN_SERVER, CCXT_SERVER, WEB3_SERVER) + HTTP_INTERFACE = HTTP_INTERFACE.newHttpInterface( + WEB_SERVER, + DATA_FILE_SERVER, + PROJECT_FILE_SERVER, + UI_FILE_SERVER, + PLUGIN_SERVER, + CCXT_SERVER, + WEB3_SERVER, + GITHUB_SERVER + ) HTTP_INTERFACE.initialize() HTTP_INTERFACE.run() console.log('Http Interface .............................................. Listening at port ' + global.env.HTTP_INTERFACE_PORT) diff --git a/Client/githubServer.js b/Client/githubServer.js new file mode 100644 index 000000000..1cc112797 --- /dev/null +++ b/Client/githubServer.js @@ -0,0 +1,585 @@ +exports.newGithubServer = function newGithubServer() { + + let thisObject = { + getGithubStars: getGithubStars, + getGithubWatchers: getGithubWatchers, + getGithubForks: getGithubForks, + mergePullRequests: mergePullRequests, + initialize: initialize, + finalize: finalize, + run: run + } + + const GITHUB_API_WAITING_TIME = 250 + return thisObject + + function finalize() { + + } + + function initialize() { + + } + + function run() { + + } + + async function getGithubStars(repository, username, token) { + return await getGithubUsernames('activity', 'listStargazersForRepo', repository, username, token) + } + + async function getGithubWatchers(repository, username, token) { + return await getGithubUsernames('activity', 'listWatchersForRepo', repository, username, token) + } + + async function getGithubForks(repository, username, token) { + return await getGithubUsernames('repos', 'listForks', repository, username, token) + } + + async function mergePullRequests(commitMessage, username, token) { + return await mergeGithubPullRequests(commitMessage, username, token) + } + + async function getGithubUsernames(endpoint, method, repository, username, token) { + try { + + repository = unescape(repository) + username = unescape(username) + token = unescape(token) + let error + let githubListArray = [] + + return await getRepoInfo() + + async function getRepoInfo() { + await doGithub() + if (error !== undefined) { + + let docs = { + project: 'Governance', + category: 'Topic', + type: 'Gov Error - Get Repository Information', + anchor: undefined, + placeholder: {} + } + + return respondWithDocsObject(docs, error) + } + + return { + result: global.DEFAULT_OK_RESPONSE.result, + githubListArray: githubListArray + } + } + + async function doGithub() { + + const { Octokit } = require("@octokit/rest") + + const octokit = new Octokit({ + auth: token, + userAgent: 'Superalgos Beta 11' + }) + await getList() + + async function getList() { + const repo = repository + const owner = 'Superalgos' + const per_page = 100 // Max + let page = 0 + let lastPage = false + + while (lastPage === false) { + try { + page++ + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + let listResponse = await octokit[endpoint][method]({ + owner, + repo, + per_page, + page + }); + + if (listResponse.data.length < 100) { + lastPage = true + } + + for (let i = 0; i < listResponse.data.length; i++) { + let listItem = listResponse.data[i] + let githubUsername + switch (endpoint) { + case 'activity': { + githubUsername = listItem.login + break + } + case 'repos': { + githubUsername = listItem.owner.login + break + } + } + //console.log(listItem) + + githubListArray.push(githubUsername) + } + console.log('[INFO] Github Server -> getRepoInfo -> doGithub -> getList -> ' + method + ' Page = ' + page) + console.log('[INFO] Github Server -> getRepoInfo -> doGithub -> getList -> ' + method + ' Received = ' + listResponse.data.length) + + } catch (err) { + console.log(err) + + if (err.stack.indexOf('last page') >= 0) { + return + } else { + console.log('[ERROR] Github Server -> getRepoInfo -> doGithub -> getList ->Method call produced an error.') + console.log('[ERROR] Github Server -> getRepoInfo -> doGithub -> getList ->err.stack = ' + err.stack) + console.log('[ERROR] Github Server -> getRepoInfo -> doGithub -> getList ->repository = ' + repository) + console.log('[ERROR] Github Server -> getRepoInfo -> doGithub -> getList ->username = ' + username) + console.log('[ERROR] Github Server -> getRepoInfo -> doGithub -> getList ->token starts with = ' + token.substring(0, 10) + '...') + console.log('[ERROR] Github Server -> getRepoInfo -> doGithub -> getList ->token ends with = ' + '...' + token.substring(token.length - 10)) + error = err + return + } + } + } + } + } + + } catch (err) { + console.log('[ERROR] Github Server -> getRepoInfo -> Method call produced an error.') + console.log('[ERROR] Github Server -> getRepoInfo -> err.stack = ' + err.stack) + console.log('[ERROR] Github Server -> getRepoInfo -> repository = ' + repository) + console.log('[ERROR] Github Server -> getRepoInfo -> username = ' + username) + console.log('[ERROR] Github Server -> getRepoInfo -> token starts with = ' + token.substring(0, 10) + '...') + console.log('[ERROR] Github Server -> getRepoInfo -> token ends with = ' + '...' + token.substring(token.length - 10)) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + return error + } + } + + async function mergeGithubPullRequests(commitMessage, username, token) { + try { + commitMessage = unescape(commitMessage) + username = unescape(username) + token = unescape(token) + const repository = 'Superalgos' + + /* Unsavping # */ + for (let i = 0; i < 10; i++) { + commitMessage = commitMessage.replace('_SLASH_', '/') + commitMessage = commitMessage.replace('_HASHTAG_', '#') + } + + let error + let githubPrListArray = [] + + return await processOpenPullRequests() + + async function processOpenPullRequests() { + await doGithub() + if (error !== undefined) { + + let docs = { + project: 'Governance', + category: 'Topic', + type: 'Gov Error - Pull Requests Not Processed', + anchor: undefined, + placeholder: {} + } + + return respondWithDocsObject(docs, error) + } + + return { + result: global.DEFAULT_OK_RESPONSE.result + } + } + + async function doGithub() { + try { + const repo = repository + const owner = 'Superalgos' + const { Octokit } = require("@octokit/rest") + const octokit = new Octokit({ + auth: token, + userAgent: 'Superalgos Beta 11' + }) + await getPrList() + await mergePrs() + + async function getPrList() { + + const per_page = 100 // Max + let page = 0 + let lastPage = false + + while (lastPage === false) { + try { + page++ + + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + + let listResponse = await octokit.rest.pulls.list({ + owner: owner, + repo: repo, + state: 'open', + head: 'develop', + base: 'develop', + sort: undefined, + direction: undefined, + per_page: per_page, + page: page + }); + + if (listResponse.data.length < 100) { + lastPage = true + } + console.log('[INFO] Github Server -> mergeGithubPullRequests -> doGithub -> getPrList -> Receiving Page = ' + page) + for (let i = 0; i < listResponse.data.length; i++) { + let pullRequest = listResponse.data[i] + console.log('[INFO] Github Server -> mergeGithubPullRequests -> doGithub -> getPrList -> Pull Request "' + pullRequest.title + '" found and added to the list to validate. ') + githubPrListArray.push(pullRequest) + } + console.log('[INFO] Github Server -> mergeGithubPullRequests -> doGithub -> getPrList -> Received = ' + listResponse.data.length) + + } catch (err) { + console.log(err) + + if (err.stack.indexOf('last page') >= 0) { + return + } else { + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> doGithub -> getPrList ->Method call produced an error.') + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> doGithub -> getPrList ->err.stack = ' + err.stack) + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> doGithub -> getPrList ->repository = ' + repository) + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> doGithub -> getPrList ->username = ' + username) + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> doGithub -> getPrList ->token starts with = ' + token.substring(0, 10) + '...') + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> doGithub -> getPrList ->token ends with = ' + '...' + token.substring(token.length - 10)) + error = err + return + } + } + } + } + + async function mergePrs() { + /* + In order to automatically merge a PRs we will run several validations first. + We want to automate specifically the merging of Profile File changes at the + Governance System done by the same Github user name that matches the profile + changed. We will also not do the merge if there are more than one file at the + PR. + + We will go through the list of open PRs and run the validations at each one of them. + */ + console.log('[INFO] Github Server -> mergeGithubPullRequests -> Ready to Validate ' + githubPrListArray.length + ' pull requests. ') + + for (let i = 0; i < githubPrListArray.length; i++) { + let pullRequest = githubPrListArray[i] + /* + Lets get the files changed at this Pull Request. + */ + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + let listResponse = await octokit.rest.pulls.listFiles({ + owner: owner, + repo: repo, + pull_number: pullRequest.number + }); + let filesChanged = listResponse.data + let fileContentUrl // URL to the only file at the PR + let fileContent // File content of the only file at the PR + let userProfile // User Profile Object + let githubUsername // The Github user name of who is submitting the Pull Request + let mergeResponse // The response received from the call to Gihub to merge the Pull Request + + if (await validatePrHasMoreThanOneFile() === false) { continue } + if (await validateFileNameEqualsGithubUsername() === false) { continue } + if (await validateFileChangedIsUserProfile() === false) { continue } + if (await validateMessageSignedIsGithubUsername() === false) { continue } + if (await validateUserProfileNodeNameEqualsGithubUsername() === false) { continue } + if (await validateUserProfileIdDoesNotBelongtoAnotherUserProfile() === false) { continue } + + if (await mergePullRequest() === false) { + console.log('[WARN] Github Server -> mergeGithubPullRequests -> Merge Failed -> Pull Request "' + pullRequest.title + '" not merged because Github could not merge it. -> mergeResponse.message = ' + mergeResponse.data.message) + } else { + console.log('[INFO] Github Server -> mergeGithubPullRequests -> Merge Succed -> Pull Request "' + pullRequest.title + '" successfully merged. -> mergeResponse.message = ' + mergeResponse.data.message) + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.issues.createComment({ + owner: owner, + repo: repo, + issue_number: pullRequest.number, + body: 'This Pull Request was automatically merged by the Superalgos Governance System because it was detected that the Github User " ' + githubUsername + '" who submitted it, modified its own User Profile Plugin File and nothning else but that file. All validations were successfull.' + }); + } + + async function validatePrHasMoreThanOneFile() { + /* + Validation #1: If the PR has more than one file, then we will not automatically + merge it. + */ + if (filesChanged.length !== 1) { + console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #1 Failed -> Pull Request "' + pullRequest.title + '" not merged because it contains more than 1 file. -> fileCount = ' + filesChanged.length) + /* + We will close PRs that contains any User Profile file together with other files in the same Pull Request. + This will avoid manual merges to include User Profile files. + */ + for (let j = 0; j < filesChanged.length; j++) { + let pullRequestFile = filesChanged[j] + let fileContentUrl = pullRequestFile.raw_url + if (fileContentUrl.indexOf('Governance/Plugins/User-Profiles') >= 0) { + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.issues.createComment({ + owner: owner, + repo: repo, + issue_number: pullRequest.number, + body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that a User Profile file... \n\n' + fileContentUrl + '\n\n...was submitted together with ' + (filesChanged.length - 1) + ' other file/s. User Profiles files as per the Governance System rules, must be the only file present at a Pull Request in order to pass all the validations and be automatically merged.' + }); + + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.pulls.update({ + owner: owner, + repo: repo, + pull_number: pullRequest.number, + state: 'closed' + }); + break + } + } + return false + } + } + + async function validateFileNameEqualsGithubUsername() { + /* + Validation #2: File Name must be the same to the Github Username of the PR owner. + */ + let pullRequestFile = filesChanged[0] + fileContentUrl = pullRequestFile.raw_url + + if (fileContentUrl.indexOf('Governance/Plugins/User-Profiles') < 0) { + /* + If it is not a user profile then there is no need to auto merge. + */ + console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #2 Failed -> Pull Request "' + pullRequest.title + '" not merged because the file modified at the Pull Request is not a User Profile file. -> fileContentUrl = ' + fileContentUrl) + return false + } + + let splittedURL = fileContentUrl.split('/') + let fileName = splittedURL[splittedURL.length - 1] + let splittedFileName = fileName.split('.') + fileName = splittedFileName[0] + githubUsername = pullRequest.user.login + + if (githubUsername !== fileName) { + console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #2 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the File Name. -> Github Username = ' + githubUsername + '-> fileName = ' + fileName) + + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.issues.createComment({ + owner: owner, + repo: repo, + issue_number: pullRequest.number, + body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that the Github User "' + githubUsername + '" who submitted it, is not equal to the name of the User Profile Plugin File.\n\n File Name = "' + fileName + '"' + }); + + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.pulls.update({ + owner: owner, + repo: repo, + pull_number: pullRequest.number, + state: 'closed' + }); + return false + } + } + + async function validateFileChangedIsUserProfile() { + /* + Validation #3: The file changed at the PR is a User Profile. + */ + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + fileContent = await CL.projects.foundations.utilities.webAccess.fetchAPIDataFile(fileContentUrl) + userProfile = JSON.parse(fileContent) + + if (userProfile.type !== 'User Profile') { + console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #3 Failed -> Pull Request "' + pullRequest.title + '" not merged because the file modified is not a User Profile. -> Type = ' + userProfile.type) + return false + } + } + + async function validateMessageSignedIsGithubUsername() { + /* + Validation #4: The message signed at the config is not the Github Username. + */ + let config = JSON.parse(userProfile.config) + let messageSigned = config.signature.message + if (messageSigned !== githubUsername) { + console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #4 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the Message Signed at the User Profile. -> Github Username = ' + githubUsername + '-> messageSigned = ' + messageSigned) + + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.issues.createComment({ + owner: owner, + repo: repo, + issue_number: pullRequest.number, + body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that the Github User "' + githubUsername + '" who submitted it, is not equal to the Message Signed at the User Profile.\n\n Message Signed = "' + messageSigned + '"' + }); + + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.pulls.update({ + owner: owner, + repo: repo, + pull_number: pullRequest.number, + state: 'closed' + }); + return false + } + } + + async function validateUserProfileNodeNameEqualsGithubUsername() { + /* + Validation #5: The name of the User Profile node is not the Github Username. + */ + if (userProfile.name !== githubUsername) { + console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #5 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the User Profile node\'s name. -> Github Username = ' + githubUsername + '-> userProfile.name = ' + userProfile.name) + + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.issues.createComment({ + owner: owner, + repo: repo, + issue_number: pullRequest.number, + body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that the Github User "' + githubUsername + '" who submitted it, is not equal to the User Profile node\'s name.\n\n User Profile Name = "' + userProfile.name + '"' + }); + + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.pulls.update({ + owner: owner, + repo: repo, + pull_number: pullRequest.number, + state: 'closed' + }); + return false + } + } + + async function validateUserProfileIdDoesNotBelongtoAnotherUserProfile() { + /* + Validation #6: The id of the User Profile can not be the id of an already existing User Profile + unless the existing one belongs to the same Github username. + */ + let userProfileIdMap = new Map() + let pluginFileNames = await CL.projects.foundations.utilities.plugins.getPluginFileNames( + 'Governance', + 'User-Profiles' + ) + for (let i = 0; i < pluginFileNames.length; i++) { + let pluginFileName = pluginFileNames[i] + + let pluginFileContent = await CL.projects.foundations.utilities.plugins.getPluginFileContent( + 'Governance', + 'User-Profiles', + pluginFileName + ) + + let otherUserProfile = JSON.parse(pluginFileContent) + userProfileIdMap.set(otherUserProfile.id, otherUserProfile.name) + } + + let testUserProfile = userProfileIdMap.get(userProfile.id) + if (testUserProfile === undefined) { return true } + if (testUserProfile !== userProfile.name) { + + console.log('[INFO] Github Server -> mergeGithubPullRequests -> Validation #6 Failed -> Pull Request "' + pullRequest.title + '" not merged because the User Profile Id already exists and belongs to another User Profile on record. -> Profile Id = ' + userProfile.id + '-> User Profile with the same Id = ' + testUserProfile) + + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.issues.createComment({ + owner: owner, + repo: repo, + issue_number: pullRequest.number, + body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because the User Profile Id already exists and belongs to another User Profile on record. \n\nUser Profile Id = "' + userProfile.id + '" \n\n User Profile with the same Id = "' + testUserProfile + '"' + }); + + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + await octokit.rest.pulls.update({ + owner: owner, + repo: repo, + pull_number: pullRequest.number, + state: 'closed' + }); + return false + } + } + + async function mergePullRequest() { + /* + All validations passed, we will proceed an merge this Pull Request. + */ + await CL.projects.foundations.utilities.asyncFunctions.sleep(GITHUB_API_WAITING_TIME) + mergeResponse = await octokit.rest.pulls.merge({ + owner: owner, + repo: repo, + pull_number: pullRequest.number, + commit_title: 'Changes in User Profile done by Profile Owner ' + githubUsername + ' automatically merged by Superalgos.' + }); + return mergeResponse.data.merged + } + } + } + } catch (err) { + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> doGithub -> err.stack = ' + err.stack) + } + } + + } catch (err) { + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> Method call produced an error.') + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> err.stack = ' + err.stack) + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> repository = ' + repository) + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> username = ' + username) + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> token starts with = ' + token.substring(0, 10) + '...') + console.log('[ERROR] Github Server -> mergeGithubPullRequests -> token ends with = ' + '...' + token.substring(token.length - 10)) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + return error + } + } + + function respondWithDocsObject(docs, error) { + + if (error.message !== undefined) { + docs.placeholder.errorMessage = { + style: 'Error', + text: error.message + } + } + if (error.stack !== undefined) { + docs.placeholder.errorStack = { + style: 'Javascript', + text: error.stack + } + } + if (error.code !== undefined) { + docs.placeholder.errorCode = { + style: 'Json', + text: error.code + } + } + + docs.placeholder.errorDetails = { + style: 'Json', + text: JSON.stringify(error, undefined, 4) + } + + let customResponse = { + result: global.CUSTOM_FAIL_RESPONSE.result, + docs: docs + } + + return customResponse + } +} \ No newline at end of file diff --git a/Client/httpInterface.js b/Client/httpInterface.js index 2389e5f7e..cd8cf6785 100644 --- a/Client/httpInterface.js +++ b/Client/httpInterface.js @@ -1,4 +1,13 @@ -exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVER, PROJECT_FILE_SERVER, UI_FILE_SERVER, PLUGIN_SERVER, CCXT_SERVER, WEB3_SERVER) { +exports.newHttpInterface = function newHttpInterface( + WEB_SERVER, + DATA_FILE_SERVER, + PROJECT_FILE_SERVER, + UI_FILE_SERVER, + PLUGIN_SERVER, + CCXT_SERVER, + WEB3_SERVER, + GITHUB_SERVER +) { /* IMPORTANT: If you are reviewing the code of the project please note @@ -151,6 +160,15 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE respondWithContent(JSON.stringify(serverResponse), httpResponse) return } + case 'mnemonicToPrivateKey': { + + let serverResponse = await WEB3_SERVER.mnemonicToPrivateKey( + params.mnemonic + ) + + respondWithContent(JSON.stringify(serverResponse), httpResponse) + return + } default: { respondWithContent(JSON.stringify({ error: 'Method ' + params.method + ' is invalid.' }), httpResponse) } @@ -366,6 +384,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } break } + case 'Save-Concept-Schema': { getBody(processRequest) @@ -396,6 +415,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } break } + case 'Save-Topic-Schema': { getBody(processRequest) @@ -426,6 +446,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } break } + case 'Save-Tutorial-Schema': { getBody(processRequest) @@ -456,6 +477,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } break } + case 'Save-Review-Schema': { getBody(processRequest) @@ -486,6 +508,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } break } + case 'Save-Book-Schema': { getBody(processRequest) @@ -1019,138 +1042,80 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE } break - case 'Gov': { - switch (requestParameters[2]) { // switch by command - case 'getGithubStars': { - getGithubUsernames('activity', 'listStargazersForRepo') - break - } - case 'getGithubWatchers': { - getGithubUsernames('activity', 'listWatchersForRepo') - break - } - case 'getGithubForks': { - getGithubUsernames('repos', 'listForks') - break - } - case 'PRs': { - mergeGithubPullRequests() - break - } - case 'Pay': { - payToContributors() - break - } - } + case 'GOV': { + /* + This is the Governance endpoint at the Http Interface. All methods + related to the Governance System are implemented here and routed + to the backend Servers that can process them. + */ + getBody(processRequest) - function getGithubUsernames(endpoint, method) { + async function processRequest(body) { try { - const GITHUB_API_WAITING_TIME = 250 - const repository = unescape(requestParameters[3]) - const username = unescape(requestParameters[4]) - const token = unescape(requestParameters[5]) - let error - let githubListArray = [] + let params = JSON.parse(body) - getRepoInfo() + switch (params.method) { + case 'getGithubStars': { - async function getRepoInfo() { - await doGithub() - if (error !== undefined) { + let serverResponse = await GITHUB_SERVER.getGithubStars( + params.repository, + params.username, + params.token + ) - let docs = { - project: 'Governance', - category: 'Topic', - type: 'Gov Error - Get Repository Information', - anchor: undefined, - placeholder: {} - } - - respondWithDocsObject(docs, error) + respondWithContent(JSON.stringify(serverResponse), httpResponse) return } + case 'getGithubWatchers': { - respondWithContent(JSON.stringify(githubListArray), httpResponse) - } + let serverResponse = await GITHUB_SERVER.getGithubWatchers( + params.repository, + params.username, + params.token + ) - async function doGithub() { + respondWithContent(JSON.stringify(serverResponse), httpResponse) + return + } + case 'getGithubForks': { - const { Octokit } = require("@octokit/rest") + let serverResponse = await GITHUB_SERVER.getGithubForks( + params.repository, + params.username, + params.token + ) - const octokit = new Octokit({ - auth: token, - userAgent: 'Superalgos Beta 11' - }) - await getList() + respondWithContent(JSON.stringify(serverResponse), httpResponse) + return + } + case 'mergePullRequests': { - async function getList() { - const repo = repository - const owner = 'Superalgos' - const per_page = 100 // Max - let page = 0 - let lastPage = false + let serverResponse = await GITHUB_SERVER.mergePullRequests( + params.commitMessage, + params.username, + params.token + ) - while (lastPage === false) { - try { - page++ - await sleep(GITHUB_API_WAITING_TIME) - let listResponse = await octokit[endpoint][method]({ - owner, - repo, - per_page, - page - }); + respondWithContent(JSON.stringify(serverResponse), httpResponse) + return + } + case 'payContributors': { - if (listResponse.data.length < 100) { - lastPage = true - } + let serverResponse = await WEB3_SERVER.payContributors( + params.signature + ) - for (let i = 0; i < listResponse.data.length; i++) { - let listItem = listResponse.data[i] - let githubUsername - switch (endpoint) { - case 'activity': { - githubUsername = listItem.login - break - } - case 'repos': { - githubUsername = listItem.owner.login - break - } - } - //console.log(listItem) - - githubListArray.push(githubUsername) - } - console.log('[INFO] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList -> ' + method + ' Page = ' + page) - console.log('[INFO] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList -> ' + method + ' Received = ' + listResponse.data.length) - - } catch (err) { - console.log(err) - - if (err.stack.indexOf('last page') >= 0) { - return - } else { - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList ->Method call produced an error.') - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList ->err.stack = ' + err.stack) - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList ->repository = ' + repository) - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList ->username = ' + username) - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList ->token starts with = ' + token.substring(0, 10) + '...') - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> doGithub -> getList ->token ends with = ' + '...' + token.substring(token.length - 10)) - error = err - } - } - } + respondWithContent(JSON.stringify(serverResponse), httpResponse) + return + } + default: { + respondWithContent(JSON.stringify({ error: 'Method ' + params.method + ' is invalid.' }), httpResponse) } } - } catch (err) { - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> Method call produced an error.') - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> err.stack = ' + err.stack) - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> repository = ' + repository) - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> username = ' + username) - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> token starts with = ' + token.substring(0, 10) + '...') - console.log('[ERROR] httpInterface -> Gov -> getRepoInfo -> token ends with = ' + '...' + token.substring(token.length - 10)) + console.log('[ERROR] httpInterface -> GOV -> Method call produced an error.') + console.log('[ERROR] httpInterface -> GOV -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> GOV -> Params Received = ' + body) let error = { result: 'Fail Because', @@ -1160,332 +1125,8 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE respondWithContent(JSON.stringify(error), httpResponse) } } - - function respondWithDocsObject(docs, error) { - - if (error.message !== undefined) { - docs.placeholder.errorMessage = { - style: 'Error', - text: error.message - } - } - if (error.stack !== undefined) { - docs.placeholder.errorStack = { - style: 'Javascript', - text: error.stack - } - } - if (error.code !== undefined) { - docs.placeholder.errorCode = { - style: 'Json', - text: error.code - } - } - - docs.placeholder.errorDetails = { - style: 'Json', - text: JSON.stringify(error, undefined, 4) - } - - let customResponse = { - result: global.CUSTOM_FAIL_RESPONSE.result, - docs: docs - } - - respondWithContent(JSON.stringify(customResponse), httpResponse) - - } - - function mergeGithubPullRequests() { - try { - let commitMessage = unescape(requestParameters[3]) - - /* Unsavping # */ - for (let i = 0; i < 10; i++) { - commitMessage = commitMessage.replace('_SLASH_', '/') - commitMessage = commitMessage.replace('_HASHTAG_', '#') - } - - const GITHUB_API_WAITING_TIME = 250 - const repository = 'Superalgos' - const username = unescape(requestParameters[4]) - const token = unescape(requestParameters[5]) - - let error - let githubPrListArray = [] - - processOpenPullRequests() - - async function processOpenPullRequests() { - await doGithub() - if (error !== undefined) { - - let docs = { - project: 'Governance', - category: 'Topic', - type: 'Gov Error - Merge Pull Requests', - anchor: undefined, - placeholder: {} - } - - respondWithDocsObject(docs, error) - return - } - - respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse) - } - - async function doGithub() { - try { - const repo = repository - const owner = 'Superalgos' - const { Octokit } = require("@octokit/rest") - const octokit = new Octokit({ - auth: token, - userAgent: 'Superalgos Beta 11' - }) - await getPrList() - await mergePrs() - - async function getPrList() { - - const per_page = 100 // Max - let page = 0 - let lastPage = false - - while (lastPage === false) { - try { - page++ - - await sleep(GITHUB_API_WAITING_TIME) - let listResponse = await octokit.rest.pulls.list({ - owner: owner, - repo: repo, - state: 'open', - head: 'develop', - base: 'develop', - sort: undefined, - direction: undefined, - per_page: per_page, - page: page - }); - - if (listResponse.data.length < 100) { - lastPage = true - } - console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList -> Receiving Page = ' + page) - for (let i = 0; i < listResponse.data.length; i++) { - let pullRequest = listResponse.data[i] - console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList -> Pull Request "' + pullRequest.title + '" found and added to the list to validate. ') - githubPrListArray.push(pullRequest) - } - console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList -> Received = ' + listResponse.data.length) - - } catch (err) { - console.log(err) - - if (err.stack.indexOf('last page') >= 0) { - return - } else { - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->Method call produced an error.') - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->err.stack = ' + err.stack) - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->repository = ' + repository) - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->username = ' + username) - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->token starts with = ' + token.substring(0, 10) + '...') - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> getPrList ->token ends with = ' + '...' + token.substring(token.length - 10)) - error = err - } - } - } - } - - async function mergePrs() { - /* - In order to automatically merge a PRs we will run several validations first. - We want to automate specifically the merging of Profile File changes at the - Governance System done by the same Github user name that matches the profile - changed. We will also not do the merge if there are more than one file at the - PR. - - We will go through the list of open PRs and run the validations at each one of them. - */ - console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Ready to Validate ' + githubPrListArray.length + ' pull requests. ') - - for (let i = 0; i < githubPrListArray.length; i++) { - let pullRequest = githubPrListArray[i] - /* - Lets get the files changed at this Pull Request. - */ - await sleep(GITHUB_API_WAITING_TIME) - let listResponse = await octokit.rest.pulls.listFiles({ - owner: owner, - repo: repo, - pull_number: pullRequest.number - }); - /* - Validation #1: If the PR has more than one file, then we will not automatically - merge it. - */ - if (listResponse.data.length !== 1) { - console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Validation #1 Failed -> Pull Request "' + pullRequest.title + '" not merged because it contains more than 1 file. -> fileCount = ' + listResponse.data.length) - /* - We will close PRs that contains any User Profile file together with other files in the same Pull Request. - This will avoid manual merges to include User Profile files. - */ - for (j = 0; j < listResponse.data.length; j++) { - let pullRequestFile = listResponse.data[j] - let fileContentUrl = pullRequestFile.raw_url - if (fileContentUrl.indexOf('Governance/Plugins/User-Profiles') >= 0) { - await sleep(GITHUB_API_WAITING_TIME) - await octokit.rest.issues.createComment({ - owner: owner, - repo: repo, - issue_number: pullRequest.number, - body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that a User Profile file... \n\n' + fileContentUrl + '\n\n...was submitted together with ' + (listResponse.data.length - 1) + ' other file/s. User Profiles files as per the Governance System rules, must be the only file present at a Pull Request in order to pass all the validations and be automatically merged.' - }); - - await sleep(GITHUB_API_WAITING_TIME) - await octokit.rest.pulls.update({ - owner: owner, - repo: repo, - pull_number: pullRequest.number, - state: 'closed' - }); - break - } - } - continue - } - let pullRequestFile = listResponse.data[0] - /* - Validation #2: File Name must be the same to the Github Username of the PR owner. - */ - let fileContentUrl = pullRequestFile.raw_url - - if (fileContentUrl.indexOf('Governance/Plugins/User-Profiles') < 0) { - /* - If it is not a user profile then there is no need to auto merge. - */ - console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Validation #2 Failed -> Pull Request "' + pullRequest.title + '" not merged because the file modified at the Pull Request is not a User Profile file. -> fileContentUrl = ' + fileContentUrl) - continue - } - - let splittedURL = fileContentUrl.split('/') - let fileName = splittedURL[splittedURL.length - 1] - let splittedFileName = fileName.split('.') - fileName = splittedFileName[0] - let githubUsername = pullRequest.user.login - - if (githubUsername !== fileName) { - console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Validation #2 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the File Name. -> Github Username = ' + githubUsername + '-> fileName = ' + fileName) - - await sleep(GITHUB_API_WAITING_TIME) - await octokit.rest.issues.createComment({ - owner: owner, - repo: repo, - issue_number: pullRequest.number, - body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that the Github User "' + githubUsername + '" who submitted it, is not equal to the name of the User Profile Plugin File.\n\n File Name = "' + fileName + '"' - }); - - await sleep(GITHUB_API_WAITING_TIME) - await octokit.rest.pulls.update({ - owner: owner, - repo: repo, - pull_number: pullRequest.number, - state: 'closed' - }); - continue - } - await sleep(GITHUB_API_WAITING_TIME) - let fileContent = await fetchAPIDataFile(fileContentUrl) - - let userProfile = JSON.parse(fileContent) - /* - Validation #3: The file changed at the PR is a User Profile. - */ - if (userProfile.type !== 'User Profile') { - console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Validation #3 Failed -> Pull Request "' + pullRequest.title + '" not merged because the file modified is not a User Profile. -> Type = ' + userProfile.type) - continue - } - /* - Validation #4: The message signed at the config is not the Github Username. - */ - let config = JSON.parse(userProfile.config) - let messageSigned = config.signature.message - if (messageSigned !== githubUsername) { - console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Validation #4 Failed -> Pull Request "' + pullRequest.title + '" not merged because the Github Username is not equal to the Message Signed at the User Profile. -> Github Username = ' + githubUsername + '-> messageSigned = ' + messageSigned) - - await sleep(GITHUB_API_WAITING_TIME) - await octokit.rest.issues.createComment({ - owner: owner, - repo: repo, - issue_number: pullRequest.number, - body: 'This Pull Request could not be automatically merged and was closed by the Superalgos Governance System because it was detected that the Github User "' + githubUsername + '" who submitted it, is not equal to the Message Signed at the User Profile.\n\n Message Signed = "' + messageSigned + '"' - }); - - await sleep(GITHUB_API_WAITING_TIME) - await octokit.rest.pulls.update({ - owner: owner, - repo: repo, - pull_number: pullRequest.number, - state: 'closed' - }); - continue - } - /* - All validations passed, we will proceed an merge this Pull Request. - */ - await sleep(GITHUB_API_WAITING_TIME) - let mergeResponse = await octokit.rest.pulls.merge({ - owner: owner, - repo: repo, - pull_number: pullRequest.number, - commit_title: 'Changes in User Profile done by Profile Owner ' + githubUsername + ' automatically merged by Superalgos.' - }); - - if (mergeResponse.data.merged !== true) { - console.log('[WARN] httpInterface -> Gov -> mergeGithubPullRequests -> Merge Failed -> Pull Request "' + pullRequest.title + '" not merged because Github could not merge it. -> mergeResponse.message = ' + mergeResponse.data.message) - continue - } else { - console.log('[INFO] httpInterface -> Gov -> mergeGithubPullRequests -> Merge Succed -> Pull Request "' + pullRequest.title + '" successfully merged. -> mergeResponse.message = ' + mergeResponse.data.message) - await sleep(GITHUB_API_WAITING_TIME) - await octokit.rest.issues.createComment({ - owner: owner, - repo: repo, - issue_number: pullRequest.number, - body: 'This Pull Request was automatically merged by the Superalgos Governance System because it was detected that the Github User " ' + githubUsername + '" who submitted it, modified its own User Profile Plugin File and nothning else but that file. All validations were successfull.' - }); - continue - } - } - } - } catch (err) { - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> doGithub -> err.stack = ' + err.stack) - } - } - - } catch (err) { - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> Method call produced an error.') - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> err.stack = ' + err.stack) - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> repository = ' + repository) - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> username = ' + username) - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> token starts with = ' + token.substring(0, 10) + '...') - console.log('[ERROR] httpInterface -> Gov -> mergeGithubPullRequests -> token ends with = ' + '...' + token.substring(token.length - 10)) - - let error = { - result: 'Fail Because', - message: err.message, - stack: err.stack - } - respondWithContent(JSON.stringify(error), httpResponse) - } - } - - function payToContributors() { - - } - } break + } case 'LegacyPlotter.js': { @@ -1701,30 +1342,70 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE case 'PluginFileNames': { - let project = unescape(requestParameters[2]) - let pluginType = unescape(requestParameters[3]) + processRequest() - const fs = require('fs') - let folder = global.env.PATH_TO_PROJECTS + '/' + project + '/Plugins/' + pluginType + async function processRequest(body) { + try { + let project = unescape(requestParameters[2]) + let folder = unescape(requestParameters[3]) - fs.readdir(folder, (err, files) => { - if (files === undefined) { - files = [] + let response = await CL.projects.foundations.utilities.plugins.getPluginFileNames( + project, + folder + ) + + respondWithContent(JSON.stringify(response), httpResponse) + + } catch (err) { + console.log('[ERROR] httpInterface -> PluginFileNames -> Method call produced an error.') + console.log('[ERROR] httpInterface -> PluginFileNames -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> PluginFileNames -> Params Received = ' + body) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) } - respondWithContent(JSON.stringify(files), httpResponse) - }) + } + break } - break case 'LoadPlugin': + { - let project = unescape(requestParameters[2]) - let pluginType = unescape(requestParameters[3]) - let fileName = unescape(requestParameters[4]) - let filePath = global.env.PATH_TO_PROJECTS + '/' + project + '/Plugins/' + pluginType + '/' + fileName - respondWithFile(filePath, httpResponse) + processRequest() + + async function processRequest(body) { + try { + let project = unescape(requestParameters[2]) + let folder = unescape(requestParameters[3]) + let fileName = unescape(requestParameters[4]) + + let response = await CL.projects.foundations.utilities.plugins.getPluginFileContent( + project, + folder, + fileName + ) + + respondWithContent(response, httpResponse) + + } catch (err) { + console.log('[ERROR] httpInterface -> LoadPlugin -> Method call produced an error.') + console.log('[ERROR] httpInterface -> LoadPlugin -> err.stack = ' + err.stack) + console.log('[ERROR] httpInterface -> LoadPlugin -> Params Received = ' + body) + + let error = { + result: 'Fail Because', + message: err.message, + stack: err.stack + } + respondWithContent(JSON.stringify(error), httpResponse) + } + } + break } - break case 'SavePlugin': getBody(processRequest) @@ -1831,7 +1512,7 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE function onDirRead(err, fileList) { if (err) { // This happens the first time you run the software. - respondWithContent(JSON.stringify(global.DEFAULT_FAIL_RESPONSE), httpResponse) + respondWithContent(JSON.stringify(allWorkspaces), httpResponse) return } else { let updatedFileList = [] @@ -2431,44 +2112,4 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE return files.reduce((a, f) => a.concat(f), []); } } - - function sleep(ms) { - return new Promise((resolve) => { - setTimeout(resolve, ms) - }) - } - - async function fetchAPIDataFile(url) { - let promise = new Promise((resolve, reject) => { - - const fetch = require('node-fetch') - /* - This is how we call the API. - */ - fetch(url) - .then((response) => { - - if (response.status !== 200) { - console.log('[ERROR] fetchAPIData -> then -> url =' + url) - reject() - return - } - getResponseBody() - - function getResponseBody() { - response.text().then(body => { - resolve(body) - }) - } - }) - .catch(err => { - console.log('[ERROR] fetchAPIData -> url =' + url) - reject() - }) - - } - ) - - return promise - } } diff --git a/Client/package-lock.json b/Client/package-lock.json index e2b38d9c7..085910bef 100644 --- a/Client/package-lock.json +++ b/Client/package-lock.json @@ -1,4182 +1,8 @@ { "name": "client", "version": "0.0.6", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "client", - "version": "0.0.6", - "dependencies": { - "@octokit/rest": "^18.9.0", - "ccxt": "^1.51.98", - "child_process": "^1.0.2", - "lookpath": "^1.2.2", - "open": "^6.4.0", - "rimraf": "^3.0.2", - "simple-git": "^2.42.0", - "web3": "^1.5.0", - "ws": "^7.4.6" - } - }, - "node_modules/@ethereumjs/common": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.4.0.tgz", - "integrity": "sha512-UdkhFWzWcJCZVsj1O/H8/oqj/0RVYjLc1OhPjBrQdALAkQHpCp8xXI4WLnuGTADqTdJZww0NtgwG+TRPkXt27w==", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.0" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.0.tgz", - "integrity": "sha512-yTwEj2lVzSMgE6Hjw9Oa1DZks/nKTWM8Wn4ykDNapBPua2f4nXO3qKnni86O6lgDj5fVNRqbDsD0yy7/XNGDEA==", - "dependencies": { - "@ethereumjs/common": "^2.4.0", - "ethereumjs-util": "^7.1.0" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz", - "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==", - "dependencies": { - "@ethersproject/address": "^5.0.4", - "@ethersproject/bignumber": "^5.0.7", - "@ethersproject/bytes": "^5.0.4", - "@ethersproject/constants": "^5.0.4", - "@ethersproject/hash": "^5.0.4", - "@ethersproject/keccak256": "^5.0.3", - "@ethersproject/logger": "^5.0.5", - "@ethersproject/properties": "^5.0.3", - "@ethersproject/strings": "^5.0.4" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz", - "integrity": "sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/networks": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/transactions": "^5.4.0", - "@ethersproject/web": "^5.4.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz", - "integrity": "sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz", - "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/rlp": "^5.4.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz", - "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.4.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.1.tgz", - "integrity": "sha512-fJhdxqoQNuDOk6epfM7yD6J8Pol4NUCy1vkaGAkuujZm0+lNow//MKu1hLhRiYV4BsOHyBv5/lsTjF+7hWwhJg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "bn.js": "^4.11.9" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz", - "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz", - "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.4.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", - "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.4.0", - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", - "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "js-sha3": "0.5.7" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.0.tgz", - "integrity": "sha512-xYdWGGQ9P2cxBayt64d8LC8aPFJk6yWCawQi/4eJ4+oJdMMjEBMrIcIMZ9AxhwpPVmnBPrsB10PcXGmGAqgUEQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.2.tgz", - "integrity": "sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.0.tgz", - "integrity": "sha512-7jczalGVRAJ+XSRvNA6D5sAwT4gavLq3OXPuV/74o3Rd2wuzSL035IMpIMgei4CYyBdialJMrTqkOnzccLHn4A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", - "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", - "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "bn.js": "^4.11.9", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", - "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/logger": "^5.4.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz", - "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.4.0", - "@ethersproject/bignumber": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/constants": "^5.4.0", - "@ethersproject/keccak256": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/rlp": "^5.4.0", - "@ethersproject/signing-key": "^5.4.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", - "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.4.0", - "@ethersproject/bytes": "^5.4.0", - "@ethersproject/logger": "^5.4.0", - "@ethersproject/properties": "^5.4.0", - "@ethersproject/strings": "^5.4.0" - } - }, - "node_modules/@kwsites/file-exists": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", - "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", - "dependencies": { - "debug": "^4.1.1" - } - }, - "node_modules/@kwsites/file-exists/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@kwsites/file-exists/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@kwsites/promise-deferred": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", - "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" - }, - "node_modules/@octokit/auth-token": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.5.tgz", - "integrity": "sha512-BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==", - "dependencies": { - "@octokit/types": "^6.0.3" - } - }, - "node_modules/@octokit/core": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", - "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", - "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.0", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", - "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/graphql": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.6.4.tgz", - "integrity": "sha512-SWTdXsVheRmlotWNjKzPOb6Js6tjSqA2a8z9+glDJng0Aqjzti8MEWOtuT8ZSu6wHnci7LZNuarE87+WJBG4vg==", - "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-9.4.0.tgz", - "integrity": "sha512-rKRkXikOJgDNImPl49IJuECLVXjj+t4qOXHhl8SBjMQCGGp1w4m5Ud/0kfdUx+zCpTvBN8vaOUDF4nnboZoOtQ==" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.7.0.tgz", - "integrity": "sha512-+zARyncLjt9b0FjqPAbJo4ss7HOlBi1nprq+cPlw5vu2+qjy7WvlXhtXFdRHQbSL1Pt+bfAKaLADEkkvg8sP8w==", - "dependencies": { - "@octokit/types": "^6.0.1" - } - }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.2.tgz", - "integrity": "sha512-oTJSNAmBqyDR41uSMunLQKMX0jmEXbwD1fpz8FG27lScV3RhtGfBa1/BBLym+PxcC16IBlF7KH9vP1BUYxA+Eg==" - }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.7.0.tgz", - "integrity": "sha512-G7sgccWRYQMwcHJXkDY/sDxbXeKiZkFQqUtzBCwmrzCNj2GQf3VygQ4T/BFL2crLVpIbenkE/c0ErhYOte2MPw==", - "dependencies": { - "@octokit/types": "^6.24.0", - "deprecation": "^2.3.1" - }, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/request": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.0.tgz", - "integrity": "sha512-4cPp/N+NqmaGQwbh3vUsYqokQIzt7VjsgTYVXiwpUP2pxd5YiZB2XuTedbb0SPtv9XS7nzAKjAuQxmY8/aZkiA==", - "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "dependencies": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "node_modules/@octokit/rest": { - "version": "18.9.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.9.0.tgz", - "integrity": "sha512-VrmrE8gjpuOoDAGjrQq2j9ZhOE6LxaqxaQg0yMrrEnnQZy2ZcAnr5qbVfKsMF0up/48PRV/VFS/2GSMhA7nTdA==", - "dependencies": { - "@octokit/core": "^3.5.0", - "@octokit/plugin-paginate-rest": "^2.6.2", - "@octokit/plugin-request-log": "^1.0.2", - "@octokit/plugin-rest-endpoint-methods": "5.7.0" - } - }, - "node_modules/@octokit/types": { - "version": "6.24.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.24.0.tgz", - "integrity": "sha512-MfEimJeQ8AV1T2nI5kOfHqsqPHaAnG0Dw3MVoHSEsEq6iLKx2N91o+k2uAgXhPYeSE76LVBqjgTShnFFgNwe0A==", - "dependencies": { - "@octokit/openapi-types": "^9.4.0" - } - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "12.20.19", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.19.tgz", - "integrity": "sha512-niAuZrwrjKck4+XhoCw6AAVQBENHftpXw9F4ryk66fTgYaKQ53R4FI7c9vUGGw5vQis1HKBHDR1gcYI/Bq1xvw==" - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", - "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" - }, - "node_modules/bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", - "engines": { - "node": "*" - } - }, - "node_modules/blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-to-arraybuffer": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", - "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "node_modules/bufferutil": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", - "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.2.0" - } - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/ccxt": { - "version": "1.51.98", - "resolved": "https://registry.npmjs.org/ccxt/-/ccxt-1.51.98.tgz", - "integrity": "sha512-3sgRDrOnD6IE06yGr+F0YcQh22eNyKiZ3nQP+QdZt8W/zUUsl4CaHT5I7Zqqz7ObKdv4YcdMCv8j9khTpBNz4w==", - "engines": { - "node": ">=7.6.0" - } - }, - "node_modules/child_process": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", - "integrity": "sha1-sffn/HPSXn/R1FWtyU4UODAYK1o=" - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/cids": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz", - "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.6.0", - "multicodec": "^1.0.0", - "multihashes": "~0.4.15" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/cids/node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-hash": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz", - "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==", - "dependencies": { - "cids": "^0.7.1", - "multicodec": "^0.5.5", - "multihashes": "^0.4.15" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/crc-32": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", - "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", - "dependencies": { - "exit-on-epipe": "~1.0.1", - "printj": "~1.1.0" - }, - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/es-abstract": { - "version": "1.18.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", - "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.3", - "is-string": "^1.0.6", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eth-ens-namehash": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", - "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", - "dependencies": { - "idna-uts46-hx": "^2.3.1", - "js-sha3": "^0.5.7" - } - }, - "node_modules/eth-lib": { - "version": "0.1.29", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz", - "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "nano-json-stream-parser": "^0.1.2", - "servify": "^0.1.12", - "ws": "^3.0.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/eth-lib/node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/ethereum-bloom-filters": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz", - "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==", - "dependencies": { - "js-sha3": "^0.8.0" - } - }, - "node_modules/ethereum-bloom-filters/node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereumjs-util": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.0.tgz", - "integrity": "sha512-kR+vhu++mUDARrsMMhsjjzPduRVAeundLGXucGRHF3B4oEltOUspfgCVco4kckucj3FMlLaZHUl9n7/kdmr6Tw==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethereumjs-util/node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-util/node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" - }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/exit-on-epipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", - "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", - "engines": { - "node": "*" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "dependencies": { - "has-symbol-support-x": "^1.4.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/http-https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", - "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idna-uts46-hx": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", - "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", - "dependencies": { - "punycode": "2.1.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/idna-uts46-hx/node_modules/punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "engines": { - "node": ">=6" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" - }, - "node_modules/is-generator-function": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", - "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", - "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "dependencies": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/keccak": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", - "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/lookpath": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/lookpath/-/lookpath-1.2.2.tgz", - "integrity": "sha512-k2Gmn8iV6qdME3ztZC2spubmQISimFOPLuQKiPaLcVdRz0IpdxrNClVepMlyTJlhodm/zG/VfbkWERm3kUIh+Q==", - "bin": { - "lookpath": "bin/lookpath.js" - }, - "engines": { - "npm": ">=6.13.4" - } - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-promise": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", - "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", - "deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.", - "dependencies": { - "mkdirp": "*" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mock-fs": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz", - "integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw==" - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/multibase": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.6.1.tgz", - "integrity": "sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw==", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/multicodec": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-0.5.7.tgz", - "integrity": "sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA==", - "deprecated": "stable api reached", - "dependencies": { - "varint": "^5.0.0" - } - }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/multihashes/node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/nano-json-stream-parser": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", - "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/oboe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", - "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", - "dependencies": { - "http-https": "^1.0.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "engines": { - "node": ">=4" - } - }, - "node_modules/printj": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", - "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", - "bin": { - "printj": "bin/printj.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "dependencies": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rlp": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", - "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", - "dependencies": { - "bn.js": "^4.11.1" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/servify": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", - "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", - "dependencies": { - "body-parser": "^1.16.0", - "cors": "^2.8.1", - "express": "^4.14.0", - "request": "^2.79.0", - "xhr": "^2.3.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dependencies": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-git": { - "version": "2.42.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.42.0.tgz", - "integrity": "sha512-illpUX0bcrdB3AyvBGLz0ToRVP7lXNJOGVybGVuVk7PpivPNK5YKJx2aagKdKbveaMtt0DCLK4/jfjDb6b2M2g==", - "dependencies": { - "@kwsites/file-exists": "^1.1.1", - "@kwsites/promise-deferred": "^1.1.1", - "debug": "^4.3.1" - } - }, - "node_modules/simple-git/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/simple-git/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/swarm-js": { - "version": "0.1.40", - "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", - "integrity": "sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA==", - "dependencies": { - "bluebird": "^3.5.0", - "buffer": "^5.0.5", - "eth-lib": "^0.1.26", - "fs-extra": "^4.0.2", - "got": "^7.1.0", - "mime-types": "^2.1.16", - "mkdirp-promise": "^5.0.1", - "mock-fs": "^4.1.0", - "setimmediate": "^1.0.5", - "tar": "^4.0.2", - "xhr-request": "^1.0.1" - } - }, - "node_modules/swarm-js/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "dependencies": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/swarm-js/node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/swarm-js/node_modules/url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "dependencies": { - "prepend-http": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tar": { - "version": "4.4.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.15.tgz", - "integrity": "sha512-ItbufpujXkry7bHH9NpQyTXPbJ72iTlXgkBAYsAjDXk3Ds8t/3NfO5P4xZGy7u+sYuQUbimgzswX4uQIEeNVOA==", - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-set-query": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", - "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" - }, - "node_modules/url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.5.tgz", - "integrity": "sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.2.0" - } - }, - "node_modules/utf8": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", - "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" - }, - "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/web3": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.5.0.tgz", - "integrity": "sha512-p6mOU+t11tV5Z0W9ISO2ReZlbB1ICp755ogl3OXOWZ+/oWy12wwnIva+z+ypsZc3P8gaoGaTvEwSfXM9NF164w==", - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.5.0", - "web3-core": "1.5.0", - "web3-eth": "1.5.0", - "web3-eth-personal": "1.5.0", - "web3-net": "1.5.0", - "web3-shh": "1.5.0", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-bzz": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.5.0.tgz", - "integrity": "sha512-IqlecWpwTMO/O5qa0XZZubQh4GwAtO/CR+e2FQ/7oB5eXQyre3DZ/MYu8s5HCLxCR33Fcqda9q2dbNtm1wSQYw==", - "hasInstallScript": true, - "dependencies": { - "@types/node": "^12.12.6", - "got": "9.6.0", - "swarm-js": "^0.1.40" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.5.0.tgz", - "integrity": "sha512-1o/etaPSK8tFOWTA6df3t9J6ez4epeyzlNmyh/gx8uHasfa16XLKD8//A9T+O/TmvyQAaA4hWAsQcvlRcuaZ8Q==", - "dependencies": { - "@types/bn.js": "^4.11.5", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.5.0", - "web3-core-method": "1.5.0", - "web3-core-requestmanager": "1.5.0", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-helpers": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.5.0.tgz", - "integrity": "sha512-7s5SrJbG5O0C0Oi9mqKLYchco72djZhk59B7kTla5vUorAxMc99SY7k9BoDgwbFl2dlZon2GtFUEW2RXUNkb1g==", - "dependencies": { - "web3-eth-iban": "1.5.0", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-method": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.5.0.tgz", - "integrity": "sha512-izPhpjbn9jVBjMeFcsU7a5+/nqni9hS5oU+d00HJGTVbp8KV6zplhYw4GjkRqyy6OQzooO8Gx2MMUyRdv5x1wg==", - "dependencies": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "web3-core-helpers": "1.5.0", - "web3-core-promievent": "1.5.0", - "web3-core-subscriptions": "1.5.0", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-promievent": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.5.0.tgz", - "integrity": "sha512-7GkbOIMtcp1qN8LRMMmwIhulzEldT+3Mu7ii2WgAcFFKT1yzUl6Gmycf8mmoEKpAuADAQ9Qeyk0PskTR6rTYlQ==", - "dependencies": { - "eventemitter3": "4.0.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-requestmanager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.5.0.tgz", - "integrity": "sha512-Sr5T2JuXOAsINJ2tf7Rgi2a+Dy2suBDKT8eMc1pcspPmaBhvTKOQfM9XdsO4yjJKYw6tt/Tagw4GKZm4IOx7mw==", - "dependencies": { - "util": "^0.12.0", - "web3-core-helpers": "1.5.0", - "web3-providers-http": "1.5.0", - "web3-providers-ipc": "1.5.0", - "web3-providers-ws": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-core-subscriptions": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.5.0.tgz", - "integrity": "sha512-dx9P1mZvJkQRiYpSo9SvFhYNzy5E9GHeLOc3uqxPaDxKU7Cu9fJnFHo/P6+wfD6ZhGIP23ZLK/uyor5UpdTqDQ==", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.5.0.tgz", - "integrity": "sha512-31ni3YliTDYLKuWt8naitZ4Ru86whZlqvz6kFzCaBaCR/EumzA9ejzNbcX9okio9zUtKSHH37Bk0+WogfU9Jqg==", - "dependencies": { - "web3-core": "1.5.0", - "web3-core-helpers": "1.5.0", - "web3-core-method": "1.5.0", - "web3-core-subscriptions": "1.5.0", - "web3-eth-abi": "1.5.0", - "web3-eth-accounts": "1.5.0", - "web3-eth-contract": "1.5.0", - "web3-eth-ens": "1.5.0", - "web3-eth-iban": "1.5.0", - "web3-eth-personal": "1.5.0", - "web3-net": "1.5.0", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-abi": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.5.0.tgz", - "integrity": "sha512-rfT/SvfZY9+SNJRzTHxLFaebQRBhS67tGqUqLxlyy6EsAcEmIs/g4mAUH5atYwPE9bOQeiVoLKLbwJEBIcw86w==", - "dependencies": { - "@ethersproject/abi": "5.0.7", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.5.0.tgz", - "integrity": "sha512-tqvF2bKECaS6jDux8h1dkdsrfb5SHIVVA6hu2lJmZNlTBqFIq2A8rfOkqcanie6Vh5n5U7Dnc2LUoN9rxgaSSg==", - "dependencies": { - "@ethereumjs/common": "^2.3.0", - "@ethereumjs/tx": "^3.2.1", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.8", - "ethereumjs-util": "^7.0.10", - "scrypt-js": "^3.0.1", - "uuid": "3.3.2", - "web3-core": "1.5.0", - "web3-core-helpers": "1.5.0", - "web3-core-method": "1.5.0", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-accounts/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/web3-eth-accounts/node_modules/uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/web3-eth-contract": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.5.0.tgz", - "integrity": "sha512-v4laiJRzdcoDwvqaMCzJH1BUosbTVsd01Qp+9v05Q94KycjkdeahPRXX6PEcUNW/ZF8N006iExUweGjajTZnTA==", - "dependencies": { - "@types/bn.js": "^4.11.5", - "web3-core": "1.5.0", - "web3-core-helpers": "1.5.0", - "web3-core-method": "1.5.0", - "web3-core-promievent": "1.5.0", - "web3-core-subscriptions": "1.5.0", - "web3-eth-abi": "1.5.0", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-ens": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.5.0.tgz", - "integrity": "sha512-NiaGfOnsCqP+3hOCeP3Q9IrlV/1ZCDiv8VmN1yF5Ya6n6YeO4TJU9MKP8i5038RFETjLIfGtXr5fthbsob30hA==", - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.5.0", - "web3-core-helpers": "1.5.0", - "web3-core-promievent": "1.5.0", - "web3-eth-abi": "1.5.0", - "web3-eth-contract": "1.5.0", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-iban": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.5.0.tgz", - "integrity": "sha512-cFfiPA8xs4lemMJjDb9KfXzPvs6rBrRl8y4rgvh/JWlZZgKolzo7KLXq4NR3oFd/C81s0Lslvz2st1EREp5CNA==", - "dependencies": { - "bn.js": "^4.11.9", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-eth-personal": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.5.0.tgz", - "integrity": "sha512-FYBrzMS6q/df8ud1kAN1p6lqdP/pd0szogcuyrVyi++bFQiovnR+QosudFsbn/aAZPDHOEh0UV4P3KVKbLqw9g==", - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.5.0", - "web3-core-helpers": "1.5.0", - "web3-core-method": "1.5.0", - "web3-net": "1.5.0", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-net": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.5.0.tgz", - "integrity": "sha512-oGgEtO2fRtJjAp0K1/fvH247MeeDemFL+5tF+PxII9b/gBxnVe+MzP+oNLr4dTrweromjv34tioR3kUgsqwCWg==", - "dependencies": { - "web3-core": "1.5.0", - "web3-core-method": "1.5.0", - "web3-utils": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-http": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.5.0.tgz", - "integrity": "sha512-y1RuxsCGrWdsIUyuZBEN+3F8trl3bDZNajwLS2KYBGlB99sWYZHPmvbAsBpaW1d/I12W0fQiWOVzp63L7KPTow==", - "dependencies": { - "web3-core-helpers": "1.5.0", - "xhr2-cookies": "1.1.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ipc": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.5.0.tgz", - "integrity": "sha512-Hda9wlOaIJC9/qMOVkayK+fbBHDZBmPcoL7TfjQX7hrtZn8V3+gR27ciyRXmuW7QD3hDg7CJfe5uRK8brh3nSA==", - "dependencies": { - "oboe": "2.1.5", - "web3-core-helpers": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-providers-ws": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.5.0.tgz", - "integrity": "sha512-TCwOhu5WbuQCSUoar+U+7N1NqI4A6MlcdZqsC7AhTogYYtnXOPRWfiHMZtUP7Qw50GKJ37FIH3YDItcHTNHd6A==", - "dependencies": { - "eventemitter3": "4.0.4", - "web3-core-helpers": "1.5.0", - "websocket": "^1.0.32" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-shh": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.5.0.tgz", - "integrity": "sha512-TwpcxXNh+fBnyRcCPPqVqaCB4IjSpVL2/5OR2WwCnZwejs1ife+pej8DYVZWm0m1tSzIDRTdNbsJf/DN0cAxYQ==", - "hasInstallScript": true, - "dependencies": { - "web3-core": "1.5.0", - "web3-core-method": "1.5.0", - "web3-core-subscriptions": "1.5.0", - "web3-net": "1.5.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.5.0.tgz", - "integrity": "sha512-hNyw7Oxi6TM3ivXmv4hK5Cvyi9ML3UoKtcCYvLF9woPWh5v2dwCCVO1U3Iq5HHK7Dqq28t1d4CxWHqUfOfAkgg==", - "dependencies": { - "bn.js": "^4.11.9", - "eth-lib": "0.2.8", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "utf8": "3.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/web3-utils/node_modules/eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", - "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr-request": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", - "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", - "dependencies": { - "buffer-to-arraybuffer": "^0.0.5", - "object-assign": "^4.1.1", - "query-string": "^5.0.1", - "simple-get": "^2.7.0", - "timed-out": "^4.0.1", - "url-set-query": "^1.0.0", - "xhr": "^2.0.4" - } - }, - "node_modules/xhr-request-promise": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", - "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", - "dependencies": { - "xhr-request": "^1.1.0" - } - }, - "node_modules/xhr2-cookies": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", - "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", - "dependencies": { - "cookiejar": "^2.1.1" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - }, "dependencies": { "@ethereumjs/common": { "version": "2.4.0", @@ -4258,6 +84,15 @@ "@ethersproject/bytes": "^5.4.0" } }, + "@ethersproject/basex": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.4.0.tgz", + "integrity": "sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/properties": "^5.4.0" + } + }, "@ethersproject/bignumber": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.1.tgz", @@ -4284,6 +119,41 @@ "@ethersproject/bignumber": "^5.4.0" } }, + "@ethersproject/contracts": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.4.1.tgz", + "integrity": "sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w==", + "requires": { + "@ethersproject/abi": "^5.4.0", + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/transactions": "^5.4.0" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.4.0.tgz", + "integrity": "sha512-9gU2H+/yK1j2eVMdzm6xvHSnMxk8waIHQGYCZg5uvAyH0rsAzxkModzBSpbAkAuhKFEovC2S9hM4nPuLym8IZw==", + "requires": { + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/hash": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + } + } + }, "@ethersproject/hash": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz", @@ -4299,6 +169,45 @@ "@ethersproject/strings": "^5.4.0" } }, + "@ethersproject/hdnode": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.4.0.tgz", + "integrity": "sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q==", + "requires": { + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/basex": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/pbkdf2": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/sha2": "^5.4.0", + "@ethersproject/signing-key": "^5.4.0", + "@ethersproject/strings": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/wordlists": "^5.4.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz", + "integrity": "sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ==", + "requires": { + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/hdnode": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/pbkdf2": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/random": "^5.4.0", + "@ethersproject/strings": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, "@ethersproject/keccak256": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz", @@ -4321,6 +230,15 @@ "@ethersproject/logger": "^5.4.0" } }, + "@ethersproject/pbkdf2": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz", + "integrity": "sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/sha2": "^5.4.0" + } + }, "@ethersproject/properties": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.0.tgz", @@ -4329,6 +247,41 @@ "@ethersproject/logger": "^5.4.0" } }, + "@ethersproject/providers": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.4.3.tgz", + "integrity": "sha512-VURwkaWPoUj7jq9NheNDT5Iyy64Qcyf6BOFDwVdHsmLmX/5prNjFrgSX3GHPE4z1BRrVerDxe2yayvXKFm/NNg==", + "requires": { + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/basex": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/hash": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/networks": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/random": "^5.4.0", + "@ethersproject/rlp": "^5.4.0", + "@ethersproject/sha2": "^5.4.0", + "@ethersproject/strings": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/web": "^5.4.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "@ethersproject/random": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.4.0.tgz", + "integrity": "sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, "@ethersproject/rlp": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz", @@ -4338,6 +291,16 @@ "@ethersproject/logger": "^5.4.0" } }, + "@ethersproject/sha2": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.4.0.tgz", + "integrity": "sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "hash.js": "1.1.7" + } + }, "@ethersproject/signing-key": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz", @@ -4351,6 +314,18 @@ "hash.js": "1.1.7" } }, + "@ethersproject/solidity": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.4.0.tgz", + "integrity": "sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ==", + "requires": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/sha2": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + }, "@ethersproject/strings": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz", @@ -4377,6 +352,38 @@ "@ethersproject/signing-key": "^5.4.0" } }, + "@ethersproject/units": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.4.0.tgz", + "integrity": "sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg==", + "requires": { + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/logger": "^5.4.0" + } + }, + "@ethersproject/wallet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.4.0.tgz", + "integrity": "sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ==", + "requires": { + "@ethersproject/abstract-provider": "^5.4.0", + "@ethersproject/abstract-signer": "^5.4.0", + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/hash": "^5.4.0", + "@ethersproject/hdnode": "^5.4.0", + "@ethersproject/json-wallets": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/random": "^5.4.0", + "@ethersproject/signing-key": "^5.4.0", + "@ethersproject/transactions": "^5.4.0", + "@ethersproject/wordlists": "^5.4.0" + } + }, "@ethersproject/web": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz", @@ -4389,6 +396,18 @@ "@ethersproject/strings": "^5.4.0" } }, + "@ethersproject/wordlists": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.4.0.tgz", + "integrity": "sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA==", + "requires": { + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/hash": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + }, "@kwsites/file-exists": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", @@ -4579,6 +598,11 @@ "negotiator": "0.6.2" } }, + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -4670,6 +694,11 @@ "tweetnacl": "^0.14.3" } }, + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, "before-after-hook": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", @@ -5396,6 +1425,61 @@ } } }, + "ethers": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.4.4.tgz", + "integrity": "sha512-zaTs8yaDjfb0Zyj8tT6a+/hEkC+kWAA350MWRp6yP5W7NdGcURRPMOpOU+6GtkfxV9wyJEShWesqhE/TjdqpMA==", + "requires": { + "@ethersproject/abi": "5.4.0", + "@ethersproject/abstract-provider": "5.4.1", + "@ethersproject/abstract-signer": "5.4.1", + "@ethersproject/address": "5.4.0", + "@ethersproject/base64": "5.4.0", + "@ethersproject/basex": "5.4.0", + "@ethersproject/bignumber": "5.4.1", + "@ethersproject/bytes": "5.4.0", + "@ethersproject/constants": "5.4.0", + "@ethersproject/contracts": "5.4.1", + "@ethersproject/hash": "5.4.0", + "@ethersproject/hdnode": "5.4.0", + "@ethersproject/json-wallets": "5.4.0", + "@ethersproject/keccak256": "5.4.0", + "@ethersproject/logger": "5.4.0", + "@ethersproject/networks": "5.4.2", + "@ethersproject/pbkdf2": "5.4.0", + "@ethersproject/properties": "5.4.0", + "@ethersproject/providers": "5.4.3", + "@ethersproject/random": "5.4.0", + "@ethersproject/rlp": "5.4.0", + "@ethersproject/sha2": "5.4.0", + "@ethersproject/signing-key": "5.4.0", + "@ethersproject/solidity": "5.4.0", + "@ethersproject/strings": "5.4.0", + "@ethersproject/transactions": "5.4.0", + "@ethersproject/units": "5.4.0", + "@ethersproject/wallet": "5.4.0", + "@ethersproject/web": "5.4.0", + "@ethersproject/wordlists": "5.4.0" + }, + "dependencies": { + "@ethersproject/abi": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.4.0.tgz", + "integrity": "sha512-9gU2H+/yK1j2eVMdzm6xvHSnMxk8waIHQGYCZg5uvAyH0rsAzxkModzBSpbAkAuhKFEovC2S9hM4nPuLym8IZw==", + "requires": { + "@ethersproject/address": "^5.4.0", + "@ethersproject/bignumber": "^5.4.0", + "@ethersproject/bytes": "^5.4.0", + "@ethersproject/constants": "^5.4.0", + "@ethersproject/hash": "^5.4.0", + "@ethersproject/keccak256": "^5.4.0", + "@ethersproject/logger": "^5.4.0", + "@ethersproject/properties": "^5.4.0", + "@ethersproject/strings": "^5.4.0" + } + } + } + }, "ethjs-unit": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", @@ -6745,21 +2829,6 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, "string.prototype.trimend": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", @@ -6778,6 +2847,21 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, "strip-hex-prefix": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", diff --git a/Client/package.json b/Client/package.json index fe63a2483..cb0a4b543 100644 --- a/Client/package.json +++ b/Client/package.json @@ -10,12 +10,13 @@ "@octokit/rest": "^18.9.0", "ccxt": "^1.51.98", "child_process": "^1.0.2", + "ethers": "^5.4.4", "lookpath": "^1.2.2", + "node-fetch": "2.6.1", "open": "^6.4.0", "rimraf": "^3.0.2", "simple-git": "^2.42.0", "web3": "^1.5.0", - "ws": "^7.4.6", - "node-fetch": "2.6.1" + "ws": "^7.4.6" } } diff --git a/Client/web3Server.js b/Client/web3Server.js index 1062b23a2..a67e1afe7 100644 --- a/Client/web3Server.js +++ b/Client/web3Server.js @@ -8,6 +8,7 @@ exports.newWeb3Server = function newWeb3Server() { getWalletBalances: getWalletBalances, signData: signData, recoverAddress: recoverAddress, + mnemonicToPrivateKey: mnemonicToPrivateKey, initialize: initialize, finalize: finalize, run: run @@ -236,4 +237,29 @@ exports.newWeb3Server = function newWeb3Server() { return { error: 'Could not recover address. ' + err.stack } } } + + async function mnemonicToPrivateKey(mnemonic) { + try { + const ethers = require('ethers') + let wallet = ethers.Wallet.fromMnemonic(mnemonic) + + if (wallet.privateKey !== undefined) { + return { + address: wallet.address, + privateKey: wallet.privateKey, + result: 'Ok' + } + } else { + return { + address: undefined, + privateKey: undefined, + result: 'Fail' + } + } + + } catch (err) { + return { error: 'Could not convert to Private Key. ' + err.stack } + } + + } } \ No newline at end of file diff --git a/INSTALL.md b/INSTALL.md index 9c4a9f967..c657e5bf1 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -16,7 +16,7 @@ Node JS is an open-source server environment required to run Superalgos. **A.** Go to the Node JS [download page](https://nodejs.org/en/download/). -**B.** Download your system’s installer. Select *LTS Recommended for Most Users* and click the big Windows or macOS Installer button. If you are on Linux, the installer is listed further down the page. +**B.** Download your system's installer. Select *LTS Recommended for Most Users* and click the big Windows or macOS Installer button. If you are on Linux, the installer is listed further down the page. **C.** Run the installer with the default configuration — just click Next until Node.JS is fully installed. That's it! You can continue with step 2 (Git Installation). @@ -94,13 +94,13 @@ Before you begin, it is recommended that you set up Chrome/Safari as your defaul **A.** Scroll the page all the way to the top. Find and click the **Fork** button to create your fork/copy of this repository. To fork Superalgos you need a Github account. If you don't have one, go ahead and create it. -**NOTE:** A Fork is required for your contributions to the project. The reason why Superalgos is free and open-source is that the project has set up a Collective Business in which all users may participate. The way to participate is to contribute to make Superalgos better. The project's token is distributed among contributors. +**NOTE:** A Fork is required for your contributions to the project. The reason why Superalgos is free and open-source is that the project has set up a Collective Business in which all users may participate. The way to participate is to contribute to make Superalgos better. The project's token is distributed among contributors. ## 2. Clone Your Fork **A.** Once the fork is created, you will land on the page of your fork. Copy the URL from your browser's address bar. -**B.** In your computer/laptop/server, open a command prompt or terminal. Make sure you are in a directory where you have write permissions (on most systems the terminal will open in your user’s home directory, so you’re good). Clone the git repository using the command: +**B.** In your computer/laptop/server, open a command prompt or terminal. Make sure you are in a directory where you have write permissions (on most systems the terminal will open in your user's home directory, so you're good). Clone the git repository using the command: ``` git clone @@ -116,9 +116,13 @@ This creates the `Superalgos` folder in the current directory, which contains th ## 3. Install Node Dependencies -**A.** After the Superalgos directory has been installed, the final step of installation is to set up the necessary node dependencies. +After the Superalgos directory has been installed, the final step of installation is to set up the necessary node dependencies. In the same command prompt or terminal you just used, type the following: -**B.** In the same command prompt or terminal you just used, type the following command: +``` +cd Superalgos +``` + +That should take you inside the Superalgos folder created by the `git clone` command earlier. Now, run the following command: ``` node setup @@ -233,7 +237,7 @@ We are testing the UI on Google Chrome and Safari on macOS only. It may work on # Running Superalgos on a Headless Linux Server as a Daemon -If you’re running Superalgos on a headless linux server like a Raspberry Pi, you might want to run it as a daemon so it isn’t attached to your current login session. The easiest, most standard way to go about this is probably using `systemd`. Most linux distributions use it as default init system/service manager. +If you're running Superalgos on a headless linux server like a Raspberry Pi, you might want to run it as a daemon so it isn't attached to your current login session. The easiest, most standard way to go about this is probably using `systemd`. Most linux distributions use it as default init system/service manager. ## Using `systemd` @@ -252,7 +256,7 @@ ExecStart=/usr/bin/node run minMemo noBrowser WantedBy=multi-user.target ``` -There is no need to run Superalgos as root so we’re running it as a user. The `minMemo` option assumes you’re running on a small machine like a Raspberry Pi, while `noBrowser` makes sense for running daemonized. +There is no need to run Superalgos as root so we're running it as a user. The `minMemo` option assumes you're running on a small machine like a Raspberry Pi, while `noBrowser` makes sense for running daemonized. Now, as root (or using `sudo`), put the file `superalgos.service` you just created in `/etc/systemd/system/` and issue the command ``` @@ -290,7 +294,7 @@ Once the app finishes loading, an interactive tutorial takes you by the hand and ![welcome-tutorial-00](https://user-images.githubusercontent.com/13994516/107038771-4a6bf100-67bd-11eb-92e0-353525a972a9.gif) - **NOTE:** The tutorial uses Binance or Binance US as the exchange of choice. If you don’t have an account with Binance or Binance US, you will still be able to follow 100% of the tutorial. When you get to the live trading section, keep going even if you don't intend to run the session. You may learn how to work with other exchanges later on. + **NOTE:** The tutorial uses Binance or Binance US as the exchange of choice. If you don't have an account with Binance or Binance US, you will still be able to follow 100% of the tutorial. When you get to the live trading section, keep going even if you don't intend to run the session. You may learn how to work with other exchanges later on. # Docker Deployments diff --git a/Projects/Foundations/CL/Utilities/AsyncFunctions.js b/Projects/Foundations/CL/Utilities/AsyncFunctions.js new file mode 100644 index 000000000..d2cb60141 --- /dev/null +++ b/Projects/Foundations/CL/Utilities/AsyncFunctions.js @@ -0,0 +1,14 @@ +exports.newFoundationsUtilitiesAsyncFunctions = function () { + + let thisObject = { + sleep: sleep + } + + return thisObject + + function sleep(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms) + }) + } +} \ No newline at end of file diff --git a/Projects/Foundations/CL/Utilities/Plugins.js b/Projects/Foundations/CL/Utilities/Plugins.js new file mode 100644 index 000000000..60b18b8eb --- /dev/null +++ b/Projects/Foundations/CL/Utilities/Plugins.js @@ -0,0 +1,49 @@ +exports.newFoundationsUtilitiesPlugins = function () { + + let thisObject = { + getPluginFileNames: getPluginFileNames, + getPluginFileContent: getPluginFileContent + } + + return thisObject + + async function getPluginFileNames(project, folder) { + let promise = new Promise((resolve, reject) => { + + let path = global.env.PATH_TO_PROJECTS + '/' + project + '/Plugins/' + folder + + CL.nodeModules.fs.readdir(path, (err, files) => { + if (err) { + reject() + return + } + if (files === undefined) { + files = [] + } + resolve(files) + }) + + } + ) + return promise + } + + async function getPluginFileContent(project, folder, fileName) { + let promise = new Promise((resolve, reject) => { + + let path = global.env.PATH_TO_PROJECTS + '/' + project + '/Plugins/' + folder + '/' + fileName + + CL.nodeModules.fs.readFile(path, onFileRead) + + function onFileRead(err, file) { + if (err) { + reject() + return + } + resolve(file.toString()) + } + } + ) + return promise + } +} \ No newline at end of file diff --git a/Projects/Foundations/CL/Utilities/WebAccess.js b/Projects/Foundations/CL/Utilities/WebAccess.js new file mode 100644 index 000000000..9e3879cc3 --- /dev/null +++ b/Projects/Foundations/CL/Utilities/WebAccess.js @@ -0,0 +1,40 @@ +exports.newFoundationsUtilitiesWebAccess = function () { + + let thisObject = { + fetchAPIDataFile: fetchAPIDataFile + } + + return thisObject + + async function fetchAPIDataFile(url) { + let promise = new Promise((resolve, reject) => { + + const fetch = CL.nodeModules.nodeFetch + /* + This is how we call the API. + */ + fetch(url) + .then((response) => { + + if (response.status !== 200) { + console.log('[ERROR] fetchAPIData -> then -> url =' + url) + reject() + return + } + getResponseBody() + + function getResponseBody() { + response.text().then(body => { + resolve(body) + }) + } + }) + .catch(err => { + console.log('[ERROR] fetchAPIData -> url =' + url) + reject() + }) + } + ) + return promise + } +} \ No newline at end of file diff --git a/Projects/Foundations/Plugins/Data-Mines/Quasar.json b/Projects/Foundations/Plugins/Data-Mines/Quasar.json index e76ef4f61..d52311529 100644 --- a/Projects/Foundations/Plugins/Data-Mines/Quasar.json +++ b/Projects/Foundations/Plugins/Data-Mines/Quasar.json @@ -26,7 +26,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market Super Trend 14-3", "project": "Foundations", - "id": "46af4a96-1f49-43b4-8f5f-df865190cfb7", + "id": "cf518459-b87d-4cd5-a205-d80012384aaa", "savedPayload": { "position": { "x": 19351.36460208024, @@ -50,13 +50,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "093dcf88-c398-4761-ad81-9dcdcf0e699a" - } + "id": "c28d8faa-938e-4a5e-a49d-c92fd261e250" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 14-3", + "Indicator Bot", + "Foundations", + "db4f70a9-f1e1-4fa9-92af-ddda4ebc4bf9" + ], + [ + "Super Trend 14-3", + "Product Definition", + "Foundations", + "a3380343-254f-448e-b3cb-64778c8267a2" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "724acb7d-19ef-4702-84f5-fe0cd2839963" + ] + ] } } ], "outputDatasetFolders": [], - "id": "0894d325-8b64-449d-9edb-a343ca1144ac", + "id": "7b57e78e-fc9e-4d2b-80a4-63be2d8d9a6c", "savedPayload": { "position": { "x": 19390.18745884562, @@ -89,7 +115,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "8313ab2a-407f-41d4-8b21-6472d0d5eb2f", + "id": "054a2700-0b63-4d67-bdf0-51eee7fbaf30", "savedPayload": { "position": { "x": 19356.656029141755, @@ -113,8 +139,34 @@ "referenceParent": { "type": "Status Report", "name": "New Status Report", - "id": "f92cee91-916c-4220-9c96-22cf12162c13" - } + "id": "45cbac99-e274-4342-bf98-81c843d27e72" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 14-3", + "Indicator Bot", + "Foundations", + "db4f70a9-f1e1-4fa9-92af-ddda4ebc4bf9" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "daec606c-bbc2-44ee-9189-ca66dfaa80b2" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2130d25d-e724-4be5-9636-3deb2862776f" + ] + ] } }, { @@ -122,7 +174,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{ \n\"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "9328aa34-95ab-405e-8c7f-3aba0911ef39", + "id": "95d55b94-24c7-4281-a824-15b0e1efa5ff", "savedPayload": { "position": { "x": 19584.301742672513, @@ -147,7 +199,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } } ], @@ -156,7 +234,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "e0f431a1-8076-4f11-b870-86f5ecf9ef2b", + "id": "3e951580-70d7-44b7-bd9e-8012c1c1930c", "savedPayload": { "position": { "x": 19766.463650277088, @@ -181,12 +259,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "42133616-e48e-48e8-a094-b19682e595fc", + "id": "a10afc73-f30c-4579-bc8d-dd3869876ab6", "savedPayload": { "position": { "x": 19506.656029141755, @@ -213,7 +317,7 @@ "type": "Status Report", "name": "New Status Report", "project": "Foundations", - "id": "f92cee91-916c-4220-9c96-22cf12162c13", + "id": "45cbac99-e274-4342-bf98-81c843d27e72", "savedPayload": { "position": { "x": 19641.14234996696, @@ -240,7 +344,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "be05328e-94ba-4fce-926c-d8c1cf7ffbaa", + "id": "f1f2ffa2-0e66-4595-990f-3b3153d2ef2a", "savedPayload": { "position": { "x": 19718.78806349772, @@ -265,14 +369,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "4606989d-ccec-4c29-bcec-2cff5afbdc6c", + "id": "950995a5-ff15-4090-a113-f781a2b7e0d1", "savedPayload": { "position": { "x": 19718.78806349772, @@ -295,7 +425,7 @@ } } }, - "id": "b16fd2ad-b4f2-440b-99c2-d2143b53e7da", + "id": "9cab6d89-ef94-4747-a051-b97825cd8fc9", "savedPayload": { "position": { "x": 19429.010315610998, @@ -332,7 +462,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily Super Trend 14-3", "project": "Foundations", - "id": "c0b7e29e-886e-4633-af56-4f0cb8e3d266", + "id": "56c08d60-543d-41a4-bcdd-752c9114352b", "savedPayload": { "position": { "x": 19816.878281255034, @@ -356,13 +486,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "be53bcff-84ff-4ec6-93eb-3fedad608e12" - } + "id": "b2c92284-6c9f-4f81-844d-8d1e4196d464" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 14-3", + "Indicator Bot", + "Foundations", + "db4f70a9-f1e1-4fa9-92af-ddda4ebc4bf9" + ], + [ + "Super Trend 14-3", + "Product Definition", + "Foundations", + "a3380343-254f-448e-b3cb-64778c8267a2" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "fd500b6c-2614-4aba-b9da-9e3f23d9b2b7" + ] + ] } } ], "outputDatasetFolders": [], - "id": "71a33c2e-d8c0-4884-823f-cf19537585a8", + "id": "1db69c2f-1d68-4408-8039-3c7fb9ca4083", "savedPayload": { "position": { "x": 19666.878281255034, @@ -395,7 +551,7 @@ "name": "", "config": "{ \n\"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "bf3e4384-65cf-4ce5-8598-f6db8fbe131d", + "id": "eaaf065b-b365-4f52-9bfb-16f8658f0c79", "savedPayload": { "position": { "x": 19940.077612894875, @@ -419,8 +575,34 @@ "referenceParent": { "type": "Status Report", "name": "New Status Report", - "id": "6adf717e-5d08-4199-864b-c781873f6890" - } + "id": "c8ce2a06-0f5e-4a8a-982f-f0371b03da36" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 14-3", + "Indicator Bot", + "Foundations", + "db4f70a9-f1e1-4fa9-92af-ddda4ebc4bf9" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "4829a788-df65-4e50-8b09-3f3d76c435a6" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "3258ca89-7a07-4a57-a541-b7e68c3606bf" + ] + ] } }, { @@ -428,7 +610,7 @@ "name": "", "config": "{ \n\"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "5af22159-a801-4e53-a412-ce4ecbd6db7a", + "id": "da6641a5-b7f7-4283-8dd8-c5a89b7902f3", "savedPayload": { "position": { "x": 20009.829690827457, @@ -453,7 +635,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -461,7 +669,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{ \n\"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "725ee992-51d8-4480-9e9a-cb8724aeb8c2", + "id": "65ebc5c5-44e1-41b7-b9b5-61d7a3072d95", "savedPayload": { "position": { "x": 20056.760030339527, @@ -486,7 +694,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -495,7 +729,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "715a1d96-48b4-4d17-850a-3679f60f219b", + "id": "8204bb90-bef3-4535-bf46-449903c73389", "savedPayload": { "position": { "x": 20076.274762816738, @@ -520,12 +754,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "16c4bf81-2f20-4c1f-be62-e1dc1106919e", + "id": "cdcf5349-2205-42c9-af40-622419a3908a", "savedPayload": { "position": { "x": 19776.685902390367, @@ -552,7 +812,7 @@ "type": "Status Report", "name": "New Status Report", "project": "Foundations", - "id": "6adf717e-5d08-4199-864b-c781873f6890", + "id": "c8ce2a06-0f5e-4a8a-982f-f0371b03da36", "savedPayload": { "position": { "x": 19666.878281255034, @@ -579,7 +839,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "695892d9-18b1-417b-bfa3-a4d0cf2ee185", + "id": "44858d53-49d9-4634-ab6e-2d87845172b5", "savedPayload": { "position": { "x": 19646.7820918227, @@ -604,14 +864,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "5e20a1de-3d30-4249-89b9-f013028f0a16", + "id": "57ec8137-a743-4db8-8359-5e4b5a6d10c3", "savedPayload": { "position": { "x": 19591.878281255034, @@ -634,7 +920,7 @@ } } }, - "id": "d0e2aad1-9f6c-4135-b5e6-7f55c225546e", + "id": "5456d2f5-00d1-4b9d-a424-b509e12a76d8", "savedPayload": { "position": { "x": 19516.878281255034, @@ -670,7 +956,7 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "093dcf88-c398-4761-ad81-9dcdcf0e699a", + "id": "c28d8faa-938e-4a5e-a49d-c92fd261e250", "savedPayload": { "position": { "x": 19979.536086056793, @@ -698,7 +984,7 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "be53bcff-84ff-4ec6-93eb-3fedad608e12", + "id": "b2c92284-6c9f-4f81-844d-8d1e4196d464", "savedPayload": { "position": { "x": 19936.029268673745, @@ -737,7 +1023,7 @@ "name": "New Formula", "code": "record.current.begin", "project": "Foundations", - "id": "c2399c8f-1bca-4028-a925-6d9a352826c0", + "id": "cac7ad6b-d357-44ac-bfc9-004b900f5f6a", "savedPayload": { "position": { "x": 20616.586982824432, @@ -760,7 +1046,7 @@ } } }, - "id": "760fbc6b-1e45-4df2-b26b-01ec0120426b", + "id": "5378c9c0-9a85-4d63-a847-fbe97d9ad7fd", "savedPayload": { "position": { "x": 20392.28058273448, @@ -793,7 +1079,7 @@ "name": "New Formula", "code": "record.current.end", "project": "Foundations", - "id": "35ac5de7-b67c-438c-87b3-ff96d6bb1dd8", + "id": "17e119aa-8bfc-4b28-a6b4-54f3ad2d941f", "savedPayload": { "position": { "x": 20585.630931053798, @@ -816,7 +1102,7 @@ } } }, - "id": "8f1ebb29-cfba-40f9-b7c7-30766438754a", + "id": "4aa11b47-84cc-418d-a105-79bb61379058", "savedPayload": { "position": { "x": 20371.64321488739, @@ -849,7 +1135,7 @@ "name": "New Formula", "code": "variable.trueRange", "project": "Foundations", - "id": "0e8e6d59-cf12-42c7-91d1-ccd0cd594b93", + "id": "b23f3889-6696-4ca1-81af-191071a54599", "savedPayload": { "position": { "x": 20456.94180933459, @@ -872,7 +1158,7 @@ } } }, - "id": "279b7675-44c8-4ded-9c90-d5648dbf1018", + "id": "b9f4795c-780c-4b70-bafa-8dd86f316c3b", "savedPayload": { "position": { "x": 20285.850467074582, @@ -905,7 +1191,7 @@ "name": "New Formula", "code": "variable.atrNPeriod", "project": "Foundations", - "id": "4dcf47d4-4e1c-48d1-9de7-4e50666739cf", + "id": "5dd58aa9-0904-4ac3-8575-d52699240bd8", "savedPayload": { "position": { "x": 20250.111369878763, @@ -928,7 +1214,7 @@ } } }, - "id": "b98c49fd-0899-4b2e-b419-17c27e2f8b2c", + "id": "f25b43a7-b625-4051-8289-a609e62d4536", "savedPayload": { "position": { "x": 20147.963507437365, @@ -961,7 +1247,7 @@ "name": "New Formula", "code": "variable.uptrend", "project": "Foundations", - "id": "f0b2bd93-521a-48d4-ba92-0384a18fe445", + "id": "015d91a8-48e2-4a74-9d61-332e3a41c670", "savedPayload": { "position": { "x": 19996.627672170867, @@ -984,7 +1270,7 @@ } } }, - "id": "ab3c8cb9-6b02-4ae3-9f88-d24860438521", + "id": "a234f1f3-5561-4735-abae-6746a31180b1", "savedPayload": { "position": { "x": 19978.9743756321, @@ -1017,7 +1303,7 @@ "name": "New Formula", "code": "variable.downtrend", "project": "Foundations", - "id": "bdea67d2-1aba-40d9-9481-394088b7c1ef", + "id": "3e1c34c4-bbb5-4b69-bfb2-f7f8b0b6e815", "savedPayload": { "position": { "x": 19735.08131135148, @@ -1040,7 +1326,7 @@ } } }, - "id": "18f61e74-65be-4c04-b3c8-d4cd283d75e4", + "id": "1af2651c-9182-497b-aca7-e66cf7a5fa75", "savedPayload": { "position": { "x": 19804.610135085844, @@ -1073,7 +1359,7 @@ "name": "New Formula", "code": "variable.trend", "project": "Foundations", - "id": "e442454e-582c-4050-96bf-4183a68b0fe8", + "id": "3ea40973-1be5-49d4-8b1b-f928a6113194", "savedPayload": { "position": { "x": 19505.290349931696, @@ -1096,7 +1382,7 @@ } } }, - "id": "f982dfa8-1f1a-41cb-8bde-46b96264fe8f", + "id": "6eeee4cf-4fa6-4772-b8fe-443a7ea919f2", "savedPayload": { "position": { "x": 19651.416160805988, @@ -1120,7 +1406,7 @@ } } ], - "id": "14fb0297-2332-4a6f-9495-b3be99d8a259", + "id": "8783f55f-0cc5-48b2-b7c0-5683d6d70232", "savedPayload": { "position": { "x": 19943.66778255457, @@ -1156,7 +1442,7 @@ "name": "New Procedure Javascript Code", "code": "/* Loop Code */\n\n/* Big thanks to @rico4dev for providing the base start for ATR calcs\nI made some tweaks so now the way ATR is calculated matches TradingView :-)\n */\n\n// Set parameters to be used for ATR Period and Multiplier\nlet Nperiod = 14 // ATR Period\nlet multiplier = 3 // ATR Multiplier\n\n// Get Current and Previous Candle Data\nlet currCandle = record.current \nlet prevCandle = record.previous \n\n/* We need to build the price source\nFor current price there is no problem, we have data\nFor previous price we must check if exist\nSource price is defined as OHCL4*/\n\n// OHCL4 Source for current price\nvariable.currClose = currCandle.close\nvariable.ohcl4 = (currCandle.max + currCandle.min + currCandle.close + currCandle.open)/4\n\n// OHCL4 Source for previous candle price - make sure data exists\nif (prevCandle === undefined) {\n variable.prevClose = currCandle.close\n variable.prev_ohcl4 = 0 \n} else {\n variable.prevClose = prevCandle.close\n variable.prev_ohcl4 = (prevCandle.max + prevCandle.min + prevCandle.close + prevCandle.open)/4\n}\n\n/* Define variables we need and build functions */\n/* True Range and ATR - Average True Range */\n\nvariable.trueRange = calculateTR()\nvariable.atrNPeriod = calculateATR(Nperiod)\nvariable.prevAtrNperiod = variable.atrNPeriod // Store ATR value for calcs in RMA\n\n/* To keep lastNperiodTR array to a fixed length\nwe remove the first element of the array if length is > Nperiod */\n\nvariable.lastNPeriodTR.push(calculateTR())\nif (variable.lastNPeriodTR.length > Nperiod) {\n variable.lastNPeriodTR.splice(0, 1)\n}\n\n/* Calculate ATR */\nfunction calculateATR(length) {\n return calculateRMA(variable.trueRange, length)\n}\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = currCandle.max - currCandle.min \n if (variable.prevClose === 0) { return hl } // Return High-Low when previous Close is 0 \n let hcp = Math.abs(currCandle.max - variable.prevClose)\n let lcp = Math.abs(currCandle.min - variable.prevClose) \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate RMA */\nfunction calculateRMA(src, length) { \n if (src.length < length) { return 0 } // We check we have enough values to make the calcs. If not, set value to zero \n let alpha=1/length // It's a constant\n if (isNaN(variable.prevAtrNperiod)) {\n return 0 \n } else {\n return alpha * src + (1 - alpha) * variable.prevAtrNperiod \n } \n \n}\n\n// Build Up Trend function\n\nvariable.up = variable.ohcl4 - (multiplier * variable.atrNPeriod)\n\nif (variable.last2uptrend.length > 2) {\n variable.last2uptrend.splice(0, 1)\n}\n\nvariable.up1 = variable.last2uptrend[variable.last2uptrend.length - 1] // Previous Up Trend \n\nvariable.uptrend = calculateUpTrend()\n\nvariable.last2uptrend.push(variable.uptrend) \n\nfunction calculateUpTrend() {\n if (variable.prevClose > variable.up1) {\n return Math.max(variable.up, variable.up1)\n } else {\n return variable.up\n }\n}\n\n// Build Down Trend function\n\nvariable.dn = variable.ohcl4 + (multiplier * variable.atrNPeriod)\n\nif (variable.last2downtrend.length > 2) {\n variable.last2downtrend.splice(0, 1)\n}\n\nvariable.dn1 = variable.last2downtrend[variable.last2downtrend.length - 1] // Previous Down Trend\n\nvariable.downtrend = calculateDnTrend()\n\nvariable.last2downtrend.push(variable.downtrend) \n\nfunction calculateDnTrend() {\n if (variable.prevClose < variable.dn1) {\n return Math.min(variable.dn, variable.dn1)\n } else {\n return variable.dn\n }\n}\n\n\n// Build Trend function\n\nif (variable.last2Trend.length > 2) {\n variable.last2Trend.splice(0, 1)\n}\n\nvariable.prevTrend = variable.last2Trend[variable.last2Trend.length - 1]\n\nvariable.trend = calculateTrend()\n\nvariable.last2Trend.push(variable.trend)\n\nfunction calculateTrend() {\n\n if (variable.trend = -1 && variable.currClose > variable.dn1) {\n return 1\n }\n else if (variable.trend = 1 && variable.currClose < variable.up1) {\n return -1\n } \n else {\n return variable.prevTrend\n }\n}\n\n// End of code :-)", "project": "Foundations", - "id": "201ddacc-b193-4be8-a31a-5728229cc850", + "id": "4c3c3728-a2a1-4c31-aa02-d8ffd15f21f9", "savedPayload": { "position": { "x": 19499.95917987371, @@ -1179,7 +1465,7 @@ } } }, - "id": "c3653e41-76ab-42aa-b35b-f916b5ac0ebf", + "id": "19473430-7826-44a6-867a-5e72d0214564", "savedPayload": { "position": { "x": 19488.1997277561, @@ -1211,7 +1497,7 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\n//// Arrays to store past data\nvariable.lastNPeriodTR = []\nvariable.last2uptrend = [0]\nvariable.last2downtrend = [0]\nvariable.last2Trend = [0]\n\n// Initialize trend\nvariable.trend = 1", "project": "Foundations", - "id": "943a6810-d297-4105-8712-447cee7f97bc", + "id": "83bf8974-88eb-4b97-a4e1-2b874f6503ee", "savedPayload": { "position": { "x": 19327.407206482792, @@ -1234,7 +1520,7 @@ } } }, - "id": "0fa12b96-a16c-4173-9023-0fbf4e1cc839", + "id": "e80e89b0-ed08-441f-a8a8-297a1188b27a", "savedPayload": { "position": { "x": 19373.16507882882, @@ -1257,7 +1543,7 @@ } } }, - "id": "f4bcfc3b-aa95-45b7-a696-9f783a6d43c1", + "id": "79af695c-89ea-4104-9425-218de4af0527", "savedPayload": { "position": { "x": 19464.680823520877, @@ -1280,7 +1566,7 @@ } } }, - "id": "6ac53ba9-30b2-41cd-95b0-a879a86d8709", + "id": "a4b896ae-5e2b-4d03-9c54-81da54620dce", "savedPayload": { "position": { "x": 19535.07633278898, @@ -1304,12 +1590,32 @@ "referenceParent": { "type": "Plotter Module", "name": "Super Trend 14-3", - "id": "3378a290-da71-4912-9268-1e3777e2d127" - } + "id": "fd5db9c8-574f-4629-a9a3-de70b1f92879" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 14-3", + "Plotter", + "Foundations", + "d21fe864-908d-4327-9b97-21ef5064ef02" + ], + [ + "Super Trend 14-3", + "Plotter Module", + "Foundations", + "f6b5038b-e6a9-4cc9-9a20-1a195b881659" + ] + ] } } ], - "id": "c665adf4-0904-480c-8a0e-239b83a1d7f3", + "id": "87bdb8fc-be87-43b0-9112-c2391a771767", "savedPayload": { "position": { "x": 18651.878281255034, @@ -1352,7 +1658,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market Super Trend 9-2", "project": "Foundations", - "id": "1e22fd79-9080-4e01-b859-acf6ad8dce44", + "id": "9f0ce935-0561-4cd1-acfd-283c784dc7a5", "savedPayload": { "position": { "x": 19572.33550214046, @@ -1376,13 +1682,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "f76f4348-2152-4602-87c7-fd79ca08ba91" - } + "id": "68c24b27-56dc-4285-ae9d-e8f36bb29c3f" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 9-2", + "Indicator Bot", + "Foundations", + "488a4ea4-076b-491e-a16d-8f459874cc7c" + ], + [ + "Super Trend 9-2", + "Product Definition", + "Foundations", + "601bab45-5cc5-4ff9-80be-29327407fa7e" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "21165259-1b54-4dd2-97b6-42ad7fe4eee7" + ] + ] } } ], "outputDatasetFolders": [], - "id": "70a7b79b-33f3-4d30-bd29-f279889ce1f5", + "id": "33b5e408-bbff-4610-96f3-46791d66292e", "savedPayload": { "position": { "x": 19508.942762879356, @@ -1415,7 +1747,7 @@ "name": "", "config": "{ \n\"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "7a64c024-e9b1-43d1-bc36-4b89851243d3", + "id": "feb46ac8-db4b-4884-92d6-128cf415c7cd", "savedPayload": { "position": { "x": 19743.39009020503, @@ -1439,8 +1771,34 @@ "referenceParent": { "type": "Status Report", "name": "New Status Report", - "id": "aa8767e0-cbc7-49d6-acf8-53fcfd403c91" - } + "id": "284093c4-e426-413e-ac6e-67c477c81b23" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 9-2", + "Indicator Bot", + "Foundations", + "488a4ea4-076b-491e-a16d-8f459874cc7c" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "7b0c13c4-cfba-45a7-8887-3a1ad04b7c0b" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "36d7fc03-90cd-4040-a56e-eb453e8f4394" + ] + ] } }, { @@ -1448,7 +1806,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{ \n\"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "d22d4d28-54f6-4254-8713-0bed7fc09345", + "id": "c74f9ed8-6910-44d2-9207-6c06953cbfeb", "savedPayload": { "position": { "x": 19937.041250191647, @@ -1473,7 +1831,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } } ], @@ -1482,7 +1866,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "b174bb09-be3c-4aa6-b723-fe6203dc11ec", + "id": "0205c1fc-3594-452b-b231-2764cbf3fdb6", "savedPayload": { "position": { "x": 19986.737962808613, @@ -1507,12 +1891,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "fa4a8b2b-97b7-43a0-ab6f-a6d4e100de12", + "id": "616f8050-473c-4409-9f3d-409a9342b914", "savedPayload": { "position": { "x": 19691.29563690495, @@ -1539,7 +1949,7 @@ "type": "Status Report", "name": "New Status Report", "project": "Foundations", - "id": "aa8767e0-cbc7-49d6-acf8-53fcfd403c91", + "id": "284093c4-e426-413e-ac6e-67c477c81b23", "savedPayload": { "position": { "x": 19744.408433045777, @@ -1566,7 +1976,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "5e158c2c-5ff7-461a-a603-84b0dcff0b19", + "id": "ce12723e-295b-4d1c-b058-e0b344ecf219", "savedPayload": { "position": { "x": 19717.442359729248, @@ -1591,14 +2001,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "c5360874-5eb7-4963-a30b-6b87f5c80882", + "id": "ea4f4998-30d0-4e9a-8b1b-85f1a0c6351e", "savedPayload": { "position": { "x": 19617.622954523566, @@ -1621,7 +2057,7 @@ } } }, - "id": "a01eb320-8f81-445a-adf3-c82cdd6111f4", + "id": "74664c5d-d0e5-4a51-94a0-ce5afbc728f9", "savedPayload": { "position": { "x": 19471.206000761806, @@ -1658,7 +2094,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily Super Trend 9-2", "project": "Foundations", - "id": "c186d862-8e8e-4576-8c21-db8bed5b91b3", + "id": "3aab0771-204a-43b1-abf0-5abead2669fe", "savedPayload": { "position": { "x": 19956.108765796365, @@ -1682,13 +2118,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "aee92b61-d0bc-417e-86a2-76c3f3555fb3" - } + "id": "0d35e86c-e207-4db7-be50-0de7a8b20c5a" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 9-2", + "Indicator Bot", + "Foundations", + "488a4ea4-076b-491e-a16d-8f459874cc7c" + ], + [ + "Super Trend 9-2", + "Product Definition", + "Foundations", + "601bab45-5cc5-4ff9-80be-29327407fa7e" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "8128cc86-1018-47bf-b3f5-da2a65c117c4" + ] + ] } } ], "outputDatasetFolders": [], - "id": "d9a9e91f-d7bf-479f-8654-70999902c5c7", + "id": "068582ea-1a2c-4f45-8875-32e23f14ffb2", "savedPayload": { "position": { "x": 19709.212002849177, @@ -1721,7 +2183,7 @@ "name": "", "config": "{ \n\"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "bcb2f94f-2f78-43d1-b7b4-014d4b427ad2", + "id": "3d814855-d0db-482f-8dbc-bfb68ccc15e0", "savedPayload": { "position": { "x": 20015.877315760554, @@ -1745,8 +2207,34 @@ "referenceParent": { "type": "Status Report", "name": "New Status Report", - "id": "04445a51-85c4-4b23-80e6-1424471ec5a0" - } + "id": "b3c21680-e355-4001-a8eb-a900c48f6904" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 9-2", + "Indicator Bot", + "Foundations", + "488a4ea4-076b-491e-a16d-8f459874cc7c" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "efb313dc-7826-43e1-be77-4d622aef211f" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "deeb15bf-7665-4879-917b-fff2881ddf7e" + ] + ] } }, { @@ -1754,7 +2242,7 @@ "name": "", "config": "{ \n\"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "50ec6766-da34-4232-82d6-a1fea4e0bc96", + "id": "3236bd34-19b1-46d0-846f-345e505747a4", "savedPayload": { "position": { "x": 20056.285379634406, @@ -1779,7 +2267,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -1787,7 +2301,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{ \n\"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "c6af6b42-797f-406f-9cff-4ec7d152cbcc", + "id": "39c13dd2-f43c-46de-8aa6-3c2e732c47bf", "savedPayload": { "position": { "x": 20068.536656666616, @@ -1812,7 +2326,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -1821,7 +2361,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "10d206f5-a507-469f-8ebf-1e9ea3faf452", + "id": "a3cd75aa-44b1-4b30-875c-720e8a863141", "savedPayload": { "position": { "x": 20051.431906501602, @@ -1846,12 +2386,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "5d23006f-3ee8-45c2-b8c5-d9eed0567af2", + "id": "7f4755b7-811c-499f-b191-11c479d5c6b7", "savedPayload": { "position": { "x": 19768.639459173948, @@ -1878,7 +2444,7 @@ "type": "Status Report", "name": "New Status Report", "project": "Foundations", - "id": "04445a51-85c4-4b23-80e6-1424471ec5a0", + "id": "b3c21680-e355-4001-a8eb-a900c48f6904", "savedPayload": { "position": { "x": 19609.7879306385, @@ -1905,7 +2471,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "77852881-ee2b-4d12-9bb9-ad00367ed87d", + "id": "68661a15-3b2e-4964-9487-b5883b8718ff", "savedPayload": { "position": { "x": 19562.520215113112, @@ -1930,14 +2496,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "cec4f4f8-a660-4856-a98c-00c656fe45fc", + "id": "983b7c88-8ca1-4d44-bfe7-b4952361867f", "savedPayload": { "position": { "x": 19490.784929594814, @@ -1960,7 +2552,7 @@ } } }, - "id": "d13d611f-224a-44a3-8dd5-091221afd285", + "id": "bd631646-dbe1-4c24-ba7b-5921a36c45ce", "savedPayload": { "position": { "x": 19471.206000761806, @@ -1996,7 +2588,7 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n }", "project": "Foundations", - "id": "f76f4348-2152-4602-87c7-fd79ca08ba91", + "id": "68c24b27-56dc-4285-ae9d-e8f36bb29c3f", "savedPayload": { "position": { "x": 19803.816149751667, @@ -2024,7 +2616,7 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n }", "project": "Foundations", - "id": "aee92b61-d0bc-417e-86a2-76c3f3555fb3", + "id": "0d35e86c-e207-4db7-be50-0de7a8b20c5a", "savedPayload": { "position": { "x": 19658.501307321294, @@ -2063,7 +2655,7 @@ "name": "New Formula", "code": "record.current.begin", "project": "Foundations", - "id": "22e06b41-88d2-4a26-97ec-3f744ac08d3b", + "id": "3f1e3785-8896-4f4e-a3ed-5789eb2d80a9", "savedPayload": { "position": { "x": 19855.29717900401, @@ -2086,7 +2678,7 @@ } } }, - "id": "18e35814-e462-4be2-8cd0-5ad17f67a3fc", + "id": "10612192-8af8-412e-b44d-070a7d994d12", "savedPayload": { "position": { "x": 19652.21549002529, @@ -2119,7 +2711,7 @@ "name": "New Formula", "code": "record.current.end", "project": "Foundations", - "id": "b3205d42-5e80-4741-b603-0db39414cc8d", + "id": "ac3fea56-7243-4aca-9e6b-7e6ee2c251c1", "savedPayload": { "position": { "x": 19697.715271360084, @@ -2142,7 +2734,7 @@ } } }, - "id": "3e1002e7-d7bc-4183-95e4-456c6f67c80d", + "id": "aed08096-79a7-4d58-81da-5cd1595a6e72", "savedPayload": { "position": { "x": 19547.16088492934, @@ -2175,7 +2767,7 @@ "name": "New Formula", "code": "variable.trueRange", "project": "Foundations", - "id": "825494db-32e4-46ea-bbb3-433101982ca4", + "id": "c7e599c6-9a1f-4c53-a2da-c508efb3f95a", "savedPayload": { "position": { "x": 19471.371742050647, @@ -2198,7 +2790,7 @@ } } }, - "id": "41ccb00d-6fb9-47b4-bcb1-70170b01cb07", + "id": "5d6e46da-862d-4415-8d45-916431fe1c16", "savedPayload": { "position": { "x": 19396.26519872305, @@ -2231,7 +2823,7 @@ "name": "New Formula", "code": "variable.atrNPeriod", "project": "Foundations", - "id": "3c9a218e-a0e3-44a4-92fd-cac6b67c2beb", + "id": "b64f57e8-cce0-451e-84f2-e446ded43cf2", "savedPayload": { "position": { "x": 19210.725341603866, @@ -2254,7 +2846,7 @@ } } }, - "id": "77d43db6-3bf4-4539-98fd-b3cec2635a51", + "id": "fd3ca6f0-200a-4eb8-bef3-713dcd673c7a", "savedPayload": { "position": { "x": 19222.500931758528, @@ -2287,7 +2879,7 @@ "name": "New Formula", "code": "variable.uptrend", "project": "Foundations", - "id": "ccfbd1ba-a7b4-42db-a194-a2b521ed2f9b", + "id": "a266452a-0dfe-46f3-b862-8ec69879499f", "savedPayload": { "position": { "x": 18955.457121722255, @@ -2310,7 +2902,7 @@ } } }, - "id": "cbf303d3-bdad-48b1-8cf2-9a11af227780", + "id": "4eee6cfb-dcd2-4212-be03-e6de27bd15a8", "savedPayload": { "position": { "x": 19052.322118504122, @@ -2343,7 +2935,7 @@ "name": "New Formula", "code": "variable.downtrend", "project": "Foundations", - "id": "1e19450c-5ac4-40b2-9c9a-dc4e51247db4", + "id": "faa8ecf3-1108-4b7b-88fb-793913331974", "savedPayload": { "position": { "x": 18744.429354870612, @@ -2366,7 +2958,7 @@ } } }, - "id": "feb30a7c-21c2-4a23-9732-c3bc50332aa1", + "id": "bfc7cce3-b55f-4985-bfec-d997196b596e", "savedPayload": { "position": { "x": 18911.636940603024, @@ -2399,7 +2991,7 @@ "name": "New Formula", "code": "variable.trend", "project": "Foundations", - "id": "3d091b99-48f8-44bf-92cf-8bc9032ea027", + "id": "b1a9fbbb-f1cd-4841-9029-ad76389ae632", "savedPayload": { "position": { "x": 18609.76910558063, @@ -2422,7 +3014,7 @@ } } }, - "id": "d93d494d-c5dc-4831-8ee2-f3afce37787e", + "id": "a0d34214-ab76-4c11-91a8-4b500949b78f", "savedPayload": { "position": { "x": 18821.863441076373, @@ -2446,7 +3038,7 @@ } } ], - "id": "63ef9c28-b1b8-477a-9dc1-6ed5b5dd0d89", + "id": "1efa38f3-8a0a-4234-bafe-fa19db8d006c", "savedPayload": { "position": { "x": 19436.86287172777, @@ -2482,7 +3074,7 @@ "name": "New Procedure Javascript Code", "code": "/* Loop Code */\n\n/* Big thanks to @rico4dev for providing the base start for ATR calcs\nI made some tweaks so now the way ATR is calculated matches TradingView :-)\n */\n\n// Set parameters to be used for ATR Period and Multiplier\nlet Nperiod = 9 // ATR Period\nlet multiplier = 2 // ATR Multiplier\n\n// Get Current and Previous Candle Data\nlet currCandle = record.current \nlet prevCandle = record.previous \n\n/* We need to build the price source\nFor current price there is no problem, we have data\nFor previous price we must check if exist\nSource price is defined as OHCL4*/\n\n// OHCL4 Source for current price\nvariable.currClose = currCandle.close\nvariable.ohcl4 = (currCandle.max + currCandle.min + currCandle.close + currCandle.open)/4\n\n// OHCL4 Source for previous candle price - make sure data exists\nif (prevCandle === undefined) {\n variable.prevClose = currCandle.close\n variable.prev_ohcl4 = 0 \n} else {\n variable.prevClose = prevCandle.close\n variable.prev_ohcl4 = (prevCandle.max + prevCandle.min + prevCandle.close + prevCandle.open)/4\n}\n\n/* Define variables we need and build functions */\n/* True Range and ATR - Average True Range */\n\nvariable.trueRange = calculateTR()\nvariable.atrNPeriod = calculateATR(Nperiod)\nvariable.prevAtrNperiod = variable.atrNPeriod // Store ATR value for calcs in RMA\n\n/* To keep lastNperiodTR array to a fixed length\nwe remove the first element of the array if length is > Nperiod */\n\nvariable.lastNPeriodTR.push(calculateTR())\nif (variable.lastNPeriodTR.length > Nperiod) {\n variable.lastNPeriodTR.splice(0, 1)\n}\n\n/* Calculate ATR */\nfunction calculateATR(length) {\n return calculateRMA(variable.trueRange, length)\n}\n\n/* Calculate True Range */\nfunction calculateTR() {\n let hl = currCandle.max - currCandle.min \n if (variable.prevClose === 0) { return hl } // Return High-Low when previous Close is 0 \n let hcp = Math.abs(currCandle.max - variable.prevClose)\n let lcp = Math.abs(currCandle.min - variable.prevClose) \n return Math.max(hl, hcp, lcp)\n}\n\n/* Calculate RMA */\nfunction calculateRMA(src, length) { \n if (src.length < length) { return 0 } // We check we have enough values to make the calcs. If not, set value to zero \n let alpha=1/length // It's a constant\n if (isNaN(variable.prevAtrNperiod)) {\n return 0 \n } else {\n return alpha * src + (1 - alpha) * variable.prevAtrNperiod \n } \n \n}\n\n// Build Up Trend function\n\nvariable.up = variable.ohcl4 - (multiplier * variable.atrNPeriod)\n\nif (variable.last2uptrend.length > 2) {\n variable.last2uptrend.splice(0, 1)\n}\n\nvariable.up1 = variable.last2uptrend[variable.last2uptrend.length - 1] // Previous Up Trend \n\nvariable.uptrend = calculateUpTrend()\n\nvariable.last2uptrend.push(variable.uptrend) \n\nfunction calculateUpTrend() {\n if (variable.prevClose > variable.up1) {\n return Math.max(variable.up, variable.up1)\n } else {\n return variable.up\n }\n}\n\n// Build Down Trend function\n\nvariable.dn = variable.ohcl4 + (multiplier * variable.atrNPeriod)\n\nif (variable.last2downtrend.length > 2) {\n variable.last2downtrend.splice(0, 1)\n}\n\nvariable.dn1 = variable.last2downtrend[variable.last2downtrend.length - 1] // Previous Down Trend\n\nvariable.downtrend = calculateDnTrend()\n\nvariable.last2downtrend.push(variable.downtrend) \n\nfunction calculateDnTrend() {\n if (variable.prevClose < variable.dn1) {\n return Math.min(variable.dn, variable.dn1)\n } else {\n return variable.dn\n }\n}\n\n\n// Build Trend function\n\nif (variable.last2Trend.length > 2) {\n variable.last2Trend.splice(0, 1)\n}\n\nvariable.prevTrend = variable.last2Trend[variable.last2Trend.length - 1]\n\nvariable.trend = calculateTrend()\n\nvariable.last2Trend.push(variable.trend)\n\nfunction calculateTrend() {\n\n if (variable.trend = -1 && variable.currClose > variable.dn1) {\n return 1\n }\n else if (variable.trend = 1 && variable.currClose < variable.up1) {\n return -1\n } \n else {\n return variable.prevTrend\n }\n}\n\n// End of code :-)", "project": "Foundations", - "id": "1a7cca6b-3af5-4639-86ef-0c2977eaa007", + "id": "b7ff9278-0e14-4372-9818-0caddb3503d0", "savedPayload": { "position": { "x": 19035.27015261296, @@ -2505,7 +3097,7 @@ } } }, - "id": "6c15e7eb-da33-4001-bda7-d8e42125b52c", + "id": "9bac5dab-6ac1-4e48-b9ed-35690b4471b9", "savedPayload": { "position": { "x": 19067.221878892153, @@ -2537,7 +3129,7 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\n//// Arrays to store past data\nvariable.lastNPeriodTR = []\nvariable.last2uptrend = [0]\nvariable.last2downtrend = [0]\nvariable.last2Trend = [0]\n\n// Initialize trend\nvariable.trend = 1", "project": "Foundations", - "id": "d4338ea9-742d-47b5-a353-f645d7f2aef9", + "id": "c56146fb-36c4-440c-a552-866953df2e21", "savedPayload": { "position": { "x": 18886.311481233886, @@ -2560,7 +3152,7 @@ } } }, - "id": "346ccc4b-6966-4b48-921e-4c9813df3c6e", + "id": "4e55dff2-8934-432f-8d78-90b2f17d47ac", "savedPayload": { "position": { "x": 18967.916097972768, @@ -2583,7 +3175,7 @@ } } }, - "id": "1def7902-189f-4b11-a22f-388d5ff0ea84", + "id": "a471d617-4a32-4f12-abb1-0f1d441dfcd6", "savedPayload": { "position": { "x": 19131.125331450534, @@ -2606,7 +3198,7 @@ } } }, - "id": "43b6addd-1a1c-4ffb-a2e0-9c7b9103600d", + "id": "7b2a966e-e295-4ab7-bf29-24ed00e98a02", "savedPayload": { "position": { "x": 19366.24968557271, @@ -2630,16 +3222,36 @@ "referenceParent": { "type": "Plotter Module", "name": "Super Trend 9-2", - "id": "d5867a0c-1cda-4217-b5a7-ef499ea74898" - } + "id": "8127debf-f6d5-4694-a17d-78ed96f75f31" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 9-2", + "Plotter", + "Foundations", + "9f1e3417-fa87-4b2c-a748-c90994951ae4" + ], + [ + "Super Trend 9-2", + "Plotter Module", + "Foundations", + "1f661454-2ffd-45dc-a364-7bef1e2f1fd0" + ] + ] } } ], - "id": "a4074e7d-5974-4850-bd12-00830a050d1a", + "id": "7689447e-48fb-418a-bd5e-24608998e426", "savedPayload": { "position": { - "x": 18636.835028564128, - "y": 9899.314936268735 + "x": 18634.443371710666, + "y": 9909.39177446748 }, "targetPosition": { "x": 18051.878281255034, @@ -2678,7 +3290,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market FastTrend", "project": "Foundations", - "id": "8e08841c-4494-49b3-ad5e-bc8bcfe7b5fd", + "id": "a96d4bf0-9dc6-49f6-8d83-7589584c3a6a", "savedPayload": { "position": { "x": 19780.08767759128, @@ -2702,13 +3314,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "bc0f55be-0c13-4a70-a4e0-3ee3590e2f83" - } + "id": "3d17dad3-6793-42e1-9faf-994ef25c7972" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend", + "Indicator Bot", + "Foundations", + "b0fa188c-4c0e-40f9-a3d8-915110d43430" + ], + [ + "FastTrend", + "Product Definition", + "Foundations", + "b2c56443-329f-4e39-bd1b-292a98894ded" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "062815ea-c558-464c-ba9a-11e00dde23f6" + ] + ] } } ], "outputDatasetFolders": [], - "id": "7bad6200-5e4a-4c0e-a493-85d6c960e69c", + "id": "460e2aa4-289d-48f1-bc55-36fbdbaed6d8", "savedPayload": { "position": { "x": 19528.486507207654, @@ -2741,7 +3379,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "74e28538-481a-4981-9ba8-109dca685f57", + "id": "e900802b-d27b-4d1c-9953-acbcf54865cc", "savedPayload": { "position": { "x": 20007.725961386637, @@ -2766,7 +3404,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -2774,7 +3438,7 @@ "name": "FastTrend Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "0c745afa-5a17-450c-be70-15767551bfdc", + "id": "31092c8a-a878-42e2-8867-c5082c9822fc", "savedPayload": { "position": { "x": 19887.14976905374, @@ -2798,8 +3462,34 @@ "referenceParent": { "type": "Status Report", "name": "Market-FastTrend", - "id": "934cc54f-1ae5-41b4-a5a3-5bd1527cd8a2" - } + "id": "5f44569d-0396-45d0-88e7-fffbccf5d0ad" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend", + "Indicator Bot", + "Foundations", + "b0fa188c-4c0e-40f9-a3d8-915110d43430" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "c49510ac-8e4d-4ac4-a775-bd02ecfa03ce" + ], + [ + "Market-FastTrend", + "Status Report", + "Foundations", + "453cc2bc-c3f0-4139-a782-5a46da9dcff7" + ] + ] } } ], @@ -2808,7 +3498,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "3a0c8516-a17b-41d0-a599-cac935dbe001", + "id": "b84a4fa4-ea2c-411c-bb92-d9df5a86d259", "savedPayload": { "position": { "x": 19807.63317416257, @@ -2833,12 +3523,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "bf4a793f-0654-4b79-bbe9-d8e900165106", + "id": "e1970353-2940-4947-97ed-66729f3ab2de", "savedPayload": { "position": { "x": 19726.268627463585, @@ -2865,7 +3581,7 @@ "type": "Status Report", "name": "Market-FastTrend", "project": "Foundations", - "id": "934cc54f-1ae5-41b4-a5a3-5bd1527cd8a2", + "id": "5f44569d-0396-45d0-88e7-fffbccf5d0ad", "savedPayload": { "position": { "x": 19544.187294080537, @@ -2892,7 +3608,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "8a032054-e2ee-4c8f-961f-9c6ad08042b1", + "id": "674cc360-fba1-460b-b393-4032c01473e6", "savedPayload": { "position": { "x": 19358.581192076283, @@ -2917,14 +3633,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "f5e8b15b-71f1-4dab-8a34-5c25bef9e4e9", + "id": "8780d59d-d110-4ffa-bad7-fb36bf4e78cb", "savedPayload": { "position": { "x": 19284.73573026047, @@ -2947,15 +3689,15 @@ } } }, - "id": "9ce0a9da-1ebb-49f6-85da-35109f65e8db", + "id": "60325aa7-f68a-41ad-bfe9-9ada21485759", "savedPayload": { "position": { - "x": 19735.158460716088, - "y": 9890.436363451125 + "x": 19155.984416552088, + "y": 9866.134446808084 }, "targetPosition": { - "x": 19295.442371029065, - "y": 9986.090743749965 + "x": 18583.15189664696, + "y": 10044.636279121207 }, "floatingObject": { "isPinned": false, @@ -2984,7 +3726,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily FastTrend", "project": "Foundations", - "id": "3194b943-ecf9-4ef2-bb44-ecc0236a80b1", + "id": "52fb9e5d-69da-406b-8499-9e399560e235", "savedPayload": { "position": { "x": 19584.882760326742, @@ -3008,13 +3750,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "58669c2b-ebb0-4038-8541-e1001635ef07" - } + "id": "30c3793f-ac75-4486-bb35-8dc90d3ea7a6" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend", + "Indicator Bot", + "Foundations", + "b0fa188c-4c0e-40f9-a3d8-915110d43430" + ], + [ + "FastTrend", + "Product Definition", + "Foundations", + "b2c56443-329f-4e39-bd1b-292a98894ded" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "fc22544f-51cc-4a14-be77-61819110efdc" + ] + ] } } ], "outputDatasetFolders": [], - "id": "816d023c-da29-4c0e-abbe-3b4ed406f6b1", + "id": "09ac737c-03a5-4644-921a-c950ef0a4c24", "savedPayload": { "position": { "x": 19302.97497409097, @@ -3047,7 +3815,7 @@ "name": "FastTrend Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "dd009207-f2bb-479b-b1e7-099743f504c8", + "id": "121a81fe-e121-4000-9eb6-c7b913d88a72", "savedPayload": { "position": { "x": 19490.05492679689, @@ -3071,8 +3839,34 @@ "referenceParent": { "type": "Status Report", "name": "Daily-FasTrend", - "id": "70cab5e5-11af-4f5f-bd27-d07b2b9d7a90" - } + "id": "c998d27b-c93c-4802-a1a3-8a2cc0b88917" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend", + "Indicator Bot", + "Foundations", + "b0fa188c-4c0e-40f9-a3d8-915110d43430" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "bef1f3a4-c0bf-4633-814e-015d2a8943e5" + ], + [ + "Daily-FasTrend", + "Status Report", + "Foundations", + "26e3e188-bf1d-4fc5-a08e-710b454d8cbf" + ] + ] } }, { @@ -3080,7 +3874,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "3a95d768-04e4-48b1-a538-6e84abe1ce3d", + "id": "54432981-941f-492f-9b0a-5efe6bdeb930", "savedPayload": { "position": { "x": 19440.31634482799, @@ -3105,7 +3899,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -3113,7 +3933,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "70c20ae2-87ee-4911-ade9-ba25f9a455c4", + "id": "cd2336d5-a4fb-4b1b-964b-31a0b31546f4", "savedPayload": { "position": { "x": 19368.414893234174, @@ -3138,7 +3958,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -3147,7 +3993,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "966da68d-d1f2-4f00-87ba-6b5d4803d420", + "id": "50524bec-5eb9-4805-8caa-146be9ba248d", "savedPayload": { "position": { "x": 19281.388787064316, @@ -3172,12 +4018,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "f459b804-9fc0-4805-acaa-8798d9fed3a8", + "id": "8c87b105-39ac-4c72-9378-eaddf7695d13", "savedPayload": { "position": { "x": 19213.903470761157, @@ -3204,7 +4076,7 @@ "type": "Status Report", "name": "Daily-FasTrend", "project": "Foundations", - "id": "70cab5e5-11af-4f5f-bd27-d07b2b9d7a90", + "id": "c998d27b-c93c-4802-a1a3-8a2cc0b88917", "savedPayload": { "position": { "x": 19047.114414505235, @@ -3231,7 +4103,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "12ee1083-5110-4105-8a6e-76346c9d709f", + "id": "8c160270-b457-4671-bab0-8dea3a7b23e7", "savedPayload": { "position": { "x": 18969.764166356345, @@ -3256,14 +4128,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "b34a3b77-ab4a-4b52-9224-2159e5eacc5b", + "id": "6ab4f2aa-9520-4950-810b-7e66ca7f7be1", "savedPayload": { "position": { "x": 18906.160521387348, @@ -3286,15 +4184,15 @@ } } }, - "id": "923fe533-869a-410f-83e1-12afd59218aa", + "id": "9c5f1920-f4cc-4116-ad30-c07e1f35b4f6", "savedPayload": { "position": { - "x": 19674.006460803095, - "y": 10229.379111604983 + "x": 19114.425512038884, + "y": 10323.470182347468 }, "targetPosition": { - "x": 19295.442371029065, - "y": 9986.090743749965 + "x": 18583.15189664696, + "y": 10044.636279121207 }, "floatingObject": { "isPinned": false, @@ -3322,15 +4220,15 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "bc0f55be-0c13-4a70-a4e0-3ee3590e2f83", + "id": "3d17dad3-6793-42e1-9faf-994ef25c7972", "savedPayload": { "position": { - "x": 20021.877976454205, - "y": 10305.386179117335 + "x": 19585.35864675123, + "y": 10383.714587418905 }, "targetPosition": { - "x": 19438.923941477326, - "y": 10645.664878280497 + "x": 18850.904645116643, + "y": 10903.885058978898 }, "floatingObject": { "isPinned": false, @@ -3350,15 +4248,15 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "58669c2b-ebb0-4038-8541-e1001635ef07", + "id": "30c3793f-ac75-4486-bb35-8dc90d3ea7a6", "savedPayload": { "position": { - "x": 19942.69091942019, - "y": 11094.935211080596 + "x": 19572.57492976987, + "y": 11441.650807468452 }, "targetPosition": { - "x": 19438.923941477326, - "y": 10645.664878280497 + "x": 18850.904645116643, + "y": 10903.885058978898 }, "floatingObject": { "isPinned": false, @@ -3389,7 +4287,7 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "92131ea0-2693-4dd8-b046-a654e965ee7a", + "id": "80c614da-f1f3-4622-a3a8-8c9a6697313f", "savedPayload": { "position": { "x": 19237.99551025012, @@ -3412,7 +4310,7 @@ } } }, - "id": "fe55f260-ab0e-4f16-aeee-5ee035a98e30", + "id": "719512cf-ccc0-498e-a381-f3893c51086d", "savedPayload": { "position": { "x": 19069.41543027127, @@ -3445,7 +4343,7 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "0db17a51-ef9c-442e-b030-73ed5f95cb9a", + "id": "f6e3f6fc-d16c-4dcf-8fad-72c7ffca60eb", "savedPayload": { "position": { "x": 19065.336750320555, @@ -3468,7 +4366,7 @@ } } }, - "id": "b2b33b84-108a-4718-98ff-d4d439312a94", + "id": "56686276-85da-434a-8fc4-ea603b98c42c", "savedPayload": { "position": { "x": 18954.30959031823, @@ -3501,7 +4399,7 @@ "name": "New Formula", "code": "variable.PositiveDisorder", "project": "Foundations", - "id": "6f0e76f3-68a2-41fa-900e-66ceba45e99e", + "id": "3e01f943-56ab-4438-bb5b-f27524563900", "savedPayload": { "position": { "x": 18641.860842321767, @@ -3524,7 +4422,7 @@ } } }, - "id": "a059f668-ea9a-4521-bcf5-b25b93124da9", + "id": "84040d20-fd7a-4326-9720-5baed7ff1cb6", "savedPayload": { "position": { "x": 18671.992318319037, @@ -3557,7 +4455,7 @@ "name": "New Formula", "code": "variable.NegativeDisorder", "project": "Foundations", - "id": "d9ed7ad9-e6f4-463d-9ac4-9a1ce00d9587", + "id": "4b69aff8-bf91-4aef-ab78-a1e047793733", "savedPayload": { "position": { "x": 18286.453782311102, @@ -3580,7 +4478,7 @@ } } }, - "id": "c12eb9ee-3e3a-4fab-bf0b-92ca0873d51c", + "id": "72fbc68c-de1b-4711-a894-205344660272", "savedPayload": { "position": { "x": 18435.054278311927, @@ -3613,7 +4511,7 @@ "name": "New Formula", "code": "variable.FastTrend", "project": "Foundations", - "id": "2068f5a5-92c3-45ba-b98e-1c03b855d7c2", + "id": "3f5a490f-db62-49c4-92e0-23918030a425", "savedPayload": { "position": { "x": 18266.744335459403, @@ -3636,7 +4534,7 @@ } } }, - "id": "f58cad51-659d-4c9c-9dce-007b3933e288", + "id": "8bf43a9e-ee1f-4f65-944a-469726d44a18", "savedPayload": { "position": { "x": 18421.91464707746, @@ -3669,7 +4567,7 @@ "name": "New Record Formula", "code": "variable.interTrend", "project": "Foundations", - "id": "1f1ce717-c149-4e51-9fd7-9ff53bea3eb4", + "id": "3302f2f9-2463-4df2-a39b-e9a17875a9ee", "savedPayload": { "position": { "x": 18597.574117245447, @@ -3692,7 +4590,7 @@ } } }, - "id": "f8f9edc5-2b47-4acc-9d33-87b208ab5e2d", + "id": "2fb75597-53cc-4cc9-b845-85fbbb015284", "savedPayload": { "position": { "x": 18642.467834934825, @@ -3716,15 +4614,15 @@ } } ], - "id": "efdb8e1f-44a4-43c0-ac94-d88e9c301cd5", + "id": "901eaa49-71be-4791-803d-8549ba366cbf", "savedPayload": { "position": { - "x": 19031.51056117977, - "y": 11572.579430736396 + "x": 18418.248789544527, + "y": 12182.677032146996 }, "targetPosition": { - "x": 19438.923941477326, - "y": 10645.664878280497 + "x": 18850.904645116643, + "y": 10903.885058978898 }, "floatingObject": { "isPinned": false, @@ -3752,15 +4650,15 @@ "name": "New Procedure Javascript Code", "code": "/* Loop Code */\n\nlet FTLen = 10 // Channel length\nlet candle = record.current\nlet BIAS = 0.35 // biased limit value for Math.log2 (0)\n\n\nif (variable.previousEma5 === undefined) {\nvariable.previousEma5 = candle.close\n}\n\n// Calculate EMA5\nvariable.Ema5 = calculateEMA(5, candle.close, variable.previousEma5)\nvariable.previousEma5 = variable.Ema5\n\n\n// Build arrays Max, Min, Close, Open\n\nvariable.lastMax.push(candle.max) \nvariable.lastMin.push(candle.min)\nvariable.lastOpens.push(candle.open)\nvariable.lastCloses.push(candle.close)\nvariable.lastEMA5s.push(variable.Ema5)\n\n\n\n// Keep the array the correct size\n\nif (variable.lastMax.length > FTLen) {\n variable.lastMax.splice(0, 1)\n}\n\nif (variable.lastMin.length > FTLen) {\n variable.lastMin.splice(0, 1)\n}\n\nif (variable.lastOpens.length > FTLen) {\n variable.lastOpens.splice(0, 1)\n}\n\nif (variable.lastCloses.length > FTLen) {\n variable.lastCloses.splice(0, 1)\n}\n\nif (variable.lastEMA5s.length > FTLen) {\n variable.lastEMA5s.splice(0, 1)\n}\n// Calculate indicator values\n\n\n\n\nvariable.PositiveDisorder = CalPosEntropy () // Positive disorder\nvariable.NegativeDisorder = CalNegEntropy () // Negative disorder\nif(variable.PositiveDisorder === 0 && variable.NegativeDisorder === 0){\n\tvariable.FastTrend = 0\n}\nelse {\n\tvariable.FastTrend = ( variable.NegativeDisorder - variable.PositiveDisorder ) / ( variable.NegativeDisorder + variable.PositiveDisorder)\n}//calculation of the fast trend indicator\n\nvariable.lastFastTrend.push(variable.FastTrend)\nif(variable.lastFastTrend.length > 2 ) {\n\tvariable.lastFastTrend.splice(0,1)\n}\n\n//Determine the intermediate trend i.e. pullbacks\nif(variable.lastMax.length < FTLen) {\n\tvariable.interTrend = 0\n}\nelse {\n\tif(variable.lastFastTrend.length === 2){\n\t\tvariable.Slope = variable.lastFastTrend[1] - variable.lastFastTrend[0]\n\t\tif(variable.Slope > 0) {\n\t\t\t\tvariable.interTrend = 1\n\t\t}\n\t\t\tif(variable.Slope < 0) {\n\t\t\t\tvariable.interTrend = -1\n\t\t}\n\t\t\tif(variable.Slope = 0) {\n\t\t\t\tvariable.interTrend = 0\n\t\t}\n\t}\n\telse {\n\t\tvariable.interTrend = 0\n\t}\n}\n//functions\n//EMA5 calculation\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\nfunction CalPosEntropy ()\n\n\n{variable.PosOpen = 0 // counter for values above EMA\nvariable.PosClose = 0 // counter for values above EMA\nvariable.PosMin = 0 // counter for values above EMA\nvariable.PosMax = 0 // counter for values above EMA\n\n\t\n\tif (variable.lastMax.length < FTLen) { return 0 }\n\tfor (var i = 0 ; i < FTLen ; i++) //loop over the arrays and increment counters each time a value is above EMA5 at the same index\n\t{\n\t\t\tif (variable.lastMax[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosMax = variable.PosMax + 1\n\t\t\t}\n\t\t\tif (variable.lastMin[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosMin = variable.PosMin + 1\n\t\t\t}\n\t\t\tif (variable.lastOpens[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosOpen = variable.PosOpen + 1\n\t\t\t}\n\t\t\tif (variable.lastCloses[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosClose = variable.PosClose + 1\n\t\t\t}\n\t\t\t\n\t}\n\tif (variable.PosMax > 0) // calculate entropy for Max candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosMax = (variable.PosMax / FTLen) * Math.log2(1/(variable.PosMax / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosMax = BIAS\n\t}\n\tif (variable.PosMin > 0) // calculate entropy for Min candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosMin = (variable.PosMin / FTLen) * Math.log2(1/(variable.PosMin / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosMin = BIAS\n\t}\n\tif (variable.PosOpen > 0) // calculate entropy for Open candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosOpen = (variable.PosOpen / FTLen) * Math.log2(1/(variable.PosOpen / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosOpen = BIAS\n\t}\n\tif (variable.PosClose > 0) // calculate entropy for Close candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosClose = (variable.PosClose / FTLen) * Math.log2(1/(variable.PosClose / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosClose = BIAS\n\t}\n\t\n\tvariable.PosEnt = variable.EntPosClose + variable.EntPosMax + variable.EntPosMin + variable.EntPosOpen //sum on 4 entropies\n\t\n\treturn variable.PosEnt\n}\n\nfunction CalNegEntropy ()\n\n{variable.NegOpen = 0 // counter for values below EMA\nvariable.NegClose = 0 // counter for values below EMA\nvariable.NegMin = 0 // counter for values below EMA\nvariable.NegMax = 0 // counter for values below EMA\n\t\n\tif (variable.lastMax.length < FTLen) { return 0 }\n\tfor (var j = 0 ; j < FTLen ; j++) //loop over the arrays and increment counters each time a value is above EMA5 at the same index\n\t{\n\t\t\tif (variable.lastMax[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegMax = variable.NegMax + 1\n\t\t\t}\n\t\t\tif (variable.lastMin[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegMin = variable.NegMin + 1\n\t\t\t}\n\t\t\tif (variable.lastOpens[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegOpen = variable.NegOpen + 1\n\t\t\t}\n\t\t\tif (variable.lastCloses[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegClose = variable.NegClose + 1\n\t\t\t}\n\t\t\t\n\t}\n\tif (variable.NegMax > 0) // calculate entropy for Max candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegMax = (variable.NegMax / FTLen) * Math.log2(1/(variable.NegMax / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegMax = BIAS\n\t}\n\tif (variable.NegMin > 0) // calculate entropy for Min candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegMin = (variable.NegMin / FTLen) * Math.log2(1/(variable.NegMin / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegMin = BIAS\n\t}\n\tif (variable.NegOpen > 0) // calculate entropy for Open candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegOpen = (variable.NegOpen / FTLen) * Math.log2(1/(variable.NegOpen / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegOpen = BIAS\n\t}\n\tif (variable.NegClose > 0) // calculate entropy for Close candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegClose = (variable.NegClose / FTLen) * Math.log2(1/(variable.NegClose / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegClose = BIAS\n\t}\n\t\n\tvariable.NegEnt = variable.EntNegClose + variable.EntNegMax + variable.EntNegMin + variable.EntNegOpen //sum on 4 entropies\n\t\n\treturn variable.NegEnt\n}\n\n// End of code :-)", "project": "Foundations", - "id": "972b699e-6dfb-47a0-ab42-252b512d5f54", + "id": "26d82466-65f6-4ea7-af4e-75e4681bbcad", "savedPayload": { "position": { - "x": 17998.131717599168, - "y": 10925.153503470228 + "x": 16969.966337101825, + "y": 11443.69754874348 }, "targetPosition": { - "x": 18459.62873856219, - "y": 10717.044007910188 + "x": 17558.568741448686, + "y": 11113.28536737437 }, "floatingObject": { "isPinned": false, @@ -3775,15 +4673,15 @@ } } }, - "id": "c72678d8-77b2-4d40-891a-378ee25a9b80", + "id": "56585622-702a-4125-af85-1292f06eb0af", "savedPayload": { "position": { - "x": 18459.62873856219, - "y": 10717.044007910188 + "x": 17558.568741448686, + "y": 11113.28536737437 }, "targetPosition": { - "x": 18767.29341920421, - "y": 10578.304344203494 + "x": 17950.970344346595, + "y": 10893.010579794964 }, "floatingObject": { "isPinned": false, @@ -3807,15 +4705,15 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.lastMax = []\nvariable.lastMin = []\nvariable.lastOpens = []\nvariable.lastCloses = []\nvariable.lastEMA5s = []\nvariable.NegOpen = 0 // counter for values below EMA\nvariable.NegClose = 0 // counter for values below EMA\nvariable.NegMin = 0 // counter for values below EMA\nvariable.NegMax = 0 // counter for values below EMA\nvariable.PosOpen = 0 // counter for values above EMA\nvariable.PosClose = 0 // counter for values above EMA\nvariable.PosMin = 0 // counter for values above EMA\nvariable.PosMax = 0 // counter for values above EMA\nvariable.lastFastTrend = []", "project": "Foundations", - "id": "bdb73466-fc3f-4336-8612-fd85a8fda31d", + "id": "8b786dc7-6872-4934-bbf7-374dde18f76a", "savedPayload": { "position": { - "x": 18082.332385195423, - "y": 10085.61535062883 + "x": 16983.55943608174, + "y": 10318.779672780916 }, "targetPosition": { - "x": 18493.309005600695, - "y": 10381.228746773628 + "x": 17564.005981040653, + "y": 10663.318216989344 }, "floatingObject": { "isPinned": false, @@ -3830,15 +4728,15 @@ } } }, - "id": "0f624835-d92d-42b1-b1ba-44900b1e8f64", + "id": "4abbc4da-a690-4fe0-9469-4d82379bf08e", "savedPayload": { "position": { - "x": 18493.309005600695, - "y": 10381.228746773628 + "x": 17564.005981040653, + "y": 10663.318216989344 }, "targetPosition": { - "x": 18767.29341920421, - "y": 10578.304344203494 + "x": 17950.970344346595, + "y": 10893.010579794964 }, "floatingObject": { "isPinned": false, @@ -3853,15 +4751,15 @@ } } }, - "id": "4e23dbc9-09fd-4ef8-8c72-54cd5e50ae61", + "id": "0a765cb8-a3fb-4e90-8b43-6ee5b5cdad1a", "savedPayload": { "position": { - "x": 18767.29341920421, - "y": 10578.304344203494 + "x": 17950.970344346595, + "y": 10893.010579794964 }, "targetPosition": { - "x": 19438.923941477326, - "y": 10645.664878280497 + "x": 18850.904645116643, + "y": 10903.885058978898 }, "floatingObject": { "isPinned": false, @@ -3876,15 +4774,15 @@ } } }, - "id": "ec4bc9f7-48fd-444f-8bdf-ea01963eda8b", + "id": "c42231e0-85a6-446d-b3e0-c70d4a8f99a2", "savedPayload": { "position": { - "x": 19438.923941477326, - "y": 10645.664878280497 + "x": 18850.904645116643, + "y": 10903.885058978898 }, "targetPosition": { - "x": 19295.442371029065, - "y": 9986.090743749965 + "x": 18583.15189664696, + "y": 10044.636279121207 }, "floatingObject": { "isPinned": false, @@ -3900,2460 +4798,36 @@ "referenceParent": { "type": "Plotter Module", "name": "FastTrend", - "id": "d2e36ecc-6028-481a-b3d1-247a0684b1a4" - } + "id": "69f63f46-442b-4fad-bd0d-0c3c659cfa8d" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend", + "Plotter", + "Foundations", + "7efb235b-f978-450c-8717-b2161c63b677" + ], + [ + "FastTrend", + "Plotter Module", + "Foundations", + "37a95c11-40eb-4919-ad1a-64df4bf8555f" + ] + ] } } ], - "id": "833109e9-cacb-4479-a9ae-796d59215b71", + "id": "7843ad7f-3615-495d-aa85-a2f1b211b31f", "savedPayload": { "position": { - "x": 18592.459601996485, - "y": 10026.13261936548 - }, - "targetPosition": { - "x": 18051.878281255034, - "y": 9765.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Indicator Bot", - "name": "Volume Energy", - "config": "{\n \"codeName\": \"VolEnergy\"\n}", - "project": "Foundations", - "processes": [ - { - "type": "Process Definition", - "name": "Multi-Time-Frame-Market", - "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"description\": \"Produces volume energy Indicator\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Time-Frame-Market\"\n }\n}", - "project": "Foundations", - "processOutput": { - "type": "Process Output", - "name": "New Process Output", - "project": "Foundations", - "outputDatasets": [ - { - "type": "Output Dataset", - "name": "Multi-Time-Frame-Market Volume Energy", - "project": "Foundations", - "id": "5b0dfc6a-6351-4742-8262-75c206301857", - "savedPayload": { - "position": { - "x": 19784.859174892692, - "y": 9769.514407952627 - }, - "targetPosition": { - "x": 19546.85317280532, - "y": 9952.142836655243 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Market", - "id": "55a4ec76-66b3-47eb-90b6-7f4e6728a724" - } - } - } - ], - "outputDatasetFolders": [], - "id": "5b794251-77fe-4f96-80e7-bf5d20052b89", - "savedPayload": { - "position": { - "x": 19546.85317280532, - "y": 9952.142836655243 - }, - "targetPosition": { - "x": 19308.84717071795, - "y": 10134.771265357858 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "processDependencies": { - "type": "Process Dependencies", - "name": "New Process Dependencies", - "project": "Foundations", - "statusDependencies": [ - { - "type": "Status Dependency", - "name": "Candles Volumes Multi-Time-Frame-Market", - "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", - "project": "Foundations", - "id": "3d475036-d776-46c9-8b45-4abfc3c0a068", - "savedPayload": { - "position": { - "x": 19969.71880045299, - "y": 9680.566778160952 - }, - "targetPosition": { - "x": 19754.997358336164, - "y": 10076.034478858835 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Status Report", - "name": "Candles Volumes Multi-Time-Frame-Market Status Report", - "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } - } - }, - { - "type": "Status Dependency", - "name": "Volume Energy Multi-Time-Frame-Market", - "config": "{\n \"mainUtility\": \"Self Reference\"\n}", - "project": "Foundations", - "id": "54ea1fd7-e6ae-49b3-9cc2-ad377e87f228", - "savedPayload": { - "position": { - "x": 19958.079047314885, - "y": 9979.16948207697 - }, - "targetPosition": { - "x": 19754.997358336164, - "y": 10076.034478858835 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Status Report", - "name": "Market-Volume-Energy", - "id": "31f179ff-02b7-4698-973e-0c6f5791229a" - } - } - } - ], - "dataDependencies": [ - { - "type": "Data Dependency", - "name": "Candles Multi-Time-Frame-Market", - "project": "Foundations", - "id": "bdc50ba6-2df5-4c44-97fc-c5d053c4bb78", - "savedPayload": { - "position": { - "x": 19976.229712538054, - "y": 10117.03747209457 - }, - "targetPosition": { - "x": 19754.997358336164, - "y": 10076.034478858835 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Market", - "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } - } - }, - { - "type": "Data Dependency", - "name": "Volumes Multi-Time-Frame-Market", - "project": "Foundations", - "id": "73d7f0cd-a953-414c-9136-8f6fecb45c1d", - "savedPayload": { - "position": { - "x": 19909.877137867257, - "y": 10239.2437123366 - }, - "targetPosition": { - "x": 19754.997358336164, - "y": 10076.034478858835 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Market", - "id": "9bf0483c-4825-4a46-9cf4-1b5262579fc1" - } - } - } - ], - "dataMineDataDependencies": [], - "id": "9f1b6e80-7369-4878-ac4f-f55f47697ef6", - "savedPayload": { - "position": { - "x": 19754.997358336164, - "y": 10076.034478858835 - }, - "targetPosition": { - "x": 19308.84717071795, - "y": 10134.771265357858 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 4, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "statusReport": { - "type": "Status Report", - "name": "Market-Volume-Energy", - "project": "Foundations", - "id": "31f179ff-02b7-4698-973e-0c6f5791229a", - "savedPayload": { - "position": { - "x": 19586.011030471334, - "y": 10249.576295067385 - }, - "targetPosition": { - "x": 19308.84717071795, - "y": 10134.771265357858 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "executionStartedEvent": { - "type": "Execution Started Event", - "name": "", - "project": "Foundations", - "id": "28cfb256-b2aa-442c-a3a9-2f4cc00b3c6e", - "savedPayload": { - "position": { - "x": 19400.161385069256, - "y": 10253.774266401544 - }, - "targetPosition": { - "x": 19308.84717071795, - "y": 10134.771265357858 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Execution Finished Event", - "name": "New Execution Finished Event", - "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } - } - }, - "executionFinishedEvent": { - "type": "Execution Finished Event", - "name": "New Execution Finished Event", - "project": "Foundations", - "id": "d111d4ef-7738-43ba-b672-4e20558db090", - "savedPayload": { - "position": { - "x": 19328.426099550958, - "y": 10283.48799456393 - }, - "targetPosition": { - "x": 19308.84717071795, - "y": 10134.771265357858 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "7989b423-d86a-4f5d-9b9f-0f28902de5b9", - "savedPayload": { - "position": { - "x": 19308.84717071795, - "y": 10134.771265357858 - }, - "targetPosition": { - "x": 19031.683310964563, - "y": 10019.966235648331 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Process Definition", - "name": "Multi-Time-Frame-Daily", - "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"description\": \"Produces the volume energy indicators.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Time-Frame-Daily\"\n }\n}", - "project": "Foundations", - "processOutput": { - "type": "Process Output", - "name": "New Process Output", - "project": "Foundations", - "outputDatasets": [ - { - "type": "Output Dataset", - "name": "Multi-Time-Frame-Daily Volume Energy", - "project": "Foundations", - "id": "b4b3e792-4ad5-43d8-8d72-c4f54a09fdfa", - "savedPayload": { - "position": { - "x": 19436.4935235257, - "y": 10642.802375894946 - }, - "targetPosition": { - "x": 19176.685902390367, - "y": 10492.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Daily", - "id": "30d3faa5-f952-4268-a5da-c86bd75c9df6" - } - } - } - ], - "outputDatasetFolders": [], - "id": "723abac6-8f77-4845-9b2e-10cc4d763355", - "savedPayload": { - "position": { - "x": 19176.685902390367, - "y": 10492.802375894946 - }, - "targetPosition": { - "x": 18916.878281255034, - "y": 10342.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "processDependencies": { - "type": "Process Dependencies", - "name": "New Process Dependencies", - "project": "Foundations", - "statusDependencies": [ - { - "type": "Status Dependency", - "name": "Volume Energy Multi-Time-Frame-Daily", - "config": "{\n \"mainUtility\": \"Self Reference\"\n}", - "project": "Foundations", - "id": "a0520afd-bee5-41cb-8362-ea92a5e2064e", - "savedPayload": { - "position": { - "x": 19326.685902390367, - "y": 10752.609997030277 - }, - "targetPosition": { - "x": 19066.878281255034, - "y": 10602.609997030277 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Status Report", - "name": "Daily-FasTrend", - "id": "20eaf264-c7ed-4c6e-9855-29942ce0febc" - } - } - }, - { - "type": "Status Dependency", - "name": "", - "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", - "project": "Foundations", - "id": "219c6dff-b1b9-412b-8444-731231cec735", - "savedPayload": { - "position": { - "x": 19279.010315610998, - "y": 10814.74203138624 - }, - "targetPosition": { - "x": 19066.878281255034, - "y": 10602.609997030277 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Status Report", - "name": "New Status Report", - "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } - } - }, - { - "type": "Status Dependency", - "name": "Exchange Raw Data Historic-OHLCVs", - "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", - "project": "Foundations", - "id": "d2648fb7-8996-402b-b796-c103ee35814b", - "savedPayload": { - "position": { - "x": 19216.878281255034, - "y": 10862.417618165608 - }, - "targetPosition": { - "x": 19066.878281255034, - "y": 10602.609997030277 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Status Report", - "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", - "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } - } - } - ], - "dataDependencies": [ - { - "type": "Data Dependency", - "name": "Candles Multi-Time-Frame-Daily", - "project": "Foundations", - "id": "792c6444-5eca-44cc-8d62-31b9ba95393f", - "savedPayload": { - "position": { - "x": 19144.52399478579, - "y": 10892.387744916998 - }, - "targetPosition": { - "x": 19066.878281255034, - "y": 10602.609997030277 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Daily", - "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } - } - }, - { - "type": "Data Dependency", - "name": "Volumes Multi-Time-Frame-Daily", - "project": "Foundations", - "id": "b06b3dfe-4810-4cf4-9061-90aeed150deb", - "savedPayload": { - "position": { - "x": 19066.878281255034, - "y": 10902.609997030277 - }, - "targetPosition": { - "x": 19066.878281255034, - "y": 10602.609997030277 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Daily", - "id": "2e683057-f911-4105-bc77-16f2706d1915" - } - } - } - ], - "dataMineDataDependencies": [], - "id": "bc9ae414-2ce0-498f-a9b2-ff91df2c3927", - "savedPayload": { - "position": { - "x": 19066.878281255034, - "y": 10602.609997030277 - }, - "targetPosition": { - "x": 18916.878281255034, - "y": 10342.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "statusReport": { - "type": "Status Report", - "name": "Daily-FasTrend", - "project": "Foundations", - "id": "20eaf264-c7ed-4c6e-9855-29942ce0febc", - "savedPayload": { - "position": { - "x": 18916.878281255034, - "y": 10492.802375894946 - }, - "targetPosition": { - "x": 18916.878281255034, - "y": 10342.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "executionStartedEvent": { - "type": "Execution Started Event", - "name": "", - "project": "Foundations", - "id": "fdb13810-00de-4a6d-8dd1-0ab3c7c024a4", - "savedPayload": { - "position": { - "x": 18841.878281255034, - "y": 10472.706186462612 - }, - "targetPosition": { - "x": 18916.878281255034, - "y": 10342.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Execution Finished Event", - "name": "New Execution Finished Event", - "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } - } - }, - "executionFinishedEvent": { - "type": "Execution Finished Event", - "name": "New Execution Finished Event", - "project": "Foundations", - "id": "0f607787-3124-40a8-a01c-2536be64c9cd", - "savedPayload": { - "position": { - "x": 18786.974470687368, - "y": 10417.802375894946 - }, - "targetPosition": { - "x": 18916.878281255034, - "y": 10342.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "351a63fe-8026-42ba-ab11-dfefc4092bfc", - "savedPayload": { - "position": { - "x": 19146.488340674092, - "y": 10297.130095401717 - }, - "targetPosition": { - "x": 19031.683310964563, - "y": 10019.966235648331 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "products": [ - { - "type": "Product Definition", - "name": "Volume Energy", - "config": "{\n \"codeName\": \"VolEnergy\",\n \"singularVariableName\": \"VolEnergy\",\n \"pluralVariableName\": \"VolEnergys\"\n}", - "project": "Foundations", - "datasets": [ - { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Market", - "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", - "project": "Foundations", - "id": "55a4ec76-66b3-47eb-90b6-7f4e6728a724", - "savedPayload": { - "position": { - "x": 19308.08856658018, - "y": 10471.01861835594 - }, - "targetPosition": { - "x": 18859.475766400272, - "y": 10435.71202527841 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Daily", - "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", - "project": "Foundations", - "id": "30d3faa5-f952-4268-a5da-c86bd75c9df6", - "savedPayload": { - "position": { - "x": 18964.526180135428, - "y": 10873.278489457363 - }, - "targetPosition": { - "x": 18859.475766400272, - "y": 10435.71202527841 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "record": { - "type": "Record Definition", - "name": "Volume Diffrential Energy", - "project": "Foundations", - "properties": [ - { - "type": "Record Property", - "name": "Begin", - "config": "{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}", - "project": "Foundations", - "recordFormula": { - "type": "Record Formula", - "name": "New Record Formula", - "code": "record.current.begin", - "project": "Foundations", - "id": "3b26b7b1-cb6e-4905-9425-552114023991", - "savedPayload": { - "position": { - "x": 18610.138000542327, - "y": 11870.302822407382 - }, - "targetPosition": { - "x": 18303.694413218134, - "y": 11268.873418580235 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "a02e9abc-34b3-4bd4-83d9-e7a6c4ff16bd", - "savedPayload": { - "position": { - "x": 18303.694413218134, - "y": 11268.873418580235 - }, - "targetPosition": { - "x": 17997.25082589394, - "y": 10667.444014753086 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Record Property", - "name": "End", - "config": "{\n \"codeName\": \"end\",\n \"isString\": false,\n \"isCalculated\": false\n}", - "project": "Foundations", - "recordFormula": { - "type": "Record Formula", - "name": "New Record Formula", - "code": "record.current.end", - "project": "Foundations", - "id": "1c0359c3-b4b0-4a1b-af98-0100d90dd299", - "savedPayload": { - "position": { - "x": 16794.392018239647, - "y": 11280.331189401475 - }, - "targetPosition": { - "x": 17395.821422066794, - "y": 10973.88760207728 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "85541fed-e212-45d3-a7c1-1efae100ee8e", - "savedPayload": { - "position": { - "x": 17395.821422066794, - "y": 10973.88760207728 - }, - "targetPosition": { - "x": 17997.25082589394, - "y": 10667.444014753086 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Record Property", - "name": "Volume differnetial Energy", - "config": "{\n \"codeName\": \"VolumeEnergy\",\n \"isString\": false,\n \"isCalculated\": false\n}", - "project": "Foundations", - "recordFormula": { - "type": "Record Formula", - "name": "New Record Formula", - "code": "variable.VolumeEnergy", - "project": "Foundations", - "id": "06a529cd-1919-4267-9294-ada68d6595cb", - "savedPayload": { - "position": { - "x": 17384.363651245556, - "y": 9464.58520709879 - }, - "targetPosition": { - "x": 17690.80723856975, - "y": 10066.014610925937 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "a6b7ed1b-74a4-4c39-aaea-9a851cd52eb5", - "savedPayload": { - "position": { - "x": 17690.80723856975, - "y": 10066.014610925937 - }, - "targetPosition": { - "x": 17997.25082589394, - "y": 10667.444014753086 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "49c20d97-4103-4e4b-bf28-4e339cb5a55e", - "savedPayload": { - "position": { - "x": 18421.098333777398, - "y": 10948.98605205843 - }, - "targetPosition": { - "x": 18859.475766400272, - "y": 10435.71202527841 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 4, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "dataBuilding": { - "type": "Data Building Procedure", - "name": "New Data Building Procedure", - "project": "Foundations", - "loop": { - "type": "Procedure Loop", - "name": "New Procedure Loop", - "project": "Foundations", - "procedureJavascriptCode": { - "type": "Procedure Javascript Code", - "name": "New Procedure Javascript Code", - "code": "/* Loop Code */\n\nlet candle = record.current\nlet volume = getElement('volumes', candle)\nlet Vl = 28 //period for slow moving average\nlet Vs = 14 //period for fast moving average\nlet m = 1 //kinetic weight\nlet k = 8 //potential weight\n\n//Array building\nvariable.VolShort.push(volume.sell + volume.buy)\nvariable.VolLong.push(volume.sell + volume.buy)\n\n// Keep the array the correct size\n\nif (variable.VolShort.length > Vs) {\n variable.VolShort.splice(0, 1)\n}\n\nif (variable.VolLong.length > Vl) {\n variable.VolLong.splice(0, 1)\n}\n\n//calculate volume mobile average\n\nvariable.VolAs = calVolAv(Vs, variable.VolShort) //fast\nvariable.VolAl = calVolAv(Vl, variable.VolLong) //slow\n\n//calculate volume oscillator and put it in an array prior to velocity calculation\nvariable.VOsc = (variable.VolAs - variable.VolAl) / variable.VolAl\nvariable.VOscA.push(variable.VOsc)\nif (variable.VOscA.length > 2) {\n variable.VOscA.splice(0, 1)\n}\n//calculate kinetic energy\n\nvariable.Speed = variable.VOscA[1] - variable.VOscA[0]\nvariable.Kinetic = kinetic()\n\n//calculate potential energy\nvariable.Potential = 1/2 * k * Math.pow(variable.VOsc,2)\n\n//calculate volume differential energy\nvariable.VDE = ((Math.pow(variable.Kinetic,2) - Math.pow(variable.Potential,2))/(Math.pow(variable.Kinetic,2) + Math.pow(variable.Potential,2)))\nif (isNaN(variable.VDE)) {\nvariable.VolumeEnergy = 0\n}\nelse\n{ \nvariable.VolumeEnergy = variable.VDE\n}//functions\n//Volume average\nfunction calVolAv(periods, array) {\n\tvariable.S = 0\n for(var i = 0 ; i < periods ; i++) {\n\t\tvariable.S = variable.S + array[i]\n\t}\n\treturn variable.S/periods\n}\n//kinetic energy\nfunction kinetic() {\n\tif (variable.VOscA.length < 2) { return 0 }\n\tvariable.Kin = 1/2 * m * Math.pow(variable.Speed,2)\n\treturn variable.Kin\n}\n// End of code :-)", - "project": "Foundations", - "id": "85e573c3-7544-4e4e-a1d5-e16bfcc5e20d", - "savedPayload": { - "position": { - "x": 17494.71513760907, - "y": 11110.452191342009 - }, - "targetPosition": { - "x": 17657.924371086836, - "y": 10955.572411810914 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "cb93c14b-d26f-41bb-ac21-7d0c70db2f9c", - "savedPayload": { - "position": { - "x": 17657.924371086836, - "y": 10955.572411810914 - }, - "targetPosition": { - "x": 17984.342838042365, - "y": 10645.812852748724 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "initialization": { - "type": "Procedure Initialization", - "name": "New Procedure Initialization", - "project": "Foundations", - "procedureJavascriptCode": { - "type": "Procedure Javascript Code", - "name": "New Procedure Javascript Code", - "code": "/* Initialization Code*/\n\nvariable.VolShort = []\nvariable.VolLong = []\nvariable.VolLong = []\nvariable.VOscA = []\n", - "project": "Foundations", - "id": "700c0036-7b33-4c9f-8d12-e446017d4e62", - "savedPayload": { - "position": { - "x": 17672.726424210203, - "y": 10553.507865719948 - }, - "targetPosition": { - "x": 17768.608397697022, - "y": 10581.909400190341 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 1, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "bb8a7dd5-1e94-4b2e-b114-e6b2e03f125f", - "savedPayload": { - "position": { - "x": 17768.608397697022, - "y": 10581.909400190341 - }, - "targetPosition": { - "x": 17984.342838042365, - "y": 10645.812852748724 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 1, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "e4631e0c-2a99-4383-adc7-08179c7ba01a", - "savedPayload": { - "position": { - "x": 17984.342838042365, - "y": 10645.812852748724 - }, - "targetPosition": { - "x": 18859.475766400272, - "y": 10435.71202527841 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 5, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "1cc66458-21b2-411a-ae45-aa4865c55550", - "savedPayload": { - "position": { - "x": 18859.475766400272, - "y": 10435.71202527841 - }, - "targetPosition": { - "x": 19031.683310964563, - "y": 10019.966235648331 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 4, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Plotter Module", - "name": "Volume Energy", - "id": "d6bb640a-eb55-4f39-89f0-45c514d64ba1" - } - } - } - ], - "id": "dffb272a-e008-427b-a068-e37441b8697f", - "savedPayload": { - "position": { - "x": 18520.977170735852, - "y": 10139.896257010187 - }, - "targetPosition": { - "x": 18051.878281255034, - "y": 9765.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Indicator Bot", - "name": "Volume Energy BUY", - "config": "{\n \"codeName\": \"VolEnergyBuy\"\n}", - "project": "Foundations", - "processes": [ - { - "type": "Process Definition", - "name": "Multi-Time-Frame-Market", - "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"description\": \"Produces volume energy Indicator\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Time-Frame-Market\"\n }\n}", - "project": "Foundations", - "processOutput": { - "type": "Process Output", - "name": "New Process Output", - "project": "Foundations", - "outputDatasets": [ - { - "type": "Output Dataset", - "name": "Multi-Time-Frame-Market Volume Buy Energy", - "project": "Foundations", - "id": "43078121-da89-46ec-9f4c-efaeaccd2617", - "savedPayload": { - "position": { - "x": 18351.448073772845, - "y": 10401.88738167441 - }, - "targetPosition": { - "x": 18358.587383036676, - "y": 10101.972343266472 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Market", - "id": "6567053f-90ea-44e7-b0eb-3cde0ffa249a" - } - } - } - ], - "outputDatasetFolders": [], - "id": "6818bc89-0fd3-4025-a68d-718a335f2f4e", - "savedPayload": { - "position": { - "x": 18358.587383036676, - "y": 10101.972343266472 - }, - "targetPosition": { - "x": 18365.726692300508, - "y": 9802.057304858534 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "processDependencies": { - "type": "Process Dependencies", - "name": "New Process Dependencies", - "project": "Foundations", - "statusDependencies": [ - { - "type": "Status Dependency", - "name": "Candles Volumes Multi-Time-Frame-Market", - "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", - "project": "Foundations", - "id": "79d75dd6-3182-4606-8107-8e0e123554a9", - "savedPayload": { - "position": { - "x": 18304.712707284598, - "y": 10601.638645818244 - }, - "targetPosition": { - "x": 18131.516178712627, - "y": 10186.30388626805 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Status Report", - "name": "Candles Volumes Multi-Time-Frame-Market Status Report", - "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } - } - }, - { - "type": "Status Dependency", - "name": "Volume Energy BUY Multi-Time-Frame-Market", - "config": "{\n \"mainUtility\": \"Self Reference\"\n}", - "project": "Foundations", - "id": "72236ef3-8a24-44f6-86b3-b84a23f9eafe", - "savedPayload": { - "position": { - "x": 18079.51182298934, - "y": 10405.211508304848 - }, - "targetPosition": { - "x": 18131.516178712627, - "y": 10186.30388626805 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Status Report", - "name": "Market-Volume-Energy", - "id": "21b10d7a-5557-44f3-9fdb-ae36c1f5bf0f" - } - } - } - ], - "dataDependencies": [ - { - "type": "Data Dependency", - "name": "Candles Multi-Time-Frame-Market", - "project": "Foundations", - "id": "9f6ec893-967d-4926-8b95-2c1bb298148f", - "savedPayload": { - "position": { - "x": 17960.773099303322, - "y": 10332.836479344907 - }, - "targetPosition": { - "x": 18131.516178712627, - "y": 10186.30388626805 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Market", - "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } - } - }, - { - "type": "Data Dependency", - "name": "Volumes Multi-Time-Frame-Market", - "project": "Foundations", - "id": "9ef6fda8-c9c6-4921-9e5f-9a1a76f3e663", - "savedPayload": { - "position": { - "x": 17907.252428607837, - "y": 10204.490980289265 - }, - "targetPosition": { - "x": 18131.516178712627, - "y": 10186.30388626805 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Market", - "id": "9bf0483c-4825-4a46-9cf4-1b5262579fc1" - } - } - } - ], - "dataMineDataDependencies": [], - "id": "507076b1-b8d6-49c7-9316-9b74b44299f1", - "savedPayload": { - "position": { - "x": 18131.516178712627, - "y": 10186.30388626805 - }, - "targetPosition": { - "x": 18365.726692300508, - "y": 9802.057304858534 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 4, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "statusReport": { - "type": "Status Report", - "name": "Market-Volume-Energy", - "project": "Foundations", - "id": "21b10d7a-5557-44f3-9fdb-ae36c1f5bf0f", - "savedPayload": { - "position": { - "x": 18102.42299543033, - "y": 9945.83200087455 - }, - "targetPosition": { - "x": 18365.726692300508, - "y": 9802.057304858534 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "executionStartedEvent": { - "type": "Execution Started Event", - "name": "", - "project": "Foundations", - "id": "d99a010b-126d-4adb-a8dd-756f2de5c338", - "savedPayload": { - "position": { - "x": 18215.769173096538, - "y": 9798.487650226618 - }, - "targetPosition": { - "x": 18365.726692300508, - "y": 9802.057304858534 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Execution Finished Event", - "name": "New Execution Finished Event", - "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } - } - }, - "executionFinishedEvent": { - "type": "Execution Finished Event", - "name": "New Execution Finished Event", - "project": "Foundations", - "id": "aecc06d8-26a9-468c-91e1-cc66a6f65b04", - "savedPayload": { - "position": { - "x": 18237.644498497335, - "y": 9723.987133662573 - }, - "targetPosition": { - "x": 18365.726692300508, - "y": 9802.057304858534 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "22fcb1b8-d317-45cd-991f-8fe1a6046147", - "savedPayload": { - "position": { - "x": 18404.74624689907, - "y": 9954.93441025091 - }, - "targetPosition": { - "x": 18616.878281255034, - "y": 9742.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Process Definition", - "name": "Multi-Time-Frame-Daily", - "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"description\": \"Produces the volume energy indicators.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Time-Frame-Daily\"\n }\n}", - "project": "Foundations", - "processOutput": { - "type": "Process Output", - "name": "New Process Output", - "project": "Foundations", - "outputDatasets": [ - { - "type": "Output Dataset", - "name": "Multi-Time-Frame-Daily Volume Buy Energy", - "project": "Foundations", - "id": "11b18caa-fca0-40f3-a285-a606e4c16ddc", - "savedPayload": { - "position": { - "x": 17906.942074223298, - "y": 9987.810248679354 - }, - "targetPosition": { - "x": 18124.062285654818, - "y": 9780.786545234721 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Daily", - "id": "daf84e29-6004-4217-b98a-8dd04a336fca" - } - } - } - ], - "outputDatasetFolders": [], - "id": "4aa7d33a-97fe-4cc4-becc-351b7e93c77e", - "savedPayload": { - "position": { - "x": 18124.062285654818, - "y": 9780.786545234721 - }, - "targetPosition": { - "x": 18341.182497086338, - "y": 9573.762841790089 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "processDependencies": { - "type": "Process Dependencies", - "name": "New Process Dependencies", - "project": "Foundations", - "statusDependencies": [ - { - "type": "Status Dependency", - "name": "Volume Energy BUY Multi-Time-Frame-Daily", - "config": "{\n \"mainUtility\": \"Self Reference\"\n}", - "project": "Foundations", - "id": "425e37d2-1196-42f0-9bf3-4cfaef1c6726", - "savedPayload": { - "position": { - "x": 31156.833379567517, - "y": 20204.408284412395 - }, - "targetPosition": { - "x": 31006.833379567517, - "y": 19944.600663277062 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Status Report", - "name": "Daily-FasTrend", - "id": "4b26094a-7dc9-4232-a0b6-bed8a845b043" - } - } - }, - { - "type": "Status Dependency", - "name": "", - "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", - "project": "Foundations", - "id": "39df466e-6681-4129-8644-5db9b309aaee", - "savedPayload": { - "position": { - "x": 31084.479093098274, - "y": 20234.378411163783 - }, - "targetPosition": { - "x": 31006.833379567517, - "y": 19944.600663277062 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Status Report", - "name": "New Status Report", - "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } - } - }, - { - "type": "Status Dependency", - "name": "Exchange Raw Data Historic-OHLCVs", - "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", - "project": "Foundations", - "id": "06e2a49f-b5fc-418b-b5bd-3fec97398d9a", - "savedPayload": { - "position": { - "x": 31006.833379567517, - "y": 20244.600663277062 - }, - "targetPosition": { - "x": 31006.833379567517, - "y": 19944.600663277062 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Status Report", - "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", - "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } - } - } - ], - "dataDependencies": [ - { - "type": "Data Dependency", - "name": "Candles Multi-Time-Frame-Daily", - "project": "Foundations", - "id": "f6d20977-7015-457e-8100-2a5a458326d5", - "savedPayload": { - "position": { - "x": 30929.18766603676, - "y": 20234.378411163783 - }, - "targetPosition": { - "x": 31006.833379567517, - "y": 19944.600663277062 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Daily", - "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } - } - }, - { - "type": "Data Dependency", - "name": "Volumes Multi-Time-Frame-Daily", - "project": "Foundations", - "id": "c840cf96-64e3-400f-aae5-8bb9a8b8b080", - "savedPayload": { - "position": { - "x": 30856.833379567517, - "y": 20204.408284412395 - }, - "targetPosition": { - "x": 31006.833379567517, - "y": 19944.600663277062 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Daily", - "id": "2e683057-f911-4105-bc77-16f2706d1915" - } - } - } - ], - "dataMineDataDependencies": [], - "id": "2d6bc102-e3f8-4ee6-a0f6-9084af9ce3fc", - "savedPayload": { - "position": { - "x": 18049.639026589277, - "y": 9644.490522442917 - }, - "targetPosition": { - "x": 18341.182497086338, - "y": 9573.762841790089 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "statusReport": { - "type": "Status Report", - "name": "Daily-FasTrend", - "project": "Foundations", - "id": "4b26094a-7dc9-4232-a0b6-bed8a845b043", - "savedPayload": { - "position": { - "x": 18197.258551044164, - "y": 9531.502958263874 - }, - "targetPosition": { - "x": 18341.182497086338, - "y": 9573.762841790089 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "executionStartedEvent": { - "type": "Execution Started Event", - "name": "", - "project": "Foundations", - "id": "d128209f-2b53-46f1-b5cc-ca5e4795006b", - "savedPayload": { - "position": { - "x": 18237.67064536402, - "y": 9465.202736074329 - }, - "targetPosition": { - "x": 18341.182497086338, - "y": 9573.762841790089 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Execution Finished Event", - "name": "New Execution Finished Event", - "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } - } - }, - "executionFinishedEvent": { - "type": "Execution Finished Event", - "name": "New Execution Finished Event", - "project": "Foundations", - "id": "dc26661d-1478-4e3e-8837-4c83030201a8", - "savedPayload": { - "position": { - "x": 18305.818656759922, - "y": 9427.991106541558 - }, - "targetPosition": { - "x": 18341.182497086338, - "y": 9573.762841790089 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "b42d9d46-ed74-4c46-aa02-9e45e69f0dd5", - "savedPayload": { - "position": { - "x": 18316.878281255034, - "y": 9742.802375894946 - }, - "targetPosition": { - "x": 18616.878281255034, - "y": 9742.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "products": [ - { - "type": "Product Definition", - "name": "Volume Buy Energy", - "config": "{\n \"codeName\": \"VolEnergyB\",\n \"singularVariableName\": \"VolEnergyB\",\n \"pluralVariableName\": \"VolEnergyBs\"\n}", - "project": "Foundations", - "datasets": [ - { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Market", - "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", - "project": "Foundations", - "id": "6567053f-90ea-44e7-b0eb-3cde0ffa249a", - "savedPayload": { - "position": { - "x": 18094.384504838294, - "y": 9825.557260245765 - }, - "targetPosition": { - "x": 18298.68022972109, - "y": 9424.604324361 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Dataset Definition", - "name": "Multi-Time-Frame-Daily", - "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", - "project": "Foundations", - "id": "daf84e29-6004-4217-b98a-8dd04a336fca", - "savedPayload": { - "position": { - "x": 17854.220476453276, - "y": 9354.208815092896 - }, - "targetPosition": { - "x": 18298.68022972109, - "y": 9424.604324361 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "record": { - "type": "Record Definition", - "name": "Volume Buy Energy", - "project": "Foundations", - "properties": [ - { - "type": "Record Property", - "name": "Begin", - "config": "{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}", - "project": "Foundations", - "recordFormula": { - "type": "Record Formula", - "name": "New Record Formula", - "code": "record.current.begin", - "project": "Foundations", - "id": "dc189a73-0401-4a7d-8ad8-49e38d35a44f", - "savedPayload": { - "position": { - "x": 17256.97394512661, - "y": 9955.380187260176 - }, - "targetPosition": { - "x": 17624.605293761753, - "y": 9389.277553897015 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "010e4398-31e4-4aea-9868-f8d674781ef9", - "savedPayload": { - "position": { - "x": 17624.605293761753, - "y": 9389.277553897015 - }, - "targetPosition": { - "x": 17992.236642396896, - "y": 8823.174920533853 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Record Property", - "name": "End", - "config": "{\n \"codeName\": \"end\",\n \"isString\": false,\n \"isCalculated\": false\n}", - "project": "Foundations", - "recordFormula": { - "type": "Record Formula", - "name": "New Record Formula", - "code": "record.current.end", - "project": "Foundations", - "id": "5c269c71-24a3-4aa0-8ea5-b858f8c30806", - "savedPayload": { - "position": { - "x": 16644.08677047822, - "y": 8752.521379605878 - }, - "targetPosition": { - "x": 17318.16170643756, - "y": 8787.848150069865 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "86e3d7cc-211e-47d6-8f33-c4d335a3a848", - "savedPayload": { - "position": { - "x": 17318.16170643756, - "y": 8787.848150069865 - }, - "targetPosition": { - "x": 17992.236642396896, - "y": 8823.174920533853 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Record Property", - "name": "Volume differnetial Energy BUY", - "config": "{\n \"codeName\": \"VolumeEnergyB\",\n \"isString\": false,\n \"isCalculated\": false\n}", - "project": "Foundations", - "recordFormula": { - "type": "Record Formula", - "name": "New Record Formula", - "code": "variable.VolumeEnergyB", - "project": "Foundations", - "id": "a772afed-8080-4772-898a-37267fcef837", - "savedPayload": { - "position": { - "x": 17379.34946774851, - "y": 7620.316112879557 - }, - "targetPosition": { - "x": 17685.793055072703, - "y": 8221.745516706706 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "690798d6-4298-4e8e-a79e-f4cd5bc0b819", - "savedPayload": { - "position": { - "x": 17685.793055072703, - "y": 8221.745516706706 - }, - "targetPosition": { - "x": 17992.236642396896, - "y": 8823.174920533853 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Record Property", - "name": "TmpB", - "config": "{\n \"codeName\": \"TmpB\",\n \"isString\": false,\n \"isCalculated\": false\n}", - "project": "Foundations", - "recordFormula": { - "type": "Record Formula", - "name": "New Record Formula", - "code": "variable.TmpB", - "project": "Foundations", - "id": "5f7aa707-e037-4002-ab7e-907738d3b8fe", - "savedPayload": { - "position": { - "x": 19325.61590220033, - "y": 8611.988392729541 - }, - "targetPosition": { - "x": 18658.926272298613, - "y": 8717.581656631697 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "a40ffb22-dfd5-4945-918d-4abc6d8de79b", - "savedPayload": { - "position": { - "x": 18359.86799103204, - "y": 8257.072287170691 - }, - "targetPosition": { - "x": 17992.236642396896, - "y": 8823.174920533853 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Record Property", - "name": "Relative Agitation", - "config": "{\n \"codeName\": \"RelativeAgitation\",\n \"isString\": false,\n \"isCalculated\": false\n}", - "project": "Foundations", - "recordFormula": { - "type": "Record Formula", - "name": "New Record Formula", - "code": "variable.RelativeAgitation", - "project": "Foundations", - "id": "3e7445d2-8389-4263-ae37-9e1feabb2324", - "savedPayload": { - "position": { - "x": 19340.38651431557, - "y": 8893.828461461828 - }, - "targetPosition": { - "x": 18666.31157835623, - "y": 8858.50169099784 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "7dbb4359-e771-4245-9365-74ef89651a75", - "savedPayload": { - "position": { - "x": 18666.31157835623, - "y": 8858.50169099784 - }, - "targetPosition": { - "x": 17992.236642396896, - "y": 8823.174920533853 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "ffeb5e5d-a851-4bad-90cc-23a88a2087a3", - "savedPayload": { - "position": { - "x": 17992.236642396896, - "y": 8823.174920533853 - }, - "targetPosition": { - "x": 18298.68022972109, - "y": 9424.604324361 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 4, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "dataBuilding": { - "type": "Data Building Procedure", - "name": "New Data Building Procedure", - "project": "Foundations", - "loop": { - "type": "Procedure Loop", - "name": "New Procedure Loop", - "project": "Foundations", - "procedureJavascriptCode": { - "type": "Procedure Javascript Code", - "name": "New Procedure Javascript Code", - "code": "/* Loop Code */\n\nlet candle = record.current\nlet volume = getElement('volumes', candle)\nlet Vl = 28 //period for slow moving average\nlet Vs = 14 //period for fast moving average\nlet m = 1 //kinetic weight\nlet k = 8 //potential weight\n\n//evaluation of sell and buy volume as per indicated in the master data mine\nlet totalVolume = volume.buy + volume.sell\nlet distanceOpenMax = candle.max - candle.open\nlet distanceOpenMin = candle.open - candle.min\nlet distanceMaxMin = candle.max - candle.min\n\nvariable.buyVolume = totalVolume * distanceOpenMax * 100 / distanceMaxMin\nvariable.sellVolume = totalVolume * distanceOpenMin * 100 / distanceMaxMin\n\n\n//Array building\nvariable.VolShort.push(volume.sell + volume.buy)\nvariable.VolLong.push(volume.sell + volume.buy)\nvariable.VolShortB.push(variable.buyVolume)\nvariable.VolLongB.push(variable.buyVolume)\nvariable.VolShortS.push(variable.sellVolume)\nvariable.VolLongS.push(variable.sellVolume)\n\n// Keep the array the correct size\n\nif (variable.VolShort.length > Vs) {\n variable.VolShort.splice(0, 1)\n}\n\nif (variable.VolLong.length > Vl) {\n variable.VolLong.splice(0, 1)\n}\n\nif (variable.VolShortB.length > Vs) {\n variable.VolShortB.splice(0, 1)\n}\n\nif (variable.VolLongB.length > Vl) {\n variable.VolLongB.splice(0, 1)\n}\n\nif (variable.VolShortS.length > Vs) {\n variable.VolShortS.splice(0, 1)\n}\n\nif (variable.VolLongS.length > Vl) {\n variable.VolLongS.splice(0, 1)\n}\n\n//calculate volume mobile average\n\nvariable.VolAsB = calVolAv(Vs, variable.VolShortB) //fast volume mobile average BUY\nvariable.VolAlB = calVolAv(Vl, variable.VolLongB) //slow\nvariable.VolAsS = calVolAv(Vs, variable.VolShortS) //fast volume mobile average SELL\nvariable.VolAlS = calVolAv(Vl, variable.VolLongS) //slow\n\n//calculate volume oscillator and put it in an array prior to velocity calculation\nvariable.VOscAB = (variable.VolAsB - variable.VolAlB) / variable.VolAlB\nvariable.VOscB.push(variable.VOscAB)\nif (variable.VOscB.length > 2) {\n variable.VOscB.splice(0, 1)\n}\n\nvariable.VOscAS = (variable.VolAsS - variable.VolAlS) / variable.VolAlS\nvariable.VOscS.push(variable.VOscAS)\nif (variable.VOscS.length > 2) {\n variable.VOscS.splice(0, 1)\n}\n\n//calculate kinetic energy\n\nvariable.SpeedS = variable.VOscS[1] - variable.VOscS[0]\nvariable.KineticS = kinetic(variable.VOscS,variable.SpeedS)\n\nvariable.SpeedB = variable.VOscB[1] - variable.VOscB[0]\nvariable.KineticB = kinetic(variable.VOscB,variable.SpeedB)\n\n//calculate potential energy\nvariable.PotentialB = 1/2 * k * Math.pow(variable.VOscAB,2)\nvariable.PotentialS = 1/2 * k * Math.pow(variable.VOscAS,2)\n\n//calculate volume differential energy\nvariable.VDEB = ((Math.pow(variable.KineticB,2) - Math.pow(variable.PotentialB,2))/(Math.pow(variable.KineticB,2) + Math.pow(variable.PotentialB,2)))\nif (isNaN(variable.VDEB)) {\nvariable.VolumeEnergyB = 0\n}\nelse\n{ \nvariable.VolumeEnergyB = variable.VDEB\n}\n//calculate Boltzman Temperature\nvariable.TEB = variable.PotentialB + variable.KineticB // total energy BUY\nvariable.TES = variable.PotentialS + variable.KineticS // total energy SELL\n\nvariable.BoltzmanTemperatureB = (variable.TEB - variable.TES) / (Math.log(variable.sellVolume / variable.buyVolume))\n\nif (typeof variable.TEB === \"undefined\" || typeof variable.TES === \"undefined\") {\nvariable.BTmp = 0\n}\nelse \n{\t\nvariable.BTmp = variable.BoltzmanTemperatureB \n}\n\nif (isNaN(variable.BTmp)) {\nvariable.TmpB = 0\n}\nelse \n{\n\tif (isFinite(variable.BTmp) === false) {\n\t\tvariable.TmpB = 25\n\t}\n\telse\n\t{\nvariable.TmpB = variable.BoltzmanTemperatureB\n}\n}\n\nvariable.BoltzmanTemperatureS = (variable.TES - variable.TEB) / (Math.log(variable.buyVolume / variable.sellVolume))\n\nif (typeof variable.TEB === \"undefined\" || typeof variable.TES === \"undefined\") {\nvariable.STmp = 0\n}\nelse \n{\t\nvariable.STmp = variable.BoltzmanTemperatureS \n}\n\nif (isNaN(variable.STmp)) {\nvariable.TmpS = 0\n}\nelse \n{\n\tif (isFinite(variable.STmp) === false) {\n\t\tvariable.TmpS = 25\n\t}\n\telse\n\t{\nvariable.TmpS = variable.BoltzmanTemperatureS\n}\n}\n\n//variable.RelativeAgitation = (Math.pow(10,18) * Math.sqrt(1/2 * (Math.pow(variable.TmpS-(variable.TmpS + variable.TmpB)/2,2) + Math.pow(variable.TmpB-(variable.TmpS + variable.TmpB)/2,2))))\nif(variable.TmpS > variable.TmpB) {\n\tvariable.RelativeAgitation = -1\n}\n\nif(variable.TmpS < variable.TmpB) {\n\tvariable.RelativeAgitation = 1\n}\n\nif(variable.TmpS === variable.TmpB) {\n\tvariable.RelativeAgitation = 0\n}\n//functions\n//Volume average\nfunction calVolAv(periods, array) {\n\tvariable.S = 0\n for(var i = 0 ; i < periods ; i++) {\n\t\tvariable.S = variable.S + array[i]\n\t}\n\treturn variable.S/periods\n}\n//kinetic energy\nfunction kinetic(VOSC,SPEED) {\n\tif (VOSC.length < 2) { return 0 }\n\tvariable.Kin = 1/2 * m * Math.pow(SPEED,2)\n\treturn variable.Kin\n}\n// End of code :-)", - "project": "Foundations", - "id": "a87bd6ed-c56d-4894-a6aa-cd1f82693ac0", - "savedPayload": { - "position": { - "x": 18257.724795076763, - "y": 9003.988607096438 - }, - "targetPosition": { - "x": 18293.561590031295, - "y": 9097.34664974616 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "b991b6d1-07e2-463a-bbad-9ea719b509e5", - "savedPayload": { - "position": { - "x": 18293.561590031295, - "y": 9097.34664974616 - }, - "targetPosition": { - "x": 18333.877984355142, - "y": 9202.374447727094 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "initialization": { - "type": "Procedure Initialization", - "name": "New Procedure Initialization", - "project": "Foundations", - "procedureJavascriptCode": { - "type": "Procedure Javascript Code", - "name": "New Procedure Javascript Code", - "code": "/* Initialization Code*/\n\nvariable.VolShort = []\nvariable.VolLong = []\nvariable.VOscA = []\nvariable.VolShortB = []\nvariable.VolLongB = []\nvariable.VolShortS = []\nvariable.VolLongS = []\nvariable.VOscB = []\nvariable.VOscS = []", - "project": "Foundations", - "id": "56d46637-86d8-4d92-baf3-af40abcb3a69", - "savedPayload": { - "position": { - "x": 18459.74206256511, - "y": 9046.9452554357 - }, - "targetPosition": { - "x": 18396.810023460126, - "y": 9124.659851581397 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 1, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "ad4e8112-0bfc-4d00-9d9a-8344b1d7d382", - "savedPayload": { - "position": { - "x": 18396.810023460126, - "y": 9124.659851581397 - }, - "targetPosition": { - "x": 18333.877984355142, - "y": 9202.374447727094 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 1, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "b5ce0884-bb1a-4f65-bdb6-3b5b53b93eed", - "savedPayload": { - "position": { - "x": 18333.877984355142, - "y": 9202.374447727094 - }, - "targetPosition": { - "x": 18298.68022972109, - "y": 9424.604324361 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 2, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "4986cf90-d0f0-4a61-82c0-fbb5ab2dfb5b", - "savedPayload": { - "position": { - "x": 18298.68022972109, - "y": 9424.604324361 - }, - "targetPosition": { - "x": 18616.878281255034, - "y": 9742.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 4, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Plotter Module", - "name": "Volume Energy BUY", - "id": "540459f7-8321-48aa-b1b8-7b2562436d99" - } - } - } - ], - "id": "432fb0ac-51f0-4260-bdba-ba29783aa802", - "savedPayload": { - "position": { - "x": 18425.972162370275, - "y": 10234.901265375764 + "x": 18583.15189664696, + "y": 10044.636279121207 }, "targetPosition": { "x": 18051.878281255034, @@ -6392,7 +4866,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market On-Balance-Volume", "project": "Foundations", - "id": "98f2b160-4592-40ee-addb-87e2f8e136b6", + "id": "c71f1cc1-d867-45dc-a625-c22f27cc0654", "savedPayload": { "position": { "x": 18560.037673960585, @@ -6416,13 +4890,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "dba2f56d-2081-4407-aca6-0b759616fe98" - } + "id": "c79aea43-56bc-442e-8c9b-7b14ef181072" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Indicator Bot", + "Foundations", + "a45f8d38-6625-4d64-af86-c260d76d900d" + ], + [ + "On-Balance-Volume", + "Product Definition", + "Foundations", + "28a1e2a1-7bd3-485b-b290-51f8b6096a50" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "74aae314-6293-4ce7-93c2-ece10e08227d" + ] + ] } } ], "outputDatasetFolders": [], - "id": "54117362-1f21-45d8-8ba5-cae4a93cb6fa", + "id": "0ce3c5c6-6124-4588-8fd9-f052deeb35c9", "savedPayload": { "position": { "x": 18482.391960429828, @@ -6455,7 +4955,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "670125c0-586a-4a03-bee9-a45e0aa16e44", + "id": "a4d3bcd4-a17d-423e-9152-28bc1fe96119", "savedPayload": { "position": { "x": 18571.471852575363, @@ -6480,7 +4980,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -6488,7 +5014,7 @@ "name": "On-Balance-Volume Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "4d47867f-5188-4eee-b2da-8fa5d8e90945", + "id": "3e1c9615-89bf-4eca-be3f-7f25c30e491b", "savedPayload": { "position": { "x": 18300.053266757597, @@ -6512,8 +5038,34 @@ "referenceParent": { "type": "Status Report", "name": "Market-Volume-Energy", - "id": "93bbb266-e094-4099-8661-3424eb0ce5bb" - } + "id": "1d09948d-8b17-4365-a338-bb84770f8d29" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Indicator Bot", + "Foundations", + "a45f8d38-6625-4d64-af86-c260d76d900d" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "3418e84b-1624-4c80-b467-140ad8bef29c" + ], + [ + "Market-Volume-Energy", + "Status Report", + "Foundations", + "fe579ede-5997-417e-a839-7b54a7ef2ac1" + ] + ] } } ], @@ -6522,7 +5074,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "6bc0c0ba-0f69-427d-b98f-7befd4aecc45", + "id": "aaff2b8d-00b7-4ae5-b7f7-3d5051e7c940", "savedPayload": { "position": { "x": 18165.733893724555, @@ -6547,14 +5099,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Market", "project": "Foundations", - "id": "a13aed86-928f-48f7-a966-e1ee36c81024", + "id": "112554c5-6127-4b97-9e39-991b66bace0b", "savedPayload": { "position": { "x": 18078.222080641066, @@ -6579,12 +5157,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "9bf0483c-4825-4a46-9cf4-1b5262579fc1" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "9bf0483c-4825-4a46-9cf4-1b5262579fc1" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "7d35a3c3-9a6a-46b6-8412-970d18af27dd", + "id": "f8aea84d-8b2a-4ce3-abfa-f0296fabceab", "savedPayload": { "position": { "x": 18288.277676602935, @@ -6611,7 +5215,7 @@ "type": "Status Report", "name": "Market-Volume-Energy", "project": "Foundations", - "id": "93bbb266-e094-4099-8661-3424eb0ce5bb", + "id": "1d09948d-8b17-4365-a338-bb84770f8d29", "savedPayload": { "position": { "x": 18192.614212543107, @@ -6638,7 +5242,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "343897e6-e9aa-459f-86d9-d65ebb0c8439", + "id": "0555f112-0860-4916-b865-c94de7295563", "savedPayload": { "position": { "x": 18259.85737295571, @@ -6663,14 +5267,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "29382f22-78d3-4690-a251-b6a5c7ac84a1", + "id": "0150c3c1-d1fb-45cc-b7e8-842693098333", "savedPayload": { "position": { "x": 18259.85737295571, @@ -6693,7 +5323,7 @@ } } }, - "id": "12d602de-bf2d-45a1-81e3-cc28af9c78ea", + "id": "a38b63fa-4c71-4e6f-bbe4-68b788e81394", "savedPayload": { "position": { "x": 18916.878281255038, @@ -6730,7 +5360,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily On-Balance-Volume", "project": "Foundations", - "id": "117ab719-5935-4a07-a07d-a78c18efbc91", + "id": "c66d3f95-22da-4b2d-a280-6a2987214927", "savedPayload": { "position": { "x": 18016.878281255034, @@ -6754,13 +5384,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "f705e512-c015-41aa-a642-98336faf950d" - } + "id": "2f56b91c-e0b1-4820-9035-322157b07305" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Indicator Bot", + "Foundations", + "a45f8d38-6625-4d64-af86-c260d76d900d" + ], + [ + "On-Balance-Volume", + "Product Definition", + "Foundations", + "28a1e2a1-7bd3-485b-b290-51f8b6096a50" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "d0a7b818-1668-4163-8bd2-e774c3a9fb25" + ] + ] } } ], "outputDatasetFolders": [], - "id": "2e8c8a98-a377-43bd-bb8d-be581422d2a6", + "id": "6dd5eb2b-622a-42a4-a0ad-f64420f4a249", "savedPayload": { "position": { "x": 18166.878281255034, @@ -6793,7 +5449,7 @@ "name": "On-Balance-Volume Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "1131e3ef-b9d1-4d8f-b902-ebee3e08a60c", + "id": "53837055-837b-427c-bf59-6424734bed49", "savedPayload": { "position": { "x": 17907.0706601197, @@ -6817,8 +5473,34 @@ "referenceParent": { "type": "Status Report", "name": "Daily-FasTrend", - "id": "97c791ba-1685-4ce7-9b2c-d7202ab140df" - } + "id": "490a2f7b-92ba-4d06-9b3c-54c2aa4aa925" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Indicator Bot", + "Foundations", + "a45f8d38-6625-4d64-af86-c260d76d900d" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "bc9b2ed6-6ce6-4cab-b878-2a1b05b21318" + ], + [ + "Daily-FasTrend", + "Status Report", + "Foundations", + "5b07dbc2-08b5-4c6d-9e7c-a9bf87fe32b8" + ] + ] } }, { @@ -6826,7 +5508,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "86d6a2d5-005a-4c10-a013-3ca0a939660c", + "id": "7c323e2b-8d5b-40d7-97b0-42a9769847f9", "savedPayload": { "position": { "x": 17844.938625763738, @@ -6851,7 +5533,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -6859,7 +5567,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "7bc9e7f4-947d-450a-b336-b2279ef3ea9e", + "id": "4b70a57b-2500-4e83-8d31-5149b6fdbd58", "savedPayload": { "position": { "x": 17797.26303898437, @@ -6884,7 +5592,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -6893,7 +5627,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "9506e972-c065-4c56-99e2-7da49a2b5d23", + "id": "c317f693-745f-473b-9626-a733aa53628c", "savedPayload": { "position": { "x": 17767.29291223298, @@ -6918,14 +5652,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Daily", "project": "Foundations", - "id": "fc6fdb13-e61a-4f7f-abf5-75c1bce6784b", + "id": "8642dc3c-5851-4c92-a4e6-2a01242fb83b", "savedPayload": { "position": { "x": 17757.0706601197, @@ -6950,12 +5710,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "2e683057-f911-4105-bc77-16f2706d1915" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "2e683057-f911-4105-bc77-16f2706d1915" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "383084fd-68ca-4eed-9197-fb370a02cfaa", + "id": "51bfb608-d943-468e-95e8-570ce5a23e74", "savedPayload": { "position": { "x": 18057.0706601197, @@ -6982,7 +5768,7 @@ "type": "Status Report", "name": "Daily-FasTrend", "project": "Foundations", - "id": "97c791ba-1685-4ce7-9b2c-d7202ab140df", + "id": "490a2f7b-92ba-4d06-9b3c-54c2aa4aa925", "savedPayload": { "position": { "x": 18166.878281255034, @@ -7009,7 +5795,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "80e415fc-8724-4459-8dcf-d3a6fc6da26b", + "id": "a686c8ad-3eff-44d3-b599-63ff4093acb5", "savedPayload": { "position": { "x": 18186.974470687368, @@ -7034,14 +5820,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "7443c001-661a-4d2b-b716-379d5345e9c5", + "id": "ed1b51b6-9146-4231-8210-f0b9fe74058d", "savedPayload": { "position": { "x": 18241.878281255034, @@ -7064,7 +5876,7 @@ } } }, - "id": "be8d1d46-29d4-4070-a10c-c1f7b3fa5831", + "id": "7cbf56e5-ebcb-4522-9f7a-abe62d10aa53", "savedPayload": { "position": { "x": 18687.268221835984, @@ -7100,7 +5912,7 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "dba2f56d-2081-4407-aca6-0b759616fe98", + "id": "c79aea43-56bc-442e-8c9b-7b14ef181072", "savedPayload": { "position": { "x": 18678.57908366401, @@ -7128,7 +5940,7 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "f705e512-c015-41aa-a642-98336faf950d", + "id": "2f56b91c-e0b1-4820-9035-322157b07305", "savedPayload": { "position": { "x": 18151.20310779325, @@ -7167,7 +5979,7 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "b3b521b6-ea8f-4145-84b4-c7b5d6899e7e", + "id": "b9ef4324-8f90-4d2e-a37b-2fe00488133e", "savedPayload": { "position": { "x": 18739.95631520561, @@ -7190,7 +6002,7 @@ } } }, - "id": "ee349066-4f15-4a46-b0bc-5aed3f91c997", + "id": "ce1231a6-a79f-44e7-be20-287b1d9bcc71", "savedPayload": { "position": { "x": 18226.68228842559, @@ -7223,7 +6035,7 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "6ce9c7e5-eda2-431b-b15b-7db4fd841235", + "id": "578dd097-c1e3-4c49-8f1b-5f7a7c9276c3", "savedPayload": { "position": { "x": 17819.32804087816, @@ -7246,7 +6058,7 @@ } } }, - "id": "610dd7d4-50b8-49a7-9a00-86c1eb8c30fa", + "id": "d3b35b03-6ffc-4aca-8341-4df17bd60fcb", "savedPayload": { "position": { "x": 17766.368151261864, @@ -7279,7 +6091,7 @@ "name": "New Record Formula", "code": "variable.OBV", "project": "Foundations", - "id": "26fa50ea-4df2-4184-b569-2983b48e901e", + "id": "c2937047-5220-4668-ad59-19bf15a2ee9a", "savedPayload": { "position": { "x": 16836.65339639982, @@ -7302,7 +6114,7 @@ } } }, - "id": "6e93b31e-77fa-48e5-b491-3f693ee363a8", + "id": "87384c54-9eb3-47d2-888d-6c7fd7e46b3f", "savedPayload": { "position": { "x": 17275.030829022693, @@ -7335,7 +6147,7 @@ "name": "New Record Formula", "code": "variable.VEma20", "project": "Foundations", - "id": "b259d0ce-1a64-41c1-b9f4-24681bef4e0f", + "id": "ce9db6e7-9815-4c44-a4bb-182628a3ad55", "savedPayload": { "position": { "x": 16367.569861105843, @@ -7358,7 +6170,7 @@ } } }, - "id": "879a66c6-cf74-4544-a723-379240bc6a11", + "id": "5b59743a-c0b1-4d43-88f7-54901d605f0f", "savedPayload": { "position": { "x": 17040.489061375705, @@ -7391,7 +6203,7 @@ "name": "New Record Formula", "code": "variable.VEma10", "project": "Foundations", - "id": "874aadad-4f83-4975-866c-8a816d9d5941", + "id": "1d652bc7-4793-4cc3-877b-727ff6369b94", "savedPayload": { "position": { "x": 16686.860208085523, @@ -7414,7 +6226,7 @@ } } }, - "id": "9c31e3a2-ce48-4df9-9d4f-b6438be80d84", + "id": "5d9b1e73-742a-4508-ac79-0658156f3e73", "savedPayload": { "position": { "x": 17200.134234865545, @@ -7447,7 +6259,7 @@ "name": "New Record Formula", "code": "variable.VEma5", "project": "Foundations", - "id": "fc4fdf42-9b11-4664-b616-75f3c8d7637b", + "id": "5c39b7c8-e02b-40f5-a995-04e9b6b85101", "savedPayload": { "position": { "x": 17607.48848241298, @@ -7470,7 +6282,7 @@ } } }, - "id": "14bf2aba-2fee-4b51-9bcc-7fe4fe007088", + "id": "e93ff4a2-e54b-426b-8f8e-06a611c2e7e4", "savedPayload": { "position": { "x": 17660.448372029274, @@ -7503,7 +6315,7 @@ "name": "New Record Formula", "code": "variable.VEma3", "project": "Foundations", - "id": "7110d65b-f8a6-4cc7-b921-61129d7b9a01", + "id": "a91ae867-387a-4cad-9021-67212657ca16", "savedPayload": { "position": { "x": 18590.163126891315, @@ -7526,7 +6338,7 @@ } } }, - "id": "f7765b00-da3c-40fb-9fa4-24a793aeb394", + "id": "720dd76c-4019-4767-8e9b-de6158a2c0c6", "savedPayload": { "position": { "x": 18151.78569426844, @@ -7550,7 +6362,7 @@ } } ], - "id": "d4b38dfd-e47f-48bb-9ad9-d8bed52028e6", + "id": "f0b31b84-59d5-4353-ad0c-aaa451d8c5ae", "savedPayload": { "position": { "x": 17713.408261645567, @@ -7586,7 +6398,7 @@ "name": "New Procedure Javascript Code", "code": "/* Loop Code */\n\nlet candle = record.current\nlet volume = getElement('volumes', candle)\nlet K = 2\n\nvariable.CDL = candle.close\n\nif (variable.previousVEma20 === undefined) {\nvariable.previousVEma20 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma3 === undefined) {\nvariable.previousVEma3 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma5 === undefined) {\nvariable.previousVEma5 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma10 === undefined) {\nvariable.previousVEma10 = volume.buy + volume.sell\n}\n\n//build candle close array\nvariable.cdClose.push(candle.close)\n\n//keep the array to the right size\nif (variable.cdClose.length > K) {\n variable.cdClose.splice(0, 1)\n}\n\n//manage Previous On balance value\n\nif (variable.previousOnBV === undefined) {\n\tvariable.previousOnBV = 0\n}\n\n//procedure for OBV calculation\nif (variable.cdClose[1] > variable.cdClose[0]) {\n\tvariable.OnBV = variable.previousOnBV + volume.buy + volume.sell\n\t}\n\nif (variable.cdClose[1] === variable.cdClose[0]) {\n\tvariable.OnBV = variable.previousOnBV\n\t}\nif (variable.cdClose[1] < variable.cdClose[0]) {\n\tvariable.OnBV = variable.previousOnBV - (volume.buy + volume.sell)\n\t}\n\n//manage NaN and undefined\nif (variable.OnBV === undefined || isNaN(variable.OnBV)) {\n\tvariable.OBV = 0\n\tvariable.previousOnBV = 0\n}\nelse {\n\tvariable.OBV = variable.OnBV\n\tvariable.previousOnBV = variable.OnBV\n}\n\n// Calculate On balance Volume EMA3\nvariable.VEma3 = calculateVEMA(3, variable.OBV, variable.previousVEma3)\nvariable.previousVEma3 = variable.VEma3\n\n// Calculate On balance Volume EMA5\nvariable.VEma5 = calculateVEMA(5, variable.OBV, variable.previousVEma5)\nvariable.previousVEma5 = variable.VEma5\n\n// Calculate On balance Volume EMA10\nvariable.VEma10 = calculateVEMA(10, variable.OBV, variable.previousVEma10)\nvariable.previousVEma10 = variable.VEma10\n\n// Calculate On balance Volume EMA20\nvariable.VEma20 = calculateVEMA(20, variable.OBV, variable.previousVEma20)\nvariable.previousVEma20 = variable.VEma20\n\n\n//On Balance Volume EMA calculation\nfunction calculateVEMA(periods, price, previousVEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousVEMA * (1-k)\n}\n\n\n\n// End of code :-)", "project": "Foundations", - "id": "4f287d2b-72e6-47b8-ac7b-8036cbea4205", + "id": "2728b02d-f022-43c0-98c2-fb2adde6fb42", "savedPayload": { "position": { "x": 16944.182619638243, @@ -7609,7 +6421,7 @@ } } }, - "id": "2915c91b-5ee9-4c53-9b5b-0ffcde51612b", + "id": "df2dc211-658f-4f28-86d9-258583de37ad", "savedPayload": { "position": { "x": 17169.105517757744, @@ -7641,7 +6453,7 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.cdClose = []", "project": "Foundations", - "id": "e3d55a6b-827c-4129-a4e3-e7c31e6c997c", + "id": "30c76ea6-1a54-4266-b5d2-469eea68f07c", "savedPayload": { "position": { "x": 17463.87471691237, @@ -7664,7 +6476,7 @@ } } }, - "id": "809f18d7-b787-4699-a55e-df3698e634a7", + "id": "5751ff89-f41a-477d-8560-c877f7a56d4f", "savedPayload": { "position": { "x": 17511.590592938333, @@ -7687,7 +6499,7 @@ } } }, - "id": "f353e7dc-a8da-42cd-9f40-ac67a5fc3288", + "id": "f94f09c2-baab-4aa7-b202-68abc5b03407", "savedPayload": { "position": { "x": 17618.951313996746, @@ -7710,7 +6522,7 @@ } } }, - "id": "43742a6e-2fc9-4414-8924-f64a2897e252", + "id": "209c2207-f898-4834-9870-e05596b9fbea", "savedPayload": { "position": { "x": 18386.32746191543, @@ -7734,16 +6546,36 @@ "referenceParent": { "type": "Plotter Module", "name": "On-Balance-Volume", - "id": "2b37ed9e-e434-4955-8dd8-0b1dd4d6403b" - } + "id": "eb5ea832-3feb-4289-b174-5dc7ddfc0b37" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ] + ] } } ], - "id": "64422c98-ad05-4475-bc88-48c118f6c341", + "id": "28ef5b45-82a6-4203-a0aa-e9b6b0596d4f", "savedPayload": { "position": { - "x": 18312.20852472557, - "y": 10306.383696636398 + "x": 18500.984730157696, + "y": 10163.675970839422 }, "targetPosition": { "x": 18051.878281255034, @@ -7782,7 +6614,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market Volume Oscillators", "project": "Foundations", - "id": "00db2aca-d6b4-4223-aab4-d5ed93b0bc3a", + "id": "9ca81834-ef64-4f69-8503-389490ab050a", "savedPayload": { "position": { "x": 17828.40629395643, @@ -7806,13 +6638,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "72bc0247-1366-41d9-9c83-d99ec0a554f2" - } + "id": "a90fde5a-ea3a-4ed1-a4bf-94dda02d4968" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Indicator Bot", + "Foundations", + "4e634f77-40f9-471e-b13e-03fbd50f174d" + ], + [ + "Volume Oscillators", + "Product Definition", + "Foundations", + "a01e22f5-7c20-448b-939d-a864b1adbbce" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "8ef4a3b1-1ab0-4871-9a88-417014456fd7" + ] + ] } } ], "outputDatasetFolders": [], - "id": "04e86a3e-28d1-4b66-8fac-dc5a89ec5b12", + "id": "0f7e1396-8bbb-4b39-8078-a23464377d82", "savedPayload": { "position": { "x": 17835.54560322026, @@ -7845,7 +6703,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "4fb028d4-3e2e-4fa6-8dcf-f4998b61f28e", + "id": "b5ca41f8-3fba-4229-9e76-1f7d3372c108", "savedPayload": { "position": { "x": 17781.67092746818, @@ -7870,7 +6728,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -7878,7 +6762,7 @@ "name": "Volume Oscillators Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "6eb46614-3970-4ed1-b354-3484f151c320", + "id": "d254aa36-b3c0-4a88-9893-61f557afa73e", "savedPayload": { "position": { "x": 17556.470043172925, @@ -7902,8 +6786,34 @@ "referenceParent": { "type": "Status Report", "name": "Market-Volume-Energy", - "id": "1ccb0723-c543-451b-a039-7e9f5c86f219" - } + "id": "9dc52a76-7fb5-404e-9e42-6bfaa00dbd60" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Indicator Bot", + "Foundations", + "4e634f77-40f9-471e-b13e-03fbd50f174d" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "12a0a143-1b8d-436a-ae7b-57fd10366dcc" + ], + [ + "Market-Volume-Energy", + "Status Report", + "Foundations", + "6be997ad-680f-43fb-a2ff-6d1e82dfa396" + ] + ] } } ], @@ -7912,7 +6822,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "667ac6fc-0b9b-48bf-9b6a-fa7f6add980f", + "id": "90659931-c6ba-4dc6-a1f4-a85d5f686844", "savedPayload": { "position": { "x": 17437.731319486906, @@ -7937,14 +6847,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Market", "project": "Foundations", - "id": "41317059-6510-4523-988d-d800df99eba0", + "id": "d360a7bb-0ffb-4260-9a36-9b8f3a2a1de0", "savedPayload": { "position": { "x": 17384.21064879142, @@ -7969,12 +6905,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "9bf0483c-4825-4a46-9cf4-1b5262579fc1" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "9bf0483c-4825-4a46-9cf4-1b5262579fc1" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "18229d57-28e2-4741-a4a1-67748b4affbc", + "id": "5f69ecef-ce22-49d0-a58b-14eb52adc00e", "savedPayload": { "position": { "x": 17608.47439889621, @@ -8001,7 +6963,7 @@ "type": "Status Report", "name": "Market-Volume-Energy", "project": "Foundations", - "id": "1ccb0723-c543-451b-a039-7e9f5c86f219", + "id": "9dc52a76-7fb5-404e-9e42-6bfaa00dbd60", "savedPayload": { "position": { "x": 17579.381215613914, @@ -8028,7 +6990,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "1ad48c8f-79e3-4668-b3cd-ddf34ffdad76", + "id": "1a891b9c-ea18-4d98-ba5a-40c35b1dbd00", "savedPayload": { "position": { "x": 17692.72739328012, @@ -8053,14 +7015,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "3fea03f5-9d72-44a8-ba40-f075bffaa884", + "id": "91399b41-905b-4a58-bf79-07cc1f618fae", "savedPayload": { "position": { "x": 17714.60271868092, @@ -8083,7 +7071,7 @@ } } }, - "id": "28002d2e-bd57-4ca5-aeba-f1f8662f6c1a", + "id": "ac2775dd-8b15-450f-b8df-d8a6bc06f1a2", "savedPayload": { "position": { "x": 19122.511553962162, @@ -8120,7 +7108,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily Volume Oscillators", "project": "Foundations", - "id": "b7624c9f-01ee-45ca-8c93-df4c15912bfa", + "id": "ce6a71ca-ef36-4a90-9126-2f11abfe9180", "savedPayload": { "position": { "x": 17383.90029440688, @@ -8144,13 +7132,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "a6a8d993-befb-41fc-934c-dab0a925cd8a" - } + "id": "d3825930-1a9f-4735-9f3a-cb25c0970267" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Indicator Bot", + "Foundations", + "4e634f77-40f9-471e-b13e-03fbd50f174d" + ], + [ + "Volume Oscillators", + "Product Definition", + "Foundations", + "a01e22f5-7c20-448b-939d-a864b1adbbce" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "5205a59e-fc6a-4cad-9f2b-855b6fbab4a4" + ] + ] } } ], "outputDatasetFolders": [], - "id": "b51d2b2f-8394-4770-8dc1-7af5fc68caab", + "id": "9419ed9f-2b77-42ac-8615-95ac1f5a231d", "savedPayload": { "position": { "x": 17601.0205058384, @@ -8183,7 +7197,7 @@ "name": "Volume Oscillators Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "b8f58f0e-72dd-428e-94a8-0ed14c881426", + "id": "fff9fe07-7533-458f-a783-5c4a14e7168e", "savedPayload": { "position": { "x": 30633.7915997511, @@ -8207,8 +7221,34 @@ "referenceParent": { "type": "Status Report", "name": "Daily-FasTrend", - "id": "ab8bc0ae-ae08-423d-aafd-947ad9020e2e" - } + "id": "113c5e66-f550-4896-8f80-498e8bd23e45" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Indicator Bot", + "Foundations", + "4e634f77-40f9-471e-b13e-03fbd50f174d" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "f9ba558a-9118-4cb0-99f9-488a70a65a51" + ], + [ + "Daily-FasTrend", + "Status Report", + "Foundations", + "7b221eae-b346-40cc-a3b4-03451425819c" + ] + ] } }, { @@ -8216,7 +7256,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "301e1e20-7314-4781-97d6-9023faaec2f3", + "id": "18569fe7-c124-4217-a3c7-691c87beca04", "savedPayload": { "position": { "x": 30561.43731328186, @@ -8241,7 +7281,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -8249,7 +7315,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "86fa5c53-ea3a-44f9-8e9c-b4f619483591", + "id": "5e074525-dade-4047-be9b-4a8f9eadf08d", "savedPayload": { "position": { "x": 30483.7915997511, @@ -8274,7 +7340,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -8283,7 +7375,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "bc2d7e1d-0a76-4a25-b5c0-a3278f7ee1dd", + "id": "a39c2405-709a-4cff-9d57-bd013c8cf18f", "savedPayload": { "position": { "x": 30406.145886220344, @@ -8308,14 +7400,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Daily", "project": "Foundations", - "id": "04158508-3101-4b70-83ee-fb993223a2e4", + "id": "d4ccb64f-abfe-43ce-a525-022c08f38d31", "savedPayload": { "position": { "x": 30333.7915997511, @@ -8340,12 +7458,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "2e683057-f911-4105-bc77-16f2706d1915" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "2e683057-f911-4105-bc77-16f2706d1915" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "da79d2bd-6bcb-4403-af23-4662f57a828d", + "id": "02894e1c-38ba-46bc-a9a5-21051ac512f6", "savedPayload": { "position": { "x": 17526.59724677286, @@ -8372,7 +7516,7 @@ "type": "Status Report", "name": "Daily-FasTrend", "project": "Foundations", - "id": "ab8bc0ae-ae08-423d-aafd-947ad9020e2e", + "id": "113c5e66-f550-4896-8f80-498e8bd23e45", "savedPayload": { "position": { "x": 17674.216771227748, @@ -8399,7 +7543,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "51656e2b-3ae3-45a0-9de7-b3293082cf54", + "id": "b6a9d3ae-7263-47bc-9a35-d1fcf570cc48", "savedPayload": { "position": { "x": 17714.628865547606, @@ -8424,14 +7568,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "63f38cb3-2f45-428d-a32b-8c044e76d3e9", + "id": "9f48c31b-9211-478d-beb9-779443783599", "savedPayload": { "position": { "x": 17782.776876943506, @@ -8454,7 +7624,7 @@ } } }, - "id": "1a2e7a0b-35e0-43e3-ad0b-63a0d1bd7927", + "id": "c8c6fd00-9264-4a43-8b6c-02322a7ebadf", "savedPayload": { "position": { "x": 18788.794926809074, @@ -8490,7 +7660,7 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "72bc0247-1366-41d9-9c83-d99ec0a554f2", + "id": "a90fde5a-ea3a-4ed1-a4bf-94dda02d4968", "savedPayload": { "position": { "x": 18864.16751652396, @@ -8518,7 +7688,7 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "a6a8d993-befb-41fc-934c-dab0a925cd8a", + "id": "d3825930-1a9f-4735-9f3a-cb25c0970267", "savedPayload": { "position": { "x": 18113.07296282163, @@ -8557,7 +7727,7 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "44873498-c5f8-4756-b65f-effb0acf43f0", + "id": "7e8b26f9-4658-4d0d-b161-255d3c044f24", "savedPayload": { "position": { "x": 18878.1558691733, @@ -8580,7 +7750,7 @@ } } }, - "id": "657cdfa2-74f2-4917-bb16-814c4744ddf3", + "id": "5956065a-5b13-41cb-a102-dd1ffc8dc802", "savedPayload": { "position": { "x": 18116.124175848927, @@ -8613,7 +7783,7 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "7cf57e00-b098-4a65-9a05-56bbf1dcb276", + "id": "3ff9eabc-6d57-4323-878a-cef7bb286d69", "savedPayload": { "position": { "x": 16961.39830140619, @@ -8636,7 +7806,7 @@ } } }, - "id": "2af989fd-4c8f-4433-b86e-e508cd97a305", + "id": "ab405de9-60b1-41d2-a9d0-f746cce4570f", "savedPayload": { "position": { "x": 17157.74539196537, @@ -8669,7 +7839,7 @@ "name": "New Record Formula", "code": "variable.osc", "project": "Foundations", - "id": "81a94442-e889-4ab9-ba3f-cf67a25d8c92", + "id": "51ff4f2a-0e5c-4493-9c22-5d1738b3bd95", "savedPayload": { "position": { "x": 15437.334914757434, @@ -8692,7 +7862,7 @@ } } }, - "id": "cc7e059c-ae96-4163-a925-b860b194ed3a", + "id": "2020c596-59a3-4d54-a7e2-1ee1867e817a", "savedPayload": { "position": { "x": 16395.713698640993, @@ -8725,7 +7895,7 @@ "name": "New Record Formula", "code": "variable.oscb", "project": "Foundations", - "id": "b87f7cb9-8536-4189-b456-b3cc440ceaae", + "id": "aebaa3da-82b9-4857-b923-88f653a49ad9", "savedPayload": { "position": { "x": 15830.029095875803, @@ -8748,7 +7918,7 @@ } } }, - "id": "4e267077-ad5c-4ebf-92af-89bbc4b7c04c", + "id": "c6097114-8457-4bf9-a23d-f7a6fdf12170", "savedPayload": { "position": { "x": 16592.06078920018, @@ -8781,7 +7951,7 @@ "name": "New Record Formula", "code": "variable.oscs", "project": "Foundations", - "id": "2186cf12-7177-4ddb-864f-a12bb02a91a2", + "id": "911b005d-bcc5-44c9-bde9-1559f301850c", "savedPayload": { "position": { "x": 17746.786663642917, @@ -8804,7 +7974,7 @@ } } }, - "id": "05b68d8d-304f-4a89-8a95-6961925a5f7c", + "id": "7c41a52b-f8a3-40d9-83a3-52b802aac4e5", "savedPayload": { "position": { "x": 17550.439573083735, @@ -8828,7 +7998,7 @@ } } ], - "id": "d2b8cc82-5160-432f-9e55-fa16610f7a68", + "id": "0cf6f374-11fd-43bd-ad6b-b9214f51dfc6", "savedPayload": { "position": { "x": 17354.092482524553, @@ -8864,7 +8034,7 @@ "name": "New Procedure Javascript Code", "code": "\t/* Loop Code */\n\n\tlet candle = record.current\n\tlet volume = getElement('volumes', candle)\n\tlet Vl = 28 //period for slow moving average\n\tlet Vs = 14 //period for fast moving average\n\n\n\t//evaluation of sell and buy volume as per indicated in the master data mine\n\tlet totalVolume = volume.buy + volume.sell\n\tlet distanceOpenMax = candle.max - candle.open\n\tlet distanceOpenMin = candle.open - candle.min\n\tlet distanceMaxMin = candle.max - candle.min\n\n\tvariable.buyVolume = totalVolume * distanceOpenMax * 100 / distanceMaxMin\n\tvariable.sellVolume = totalVolume * distanceOpenMin * 100 / distanceMaxMin\n\n\n\t//Array building\n\tvariable.VolShort.push(volume.sell + volume.buy)\n\tvariable.VolLong.push(volume.sell + volume.buy)\n\tvariable.VolShortB.push(variable.buyVolume)\n\tvariable.VolLongB.push(variable.buyVolume)\n\tvariable.VolShortS.push(variable.sellVolume)\n\tvariable.VolLongS.push(variable.sellVolume)\n\n\t// Keep the array the correct size\n\n\tif (variable.VolShort.length > Vs) {\n\t\tvariable.VolShort.splice(0, 1)\n\t}\n\n\tif (variable.VolLong.length > Vl) {\n\t\tvariable.VolLong.splice(0, 1)\n\t}\n\n\tif (variable.VolShortB.length > Vs) {\n\t\tvariable.VolShortB.splice(0, 1)\n\t}\n\n\tif (variable.VolLongB.length > Vl) {\n\t\tvariable.VolLongB.splice(0, 1)\n\t}\n\n\tif (variable.VolShortS.length > Vs) {\n\t\tvariable.VolShortS.splice(0, 1)\n\t}\n\n\tif (variable.VolLongS.length > Vl) {\n\t\tvariable.VolLongS.splice(0, 1)\n\t}\n\n\t//calculate volume mobile average\n\n\tvariable.VolAs = calVolAv(Vs, variable.VolShort) //fast volume mobile average\n\tvariable.VolAl = calVolAv(Vl, variable.VolLong) //slow\n\tvariable.VolAsB = calVolAv(Vs, variable.VolShortB) //fast volume mobile average BUY\n\tvariable.VolAlB = calVolAv(Vl, variable.VolLongB) //slow\n\tvariable.VolAsS = calVolAv(Vs, variable.VolShortS) //fast volume mobile average SELL\n\tvariable.VolAlS = calVolAv(Vl, variable.VolLongS) //slow\n\n\t//calculate volume oscillator and put it in an array prior to velocity calculation\n\tvariable.VOscAB = (variable.VolAsB - variable.VolAlB) / variable.VolAlB\n\tvariable.VOscAS = (variable.VolAsS - variable.VolAlS) / variable.VolAlS\n\tvariable.VOscA = (variable.VolAs - variable.VolAl) / variable.VolAl\n\n\tif (isNaN(variable.VOscA)) {\n\n\tvariable.osc = 0\n\t}\n\telse {\n\tvariable.osc = variable.VOscA\n\n\t}\n\tif (isNaN(variable.VOscAB)) {\n\n\tvariable.oscb = 1\n\t}\n\telse {\n\tvariable.oscb = variable.VOscAB\n\t}\t\n\tif (isNaN(variable.VOscAS)) {\n\n\tvariable.oscs = -1\n\t}\n\telse {\n\tvariable.oscs = variable.VOscAS\n\t}\n\t\n\t\n\t//functions\n\t//Volume average\n\tfunction calVolAv(periods, array) {\n\t\tvariable.S = 0\n\t\tfor(var i = 0 ; i < periods ; i++) {\n\t\t\tvariable.S = variable.S + array[i]\n\t\t}\n\t\treturn variable.S/periods\n\t}\n\n\t// End of code :-)", "project": "Foundations", - "id": "2450333e-f745-4c2c-b067-ebe83322017c", + "id": "51295394-14b5-44c0-8c15-28da43cd93dc", "savedPayload": { "position": { "x": 17727.980683742957, @@ -8887,7 +8057,7 @@ } } }, - "id": "12b46dfb-a41e-48be-988f-883a8ff5754f", + "id": "810d4c4b-47d0-40f1-92de-2119d105d177", "savedPayload": { "position": { "x": 17825.48858380787, @@ -8919,7 +8089,7 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.VolShort = []\nvariable.VolLong = []\nvariable.VOscA = []\nvariable.VolShortB = []\nvariable.VolLongB = []\nvariable.VolShortS = []\nvariable.VolLongS = []\nvariable.VOscB = []\nvariable.VOscS = []", "project": "Foundations", - "id": "b04666e1-d329-4984-a6e7-3b479b280927", + "id": "ef9ab1e5-6ce8-4326-9fc8-da2f054e13b2", "savedPayload": { "position": { "x": 17854.098343878024, @@ -8942,7 +8112,7 @@ } } }, - "id": "572deadf-cba4-4f28-b009-4e159aaa2557", + "id": "0ee8c538-7fb4-4eab-8493-00c08ad8c0e4", "savedPayload": { "position": { "x": 17922.06575452272, @@ -8965,7 +8135,7 @@ } } }, - "id": "17c6e2bd-ba5a-48b7-ba3a-ec7827571bca", + "id": "a62ac616-50a0-410b-bb10-250cab6e9820", "savedPayload": { "position": { "x": 17990.033165167413, @@ -8988,7 +8158,7 @@ } } }, - "id": "07aa9bc3-f094-40bd-8ebd-be4428f19ff2", + "id": "50666a49-509e-45bd-8499-7766c9009da6", "savedPayload": { "position": { "x": 18312.471266408113, @@ -9012,16 +8182,36 @@ "referenceParent": { "type": "Plotter Module", "name": "Volume Oscillators", - "id": "56ff8ae2-3435-4a2c-9bff-76515bd9cfc8" - } + "id": "be515793-ba61-474d-af7d-0c10442c7409" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Plotter", + "Foundations", + "5ad09001-0b4f-4217-a83f-d4eddaef9c9a" + ], + [ + "Volume Oscillators", + "Plotter Module", + "Foundations", + "6d1c59e5-a8b7-4864-8af2-14cb56633e8d" + ] + ] } } ], - "id": "14eb101f-96aa-494c-9083-8ac83914db25", + "id": "8ed2d1c3-c946-4132-a309-1c265540e13b", "savedPayload": { "position": { - "x": 18185.39084162882, - "y": 10350.75912320404 + "x": 18392.717129293727, + "y": 10259.59269543114 }, "targetPosition": { "x": 18051.878281255034, @@ -9060,7 +8250,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market HoltWinters", "project": "Foundations", - "id": "a4e3c6cc-d8f8-47cc-b1a0-869c9233375a", + "id": "596f9ed9-9b93-4a63-a406-3d26ff57204e", "savedPayload": { "position": { "x": 18156.584614518204, @@ -9084,13 +8274,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "e2d6056d-6999-4ab7-9a0a-f18aa1ca8350" - } + "id": "3128b140-04cf-4129-b116-e78048720a06" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters forecast", + "Indicator Bot", + "Foundations", + "a4fde50c-d9dd-4f49-b492-60a96b82d71f" + ], + [ + "HoltWinters", + "Product Definition", + "Foundations", + "aa587f31-1fe7-431f-a26b-601edbad53bb" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "cd38153d-a5ce-4b80-9e78-0b69dca40209" + ] + ] } } ], "outputDatasetFolders": [], - "id": "2fa38e6b-61f3-4234-b743-f32c827bb09f", + "id": "6642e5f2-3fbf-4cd9-a45d-504bb64a2ca8", "savedPayload": { "position": { "x": 18596.23944045225, @@ -9123,7 +8339,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "cf9ed193-a69a-4944-b599-6c46482fce6d", + "id": "a8eea463-39f7-450c-ba9b-8a7f36bda918", "savedPayload": { "position": { "x": 18786.2067928767, @@ -9148,7 +8364,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -9156,7 +8398,7 @@ "name": "Holt-Winters forecast Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "292ef829-0f36-4a3f-a0bc-19de7e30ec5c", + "id": "c907c126-4211-45c6-b504-cbd15d9ca63d", "savedPayload": { "position": { "x": 18494.72539536913, @@ -9180,8 +8422,34 @@ "referenceParent": { "type": "Status Report", "name": "HoltWinters", - "id": "d57ef53b-5834-4452-ba08-22db1c25ea1a" - } + "id": "c278d559-0e4d-4acb-8818-06877ed34cae" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters forecast", + "Indicator Bot", + "Foundations", + "a4fde50c-d9dd-4f49-b492-60a96b82d71f" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "4515fe7b-cfa0-4828-89ec-0e36527296a0" + ], + [ + "HoltWinters", + "Status Report", + "Foundations", + "a362424e-cf8b-4f45-b683-29df033d1bcd" + ] + ] } } ], @@ -9190,7 +8458,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "5f2737bf-c4f4-4a24-8fb7-ba3837ce9065", + "id": "8872e85f-03f6-468b-a90b-2382f5a3fe34", "savedPayload": { "position": { "x": 18355.858321573367, @@ -9215,14 +8483,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Market", "project": "Foundations", - "id": "3e5c15ab-8328-4fa1-a5e7-cf4d5fa4fcce", + "id": "77a45de1-833d-4fa3-bd9e-6ef90c0d2f6d", "savedPayload": { "position": { "x": 18247.79023243334, @@ -9247,12 +8541,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "9bf0483c-4825-4a46-9cf4-1b5262579fc1" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "9bf0483c-4825-4a46-9cf4-1b5262579fc1" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "c7ce5f86-e2cb-4ce7-bca3-dda494ee5b2d", + "id": "658e0ef0-f4bd-4aff-9a1c-aa9e603764ce", "savedPayload": { "position": { "x": 18436.49111022106, @@ -9279,7 +8599,7 @@ "type": "Status Report", "name": "HoltWinters", "project": "Foundations", - "id": "d57ef53b-5834-4452-ba08-22db1c25ea1a", + "id": "c278d559-0e4d-4acb-8818-06877ed34cae", "savedPayload": { "position": { "x": 18296.65058002588, @@ -9306,7 +8626,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "5caa2b5d-ee03-4a7d-bf70-04279e84b647", + "id": "aaf6dd10-5d47-422a-a687-a3dcffb718fa", "savedPayload": { "position": { "x": 18326.39131190213, @@ -9331,14 +8651,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "bbd9eab3-25f6-4d7c-a50b-a809ca414af9", + "id": "d57b1ea9-6ba6-423f-b33d-f9b6cc79908b", "savedPayload": { "position": { "x": 18310.2478603172, @@ -9361,7 +8707,7 @@ } } }, - "id": "21c149e3-891f-4e45-9eb7-030c701e8d6c", + "id": "5e1478dd-d01c-4a11-8d47-8b479278c65f", "savedPayload": { "position": { "x": 19061.586854193523, @@ -9398,7 +8744,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily HoltWinters", "project": "Foundations", - "id": "ae9a0e64-d9a9-41c7-9358-3a6283fe1d06", + "id": "270b96af-0510-4f91-8071-d53b863488d8", "savedPayload": { "position": { "x": 18144.579524189787, @@ -9422,13 +8768,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "3e7ecc9a-3322-430a-8d9e-c524987cfd05" - } + "id": "c532be22-60c3-4909-9d15-0ea78d809f08" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters forecast", + "Indicator Bot", + "Foundations", + "a4fde50c-d9dd-4f49-b492-60a96b82d71f" + ], + [ + "HoltWinters", + "Product Definition", + "Foundations", + "aa587f31-1fe7-431f-a26b-601edbad53bb" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "5673db8b-2cff-47ca-899b-1bc47599cd3f" + ] + ] } } ], "outputDatasetFolders": [], - "id": "a0fb561b-d08c-4b74-8978-daedc13d5370", + "id": "61e1fb4f-0df6-4c40-9542-60a2d8e6c1c2", "savedPayload": { "position": { "x": 18237.28462250227, @@ -9461,7 +8833,7 @@ "name": "Holt-Winters forecast Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "bb3f3c82-f3b6-4527-9b25-5dacffe38242", + "id": "739542f1-49f5-405f-be5f-9caeaba8a0e3", "savedPayload": { "position": { "x": 18014.34117485905, @@ -9485,8 +8857,34 @@ "referenceParent": { "type": "Status Report", "name": "HoltWinters", - "id": "fb28eaa7-9d36-4b15-8aac-63bb8352e717" - } + "id": "ee4a06b2-e629-4630-a6fd-6043f4fc0efe" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters forecast", + "Indicator Bot", + "Foundations", + "a4fde50c-d9dd-4f49-b492-60a96b82d71f" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "e17442c2-f094-488c-bb8a-0728252550a6" + ], + [ + "HoltWinters", + "Status Report", + "Foundations", + "c37a35b0-4b4b-4f88-8c92-3f8c1c1295e7" + ] + ] } }, { @@ -9494,7 +8892,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "adb778a8-823e-4767-ab8d-5dab83247212", + "id": "4ae337d0-dede-4448-a19d-18d84416d78e", "savedPayload": { "position": { "x": 17943.654562667027, @@ -9519,7 +8917,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -9527,7 +8951,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "571a0480-e040-4bca-be04-0275f3715402", + "id": "dc02f7bd-a39e-4c01-9744-c7fc9a48ccbf", "savedPayload": { "position": { "x": 17884.102825528316, @@ -9552,7 +8976,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -9561,7 +9011,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "0861d105-82ad-4312-984f-a95b1a385b7c", + "id": "b656b0bd-66c1-47bd-b578-6e9b2f9e4233", "savedPayload": { "position": { "x": 17839.744315915024, @@ -9586,14 +9036,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Daily", "project": "Foundations", - "id": "deb73061-d7fe-4968-8cfe-dcea56ed118f", + "id": "ec0a4543-fba8-448e-967c-65b0197a68de", "savedPayload": { "position": { "x": 17813.601992951393, @@ -9618,12 +9094,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "2e683057-f911-4105-bc77-16f2706d1915" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "2e683057-f911-4105-bc77-16f2706d1915" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "ebc3a2d5-9617-4bf2-a746-4499a04ed847", + "id": "7a075aa6-07b1-4f99-9647-886b14559d98", "savedPayload": { "position": { "x": 18107.046273171534, @@ -9650,7 +9152,7 @@ "type": "Status Report", "name": "HoltWinters", "project": "Foundations", - "id": "fb28eaa7-9d36-4b15-8aac-63bb8352e717", + "id": "ee4a06b2-e629-4630-a6fd-6043f4fc0efe", "savedPayload": { "position": { "x": 18183.26758070468, @@ -9677,7 +9179,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "b9c876a5-2a80-4971-ba1b-a0d2ebb75d62", + "id": "26760ca4-00c9-42e8-bf90-261fb9fb7019", "savedPayload": { "position": { "x": 18187.331243370478, @@ -9702,14 +9204,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "84e3cac2-3873-450e-82b3-ee12902007a9", + "id": "0294c043-9fac-4747-9afa-a91cd2afb912", "savedPayload": { "position": { "x": 18229.620129860923, @@ -9732,7 +9260,7 @@ } } }, - "id": "46fdf280-1661-490b-8b37-0e2162465789", + "id": "32f0550b-8668-4ce8-a67c-94a652701a75", "savedPayload": { "position": { "x": 18606.295427132012, @@ -9768,7 +9296,7 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "e2d6056d-6999-4ab7-9a0a-f18aa1ca8350", + "id": "3128b140-04cf-4129-b116-e78048720a06", "savedPayload": { "position": { "x": 18650.994333717183, @@ -9796,7 +9324,7 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "3e7ecc9a-3322-430a-8d9e-c524987cfd05", + "id": "c532be22-60c3-4909-9d15-0ea78d809f08", "savedPayload": { "position": { "x": 17616.10101201931, @@ -9835,7 +9363,7 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "17572239-ed64-4c10-8d9f-4dc793d29e0b", + "id": "95d3ff74-0182-42dd-917b-cccb29bf3277", "savedPayload": { "position": { "x": 19077.64507253988, @@ -9858,7 +9386,7 @@ } } }, - "id": "34ed1619-397f-4583-90ab-d4bae798c33f", + "id": "13296e4c-419c-48de-b5d9-e11f2649b735", "savedPayload": { "position": { "x": 18081.78724517402, @@ -9891,7 +9419,7 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "590406ab-8a46-4afe-9b0b-b4dcc9002f8e", + "id": "534f8e20-e263-4e6e-8f4e-9f73adf3ea59", "savedPayload": { "position": { "x": 18016.137559514424, @@ -9914,7 +9442,7 @@ } } }, - "id": "ece5b3fe-b899-4763-9954-0f125d26e13c", + "id": "3dcfe3bd-0a08-414f-8da7-bc597290a17b", "savedPayload": { "position": { "x": 17551.03348866129, @@ -9947,7 +9475,7 @@ "name": "New Record Formula", "code": "variable.Y", "project": "Foundations", - "id": "8a31e9bf-d386-4f1d-8d75-4dc307a8ed3e", + "id": "ec1a2f08-1852-4cd4-972e-eac086a4aefd", "savedPayload": { "position": { "x": 17903.843353418746, @@ -9970,7 +9498,7 @@ } } }, - "id": "144083b1-d0e2-4097-9df8-8a7bec6766ef", + "id": "fae5f1a0-3465-4986-a78d-df498c250c5e", "savedPayload": { "position": { "x": 17494.886385613452, @@ -10003,7 +9531,7 @@ "name": "New Record Formula", "code": "variable.forecast", "project": "Foundations", - "id": "c712c335-fb22-445c-8d9a-bdc29baaa1f1", + "id": "170890dc-84a3-4a9f-ace4-67b645176fd9", "savedPayload": { "position": { "x": 17750.535527280383, @@ -10026,7 +9554,7 @@ } } }, - "id": "f6af6dfd-4282-433d-bb5e-83e670d832d2", + "id": "ddf92ce9-4fe8-4c4b-83e8-43cca7a1688b", "savedPayload": { "position": { "x": 17418.23247254427, @@ -10059,7 +9587,7 @@ "name": "New Record Formula", "code": "variable.A", "project": "Foundations", - "id": "b2c0be67-dc78-4c77-87c6-84ef610a2d41", + "id": "4daa4b9a-65ab-4495-aa7a-be906629b0a5", "savedPayload": { "position": { "x": 17444.408536196785, @@ -10082,7 +9610,7 @@ } } }, - "id": "f1a765d2-73dd-477b-80fd-777324488f5e", + "id": "16571637-8d48-45f1-8b0f-5b5225250c2a", "savedPayload": { "position": { "x": 17324.91549673391, @@ -10115,7 +9643,7 @@ "name": "New Record Formula", "code": "variable.B", "project": "Foundations", - "id": "da5277df-948a-40b8-aeff-20b034e2eb73", + "id": "b34a16d3-2964-486a-885b-6f5ee03c2fec", "savedPayload": { "position": { "x": 17286.457432606792, @@ -10138,7 +9666,7 @@ } } }, - "id": "40146413-f164-4f13-bca0-7e00318e213f", + "id": "26041567-d9f0-46f3-9936-64e94f5ce02a", "savedPayload": { "position": { "x": 17219.614761007248, @@ -10171,7 +9699,7 @@ "name": "New Record Formula", "code": "variable.forecast5", "project": "Foundations", - "id": "3748a459-6be5-4602-8aca-a0296c9276c7", + "id": "3ab8b619-ef2f-4b38-a798-c98cfedc1292", "savedPayload": { "position": { "x": 17118.451017022733, @@ -10194,7 +9722,7 @@ } } }, - "id": "634c3aca-a3c8-4402-93de-9897471bc7ab", + "id": "ded21a3b-25cc-4ff9-869c-8589f5fb1b74", "savedPayload": { "position": { "x": 17107.610483951208, @@ -10227,7 +9755,7 @@ "name": "New Record Formula", "code": "variable.forecast10", "project": "Foundations", - "id": "ce302298-2b3b-4bad-96c3-f9abdfc24513", + "id": "2916d87d-0b00-4a86-af65-c97320eae027", "savedPayload": { "position": { "x": 16948.81383265568, @@ -10250,7 +9778,7 @@ } } }, - "id": "d6e47e3c-954b-4838-8004-de5a246e15bb", + "id": "5568d11d-0de8-421d-87e4-c618066b2d35", "savedPayload": { "position": { "x": 16994.519027706505, @@ -10283,7 +9811,7 @@ "name": "New Record Formula", "code": "variable.forecast20", "project": "Foundations", - "id": "3fe72bc9-6774-4d24-91dd-41a7aa1fc50b", + "id": "155d5bf2-7538-4903-8e06-6b7943c0c19c", "savedPayload": { "position": { "x": 16786.052196272994, @@ -10306,7 +9834,7 @@ } } }, - "id": "638c8ea3-fef6-4cf6-9620-1a6b883e217d", + "id": "828742ab-f002-44e4-b1f2-89df167671a9", "savedPayload": { "position": { "x": 16886.011270118048, @@ -10339,7 +9867,7 @@ "name": "New Record Formula", "code": "variable.forecast30", "project": "Foundations", - "id": "a3f3061d-bfd7-4660-9996-71aa75c0c939", + "id": "c7732871-a2aa-4ed0-b2f9-a26339ddf72f", "savedPayload": { "position": { "x": 16638.327655956313, @@ -10362,7 +9890,7 @@ } } }, - "id": "87802614-584f-4f31-93fe-cf26f06a0537", + "id": "0318abe8-d84e-4b47-a225-8196c36fd3df", "savedPayload": { "position": { "x": 16787.52824324026, @@ -10395,7 +9923,7 @@ "name": "New Record Formula", "code": "variable.trend", "project": "Foundations", - "id": "9fd76d01-aed7-4a81-8dd4-00a17598ed6c", + "id": "0f8a35e2-57cd-4489-8c40-fc2093e00694", "savedPayload": { "position": { "x": 16513.047737001067, @@ -10418,7 +9946,7 @@ } } }, - "id": "a4d36914-b264-4863-9658-86bf2e6e375b", + "id": "bdf2bd09-29a1-4ace-a7eb-75ca164a13ae", "savedPayload": { "position": { "x": 16704.0082972701, @@ -10451,7 +9979,7 @@ "name": "New Record Formula", "code": "variable.maxForecast5", "project": "Foundations", - "id": "6ac80e20-9d22-40e1-b32d-fab43025158d", + "id": "412e4222-cf03-42c1-8a3b-c3b85c26d84a", "savedPayload": { "position": { "x": 16416.494497667063, @@ -10474,7 +10002,7 @@ } } }, - "id": "3c57eaa7-d812-4e73-8de4-b5c2258970a0", + "id": "cc810cbb-7819-4422-b830-a05f83d41cb2", "savedPayload": { "position": { "x": 16639.639471047427, @@ -10507,7 +10035,7 @@ "name": "New Record Formula", "code": "variable.minForecast5", "project": "Foundations", - "id": "ad4f0e6b-a85e-4217-b081-16717f853ce3", + "id": "8a980e56-dc5b-4964-b5d5-2bdad09d38ea", "savedPayload": { "position": { "x": 16353.50952054572, @@ -10530,7 +10058,7 @@ } } }, - "id": "b03af282-d991-40d0-a4b3-e2a24cd725e0", + "id": "7f8427a4-a238-401a-a3b8-6c7e1c29906e", "savedPayload": { "position": { "x": 16597.649486299866, @@ -10563,7 +10091,7 @@ "name": "New Record Formula", "code": "variable.minForecast10", "project": "Foundations", - "id": "e1e1c521-efb6-432b-af4b-3b11faed8b2b", + "id": "afcf0717-bef4-4117-8931-e141f90ad429", "savedPayload": { "position": { "x": 16327.25113539227, @@ -10586,7 +10114,7 @@ } } }, - "id": "e0ff18a7-15f2-4010-833c-cbabc85bb495", + "id": "3c96d3dd-87e7-432f-9cfe-5374786b38cf", "savedPayload": { "position": { "x": 16580.143896197565, @@ -10619,7 +10147,7 @@ "name": "New Record Formula", "code": "variable.maxForecast10", "project": "Foundations", - "id": "951950ca-3421-47da-b7e0-483b9f1d1977", + "id": "b7148376-784c-4ded-a40d-63d3e67a3192", "savedPayload": { "position": { "x": 16339.03604728376, @@ -10642,7 +10170,7 @@ } } }, - "id": "241137c6-c845-411f-bcab-ab281e0dba44", + "id": "8abc8b8b-2b2a-48dc-8efc-eece47d9ff1f", "savedPayload": { "position": { "x": 16588.000504125226, @@ -10675,7 +10203,7 @@ "name": "New Record Formula", "code": "variable.minForecast20", "project": "Foundations", - "id": "8ae94093-7a95-48cd-b4e0-6dc86a2cf7c9", + "id": "bd8e97e6-157a-42b2-9aa6-9832cd8517e8", "savedPayload": { "position": { "x": 16388.27331152846, @@ -10698,7 +10226,7 @@ } } }, - "id": "43ed0657-cd3d-4c3d-8cbf-fa9a1127b911", + "id": "73fae047-bb10-4e76-9388-f03ec33bd84d", "savedPayload": { "position": { "x": 16620.825346955025, @@ -10731,7 +10259,7 @@ "name": "New Record Formula", "code": "variable.maxForecast20", "project": "Foundations", - "id": "22a79807-b456-42d4-8c45-b362b7ed2c31", + "id": "392bc76a-fdf6-4a92-bb24-35db4dbe2eb6", "savedPayload": { "position": { "x": 16472.493966100217, @@ -10754,7 +10282,7 @@ } } }, - "id": "058e93e9-3cf2-49f7-9c0f-1059eb596e72", + "id": "ced6a76e-2d0a-4efb-bcf4-383c69864624", "savedPayload": { "position": { "x": 16676.972450002864, @@ -10787,7 +10315,7 @@ "name": "New Record Formula", "code": "variable.minForecast30", "project": "Foundations", - "id": "e88eb709-ff1e-4357-ab82-ea190a01c72a", + "id": "d14e8516-d9c6-4c36-a633-b452f7b246bf", "savedPayload": { "position": { "x": 16587.47483570399, @@ -10810,7 +10338,7 @@ } } }, - "id": "78ef2cbf-2f46-461a-8cb9-b4502f62b48f", + "id": "6efd90c2-005f-456d-8960-28ec771a2cf2", "savedPayload": { "position": { "x": 16753.626363072046, @@ -10843,7 +10371,7 @@ "name": "New Record Formula", "code": "variable.maxForecast30", "project": "Foundations", - "id": "ec9bbb83-f010-41db-867f-3446255733b8", + "id": "6e56a151-3ac6-408b-9f1d-28f75c964dd9", "savedPayload": { "position": { "x": 16727.450299419535, @@ -10866,7 +10394,7 @@ } } }, - "id": "6d38bf5e-e7aa-4b21-bc58-1b5de87ab276", + "id": "51731a0e-0f2f-41e8-8baf-45288a25cd0e", "savedPayload": { "position": { "x": 16846.94333888241, @@ -10899,7 +10427,7 @@ "name": "New Record Formula", "code": "variable.T5Begin", "project": "Foundations", - "id": "066d501a-28da-444a-a599-4b814ab6907a", + "id": "35a4d15a-8bbc-44ac-93ba-52efb45ba8dc", "savedPayload": { "position": { "x": 16885.401403009524, @@ -10922,7 +10450,7 @@ } } }, - "id": "64ccd4da-62d6-44e5-8709-b3b70d60b291", + "id": "abf33c08-34ed-482b-98a4-d76c098ae195", "savedPayload": { "position": { "x": 16952.24407460907, @@ -10955,7 +10483,7 @@ "name": "New Record Formula", "code": "variable.T10Begin", "project": "Foundations", - "id": "44b58879-fd92-439e-a12d-0254b78f17d8", + "id": "1cd0869e-d818-4165-acf3-4409673f2be1", "savedPayload": { "position": { "x": 17053.407818593583, @@ -10978,7 +10506,7 @@ } } }, - "id": "dd71bf59-2b1d-4546-a8fe-b2bc3451a72e", + "id": "c815a299-65d3-4442-ad78-25e9730b0906", "savedPayload": { "position": { "x": 17064.24835166511, @@ -11011,7 +10539,7 @@ "name": "New Record Formula", "code": "variable.T20Begin", "project": "Foundations", - "id": "68e82e6b-e7c5-4c52-acf2-32060e64393c", + "id": "6bc7292c-f852-46ec-b5ac-608e91f670fd", "savedPayload": { "position": { "x": 17223.045002960636, @@ -11034,7 +10562,7 @@ } } }, - "id": "b526a70b-45db-4832-be5f-c5f2c63f80d1", + "id": "2d2fa9ff-923c-42c1-94cf-b2a0aa6f2b46", "savedPayload": { "position": { "x": 17177.33980790981, @@ -11067,7 +10595,7 @@ "name": "New Record Formula", "code": "variable.T30Begin", "project": "Foundations", - "id": "5479ae11-d29e-4e20-8166-0c606c315edf", + "id": "2155d62b-acc8-43c7-8629-a3d7e0ae4cbf", "savedPayload": { "position": { "x": 17385.806639343322, @@ -11090,7 +10618,7 @@ } } }, - "id": "6560e96f-ab39-46e8-bebe-0b24269bb762", + "id": "1ede1bdf-6c86-45f0-ab45-48d794b7a3dd", "savedPayload": { "position": { "x": 17285.84756549827, @@ -11123,7 +10651,7 @@ "name": "New Record Formula", "code": "variable.T5End", "project": "Foundations", - "id": "b5ab64f0-9c76-4f2c-9e90-111eb940533b", + "id": "06a7746a-867e-453c-a4f8-963e383b0a9c", "savedPayload": { "position": { "x": 17533.531179660004, @@ -11146,7 +10674,7 @@ } } }, - "id": "054ccfb7-7ee6-4eec-95b5-4343add37882", + "id": "fd1e06cd-877d-4cc1-bd4b-6774e6012362", "savedPayload": { "position": { "x": 17384.330592376056, @@ -11179,7 +10707,7 @@ "name": "New Record Formula", "code": "variable.T10End", "project": "Foundations", - "id": "61ca5aa1-ed12-4790-92cd-84ae82da8c61", + "id": "de2a82f5-8209-4611-9201-680d1e7d4a74", "savedPayload": { "position": { "x": 17658.81109861525, @@ -11202,7 +10730,7 @@ } } }, - "id": "f5800242-f897-4fa0-994d-8927c24cefc8", + "id": "a47eef22-099c-4a49-ae46-b8779ecda701", "savedPayload": { "position": { "x": 17467.850538346218, @@ -11235,7 +10763,7 @@ "name": "New Record Formula", "code": "variable.T20End", "project": "Foundations", - "id": "15eae3e4-a90e-41ef-ad75-8f267fece453", + "id": "72ebc89d-6fde-4c67-bbc6-d443766b3d87", "savedPayload": { "position": { "x": 17755.364337949253, @@ -11258,7 +10786,7 @@ } } }, - "id": "3a6cc00e-0bf3-4262-8798-b9dd2c22b126", + "id": "5f0c4c74-43f2-4d28-82d6-c61d9b6b9d4d", "savedPayload": { "position": { "x": 17532.21936456889, @@ -11291,7 +10819,7 @@ "name": "New Record Formula", "code": "variable.T30End", "project": "Foundations", - "id": "4847fee7-3735-4ac1-82f0-5ba2069f3ab7", + "id": "77acc7d2-34a8-41fc-89a7-b155ba27613d", "savedPayload": { "position": { "x": 17818.349315070594, @@ -11314,7 +10842,7 @@ } } }, - "id": "3ff146c7-0258-453d-b0f1-9f93ec55be45", + "id": "b146a36b-a906-4082-af95-c484c79074ea", "savedPayload": { "position": { "x": 17574.20934931645, @@ -11338,7 +10866,7 @@ } } ], - "id": "5cb42050-b709-455c-9d82-de3a69a4abe2", + "id": "43ba8477-ab2a-429b-afd5-f2303dd3e085", "savedPayload": { "position": { "x": 16661.664729796892, @@ -11374,7 +10902,7 @@ "name": "New Procedure Javascript Code", "code": "\tlet candle = record.current\n\tlet Al = 0.4 //initial value for alpha factor\n\tlet Bet = 0.4 //initial value for beta factor\n\tlet Ph = 0.8 //initial value for phi factor\n\tlet Ga = 0.3 //initial value for gamma factor\n\tlet sLen = 5 //length of seasonal period ; integer only\n\tlet fLen = 6 //number of season period to forecast ; integer only ; forecast will be calculated on fLen * sLen = 30 periods\n\tlet Iter = 50 //number of loop to proceed parameters optimization\n\n\n\t//initializing Factors with fixed value or optimized value if exists\n\tif (variable.Alpha === undefined) {\n\t\tvariable.Alpha = Al\n\t }\n\t else {\n\t variable.Alpha = variable.Alpha\n\t }\n\t \n\tif (variable.Beta === undefined) {\n\t\tvariable.Beta = Bet\n\t }\n\t else {\n\t variable.Beta = variable.Beta\n\t }\n\n\tif (variable.Phi === undefined) {\n\t\tvariable.Phi = Ph\n\t }\n\t else {\n\t variable.Phi = variable.Phi\n\t }\n\n\tif (variable.Gamma === undefined) {\n\t\tvariable.Gamma = Ga\n\t }\n\t else {\n\t variable.Gamma = variable.Gamma\n\t }\n\t \n\t//Fetching candle close values for sLen length \n\tvariable.lastClose.push(candle.close)\n\tif(variable.lastClose.length > sLen) {\n\t\tvariable.lastClose.splice(0,1)\n\t}\n\tvariable.lastClose2x.push(candle.close)\n\tif(variable.lastClose2x.length > 2 * sLen) {\n\t\tvariable.lastClose2x.splice(0,1)\n\t}\n\t//Initializing A, B, S, Y variables according to Hyndman parameters https://robjhyndman.com/hyndsight/hw-initialization/\n\t\n\t//managing the undefined values until lastClose2x reach sufficient length\n\tvariable.trig = 0 //variable to indicate initialization stage is over\n\tif(variable.lastClose2x.length < 2 * sLen && variable.trig === 0) {\n\t\tvariable.Y = 0 //forecast through history variable\n\t\tvariable.A = 0 //level\n\t\tvariable.B = 0 //trend\n\t\tvariable.S[0] = 0 //season\n\t\tvariable.previousB = variable.B\n\t\tvariable.previousA = variable.A\n\t\tvariable.trend = 0\n\t}\n\tif(variable.lastClose2x.length === 2 * sLen && variable.trig === 0) {\n\t\tfor(var i = 0 ; i < sLen ; i++) {\n\t\t\tvariable.previousA = variable.previousA + variable.lastClose[i]\n\t\t}\n\t\tvariable.previousA = variable.previousA / sLen\n\t\tfor(var i = 0; i < sLen ; i++) {\n\t\t\tvariable.previousB = variable.previousB + variable.lastClose2x[i + sLen] - variable.lastClose2x[i]\n\t\t}\n\t\tvariable.previousB = variable.previousB / Math.pow(sLen,2)\n\t\tvariable.S[0] = candle.close / variable.previousA\n\t\tvariable.trig = 1 \n\t\tvariable.trend = 0\n\t}\n\tif(variable.lastClose2x.length === 2* sLen && variable.trig === 1)\n\t{\n\t\tvariable.Y = (variable.previousA + variable.Phi * variable.previousB) * variable.S[0]\n\t\tvariable.A = variable.Alpha * variable.Y / variable.S[0] + (1 - variable.Alpha) * (variable.previousA + variable.Phi * variable.previousB)\n\t\tvariable.B = variable.Beta * (variable.A - variable.previousA) + (1 - variable.Beta) * variable.Phi * variable.previousB\n\t\tvariable.S.push(variable.Gamma * variable.Y / variable.A + (1 - variable.Gamma) * variable.S[0])\n\t\tvariable.slope = variable.B - variable.previousB\n\t\tif(variable.slope < 0){\n\t\t\tvariable.trend = 1\n\t\t}\n\t\telse {\n\t\t\tvariable.trend = -1\n\t\t}\n\t\tvariable.previousA = variable.A\n\t\tvariable.previousB = variable.B\n\t}\n\n\t//keep Season array to the right size\n\tif(variable.S.length > sLen) {\n\t\tvariable.S.splice(0,1)\n\t}\n\n\t//Parameters optimization\n\t//calculation of initial mean square error\n\n\tvariable.Errors.push(Math.pow(variable.Y - candle.close, 2))\n\tif(variable.Errors.length > sLen) {\n\t\t\tvariable.Errors.splice(0,1)\n\t}\n\tif(variable.Errors.length === sLen) {\n\t\tvariable.ErrSqSum = 0\n\t\tfor (var k = 0 ; k < variable.Errors.length ; k++) {\n\t\t\t\tvariable.ErrSqSum = variable.ErrSqSum + variable.Errors[k]\n\t\t}\n\t\tvariable.MS = variable.ErrSqSum / variable.Errors.length\n\t\tif(variable.lastClose2x.length === 2*sLen && variable.trig === 1 ){\n\t\t//initialiying best parameters calculation\n\t\tvariable.bestAlpha = 0\n\t\tvariable.bestBeta = variable.Beta\n\t\tvariable.bestPhi = variable.Phi\n\t\tvariable.bestGamma = variable.Gamma\n\t\tvariable.bestError = variable.MS\n\t\t//Alpha optimization\n\t\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.bestAlpha = variable.bestAlpha +(1 - i/Iter)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.previousA\n\t\t\tvariable.previoussB = variable.previousB\n\t\t\tvariable.sErrSqSum = 0\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.bestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.bestAlpha * variable.sY / variable.sS[0] + (1 - variable.bestAlpha) * (variable.previoussA + variable.bestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.bestBeta * (variable.sA - variable.previoussA) + (1 - variable.bestBeta) * variable.bestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.bestGamma * variable.sY / variable.sA + (1 - variable.bestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t\tvariable.sError.push(Math.pow(variable.sY - variable.lastClose[j],2))\n\t\t\t}\n\t\t\tfor(var k = 0 ; k < variable.sError.length ; k++) {\n\t\t\t\tvariable.sErrSqSum = variable.sErrSqSum + variable.sErrSqSum[k]\n\t\t\t}\n\t\t\tvariable.sMS = variable.sErrSqSum / variable.sError.length\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.Alpha = variable.bestAlpha\n\t\t\t}\n\t\t\n\t\t}\n\t\tvariable.bestError = variable.MS\n\t\tvariable.bestBeta = 0\n\t\t//Beta optimization\n\t\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.bestBeta = variable.bestBeta +(1 - i/Iter)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.previousA\n\t\t\tvariable.previoussB = variable.previousB\n\t\t\tvariable.sErrSqSum = 0\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.bestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.bestAlpha * variable.sY / variable.sS[0] + (1 - variable.bestAlpha) * (variable.previoussA + variable.bestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.bestBeta * (variable.sA - variable.previoussA) + (1 - variable.bestBeta) * variable.bestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.bestGamma * variable.sY / variable.sA + (1 - variable.bestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t\tvariable.sError.push(Math.pow(variable.sY - variable.lastClose[j],2))\n\t\t\t}\n\t\t\tfor(var k = 0 ; k < variable.sError.length ; k++) {\n\t\t\t\tvariable.sErrSqSum = variable.sErrSqSum + variable.sErrSqSum[k]\n\t\t\t}\n\t\t\tvariable.sMS = variable.sErrSqSum / variable.sError.length\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.Beta = variable.bestBeta\n\t\t\t}\n\t\t\n\t\t}\n\t\tvariable.bestError = variable.MS\n\t\tvariable.bestPhi = 0.8\n\t\t//Phi optimization\n\t\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.bestPhi = variable.bestPhi +(1 - (i/Iter) * 0.2)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.previousA\n\t\t\tvariable.previoussB = variable.previousB\n\t\t\tvariable.sErrSqSum = 0\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.bestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.bestAlpha * variable.sY / variable.sS[0] + (1 - variable.bestAlpha) * (variable.previoussA + variable.bestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.bestBeta * (variable.sA - variable.previoussA) + (1 - variable.bestBeta) * variable.bestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.bestGamma * variable.sY / variable.sA + (1 - variable.bestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t\tvariable.sError.push(Math.pow(variable.sY - variable.lastClose[j],2))\n\t\t\t}\n\t\t\tfor(var k = 0 ; k < variable.sError.length ; k++) {\n\t\t\t\tvariable.sErrSqSum = variable.sErrSqSum + variable.sErrSqSum[k]\n\t\t\t}\n\t\t\tvariable.sMS = variable.sErrSqSum / variable.sError.length\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.Phi = variable.bestPhi\n\t\t\t}\n\t\t\n\t\t}\n\t\tvariable.bestError = variable.MS\n\t\tvariable.bestGamma = 0\n\t\t//Gamma optimization\n\t\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.bestGamma = variable.bestGamma +(1 - i/Iter)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.previousA\n\t\t\tvariable.previoussB = variable.previousB\n\t\t\tvariable.sErrSqSum = 0\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.bestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.bestAlpha * variable.sY / variable.sS[0] + (1 - variable.bestAlpha) * (variable.previoussA + variable.bestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.bestBeta * (variable.sA - variable.previoussA) + (1 - variable.bestBeta) * variable.bestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.bestGamma * variable.sY / variable.sA + (1 - variable.bestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t\tvariable.sError.push(Math.pow(variable.sY - variable.lastClose[j],2))\n\t\t\t}\n\t\t\tfor(var k = 0 ; k < variable.sError.length ; k++) {\n\t\t\t\tvariable.sErrSqSum = variable.sErrSqSum + variable.sErrSqSum[k]\n\t\t\t}\n\t\t\tvariable.sMS = variable.sErrSqSum / variable.sError.length\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.Gamma = variable.bestGamma\n\t\t\t}\n\t\t\n\t\t}\n\t}\n\t}\n\t//initializing forecast data\n\tvariable.fS = [] // purge the season array for forecast data\n\tvariable.previousfA = variable.A //equivalent A variable for the forecast calculation\n\tvariable.previousfB = variable.B //equivalent B variable for the forecast calculation\n\n\n\t//calculating forecast data\n\tif(variable.S.length === sLen && variable.trig === 1) {\n\tfor (var j = 0; j < fLen ; j++) {\n\t\tfor(var n = 0; n < sLen; n++) {\n\t\t\tvariable.fY.push((variable.previousfA + variable.Phi * variable.previousfB) * variable.S[n])\n\t\t\tvariable.fA = variable.previousfA + variable.Phi * variable.previousfB\n\t\t\tvariable.fB = variable.Phi * variable.previousfB\n\t\t\tvariable.previousfA = variable.fA\n\t\t\tvariable.previousfB = variable.fB\n\t\t\tif(variable.fY.length > fLen * sLen) {\n\t\t\t\tvariable.fY.splice(0,1)\n\t\t\t}\n\t\t}\n\t}\n\n\t\tvariable.forecast = 100 * variable.fY[0] \n\t\tvariable.forecast5 = 100 * (variable.fY[4] - variable.fY[0])/variable.fY[0]\n\t\tvariable.forecast10 = 100 * (variable.fY[9] - variable.fY[0])/variable.fY[0]\n\t\tvariable.forecast20 = 100 * (variable.fY[19] - variable.fY[0])/variable.fY[0]\n\t\tvariable.forecast30 = 100 * (variable.fY[29] - variable.fY[0])/variable.fY[0]\n\t \n\t} else {\n\t\tvariable.forecast = 0 \n\t\tvariable.forecast5 = 0\n\t\tvariable.forecast10 = 0\n\t\tvariable.forecast20 = 0\n\t\tvariable.forecast30 = 0\n\t}\n\n\t//identifying max and min forecast value until the value used to calculate the first member of the array is out of scope\n\t//The idea is to frame the forecast value by the corresponding min and max at the same distance\nvariable.lastForecast5.push(variable.forecast5)\nif(variable.lastForecast5.length > 5){\n variable.lastForecast5.splice(0,1)\n}\nvariable.maxForecast5 = Math.max.apply(Math,variable.lastForecast5)\nvariable.minForecast5 = Math.min.apply(Math,variable.lastForecast5)\n\nvariable.lastForecast10.push(variable.forecast10)\nif(variable.lastForecast10.length > 10){\n variable.lastForecast10.splice(0,1)\n}\nvariable.maxForecast10 = Math.max.apply(Math,variable.lastForecast10)\nvariable.minForecast10 = Math.min.apply(Math,variable.lastForecast10)\n\nvariable.lastForecast20.push(variable.forecast20)\nif(variable.lastForecast20.length > 10){\n variable.lastForecast20.splice(0,1)\n}\nvariable.maxForecast20 = Math.max.apply(Math,variable.lastForecast20)\nvariable.minForecast20 = Math.min.apply(Math,variable.lastForecast20)\n\nvariable.lastForecast30.push(variable.forecast30)\nif(variable.lastForecast30.length > 30){\n variable.lastForecast30.splice(0,1)\n}\nvariable.maxForecast30 = Math.max.apply(Math,variable.lastForecast30)\nvariable.minForecast30 = Math.min.apply(Math,variable.lastForecast30)\n\n//calculate time for forecast\nvariable.T5Begin = candle.begin + (candle.end - candle.begin) * 5\nvariable.T5End = candle.end + (candle.end - candle.begin) * 5\nvariable.T10Begin = candle.begin + (candle.end - candle.begin) * 10\nvariable.T10End = candle.end + (candle.end - candle.begin) * 10\nvariable.T20Begin = candle.begin + (candle.end - candle.begin) * 20\nvariable.T20End = candle.end + (candle.end - candle.begin) * 20\nvariable.T30Begin = candle.begin + (candle.end - candle.begin) * 30\nvariable.T30End = candle.end + (candle.end - candle.begin) * 30\n\t// End of code :-)", "project": "Foundations", - "id": "6cc5ffdd-1025-4639-a753-a00eb08c706b", + "id": "c6f7cf55-5202-4d57-beea-5b72ffd8866f", "savedPayload": { "position": { "x": 14995.177608283679, @@ -11397,7 +10925,7 @@ } } }, - "id": "bcf42744-d550-4157-8dbf-c68077c8bc7e", + "id": "dd8b7b9f-4c12-40e5-9554-6d8862e43285", "savedPayload": { "position": { "x": 15442.712461199402, @@ -11429,7 +10957,7 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.lastClose = []\nvariable.S = []\nvariable.fY = []\nvariable.Errors = []\nvariable.lastClose2x = []\nvariable.lastForecast5 = []\nvariable.lastForecast10 = []\nvariable.lastForecast20 = []\nvariable.lastForecast30 = []", "project": "Foundations", - "id": "db4d768e-9b1a-46d1-9dc1-bb76ab47cd86", + "id": "20f5e000-5ef2-48be-b62b-e6c59c19a107", "savedPayload": { "position": { "x": 16007.152962616332, @@ -11452,7 +10980,7 @@ } } }, - "id": "3db85fe3-3d91-4df7-a8a4-85a6042a1c0f", + "id": "b1c4b6ea-7f9b-4689-991f-2ead6d1bbd83", "savedPayload": { "position": { "x": 16073.278803499235, @@ -11475,7 +11003,7 @@ } } }, - "id": "bb386668-2b00-4420-ab85-87d76ab89ee4", + "id": "9b8c1a52-7dc9-45d0-a7b2-8f729ae92f1e", "savedPayload": { "position": { "x": 16337.782167030848, @@ -11498,7 +11026,7 @@ } } }, - "id": "e132ec0f-ce96-4141-9c64-33bc3e8a819c", + "id": "42b515ab-0510-4f8e-a3f4-fb8089d3b682", "savedPayload": { "position": { "x": 17982.16399078753, @@ -11522,16 +11050,36 @@ "referenceParent": { "type": "Plotter Module", "name": "Holt-Winters", - "id": "6fd0df65-0cbf-41c0-923b-8c0ada7c1d23" - } + "id": "da446172-20be-4a32-8982-f5923365f08a" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters", + "Plotter", + "Foundations", + "051ef580-6010-4015-9de9-8072a5b993c2" + ], + [ + "Holt-Winters", + "Plotter Module", + "Foundations", + "0b596ddc-3b5d-4449-925c-b6f8aa3f1fca" + ] + ] } } ], - "id": "fb6208a3-890f-4f7a-9fce-97f1097b17f9", + "id": "0b9cdf7c-d574-4fbf-b4dc-e6b27d42028b", "savedPayload": { "position": { - "x": 18051.878281255034, - "y": 10365.802375894946 + "x": 18264.641213480554, + "y": 10326.812121506195 }, "targetPosition": { "x": 18051.878281255034, @@ -11570,7 +11118,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market FastTrend3", "project": "Foundations", - "id": "b5db558d-c3d0-4700-8289-fc820054e73c", + "id": "22eee2af-c652-4f3a-a3b7-147db57e4cc2", "savedPayload": { "position": { "x": 20254.955643235317, @@ -11594,13 +11142,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "5344d093-c482-4c64-bcdf-7ff7f85e98fb" - } + "id": "62e83914-ca1b-4819-b1d2-5a630c12b0e7" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 3", + "Indicator Bot", + "Foundations", + "b5c0ac2e-7cf9-488d-baed-014f5fa3aaf4" + ], + [ + "FastTrend3", + "Product Definition", + "Foundations", + "de963b5d-a925-449d-b86f-063bc047cda5" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "53b4ffac-ed72-4537-9eed-cdae4d1479a8" + ] + ] } } ], "outputDatasetFolders": [], - "id": "915ca254-e9c0-480a-bd53-4454e5e667bd", + "id": "77c9d050-07e9-4c39-9d3a-00ab9f0b2f54", "savedPayload": { "position": { "x": 20003.35447285169, @@ -11633,7 +11207,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "b17fec5b-da73-4e61-9af2-1e9458327779", + "id": "b0ad9585-c892-4a07-a2a0-676ca10df65b", "savedPayload": { "position": { "x": 20482.593927030674, @@ -11658,7 +11232,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -11666,7 +11266,7 @@ "name": "FastTrend 3 Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "a316026c-f369-4520-bbcb-88ec5a5ee2b0", + "id": "a0b2126c-a9b7-49d7-8bb1-270fa42c0452", "savedPayload": { "position": { "x": 20362.017734697776, @@ -11690,8 +11290,34 @@ "referenceParent": { "type": "Status Report", "name": "Market-FastTrend", - "id": "b12d67b3-a7f9-4a7f-8b42-7e2cf802e4eb" - } + "id": "7d811f32-3854-4b36-8a28-b2434ebcdaed" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 3", + "Indicator Bot", + "Foundations", + "b5c0ac2e-7cf9-488d-baed-014f5fa3aaf4" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "372edf4f-17ed-4629-958d-76d1c61e22e2" + ], + [ + "Market-FastTrend", + "Status Report", + "Foundations", + "b66cb71a-7e4e-432e-a6d2-2b735947948e" + ] + ] } } ], @@ -11700,7 +11326,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "4f980f3f-3df0-41b5-acbd-554be49d8394", + "id": "10185bf6-ae4b-4de8-b552-0c11912c3412", "savedPayload": { "position": { "x": 20282.501139806605, @@ -11725,12 +11351,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "59207098-0138-4ab4-83e0-b188fe401329", + "id": "a65dd038-0945-4a9b-b8d1-37e74f773bd4", "savedPayload": { "position": { "x": 20201.13659310762, @@ -11757,7 +11409,7 @@ "type": "Status Report", "name": "Market-FastTrend", "project": "Foundations", - "id": "b12d67b3-a7f9-4a7f-8b42-7e2cf802e4eb", + "id": "7d811f32-3854-4b36-8a28-b2434ebcdaed", "savedPayload": { "position": { "x": 20019.055259724573, @@ -11784,7 +11436,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "2aa3673f-c967-492e-9962-f854588b4067", + "id": "44276198-2da9-4309-a8ab-cc299bd856bd", "savedPayload": { "position": { "x": 19833.44915772032, @@ -11809,14 +11461,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "d410c159-2a5f-4efd-abee-7300e37f95df", + "id": "266c0536-f998-45ec-9cdc-2cbce9f4f7d9", "savedPayload": { "position": { "x": 19759.603695904505, @@ -11839,7 +11517,7 @@ } } }, - "id": "d18b0c4c-25d4-4b5d-be32-b619d9db5c92", + "id": "0ab0ee15-ae60-42e1-a743-04b654822dab", "savedPayload": { "position": { "x": 18508.185016497053, @@ -11876,7 +11554,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily FastTrend3", "project": "Foundations", - "id": "0623fd08-8855-4946-86b7-cf4eb1ada533", + "id": "938ee23c-c093-454b-b7ae-902165020a0d", "savedPayload": { "position": { "x": 20059.750725970778, @@ -11900,13 +11578,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "82b4d616-5318-4bb1-adb0-08240763de45" - } + "id": "07718999-60fe-4c38-813c-07c449f4d0b2" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 3", + "Indicator Bot", + "Foundations", + "b5c0ac2e-7cf9-488d-baed-014f5fa3aaf4" + ], + [ + "FastTrend3", + "Product Definition", + "Foundations", + "de963b5d-a925-449d-b86f-063bc047cda5" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "721d2072-ee94-4634-956a-696d4dfa8f69" + ] + ] } } ], "outputDatasetFolders": [], - "id": "f2cb9dc6-73a2-46c0-8313-44b8d8bf95c6", + "id": "6cdc328d-c16f-4ae3-b3e0-b8131da1ec2e", "savedPayload": { "position": { "x": 19777.842939735005, @@ -11939,7 +11643,7 @@ "name": "FastTrend 3 Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "ccb33c9c-40a3-43ac-9396-a67d01db9078", + "id": "b82908ec-9597-43db-a481-0e1e673969e7", "savedPayload": { "position": { "x": 19964.922892440925, @@ -11963,8 +11667,34 @@ "referenceParent": { "type": "Status Report", "name": "Daily-FasTrend", - "id": "3c74c620-01f5-45fe-b2ef-2f5ec22b36fc" - } + "id": "17e98133-0391-46e0-b86e-7581f016d88f" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 3", + "Indicator Bot", + "Foundations", + "b5c0ac2e-7cf9-488d-baed-014f5fa3aaf4" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "67e43e85-db3b-44a6-af6a-9b7031e66760" + ], + [ + "Daily-FasTrend", + "Status Report", + "Foundations", + "7ae80fb0-d9d0-4f59-adc3-36f56a2b4a81" + ] + ] } }, { @@ -11972,7 +11702,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "edc47b56-da11-4fa7-93bc-dae38e6ade61", + "id": "50a1c06e-4dd4-42e7-8691-55da0dc07ed0", "savedPayload": { "position": { "x": 19915.184310472025, @@ -11997,7 +11727,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -12005,7 +11761,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "15ba30e7-9185-4748-ba1c-5dbd1469fbb5", + "id": "281a4dc6-8987-45a5-bd48-8cfaef4fd50b", "savedPayload": { "position": { "x": 19843.28285887821, @@ -12030,7 +11786,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -12039,7 +11821,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "c3e93277-0aaf-49ee-828b-d48284cb030c", + "id": "fc7e1677-7459-4c15-ac7a-486b029fcd60", "savedPayload": { "position": { "x": 19756.256752708352, @@ -12064,12 +11846,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "4afbfd6b-37d3-48d0-b06d-b58cbb8fe2d7", + "id": "298ad536-a777-4db9-b4b3-b22fb32995ae", "savedPayload": { "position": { "x": 19688.771436405194, @@ -12096,7 +11904,7 @@ "type": "Status Report", "name": "Daily-FasTrend", "project": "Foundations", - "id": "3c74c620-01f5-45fe-b2ef-2f5ec22b36fc", + "id": "17e98133-0391-46e0-b86e-7581f016d88f", "savedPayload": { "position": { "x": 19521.98238014927, @@ -12123,7 +11931,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "1c2d96c0-222b-4585-bd9a-0add8b6d07aa", + "id": "510475bd-97f9-4edf-88c6-31614332710e", "savedPayload": { "position": { "x": 19444.63213200038, @@ -12148,14 +11956,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "195b7766-9a64-4d9d-9d55-61c27a869154", + "id": "a4363c9f-e762-45ce-bd9e-d5fbfd372199", "savedPayload": { "position": { "x": 19381.028487031384, @@ -12178,7 +12012,7 @@ } } }, - "id": "6af4da93-e0bf-4485-a688-a7c9fa31f861", + "id": "d130e847-da7f-4a10-9cd1-fae9370bc658", "savedPayload": { "position": { "x": 18353.062708783487, @@ -12214,7 +12048,7 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "5344d093-c482-4c64-bcdf-7ff7f85e98fb", + "id": "62e83914-ca1b-4819-b1d2-5a630c12b0e7", "savedPayload": { "position": { "x": 19590.606588684044, @@ -12242,7 +12076,7 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "82b4d616-5318-4bb1-adb0-08240763de45", + "id": "07718999-60fe-4c38-813c-07c449f4d0b2", "savedPayload": { "position": { "x": 19236.63199663631, @@ -12281,7 +12115,7 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "6e5c8ff9-5485-4397-b09d-cede595d101b", + "id": "456891e2-88e6-4218-8478-31e3fd7c52da", "savedPayload": { "position": { "x": 19712.863475894155, @@ -12304,7 +12138,7 @@ } } }, - "id": "55cf3728-aee2-4ea9-b31a-ad6024f2f4d0", + "id": "3a96174d-b828-46b9-8cea-19244c7a931c", "savedPayload": { "position": { "x": 19544.283395915307, @@ -12337,7 +12171,7 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "908da829-6e10-49dc-8488-b6dbd5e2060d", + "id": "2b91e029-8764-4bbb-a204-b1904c912e05", "savedPayload": { "position": { "x": 19540.20471596459, @@ -12360,7 +12194,7 @@ } } }, - "id": "6318b0d6-56de-47f9-855a-e36f9e9344eb", + "id": "1e983e3c-4fa9-4e40-8e2f-add43fd3b5e9", "savedPayload": { "position": { "x": 19429.177555962266, @@ -12393,7 +12227,7 @@ "name": "New Formula", "code": "variable.PositiveDisorder", "project": "Foundations", - "id": "1db6d88b-95d1-40df-901f-74150fe7b4ad", + "id": "9b2f564d-ddc9-4682-a7ae-153d992e6bef", "savedPayload": { "position": { "x": 19116.728807965803, @@ -12416,7 +12250,7 @@ } } }, - "id": "b2974841-8ad4-497f-b1f0-5180f5a25a84", + "id": "434fef03-5f30-4de6-87fb-34e5d00772dc", "savedPayload": { "position": { "x": 19146.860283963073, @@ -12449,7 +12283,7 @@ "name": "New Formula", "code": "variable.NegativeDisorder", "project": "Foundations", - "id": "8f13fa74-95dd-4eb0-917e-ba38b8b681a7", + "id": "f431ac46-aa00-42a5-91ad-3cc71a83c5d4", "savedPayload": { "position": { "x": 18761.32174795514, @@ -12472,7 +12306,7 @@ } } }, - "id": "ea42f7c7-48c2-432a-8f8b-1468f3b7ef51", + "id": "b59697de-c8c2-4ec5-b931-3f21127c5bb5", "savedPayload": { "position": { "x": 18909.922243955963, @@ -12505,7 +12339,7 @@ "name": "New Formula", "code": "variable.FastTrend", "project": "Foundations", - "id": "2dc61d34-bb88-4b1d-9812-2801e2cca6cf", + "id": "7990ee88-211c-4c12-8901-16e61c31ca6c", "savedPayload": { "position": { "x": 18741.61230110344, @@ -12528,7 +12362,7 @@ } } }, - "id": "063c65e7-6ab9-48f2-8ad6-786d988fb0e7", + "id": "215282bf-089e-42ab-b735-703ec4695d1f", "savedPayload": { "position": { "x": 18896.782612721498, @@ -12561,7 +12395,7 @@ "name": "New Record Formula", "code": "variable.interTrend", "project": "Foundations", - "id": "e2dc57fc-ceca-42de-8b53-d49e32fe4a6f", + "id": "6ad02a07-b68b-4927-aa4f-fc4d3ea5cc86", "savedPayload": { "position": { "x": 19072.442082889484, @@ -12584,7 +12418,7 @@ } } }, - "id": "e2b89b5d-4a57-4f60-b178-efb1136a9c0a", + "id": "3154808a-316f-44dd-bd72-db46e33475ee", "savedPayload": { "position": { "x": 19117.33580057886, @@ -12608,7 +12442,7 @@ } } ], - "id": "ab5cf3b4-02b4-4aad-b735-6d411092937a", + "id": "6eba4bb0-865e-4c63-a94c-dee9ca09dff0", "savedPayload": { "position": { "x": 19409.61961547587, @@ -12644,7 +12478,7 @@ "name": "New Procedure Javascript Code", "code": "/* Loop Code */\n\nlet FTLen = 3 // Channel length\nlet candle = record.current\nlet BIAS = 0.35 // biased limit value for Math.log2 (0)\n\n\nif (variable.previousEma5 === undefined) {\nvariable.previousEma5 = candle.close\n}\n\n// Calculate EMA5\nvariable.Ema5 = calculateEMA(5, candle.close, variable.previousEma5)\nvariable.previousEma5 = variable.Ema5\n\n\n// Build arrays Max, Min, Close, Open\n\nvariable.lastMax.push(candle.max) \nvariable.lastMin.push(candle.min)\nvariable.lastOpens.push(candle.open)\nvariable.lastCloses.push(candle.close)\nvariable.lastEMA5s.push(variable.Ema5)\n\n\n\n// Keep the array the correct size\n\nif (variable.lastMax.length > FTLen) {\n variable.lastMax.splice(0, 1)\n}\n\nif (variable.lastMin.length > FTLen) {\n variable.lastMin.splice(0, 1)\n}\n\nif (variable.lastOpens.length > FTLen) {\n variable.lastOpens.splice(0, 1)\n}\n\nif (variable.lastCloses.length > FTLen) {\n variable.lastCloses.splice(0, 1)\n}\n\nif (variable.lastEMA5s.length > FTLen) {\n variable.lastEMA5s.splice(0, 1)\n}\n// Calculate indicator values\n\n\n\n\nvariable.PositiveDisorder = CalPosEntropy () // Positive disorder\nvariable.NegativeDisorder = CalNegEntropy () // Negative disorder\nif(variable.PositiveDisorder === 0 && variable.NegativeDisorder === 0){\n\tvariable.FastTrend = 0\n}\nelse {\n\tvariable.FastTrend = ( variable.NegativeDisorder - variable.PositiveDisorder ) / ( variable.NegativeDisorder + variable.PositiveDisorder)\n}//calculation of the fast trend indicator\n\nvariable.lastFastTrend.push(variable.FastTrend)\nif(variable.lastFastTrend.length > 2 ) {\n\tvariable.lastFastTrend.splice(0,1)\n}\n\n//Determine the intermediate trend i.e. pullbacks\nif(variable.lastMax.length < FTLen) {\n\tvariable.interTrend = 0\n}\nelse {\n\tif(variable.lastFastTrend.length === 2){\n\t\tvariable.Slope = variable.lastFastTrend[1] - variable.lastFastTrend[0]\n\t\tif(variable.Slope > 0) {\n\t\t\t\tvariable.interTrend = 1\n\t\t}\n\t\t\tif(variable.Slope < 0) {\n\t\t\t\tvariable.interTrend = -1\n\t\t}\n\t\t\tif(variable.Slope = 0) {\n\t\t\t\tvariable.interTrend = 0\n\t\t}\n\t}\n\telse {\n\t\tvariable.interTrend = 0\n\t}\n}\n//functions\n//EMA5 calculation\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\nfunction CalPosEntropy ()\n\n\n{variable.PosOpen = 0 // counter for values above EMA\nvariable.PosClose = 0 // counter for values above EMA\nvariable.PosMin = 0 // counter for values above EMA\nvariable.PosMax = 0 // counter for values above EMA\n\n\t\n\tif (variable.lastMax.length < FTLen) { return 0 }\n\tfor (var i = 0 ; i < FTLen ; i++) //loop over the arrays and increment counters each time a value is above EMA5 at the same index\n\t{\n\t\t\tif (variable.lastMax[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosMax = variable.PosMax + 1\n\t\t\t}\n\t\t\tif (variable.lastMin[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosMin = variable.PosMin + 1\n\t\t\t}\n\t\t\tif (variable.lastOpens[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosOpen = variable.PosOpen + 1\n\t\t\t}\n\t\t\tif (variable.lastCloses[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosClose = variable.PosClose + 1\n\t\t\t}\n\t\t\t\n\t}\n\tif (variable.PosMax > 0) // calculate entropy for Max candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosMax = (variable.PosMax / FTLen) * Math.log2(1/(variable.PosMax / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosMax = BIAS\n\t}\n\tif (variable.PosMin > 0) // calculate entropy for Min candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosMin = (variable.PosMin / FTLen) * Math.log2(1/(variable.PosMin / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosMin = BIAS\n\t}\n\tif (variable.PosOpen > 0) // calculate entropy for Open candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosOpen = (variable.PosOpen / FTLen) * Math.log2(1/(variable.PosOpen / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosOpen = BIAS\n\t}\n\tif (variable.PosClose > 0) // calculate entropy for Close candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosClose = (variable.PosClose / FTLen) * Math.log2(1/(variable.PosClose / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosClose = BIAS\n\t}\n\t\n\tvariable.PosEnt = variable.EntPosClose + variable.EntPosMax + variable.EntPosMin + variable.EntPosOpen //sum on 4 entropies\n\t\n\treturn variable.PosEnt\n}\n\nfunction CalNegEntropy ()\n\n{variable.NegOpen = 0 // counter for values below EMA\nvariable.NegClose = 0 // counter for values below EMA\nvariable.NegMin = 0 // counter for values below EMA\nvariable.NegMax = 0 // counter for values below EMA\n\t\n\tif (variable.lastMax.length < FTLen) { return 0 }\n\tfor (var j = 0 ; j < FTLen ; j++) //loop over the arrays and increment counters each time a value is above EMA5 at the same index\n\t{\n\t\t\tif (variable.lastMax[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegMax = variable.NegMax + 1\n\t\t\t}\n\t\t\tif (variable.lastMin[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegMin = variable.NegMin + 1\n\t\t\t}\n\t\t\tif (variable.lastOpens[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegOpen = variable.NegOpen + 1\n\t\t\t}\n\t\t\tif (variable.lastCloses[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegClose = variable.NegClose + 1\n\t\t\t}\n\t\t\t\n\t}\n\tif (variable.NegMax > 0) // calculate entropy for Max candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegMax = (variable.NegMax / FTLen) * Math.log2(1/(variable.NegMax / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegMax = BIAS\n\t}\n\tif (variable.NegMin > 0) // calculate entropy for Min candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegMin = (variable.NegMin / FTLen) * Math.log2(1/(variable.NegMin / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegMin = BIAS\n\t}\n\tif (variable.NegOpen > 0) // calculate entropy for Open candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegOpen = (variable.NegOpen / FTLen) * Math.log2(1/(variable.NegOpen / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegOpen = BIAS\n\t}\n\tif (variable.NegClose > 0) // calculate entropy for Close candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegClose = (variable.NegClose / FTLen) * Math.log2(1/(variable.NegClose / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegClose = BIAS\n\t}\n\t\n\tvariable.NegEnt = variable.EntNegClose + variable.EntNegMax + variable.EntNegMin + variable.EntNegOpen //sum on 4 entropies\n\t\n\treturn variable.NegEnt\n}\n\n// End of code :-)", "project": "Foundations", - "id": "811d48e3-3048-4e40-9578-5beb46bc8d31", + "id": "d3cfd983-5979-4938-b776-45ef118ab91f", "savedPayload": { "position": { "x": 20192.40408035277, @@ -12667,7 +12501,7 @@ } } }, - "id": "1d3c36ad-0307-439c-9526-31ce5d4e74ad", + "id": "f6530686-a860-4279-9608-8385799f88bf", "savedPayload": { "position": { "x": 20088.110844751227, @@ -12699,7 +12533,7 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.lastMax = []\nvariable.lastMin = []\nvariable.lastOpens = []\nvariable.lastCloses = []\nvariable.lastEMA5s = []\nvariable.NegOpen = 0 // counter for values below EMA\nvariable.NegClose = 0 // counter for values below EMA\nvariable.NegMin = 0 // counter for values below EMA\nvariable.NegMax = 0 // counter for values below EMA\nvariable.PosOpen = 0 // counter for values above EMA\nvariable.PosClose = 0 // counter for values above EMA\nvariable.PosMin = 0 // counter for values above EMA\nvariable.PosMax = 0 // counter for values above EMA\nvariable.lastFastTrend = []", "project": "Foundations", - "id": "078f712f-87ba-40b5-9899-cc95d5ce3a45", + "id": "a8208aea-3f49-4be2-9bba-83fb5c7993a6", "savedPayload": { "position": { "x": 20568.79004642963, @@ -12722,7 +12556,7 @@ } } }, - "id": "b227ac5b-b096-448b-bea8-dc6d6453df88", + "id": "da77be4a-128d-4fe5-8520-78b991ecba6c", "savedPayload": { "position": { "x": 20238.66523118197, @@ -12745,7 +12579,7 @@ } } }, - "id": "fee8d146-cf19-43ed-a61b-e7f1c8cf577a", + "id": "ada5008b-8ecc-48e9-b3ab-4be98fea52dd", "savedPayload": { "position": { "x": 20018.582021016864, @@ -12768,7 +12602,7 @@ } } }, - "id": "9f71f31c-37c4-4413-a3ce-323832386847", + "id": "51a54e7f-d14f-4e14-8c6a-c6521b282d2d", "savedPayload": { "position": { "x": 18227.13199085277, @@ -12792,16 +12626,36 @@ "referenceParent": { "type": "Plotter Module", "name": "FastTrend3", - "id": "02d137ca-2a9f-4a09-a894-dd954e5df998" - } + "id": "6cf19301-42a6-4466-aaa7-be1aca18a804" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend3", + "Plotter", + "Foundations", + "01c7b6fc-2531-4567-a589-4df488364664" + ], + [ + "FastTrend3", + "Plotter Module", + "Foundations", + "1c605dbd-43b0-4797-ba15-207747be17e5" + ] + ] } } ], - "id": "d07f5b0f-b93d-4630-9c46-5ebfe917b5a7", + "id": "0023dc9d-ee6a-4bf3-a18a-a9edd6eeb0f3", "savedPayload": { "position": { - "x": 17918.365720881247, - "y": 10350.75912320404 + "x": 18124.20028940823, + "y": 10361.427700353779 }, "targetPosition": { "x": 18051.878281255034, @@ -12840,7 +12694,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market FastTrend5", "project": "Foundations", - "id": "602e00f0-a4ba-4b23-af93-f978e5fbb162", + "id": "dfbb339f-7fe7-47a1-831e-eb2625e082d4", "savedPayload": { "position": { "x": 19947.36342947109, @@ -12864,13 +12718,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "4f3f4dec-c194-4945-80da-288392dc7545" - } + "id": "d024af50-348a-47d7-b3cd-8c30ea9fd4f4" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 5", + "Indicator Bot", + "Foundations", + "d2abd767-e301-4832-88df-9fe3963f73d2" + ], + [ + "FastTrend5", + "Product Definition", + "Foundations", + "2a018b90-9af4-49a8-9662-e1521cb58d72" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "bb285d6d-0934-4869-a6a1-1fbdd0542671" + ] + ] } } ], "outputDatasetFolders": [], - "id": "b631b03b-143c-4796-bfb3-098f00019fde", + "id": "4be197ae-0ba6-4730-827e-32468a2b879d", "savedPayload": { "position": { "x": 19695.762259087463, @@ -12903,7 +12783,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "1766b7ae-5c5b-431a-8d9d-120c1ab1e078", + "id": "ef5a1061-8d02-479a-8ebd-21f4eead50bf", "savedPayload": { "position": { "x": 20175.001713266447, @@ -12928,7 +12808,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -12936,7 +12842,7 @@ "name": "FastTrend 5 Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "a59f83bf-e493-4071-ae97-09ee64e3b606", + "id": "2f2cf369-e776-46d3-8137-f16962d12f56", "savedPayload": { "position": { "x": 20054.42552093355, @@ -12960,8 +12866,34 @@ "referenceParent": { "type": "Status Report", "name": "Market-FastTrend", - "id": "cf1fbdfb-8f9c-472f-b132-36ffe501c595" - } + "id": "10d8bde2-a790-4249-a6fd-0b1dfea1218f" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 5", + "Indicator Bot", + "Foundations", + "d2abd767-e301-4832-88df-9fe3963f73d2" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "742171aa-7061-4acc-bfb5-92751ffc9d61" + ], + [ + "Market-FastTrend", + "Status Report", + "Foundations", + "51ea72c5-4411-4f2a-86e5-75b317085986" + ] + ] } } ], @@ -12970,7 +12902,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "08728807-a172-4fa9-a168-2da4e04f03d9", + "id": "0ba438c6-d0c3-414f-9581-36ded8203527", "savedPayload": { "position": { "x": 19974.90892604238, @@ -12995,12 +12927,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "b45458fe-32f2-4bfa-a5c2-9f2581108009", + "id": "fb717f0f-640e-4fe2-8ce1-8c50b0e0fcfd", "savedPayload": { "position": { "x": 19893.544379343395, @@ -13027,7 +12985,7 @@ "type": "Status Report", "name": "Market-FastTrend", "project": "Foundations", - "id": "cf1fbdfb-8f9c-472f-b132-36ffe501c595", + "id": "10d8bde2-a790-4249-a6fd-0b1dfea1218f", "savedPayload": { "position": { "x": 19711.463045960347, @@ -13054,7 +13012,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "2572df47-203a-4bbe-8887-851591760ca3", + "id": "37601961-f23e-4584-a0cc-bf04350806bc", "savedPayload": { "position": { "x": 19525.856943956092, @@ -13079,14 +13037,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "69c4904b-d056-44e6-a725-d4afdc7d3b5d", + "id": "43131527-a529-4c76-b4ed-75ab9c175ceb", "savedPayload": { "position": { "x": 19452.01148214028, @@ -13109,7 +13093,7 @@ } } }, - "id": "df42dd1a-a087-4fd0-b340-79bcbd62ca44", + "id": "ed60f0e6-a7d9-4008-9aa8-18f973bb91d0", "savedPayload": { "position": { "x": 18442.659811182166, @@ -13146,7 +13130,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily FastTrend5", "project": "Foundations", - "id": "922b3498-9f3c-42b4-9515-4f281085549b", + "id": "e622932e-4458-4213-8aee-96ba5ce5ed66", "savedPayload": { "position": { "x": 19752.15851220655, @@ -13170,13 +13154,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "9a5122a8-d6f0-4b88-9374-ace8f37ab122" - } + "id": "29d0d88b-001b-4b80-a850-9448325dcd29" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 5", + "Indicator Bot", + "Foundations", + "d2abd767-e301-4832-88df-9fe3963f73d2" + ], + [ + "FastTrend5", + "Product Definition", + "Foundations", + "2a018b90-9af4-49a8-9662-e1521cb58d72" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "8d1ec48a-2301-4eb1-b2c8-f5d242bfb7a0" + ] + ] } } ], "outputDatasetFolders": [], - "id": "89bc26b1-1c15-48bb-804a-262a717fa246", + "id": "c00ec5c6-c193-4942-a6be-593ddc5d3dc9", "savedPayload": { "position": { "x": 18181.161963827657, @@ -13209,7 +13219,7 @@ "name": "FastTrend 5 Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "4e30fd1a-fe84-44d1-8830-663d074b89b7", + "id": "19369736-d171-499a-9cfe-b89357f48579", "savedPayload": { "position": { "x": 17951.406180027254, @@ -13233,8 +13243,34 @@ "referenceParent": { "type": "Status Report", "name": "Daily-FasTrend", - "id": "8241592d-022a-4c44-961e-c8d1d6c7cb26" - } + "id": "a3eab2bb-7c7f-4558-9064-46a7c09f05c2" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 5", + "Indicator Bot", + "Foundations", + "d2abd767-e301-4832-88df-9fe3963f73d2" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "e012aa19-5741-40f6-bd2b-0f032311e548" + ], + [ + "Daily-FasTrend", + "Status Report", + "Foundations", + "c28cf464-5fc0-4648-a99f-483fe12a5020" + ] + ] } }, { @@ -13242,7 +13278,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "4dfc3625-1a3e-4db4-8388-02942edaaf5f", + "id": "3669cb5c-9d84-49c4-9587-daf66b67bb1b", "savedPayload": { "position": { "x": 17812.454944205514, @@ -13267,7 +13303,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -13275,7 +13337,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "19796f1a-a5ac-444b-89db-5b43df395647", + "id": "6e6b8050-0948-490b-992a-682c36be4145", "savedPayload": { "position": { "x": 17687.3148960783, @@ -13300,7 +13362,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -13309,7 +13397,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "9951f48e-c9b5-4fac-a208-5f89518ac1c1", + "id": "2e1bd0ad-2dea-48a2-9b28-c4a3f29a433c", "savedPayload": { "position": { "x": 17588.235615458285, @@ -13334,12 +13422,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "07b436d3-0fda-4146-81b9-b92624d7e01e", + "id": "3d3126e2-285b-40c0-b0e2-1d8099cf86d2", "savedPayload": { "position": { "x": 17953.54816692964, @@ -13366,7 +13480,7 @@ "type": "Status Report", "name": "Daily-FasTrend", "project": "Foundations", - "id": "8241592d-022a-4c44-961e-c8d1d6c7cb26", + "id": "a3eab2bb-7c7f-4558-9064-46a7c09f05c2", "savedPayload": { "position": { "x": 17970.46805681996, @@ -13393,7 +13507,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "c8881068-a4cb-4ac8-b39d-0d984939c4a9", + "id": "22ed52b7-1268-462b-8be3-986cb165a50d", "savedPayload": { "position": { "x": 17935.004950390798, @@ -13418,14 +13532,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "f55f6850-9520-4aec-b27d-4fcc2c04f52c", + "id": "6379d8c6-ba0b-4ac5-8588-fd41c3413bfb", "savedPayload": { "position": { "x": 17959.762125759615, @@ -13448,7 +13588,7 @@ } } }, - "id": "466234b7-830d-47a2-99c0-2dc6918f47c0", + "id": "326d54e4-d263-4da3-9b91-e053a7b78388", "savedPayload": { "position": { "x": 18159.750101706974, @@ -13484,7 +13624,7 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "4f3f4dec-c194-4945-80da-288392dc7545", + "id": "d024af50-348a-47d7-b3cd-8c30ea9fd4f4", "savedPayload": { "position": { "x": 18160.21288121362, @@ -13512,7 +13652,7 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "9a5122a8-d6f0-4b88-9374-ace8f37ab122", + "id": "29d0d88b-001b-4b80-a850-9448325dcd29", "savedPayload": { "position": { "x": 17786.14863721391, @@ -13551,7 +13691,7 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "9956a120-2ccc-4844-832d-fffe4425e13d", + "id": "595d6452-c6a3-49cd-8bc3-29ed4ea6f428", "savedPayload": { "position": { "x": 19405.27126212993, @@ -13574,7 +13714,7 @@ } } }, - "id": "ef722b6a-3018-40d3-b0f9-d0faffe6f5b3", + "id": "e8b92ae4-6be4-4653-b14d-ab96dcdc0870", "savedPayload": { "position": { "x": 19236.69118215108, @@ -13607,7 +13747,7 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "f2960333-6a78-409f-ac08-dacb071ca072", + "id": "6add6392-a6e5-4860-bef5-c7c1b41431f8", "savedPayload": { "position": { "x": 19232.612502200365, @@ -13630,7 +13770,7 @@ } } }, - "id": "d376abab-99be-4f1c-bf05-7291eb19a651", + "id": "0f3e964f-7a5a-4f54-9da7-213d636b61bf", "savedPayload": { "position": { "x": 19121.58534219804, @@ -13663,7 +13803,7 @@ "name": "New Formula", "code": "variable.PositiveDisorder", "project": "Foundations", - "id": "9cc40f85-fd46-4ad8-a104-7a4fec714ea8", + "id": "2f056cf0-f130-4912-81a0-f4fde473d72a", "savedPayload": { "position": { "x": 18809.136594201576, @@ -13686,7 +13826,7 @@ } } }, - "id": "b6b70ddc-69c0-4c4a-a397-68d34a7e627f", + "id": "e42f08da-c964-4f6f-b4ef-34d46dde58ec", "savedPayload": { "position": { "x": 18839.268070198847, @@ -13719,7 +13859,7 @@ "name": "New Formula", "code": "variable.NegativeDisorder", "project": "Foundations", - "id": "7dafd586-5e66-4231-8235-bfb735afdbd2", + "id": "e8c5117d-9055-4a01-b361-328a8dd8a597", "savedPayload": { "position": { "x": 18453.729534190912, @@ -13742,7 +13882,7 @@ } } }, - "id": "e54fcd40-1aa6-4ef8-a1e3-c930b40d9e16", + "id": "e8bf34a3-f8e1-41cc-88e7-5a84a77e6d7c", "savedPayload": { "position": { "x": 18602.330030191737, @@ -13775,7 +13915,7 @@ "name": "New Formula", "code": "variable.FastTrend", "project": "Foundations", - "id": "94acabdf-aa79-461c-bfed-5b9a14d31a27", + "id": "058bcc23-4e42-4712-87dc-a0e97d485c04", "savedPayload": { "position": { "x": 18434.020087339213, @@ -13798,7 +13938,7 @@ } } }, - "id": "45169a78-ddb9-40ac-a8b2-0dc946299d11", + "id": "fbfb78f4-e82a-4690-a1d7-94b7cca6856f", "savedPayload": { "position": { "x": 18589.19039895727, @@ -13831,7 +13971,7 @@ "name": "New Record Formula", "code": "variable.interTrend", "project": "Foundations", - "id": "64124a4f-00bd-41c0-abaa-c225a0d7d1df", + "id": "4b728518-b6c2-46ac-bb90-58b0f7364e49", "savedPayload": { "position": { "x": 18764.849869125257, @@ -13854,7 +13994,7 @@ } } }, - "id": "94455c31-28a5-43b9-8fbc-f0ebd88da0a0", + "id": "3f02b4e4-8c11-4f9c-8134-b873de8cb09b", "savedPayload": { "position": { "x": 18809.743586814635, @@ -13878,7 +14018,7 @@ } } ], - "id": "ffd87efe-04c2-4a7e-95e3-949f9bc1579e", + "id": "2cac65d2-227a-40a7-98dc-1b81ec64882c", "savedPayload": { "position": { "x": 17924.16480315753, @@ -13914,7 +14054,7 @@ "name": "New Procedure Javascript Code", "code": "/* Loop Code */\n\nlet FTLen = 5 // Channel length\nlet candle = record.current\nlet BIAS = 0.35 // biased limit value for Math.log2 (0)\n\n\nif (variable.previousEma5 === undefined) {\nvariable.previousEma5 = candle.close\n}\n\n// Calculate EMA5\nvariable.Ema5 = calculateEMA(5, candle.close, variable.previousEma5)\nvariable.previousEma5 = variable.Ema5\n\n\n// Build arrays Max, Min, Close, Open\n\nvariable.lastMax.push(candle.max) \nvariable.lastMin.push(candle.min)\nvariable.lastOpens.push(candle.open)\nvariable.lastCloses.push(candle.close)\nvariable.lastEMA5s.push(variable.Ema5)\n\n\n\n// Keep the array the correct size\n\nif (variable.lastMax.length > FTLen) {\n variable.lastMax.splice(0, 1)\n}\n\nif (variable.lastMin.length > FTLen) {\n variable.lastMin.splice(0, 1)\n}\n\nif (variable.lastOpens.length > FTLen) {\n variable.lastOpens.splice(0, 1)\n}\n\nif (variable.lastCloses.length > FTLen) {\n variable.lastCloses.splice(0, 1)\n}\n\nif (variable.lastEMA5s.length > FTLen) {\n variable.lastEMA5s.splice(0, 1)\n}\n// Calculate indicator values\n\n\n\n\nvariable.PositiveDisorder = CalPosEntropy () // Positive disorder\nvariable.NegativeDisorder = CalNegEntropy () // Negative disorder\nif(variable.PositiveDisorder === 0 && variable.NegativeDisorder === 0){\n\tvariable.FastTrend = 0\n}\nelse {\n\tvariable.FastTrend = ( variable.NegativeDisorder - variable.PositiveDisorder ) / ( variable.NegativeDisorder + variable.PositiveDisorder)\n}//calculation of the fast trend indicator\n\nvariable.lastFastTrend.push(variable.FastTrend)\nif(variable.lastFastTrend.length > 2 ) {\n\tvariable.lastFastTrend.splice(0,1)\n}\n\n//Determine the intermediate trend i.e. pullbacks\nif(variable.lastMax.length < FTLen) {\n\tvariable.interTrend = 0\n}\nelse {\n\tif(variable.lastFastTrend.length === 2){\n\t\tvariable.Slope = variable.lastFastTrend[1] - variable.lastFastTrend[0]\n\t\tif(variable.Slope > 0) {\n\t\t\t\tvariable.interTrend = 1\n\t\t}\n\t\t\tif(variable.Slope < 0) {\n\t\t\t\tvariable.interTrend = -1\n\t\t}\n\t\t\tif(variable.Slope = 0) {\n\t\t\t\tvariable.interTrend = 0\n\t\t}\n\t}\n\telse {\n\t\tvariable.interTrend = 0\n\t}\n}\n//functions\n//EMA5 calculation\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\nfunction CalPosEntropy ()\n\n\n{variable.PosOpen = 0 // counter for values above EMA\nvariable.PosClose = 0 // counter for values above EMA\nvariable.PosMin = 0 // counter for values above EMA\nvariable.PosMax = 0 // counter for values above EMA\n\n\t\n\tif (variable.lastMax.length < FTLen) { return 0 }\n\tfor (var i = 0 ; i < FTLen ; i++) //loop over the arrays and increment counters each time a value is above EMA5 at the same index\n\t{\n\t\t\tif (variable.lastMax[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosMax = variable.PosMax + 1\n\t\t\t}\n\t\t\tif (variable.lastMin[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosMin = variable.PosMin + 1\n\t\t\t}\n\t\t\tif (variable.lastOpens[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosOpen = variable.PosOpen + 1\n\t\t\t}\n\t\t\tif (variable.lastCloses[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosClose = variable.PosClose + 1\n\t\t\t}\n\t\t\t\n\t}\n\tif (variable.PosMax > 0) // calculate entropy for Max candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosMax = (variable.PosMax / FTLen) * Math.log2(1/(variable.PosMax / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosMax = BIAS\n\t}\n\tif (variable.PosMin > 0) // calculate entropy for Min candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosMin = (variable.PosMin / FTLen) * Math.log2(1/(variable.PosMin / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosMin = BIAS\n\t}\n\tif (variable.PosOpen > 0) // calculate entropy for Open candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosOpen = (variable.PosOpen / FTLen) * Math.log2(1/(variable.PosOpen / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosOpen = BIAS\n\t}\n\tif (variable.PosClose > 0) // calculate entropy for Close candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosClose = (variable.PosClose / FTLen) * Math.log2(1/(variable.PosClose / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosClose = BIAS\n\t}\n\t\n\tvariable.PosEnt = variable.EntPosClose + variable.EntPosMax + variable.EntPosMin + variable.EntPosOpen //sum on 4 entropies\n\t\n\treturn variable.PosEnt\n}\n\nfunction CalNegEntropy ()\n\n{variable.NegOpen = 0 // counter for values below EMA\nvariable.NegClose = 0 // counter for values below EMA\nvariable.NegMin = 0 // counter for values below EMA\nvariable.NegMax = 0 // counter for values below EMA\n\t\n\tif (variable.lastMax.length < FTLen) { return 0 }\n\tfor (var j = 0 ; j < FTLen ; j++) //loop over the arrays and increment counters each time a value is above EMA5 at the same index\n\t{\n\t\t\tif (variable.lastMax[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegMax = variable.NegMax + 1\n\t\t\t}\n\t\t\tif (variable.lastMin[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegMin = variable.NegMin + 1\n\t\t\t}\n\t\t\tif (variable.lastOpens[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegOpen = variable.NegOpen + 1\n\t\t\t}\n\t\t\tif (variable.lastCloses[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegClose = variable.NegClose + 1\n\t\t\t}\n\t\t\t\n\t}\n\tif (variable.NegMax > 0) // calculate entropy for Max candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegMax = (variable.NegMax / FTLen) * Math.log2(1/(variable.NegMax / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegMax = BIAS\n\t}\n\tif (variable.NegMin > 0) // calculate entropy for Min candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegMin = (variable.NegMin / FTLen) * Math.log2(1/(variable.NegMin / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegMin = BIAS\n\t}\n\tif (variable.NegOpen > 0) // calculate entropy for Open candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegOpen = (variable.NegOpen / FTLen) * Math.log2(1/(variable.NegOpen / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegOpen = BIAS\n\t}\n\tif (variable.NegClose > 0) // calculate entropy for Close candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegClose = (variable.NegClose / FTLen) * Math.log2(1/(variable.NegClose / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegClose = BIAS\n\t}\n\t\n\tvariable.NegEnt = variable.EntNegClose + variable.EntNegMax + variable.EntNegMin + variable.EntNegOpen //sum on 4 entropies\n\t\n\treturn variable.NegEnt\n}\n\n// End of code :-)", "project": "Foundations", - "id": "308354d7-6915-4715-969e-7300ab069721", + "id": "e1dc6b7a-de72-4498-a360-b978088fa12a", "savedPayload": { "position": { "x": 18694.392154885838, @@ -13937,7 +14077,7 @@ } } }, - "id": "f0992d24-e685-48cd-b348-e6510e16d0ba", + "id": "45d7ddae-4632-48ff-9d24-9414ef5e97e9", "savedPayload": { "position": { "x": 18607.040727163738, @@ -13969,7 +14109,7 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.lastMax = []\nvariable.lastMin = []\nvariable.lastOpens = []\nvariable.lastCloses = []\nvariable.lastEMA5s = []\nvariable.NegOpen = 0 // counter for values below EMA\nvariable.NegClose = 0 // counter for values below EMA\nvariable.NegMin = 0 // counter for values below EMA\nvariable.NegMax = 0 // counter for values below EMA\nvariable.PosOpen = 0 // counter for values above EMA\nvariable.PosClose = 0 // counter for values above EMA\nvariable.PosMin = 0 // counter for values above EMA\nvariable.PosMax = 0 // counter for values above EMA\nvariable.lastFastTrend = []", "project": "Foundations", - "id": "175f9a23-26ba-468e-ae5d-b70f7e1bd0de", + "id": "3cf3d2d4-5842-4a02-8981-9a4b1d116ecf", "savedPayload": { "position": { "x": 19092.13971930327, @@ -13992,7 +14132,7 @@ } } }, - "id": "7a484b40-b28a-41a2-b286-600b11ecc45d", + "id": "2b9ebcd0-b8ad-4f81-b274-87022ed40d9b", "savedPayload": { "position": { "x": 18766.13975293071, @@ -14015,7 +14155,7 @@ } } }, - "id": "a404a297-94f1-4f89-8c3d-62ab2e4d1432", + "id": "5f52f84c-07a1-44da-99a1-6f3bb382823c", "savedPayload": { "position": { "x": 18548.80644201567, @@ -14038,7 +14178,7 @@ } } }, - "id": "f38bf256-2761-46ba-8ef1-ee91c210b67b", + "id": "089fbaa0-93ba-4d9d-9a59-8722f5ea6d22", "savedPayload": { "position": { "x": 17878.74005695047, @@ -14062,16 +14202,36 @@ "referenceParent": { "type": "Plotter Module", "name": "FastTrend5", - "id": "c7d21245-fe05-41e8-9033-53ee4ac3867b" - } + "id": "2c2a13fe-ca25-426d-88c7-878442d12471" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend5", + "Plotter", + "Foundations", + "5b43a422-6c2b-408d-bb0f-1475077f2459" + ], + [ + "FastTrend5", + "Plotter Module", + "Foundations", + "77a0c03b-a624-4a4f-82de-5efee7325a11" + ] + ] } } ], - "id": "d2b45d8a-f9f6-469f-aeee-fc06edb3d473", + "id": "8447931d-3fa0-4da4-82ef-bec07f6c4fa0", "savedPayload": { "position": { - "x": 17791.548037784498, - "y": 10306.383696636398 + "x": 17979.55627310184, + "y": 10361.427700353779 }, "targetPosition": { "x": 18051.878281255034, @@ -14110,7 +14270,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market FastTrend20", "project": "Foundations", - "id": "b062548c-e132-4cb6-8c15-19f62e580491", + "id": "6f6a19ba-0b20-4c8f-8efc-44bbe001bf9e", "savedPayload": { "position": { "x": 18737.86542628025, @@ -14134,13 +14294,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "8d56d050-f0cb-48c6-8410-71028331b8aa" - } + "id": "7c37bbe2-9e2b-4811-a1a2-f194a418aec5" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 20", + "Indicator Bot", + "Foundations", + "8ba12cec-1319-46b1-9f80-c688f54fdc92" + ], + [ + "FastTrend20", + "Product Definition", + "Foundations", + "7b6cc21d-518e-4c97-94ea-b616c0374cba" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "82c35636-fca5-4ce3-be8a-25f155d03bd4" + ] + ] } } ], "outputDatasetFolders": [], - "id": "e8f7010f-fde0-433d-806b-4c238f99438a", + "id": "481fd556-087c-44a4-9042-e1ccd0fb95b2", "savedPayload": { "position": { "x": 18503.654912692367, @@ -14173,7 +14359,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "61602d5d-cf6d-43cd-971e-25d3812f1979", + "id": "e85efd02-e529-46f5-9585-111ebe6aac41", "savedPayload": { "position": { "x": 18774.02832066903, @@ -14198,7 +14384,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -14206,7 +14418,7 @@ "name": "FastTrend 20 Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "a71db2e5-4ffb-46bc-8234-404221348a21", + "id": "a30d8a2a-60a7-4b14-b304-0b04a9024c33", "savedPayload": { "position": { "x": 18293.53956786992, @@ -14230,8 +14442,34 @@ "referenceParent": { "type": "Status Report", "name": "Market-FastTrend", - "id": "70cb1c5c-a5af-4b7d-a38c-c476dd008c73" - } + "id": "87778eac-bdea-4ce6-9889-6098a0a565de" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 20", + "Indicator Bot", + "Foundations", + "8ba12cec-1319-46b1-9f80-c688f54fdc92" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "2820bd32-3795-4883-bf85-f07841c7fe74" + ], + [ + "Market-FastTrend", + "Status Report", + "Foundations", + "63b34176-fd7c-4370-94e0-9f61713ea41b" + ] + ] } } ], @@ -14240,7 +14478,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "1e04ecce-96d3-4975-ae4c-78e5973c35f2", + "id": "3cafec6b-1257-42a8-9f7a-0af1e3259635", "savedPayload": { "position": { "x": 18052.606178572896, @@ -14265,12 +14503,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "a3d3303c-8ce2-41be-ab34-01c0a88bea8b", + "id": "2efb368c-0967-42c5-a883-de71a4e76d33", "savedPayload": { "position": { "x": 18285.507844948108, @@ -14297,7 +14561,7 @@ "type": "Status Report", "name": "Market-FastTrend", "project": "Foundations", - "id": "70cb1c5c-a5af-4b7d-a38c-c476dd008c73", + "id": "87778eac-bdea-4ce6-9889-6098a0a565de", "savedPayload": { "position": { "x": 18053.78235508046, @@ -14324,7 +14588,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "9359dacd-421c-458c-a35c-7b644c4f7159", + "id": "a8d4dadb-8839-4946-ad83-8e78180f9e54", "savedPayload": { "position": { "x": 18077.321108399727, @@ -14349,14 +14613,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "f82a35a6-b5b9-41c9-979c-ecd4061a1739", + "id": "c17e099c-9619-4c28-9f81-457d4f8180c9", "savedPayload": { "position": { "x": 18044.50812029853, @@ -14379,7 +14669,7 @@ } } }, - "id": "70bc60ad-a959-490f-984c-57fa72e02aee", + "id": "66809823-a7f7-4baf-8967-020f7bbe788c", "savedPayload": { "position": { "x": 18269.444399104486, @@ -14416,7 +14706,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily FastTrend20", "project": "Foundations", - "id": "a132a97c-42a1-4e83-b505-a96f476cddfc", + "id": "0907a006-73c3-4dd6-8ca8-0017708883ba", "savedPayload": { "position": { "x": 17841.151563043502, @@ -14440,13 +14730,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "60568ffd-f539-4e2a-b9ff-738521922584" - } + "id": "6486a4c5-ec66-4e8c-a7bd-2c3953f028ce" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 20", + "Indicator Bot", + "Foundations", + "8ba12cec-1319-46b1-9f80-c688f54fdc92" + ], + [ + "FastTrend20", + "Product Definition", + "Foundations", + "7b6cc21d-518e-4c97-94ea-b616c0374cba" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "c9a2a5cb-c3b8-4ef8-97f1-d550e604136b" + ] + ] } } ], "outputDatasetFolders": [], - "id": "ecd6635f-b6b8-4a85-8359-25991ed3911e", + "id": "41d1ca9c-38ec-4b9d-8645-974d7a13adef", "savedPayload": { "position": { "x": 17947.243084022746, @@ -14479,7 +14795,7 @@ "name": "FastTrend 20 Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "c080e3c7-096f-4d81-9f17-10aeddcd21b7", + "id": "5fc79cf2-347e-4a2e-8f7e-f9cd1be0f5f5", "savedPayload": { "position": { "x": 17613.96561412586, @@ -14503,8 +14819,34 @@ "referenceParent": { "type": "Status Report", "name": "Daily-FasTrend", - "id": "64d6e359-2068-42b4-8525-10deb3789e22" - } + "id": "01872e3a-0cc1-4f45-8ed7-b8f71606bfce" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend 20", + "Indicator Bot", + "Foundations", + "8ba12cec-1319-46b1-9f80-c688f54fdc92" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "11250b68-ca2d-4958-b990-16b80966e9e8" + ], + [ + "Daily-FasTrend", + "Status Report", + "Foundations", + "2ed403e1-c96a-43fe-8529-fdc42efdab8d" + ] + ] } }, { @@ -14512,7 +14854,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "f28b57b1-8c94-45e7-9f57-a837f6f2284d", + "id": "68131845-277f-4367-8870-98cd3c6eaf62", "savedPayload": { "position": { "x": 17487.034328843474, @@ -14537,7 +14879,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -14545,7 +14913,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "be6d5c95-767b-4719-802a-aaa69822a41c", + "id": "e0e489a5-0388-4809-b672-b4a3a51965cc", "savedPayload": { "position": { "x": 17385.13907646934, @@ -14570,7 +14938,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -14579,7 +14973,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "a0677104-b45c-42a3-aae0-c399ab87278f", + "id": "0d8793ad-0582-4c07-badf-25e29056cce5", "savedPayload": { "position": { "x": 17318.254074251803, @@ -14604,12 +14998,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "991db3d7-21dc-4014-b2ae-53b5ba8b729b", + "id": "8413a7b8-5c47-46e8-9669-106126d29b4e", "savedPayload": { "position": { "x": 17742.79904983504, @@ -14636,7 +15056,7 @@ "type": "Status Report", "name": "Daily-FasTrend", "project": "Foundations", - "id": "64d6e359-2068-42b4-8525-10deb3789e22", + "id": "01872e3a-0cc1-4f45-8ed7-b8f71606bfce", "savedPayload": { "position": { "x": 17837.44868593873, @@ -14663,7 +15083,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "dfd41f7d-7a9a-41f8-b465-b9c372be7714", + "id": "bf67736a-ee0f-431f-a8ff-70fafbf3ebb6", "savedPayload": { "position": { "x": 17834.677002129192, @@ -14688,14 +15108,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "3017daa8-438a-412f-bf7b-8d5281705c62", + "id": "1f07e44a-fc27-4f39-90d1-1295ef7e20c7", "savedPayload": { "position": { "x": 17890.49444642835, @@ -14718,7 +15164,7 @@ } } }, - "id": "fadc1726-53d7-472e-9e07-0406d2514dee", + "id": "db891c2a-1b00-48f7-a1dc-f7f82189a329", "savedPayload": { "position": { "x": 18053.33460500199, @@ -14754,7 +15200,7 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "8d56d050-f0cb-48c6-8410-71028331b8aa", + "id": "7c37bbe2-9e2b-4811-a1a2-f194a418aec5", "savedPayload": { "position": { "x": 17768.08490002367, @@ -14782,7 +15228,7 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "60568ffd-f539-4e2a-b9ff-738521922584", + "id": "6486a4c5-ec66-4e8c-a7bd-2c3953f028ce", "savedPayload": { "position": { "x": 17223.24004947388, @@ -14821,7 +15267,7 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "9dccc004-7894-40bd-adf7-f3ea2c46a3e9", + "id": "50994af1-0510-46f4-87c8-57bed2e6c7c5", "savedPayload": { "position": { "x": 17125.295473472564, @@ -14844,7 +15290,7 @@ } } }, - "id": "2fd75334-e5df-45ea-a385-11084c61dc96", + "id": "f3a6d6aa-dd39-45ec-8258-7edd738751a5", "savedPayload": { "position": { "x": 17236.51593962507, @@ -14877,7 +15323,7 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "06235007-e34f-4945-b8ef-70ed6c74763a", + "id": "9f54bde6-8ca9-4ab8-aa41-f54ed24187c7", "savedPayload": { "position": { "x": 16717.600723575317, @@ -14900,7 +15346,7 @@ } } }, - "id": "048d8dc8-e9a6-4a18-9cda-37f1944beef5", + "id": "6f034e6a-efda-40b0-93cf-385ebdd7d1ea", "savedPayload": { "position": { "x": 16964.719439693574, @@ -14933,7 +15379,7 @@ "name": "New Formula", "code": "variable.PositiveDisorder", "project": "Foundations", - "id": "ff4c28fc-cac6-46f8-a92f-c482519b6227", + "id": "36d37663-e214-425c-8745-374fca3dcb27", "savedPayload": { "position": { "x": 16868.16227429867, @@ -14956,7 +15402,7 @@ } } }, - "id": "d5975638-4cab-47f3-8bbe-33781a2f86dc", + "id": "ed97bdc8-7fa3-4f51-a4c5-c255e004b6c4", "savedPayload": { "position": { "x": 17065.093806842477, @@ -14989,7 +15435,7 @@ "name": "New Formula", "code": "variable.NegativeDisorder", "project": "Foundations", - "id": "9eb3abb9-cd1b-4206-bf59-3e5b1c1f0aee", + "id": "a44f60fb-71b7-4745-b77f-7291e52059d3", "savedPayload": { "position": { "x": 17463.604207052012, @@ -15012,7 +15458,7 @@ } } }, - "id": "83e01d0c-f15d-44fa-a3f0-c3443b13978a", + "id": "aed2f87d-2e60-4d5b-aa93-fcc9474d6153", "savedPayload": { "position": { "x": 17462.055095344705, @@ -15045,7 +15491,7 @@ "name": "New Formula", "code": "variable.FastTrend", "project": "Foundations", - "id": "51ab795c-ddeb-44e1-8714-bd2ea835028f", + "id": "ab7731cb-3856-437a-9806-d4be880924ff", "savedPayload": { "position": { "x": 18055.546601670187, @@ -15068,7 +15514,7 @@ } } }, - "id": "fac6de97-037c-4920-a3b1-07c007f362b3", + "id": "52b41ad7-2821-4ee9-8507-86683900b4df", "savedPayload": { "position": { "x": 17856.68335842349, @@ -15101,7 +15547,7 @@ "name": "New Record Formula", "code": "variable.interTrend", "project": "Foundations", - "id": "17aec8ba-4364-4d04-9786-8e11040e4a68", + "id": "6d7a129f-3d99-460e-a6ce-e9fc628d42e2", "savedPayload": { "position": { "x": 18198.244761581384, @@ -15124,7 +15570,7 @@ } } }, - "id": "085a9511-2311-404b-a469-9db8be7f3330", + "id": "77460272-a4a7-4420-8989-fcd0502c9441", "savedPayload": { "position": { "x": 17951.81546503095, @@ -15148,7 +15594,7 @@ } } ], - "id": "20a4a2eb-f7af-4a05-9de7-88d768bd501f", + "id": "d4f00a32-a143-4231-9e50-7133aed64cde", "savedPayload": { "position": { "x": 17458.956871930088, @@ -15184,7 +15630,7 @@ "name": "New Procedure Javascript Code", "code": "/* Loop Code */\n\nlet FTLen = 20 // Channel length\nlet candle = record.current\nlet BIAS = 0.35 // biased limit value for Math.log2 (0)\n\n\nif (variable.previousEma5 === undefined) {\nvariable.previousEma5 = candle.close\n}\n\n// Calculate EMA5\nvariable.Ema5 = calculateEMA(5, candle.close, variable.previousEma5)\nvariable.previousEma5 = variable.Ema5\n\n\n// Build arrays Max, Min, Close, Open\n\nvariable.lastMax.push(candle.max) \nvariable.lastMin.push(candle.min)\nvariable.lastOpens.push(candle.open)\nvariable.lastCloses.push(candle.close)\nvariable.lastEMA5s.push(variable.Ema5)\n\n\n\n// Keep the array the correct size\n\nif (variable.lastMax.length > FTLen) {\n variable.lastMax.splice(0, 1)\n}\n\nif (variable.lastMin.length > FTLen) {\n variable.lastMin.splice(0, 1)\n}\n\nif (variable.lastOpens.length > FTLen) {\n variable.lastOpens.splice(0, 1)\n}\n\nif (variable.lastCloses.length > FTLen) {\n variable.lastCloses.splice(0, 1)\n}\n\nif (variable.lastEMA5s.length > FTLen) {\n variable.lastEMA5s.splice(0, 1)\n}\n// Calculate indicator values\n\n\n\n\nvariable.PositiveDisorder = CalPosEntropy () // Positive disorder\nvariable.NegativeDisorder = CalNegEntropy () // Negative disorder\nif(variable.PositiveDisorder === 0 && variable.NegativeDisorder === 0){\n\tvariable.FastTrend = 0\n}\nelse {\n\tvariable.FastTrend = ( variable.NegativeDisorder - variable.PositiveDisorder ) / ( variable.NegativeDisorder + variable.PositiveDisorder)\n}//calculation of the fast trend indicator\n\nvariable.lastFastTrend.push(variable.FastTrend)\nif(variable.lastFastTrend.length > 2 ) {\n\tvariable.lastFastTrend.splice(0,1)\n}\n\n//Determine the intermediate trend i.e. pullbacks\nif(variable.lastMax.length < FTLen) {\n\tvariable.interTrend = 0\n}\nelse {\n\tif(variable.lastFastTrend.length === 2){\n\t\tvariable.Slope = variable.lastFastTrend[1] - variable.lastFastTrend[0]\n\t\tif(variable.Slope > 0) {\n\t\t\t\tvariable.interTrend = 1\n\t\t}\n\t\t\tif(variable.Slope < 0) {\n\t\t\t\tvariable.interTrend = -1\n\t\t}\n\t\t\tif(variable.Slope = 0) {\n\t\t\t\tvariable.interTrend = 0\n\t\t}\n\t}\n\telse {\n\t\tvariable.interTrend = 0\n\t}\n}\n//functions\n//EMA5 calculation\nfunction calculateEMA(periods, price, previousEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousEMA * (1-k)\n}\n\nfunction CalPosEntropy ()\n\n\n{variable.PosOpen = 0 // counter for values above EMA\nvariable.PosClose = 0 // counter for values above EMA\nvariable.PosMin = 0 // counter for values above EMA\nvariable.PosMax = 0 // counter for values above EMA\n\n\t\n\tif (variable.lastMax.length < FTLen) { return 0 }\n\tfor (var i = 0 ; i < FTLen ; i++) //loop over the arrays and increment counters each time a value is above EMA5 at the same index\n\t{\n\t\t\tif (variable.lastMax[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosMax = variable.PosMax + 1\n\t\t\t}\n\t\t\tif (variable.lastMin[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosMin = variable.PosMin + 1\n\t\t\t}\n\t\t\tif (variable.lastOpens[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosOpen = variable.PosOpen + 1\n\t\t\t}\n\t\t\tif (variable.lastCloses[i] > variable.lastEMA5s[i])\n\t\t\t{\n\t\t\t\tvariable.PosClose = variable.PosClose + 1\n\t\t\t}\n\t\t\t\n\t}\n\tif (variable.PosMax > 0) // calculate entropy for Max candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosMax = (variable.PosMax / FTLen) * Math.log2(1/(variable.PosMax / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosMax = BIAS\n\t}\n\tif (variable.PosMin > 0) // calculate entropy for Min candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosMin = (variable.PosMin / FTLen) * Math.log2(1/(variable.PosMin / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosMin = BIAS\n\t}\n\tif (variable.PosOpen > 0) // calculate entropy for Open candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosOpen = (variable.PosOpen / FTLen) * Math.log2(1/(variable.PosOpen / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosOpen = BIAS\n\t}\n\tif (variable.PosClose > 0) // calculate entropy for Close candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntPosClose = (variable.PosClose / FTLen) * Math.log2(1/(variable.PosClose / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntPosClose = BIAS\n\t}\n\t\n\tvariable.PosEnt = variable.EntPosClose + variable.EntPosMax + variable.EntPosMin + variable.EntPosOpen //sum on 4 entropies\n\t\n\treturn variable.PosEnt\n}\n\nfunction CalNegEntropy ()\n\n{variable.NegOpen = 0 // counter for values below EMA\nvariable.NegClose = 0 // counter for values below EMA\nvariable.NegMin = 0 // counter for values below EMA\nvariable.NegMax = 0 // counter for values below EMA\n\t\n\tif (variable.lastMax.length < FTLen) { return 0 }\n\tfor (var j = 0 ; j < FTLen ; j++) //loop over the arrays and increment counters each time a value is above EMA5 at the same index\n\t{\n\t\t\tif (variable.lastMax[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegMax = variable.NegMax + 1\n\t\t\t}\n\t\t\tif (variable.lastMin[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegMin = variable.NegMin + 1\n\t\t\t}\n\t\t\tif (variable.lastOpens[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegOpen = variable.NegOpen + 1\n\t\t\t}\n\t\t\tif (variable.lastCloses[j] < variable.lastEMA5s[j])\n\t\t\t{\n\t\t\t\tvariable.NegClose = variable.NegClose + 1\n\t\t\t}\n\t\t\t\n\t}\n\tif (variable.NegMax > 0) // calculate entropy for Max candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegMax = (variable.NegMax / FTLen) * Math.log2(1/(variable.NegMax / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegMax = BIAS\n\t}\n\tif (variable.NegMin > 0) // calculate entropy for Min candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegMin = (variable.NegMin / FTLen) * Math.log2(1/(variable.NegMin / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegMin = BIAS\n\t}\n\tif (variable.NegOpen > 0) // calculate entropy for Open candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegOpen = (variable.NegOpen / FTLen) * Math.log2(1/(variable.NegOpen / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegOpen = BIAS\n\t}\n\tif (variable.NegClose > 0) // calculate entropy for Close candles above EMA5 ; return Bias value if count is 0 because of LOG function\n\t{\n\t\tvariable.EntNegClose = (variable.NegClose / FTLen) * Math.log2(1/(variable.NegClose / FTLen))\n\t}\n\telse\n\t{\n\t\tvariable.EntNegClose = BIAS\n\t}\n\t\n\tvariable.NegEnt = variable.EntNegClose + variable.EntNegMax + variable.EntNegMin + variable.EntNegOpen //sum on 4 entropies\n\t\n\treturn variable.NegEnt\n}\n\n// End of code :-)", "project": "Foundations", - "id": "1a8876d8-d7a9-4e57-a871-c0e761cecf7d", + "id": "57bd40aa-0c20-4c39-a556-17f869871104", "savedPayload": { "position": { "x": 18624.96796883813, @@ -15207,7 +15653,7 @@ } } }, - "id": "ddc3b668-610e-4d96-bc36-b8a343fa766b", + "id": "79fc8a6b-641f-4ff4-9f64-c08af7fa2fe0", "savedPayload": { "position": { "x": 18480.0303536653, @@ -15239,7 +15685,7 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.lastMax = []\nvariable.lastMin = []\nvariable.lastOpens = []\nvariable.lastCloses = []\nvariable.lastEMA5s = []\nvariable.NegOpen = 0 // counter for values below EMA\nvariable.NegClose = 0 // counter for values below EMA\nvariable.NegMin = 0 // counter for values below EMA\nvariable.NegMax = 0 // counter for values below EMA\nvariable.PosOpen = 0 // counter for values above EMA\nvariable.PosClose = 0 // counter for values above EMA\nvariable.PosMin = 0 // counter for values above EMA\nvariable.PosMax = 0 // counter for values above EMA\nvariable.lastFastTrend = []", "project": "Foundations", - "id": "773991e3-4d00-4754-9cee-942720008451", + "id": "a41d048c-6d40-4edf-a9a7-113e6a71b10c", "savedPayload": { "position": { "x": 19204.30885952141, @@ -15262,7 +15708,7 @@ } } }, - "id": "e808bcc5-3b39-45e8-b9bc-8c6bf99a7943", + "id": "a8c2aefb-0715-4ff6-91b9-1372f95ef043", "savedPayload": { "position": { "x": 18711.766709938613, @@ -15285,7 +15731,7 @@ } } }, - "id": "2f2a0e44-2bbe-46e7-bc5a-42095dcafed6", + "id": "c2392b3f-851f-4ccf-96cc-3c7c701ca440", "savedPayload": { "position": { "x": 18383.405276883415, @@ -15308,7 +15754,7 @@ } } }, - "id": "71ee43d3-c583-4d91-80ed-77af0701b203", + "id": "416c23b8-2991-4b85-97c6-e4bb0dac9dcf", "savedPayload": { "position": { "x": 17892.673125170615, @@ -15332,16 +15778,36 @@ "referenceParent": { "type": "Plotter Module", "name": "FastTrend20", - "id": "e7421eef-db1a-443b-a0bd-3ee1e5bcff9d" - } + "id": "aa972b32-6fe1-47f6-933e-3e555c2ae658" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend20", + "Plotter", + "Foundations", + "79a11454-0fc9-469e-a3c1-9110ccdeb42b" + ], + [ + "FastTrend20", + "Plotter Module", + "Foundations", + "9311917f-0bf5-4904-8d8c-638d82d79d23" + ] + ] } } ], - "id": "9a955fdf-6110-41f7-ad90-23849e9a0eab", + "id": "e1bd8769-c6b6-496e-9827-9c475ef1080b", "savedPayload": { "position": { - "x": 17677.784400139793, - "y": 10234.901265375764 + "x": 17839.115349029515, + "y": 10326.812121506195 }, "targetPosition": { "x": 18051.878281255034, @@ -15380,7 +15846,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market HoltWinters2", "project": "Foundations", - "id": "eabfd986-358d-4074-a2e6-517253618032", + "id": "abf2305c-9b36-40a5-bb14-9db96f14c174", "savedPayload": { "position": { "x": 17686.021370369053, @@ -15404,13 +15870,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "041c7762-73c9-4458-895f-dc14d3c8aa29" - } + "id": "f0185eb2-b4c1-42a4-89d2-cc615e8e883d" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters forecast 2", + "Indicator Bot", + "Foundations", + "241b8616-bb55-4741-b079-02192f8f8836" + ], + [ + "HoltWinters2", + "Product Definition", + "Foundations", + "41244e90-3b58-4808-8f42-d6c254b3412e" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "320de56e-79b4-4562-8cd3-8a0a8b09a76b" + ] + ] } } ], "outputDatasetFolders": [], - "id": "6fc22427-24ad-46eb-aa9a-1fb088c26c73", + "id": "85c86723-7ca6-4810-9b30-4f54dfd4eecb", "savedPayload": { "position": { "x": 18125.6761963031, @@ -15443,7 +15935,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "81a77f04-1e9b-4b4c-9f4e-0383266b7dc0", + "id": "cd1ac44d-91d4-4a26-9a28-633fda7c9e07", "savedPayload": { "position": { "x": 18315.64354872755, @@ -15468,7 +15960,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -15476,7 +15994,7 @@ "name": "Holt-Winters forecast 2 Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "52748175-b2df-476c-adce-f9979b4b3744", + "id": "4f588193-ee21-4152-94eb-f440a6625362", "savedPayload": { "position": { "x": 18024.162151219978, @@ -15500,8 +16018,34 @@ "referenceParent": { "type": "Status Report", "name": "HoltWinters", - "id": "c1a92996-add5-4e19-b53f-b6b6cd8e682f" - } + "id": "24e80e61-ac3b-4aaa-b95b-6f31d47f9464" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters forecast 2", + "Indicator Bot", + "Foundations", + "241b8616-bb55-4741-b079-02192f8f8836" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "2c2993cd-22af-4518-90c5-6360269615ec" + ], + [ + "HoltWinters", + "Status Report", + "Foundations", + "8b9b24e8-1be4-403d-b578-be37c3b73ba4" + ] + ] } } ], @@ -15510,7 +16054,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "04644d23-226a-4fe3-8d48-fd373e340082", + "id": "51874d37-8748-4788-82f8-a9354a098394", "savedPayload": { "position": { "x": 17885.295077424216, @@ -15535,14 +16079,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Market", "project": "Foundations", - "id": "f3e799a4-65c5-49e2-a79f-695ecdee2bbf", + "id": "19b61c92-d4d7-43c7-bd4b-ea47ef784f79", "savedPayload": { "position": { "x": 17777.22698828419, @@ -15567,12 +16137,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "9bf0483c-4825-4a46-9cf4-1b5262579fc1" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "9bf0483c-4825-4a46-9cf4-1b5262579fc1" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "57baa141-cb03-4f0c-ba29-328d0b1c3366", + "id": "ce39aa2f-3143-4ea1-9b70-ba587715a7b4", "savedPayload": { "position": { "x": 17965.92786607191, @@ -15599,7 +16195,7 @@ "type": "Status Report", "name": "HoltWinters", "project": "Foundations", - "id": "c1a92996-add5-4e19-b53f-b6b6cd8e682f", + "id": "24e80e61-ac3b-4aaa-b95b-6f31d47f9464", "savedPayload": { "position": { "x": 17826.087335876728, @@ -15626,7 +16222,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "6837eb13-fcc6-447b-afb8-d08b3423cf53", + "id": "1ff2f123-fa8f-4ce8-a8fb-533536d72711", "savedPayload": { "position": { "x": 17855.82806775298, @@ -15651,14 +16247,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "5dfcc30f-c283-4b1b-a9d6-0f1142b17811", + "id": "937d58af-8910-4602-87d6-d2102f51ca43", "savedPayload": { "position": { "x": 17839.684616168048, @@ -15681,7 +16303,7 @@ } } }, - "id": "c09a01a8-925e-4a05-a294-772315d39d02", + "id": "ce1d98da-7cb2-4ed2-abff-50f75a48d4c3", "savedPayload": { "position": { "x": 18037.322785481592, @@ -15718,7 +16340,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily HoltWinters2", "project": "Foundations", - "id": "a29fe83a-f339-443a-bf7c-ce6527757631", + "id": "ac63e3bd-2851-4785-a7e8-42b7fdab678f", "savedPayload": { "position": { "x": 17674.016280040636, @@ -15742,13 +16364,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "b0b631d3-23ee-4334-96fb-2e6066bc54ee" - } + "id": "39912fe7-663e-47c2-941f-ae867f3d5f1f" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters forecast 2", + "Indicator Bot", + "Foundations", + "241b8616-bb55-4741-b079-02192f8f8836" + ], + [ + "HoltWinters2", + "Product Definition", + "Foundations", + "41244e90-3b58-4808-8f42-d6c254b3412e" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "cddd4449-0c4e-45e9-96e6-9875177ba65e" + ] + ] } } ], "outputDatasetFolders": [], - "id": "6f6d2fee-2615-41d1-87a8-f65d72f934b7", + "id": "672111fb-254f-4be9-bfaf-3af5cecb2628", "savedPayload": { "position": { "x": 17766.72137835312, @@ -15781,7 +16429,7 @@ "name": "Holt-Winters forecast 2 Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "f248f737-06d1-4be3-bf88-08399fcd91eb", + "id": "99e1bee9-6dab-44e8-af6a-7307d0829394", "savedPayload": { "position": { "x": 17543.7779307099, @@ -15805,8 +16453,34 @@ "referenceParent": { "type": "Status Report", "name": "HoltWinters", - "id": "e38cb237-41bc-4294-bf5d-28fed15cce02" - } + "id": "29d5ce5f-6eba-43b2-837e-84c6aba0803d" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters forecast 2", + "Indicator Bot", + "Foundations", + "241b8616-bb55-4741-b079-02192f8f8836" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "95f3e972-0efa-4762-8bb9-8ebd5f44a5d9" + ], + [ + "HoltWinters", + "Status Report", + "Foundations", + "5437f5cf-b77e-4fdf-9830-c1633d215d20" + ] + ] } }, { @@ -15814,7 +16488,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "7f0bdfa6-cdac-44ef-90db-904d879efbde", + "id": "4255e825-79d2-4620-bc44-0d79de1629fd", "savedPayload": { "position": { "x": 17473.091318517876, @@ -15839,7 +16513,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -15847,7 +16547,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "8ed45af0-ebc8-445a-ae0f-4d9ddfc83752", + "id": "af9794b8-bd04-4b93-b27e-c41df87c5298", "savedPayload": { "position": { "x": 17413.539581379166, @@ -15872,7 +16572,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -15881,7 +16607,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "2942704f-a726-4fb0-b45b-cb8c9150492a", + "id": "cd05f93e-a916-4b20-9950-004d787367d6", "savedPayload": { "position": { "x": 17369.181071765874, @@ -15906,14 +16632,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Daily", "project": "Foundations", - "id": "35881ac9-8548-4ce3-a04a-f8d5f1c8ae83", + "id": "825c4082-b955-4ac8-9153-d0eeda85cc3f", "savedPayload": { "position": { "x": 17343.038748802242, @@ -15938,12 +16690,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "2e683057-f911-4105-bc77-16f2706d1915" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "2e683057-f911-4105-bc77-16f2706d1915" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "be6ea16c-9e53-4b44-a939-2c8e5e5d4373", + "id": "cbc43780-8a90-4186-adda-3f3cfcc38af0", "savedPayload": { "position": { "x": 17636.483029022384, @@ -15970,7 +16748,7 @@ "type": "Status Report", "name": "HoltWinters", "project": "Foundations", - "id": "e38cb237-41bc-4294-bf5d-28fed15cce02", + "id": "29d5ce5f-6eba-43b2-837e-84c6aba0803d", "savedPayload": { "position": { "x": 17712.70433655553, @@ -15997,7 +16775,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "5e8f41f0-f48a-40f6-a80a-d01281a2fc2f", + "id": "9ec91a7d-5bf0-45f4-a3be-3db66e1f514f", "savedPayload": { "position": { "x": 17716.767999221327, @@ -16022,14 +16800,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "d2ccbe65-57b0-4e5c-89c2-618483fbf51d", + "id": "ae0f314d-5ad8-4d04-af56-f1d7c0853157", "savedPayload": { "position": { "x": 17759.056885711772, @@ -16052,7 +16856,7 @@ } } }, - "id": "f52dc0bb-b237-4ebf-9665-3c5f6e64eeb5", + "id": "f87bf77c-bb17-4f20-a468-dd0bd60c2c2c", "savedPayload": { "position": { "x": 17757.76728970815, @@ -16088,7 +16892,7 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "041c7762-73c9-4458-895f-dc14d3c8aa29", + "id": "f0185eb2-b4c1-42a4-89d2-cc615e8e883d", "savedPayload": { "position": { "x": 17370.779400339616, @@ -16116,7 +16920,7 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "b0b631d3-23ee-4334-96fb-2e6066bc54ee", + "id": "39912fe7-663e-47c2-941f-ae867f3d5f1f", "savedPayload": { "position": { "x": 16662.83021624415, @@ -16155,7 +16959,7 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "33917a28-8dd4-4f07-b103-d7a91c892db9", + "id": "88e180bc-31e9-4b81-98cc-c57f83baa6c3", "savedPayload": { "position": { "x": 17969.443429382933, @@ -16178,7 +16982,7 @@ } } }, - "id": "70ce3b87-d2f7-4069-a1e4-486227db9c35", + "id": "126e9db3-3d1e-4380-960b-5b8b50cb7f66", "savedPayload": { "position": { "x": 17312.008516437036, @@ -16211,7 +17015,7 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "d26a4b07-66f2-4a7b-98b1-4de667fd1edd", + "id": "7c4e4a4c-ad11-4641-83d1-4922ef1824dd", "savedPayload": { "position": { "x": 17033.150579054243, @@ -16234,7 +17038,7 @@ } } }, - "id": "85c621ca-3031-459c-bbd5-cf1b6e9b1a50", + "id": "eb79a7de-02cb-40ba-8be6-3dc3b4200932", "savedPayload": { "position": { "x": 16843.86209127269, @@ -16267,7 +17071,7 @@ "name": "New Record Formula", "code": "variable.Y", "project": "Foundations", - "id": "4cb841d7-2d2e-4fab-9c29-6c2e132ab64a", + "id": "8c693c8d-9363-4fc1-9e7f-0934303ac4ce", "savedPayload": { "position": { "x": 16735.309211316933, @@ -16290,7 +17094,7 @@ } } }, - "id": "14990d66-19cb-4113-9776-283798f85dc3", + "id": "715cd3b4-a420-449a-9352-6c4e67ead325", "savedPayload": { "position": { "x": 16694.941407404036, @@ -16323,7 +17127,7 @@ "name": "New Record Formula", "code": "variable.forecast", "project": "Foundations", - "id": "d71de6eb-ddc3-4a52-9d12-f76bd2631428", + "id": "73e70706-43f7-41c8-aad5-db3e37b9a76c", "savedPayload": { "position": { "x": 16433.419423080704, @@ -16346,7 +17150,7 @@ } } }, - "id": "c1e41931-343c-4c9c-9dae-67017e2d954a", + "id": "1d360b43-8db4-4397-bd15-dbe1747072a6", "savedPayload": { "position": { "x": 16543.99651328592, @@ -16379,7 +17183,7 @@ "name": "New Record Formula", "code": "variable.A", "project": "Foundations", - "id": "17caac8f-45d8-4e45-9944-345eb8c88816", + "id": "7e43ef7e-ef16-47e6-9f04-4b6d276d9817", "savedPayload": { "position": { "x": 16270.60782255505, @@ -16402,7 +17206,7 @@ } } }, - "id": "4a002347-f5f0-495c-a2a7-6de701d6f691", + "id": "0ebf0987-fd23-4090-9c12-ef8faf2c27ea", "savedPayload": { "position": { "x": 16398.596416200413, @@ -16435,7 +17239,7 @@ "name": "New Record Formula", "code": "variable.B", "project": "Foundations", - "id": "0cc0d2c0-917e-4eef-8e61-51a5e19c252f", + "id": "c9eb1c4d-139d-44f2-858d-cc7d3a703a23", "savedPayload": { "position": { "x": 16071.761324484396, @@ -16458,7 +17262,7 @@ } } }, - "id": "57a6dc0d-1ed1-43be-a9e8-38b4086f5460", + "id": "f2c9d67d-dd77-4a63-bbe5-27905629c680", "savedPayload": { "position": { "x": 16266.03208415331, @@ -16491,7 +17295,7 @@ "name": "New Record Formula", "code": "variable.forecast5", "project": "Foundations", - "id": "a068c015-3610-40ec-90ac-ee0e176bd9a5", + "id": "919b9ae1-4cab-4bdc-b41e-686ea7acc206", "savedPayload": { "position": { "x": 15902.139467695277, @@ -16514,7 +17318,7 @@ } } }, - "id": "2cf76c01-1971-46e6-80a2-cc2c70aa22c6", + "id": "2d5cc2df-c77d-4c01-b848-2086462db1e7", "savedPayload": { "position": { "x": 16152.950846293897, @@ -16547,7 +17351,7 @@ "name": "New Record Formula", "code": "variable.forecast10", "project": "Foundations", - "id": "06222590-67fe-4c67-b00c-4d1bd07c1a2a", + "id": "1ded72ff-0877-4d59-a662-3419e891778b", "savedPayload": { "position": { "x": 15770.247800366295, @@ -16570,7 +17374,7 @@ } } }, - "id": "cd5833f9-6c4d-4b15-8b83-72173a163cb5", + "id": "7c5f54b8-591d-4528-a50e-a0d875af2d47", "savedPayload": { "position": { "x": 16065.023068074575, @@ -16603,7 +17407,7 @@ "name": "New Record Formula", "code": "variable.forecast20", "project": "Foundations", - "id": "2086c9c6-de9d-42d5-8cb1-44e4ae9261bb", + "id": "04a13f10-d124-4e02-9959-b77305d4e814", "savedPayload": { "position": { "x": 15682.699921428964, @@ -16626,7 +17430,7 @@ } } }, - "id": "fc5be5f5-4139-4719-8b00-83b371181f2b", + "id": "e6bee184-8fd3-4f5a-9681-a7a823f6d769", "savedPayload": { "position": { "x": 16006.65781544969, @@ -16659,7 +17463,7 @@ "name": "New Record Formula", "code": "variable.forecast30", "project": "Foundations", - "id": "3d7c0bff-1034-4795-9002-bd0b724f6408", + "id": "552dd2a1-d308-4546-af99-bca1026e6907", "savedPayload": { "position": { "x": 15643.885847101308, @@ -16682,7 +17486,7 @@ } } }, - "id": "1f02f97d-db3b-48ad-b649-21a822b7459a", + "id": "f7c59878-4a31-41f0-ac00-5ad3ecf4fc13", "savedPayload": { "position": { "x": 15980.781765897918, @@ -16715,7 +17519,7 @@ "name": "New Record Formula", "code": "variable.trend", "project": "Foundations", - "id": "5481dfa8-29b0-469d-a016-bf873291d126", + "id": "8d311f70-d7f9-4fbf-891c-855a6d70d8a8", "savedPayload": { "position": { "x": 15655.751877143573, @@ -16738,7 +17542,7 @@ } } }, - "id": "41852bd9-8c07-424f-9a2e-6c0f48fbacd8", + "id": "6ba3b98b-4477-4e9e-954f-c174caf1633c", "savedPayload": { "position": { "x": 15988.692452592762, @@ -16771,7 +17575,7 @@ "name": "New Record Formula", "code": "variable.maxForecast5", "project": "Foundations", - "id": "5d003e4f-4c4f-4cbe-ae60-44cb20b5ed25", + "id": "2ea745c3-cc16-4ee3-9155-3b56ce73d199", "savedPayload": { "position": { "x": 15717.702999261217, @@ -16794,7 +17598,7 @@ } } }, - "id": "23ec5cdc-5e93-4409-a418-b8587aa454c6", + "id": "b378262d-c23c-40fb-a5a1-47e5a24d16a0", "savedPayload": { "position": { "x": 16029.993200671192, @@ -16827,7 +17631,7 @@ "name": "New Record Formula", "code": "variable.minForecast5", "project": "Foundations", - "id": "c8b794c4-9114-411e-8bad-bd8d91475c7b", + "id": "14ecd6f0-4e4f-4002-ad09-d4819698366e", "savedPayload": { "position": { "x": 15826.632725505902, @@ -16850,7 +17654,7 @@ } } }, - "id": "a50bb4c2-5b36-4147-bb59-c844cf82752a", + "id": "cd742a73-1b14-4e87-9eb6-750cb2112665", "savedPayload": { "position": { "x": 16102.613018167647, @@ -16883,7 +17687,7 @@ "name": "New Record Formula", "code": "variable.minForecast10", "project": "Foundations", - "id": "3fcb7cba-6a03-4aa8-95f9-144aca58dc9c", + "id": "a8348024-3d5b-414f-a375-058e1dbcfeeb", "savedPayload": { "position": { "x": 15977.078864552795, @@ -16906,7 +17710,7 @@ } } }, - "id": "2f9abbd3-a6ab-4ac9-947d-66f0305169ed", + "id": "a2798654-0dea-4d03-aef6-0ed8eeaeaf1d", "savedPayload": { "position": { "x": 16202.91044419891, @@ -16939,7 +17743,7 @@ "name": "New Record Formula", "code": "variable.maxForecast10", "project": "Foundations", - "id": "d3b2bf2f-cead-4ffd-a2c8-bc57c1fa5f09", + "id": "f1b656ff-ea89-4b92-8133-3067d5a55d92", "savedPayload": { "position": { "x": 16161.497418781717, @@ -16962,7 +17766,7 @@ } } }, - "id": "7e1551c5-3ee4-4f19-80e1-cf47eeb4ec25", + "id": "3c2436bf-dc8f-4957-8bfc-a7d253c95b7f", "savedPayload": { "position": { "x": 16325.85614701819, @@ -16995,7 +17799,7 @@ "name": "New Record Formula", "code": "variable.minForecast20", "project": "Foundations", - "id": "a1b26719-6727-45e1-9182-2fa5e70019e4", + "id": "aa4870e4-c66d-4b32-998b-2987bae3f4d4", "savedPayload": { "position": { "x": 16370.64087181881, @@ -17018,7 +17822,7 @@ } } }, - "id": "d4b48282-ede5-4111-84ad-d61e0f6bc885", + "id": "a2eeb358-f544-45f1-a2f3-e05d9659ca33", "savedPayload": { "position": { "x": 16465.285115709587, @@ -17051,7 +17855,7 @@ "name": "New Record Formula", "code": "variable.maxForecast20", "project": "Foundations", - "id": "2844668d-7e89-47d5-9672-37e016266f93", + "id": "ed3b1dd7-f780-4eb5-b90b-2ed702cca3b8", "savedPayload": { "position": { "x": 16594.02189762179, @@ -17074,7 +17878,7 @@ } } }, - "id": "63ac1e47-cf0c-4f27-85bd-023be3472aa4", + "id": "8c959fa7-732e-45bc-8b71-58c49b5724ba", "savedPayload": { "position": { "x": 16614.20579957824, @@ -17107,7 +17911,7 @@ "name": "New Record Formula", "code": "variable.minForecast30", "project": "Foundations", - "id": "04cb4c47-9a87-4a02-a294-77692234fd47", + "id": "10b27f1f-3a1a-4eb7-962a-3355af73ee99", "savedPayload": { "position": { "x": 16820.439238798965, @@ -17130,7 +17934,7 @@ } } }, - "id": "4faa4a7e-269a-4b58-9a37-27c53221ce9b", + "id": "a2b44110-3c32-4a35-b73f-e429e9b99760", "savedPayload": { "position": { "x": 16765.150693696356, @@ -17163,7 +17967,7 @@ "name": "New Record Formula", "code": "variable.maxForecast30", "project": "Foundations", - "id": "63763d13-8996-4033-b7f6-efe02090d5f8", + "id": "27cd33fe-ca63-4ffc-a323-1ddd0908ecd6", "savedPayload": { "position": { "x": 17038.53938442723, @@ -17186,7 +17990,7 @@ } } }, - "id": "e69926a6-5faa-4c54-afe5-90649e765999", + "id": "37a2d3fd-440f-4267-8457-a3f1ada186a6", "savedPayload": { "position": { "x": 16910.550790781865, @@ -17219,7 +18023,7 @@ "name": "New Record Formula", "code": "variable.T5Begin", "project": "Foundations", - "id": "9d767539-4784-4f78-9168-7445eb5a9ce7", + "id": "ebdf9637-af23-47ce-9915-63ff8642897d", "savedPayload": { "position": { "x": 17237.38588249788, @@ -17242,7 +18046,7 @@ } } }, - "id": "f5d734bf-eae8-47b0-9d75-c28b7f768cd5", + "id": "40075911-0bb4-4e29-ba16-95d6c82f5279", "savedPayload": { "position": { "x": 17043.115122828967, @@ -17275,7 +18079,7 @@ "name": "New Record Formula", "code": "variable.T10Begin", "project": "Foundations", - "id": "a224ac5c-958a-4c11-84aa-2ade84d199f8", + "id": "6499edf3-c385-473d-878e-b739bf7c0dd1", "savedPayload": { "position": { "x": 17407.007739287, @@ -17298,7 +18102,7 @@ } } }, - "id": "4b6a34ab-ab9a-491f-aba0-cff611c9ce47", + "id": "f1ba358e-2ff2-453b-b411-ac7a1527388a", "savedPayload": { "position": { "x": 17156.19636068838, @@ -17331,7 +18135,7 @@ "name": "New Record Formula", "code": "variable.T20Begin", "project": "Foundations", - "id": "e0293a19-4176-4e10-bc8e-a09bd105e576", + "id": "b66a0fad-0a88-412e-b5cf-ba176b319afe", "savedPayload": { "position": { "x": 17538.899406615983, @@ -17354,7 +18158,7 @@ } } }, - "id": "aa8941d8-8cc5-4f14-be4c-b308085e65a2", + "id": "59edc2f5-f1e5-4345-b1d1-4e4879fe6525", "savedPayload": { "position": { "x": 17244.1241389077, @@ -17387,7 +18191,7 @@ "name": "New Record Formula", "code": "variable.T30Begin", "project": "Foundations", - "id": "3a102b56-c267-46be-991c-0fd3414d5519", + "id": "f1013d2e-2515-4779-a049-8f08d90066e3", "savedPayload": { "position": { "x": 17626.447285553313, @@ -17410,7 +18214,7 @@ } } }, - "id": "66d6716c-ccda-41f1-a9ee-9cf2a1bc913d", + "id": "23159efe-60d9-4bf7-8eb2-d774f177cde3", "savedPayload": { "position": { "x": 17302.48939153259, @@ -17443,7 +18247,7 @@ "name": "New Record Formula", "code": "variable.T5End", "project": "Foundations", - "id": "d7f6dbde-d781-4a51-8214-0c4ad278039d", + "id": "8e0bae90-adaf-44e0-b7f6-4c955d9749a9", "savedPayload": { "position": { "x": 17665.26135988097, @@ -17466,7 +18270,7 @@ } } }, - "id": "20326fc9-83ba-4240-b3f4-9b36d40578d8", + "id": "90b1c1fc-a0ac-4a0e-af82-6e2b27304a67", "savedPayload": { "position": { "x": 17328.36544108436, @@ -17499,7 +18303,7 @@ "name": "New Record Formula", "code": "variable.T10End", "project": "Foundations", - "id": "ac74395a-4a6f-40d4-8810-9a7f53deff20", + "id": "be1875ff-f2aa-4da0-bc87-176f93c8ed9b", "savedPayload": { "position": { "x": 17653.395329838706, @@ -17522,7 +18326,7 @@ } } }, - "id": "e51eed63-fb11-491d-829e-db050439b262", + "id": "bcfe02b6-b298-4aa2-9f0c-389df5c97997", "savedPayload": { "position": { "x": 17320.454754389517, @@ -17555,7 +18359,7 @@ "name": "New Record Formula", "code": "variable.T20End", "project": "Foundations", - "id": "5f21e99e-e4d1-42e6-81ae-83ef6a485157", + "id": "71a1edec-75a1-471f-a6e8-d7e6b6073932", "savedPayload": { "position": { "x": 17591.444207721062, @@ -17578,7 +18382,7 @@ } } }, - "id": "5152d7ff-8e88-4f44-a0aa-b5b3eee332a1", + "id": "a6b7dadf-b989-489e-9e10-28df08b6cbb0", "savedPayload": { "position": { "x": 17279.154006311088, @@ -17611,7 +18415,7 @@ "name": "New Record Formula", "code": "variable.T30End", "project": "Foundations", - "id": "2915cf88-707a-4506-9e80-5e12629ef8c7", + "id": "ec42e76b-77ab-40f1-afde-14b3ac533efc", "savedPayload": { "position": { "x": 17482.514481476373, @@ -17634,7 +18438,7 @@ } } }, - "id": "06d03fc4-4c77-49b9-afdb-546574be6f06", + "id": "e35e4be6-0332-497c-8608-684b6b80aeb9", "savedPayload": { "position": { "x": 17206.53418881463, @@ -17658,7 +18462,7 @@ } } ], - "id": "16edd125-0562-49f2-957b-6f8d993d222c", + "id": "f796be41-725f-4287-8972-d8b02232ba4b", "savedPayload": { "position": { "x": 16654.57360349114, @@ -17694,7 +18498,7 @@ "name": "New Procedure Javascript Code", "code": "\tlet candle = record.current\n\tlet Al = 0.4 //initial value for alpha factor\n\tlet Bet = 0.4 //initial value for beta factor\n\tlet Ph = 0.8 //initial value for phi factor\n\tlet Ga = 0.3 //initial value for gamma factor\n\tlet sLen = 5 //length of seasonal period ; integer only\n\tlet fLen = 6 //number of season period to forecast ; integer only ; forecast will be calculated on fLen * sLen = 30 periods\n\tlet Iter = 20 //number of loop to proceed parameters optimization\n\n\n\t//initializing Factors with fixed value or optimized value if exists\n\tif (variable.Alpha === undefined) {\n\t\tvariable.Alpha = Al\n\t }\n\t else {\n\t variable.Alpha = variable.Alpha\n\t }\n\t \n\tif (variable.Beta === undefined) {\n\t\tvariable.Beta = Bet\n\t }\n\t else {\n\t variable.Beta = variable.Beta\n\t }\n\n\tif (variable.Phi === undefined) {\n\t\tvariable.Phi = Ph\n\t }\n\t else {\n\t variable.Phi = variable.Phi\n\t }\n\n\tif (variable.Gamma === undefined) {\n\t\tvariable.Gamma = Ga\n\t }\n\t else {\n\t variable.Gamma = variable.Gamma\n\t }\n\t \n\t//Fetching candle close values for sLen length \n\tvariable.lastClose.push(candle.close)\n\tif(variable.lastClose.length > sLen) {\n\t\tvariable.lastClose.splice(0,1)\n\t}\n\tvariable.lastClose2x.push(candle.close)\n\tif(variable.lastClose2x.length > 2 * sLen) {\n\t\tvariable.lastClose2x.splice(0,1)\n\t}\n\t\n\t//fetching candle values for sLen * fLen length\n\tvariable.last30Candles.push(candle.close)\n\tif(variable.last30Candles.length > sLen * fLen) {\n\t\tvariable.last30Candles.splice(0,1)\n\t\tvariable.forecastTrig = 1 //trigger to switch to the next step of forecast optimization as soon as there is enough values\n\t}\n\t\n\t//Initializing A, B, S, Y variables according to Hyndman parameters https://robjhyndman.com/hyndsight/hw-initialization/\n\t\n\t//managing the undefined values until lastClose2x reach sufficient length\n\tif(variable.trig === undefined) {\n\tvariable.trig = 0 //variable to indicate initialization stage is over\n\t}\n\tif(variable.lastClose2x.length < 2 * sLen && variable.trig === 0) {\n\t\tvariable.Y = 0 //forecast through history variable\n\t\tvariable.A = 0 //level\n\t\tvariable.B = 0 //trend\n\t\tvariable.S[0] = 0 //season\n\t\tvariable.previousB = variable.B\n\t\tvariable.previousA = variable.A\n\t\tvariable.trend = 0\n\t\tvariable.last31A.push(variable.A)\n\t\tvariable.last31B.push(variable.B)\n\t\tif(variable.last31A.length > sLen * fLen +1){\n\t\t\tvariable.last31A.splice(0,1)\n\t\t\tvariable.last31B.splice(0,1)\n\t\t}\n\t}\n\tif(variable.lastClose2x.length === 2 * sLen && variable.trig === 0) {\n\t\tfor(var i = 0 ; i < sLen ; i++) {\n\t\t\tvariable.previousA = variable.previousA + variable.lastClose[i]\n\t\t}\n\t\tvariable.previousA = variable.previousA / sLen\n\t\tvariable.last31A.push(variable.A)\n\t\tif(variable.last31A.length > sLen * fLen +1){\n\t\t\tvariable.last31A.splice(0,1)\n\t\t}\n\t\tfor(var i = 0; i < sLen ; i++) {\n\t\t\tvariable.previousB = variable.previousB + variable.lastClose2x[i + sLen] - variable.lastClose2x[i]\n\t\t}\n\t\tvariable.previousB = variable.previousB / Math.pow(sLen,2)\n\t\tvariable.last31B.push(variable.B)\n\t\tif(variable.last31B.length > sLen * fLen +1){\n\t\t\tvariable.last31B.splice(0,1)\n\t\t}\n\t\tvariable.S[0] = candle.close / variable.previousA\n\t\tvariable.trig = 1 \n\t\tvariable.trend = 0\n\n\t}\n\tif(variable.lastClose2x.length === 2* sLen && variable.trig === 1)\n\t{\n\t\tvariable.Y = (variable.previousA + variable.Phi * variable.previousB) * variable.S[0]\n\t\tvariable.A = variable.Alpha * variable.Y / variable.S[0] + (1 - variable.Alpha) * (variable.previousA + variable.Phi * variable.previousB)\n\t\tvariable.B = variable.Beta * (variable.A - variable.previousA) + (1 - variable.Beta) * variable.Phi * variable.previousB\n\t\tvariable.S.push(variable.Gamma * variable.Y / variable.A + (1 - variable.Gamma) * variable.S[0])\n\t\tvariable.slope = variable.B - variable.previousB\n\t\tif(variable.slope < 0){\n\t\t\tvariable.trend = 1\n\t\t}\n\t\telse {\n\t\t\tvariable.trend = -1\n\t\t}\n\t\tvariable.previousA = variable.A\n\t\tvariable.previousB = variable.B\n\t\t//store last sLen*flen +1 values of variable.A and variable.B for the min MASE forecast optimization \n\t\tvariable.last31A.push(variable.A)\n\t\tvariable.last31B.push(variable.B)\n\t\tif(variable.last31A.length > sLen * fLen +1){\n\t\t\tvariable.last31A.splice(0,1)\n\t\t\tvariable.last31B.splice(0,1)\n\t\t}\n\t}\n\n\t//keep Season array to the right size\n\tif(variable.S.length > sLen) {\n\t\tvariable.S.splice(0,1)\n\t}\n\n\t//Parameters optimization\n\t//calculation of initial mean square error\n\n\tvariable.Errors.push(Math.pow(variable.Y - candle.close, 2))\n\tif(variable.Errors.length > sLen) {\n\t\t\tvariable.Errors.splice(0,1)\n\t}\n\tif(variable.Errors.length === sLen) {\n\t\tvariable.ErrSqSum = 0\n\t\tfor (var k = 0 ; k < variable.Errors.length ; k++) {\n\t\t\t\tvariable.ErrSqSum = variable.ErrSqSum + variable.Errors[k]\n\t\t}\n\t\tvariable.MS = variable.ErrSqSum / variable.Errors.length\n\t\tif(variable.lastClose2x.length === 2*sLen && variable.trig === 1 ){\n\t\t//initialiying best parameters calculation\n\t\tvariable.bestAlpha = 0\n\t\tvariable.bestBeta = variable.Beta\n\t\tvariable.bestPhi = variable.Phi\n\t\tvariable.bestGamma = variable.Gamma\n\t\tvariable.bestError = variable.MS\n\t\t//Alpha optimization\n\t\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.bestAlpha = variable.bestAlpha +(1 - i/Iter)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.previousA\n\t\t\tvariable.previoussB = variable.previousB\n\t\t\tvariable.sErrSqSum = 0\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.bestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.bestAlpha * variable.sY / variable.sS[0] + (1 - variable.bestAlpha) * (variable.previoussA + variable.bestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.bestBeta * (variable.sA - variable.previoussA) + (1 - variable.bestBeta) * variable.bestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.bestGamma * variable.sY / variable.sA + (1 - variable.bestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t\tvariable.sError.push(Math.pow(variable.sY - variable.lastClose[j],2))\n\t\t\t}\n\t\t\tfor(var k = 0 ; k < variable.sError.length ; k++) {\n\t\t\t\tvariable.sErrSqSum = variable.sErrSqSum + variable.sErrSqSum[k]\n\t\t\t}\n\t\t\tvariable.sMS = variable.sErrSqSum / variable.sError.length\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.Alpha = variable.bestAlpha\n\t\t\t}\n\t\t\n\t\t}\n\t\tvariable.bestError = variable.MS\n\t\tvariable.bestBeta = 0\n\t\t//Beta optimization\n\t\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.bestBeta = variable.bestBeta +(1 - i/Iter)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.previousA\n\t\t\tvariable.previoussB = variable.previousB\n\t\t\tvariable.sErrSqSum = 0\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.bestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.bestAlpha * variable.sY / variable.sS[0] + (1 - variable.bestAlpha) * (variable.previoussA + variable.bestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.bestBeta * (variable.sA - variable.previoussA) + (1 - variable.bestBeta) * variable.bestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.bestGamma * variable.sY / variable.sA + (1 - variable.bestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t\tvariable.sError.push(Math.pow(variable.sY - variable.lastClose[j],2))\n\t\t\t}\n\t\t\tfor(var k = 0 ; k < variable.sError.length ; k++) {\n\t\t\t\tvariable.sErrSqSum = variable.sErrSqSum + variable.sErrSqSum[k]\n\t\t\t}\n\t\t\tvariable.sMS = variable.sErrSqSum / variable.sError.length\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.Beta = variable.bestBeta\n\t\t\t}\n\t\t\n\t\t}\n\t\tvariable.bestError = variable.MS\n\t\tvariable.bestPhi = 0.8\n\t\t//Phi optimization\n\t\tfor(var i = 0 ; i < Iter ; i++) {\t\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.bestPhi = variable.bestPhi +(1 - (i/Iter) * 0.2)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.previousA\n\t\t\tvariable.previoussB = variable.previousB\n\t\t\tvariable.sErrSqSum = 0\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.bestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.bestAlpha * variable.sY / variable.sS[0] + (1 - variable.bestAlpha) * (variable.previoussA + variable.bestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.bestBeta * (variable.sA - variable.previoussA) + (1 - variable.bestBeta) * variable.bestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.bestGamma * variable.sY / variable.sA + (1 - variable.bestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t\tvariable.sError.push(Math.pow(variable.sY - variable.lastClose[j],2))\n\t\t\t}\n\t\t\tfor(var k = 0 ; k < variable.sError.length ; k++) {\n\t\t\t\tvariable.sErrSqSum = variable.sErrSqSum + variable.sErrSqSum[k]\n\t\t\t}\n\t\t\tvariable.sMS = variable.sErrSqSum / variable.sError.length\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.Phi = variable.bestPhi\n\t\t\t}\n\t\t\n\t\t}\n\t\tvariable.bestError = variable.MS\n\t\tvariable.bestGamma = 0\n\t\t//Gamma optimization\n\t\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.bestGamma = variable.bestGamma +(1 - i/Iter)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.previousA\n\t\t\tvariable.previoussB = variable.previousB\n\t\t\tvariable.sErrSqSum = 0\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.bestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.bestAlpha * variable.sY / variable.sS[0] + (1 - variable.bestAlpha) * (variable.previoussA + variable.bestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.bestBeta * (variable.sA - variable.previoussA) + (1 - variable.bestBeta) * variable.bestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.bestGamma * variable.sY / variable.sA + (1 - variable.bestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t\tvariable.sError.push(Math.pow(variable.sY - variable.lastClose[j],2))\n\t\t\t}\n\t\t\tfor(var k = 0 ; k < variable.sError.length ; k++) {\n\t\t\t\tvariable.sErrSqSum = variable.sErrSqSum + variable.sErrSqSum[k]\n\t\t\t}\n\t\t\tvariable.sMS = variable.sErrSqSum / variable.sError.length\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.Gamma = variable.bestGamma\n\t\t\t}\n\t\t\n\t\t}\n\t}\n\t}\n\t//initializing forecast data\n\tvariable.fS = [] // purge the season array for forecast data\n\tvariable.previousfA = variable.A //equivalent A variable for the forecast calculation\n\tvariable.previousfB = variable.B //equivalent B variable for the forecast calculation\n\n\n\t//calculating forecast data 1st set\n\tif(variable.forecastTrig === undefined) {\n\t\tvariable.forecastTrig = 0\n\t}\n\tif(variable.S.length === sLen && variable.trig === 1 && variable.forecastTrig === 0) {\n\tfor (var j = 0; j < fLen ; j++) {\n\t\tfor(var n = 0; n < sLen; n++) {\n\t\t\tvariable.fY.push((variable.previousfA + variable.Phi * variable.previousfB) * variable.S[n])\n\t\t\tvariable.fA = variable.previousfA + variable.Phi * variable.previousfB\n\t\t\tvariable.fB = variable.Phi * variable.previousfB\n\t\t\tvariable.previousfA = variable.fA\n\t\t\tvariable.previousfB = variable.fB\n\t\t\tif(variable.fY.length > fLen * sLen) {\n\t\t\t\tvariable.fY.splice(0,1)\n\t\t\t}\n\t\t\tvariable.prevfY.push(variable.fY[0])\n\t\t\tif(variable.prevfY.length > fLen * sLen){\n\t\t\tvariable.prevfY.splice(0,1)\n\t\t\t}\n\n\t\t}\n\t}\n\n\t\tvariable.forecast = variable.fY[0] \n\t\tvariable.forecast5 = 100 * (variable.fY[4] - variable.fY[0])/variable.fY[0]\n\t\tvariable.forecast10 = 100 * (variable.fY[9] - variable.fY[0])/variable.fY[0]\n\t\tvariable.forecast20 = 100 * (variable.fY[19] - variable.fY[0])/variable.fY[0]\n\t\tvariable.forecast30 = 100 * (variable.fY[29] - variable.fY[0])/variable.fY[0]\n\t\tvariable.SW = 1\n\n\t \n\t} else {\n\t\tvariable.forecast = 0 \n\t\tvariable.forecast5 = 0\n\t\tvariable.forecast10 = 0\n\t\tvariable.forecast20 = 0\n\t\tvariable.forecast30 = 0\n\t}\n//Forecast optimization after 1st data set\n\n\tif(variable.prevfY.length === sLen * fLen && variable.trig === 1 && variable.forecastTrig === 1 && variable.SW === 1) {\n\t\t//initialising best parameters calculation\n\t\t//calculate the value for Mean Absolute Scale Error with seasonal period influence\n\t\t//Calculation of the stable measure of the scale of the training time serie i.e. candle.close on the desired forecast number of periods minus season number of periods\n\t\tvariable.sumY = 0\n\t\tvariable.totalQT = 0\n\t\tfor(var i = sLen + 1 ; i < fLen * sLen ; i++) {\n\t\t\tvariable.sumY = variable.sumY + Math.abs(variable.last30Candles[i] - variable.last30Candles[i-sLen])\n\t\t}\n\t\tvariable.Q = variable.sumY / (fLen * sLen - sLen)\n\t\tfor(var i = 0 ; i < variable.prevfY.length ; i++) {\n\t\t\tvariable.totalQT = variable.totalQT + (variable.last30Candles[i] - variable.prevfY[i])/variable.Q\n\t\t}\n\t\tvariable.MASE = Math.abs(variable.totalQT / variable.prevfY.length)\n\t\t\n\t\tvariable.MbestAlpha = 0\n\t\tvariable.MbestBeta = variable.Beta\n\t\tvariable.MbestPhi = variable.Phi\n\t\tvariable.MbestGamma = variable.Gamma\n\t\tvariable.bestError = variable.MASE\n\t//Alpha optimization\n\t\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.MbestAlpha = variable.MbestAlpha +(1 - i/Iter)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.last31A[0]\n\t\t\tvariable.previoussB = variable.last31B[0]\n\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.MbestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.MbestAlpha * variable.sY / variable.sS[0] + (1 - variable.MbestAlpha) * (variable.previoussA + variable.MbestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.MbestBeta * (variable.sA - variable.previoussA) + (1 - variable.MbestBeta) * variable.MbestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.MbestGamma * variable.sY / variable.sA + (1 - variable.MbestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t}\n\t\tvariable.sumY = 0\n\t\tvariable.totalQT = 0\n\t\tfor(var i = sLen + 1 ; i < fLen * sLen ; i++) {\n\t\t\tvariable.sumY = variable.sumY + Math.abs(variable.last30Candles[i] - variable.last30Candles[i-sLen])\n\t\t}\n\t\tvariable.Q = variable.sumY / (fLen * sLen - sLen)\n\t\tfor(var i = 0 ; i < variable.prevfY.length ; i++) {\n\t\t\tvariable.totalQT = variable.totalQT + (variable.last30Candles[i] - variable.prevfY[i])/variable.Q\n\t\t}\n\t\t\tvariable.sMS = Math.abs(variable.totalQT / variable.prevfY.length)\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.MAlpha = variable.MbestAlpha\n\t\t\t\tvariable.Alpha = variable.MbestAlpha\n\t\t\t}\n\t\t\n\t\t}\n\tvariable.bestError = variable.MS\n\tvariable.MbestBeta = 0\n\t//Beta optimization\n\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.MbestBeta = variable.MbestBeta +(1 - i/Iter)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.last31A[0]\n\t\t\tvariable.previoussB = variable.last31B[0]\n\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.MbestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.MbestAlpha * variable.sY / variable.sS[0] + (1 - variable.MbestAlpha) * (variable.previoussA + variable.MbestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.MbestBeta * (variable.sA - variable.previoussA) + (1 - variable.MbestBeta) * variable.MbestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.MbestGamma * variable.sY / variable.sA + (1 - variable.MbestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t}\n\t\tvariable.sumY = 0\n\t\tvariable.totalQT = 0\n\t\tfor(var i = sLen + 1 ; i < fLen * sLen ; i++) {\n\t\t\tvariable.sumY = variable.sumY + Math.abs(variable.last30Candles[i] - variable.last30Candles[i-sLen])\n\t\t}\n\t\tvariable.Q = variable.sumY / (fLen * sLen - sLen)\n\t\tfor(var i = 0 ; i < variable.prevfY.length ; i++) {\n\t\t\tvariable.totalQT = variable.totalQT + (variable.last30Candles[i] - variable.prevfY[i])/variable.Q\n\t\t}\n\t\t\tvariable.sMS = Math.abs(variable.totalQT / variable.prevfY.length)\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.MBeta = variable.MbestBeta\n\t\t\t\tvariable.Beta = variable.MbestBeta\n\t\t\t}\n\t\t\n\t\t}\n\tvariable.bestError = variable.MS\n\tvariable.MbestGamma = 0\n\t//Gamma optimization\n\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.MbestGamma = variable.MbestGamma +(1 - i/Iter)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.last31A[0]\n\t\t\tvariable.previoussB = variable.last31B[0]\n\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.MbestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.MbestAlpha * variable.sY / variable.sS[0] + (1 - variable.MbestAlpha) * (variable.previoussA + variable.MbestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.MbestBeta * (variable.sA - variable.previoussA) + (1 - variable.MbestBeta) * variable.MbestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.MbestGamma * variable.sY / variable.sA + (1 - variable.MbestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t}\n\t\tvariable.sumY = 0\n\t\tvariable.totalQT = 0\n\t\tfor(var i = sLen + 1 ; i < fLen * sLen ; i++) {\n\t\t\tvariable.sumY = variable.sumY + Math.abs(variable.last30Candles[i] - variable.last30Candles[i-sLen])\n\t\t}\n\t\tvariable.Q = variable.sumY / (fLen * sLen - sLen)\n\t\tfor(var i = 0 ; i < variable.prevfY.length ; i++) {\n\t\t\tvariable.totalQT = variable.totalQT + (variable.last30Candles[i] - variable.prevfY[i])/variable.Q\n\t\t}\n\t\t\tvariable.sMS = Math.abs(variable.totalQT / variable.prevfY.length)\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.MGamma = variable.MbestGamma\n\t\t\t\tvariable.Gamme = variable.MbestGamma\n\t\t\t}\n\t\t\n\t\t}\n\tvariable.bestError = variable.MS\n\tvariable.MbestPhi = 0.8\n\t\t\t\n\t\t//Phi optimization\n\t\tfor(var i = 0 ; i < Iter ; i++) {\n\t\t\n\t\t\tvariable.sS = []\n\t\t\tvariable.sError = []\n\t\t\tvariable.MbestPhi = variable.MbestPhi +(1 - (i/Iter) * 0.2)\n\t\t\tvariable.sS[0] = variable.S[0]\n\t\t\tvariable.previoussA = variable.last31A[0]\n\t\t\tvariable.previoussB = variable.last31B[0]\n\n\t\t\tfor(var j=0 ; j < sLen ; j++) {\n\t\t\t\tvariable.sY = (variable.previoussA + variable.MbestPhi * variable.previoussB) * variable.sS[0]\n\t\t\t\tvariable.sA = variable.MbestAlpha * variable.sY / variable.sS[0] + (1 - variable.MbestAlpha) * (variable.previoussA + variable.MbestPhi * variable.previoussB)\n\t\t\t\tvariable.sB = variable.MbestBeta * (variable.sA - variable.previoussA) + (1 - variable.MbestBeta) * variable.MbestPhi * variable.previoussB\n\t\t\t\tvariable.sS.push(variable.MbestGamma * variable.sY / variable.sA + (1 - variable.MbestGamma) * variable.sS[0])\n\t\t\t\tvariable.previoussA = variable.sA\n\t\t\t\tvariable.previoussB = variable.sB\n\t\t\t}\n\t\tvariable.sumY = 0\n\t\tvariable.totalQT = 0\n\t\tfor(var i = sLen + 1 ; i < fLen * sLen ; i++) {\n\t\t\tvariable.sumY = variable.sumY + Math.abs(variable.last30Candles[i] - variable.last30Candles[i-sLen])\n\t\t}\n\t\tvariable.Q = variable.sumY / (fLen * sLen - sLen)\n\t\tfor(var i = 0 ; i < variable.prevfY.length ; i++) {\n\t\t\tvariable.totalQT = variable.totalQT + (variable.last30Candles[i] - variable.prevfY[i])/variable.Q\n\t\t}\n\t\t\tvariable.sMS = Math.abs(variable.totalQT / variable.prevfY.length)\n\t\t\tif(variable.sMS < variable.bestError){\n\t\t\t\tvariable.bestError = variable.sMs\n\t\t\t\tvariable.MPhi = variable.MbestPhi\n\t\t\t\tvariable.Phi = variable.MbestPhi\n\t\t\t}\n\t\t\n\t\t}\n\t}\n\t//calculating forecast data after 1st set\n\tif(variable.S.length === sLen && variable.trig === 1 && variable.forecastTrig === 1) {\n\tfor (var j = 0; j < fLen ; j++) {\n\t\tfor(var n = 0; n < sLen; n++) {\n\t\t\tvariable.fY.push((variable.previousfA + variable.MPhi * variable.previousfB) * variable.S[n])\n\t\t\tvariable.fA = variable.previousfA + variable.MPhi * variable.previousfB\n\t\t\tvariable.fB = variable.MPhi * variable.previousfB\n\t\t\tvariable.previousfA = variable.fA\n\t\t\tvariable.previousfB = variable.fB\n\t\t\tif(variable.fY.length > fLen * sLen) {\n\t\t\t\tvariable.fY.splice(0,1)\n\t\t\t}\n\t\t\tvariable.prevfY.push(variable.fY[0])\n\t\t\tif(variable.prevfY.length > fLen * sLen){\n\t\t\tvariable.prevfY.splice(0,1)\n\t\t\t}\n\t\t}\n\t}\n\n\t\tvariable.forecast = variable.fY[0] \n\t\tvariable.forecast5 = 100 * (variable.fY[4] - variable.fY[0])/variable.fY[0]\n\t\tvariable.forecast10 = 100 * (variable.fY[9] - variable.fY[0])/variable.fY[0]\n\t\tvariable.forecast20 = 100 * (variable.fY[19] - variable.fY[0])/variable.fY[0]\n\t\tvariable.forecast30 = 100 * (variable.fY[29] - variable.fY[0])/variable.fY[0]\n\t\t\n\n\t \n\t} else {\n\t\tvariable.forecast = 0 \n\t\tvariable.forecast5 = 0\n\t\tvariable.forecast10 = 0\n\t\tvariable.forecast20 = 0\n\t\tvariable.forecast30 = 0\n\t}\n\t//identifying max and min forecast value until the value used to calculate the first member of the array is out of scope\n\t//The idea is to frame the forecast value by the corresponding min and max at the same distance\nvariable.lastForecast5.push(variable.forecast5)\nif(variable.lastForecast5.length > 5){\n variable.lastForecast5.splice(0,1)\n}\nvariable.maxForecast5 = Math.max.apply(Math,variable.lastForecast5)\nvariable.minForecast5 = Math.min.apply(Math,variable.lastForecast5)\n\nvariable.lastForecast10.push(variable.forecast10)\nif(variable.lastForecast10.length > 10){\n variable.lastForecast10.splice(0,1)\n}\nvariable.maxForecast10 = Math.max.apply(Math,variable.lastForecast10)\nvariable.minForecast10 = Math.min.apply(Math,variable.lastForecast10)\n\nvariable.lastForecast20.push(variable.forecast20)\nif(variable.lastForecast20.length > 10){\n variable.lastForecast20.splice(0,1)\n}\nvariable.maxForecast20 = Math.max.apply(Math,variable.lastForecast20)\nvariable.minForecast20 = Math.min.apply(Math,variable.lastForecast20)\n\nvariable.lastForecast30.push(variable.forecast30)\nif(variable.lastForecast30.length > 30){\n variable.lastForecast30.splice(0,1)\n}\nvariable.maxForecast30 = Math.max.apply(Math,variable.lastForecast30)\nvariable.minForecast30 = Math.min.apply(Math,variable.lastForecast30)\n\n//calculate time for forecast\nvariable.T5Begin = candle.begin + (candle.end - candle.begin) * 5\nvariable.T5End = candle.end + (candle.end - candle.begin) * 5\nvariable.T10Begin = candle.begin + (candle.end - candle.begin) * 10\nvariable.T10End = candle.end + (candle.end - candle.begin) * 10\nvariable.T20Begin = candle.begin + (candle.end - candle.begin) * 20\nvariable.T20End = candle.end + (candle.end - candle.begin) * 20\nvariable.T30Begin = candle.begin + (candle.end - candle.begin) * 30\nvariable.T30End = candle.end + (candle.end - candle.begin) * 30\n\t// End of code :-)", "project": "Foundations", - "id": "dafb0d30-5303-4a9d-b7ea-f4a10cf502db", + "id": "189c6a5f-9a45-4c4f-9077-de26a54ca17e", "savedPayload": { "position": { "x": 16576.238597598982, @@ -17717,7 +18521,7 @@ } } }, - "id": "d745ff81-8028-4c08-a7df-d271577b24b8", + "id": "e4695e65-66f7-4d78-aef0-44ad24c060cf", "savedPayload": { "position": { "x": 16840.741961130596, @@ -17749,7 +18553,7 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.lastClose = []\nvariable.S = []\nvariable.fY = []\nvariable.Errors = []\nvariable.lastClose2x = []\nvariable.lastForecast5 = []\nvariable.lastForecast10 = []\nvariable.lastForecast20 = []\nvariable.lastForecast30 = []\nvariable.prevfY = []\nvariable.last30Candles = []\nvariable.last31A = []\nvariable.last31B = []", "project": "Foundations", - "id": "fe5023a3-8d5e-4004-9106-906565202dcc", + "id": "7ddab62f-5dcb-45c0-b9fe-d24e0c1c16e0", "savedPayload": { "position": { "x": 17598.538049923958, @@ -17772,7 +18576,7 @@ } } }, - "id": "d0b01cb3-553b-452c-b625-7a63c77812d8", + "id": "31f21717-cf93-4330-b239-5adf00d90d43", "savedPayload": { "position": { "x": 17552.78017757793, @@ -17795,7 +18599,7 @@ } } }, - "id": "4d1cce4d-b20b-44a8-82b5-6dbfd8bee0e3", + "id": "49027837-5745-46c4-9507-d329f5e43a1b", "savedPayload": { "position": { "x": 17369.74868819382, @@ -17818,7 +18622,7 @@ } } }, - "id": "753834c8-b913-43b6-a231-f469fc7114cc", + "id": "76c7bccf-89eb-49b2-a5cb-b8b0b3f8fe76", "savedPayload": { "position": { "x": 17557.899922075598, @@ -17842,16 +18646,36 @@ "referenceParent": { "type": "Plotter Module", "name": "Holt-Winters 2", - "id": "304017a6-6d95-4565-818f-d59169dfc6ac" - } + "id": "d3991f1f-dacf-4d98-b51c-463cf116baca" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters 2", + "Plotter", + "Foundations", + "4c1f5b98-8c0e-4777-86fd-03c3ef0651e2" + ], + [ + "Holt-Winters 2", + "Plotter Module", + "Foundations", + "ed55dd2c-5c47-45d0-8a74-12d8c152d56f" + ] + ] } } ], - "id": "236d6fec-c7fe-4c75-8622-91168bcc40a9", + "id": "b2befa5c-aa6e-4ed3-90d0-be491b3750a5", "savedPayload": { "position": { - "x": 17582.779391774216, - "y": 10139.896257010185 + "x": 17711.03943321634, + "y": 10259.59269543114 }, "targetPosition": { "x": 18051.878281255034, @@ -17890,7 +18714,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market On-Balance-Volume Integral", "project": "Foundations", - "id": "e351d686-63dc-4a45-9cc4-051d8c6f973a", + "id": "bf89f095-90db-40a4-9d67-a164d4ea0d72", "savedPayload": { "position": { "x": 17737.86180006144, @@ -17914,13 +18738,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "49d71fdc-024c-47a6-b260-8cd6c46d86bb" - } + "id": "9b9450e7-0837-4064-98ff-e7c22fed2b4e" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Integral", + "Indicator Bot", + "Foundations", + "b307f7b6-a8bc-4bdd-833d-f1f41d71003b" + ], + [ + "On-Balance-Volume Integral", + "Product Definition", + "Foundations", + "beb2277f-ccc6-4e1d-84b6-482a01f16458" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "604ad46b-4097-4aec-91b3-8ab8503dd000" + ] + ] } } ], "outputDatasetFolders": [], - "id": "1645d54a-e859-42c0-a138-78cda8191732", + "id": "0305ad87-a435-4073-9d65-2077de0711ea", "savedPayload": { "position": { "x": 17448.386151177125, @@ -17953,7 +18803,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "d37e257f-b55f-442b-96b1-4e2e8ac37073", + "id": "e5b29f8b-09c7-4124-af1e-6f7c50a93185", "savedPayload": { "position": { "x": 18159.43397724719, @@ -17978,7 +18828,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -17986,7 +18862,7 @@ "name": "On-Balance-Volume Integral Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "c4f677fc-6570-46c2-a51d-36f37e752269", + "id": "8e013593-45ed-45c9-9367-77c623c7a665", "savedPayload": { "position": { "x": 17562.09882553749, @@ -18010,8 +18886,34 @@ "referenceParent": { "type": "Status Report", "name": "Market-OBV Integral", - "id": "e314c89e-d094-43cf-ab74-c17db27bd602" - } + "id": "9885bc15-02f8-4560-9cd5-329b6aa7403a" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Integral", + "Indicator Bot", + "Foundations", + "b307f7b6-a8bc-4bdd-833d-f1f41d71003b" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "a38e3c44-9472-4e1a-aeec-25c2a662a808" + ], + [ + "Market-OBV Integral", + "Status Report", + "Foundations", + "9967fbbd-fdb1-4686-a906-38abda28f361" + ] + ] } } ], @@ -18020,7 +18922,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "f8fe9735-73fe-4472-9cdc-8871eb539518", + "id": "eadef577-a578-4c18-b386-e82542cce294", "savedPayload": { "position": { "x": 17286.587191707942, @@ -18045,14 +18947,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Market", "project": "Foundations", - "id": "0e05693b-7078-4a72-a960-b2300ccfc8cf", + "id": "0f5b0be6-4983-4be4-8567-1ce3c5e8b317", "savedPayload": { "position": { "x": 17041.37743522835, @@ -18077,12 +19005,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "9bf0483c-4825-4a46-9cf4-1b5262579fc1" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "9bf0483c-4825-4a46-9cf4-1b5262579fc1" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "2bbb3f8d-b9fd-4428-91f3-30d9596f7d18", + "id": "ec4e4d13-c897-4c92-b9fa-122fe4f236b4", "savedPayload": { "position": { "x": 17140.78715435391, @@ -18109,7 +19063,7 @@ "type": "Status Report", "name": "Market-OBV Integral", "project": "Foundations", - "id": "e314c89e-d094-43cf-ab74-c17db27bd602", + "id": "9885bc15-02f8-4560-9cd5-329b6aa7403a", "savedPayload": { "position": { "x": 16848.507813786215, @@ -18136,7 +19090,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "2390e32b-81ce-4477-a39c-f3cb3bf36f57", + "id": "109201b7-436d-4f09-b4fa-96cfe39fd9db", "savedPayload": { "position": { "x": 16896.13500462274, @@ -18161,14 +19115,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "79e6265e-3815-4034-b27f-a88a3da0cebd", + "id": "938101ed-df98-4dd6-a81f-869ae1f63be3", "savedPayload": { "position": { "x": 16858.971333597354, @@ -18191,15 +19171,15 @@ } } }, - "id": "fa98fe6d-a47f-4e36-8994-749deb1c216d", + "id": "6626e937-d262-4d88-82ed-e58ed8ab6773", "savedPayload": { "position": { - "x": 17313.129523340485, - "y": 10592.462617550502 + "x": 17566.544733899, + "y": 10762.581303373414 }, "targetPosition": { - "x": 17511.296960513584, - "y": 10026.13261936548 + "x": 17602.771832352373, + "y": 10163.675970839424 }, "floatingObject": { "isPinned": false, @@ -18228,7 +19208,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily On-Balance-Volume Integral", "project": "Foundations", - "id": "1075ac91-cc5f-4395-b67e-022fcec4bfe2", + "id": "03883739-790a-4f8c-8fdd-bab729c3f105", "savedPayload": { "position": { "x": 16552.887143644024, @@ -18252,13 +19232,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "27b75537-d998-4c26-9462-dc70089e98f3" - } + "id": "b536ac7d-8918-44fd-ad23-acf9849388be" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Integral", + "Indicator Bot", + "Foundations", + "b307f7b6-a8bc-4bdd-833d-f1f41d71003b" + ], + [ + "On-Balance-Volume Integral", + "Product Definition", + "Foundations", + "beb2277f-ccc6-4e1d-84b6-482a01f16458" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "3f2ccde0-e1b4-44f4-9ac9-c8fff50c1d00" + ] + ] } } ], "outputDatasetFolders": [], - "id": "b74c81f5-d3c5-4eeb-bdb0-a10c9e5e5ab3", + "id": "06fd82c4-2e25-4183-bc36-85f11bed812c", "savedPayload": { "position": { "x": 16719.817621993898, @@ -18291,7 +19297,7 @@ "name": "On-Balance-Volume Integral Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "daf58c8e-73d8-44f4-88eb-2ae19d41256d", + "id": "10fee758-774c-4144-87b7-3fd99d2544f7", "savedPayload": { "position": { "x": 16695.857548785505, @@ -18315,8 +19321,34 @@ "referenceParent": { "type": "Status Report", "name": "Daily OBV Span", - "id": "5a699e6b-7b07-41c8-adec-03dbed6967c4" - } + "id": "c7d1a6f6-be16-4286-a43f-83ea3ab889d5" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Integral", + "Indicator Bot", + "Foundations", + "b307f7b6-a8bc-4bdd-833d-f1f41d71003b" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "8261108e-1240-4236-af77-c6c8e67482a0" + ], + [ + "Daily OBV Span", + "Status Report", + "Foundations", + "3be8ad94-7129-463d-a8f2-81da775a4a1d" + ] + ] } }, { @@ -18324,7 +19356,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "6b3ed1c2-5b01-468e-831c-971e34c63265", + "id": "9cb45838-e7a7-4b81-add3-1d39ab0956dd", "savedPayload": { "position": { "x": 16539.988090434646, @@ -18349,7 +19381,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -18357,7 +19415,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "6ebee5e2-fcac-442b-8a27-390cfed58eb7", + "id": "186db140-a883-4a28-bd8c-af8b4c80344d", "savedPayload": { "position": { "x": 16393.42360237151, @@ -18382,7 +19440,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -18391,7 +19475,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "f2c8661c-91f8-4cbc-8cad-0d084f75bd6b", + "id": "8308da40-d548-45e2-a575-e20fe74d7d9c", "savedPayload": { "position": { "x": 16266.152212248331, @@ -18416,14 +19500,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Daily", "project": "Foundations", - "id": "28034458-182f-4e79-a6a0-246ccdcc8a53", + "id": "8924b917-b849-4151-8071-d5a9413ab875", "savedPayload": { "position": { "x": 16166.847254976088, @@ -18448,12 +19558,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "2e683057-f911-4105-bc77-16f2706d1915" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "2e683057-f911-4105-bc77-16f2706d1915" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "3c5a2d14-0122-46aa-939c-d984b1273945", + "id": "3610ca2e-8eed-491f-8248-969ecb568b7f", "savedPayload": { "position": { "x": 16454.026631937482, @@ -18480,7 +19616,7 @@ "type": "Status Report", "name": "Daily OBV Span", "project": "Foundations", - "id": "5a699e6b-7b07-41c8-adec-03dbed6967c4", + "id": "c7d1a6f6-be16-4286-a43f-83ea3ab889d5", "savedPayload": { "position": { "x": 16595.465555115956, @@ -18507,7 +19643,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "88bf917b-f4fc-457a-8ac4-b9b90d021135", + "id": "fe401c86-72af-46f6-82b0-9fb3d0ecd796", "savedPayload": { "position": { "x": 16598.59266685436, @@ -18532,14 +19668,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "08efd97e-ca09-41af-9758-49148a694220", + "id": "880d0a8d-5d0d-4ab3-9892-bf2f868f1d3e", "savedPayload": { "position": { "x": 16678.930794290893, @@ -18562,15 +19724,15 @@ } } }, - "id": "1c257ae1-7582-4788-81af-f3b4c97a6981", + "id": "e848a6b1-92dd-4dda-bf66-277a42c0b3fc", "savedPayload": { "position": { - "x": 16970.715639772134, - "y": 10286.462862836015 + "x": 17153.665383449712, + "y": 10561.549565783902 }, "targetPosition": { - "x": 17511.296960513584, - "y": 10026.13261936548 + "x": 17602.771832352373, + "y": 10163.675970839424 }, "floatingObject": { "isPinned": false, @@ -18598,15 +19760,15 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "49d71fdc-024c-47a6-b260-8cd6c46d86bb", + "id": "9b9450e7-0837-4064-98ff-e7c22fed2b4e", "savedPayload": { "position": { - "x": 16641.60770536983, - "y": 10628.654875054086 + "x": 16930.340695137744, + "y": 10980.516735503397 }, "targetPosition": { - "x": 16661.801963236052, - "y": 9728.88146360583 + "x": 16704.41383355139, + "y": 10109.335323159366 }, "floatingObject": { "isPinned": false, @@ -18626,15 +19788,15 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "27b75537-d998-4c26-9462-dc70089e98f3", + "id": "b536ac7d-8918-44fd-ad23-acf9849388be", "savedPayload": { "position": { - "x": 15799.826228219616, - "y": 9987.720858294648 + "x": 15945.686314182363, + "y": 10593.414398675057 }, "targetPosition": { - "x": 16661.801963236052, - "y": 9728.88146360583 + "x": 16704.41383355139, + "y": 10109.335323159366 }, "floatingObject": { "isPinned": false, @@ -18665,7 +19827,7 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "7147f9ca-a9f8-4902-be7d-e0cdf31e0e1e", + "id": "cf1b28dc-0748-405a-88bb-beff7a3a9590", "savedPayload": { "position": { "x": 15833.460667885756, @@ -18688,7 +19850,7 @@ } } }, - "id": "a25345a1-1a58-4f67-a135-4af364eed11a", + "id": "c91002fb-57bb-4434-9ddf-c533453c944c", "savedPayload": { "position": { "x": 16066.262684265703, @@ -18721,7 +19883,7 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "3ba7eeed-e23e-480e-beac-0feb71d529aa", + "id": "800a2a38-f431-4b74-8ec3-84af2411691b", "savedPayload": { "position": { "x": 15422.67842188225, @@ -18744,7 +19906,7 @@ } } }, - "id": "c43c2b67-6847-451c-8c55-fb85ea140534", + "id": "680ba3d7-4272-4c7f-8287-deb4d0ec2a54", "savedPayload": { "position": { "x": 15860.87156126395, @@ -18777,7 +19939,7 @@ "name": "New Record Formula", "code": "variable.Norm", "project": "Foundations", - "id": "5c2dfe45-d199-4fb9-ac17-2d5a6c5d62b5", + "id": "6c3c11a2-1bb1-4c40-aa97-42a689481f67", "savedPayload": { "position": { "x": 16223.03222585572, @@ -18800,7 +19962,7 @@ } } }, - "id": "7ff3f800-cf2a-49dc-afe7-3184c5094a56", + "id": "b734ca29-0b99-442c-9044-a49a08a86db3", "savedPayload": { "position": { "x": 16261.048463250685, @@ -18833,7 +19995,7 @@ "name": "New Record Formula", "code": "variable.Norm3", "project": "Foundations", - "id": "81acbf40-1aef-410c-adb9-c8f50b20f977", + "id": "1a5da032-19a9-4661-8013-f8630ffd38d6", "savedPayload": { "position": { "x": 17128.460325740103, @@ -18856,7 +20018,7 @@ } } }, - "id": "58aaeb3d-2b55-4e82-b7ee-29e9fed38139", + "id": "87164ee0-1563-4bec-b175-99922b281eb5", "savedPayload": { "position": { "x": 16713.762513192876, @@ -18880,15 +20042,15 @@ } } ], - "id": "e71166dc-eb69-4de1-81cd-c7970b59ae86", + "id": "7a8eda8f-4ca6-4bb6-8949-172c33f1e3dd", "savedPayload": { "position": { - "x": 16303.77091623925, - "y": 9456.275943877463 + "x": 16285.615310997853, + "y": 9944.690865290371 }, "targetPosition": { - "x": 16661.801963236052, - "y": 9728.88146360583 + "x": 16704.41383355139, + "y": 10109.335323159366 }, "floatingObject": { "isPinned": false, @@ -18916,15 +20078,15 @@ "name": "New Procedure Javascript Code", "code": "/* Loop Code */\n\nlet candle = record.current\nlet volume = getElement('volumes', candle)\nlet K = 2\nlet Len = 10 //number of period for integral calculation\nlet Len3 = 3\nlet Len5 = 5\nlet Len15 = 15\nlet Len20 = 20\n\nvariable.CDL = candle.close\n\nif (variable.previousVEma20 === undefined) {\nvariable.previousVEma20 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma3 === undefined) {\nvariable.previousVEma3 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma5 === undefined) {\nvariable.previousVEma5 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma10 === undefined) {\nvariable.previousVEma10 = volume.buy + volume.sell\n}\n\n//build candle close array\nvariable.cdClose.push(candle.close)\n\n//keep the array to the right size\nif (variable.cdClose.length > K) {\n variable.cdClose.splice(0, 1)\n}\n\n//manage Previous On balance value\n\nif (variable.previousOnBV === undefined) {\n\tvariable.previousOnBV = 0\n}\n\n//procedure for OBV calculation\nif (variable.cdClose[1] > variable.cdClose[0]) {\n\tvariable.OnBV = variable.previousOnBV + volume.buy + volume.sell\n\t}\n\nif (variable.cdClose[1] === variable.cdClose[0]) {\n\tvariable.OnBV = variable.previousOnBV\n\t}\nif (variable.cdClose[1] < variable.cdClose[0]) {\n\tvariable.OnBV = variable.previousOnBV - (volume.buy + volume.sell)\n\t}\n\n//manage NaN and undefined\nif (variable.OnBV === undefined || isNaN(variable.OnBV)) {\n\tvariable.OBV = 0\n\tvariable.previousOnBV = 0\n}\nelse {\n\tvariable.OBV = variable.OnBV\n\tvariable.previousOnBV = variable.OnBV\n}\n\n// Calculate On balance Volume EMA3\nvariable.VEma3 = calculateVEMA(3, variable.OBV, variable.previousVEma3)\n\n\n// Calculate On balance Volume EMA5\nvariable.VEma5 = calculateVEMA(5, variable.OBV, variable.previousVEma5)\n\n\n// Calculate On balance Volume EMA10\nvariable.VEma10 = calculateVEMA(10, variable.OBV, variable.previousVEma10)\n\n\n// Calculate On balance Volume EMA20\nvariable.VEma20 = calculateVEMA(20, variable.OBV, variable.previousVEma20)\n\nif(variable.VEma3 > variable.previousVEma3) {\n\tvariable.IntVEma3 = (variable.VEma3 - variable.previousVEma3)/2 + variable.previousVEma3\n}\nif(variable.VEma3 < variable.previousVEma3) {\n\tvariable.IntVEma3 = (variable.previousVEma3 - variable.VEma3)/2 + variable.VEma3\n}\nif(variable.VEma3 === variable.previousVEma3){\n\tvariable.IntVEma3 = variable.VEma3\n}\nif(variable.VEma20 > variable.previousVEma20) {\n\tvariable.IntVEma20 = (variable.VEma20 - variable.previousVEma20)/2 + variable.previousVEma20\n}\nif(variable.VEma20 < variable.previousVEma20) {\n\tvariable.IntVEma20 = (variable.previousVEma20 - variable.VEma20)/2 + variable.VEma20\n}\nif(variable.VEma20 === variable.previousVEma20){\n\tvariable.IntVEma20 = variable.VEma20\n}\n\nif(variable.VEma3 > variable.VEma20){\n\tvariable.IntPos.push(variable.IntVEma3 - variable.IntVEma20)\n\tvariable.IntNeg.push(0)\n\tif(variable.IntPos.length > Len) {\n\t\tvariable.IntPos.splice(0,1)\n\t}\n\tif(variable.IntNeg.length > Len) {\n\t\tvariable.IntNeg.splice(0,1)\n\t}\n\tvariable.IntPos3.push(variable.IntVEma3 - variable.IntVEma20)\n\tvariable.IntNeg3.push(0)\n\tif(variable.IntPos3.length > Len3) {\n\t\tvariable.IntPos3.splice(0,1)\n\t}\n\tif(variable.IntNeg3.length > Len3) {\n\t\tvariable.IntNeg3.splice(0,1)\n\t}\n}\n\nif(variable.VEma3 < variable.VEma20){\n\tvariable.IntPos.push(0)\n\tvariable.IntNeg.push(variable.IntVEma20- variable.IntVEma3)\n\tif(variable.IntPos.length > Len) {\n\t\tvariable.IntPos.splice(0,1)\n\t}\n\tif(variable.IntNeg.length > Len) {\n\t\tvariable.IntNeg.splice(0,1)\n\t}\n\tvariable.IntPos3.push(0)\n\tvariable.IntNeg3.push(variable.IntVEma20- variable.IntVEma3)\n\tif(variable.IntPos3.length > Len3) {\n\t\tvariable.IntPos3.splice(0,1)\n\t}\n\tif(variable.IntNeg3.length > Len3) {\n\t\tvariable.IntNeg3.splice(0,1)\n\t}\n}\nvariable.tNeg = 0\nvariable.tPos = 0\nfor(var i = 0 ; i < Len ; i++) {\n\tvariable.tNeg = variable.tNeg + variable.IntNeg[i]\n\tvariable.tPos = variable.tPos + variable.IntPos[i]\n}\n\nif(variable.IntNeg.length < Len || variable.IntPos.length < Len){\n\tvariable.Norm = 0\n}\nelse {\nvariable.Norm = (variable.tPos - variable.tNeg) / (variable.tPos + variable.tNeg)\n}\n\nvariable.tNeg3 = 0\nvariable.tPos3 = 0\nfor(var i = 0 ; i < Len3 ; i++) {\n\tvariable.tNeg3 = variable.tNeg3 + variable.IntNeg3[i]\n\tvariable.tPos3 = variable.tPos3 + variable.IntPos3[i]\n}\n\nif(variable.IntNeg3.length < Len3 || variable.IntPos3.length < Len3){\n\tvariable.Norm3 = 0\n}\nelse {\nvariable.Norm3 = (variable.tPos3 - variable.tNeg3) / (variable.tPos3 + variable.tNeg3)\n}\n\nvariable.previousVEma3 = variable.VEma3\nvariable.previousVEma5 = variable.VEma5\nvariable.previousVEma10 = variable.VEma10\nvariable.previousVEma20 = variable.VEma20\n\n//On Balance Volume EMA calculation\nfunction calculateVEMA(periods, price, previousVEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousVEMA * (1-k)\n}\n\n\n\n// End of code :-)", "project": "Foundations", - "id": "9b4b8600-416c-4b3c-8d7d-a2eec54e2297", + "id": "cb8955c4-9bf2-45d4-bc03-17843b6f91f7", "savedPayload": { "position": { - "x": 15161.399135645037, - "y": 7079.320213634571 + "x": 14538.372877737627, + "y": 7969.323631572197 }, "targetPosition": { - "x": 15488.973815049498, - "y": 7387.856806947366 + "x": 14937.66714599842, + "y": 8176.842515855237 }, "floatingObject": { "isPinned": false, @@ -18939,15 +20101,15 @@ } } }, - "id": "bb9646cf-035c-435f-9d98-fba9f2ddaa3f", + "id": "1dca9b7b-f984-4f0a-bedd-b449af56df61", "savedPayload": { "position": { - "x": 15488.973815049498, - "y": 7387.856806947366 + "x": 14937.66714599842, + "y": 8176.842515855237 }, "targetPosition": { - "x": 16144.12317385842, - "y": 8004.929993572956 + "x": 15736.255682520006, + "y": 8591.880284421317 }, "floatingObject": { "isPinned": false, @@ -18971,15 +20133,15 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.cdClose = []\nvariable.IntPos = []\nvariable.IntNeg = []\nvariable.IntPos3 = []\nvariable.IntNeg3 = []", "project": "Foundations", - "id": "b777c7af-5ffe-48cb-9a62-03fec6d72722", + "id": "093f0923-8bbe-4ed0-82f0-f6cdfbfc62d7", "savedPayload": { "position": { - "x": 16273.389658988119, - "y": 7457.4846302514525 + "x": 15711.342546799655, + "y": 8029.93225687021 }, "targetPosition": { - "x": 16247.536361962178, - "y": 7566.973702915753 + "x": 15716.325173943726, + "y": 8142.321862380431 }, "floatingObject": { "isPinned": false, @@ -18994,15 +20156,15 @@ } } }, - "id": "4289480c-9f64-4109-923d-2412b6b8d03d", + "id": "4b4da925-7f9c-4d97-85e9-8704bc34cdcd", "savedPayload": { "position": { - "x": 16247.536361962178, - "y": 7566.973702915753 + "x": 15716.325173943726, + "y": 8142.321862380431 }, "targetPosition": { - "x": 16144.12317385842, - "y": 8004.929993572956 + "x": 15736.255682520006, + "y": 8591.880284421317 }, "floatingObject": { "isPinned": false, @@ -19017,15 +20179,15 @@ } } }, - "id": "2f9110d6-4ba0-48bf-a96e-5b61c9217d6f", + "id": "36518209-ca29-4255-8593-2351282d76cb", "savedPayload": { "position": { - "x": 16144.12317385842, - "y": 8004.929993572956 + "x": 15736.255682520006, + "y": 8591.880284421317 }, "targetPosition": { - "x": 16661.801963236052, - "y": 9728.88146360583 + "x": 16704.41383355139, + "y": 10109.335323159366 }, "floatingObject": { "isPinned": false, @@ -19040,15 +20202,15 @@ } } }, - "id": "f2204fb8-0793-47a1-a86a-a0bd746c592a", + "id": "e9015e25-b477-4255-ba8c-4f2e9763d118", "savedPayload": { "position": { - "x": 16661.801963236052, - "y": 9728.88146360583 + "x": 16704.41383355139, + "y": 10109.335323159366 }, "targetPosition": { - "x": 17511.296960513584, - "y": 10026.13261936548 + "x": 17602.771832352373, + "y": 10163.675970839424 }, "floatingObject": { "isPinned": false, @@ -19064,16 +20226,36 @@ "referenceParent": { "type": "Plotter Module", "name": "OBV-Integral", - "id": "cc58fb7e-710d-4a94-ab49-a90a8f14d253" - } + "id": "c9d2dd2d-fae8-427b-81fe-e35f1cff143e" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Integral", + "Plotter Module", + "Foundations", + "baa39ecc-f8da-4740-a16d-d6cee2ff4c51" + ] + ] } } ], - "id": "19eb5439-4f57-42fe-b971-ccce0de6cb9e", + "id": "d34ac168-087f-497e-a108-3a615a095257", "savedPayload": { "position": { - "x": 17511.296960513584, - "y": 10026.13261936548 + "x": 17602.771832352373, + "y": 10163.675970839424 }, "targetPosition": { "x": 18051.878281255034, @@ -19112,7 +20294,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market On-Balance-Volume Span", "project": "Foundations", - "id": "10c8fde1-f772-4487-8b7e-eede0706b9c3", + "id": "54bfee51-b963-481e-8759-2ca384941046", "savedPayload": { "position": { "x": 17526.84134862413, @@ -19136,13 +20318,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "bac40f39-39d9-4a63-a047-de47e779d97d" - } + "id": "f8a9910e-592d-48ab-9fee-210269ef3d8c" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Span", + "Indicator Bot", + "Foundations", + "c660f262-e742-4694-97cf-e0b020f26022" + ], + [ + "On-Balance-Volume Span", + "Product Definition", + "Foundations", + "790fc16d-3889-461b-8b58-711a8ff6534a" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "363fe2b8-c606-48ad-bb44-d08f959693f6" + ] + ] } } ], "outputDatasetFolders": [], - "id": "51ced189-70ab-4ffe-a713-082cff113b33", + "id": "d80b86bc-33b2-4896-9f18-73e8cbfa62fd", "savedPayload": { "position": { "x": 17305.31766023652, @@ -19175,7 +20383,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "9d4fe681-7a60-4042-ac41-53b1da53ad01", + "id": "55f49e5f-8b07-4ade-bab6-2543bfe47a45", "savedPayload": { "position": { "x": 17597.112960431834, @@ -19200,7 +20408,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -19208,7 +20442,7 @@ "name": "On-Balance-Volume Span Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "e99817ff-7b22-4ef4-8c88-1cde92967262", + "id": "3e229dcf-68d4-4f01-b164-bf436841a1a7", "savedPayload": { "position": { "x": 17028.917449895234, @@ -19232,8 +20466,34 @@ "referenceParent": { "type": "Status Report", "name": "Market-OBV Integral", - "id": "8cf927d6-f952-44b0-ae43-2ce7449b7e19" - } + "id": "4eda7f01-f011-48f2-893f-ed7d1deec6ee" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Span", + "Indicator Bot", + "Foundations", + "c660f262-e742-4694-97cf-e0b020f26022" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "1c173cc6-4a5b-4cc7-bf36-720092dd463a" + ], + [ + "Market-OBV Integral", + "Status Report", + "Foundations", + "00d5b58d-3ddd-4199-a7c7-eed4c49abd6a" + ] + ] } } ], @@ -19242,7 +20502,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "c05a8d30-1ee3-4de9-8900-f8d30a5df97a", + "id": "185cb8de-36d9-4cf7-8c45-8685cb489f23", "savedPayload": { "position": { "x": 16753.7385967579, @@ -19267,14 +20527,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Market", "project": "Foundations", - "id": "32aa2cff-7221-43be-8b61-9b76561d62de", + "id": "f527a451-af39-4444-a35f-87152ecddfb5", "savedPayload": { "position": { "x": 16554.806538953348, @@ -19299,12 +20585,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "9bf0483c-4825-4a46-9cf4-1b5262579fc1" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "9bf0483c-4825-4a46-9cf4-1b5262579fc1" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "f82130e3-cc5e-4f38-90dc-7857c198f4e5", + "id": "bb22d125-54fe-426c-a7bf-688c06d0d372", "savedPayload": { "position": { "x": 16953.355298472386, @@ -19331,7 +20643,7 @@ "type": "Status Report", "name": "Market-OBV Integral", "project": "Foundations", - "id": "8cf927d6-f952-44b0-ae43-2ce7449b7e19", + "id": "4eda7f01-f011-48f2-893f-ed7d1deec6ee", "savedPayload": { "position": { "x": 16711.652677087954, @@ -19358,7 +20670,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "72e61c0d-b88e-4a0f-8b8e-c8607b7df812", + "id": "d1db50ea-eb06-44cd-92e7-6a657af00d55", "savedPayload": { "position": { "x": 16804.989714580865, @@ -19383,14 +20695,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "94194ad2-4f99-462c-a085-3c5605a8ee16", + "id": "3aedbb04-348d-4863-bb80-08b3aa44aa10", "savedPayload": { "position": { "x": 16786.961480274626, @@ -19413,7 +20751,7 @@ } } }, - "id": "d9d3d0a4-c919-42b0-9a1f-ed3327bf8ee8", + "id": "c9b603f2-e523-4f8c-ad6d-98c40964b708", "savedPayload": { "position": { "x": 17147.70228803674, @@ -19450,7 +20788,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily On-Balance-Volume Span", "project": "Foundations", - "id": "0b8078cf-b75b-4d10-bb46-92035aff697f", + "id": "173df1e6-9315-4b18-912e-97de9caeb522", "savedPayload": { "position": { "x": 16586.828475853326, @@ -19474,13 +20812,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "bf64ecf6-0dd7-4e54-9967-b5a47a5c290c" - } + "id": "1417a423-e06d-4712-a50c-46874a6d9429" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Span", + "Indicator Bot", + "Foundations", + "c660f262-e742-4694-97cf-e0b020f26022" + ], + [ + "On-Balance-Volume Span", + "Product Definition", + "Foundations", + "790fc16d-3889-461b-8b58-711a8ff6534a" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "fd711d2b-ba94-4937-834e-511513bbde5e" + ] + ] } } ], "outputDatasetFolders": [], - "id": "b500527a-01b8-428e-a8c8-a9b2b9d070d0", + "id": "70026de1-a546-4a72-b554-fe52c767d9a7", "savedPayload": { "position": { "x": 16586.828475853326, @@ -19513,7 +20877,7 @@ "name": "On-Balance-Volume Span Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "798cbf03-36b1-4130-bf55-0245ccc4cb66", + "id": "e823ce66-03c8-456b-abfa-dace3aaa160d", "savedPayload": { "position": { "x": 16073.180454974761, @@ -19537,8 +20901,34 @@ "referenceParent": { "type": "Status Report", "name": "Daily OBV Span", - "id": "4a98c572-794a-409e-a665-f66223f4ec0e" - } + "id": "7c6faaad-3ac6-41dc-9f53-85983dd92148" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Span", + "Indicator Bot", + "Foundations", + "c660f262-e742-4694-97cf-e0b020f26022" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "06bd3aa2-ee66-4483-8f6f-f83b066d1b5e" + ], + [ + "Daily OBV Span", + "Status Report", + "Foundations", + "68961b4a-69fd-4728-8549-6c66de0a22b0" + ] + ] } }, { @@ -19546,7 +20936,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "b7a641eb-a5c7-47a0-bc9d-ece757e87a4a", + "id": "1cac731c-8d6c-4ad1-bdbc-7b2cd9ad9514", "savedPayload": { "position": { "x": 15917.310996623903, @@ -19571,7 +20961,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -19579,7 +20995,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "7afedffa-cc98-4988-88d9-57f437913e94", + "id": "0b2bb639-e44e-4621-ad2b-6152efe5054c", "savedPayload": { "position": { "x": 15770.746508560766, @@ -19604,7 +21020,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -19613,7 +21055,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "4715cae4-306a-4ddf-b1ea-7506c6bb2d8b", + "id": "d2ec8801-5514-4d62-9699-2b87b90637ae", "savedPayload": { "position": { "x": 15643.475118437587, @@ -19638,14 +21080,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Daily", "project": "Foundations", - "id": "57ad2fa6-195f-4bf0-9b9c-4e12b2eae3fc", + "id": "5817c00f-d376-4487-b176-186671693afe", "savedPayload": { "position": { "x": 15544.170161165344, @@ -19670,12 +21138,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "2e683057-f911-4105-bc77-16f2706d1915" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "2e683057-f911-4105-bc77-16f2706d1915" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "06331524-ce84-4411-afbd-101354586ed2", + "id": "03e5e7d8-fb27-4509-80b4-1f24ad471732", "savedPayload": { "position": { "x": 16436.828475853326, @@ -19702,7 +21196,7 @@ "type": "Status Report", "name": "Daily OBV Span", "project": "Foundations", - "id": "4a98c572-794a-409e-a665-f66223f4ec0e", + "id": "7c6faaad-3ac6-41dc-9f53-85983dd92148", "savedPayload": { "position": { "x": 16456.92466528566, @@ -19729,7 +21223,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "8eedab32-346b-49a6-8e9d-f84d13ce1b03", + "id": "4ec3bc97-969e-463f-ad67-3f219c15f395", "savedPayload": { "position": { "x": 16436.828475853326, @@ -19754,14 +21248,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "68abe943-17f3-4009-b568-d0db24870711", + "id": "f344b069-9925-434d-91ee-59a0ebc4c6e2", "savedPayload": { "position": { "x": 16456.92466528566, @@ -19784,7 +21304,7 @@ } } }, - "id": "c57068e7-f2e0-4780-8b9b-7c405cbb9236", + "id": "82716116-5eaf-4070-b345-2373df7a5613", "savedPayload": { "position": { "x": 16881.964786636847, @@ -19820,7 +21340,7 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "bac40f39-39d9-4a63-a047-de47e779d97d", + "id": "f8a9910e-592d-48ab-9fee-210269ef3d8c", "savedPayload": { "position": { "x": 16812.282770726233, @@ -19848,7 +21368,7 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "bf64ecf6-0dd7-4e54-9967-b5a47a5c290c", + "id": "1417a423-e06d-4712-a50c-46874a6d9429", "savedPayload": { "position": { "x": 16360.246089381097, @@ -19887,7 +21407,7 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "c128d8b1-84c8-4d55-b898-4712669e0793", + "id": "85a3849d-7747-4d69-934c-750db8fe72fa", "savedPayload": { "position": { "x": 16447.40508430426, @@ -19910,7 +21430,7 @@ } } }, - "id": "affce466-ae98-4353-93ca-7fb8d09fe5ac", + "id": "c02ba940-d2ea-46a6-8776-1a95e8e0a95f", "savedPayload": { "position": { "x": 16607.014707258862, @@ -19943,7 +21463,7 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "af1404e9-1717-4da3-9210-0529d3a85e86", + "id": "1ea775eb-bfe6-4adc-ba44-1a6d64f233d3", "savedPayload": { "position": { "x": 16184.810617987454, @@ -19966,7 +21486,7 @@ } } }, - "id": "40b8e6c2-b56c-404c-8eb8-88dff3d0ccfd", + "id": "69e4238e-6af8-4b56-ad97-86c08e202e2b", "savedPayload": { "position": { "x": 16475.71747410046, @@ -19999,7 +21519,7 @@ "name": "New Record Formula", "code": "variable.Pos", "project": "Foundations", - "id": "9839db63-d577-4551-b91f-e1c600a29fba", + "id": "92e8b224-56e1-47e6-963e-7fbcfd7f440c", "savedPayload": { "position": { "x": 16726.262926846237, @@ -20022,7 +21542,7 @@ } } }, - "id": "66d9dec4-ec9c-402c-9fb0-64380853d9ba", + "id": "3f6d2901-bb82-4599-8ade-3d0db1f8662c", "savedPayload": { "position": { "x": 16746.44362852985, @@ -20055,7 +21575,7 @@ "name": "New Record Formula", "code": "variable.Neg", "project": "Foundations", - "id": "67b57e6c-5561-46bc-aa5d-bad18fa1773d", + "id": "5be4260e-5aa1-4bdc-aec0-7cb08af19df4", "savedPayload": { "position": { "x": 17323.493323324885, @@ -20078,7 +21598,7 @@ } } }, - "id": "6377366d-dc07-49a9-afcf-812b927c936b", + "id": "cb5d97cf-9dfd-4662-9fed-1eff29aa6c9a", "savedPayload": { "position": { "x": 17045.058826769175, @@ -20102,7 +21622,7 @@ } } ], - "id": "7fee951e-3bea-436b-b237-8fc4acd512c6", + "id": "76663847-b8f7-4e29-a0b3-918ceb467245", "savedPayload": { "position": { "x": 16766.624330213464, @@ -20138,7 +21658,7 @@ "name": "New Procedure Javascript Code", "code": "/* Loop Code */\n\nlet candle = record.current\nlet volume = getElement('volumes', candle)\nlet K = 2\nlet Len = 10 //number of period for integral calculation\nlet Len3 = 3\nlet Len5 = 5\nlet Len15 = 15\nlet Len20 = 20\n\nvariable.CDL = candle.close\n\nif (variable.previousVEma20 === undefined) {\nvariable.previousVEma20 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma3 === undefined) {\nvariable.previousVEma3 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma5 === undefined) {\nvariable.previousVEma5 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma10 === undefined) {\nvariable.previousVEma10 = volume.buy + volume.sell\n}\n\n//build candle close array\nvariable.candleClose.push(candle.close)\n\n//keep the array to the right size\nif (variable.candleClose.length > K) {\n variable.candleClose.splice(0, 1)\n}\n\n//manage Previous On balance value\n\nif (variable.previousOnBV === undefined) {\n\tvariable.previousOnBV = 0\n}\n\n//procedure for OBV calculation\nif (variable.candleClose[1] > variable.candleClose[0]) {\n\tvariable.OnBV = variable.previousOnBV + volume.buy + volume.sell\n\t}\n\nif (variable.candleClose[1] === variable.candleClose[0]) {\n\tvariable.OnBV = variable.previousOnBV\n\t}\nif (variable.candleClose[1] < variable.candleClose[0]) {\n\tvariable.OnBV = variable.previousOnBV - (volume.buy + volume.sell)\n\t}\n\n//manage NaN and undefined\nif (variable.OnBV === undefined || isNaN(variable.OnBV)) {\n\tvariable.OBV = 0\n\tvariable.previousOnBV = 0\n}\nelse {\n\tvariable.OBV = variable.OnBV\n\tvariable.previousOnBV = variable.OnBV\n}\n\n// Calculate On balance Volume EMA3\nvariable.VEma3 = calculateVEMA(3, variable.OBV, variable.previousVEma3)\n\n\n// Calculate On balance Volume EMA5\nvariable.VEma5 = calculateVEMA(5, variable.OBV, variable.previousVEma5)\n\n\n// Calculate On balance Volume EMA10\nvariable.VEma10 = calculateVEMA(10, variable.OBV, variable.previousVEma10)\n\n\n// Calculate On balance Volume EMA20\nvariable.VEma20 = calculateVEMA(20, variable.OBV, variable.previousVEma20)\n\n//Calculate integral between VEMA20 and VEMA3\n\nif(variable.VEma3 > variable.previousVEma3) {\n\tvariable.IntVEma3 = (variable.VEma3 - variable.previousVEma3)/2 + variable.previousVEma3\n}\nif(variable.VEma3 < variable.previousVEma3) {\n\tvariable.IntVEma3 = (variable.previousVEma3 - variable.VEma3)/2 + variable.VEma3\n}\nif(variable.VEma3 === variable.previousVEma3){\n\tvariable.IntVEma3 = variable.VEma3\n}\nif(variable.VEma20 > variable.previousVEma20) {\n\tvariable.IntVEma20 = (variable.VEma20 - variable.previousVEma20)/2 + variable.previousVEma20\n}\nif(variable.VEma20 < variable.previousVEma20) {\n\tvariable.IntVEma20 = (variable.previousVEma20 - variable.VEma20)/2 + variable.VEma20\n}\nif(variable.VEma20 === variable.previousVEma20){\n\tvariable.IntVEma20 = variable.VEma20\n}\n\nif(variable.Pos === undefined){\n\tvariable.Pos = 0\n}\nif(variable.Neg === undefined){\n\tvariable.Neg = 0\n}\n\nif(variable.VEma3 > variable.VEma20 && variable.previousVEma3 < variable.previousVEma20){\n\tvariable.IntP = []\n\tvariable.Pos = 0\n}\n\nif(variable.NegS === undefined || variable.PosS === undefined){\n\tvariable.Neg = 0\n\n}\n\nif(variable.VEma3 > variable.VEma20){\n\tvariable.Neg = 0\t\n\tvariable.IntP.push(variable.IntVEma3 - variable.IntVEma20)\n \n\tfor (var i = 0 ; i 2){\n\t\t\tvariable.lastPos.splice(0,1)\n\t\t}\n\t\tif(variable.lastPos.length === 2){\n\t\t\t\tvariable.derivP = variable.lastPos[1] - variable.lastPos[0]\n\t\t\t\tvariable.derivPos.push(variable.derivP)\t\t\t\t\n\t\t\t\tif (variable.derivPos.length > 2){\n\t\t\t\t\tvariable.derivPos.splice(0,1)\n\t\t\t\t}\n\t\t\t\tif(variable.derivPos.length === 2){\n\t\t\t\tvariable.deriv2ndPos = variable.derivPos[1] - variable.derivPos[0]\n\t\t\t\t}\n\t\t}\n\t}\n \n\tvariable.mPos = variable.Pos / variable.IntP.length\n\n}\n\nif(variable.Pos === undefined || isNaN(variable.Pos)){\n\tvariable.mPos = 0\n}\n\nif(variable.VEma3 < variable.VEma20 && variable.previousVEma3 > variable.previousVEma20){\n\tvariable.IntN = []\n\tvariable.Neg = 0\n}\n\nif(variable.NegS === undefined || variable.PosS === undefined){\n\tvariable.Neg = 0\n\n}\n\nif(variable.VEma3 < variable.VEma20){\n\tvariable.Pos = 0\n\tvariable.IntN.push(variable.IntVEma20 - variable.IntVEma3)\n\tfor (var i =0 ; i 2){\n\t\t\tvariable.lastNeg.splice(0,1)\n\t\t}\n\t\tif(variable.lastNeg.length === 2){\n\t\t\t\tvariable.derivN = variable.lastNeg[1] - variable.lastNeg[0]\n\t\t\t\tvariable.derivNeg.push(variable.derivN)\t\t\t\t\n\t\t\t\tif (variable.derivNeg.length > 2){\n\t\t\t\t\tvariable.derivNeg.splice(0,1)\n\t\t\t\t}\n\t\t\t\tif(variable.derivNeg.length === 2){\n\t\t\t\tvariable.deriv2ndNeg = variable.derivNeg[1] - variable.derivNeg[0]\n\t\t\t\t}\n\t\t}\n\t\t\n\t}\n\tvariable.mNeg = variable.Neg / variable.IntN.length\n\t\n}\nif(variable.derivN === undefined || isNaN(variable.derivN)){\n\tvariable.derivN = 0\n}\nif(variable.deriv2ndNeg === undefined || isNaN(variable.deriv2ndNeg)){\n\tvariable.deriv2ndNeg = 0\n}\nif(variable.derivP === undefined || isNaN(variable.derivP)){\n\tvariable.derivP = 0\n}\nif(variable.deriv2ndPos === undefined || isNaN(variable.deriv2ndPos)){\n\tvariable.deriv2ndPos = 0\n}\n\n\nvariable.previousVEma3 = variable.VEma3\nvariable.previousVEma5 = variable.VEma5\nvariable.previousVEma10 = variable.VEma10\nvariable.previousVEma20 = variable.VEma20\n\n//On Balance Volume EMA calculation\nfunction calculateVEMA(periods, price, previousVEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousVEMA * (1-k)\n}\n\n\n\n// End of code :-)\n", "project": "Foundations", - "id": "9766fce6-bda8-4c2e-90d3-77a978e3b05e", + "id": "c109a3f4-eb44-4171-b5bb-f3ff4c0588c9", "savedPayload": { "position": { "x": 16667.819763669988, @@ -20161,7 +21681,7 @@ } } }, - "id": "6557c040-afd8-4227-97fd-b43679cf9378", + "id": "4d723221-2f95-485b-a477-9cae76a50b0b", "savedPayload": { "position": { "x": 16751.388379460575, @@ -20193,7 +21713,7 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.candleClose = []\nvariable.IntP = []\nvariable.IntN = []\nvariable.derivNeg = []\nvariable.derivPos = []\nvariable.lastNeg = []\nvariable.lastPos = []", "project": "Foundations", - "id": "20ab74a5-0131-400a-8100-faf12b5f0a77", + "id": "010fc36a-af43-4406-916f-658a68fae05d", "savedPayload": { "position": { "x": 17028.678303485718, @@ -20216,7 +21736,7 @@ } } }, - "id": "caa3c62c-101a-4030-b4c6-1934de0bcc48", + "id": "acd15ccb-318d-4486-b1b8-74790006482f", "savedPayload": { "position": { "x": 16984.61722650813, @@ -20239,7 +21759,7 @@ } } }, - "id": "e82bbead-75fc-41ff-8556-94f75b0cc52b", + "id": "58736ea9-2f19-4de0-b0b5-d18bc2d7f703", "savedPayload": { "position": { "x": 16918.525611041747, @@ -20262,7 +21782,7 @@ } } }, - "id": "4fbb6a9a-f30b-418b-8ba1-869bae1dfdcc", + "id": "41c5a033-b70b-40aa-b943-964906923602", "savedPayload": { "position": { "x": 16958.88701440897, @@ -20286,16 +21806,36 @@ "referenceParent": { "type": "Plotter Module", "name": "OBV-Span", - "id": "fe058bb9-88fc-4330-b97f-5552aff192ff" - } + "id": "6089dec1-c404-4799-8c47-fc3a5c12b292" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Span", + "Plotter Module", + "Foundations", + "ddc76a9e-ac9c-4773-bda2-a46ddc498ebf" + ] + ] } } ], - "id": "5608b986-ea7c-4eab-a619-24c36d643df1", + "id": "7f17e0bd-0428-4e10-9ecf-e83dd33006b7", "savedPayload": { "position": { - "x": 17466.92153394594, - "y": 9899.314936268735 + "x": 17520.60466586311, + "y": 10044.636279121207 }, "targetPosition": { "x": 18051.878281255034, @@ -20334,7 +21874,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Market On-Balance-Volume Trend Span", "project": "Foundations", - "id": "1c24262e-fbe1-4832-b171-add74a83cd07", + "id": "94a502b2-ffc2-4188-8578-231a15f7064f", "savedPayload": { "position": { "x": 17452.926890517072, @@ -20358,13 +21898,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", - "id": "126f7743-0c60-4bf9-b4a1-f4cf1c3f16b2" - } + "id": "e2f40724-c2a8-4372-93e2-389404fadd0a" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Trend Span", + "Indicator Bot", + "Foundations", + "6be2c9b7-d70a-4041-8967-af7d55dbf2df" + ], + [ + "On-Balance-Volume Trend Span", + "Product Definition", + "Foundations", + "e302f4ec-d3ea-4248-87c3-820954dc2281" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "caafbb70-98bf-44d4-87b4-f361740fbb8a" + ] + ] } } ], "outputDatasetFolders": [], - "id": "60d6e336-45e5-4774-b137-5e6aad5b5933", + "id": "e0cafe78-f78a-48c3-8f85-ddb31b6f4f40", "savedPayload": { "position": { "x": 17182.905639604618, @@ -20397,7 +21963,7 @@ "name": "Candles Volumes Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "fd5f4ae1-3eef-4873-b4c7-957f625bcea2", + "id": "b55e80b5-beee-4082-b317-5f16c1a76932", "savedPayload": { "position": { "x": 17361.065423895692, @@ -20422,7 +21988,33 @@ "type": "Status Report", "name": "Candles Volumes Multi-Time-Frame-Market Status Report", "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] } }, { @@ -20430,7 +22022,7 @@ "name": "On-Balance-Volume Trend Span Multi-Time-Frame-Market", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "1ca3ebec-acbf-4a0f-afa8-7f2b2ee3f20d", + "id": "3f48da35-17d2-4e54-be79-e9f53e607a7e", "savedPayload": { "position": { "x": 16818.228252260164, @@ -20454,8 +22046,34 @@ "referenceParent": { "type": "Status Report", "name": "Market-OBV Trend Span", - "id": "209a4219-24b1-4f0b-b424-91d89717a5c7" - } + "id": "900de2bf-553c-4df1-a946-c82eb35ba64f" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Trend Span", + "Indicator Bot", + "Foundations", + "6be2c9b7-d70a-4041-8967-af7d55dbf2df" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "87f8bb89-8724-42e1-8b56-54541e18ec6d" + ], + [ + "Market-OBV Trend Span", + "Status Report", + "Foundations", + "9428c958-89d9-4836-aae1-1e2a1d3fe351" + ] + ] } } ], @@ -20464,7 +22082,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Market", "project": "Foundations", - "id": "7d1fea8a-d2c4-4f4f-b4a8-5fa2adcb96d3", + "id": "454841c6-47c2-4c85-8fd2-1b5b0163e9c7", "savedPayload": { "position": { "x": 16549.589506194076, @@ -20489,14 +22107,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Market", "project": "Foundations", - "id": "eed04543-d219-4149-b0fa-0066350bb65f", + "id": "0eba53d4-8450-4725-8427-85406d75fb14", "savedPayload": { "position": { "x": 16374.565880027098, @@ -20521,12 +22165,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Market", "id": "9bf0483c-4825-4a46-9cf4-1b5262579fc1" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "9bf0483c-4825-4a46-9cf4-1b5262579fc1" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "61c79657-e47e-44f4-86af-de4715ba52c0", + "id": "f52bf53a-32eb-4b34-8e48-322904e46c2c", "savedPayload": { "position": { "x": 16794.67707195084, @@ -20553,7 +22223,7 @@ "type": "Status Report", "name": "Market-OBV Trend Span", "project": "Foundations", - "id": "209a4219-24b1-4f0b-b424-91d89717a5c7", + "id": "900de2bf-553c-4df1-a946-c82eb35ba64f", "savedPayload": { "position": { "x": 16603.35014383118, @@ -20580,7 +22250,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "5b161a65-9ac3-4f98-9d32-106cc45978ad", + "id": "5ed0d987-b30b-4b79-866b-a5932b42f0a3", "savedPayload": { "position": { "x": 16737.836464656386, @@ -20605,14 +22275,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "74f69ceb-b64a-4395-8a0e-37a85c8f9ab8", + "id": "6fa381ff-eb7e-4ac3-aab0-55814cc7a997", "savedPayload": { "position": { "x": 16737.836464656386, @@ -20635,15 +22331,15 @@ } } }, - "id": "397e9294-549e-4278-8e26-371e45f2b887", + "id": "a89d7c61-3bd7-49ea-9d9c-4a6dc806d934", "savedPayload": { "position": { - "x": 17027.614212543107, - "y": 10190.066444606875 + "x": 17158.91050229281, + "y": 10422.860537848348 }, "targetPosition": { - "x": 17451.878281255034, - "y": 9765.802375894946 + "x": 17469.313190799403, + "y": 9909.39177446748 }, "floatingObject": { "isPinned": false, @@ -20672,7 +22368,7 @@ "type": "Output Dataset", "name": "Multi-Time-Frame-Daily On-Balance-Volume Trend Span", "project": "Foundations", - "id": "94457a31-ed52-4f32-8d49-9d3f666fb2b6", + "id": "66ed6eff-c10c-418e-b0f1-4275816efc45", "savedPayload": { "position": { "x": 16251.878281255034, @@ -20696,13 +22392,39 @@ "referenceParent": { "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", - "id": "5e92e409-01c9-46c8-a228-501287039ee6" - } + "id": "39ee9bc2-d5e6-4222-bfd3-c0df484ef6ed" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Trend Span", + "Indicator Bot", + "Foundations", + "6be2c9b7-d70a-4041-8967-af7d55dbf2df" + ], + [ + "On-Balance-Volume Trend Span", + "Product Definition", + "Foundations", + "e302f4ec-d3ea-4248-87c3-820954dc2281" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "89bc3dbf-464c-4004-8246-b89ac9cf3d87" + ] + ] } } ], "outputDatasetFolders": [], - "id": "a90bb1d4-4b30-405a-a911-5209ddc7b8f7", + "id": "d54d5339-a29d-48ae-9f65-c69345d9fb91", "savedPayload": { "position": { "x": 16551.878281255034, @@ -20735,7 +22457,7 @@ "name": "On-Balance-Volume Trend Span Multi-Time-Frame-Daily", "config": "{\n \"mainUtility\": \"Self Reference\"\n}", "project": "Foundations", - "id": "4d858e90-8e55-4ebe-a0e2-ee9c072b25b9", + "id": "7a437766-25ad-4712-8dd3-269c4aad72e6", "savedPayload": { "position": { "x": 16032.26303898437, @@ -20759,8 +22481,34 @@ "referenceParent": { "type": "Status Report", "name": "Daily OBV Trend Span", - "id": "7c3e4cf6-6136-4c13-8836-8f822fd175cf" - } + "id": "d3754350-f769-4f14-a74f-36297dae2ce9" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume Trend Span", + "Indicator Bot", + "Foundations", + "6be2c9b7-d70a-4041-8967-af7d55dbf2df" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "10f5c42b-6fdb-4538-86f5-6e0d6e17234d" + ], + [ + "Daily OBV Trend Span", + "Status Report", + "Foundations", + "cd8970c7-8f0a-48a5-b9e5-d73158e7cff1" + ] + ] } }, { @@ -20768,7 +22516,7 @@ "name": "", "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", "project": "Foundations", - "id": "87f14bbd-c289-462f-82e0-8338c8950d43", + "id": "cf42f71d-52b7-4057-821c-ed469283ea00", "savedPayload": { "position": { "x": 15907.998970272442, @@ -20793,7 +22541,33 @@ "type": "Status Report", "name": "New Status Report", "id": "2a021da8-9feb-475e-90ab-1586968c17c7" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] } }, { @@ -20801,7 +22575,7 @@ "name": "Exchange Raw Data Historic-OHLCVs", "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", "project": "Foundations", - "id": "954c2cc4-5e5a-4836-a2d9-e3cae87807b6", + "id": "1fa0e2f6-3f71-491e-afdc-5fc60a177e77", "savedPayload": { "position": { "x": 15812.647796713707, @@ -20826,7 +22600,33 @@ "type": "Status Report", "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] } } ], @@ -20835,7 +22635,7 @@ "type": "Data Dependency", "name": "Candles Multi-Time-Frame-Daily", "project": "Foundations", - "id": "de02a431-fce1-4b61-afcb-c37601281f3f", + "id": "5873d08b-6804-4500-abe9-2e2d6b99e1c6", "savedPayload": { "position": { "x": 15752.70754321093, @@ -20860,14 +22660,40 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] } }, { "type": "Data Dependency", "name": "Volumes Multi-Time-Frame-Daily", "project": "Foundations", - "id": "9ab0c8d2-1820-47a3-a211-c43a174832ba", + "id": "7845ed24-49b9-4533-9d96-cf6983e68396", "savedPayload": { "position": { "x": 15732.26303898437, @@ -20892,12 +22718,38 @@ "type": "Dataset Definition", "name": "Multi-Time-Frame-Daily", "id": "2e683057-f911-4105-bc77-16f2706d1915" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Volumes", + "Product Definition", + "Foundations", + "1a366aef-efef-470e-88e0-2a6fbe4dd91f" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "2e683057-f911-4105-bc77-16f2706d1915" + ] + ] } } ], "dataMineDataDependencies": [], - "id": "6462abc7-06ae-4261-9c6d-b3006405f878", + "id": "b11a0690-ef54-4ca9-a08f-c2cfc09560c5", "savedPayload": { "position": { "x": 16332.26303898437, @@ -20924,7 +22776,7 @@ "type": "Status Report", "name": "Daily OBV Trend Span", "project": "Foundations", - "id": "7c3e4cf6-6136-4c13-8836-8f822fd175cf", + "id": "d3754350-f769-4f14-a74f-36297dae2ce9", "savedPayload": { "position": { "x": 16551.878281255034, @@ -20951,7 +22803,7 @@ "type": "Execution Started Event", "name": "", "project": "Foundations", - "id": "6ded33ae-fa55-4f2f-923f-50fbe86120bc", + "id": "55c5f065-94c6-41f5-9591-d6ed75bda27d", "savedPayload": { "position": { "x": 16592.0706601197, @@ -20976,14 +22828,40 @@ "type": "Execution Finished Event", "name": "New Execution Finished Event", "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" - } + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] } }, "executionFinishedEvent": { "type": "Execution Finished Event", "name": "New Execution Finished Event", "project": "Foundations", - "id": "91f1fa62-ada0-409d-9b1e-cb194af5c96d", + "id": "7a95b848-f51b-4a28-a7f2-c52d882d25ed", "savedPayload": { "position": { "x": 16701.878281255034, @@ -21006,15 +22884,15 @@ } } }, - "id": "dcccfd0d-ac5c-46dc-845a-44d7b83bc121", + "id": "7a710baa-eee0-43a5-86d4-e14156d51d7d", "savedPayload": { "position": { "x": 17033.878281255034, "y": 9934.802375894946 }, "targetPosition": { - "x": 17451.878281255034, - "y": 9765.802375894946 + "x": 17469.313190799403, + "y": 9909.39177446748 }, "floatingObject": { "isPinned": true, @@ -21042,15 +22920,15 @@ "name": "Multi-Time-Frame-Market", "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", "project": "Foundations", - "id": "126f7743-0c60-4bf9-b4a1-f4cf1c3f16b2", + "id": "e2f40724-c2a8-4372-93e2-389404fadd0a", "savedPayload": { "position": { - "x": 16755.21991269938, - "y": 9876.142221696038 + "x": 16819.30450180418, + "y": 10183.246605136486 }, "targetPosition": { - "x": 17027.614212543107, - "y": 9341.538307183017 + "x": 16955.844427418535, + "y": 9598.989085960886 }, "floatingObject": { "isPinned": false, @@ -21070,15 +22948,15 @@ "name": "Multi-Time-Frame-Daily", "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", "project": "Foundations", - "id": "5e92e409-01c9-46c8-a228-501287039ee6", + "id": "39ee9bc2-d5e6-4222-bfd3-c0df484ef6ed", "savedPayload": { "position": { - "x": 16435.001208186026, - "y": 9247.677628158877 + "x": 16357.989349186613, + "y": 9649.677402487505 }, "targetPosition": { - "x": 17027.614212543107, - "y": 9341.538307183017 + "x": 16955.844427418535, + "y": 9598.989085960886 }, "floatingObject": { "isPinned": false, @@ -21109,15 +22987,15 @@ "name": "New Record Formula", "code": "record.current.begin", "project": "Foundations", - "id": "cab92bd0-3e57-4e14-bed2-1e188bf3f2e8", + "id": "2d4d4dbb-bc62-4aa7-9236-408dee5e3a39", "savedPayload": { "position": { - "x": 16356.813148108224, - "y": 9346.630649770234 + "x": 16305.754300133836, + "y": 9764.46665666751 }, "targetPosition": { - "x": 16624.115105364734, - "y": 9210.43349984837 + "x": 16532.69483690639, + "y": 9568.25760292792 }, "floatingObject": { "isPinned": false, @@ -21132,15 +23010,15 @@ } } }, - "id": "45c16ca8-f9ad-4096-9efb-aa0fca194852", + "id": "76864b75-1403-4609-991c-417138a0a140", "savedPayload": { "position": { - "x": 16624.115105364734, - "y": 9210.43349984837 + "x": 16532.69483690639, + "y": 9568.25760292792 }, "targetPosition": { - "x": 16891.417062621244, - "y": 9074.236349926507 + "x": 16759.635373678946, + "y": 9372.048549188332 }, "floatingObject": { "isPinned": false, @@ -21165,15 +23043,15 @@ "name": "New Record Formula", "code": "record.current.end", "project": "Foundations", - "id": "a54f75d0-a5c2-4842-bb7e-ef6767342778", + "id": "150eefd9-3e5e-4842-ae02-4685a13810a0", "savedPayload": { "position": { - "x": 16619.022762777517, - "y": 8539.632435413487 + "x": 16367.217266199768, + "y": 8918.167475643224 }, "targetPosition": { - "x": 16755.21991269938, - "y": 8806.934392669997 + "x": 16563.426319939357, + "y": 9145.108012415778 }, "floatingObject": { "isPinned": false, @@ -21188,15 +23066,15 @@ } } }, - "id": "1e835ee2-b90e-4c9d-b848-99a13b9160bb", + "id": "9a6bd90f-6c92-42b1-a3cc-d8708764fcc1", "savedPayload": { "position": { - "x": 16755.21991269938, - "y": 8806.934392669997 + "x": 16563.426319939357, + "y": 9145.108012415778 }, "targetPosition": { - "x": 16891.417062621244, - "y": 9074.236349926507 + "x": 16759.635373678946, + "y": 9372.048549188332 }, "floatingObject": { "isPinned": false, @@ -21221,15 +23099,15 @@ "name": "New Record Formula", "code": "variable.TrendSpan", "project": "Foundations", - "id": "bf4b9bd8-03b8-4405-b3c9-585f673a5557", + "id": "1d98ffd1-0ee7-4b25-9247-98651816cce3", "savedPayload": { "position": { - "x": 17426.020977134263, - "y": 8801.84205008278 + "x": 17213.516447224058, + "y": 8979.630441709154 }, "targetPosition": { - "x": 17158.719019877753, - "y": 8938.039200004643 + "x": 16986.575910451502, + "y": 9175.839495448743 }, "floatingObject": { "isPinned": false, @@ -21244,15 +23122,15 @@ } } }, - "id": "06c32d0a-358f-4a77-87b3-162cbda8be78", + "id": "6d40c1ba-29e1-44fb-9f3f-1740d533722d", "savedPayload": { "position": { - "x": 17158.719019877753, - "y": 8938.039200004643 + "x": 16986.575910451502, + "y": 9175.839495448743 }, "targetPosition": { - "x": 16891.417062621244, - "y": 9074.236349926507 + "x": 16759.635373678946, + "y": 9372.048549188332 }, "floatingObject": { "isPinned": false, @@ -21268,15 +23146,15 @@ } } ], - "id": "de2c3904-224a-4968-837d-d69cc9d4e425", + "id": "30df4643-27dc-4ba4-923a-40f79a3c2ab0", "savedPayload": { "position": { - "x": 16891.417062621244, - "y": 9074.236349926507 + "x": 16759.635373678946, + "y": 9372.048549188332 }, "targetPosition": { - "x": 17027.614212543107, - "y": 9341.538307183017 + "x": 16955.844427418535, + "y": 9598.989085960886 }, "floatingObject": { "isPinned": false, @@ -21304,15 +23182,15 @@ "name": "New Procedure Javascript Code", "code": "/* Loop Code */\n\nlet candle = record.current\nlet volume = getElement('volumes', candle)\nlet K = 2\nlet Len = 10 //number of period for integral calculation\nlet Len3 = 3\nlet Len5 = 5\nlet Len15 = 15\nlet Len20 = 20\n\nvariable.CDL = candle.close\nif (variable.z === undefined){\n\tvariable.z = 0\n}\n\nif(variable.TrendSpan === undefined){\n\tvariable.TrendSpan = 1\n}\n\nif (variable.previousVEma20 === undefined) {\nvariable.previousVEma20 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma3 === undefined) {\nvariable.previousVEma3 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma5 === undefined) {\nvariable.previousVEma5 = volume.buy + volume.sell\n}\n\nif (variable.previousVEma10 === undefined) {\nvariable.previousVEma10 = volume.buy + volume.sell\n}\n\n//build candle close array\nvariable.candleClose.push(candle.close)\n\n//keep the array to the right size\nif (variable.candleClose.length > K) {\n variable.candleClose.splice(0, 1)\n}\n\n//manage Previous On balance value\n\nif (variable.previousOnBV === undefined) {\n\tvariable.previousOnBV = 0\n}\n\n//procedure for OBV calculation\nif (variable.candleClose[1] > variable.candleClose[0]) {\n\tvariable.OnBV = variable.previousOnBV + volume.buy + volume.sell\n\t}\n\nif (variable.candleClose[1] === variable.candleClose[0]) {\n\tvariable.OnBV = variable.previousOnBV\n\t}\nif (variable.candleClose[1] < variable.candleClose[0]) {\n\tvariable.OnBV = variable.previousOnBV - (volume.buy + volume.sell)\n\t}\n\n//manage NaN and undefined\nif (variable.OnBV === undefined || isNaN(variable.OnBV)) {\n\tvariable.OBV = 0\n\tvariable.previousOnBV = 0\n}\nelse {\n\tvariable.OBV = variable.OnBV\n\tvariable.previousOnBV = variable.OnBV\n}\n\n// Calculate On balance Volume EMA3\nvariable.VEma3 = calculateVEMA(3, variable.OBV, variable.previousVEma3)\n\n\n// Calculate On balance Volume EMA5\nvariable.VEma5 = calculateVEMA(5, variable.OBV, variable.previousVEma5)\n\n\n// Calculate On balance Volume EMA10\nvariable.VEma10 = calculateVEMA(10, variable.OBV, variable.previousVEma10)\n\n\n// Calculate On balance Volume EMA20\nvariable.VEma20 = calculateVEMA(20, variable.OBV, variable.previousVEma20)\n\n//Calculate integral between VEMA20 and VEMA10\n\nif(variable.VEma10 > variable.previousVEma10) {\n\tvariable.IntVEma10 = (variable.VEma10 - variable.previousVEma10)/2 + variable.previousVEma10\n}\nif(variable.VEma10 < variable.previousVEma10) {\n\tvariable.IntVEma10 = (variable.previousVEma10 - variable.VEma10)/2 + variable.VEma10\n}\nif(variable.VEma10 === variable.previousVEma10){\n\tvariable.IntVEma10 = variable.VEma10\n}\nif(variable.VEma20 > variable.previousVEma20) {\n\tvariable.IntVEma20 = (variable.VEma20 - variable.previousVEma20)/2 + variable.previousVEma20\n}\nif(variable.VEma20 < variable.previousVEma20) {\n\tvariable.IntVEma20 = (variable.previousVEma20 - variable.VEma20)/2 + variable.VEma20\n}\nif(variable.VEma20 === variable.previousVEma20){\n\tvariable.IntVEma20 = variable.VEma20\n}\n\nif(variable.Pos === undefined){\n\tvariable.Pos = 0\n}\nif(variable.Neg === undefined){\n\tvariable.Neg = 0\n}\n\nif(variable.VEma10 > variable.VEma20 && variable.previousVEma10 < variable.previousVEma20){\n\tvariable.IntP = []\n\tvariable.logitPos = []\n\tvariable.aPos = []\n\tvariable.Neg = 0\n\tvariable.Pos= 0\n\tvariable.X = 0\n\tvariable.Y = 0\n\tvariable.produit = 0\n\tvariable.prodVar = 0\n\tvariable.reg = []\n\tvariable.dreg = []\n\tvariable.d2reg = []\n\tvariable.TrendSpan = 1\n\tvariable.z = 0\n}\n\n\n\nif(variable.VEma10 > variable.VEma20){\t\n\tvariable.IntP.push(Math.abs(variable.IntVEma10 - variable.IntVEma20))\n\tvariable.Pos = 0\n\n \n\tfor (var i = 0 ; i 0){\n\tvariable.logitPos.push(Math.log((variable.aPos[variable.z - 1]/variable.maxPos)/(1-variable.aPos[variable.z - 1]/variable.maxPos)))\n\t\n\tvariable.X = 0\n\tvariable.Y = 0\n\t\n\tfor(j=0;j 0){\n\t\t\tvariable.TrendSpan = -1\n\t\t}\n\t\tif (variable.d2reg[i] > 0 && variable.d2reg[i-1] > 0){\n\t\t\tvariable.TrendSpan = 1\n\t\t}\n\t}\n\t}\n\tvariable.z = variable.z + 1\n\n}\n\nif(variable.Pos === undefined || isNaN(variable.Pos)){\n\tvariable.mPos = 0\n}\n\nif(variable.VEma10 < variable.VEma20 && variable.previousVEma10 > variable.previousVEma20){\n\tvariable.IntN = []\n\tvariable.logitNeg = []\n\tvariable.aNeg = []\n\tvariable.Neg = 0\n\tvariable.Pos= 0\n\tvariable.X = 0\n\tvariable.Y = 0\n\tvariable.produit = 0\n\tvariable.prodVar = 0\n\tvariable.reg = []\n\tvariable.dreg = []\n\tvariable.d2reg = []\n\tvariable.TrendSpan = 1\n\tvariable.z = 0\n}\n\nif(variable.VEma10 < variable.VEma20){\n\t\n\t\n\tvariable.IntN.push(Math.abs(variable.IntVEma20 - variable.IntVEma10))\n\tvariable.Neg = 0\n\t\n\tfor (var i =0 ; i 0){\n\tvariable.logitNeg.push(Math.log((variable.aNeg[variable.z - 1]/variable.maxNeg)/(1-variable.aNeg[variable.z - 1]/variable.maxNeg)))\n\t\n\tvariable.X = 0\n\tvariable.Y = 0\n\t\n\tfor(j=0;j 0){\n\t\t\tvariable.TrendSpan = -1\n\t\t}\n\t\tif (variable.d2reg[i] > 0 && variable.d2reg[i-1] > 0){\n\t\t\tvariable.TrendSpan = 1\n\t\t}\n\t}\n\t}\n\tvariable.z = variable.z + 1\n}\nif(variable.Neg === undefined || isNaN(variable.Neg)){\n\tvariable.mNeg = 0\n}\n\n\n\nvariable.previousVEma3 = variable.VEma3\nvariable.previousVEma5 = variable.VEma5\nvariable.previousVEma10 = variable.VEma10\nvariable.previousVEma20 = variable.VEma20\n\n//On Balance Volume EMA calculation\nfunction calculateVEMA(periods, price, previousVEMA) {\n let k = 2 / (periods + 1)\n return price * k + previousVEMA * (1-k)\n}\n\n\n\n// End of code :-)\n", "project": "Foundations", - "id": "d23180ff-1cf9-41d7-acc1-d368370f6a83", + "id": "5c841525-0b1c-4124-b4c4-28bb37a6e835", "savedPayload": { "position": { - "x": 16892.804416000614, - "y": 7316.08991462137 + "x": 16340.230431010677, + "y": 7664.658638596442 }, "targetPosition": { - "x": 17000.314800864206, - "y": 7596.16404257053 + "x": 16511.642885462217, + "y": 7910.865402229975 }, "floatingObject": { "isPinned": false, @@ -21327,15 +23205,15 @@ } } }, - "id": "af1f10a7-9cd8-458a-b0fd-fa9811aa3152", + "id": "f460dfa2-5ce5-414d-874b-7d3ce24b12f7", "savedPayload": { "position": { - "x": 17000.314800864206, - "y": 7596.16404257053 + "x": 16511.642885462217, + "y": 7910.865402229975 }, "targetPosition": { - "x": 17215.335570591385, - "y": 8156.312298468851 + "x": 16854.467794365297, + "y": 8403.278929497043 }, "floatingObject": { "isPinned": false, @@ -21359,15 +23237,15 @@ "name": "New Procedure Javascript Code", "code": "/* Initialization Code*/\n\nvariable.candleClose = []\nvariable.IntP = []\nvariable.IntN = []\nvariable.logitPos = []\nvariable.aPos = []\nvariable.reg = []\nvariable.dreg = []\nvariable.d2reg = []\nvariable.logitNeg = []\nvariable.aNeg = []\n", "project": "Foundations", - "id": "b141cd3c-1696-4ae4-98e9-05c96283c1e3", + "id": "52032d75-14b0-42ae-8239-7855075754e6", "savedPayload": { "position": { - "x": 17467.063727011322, - "y": 7845.453913886062 + "x": 17024.48790725119, + "y": 8041.211033634584 }, "targetPosition": { - "x": 17404.131687906338, - "y": 7923.168510031759 + "x": 16981.982879029718, + "y": 8131.728007600199 }, "floatingObject": { "isPinned": false, @@ -21382,15 +23260,15 @@ } } }, - "id": "521d2d0f-7150-4b81-a132-d9cd5c8bd04b", + "id": "22b8217c-680c-4f4b-8672-ad52371ac814", "savedPayload": { "position": { - "x": 17404.131687906338, - "y": 7923.168510031759 + "x": 16981.982879029718, + "y": 8131.728007600199 }, "targetPosition": { - "x": 17215.335570591385, - "y": 8156.312298468851 + "x": 16854.467794365297, + "y": 8403.278929497043 }, "floatingObject": { "isPinned": false, @@ -21405,15 +23283,15 @@ } } }, - "id": "3d556198-79f2-46dd-8d71-6917b74781da", + "id": "13da888e-e80c-4b11-976e-6c071d99a0d1", "savedPayload": { "position": { - "x": 17215.335570591385, - "y": 8156.312298468851 + "x": 16854.467794365297, + "y": 8403.278929497043 }, "targetPosition": { - "x": 17027.614212543107, - "y": 9341.538307183017 + "x": 16955.844427418535, + "y": 9598.989085960886 }, "floatingObject": { "isPinned": false, @@ -21428,11 +23306,1535 @@ } } }, - "id": "5c55c224-2d07-471c-85ce-8af218d12a22", + "id": "4343a724-3e38-4e69-b480-e4464737003c", "savedPayload": { "position": { - "x": 17027.614212543107, - "y": 9341.538307183017 + "x": 16955.844427418535, + "y": 9598.989085960886 + }, + "targetPosition": { + "x": 17469.313190799403, + "y": 9909.39177446748 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Plotter Module", + "name": "OBV-Trend Span", + "id": "ea77d5e2-5baf-421f-b83e-6114cf909328" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Trend Span", + "Plotter Module", + "Foundations", + "23918320-7bca-4a15-9826-be06478c7488" + ] + ] + } + } + ], + "id": "631207ae-9080-4350-9274-2debb0cd512d", + "savedPayload": { + "position": { + "x": 17469.313190799403, + "y": 9909.39177446748 + }, + "targetPosition": { + "x": 18051.878281255034, + "y": 9765.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Indicator Bot", + "name": "Better Sine Wave", + "config": "{\n \"codeName\": \"BetterSineWave\"\n}", + "project": "Foundations", + "processes": [ + { + "type": "Process Definition", + "name": "Multi-Time-Frame-Market", + "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"description\": \"Produces FasTrend Indicator\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Time-Frame-Market\"\n }\n}", + "project": "Foundations", + "processOutput": { + "type": "Process Output", + "name": "New Process Output", + "project": "Foundations", + "outputDatasets": [ + { + "type": "Output Dataset", + "name": "Multi-Time-Frame-Market Better Sine Wave 36", + "project": "Foundations", + "id": "43093392-ea15-47e4-a3de-722d0f5bc5ee", + "savedPayload": { + "position": { + "x": 17473.899274177773, + "y": 10593.67704535899 + }, + "targetPosition": { + "x": 17175.54270556729, + "y": 10562.318506378695 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Dataset Definition", + "name": "Multi-Time-Frame-Market", + "id": "fe70b5c6-6589-4ead-a4d4-878dbe5b7cc3" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Indicator Bot", + "Foundations", + "d1689f74-85c0-4771-9d76-9fa8627521e0" + ], + [ + "Better Sine Wave 36", + "Product Definition", + "Foundations", + "f03cee86-3987-4933-9eb8-2ce8b32d8808" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "84f9538b-675d-472d-9d2b-b2f0b9a93d7e" + ] + ] + } + }, + { + "type": "Output Dataset", + "name": "Multi-Time-Frame-Market Better Sine Wave 6", + "project": "Foundations", + "id": "ba87585d-6ab7-493e-b6aa-703157b9d5b6", + "savedPayload": { + "position": { + "x": 16999.20712987955, + "y": 10805.02360469118 + }, + "targetPosition": { + "x": 17175.54270556729, + "y": 10562.318506378695 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Dataset Definition", + "name": "Multi-Time-Frame-Market", + "id": "9f178318-ef0b-44dc-a28c-a26b9b50beb2" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Indicator Bot", + "Foundations", + "d1689f74-85c0-4771-9d76-9fa8627521e0" + ], + [ + "Better Sine Wave 6", + "Product Definition", + "Foundations", + "be494dc0-4535-4229-973d-db2e98681bde" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "26f0769c-7f83-4677-8358-a9a91ceb6dca" + ] + ] + } + } + ], + "outputDatasetFolders": [], + "id": "e2f6af3e-de59-47ed-88d6-b22063ac2804", + "savedPayload": { + "position": { + "x": 17175.54270556729, + "y": 10562.318506378695 + }, + "targetPosition": { + "x": 16875.54270556729, + "y": 9888.50747420743 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 2 + }, + "uiObject": { + "isRunning": false + } + } + }, + "processDependencies": { + "type": "Process Dependencies", + "name": "New Process Dependencies", + "project": "Foundations", + "statusDependencies": [ + { + "type": "Status Dependency", + "name": "Candles Volumes Multi-Time-Frame-Market", + "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", + "project": "Foundations", + "id": "94f64f76-66d8-4c92-981a-2181a0b6f4d8", + "savedPayload": { + "position": { + "x": 17111.699073069278, + "y": 10685.75800977879 + }, + "targetPosition": { + "x": 16828.50489709685, + "y": 10336.042327123154 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Status Report", + "name": "Candles Volumes Multi-Time-Frame-Market Status Report", + "id": "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "Candles Volumes Multi-Time-Frame-Market Status Report", + "Status Report", + "Foundations", + "a0a61ba9-91cb-4ec7-92fe-134ff079de2d" + ] + ] + } + }, + { + "type": "Status Dependency", + "name": "Better Sine Wave Multi-Time-Frame-Market", + "config": "{\n \"mainUtility\": \"Self Reference\"\n}", + "project": "Foundations", + "id": "f28fd073-85ad-4430-98dc-a196560f5b30", + "savedPayload": { + "position": { + "x": 16804.985992861628, + "y": 10559.809753581016 + }, + "targetPosition": { + "x": 16828.50489709685, + "y": 10336.042327123154 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Status Report", + "name": "Market-BSV36", + "id": "9a159f46-4e42-495f-8571-0df08358011e" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Indicator Bot", + "Foundations", + "d1689f74-85c0-4771-9d76-9fa8627521e0" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "317e9e98-79a7-41ff-aec7-6bab7a847cfa" + ], + [ + "Market-BSV36", + "Status Report", + "Foundations", + "79f18a25-ff15-4fd1-91db-4d98c39c0e7e" + ] + ] + } + } + ], + "dataDependencies": [ + { + "type": "Data Dependency", + "name": "Candles Multi-Time-Frame-Market", + "project": "Foundations", + "id": "f8c1d4f8-c75f-4c78-878f-6c65742d32d3", + "savedPayload": { + "position": { + "x": 16653.64705576903, + "y": 10477.639415109366 + }, + "targetPosition": { + "x": 16828.50489709685, + "y": 10336.042327123154 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Dataset Definition", + "name": "Multi-Time-Frame-Market", + "id": "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Market", + "Dataset Definition", + "Foundations", + "2b03494a-67d6-47f1-89b6-53fc4c9116a8" + ] + ] + } + } + ], + "dataMineDataDependencies": [], + "id": "540641d9-e583-4533-9e65-783f2cd6733b", + "savedPayload": { + "position": { + "x": 16828.50489709685, + "y": 10336.042327123154 + }, + "targetPosition": { + "x": 16875.54270556729, + "y": 9888.50747420743 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 4, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "statusReport": { + "type": "Status Report", + "name": "Market-BSV36", + "project": "Foundations", + "id": "9a159f46-4e42-495f-8571-0df08358011e", + "savedPayload": { + "position": { + "x": 16699.20712987955, + "y": 10131.212572519915 + }, + "targetPosition": { + "x": 16875.54270556729, + "y": 9888.50747420743 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "executionStartedEvent": { + "type": "Execution Started Event", + "name": "", + "project": "Foundations", + "id": "3e052d54-cec2-468f-b5a5-3d7035084679", + "savedPayload": { + "position": { + "x": 16738.5108869209, + "y": 9949.5179706688 + }, + "targetPosition": { + "x": 16875.54270556729, + "y": 9888.50747420743 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Execution Finished Event", + "name": "New Execution Finished Event", + "id": "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Market", + "Process Definition", + "Foundations", + "9f683143-a33f-42c1-9fa8-c601f01ee4e1" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "1824fa00-dd30-4cdc-acc0-01c2f29056c5" + ] + ] + } + }, + "executionFinishedEvent": { + "type": "Execution Finished Event", + "name": "New Execution Finished Event", + "project": "Foundations", + "id": "87c54d32-7618-4a9b-93e0-8db9ea2d6807", + "savedPayload": { + "position": { + "x": 16726.36442126205, + "y": 9872.828204717282 + }, + "targetPosition": { + "x": 16875.54270556729, + "y": 9888.50747420743 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "7a684614-003e-4b9f-83b0-0d5448cbfd2c", + "savedPayload": { + "position": { + "x": 17099.20712987955, + "y": 10251.212572519915 + }, + "targetPosition": { + "x": 17451.878281255034, + "y": 9765.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Process Definition", + "name": "Multi-Time-Frame-Daily", + "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"description\": \"Produces the FastTrend indicators.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"sleepWaitTime\": 3600000,\n \"comaWaitTime\": 86400000,\n \"framework\": {\n \"name\": \"Multi-Time-Frame-Daily\"\n }\n}", + "project": "Foundations", + "processOutput": { + "type": "Process Output", + "name": "New Process Output", + "project": "Foundations", + "outputDatasets": [ + { + "type": "Output Dataset", + "name": "Multi-Time-Frame-Daily Better Sine Wave 36", + "project": "Foundations", + "id": "3eebccf5-a68b-447e-b692-fa6af5017144", + "savedPayload": { + "position": { + "x": 16911.5759625451, + "y": 10529.973807628601 + }, + "targetPosition": { + "x": 16818.870864232616, + "y": 10244.656852740056 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Dataset Definition", + "name": "Multi-Time-Frame-Daily", + "id": "dc896fd4-211e-4212-9178-69c51ec96c33" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Indicator Bot", + "Foundations", + "d1689f74-85c0-4771-9d76-9fa8627521e0" + ], + [ + "Better Sine Wave 36", + "Product Definition", + "Foundations", + "f03cee86-3987-4933-9eb8-2ce8b32d8808" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "48dc0c64-77f5-41ed-9a2c-693f5e43af9c" + ] + ] + } + }, + { + "type": "Output Dataset", + "name": "Multi-Time-Frame-Daily Better Sine Wave 6", + "project": "Foundations", + "id": "83635cdf-fb1b-4616-b0ac-54633e0d371e", + "savedPayload": { + "position": { + "x": 16618.131682324958, + "y": 10467.600300383274 + }, + "targetPosition": { + "x": 16818.870864232616, + "y": 10244.656852740056 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Dataset Definition", + "name": "Multi-Time-Frame-Daily", + "id": "8e6f71ba-5ca0-463b-9ed0-2fac74f55adf" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Indicator Bot", + "Foundations", + "d1689f74-85c0-4771-9d76-9fa8627521e0" + ], + [ + "Better Sine Wave 6", + "Product Definition", + "Foundations", + "be494dc0-4535-4229-973d-db2e98681bde" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "e041bb4a-489e-436b-9261-be6c94a87173" + ] + ] + } + } + ], + "outputDatasetFolders": [], + "id": "6e6482f5-05d2-4a7e-9357-89e5296972ed", + "savedPayload": { + "position": { + "x": 16818.870864232616, + "y": 10244.656852740056 + }, + "targetPosition": { + "x": 16881.244371477944, + "y": 9951.212572519915 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "processDependencies": { + "type": "Process Dependencies", + "name": "New Process Dependencies", + "project": "Foundations", + "statusDependencies": [ + { + "type": "Status Dependency", + "name": "Better Sine Wave Multi-Time-Frame-Daily", + "config": "{\n \"mainUtility\": \"Self Reference\"\n}", + "project": "Foundations", + "id": "15a00bfb-fbbf-4808-a588-0e64c6859cbf", + "savedPayload": { + "position": { + "x": 16324.474580601114, + "y": 10976.654963579791 + }, + "targetPosition": { + "x": 16479.766007662627, + "y": 10397.09946780635 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 3, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Status Report", + "name": "Daily-BSV", + "id": "843e8f66-3d7f-4636-bc68-2045a6dab2bc" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Indicator Bot", + "Foundations", + "d1689f74-85c0-4771-9d76-9fa8627521e0" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "2083e0aa-7720-479b-b793-2678d071ed2e" + ], + [ + "Daily-BSV", + "Status Report", + "Foundations", + "309f7df3-df98-4bec-8d38-34ca5a81eab0" + ] + ] + } + }, + { + "type": "Status Dependency", + "name": "", + "config": "{\n \"mainUtility\": \"Market Ending Point\"\n}", + "project": "Foundations", + "id": "0b996883-706a-4b89-86bf-ed6538a82a27", + "savedPayload": { + "position": { + "x": 16152.98258665361, + "y": 10900.301808573606 + }, + "targetPosition": { + "x": 16479.766007662627, + "y": 10397.09946780635 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 3, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Status Report", + "name": "New Status Report", + "id": "2a021da8-9feb-475e-90ab-1586968c17c7" + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Status Report", + "Status Report", + "Foundations", + "2a021da8-9feb-475e-90ab-1586968c17c7" + ] + ] + } + }, + { + "type": "Status Dependency", + "name": "Exchange Raw Data Historic-OHLCVs", + "config": "{\n \"mainUtility\": \"Market Starting Point\"\n}", + "project": "Foundations", + "id": "720976ae-c680-4770-bb0f-c3ef99fa788a", + "savedPayload": { + "position": { + "x": 16013.478430788444, + "y": 10774.691702436254 + }, + "targetPosition": { + "x": 16479.766007662627, + "y": 10397.09946780635 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 3, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Status Report", + "name": "Exchange-Raw-Data Historic-OHLCVs Status Report", + "id": "181c7c34-7243-497a-9ddb-1b0067c6d66e" + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Exchange Raw Data", + "Sensor Bot", + "Foundations", + "af924204-66a2-47d4-9910-66ab78acb06f" + ], + [ + "Historic-OHLCVs", + "Process Definition", + "Foundations", + "5eb11d6a-022e-4f60-97c4-d6cf90b249dc" + ], + [ + "Exchange-Raw-Data Historic-OHLCVs Status Report", + "Status Report", + "Foundations", + "181c7c34-7243-497a-9ddb-1b0067c6d66e" + ] + ] + } + } + ], + "dataDependencies": [ + { + "type": "Data Dependency", + "name": "Candles Multi-Time-Frame-Daily", + "project": "Foundations", + "id": "3e45f98b-e419-460d-979e-a9a9d5c6c182", + "savedPayload": { + "position": { + "x": 15919.617751764306, + "y": 10612.12023753353 + }, + "targetPosition": { + "x": 16479.766007662627, + "y": 10397.09946780635 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 3, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Dataset Definition", + "name": "Multi-Time-Frame-Daily", + "id": "678a567c-f08d-49b9-813b-4e54fd6afadb" + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Candles", + "Product Definition", + "Foundations", + "fe6065ec-4d2d-47a0-bae0-8647f0e195d7" + ], + [ + "Multi-Time-Frame-Daily", + "Dataset Definition", + "Foundations", + "678a567c-f08d-49b9-813b-4e54fd6afadb" + ] + ] + } + } + ], + "dataMineDataDependencies": [], + "id": "1bd575be-bbbe-4c0c-96b2-7ddcbceb026e", + "savedPayload": { + "position": { + "x": 16479.766007662627, + "y": 10397.09946780635 + }, + "targetPosition": { + "x": 16881.244371477944, + "y": 9951.212572519915 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "statusReport": { + "type": "Status Report", + "name": "Daily-BSV", + "project": "Foundations", + "id": "843e8f66-3d7f-4636-bc68-2045a6dab2bc", + "savedPayload": { + "position": { + "x": 16595.9274165894, + "y": 10043.9176708324 + }, + "targetPosition": { + "x": 16881.244371477944, + "y": 9951.212572519915 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "executionStartedEvent": { + "type": "Execution Started Event", + "name": "", + "project": "Foundations", + "id": "91c009c3-73dd-4bc9-a82f-fc23e0ccfbe0", + "savedPayload": { + "position": { + "x": 16587.800091257803, + "y": 9888.839065274587 + }, + "targetPosition": { + "x": 16881.244371477944, + "y": 9951.212572519915 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Execution Finished Event", + "name": "New Execution Finished Event", + "id": "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + }, + "referenceParentCombinedNodePath": [ + [ + "Candles", + "Data Mine", + "Foundations", + "70c7eea3-a786-4dda-b526-0514e2cb14cc" + ], + [ + "Candles Volumes", + "Indicator Bot", + "Foundations", + "285a4618-0423-4ac9-9df9-7a78be6fd915" + ], + [ + "Multi-Time-Frame-Daily", + "Process Definition", + "Foundations", + "980ceb1d-7be6-454f-90d9-01ba1fd4a65d" + ], + [ + "New Execution Finished Event", + "Execution Finished Event", + "Foundations", + "f29d08f9-e7c8-490c-8fca-14851a0d3dc3" + ] + ] + } + }, + "executionFinishedEvent": { + "type": "Execution Finished Event", + "name": "New Execution Finished Event", + "project": "Foundations", + "id": "91f32266-0944-48fb-8b2b-5968a65ddc28", + "savedPayload": { + "position": { + "x": 16658.300923834726, + "y": 9750.473390612256 + }, + "targetPosition": { + "x": 16881.244371477944, + "y": 9951.212572519915 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "670b0287-d5b9-4508-9352-86dcaad1920e", + "savedPayload": { + "position": { + "x": 16881.244371477944, + "y": 9951.212572519915 + }, + "targetPosition": { + "x": 17451.878281255034, + "y": 9765.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "products": [ + { + "type": "Product Definition", + "name": "Better Sine Wave 36", + "config": "{\n \"codeName\": \"BSV36\",\n \"singularVariableName\": \"BSV36\",\n \"pluralVariableName\": \"BSV36s\"\n}", + "project": "Foundations", + "datasets": [ + { + "type": "Dataset Definition", + "name": "Multi-Time-Frame-Market", + "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", + "project": "Foundations", + "id": "fe70b5c6-6589-4ead-a4d4-878dbe5b7cc3", + "savedPayload": { + "position": { + "x": 15805.70712425559, + "y": 9336.007270570644 + }, + "targetPosition": { + "x": 15941.904274177454, + "y": 9068.705313314134 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Dataset Definition", + "name": "Multi-Time-Frame-Daily", + "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", + "project": "Foundations", + "id": "dc896fd4-211e-4212-9178-69c51ec96c33", + "savedPayload": { + "position": { + "x": 15645.597771998913, + "y": 9021.774973802065 + }, + "targetPosition": { + "x": 15941.904274177454, + "y": 9068.705313314134 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "record": { + "type": "Record Definition", + "name": "New Record Definition", + "project": "Foundations", + "properties": [ + { + "type": "Record Property", + "name": "Begin", + "config": "{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}", + "project": "Foundations", + "recordFormula": { + "type": "Record Formula", + "name": "New Record Formula", + "code": "record.current.begin", + "project": "Foundations", + "id": "cc23993a-18cd-4318-af51-9e9d210448d1", + "savedPayload": { + "position": { + "x": 15403.583841885504, + "y": 8546.487818225156 + }, + "targetPosition": { + "x": 15551.737092974774, + "y": 8523.022648469121 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "6bbf0963-b761-4fcd-b50e-82653eb39967", + "savedPayload": { + "position": { + "x": 15551.737092974774, + "y": 8523.022648469121 + }, + "targetPosition": { + "x": 15848.043595153315, + "y": 8476.092308957052 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Record Property", + "name": "End", + "config": "{\n \"codeName\": \"end\",\n \"isString\": false,\n \"isCalculated\": false\n}", + "project": "Foundations", + "recordFormula": { + "type": "Record Formula", + "name": "New Record Formula", + "code": "record.current.end", + "project": "Foundations", + "id": "f156b930-76d6-4d82-b630-7aa199e5e716", + "savedPayload": { + "position": { + "x": 15777.64808588521, + "y": 8031.63255568924 + }, + "targetPosition": { + "x": 15801.113255641245, + "y": 8179.78580677851 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "aed48996-0942-4f8f-9871-0afebb904ac1", + "savedPayload": { + "position": { + "x": 15801.113255641245, + "y": 8179.78580677851 + }, + "targetPosition": { + "x": 15848.043595153315, + "y": 8476.092308957052 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Record Property", + "name": "Sine Wave 36", + "config": "{\n \"codeName\": \"bsv36\",\n \"isString\": false,\n \"isCalculated\": false\n}", + "project": "Foundations", + "recordFormula": { + "type": "Record Formula", + "name": "New Record Formula", + "code": "variable.sineWave", + "project": "Foundations", + "id": "ae0ebb8e-b8d0-49f0-83f3-f7b5f3b3eea9", + "savedPayload": { + "position": { + "x": 16292.503348421125, + "y": 8405.696799688947 + }, + "targetPosition": { + "x": 16144.350097331855, + "y": 8429.161969444982 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "7ab141eb-6031-4a12-8b91-bb5448dbad40", + "savedPayload": { + "position": { + "x": 16144.350097331855, + "y": 8429.161969444982 + }, + "targetPosition": { + "x": 15848.043595153315, + "y": 8476.092308957052 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "7946dbd8-119c-494c-9ad2-7feef180bc0a", + "savedPayload": { + "position": { + "x": 15848.043595153315, + "y": 8476.092308957052 + }, + "targetPosition": { + "x": 15941.904274177454, + "y": 9068.705313314134 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 5, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "dataBuilding": { + "type": "Data Building Procedure", + "name": "New Data Building Procedure", + "project": "Foundations", + "loop": { + "type": "Procedure Loop", + "name": "New Procedure Loop", + "project": "Foundations", + "procedureJavascriptCode": { + "type": "Procedure Javascript Code", + "name": "New Procedure Javascript Code", + "code": "\tlet candle = record.current\n\tlet Pi = Math.PI\n\tlet D = 36\n\tlet lB = 6\n\n\tif(variable.Z === undefined){\n\t\tvariable.Z = 0\n\t}\n\n\tif(variable.previousHP === undefined){\n\t\t\tvariable.previousHP = 0\n\t}\n\n\tvariable.x.push(candle.close)\n\tif(variable.x.length > 2){\n\t\tvariable.x.splice(0,1)\n\t}\n\n\tvariable.angle = deg2rad(360) / D\n\tvariable.alpha1 = (1-Math.sin(variable.angle)) / (Math.cos(variable.angle))\n\tif(variable.x.length === 2){\n\t\tvariable.HP = 0.5 * (1 + variable.alpha1) * (variable.x[1] - variable.x[0]) + variable.alpha1 * variable.previousHP\n\n\t\tvariable.ang = Math.sqrt(2) * Pi/lB\n\t\tvariable.a1 = Math.exp(-variable.ang)\n\t\tvariable.b1 = 2 * variable.a1 * Math.cos(variable.ang)\n\t\tvariable.c2 = variable.b1\n\t\tvariable.c3 = -variable.a1 * variable.a1\n\t\tvariable.c1 = 1 - variable.c2 - variable.c3\n\t\tif(variable.filt.length < 2){\n\t\t\tvariable.filt.push(0)\n\t\t\tvariable.filt.push(0)\n\t\t}\n\t\tvariable.filt.push((variable.c1 * (variable.HP + variable.previousHP )) / 2 + (variable.c2 * variable.filt[1]) + (variable.c3 * variable.filt[0]))\n\t\tif(variable.filt.length > 3 ) {\n\t\t\tvariable.filt.splice(0,1)\n\t\t}\n\n\t\tvariable.previousHP = variable.HP\n\t}\n\n\tif(variable.x.length < 2 ) {\n\t\tvariable.wave = 0\n\t\tvariable.pwr = 1\t\n\t}\n\telse {\n\t\t\tvariable.wave = (variable.filt[2] + variable.filt[1] + variable.filt[0])/3\n\t\t\tvariable.pwr = (Math.pow(variable.filt[2],2) + Math.pow(variable.filt[1],2) + Math.pow(variable.filt[0],2)) / 3\n\t}\n\n\tvariable.sineWave = variable.wave / Math.sqrt(variable.pwr)\n\n\t//variable.Z = variable.Z + 1\n\t//if(variable.Z === 40){\n\t//\tvariable.filt=[]\n\t//\tvariable.Z = 0\n\t//}\n\n\t//Functions\n\n\tfunction deg2rad(deg) {\n\t\treturn deg * Pi / 180\n\t}\n\n\n\t\t\t\n", + "project": "Foundations", + "id": "970fdef2-a876-4a3c-a673-4fb48c149e08", + "savedPayload": { + "position": { + "x": 16413.4458695646, + "y": 8618.006700412738 + }, + "targetPosition": { + "x": 16290.902086686217, + "y": 8806.707578200458 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 4, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "b5dddfbf-5556-456e-8e9b-bd669428d9a1", + "savedPayload": { + "position": { + "x": 16290.902086686217, + "y": 8806.707578200458 + }, + "targetPosition": { + "x": 16209.206231433964, + "y": 8932.508163392271 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "initialization": { + "type": "Procedure Initialization", + "name": "New Procedure Initialization", + "project": "Foundations", + "procedureJavascriptCode": { + "type": "Procedure Javascript Code", + "name": "New Procedure Javascript Code", + "code": "variable.x = []\nvariable.filt = []", + "project": "Foundations", + "id": "cc13c00c-f53d-4518-9c74-33d4dc645733", + "savedPayload": { + "position": { + "x": 16583.69230696693, + "y": 8952.134146983375 + }, + "targetPosition": { + "x": 16359.00066164715, + "y": 8940.358556828713 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 4, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "6a05b6f1-7121-4082-8778-9341068eaa3a", + "savedPayload": { + "position": { + "x": 16359.00066164715, + "y": 8940.358556828713 + }, + "targetPosition": { + "x": 16209.206231433964, + "y": 8932.508163392271 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "84b682f1-b513-4eb6-b032-5e691c938a2c", + "savedPayload": { + "position": { + "x": 16209.206231433964, + "y": 8932.508163392271 + }, + "targetPosition": { + "x": 15941.904274177454, + "y": 9068.705313314134 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "78c011f7-0afe-4a7e-bafe-e0749b40d6a7", + "savedPayload": { + "position": { + "x": 16881.244371477944, + "y": 9580.392179269977 }, "targetPosition": { "x": 17451.878281255034, @@ -21451,13 +24853,478 @@ }, "referenceParent": { "type": "Plotter Module", - "name": "OBV-Trend Span", - "id": "8547bbec-1854-4775-86ef-0b81e1a22aa7" + "name": "Better Sine Wave 36", + "id": "6ea00c08-f172-49e0-90ec-a717029f61e9" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 36", + "Plotter Module", + "Foundations", + "9e65c18a-33f0-41cc-99cf-3c3e7e5f522c" + ] + ] + } + }, + { + "type": "Product Definition", + "name": "Better Sine Wave 6", + "config": "{\n \"codeName\": \"BSV6\",\n \"singularVariableName\": \"BSV6\",\n \"pluralVariableName\": \"BSV6s\"\n}", + "project": "Foundations", + "datasets": [ + { + "type": "Dataset Definition", + "name": "Multi-Time-Frame-Market", + "config": "{\n \"codeName\": \"Multi-Time-Frame-Market\",\n \"type\": \"Market Files\",\n \"validTimeFrames\": [\n \"24-hs\",\n \"12-hs\",\n \"08-hs\",\n \"06-hs\",\n \"04-hs\",\n \"03-hs\",\n \"02-hs\",\n \"01-hs\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame\",\n \"fileName\": \"Data.json\"\n}", + "project": "Foundations", + "id": "9f178318-ef0b-44dc-a28c-a26b9b50beb2", + "savedPayload": { + "position": { + "x": 17099.20712987955, + "y": 9765.802375894946 + }, + "targetPosition": { + "x": 17275.54270556729, + "y": 9523.097277582461 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Dataset Definition", + "name": "Multi-Time-Frame-Daily", + "config": "{\n \"codeName\": \"Multi-Time-Frame-Daily\",\n \"type\": \"Daily Files\",\n \"validTimeFrames\": [\n \"45-min\",\n \"40-min\",\n \"30-min\",\n \"20-min\",\n \"15-min\",\n \"10-min\",\n \"05-min\",\n \"04-min\",\n \"03-min\",\n \"02-min\",\n \"01-min\"\n ],\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset/@TimeFrame/@Year/@Month/@Day\",\n \"fileName\": \"Data.json\",\n \"dataRange\": {\n \"filePath\": \"Project/@Project/@MineType/@Mine/@Bot/@Exchange/@BaseAsset-@QuotedAsset/Output/@Product/@Dataset\",\n \"fileName\": \"Data.Range.json\"\n }\n}", + "project": "Foundations", + "id": "8e6f71ba-5ca0-463b-9ed0-2fac74f55adf", + "savedPayload": { + "position": { + "x": 16990.225750678746, + "y": 9430.392179269977 + }, + "targetPosition": { + "x": 17275.54270556729, + "y": 9523.097277582461 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } } + ], + "record": { + "type": "Record Definition", + "name": "New Record Definition", + "project": "Foundations", + "properties": [ + { + "type": "Record Property", + "name": "Begin", + "config": "{\n \"codeName\": \"begin\",\n \"isString\": false,\n \"isCalculated\": false\n}", + "project": "Foundations", + "recordFormula": { + "type": "Record Formula", + "name": "New Record Formula", + "code": "record.current.begin", + "project": "Foundations", + "id": "aad29beb-3e8f-4723-9a08-5ab8c5a27bec", + "savedPayload": { + "position": { + "x": 15802.878281255034, + "y": 9268.802375894946 + }, + "targetPosition": { + "x": 15952.878281255034, + "y": 9268.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "07671550-37bd-453c-8ddf-3c0b8043431c", + "savedPayload": { + "position": { + "x": 15952.878281255034, + "y": 9268.802375894946 + }, + "targetPosition": { + "x": 16252.878281255034, + "y": 9268.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Record Property", + "name": "End", + "config": "{\n \"codeName\": \"end\",\n \"isString\": false,\n \"isCalculated\": false\n}", + "project": "Foundations", + "recordFormula": { + "type": "Record Formula", + "name": "New Record Formula", + "code": "record.current.end", + "project": "Foundations", + "id": "c5922238-b570-40a0-bb0f-a6ac929ef50f", + "savedPayload": { + "position": { + "x": 16252.878281255034, + "y": 8818.802375894946 + }, + "targetPosition": { + "x": 16252.878281255034, + "y": 8968.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "bf9b1be9-3cca-433f-99f8-33cee42a1437", + "savedPayload": { + "position": { + "x": 16252.878281255034, + "y": 8968.802375894946 + }, + "targetPosition": { + "x": 16252.878281255034, + "y": 9268.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Record Property", + "name": "Sine Wave 6", + "config": "{\n \"codeName\": \"bsv6\",\n \"isString\": false,\n \"isCalculated\": false\n}", + "project": "Foundations", + "recordFormula": { + "type": "Record Formula", + "name": "New Record Formula", + "code": "variable.sineWave", + "project": "Foundations", + "id": "1a2e9540-65b5-401a-8776-205cfd3b5573", + "savedPayload": { + "position": { + "x": 16702.878281255034, + "y": 9268.802375894946 + }, + "targetPosition": { + "x": 16552.878281255034, + "y": 9268.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "1a3d561f-35b3-4e90-896a-b9dbf841b7c0", + "savedPayload": { + "position": { + "x": 16552.878281255034, + "y": 9268.802375894946 + }, + "targetPosition": { + "x": 16252.878281255034, + "y": 9268.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "094ae795-ac2a-4da5-9ab1-cb45d9a8d86e", + "savedPayload": { + "position": { + "x": 17275.54270556729, + "y": 9223.097277582461 + }, + "targetPosition": { + "x": 17275.54270556729, + "y": 9523.097277582461 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "dataBuilding": { + "type": "Data Building Procedure", + "name": "New Data Building Procedure", + "project": "Foundations", + "loop": { + "type": "Procedure Loop", + "name": "New Procedure Loop", + "project": "Foundations", + "procedureJavascriptCode": { + "type": "Procedure Javascript Code", + "name": "New Procedure Javascript Code", + "code": "\tlet candle = record.current\n\tlet Pi = Math.PI\n\tlet D = 6\n\tlet lB = 6\n\n\tif(variable.Z === undefined){\n\t\tvariable.Z = 0\n\t}\n\n\tif(variable.previousHP === undefined){\n\t\t\tvariable.previousHP = 0\n\t}\n\n\tvariable.x.push(candle.close)\n\tif(variable.x.length > 2){\n\t\tvariable.x.splice(0,1)\n\t}\n\n\tvariable.angle = deg2rad(360) / D\n\tvariable.alpha1 = (1-Math.sin(variable.angle)) / (Math.cos(variable.angle))\n\tif(variable.x.length === 2){\n\t\tvariable.HP = 0.5 * (1 + variable.alpha1) * (variable.x[1] - variable.x[0]) + variable.alpha1 * variable.previousHP\n\n\t\tvariable.ang = Math.sqrt(2) * Pi/lB\n\t\tvariable.a1 = Math.exp(-variable.ang)\n\t\tvariable.b1 = 2 * variable.a1 * Math.cos(variable.ang)\n\t\tvariable.c2 = variable.b1\n\t\tvariable.c3 = -variable.a1 * variable.a1\n\t\tvariable.c1 = 1 - variable.c2 - variable.c3\n\t\tif(variable.filt.length < 2){\n\t\t\tvariable.filt.push(0)\n\t\t\tvariable.filt.push(0)\n\t\t}\n\t\tvariable.filt.push((variable.c1 * (variable.HP + variable.previousHP )) / 2 + (variable.c2 * variable.filt[1]) + (variable.c3 * variable.filt[0]))\n\t\tif(variable.filt.length > 3 ) {\n\t\t\tvariable.filt.splice(0,1)\n\t\t}\n\n\t\tvariable.previousHP = variable.HP\n\t}\n\n\tif(variable.x.length < 2 ) {\n\t\tvariable.wave = 0\n\t\tvariable.pwr = 1\t\n\t}\n\telse {\n\t\t\tvariable.wave = (variable.filt[2] + variable.filt[1] + variable.filt[0])/3\n\t\t\tvariable.pwr = (Math.pow(variable.filt[2],2) + Math.pow(variable.filt[1],2) + Math.pow(variable.filt[0],2)) / 3\n\t}\n\n\tvariable.sineWave = variable.wave / Math.sqrt(variable.pwr)\n\n\t//variable.Z = variable.Z + 1\n\t//if(variable.Z === 40){\n\t//\tvariable.filt=[]\n\t//\tvariable.Z = 0\n\t//}\n\n\t//Functions\n\n\tfunction deg2rad(deg) {\n\t\treturn deg * Pi / 180\n\t}\n\n\n\t\t\t\n", + "project": "Foundations", + "id": "f88f2a24-2fab-4cb5-9581-c7ce14c05913", + "savedPayload": { + "position": { + "x": 18171.688994425785, + "y": 8537.623363536963 + }, + "targetPosition": { + "x": 17870.580221564298, + "y": 8872.03853500179 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 4, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "a01b802d-640b-4bfa-87b6-86e0cee37be8", + "savedPayload": { + "position": { + "x": 17870.580221564298, + "y": 8872.03853500179 + }, + "targetPosition": { + "x": 17669.84103965664, + "y": 9094.981982645008 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "initialization": { + "type": "Procedure Initialization", + "name": "New Procedure Initialization", + "project": "Foundations", + "procedureJavascriptCode": { + "type": "Procedure Javascript Code", + "name": "New Procedure Javascript Code", + "code": "variable.x = []\nvariable.filt = []", + "project": "Foundations", + "id": "21c3529a-69a2-4cce-8896-3bc6fa5e3771", + "savedPayload": { + "position": { + "x": 18403.451740206994, + "y": 9250.915750758326 + }, + "targetPosition": { + "x": 17963.28531987678, + "y": 9157.355489890335 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 4, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "39892e8d-e594-4ae2-9874-eb629f4c7648", + "savedPayload": { + "position": { + "x": 17963.28531987678, + "y": 9157.355489890335 + }, + "targetPosition": { + "x": 17669.84103965664, + "y": 9094.981982645008 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "fdd70ef6-12d1-40ec-b296-cdec91e44795", + "savedPayload": { + "position": { + "x": 17560.859660455837, + "y": 9430.392179269977 + }, + "targetPosition": { + "x": 17275.54270556729, + "y": 9523.097277582461 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "cf841a24-e819-4773-be2d-03e3986f1a52", + "savedPayload": { + "position": { + "x": 17275.54270556729, + "y": 9523.097277582461 + }, + "targetPosition": { + "x": 17451.878281255034, + "y": 9765.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Plotter Module", + "name": "Better Sine Wave 6", + "id": "333fe67d-7192-42b5-8d34-453c5c7cfc56" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 6", + "Plotter Module", + "Foundations", + "3f2a9a23-2704-4b76-b386-27840b359521" + ] + ] } } ], - "id": "847429b9-6030-457a-91ea-4ed0f6be63da", + "id": "895e36f7-66c3-45b5-a562-d95f28d99fa0", "savedPayload": { "position": { "x": 17451.878281255034, @@ -21512,7 +25379,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.uptrend", "project": "Foundations", - "id": "10b00396-e519-4261-ae87-6d2e002aca0f", + "id": "e118a6cf-dcce-4806-9884-6e14a54fff9d", "savedPayload": { "position": { "x": 18363.827498364175, @@ -21535,7 +25402,7 @@ } } }, - "id": "48c35142-afa2-4180-b141-71c4f95a923f", + "id": "45430018-3332-40bd-80bc-3c453ea9342c", "savedPayload": { "position": { "x": 18026.790030384505, @@ -21567,7 +25434,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.uptrend", "project": "Foundations", - "id": "4bdbba03-eac1-4ea9-adc6-f6c7627b16fd", + "id": "7cec5054-d8c2-463d-a308-95b453c8482b", "savedPayload": { "position": { "x": 17931.65092834791, @@ -21590,7 +25457,7 @@ } } }, - "id": "6d581699-8b36-40ec-b33d-5032ad623322", + "id": "045752be-100f-467c-ac60-e8bf90b8d344", "savedPayload": { "position": { "x": 17810.701745376373, @@ -21622,7 +25489,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.downtrend", "project": "Foundations", - "id": "f2aaa81f-c164-45e0-8b98-f6882cfc3192", + "id": "a2b58911-7430-4664-9502-ad8a562fa320", "savedPayload": { "position": { "x": 17165.179038421382, @@ -21645,7 +25512,7 @@ } } }, - "id": "5a8474d5-1b09-46fb-a6ff-fb25c475b974", + "id": "b8eff775-1852-448f-becd-77224b11c27d", "savedPayload": { "position": { "x": 17427.46580041311, @@ -21677,7 +25544,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.downtrend", "project": "Foundations", - "id": "004c8b42-eb1d-49e1-a8be-1634cb34232b", + "id": "b6a5b8a8-e93d-46dd-a3a4-4f0ca7cb1060", "savedPayload": { "position": { "x": 17123.649929041676, @@ -21700,7 +25567,7 @@ } } }, - "id": "8d49c773-bafe-46ec-a901-f9f0f9786992", + "id": "1d0888ce-5baa-4007-a771-3cef025bb918", "savedPayload": { "position": { "x": 17406.701245723256, @@ -21724,7 +25591,7 @@ } } ], - "id": "3f3e7ee6-ae4d-4c2a-8acb-fb2cfeac5290", + "id": "9b71bfaa-9a38-422f-be44-751df973f408", "savedPayload": { "position": { "x": 17689.752562404836, @@ -21762,7 +25629,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}", "project": "Foundations", - "id": "17b5244a-6b0a-43aa-be39-4aa3a7d31853", + "id": "e32db740-9f93-48d1-aa68-5af58d3a4072", "savedPayload": { "position": { "x": 17649.544970339994, @@ -21796,7 +25663,7 @@ "name": "New Style", "config": "{\n \"opacity\": 0.0,\n \"lineWidth\": 0,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}", "project": "Foundations", - "id": "641c9302-3113-4a48-a66c-b1c9fab1fcb4", + "id": "e4f142e5-75b8-462a-99ab-fd02ec4b6c89", "savedPayload": { "position": { "x": 17273.11263365798, @@ -21819,7 +25686,7 @@ } } }, - "id": "abad2bd7-6ab0-4aa2-9242-2c15c9fda471", + "id": "8fd0373f-a657-423d-b58f-f439c9aa465a", "savedPayload": { "position": { "x": 17490.44594457302, @@ -21843,7 +25710,7 @@ } } ], - "id": "bc846441-beae-4afd-93b0-c97c95b2617b", + "id": "5314f1bf-157b-4890-a175-80682dda1e6e", "savedPayload": { "position": { "x": 17707.77925548806, @@ -21871,7 +25738,7 @@ "type": "Polygon Vertex", "name": " UP Trend Begin", "project": "Foundations", - "id": "5252ddef-5740-4d68-9489-e189ae1a0169", + "id": "114654ba-99fa-4abc-8018-eca0d46fc4fe", "savedPayload": { "position": { "x": 17416.878281255034, @@ -21895,15 +25762,53 @@ "referenceParent": { "type": "Point", "name": "UP Trend Begin", - "id": "48c35142-afa2-4180-b141-71c4f95a923f" - } + "id": "45430018-3332-40bd-80bc-3c453ea9342c" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 9-2", + "Plotter", + "Foundations", + "9f1e3417-fa87-4b2c-a748-c90994951ae4" + ], + [ + "Super Trend 9-2", + "Plotter Module", + "Foundations", + "1f661454-2ffd-45dc-a364-7bef1e2f1fd0" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "10e0410d-6c84-41d7-b7c9-8ebedcbde8ff" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "7ec1dcd4-58c5-492e-8505-f32d11ffc69a" + ], + [ + "UP Trend Begin", + "Point", + "Foundations", + "0366be7e-4be0-443a-9483-06aa263aeedb" + ] + ] } }, { "type": "Polygon Vertex", "name": " UP Trend End", "project": "Foundations", - "id": "4607fbd6-6da2-461a-a17f-49ae3694bf42", + "id": "f8b3c466-3400-45cc-b3ac-1c2a65c83308", "savedPayload": { "position": { "x": 17548.68022972109, @@ -21927,12 +25832,50 @@ "referenceParent": { "type": "Point", "name": "UP Trend End", - "id": "6d581699-8b36-40ec-b33d-5032ad623322" - } + "id": "045752be-100f-467c-ac60-e8bf90b8d344" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 9-2", + "Plotter", + "Foundations", + "9f1e3417-fa87-4b2c-a748-c90994951ae4" + ], + [ + "Super Trend 9-2", + "Plotter Module", + "Foundations", + "1f661454-2ffd-45dc-a364-7bef1e2f1fd0" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "10e0410d-6c84-41d7-b7c9-8ebedcbde8ff" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "7ec1dcd4-58c5-492e-8505-f32d11ffc69a" + ], + [ + "UP Trend End", + "Point", + "Foundations", + "dac13c82-c86f-45ab-9930-2fb19580f65c" + ] + ] } } ], - "id": "56391c9b-54f7-4e4c-b760-357d989d8f2c", + "id": "c3227a7b-e3db-44ff-b310-99cba1283cf5", "savedPayload": { "position": { "x": 17279.88827029454, @@ -21968,7 +25911,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "51c198f8-332f-4aae-93ba-a3d5f85bfa79", + "id": "0eb6cbf1-c146-4478-8575-eb9f15f2a4fb", "savedPayload": { "position": { "x": 16874.955485103914, @@ -22002,7 +25945,7 @@ "name": "New Style", "config": "{\n \"opacity\": 0,\n \"lineWidth\": 0,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RED\"\n}", "project": "Foundations", - "id": "b18cfab2-24e3-4264-983a-9fa966598df4", + "id": "f338b0e2-6e22-4241-9fd9-a6e83ed957ac", "savedPayload": { "position": { "x": 16723.658374175553, @@ -22025,7 +25968,7 @@ } } }, - "id": "81e8e150-7490-44bf-8f18-5b5b7a5bc13a", + "id": "b0c041a5-0d0e-4326-b487-3c635c7e3be5", "savedPayload": { "position": { "x": 16962.306912826014, @@ -22049,7 +25992,7 @@ } } ], - "id": "00bbe53b-e69f-4a55-bdde-2bc8e27ec5cc", + "id": "912f1cf5-6db0-4f00-be78-7d5f9d9fa0b9", "savedPayload": { "position": { "x": 17200.955451476475, @@ -22077,7 +26020,7 @@ "type": "Polygon Vertex", "name": " Down Trend Begin", "project": "Foundations", - "id": "63247aac-8e38-4e4d-8fc4-209a4982eec2", + "id": "d0a3b5ae-3a73-431f-9bfa-7ef29e2d8697", "savedPayload": { "position": { "x": 17189.455417849036, @@ -22101,15 +26044,53 @@ "referenceParent": { "type": "Point", "name": "Down Trend Begin", - "id": "5a8474d5-1b09-46fb-a6ff-fb25c475b974" - } + "id": "b8eff775-1852-448f-becd-77224b11c27d" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 9-2", + "Plotter", + "Foundations", + "9f1e3417-fa87-4b2c-a748-c90994951ae4" + ], + [ + "Super Trend 9-2", + "Plotter Module", + "Foundations", + "1f661454-2ffd-45dc-a364-7bef1e2f1fd0" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "10e0410d-6c84-41d7-b7c9-8ebedcbde8ff" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "7ec1dcd4-58c5-492e-8505-f32d11ffc69a" + ], + [ + "Down Trend Begin", + "Point", + "Foundations", + "eee6509c-f7f1-4120-abe5-b97e87281449" + ] + ] } }, { "type": "Polygon Vertex", "name": " Down Trend End", "project": "Foundations", - "id": "6a1f0ae7-a52f-44db-a831-9c0e7ed9f3d6", + "id": "1c6e93a6-0b0d-4139-9ab0-b404f7961858", "savedPayload": { "position": { "x": 17701.658273293237, @@ -22133,12 +26114,50 @@ "referenceParent": { "type": "Point", "name": "Down Trend End", - "id": "8d49c773-bafe-46ec-a901-f9f0f9786992" - } + "id": "1d0888ce-5baa-4007-a771-3cef025bb918" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 9-2", + "Plotter", + "Foundations", + "9f1e3417-fa87-4b2c-a748-c90994951ae4" + ], + [ + "Super Trend 9-2", + "Plotter Module", + "Foundations", + "1f661454-2ffd-45dc-a364-7bef1e2f1fd0" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "10e0410d-6c84-41d7-b7c9-8ebedcbde8ff" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "7ec1dcd4-58c5-492e-8505-f32d11ffc69a" + ], + [ + "Down Trend End", + "Point", + "Foundations", + "80dcbf18-2757-4826-b320-b4026d2a20a1" + ] + ] } } ], - "id": "01786090-86ea-4016-8d99-d2aceefe9509", + "id": "33a2b44f-e276-4830-a9fa-ef79848c5036", "savedPayload": { "position": { "x": 17526.955417849036, @@ -22164,7 +26183,7 @@ ], "images": [], "texts": [], - "id": "cd16671e-04dc-4ff0-b38c-56ff9513b88c", + "id": "9977d385-5f77-4144-974c-60d7d3d3531b", "savedPayload": { "position": { "x": 17864.455417849036, @@ -22204,7 +26223,7 @@ "name": "Up Trend", "code": "record.uptrend", "project": "Foundations", - "id": "94a91725-994d-434b-8ba3-bcb9f44663d0", + "id": "a7d23190-1832-46f2-a550-9bf56ea80025", "savedPayload": { "position": { "x": 17666.040220007686, @@ -22232,7 +26251,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "6d25bdd1-c14a-4281-95ea-6be3a5c59a63", + "id": "9cb59e01-c3a8-4b3f-85ef-be2998f8ca5f", "savedPayload": { "position": { "x": 17768.72798197117, @@ -22255,7 +26274,7 @@ } } }, - "id": "9d5b5b3a-53d1-4a78-81e8-48ecf3e36a33", + "id": "73a43010-18df-4951-8e0d-75fa7d90c3e9", "savedPayload": { "position": { "x": 17981.12361395049, @@ -22288,7 +26307,7 @@ "name": "New Data Formula", "code": "record.downtrend", "project": "Foundations", - "id": "bbbfa742-3801-48d2-840b-2bd7694ce7d3", + "id": "7e4aaf87-cc94-412f-b889-236ce23fab8c", "savedPayload": { "position": { "x": 17966.05793963292, @@ -22316,7 +26335,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "48fa43c8-086e-4daf-a7c4-f4e1345a06dd", + "id": "cfd3c8fe-f425-4199-8343-2e98b7e6e303", "savedPayload": { "position": { "x": 18132.210228718497, @@ -22339,7 +26358,7 @@ } } }, - "id": "ebab7245-8617-4487-847b-98ec338bf455", + "id": "a345f2ce-08c1-40cd-a7de-13ec3c6e4d86", "savedPayload": { "position": { "x": 18149.87361395049, @@ -22372,7 +26391,7 @@ "name": "New Data Formula", "code": "record.trend", "project": "Foundations", - "id": "d920fc63-0da2-4ead-a695-039414d03b2b", + "id": "e79ef35e-f711-4131-b86d-e3063e21c3c7", "savedPayload": { "position": { "x": 18376.123470385573, @@ -22400,7 +26419,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "eea5d252-8284-4aa7-9a45-5034cf7b0d0a", + "id": "71887874-6d38-4b36-9b83-6a693975eb6f", "savedPayload": { "position": { "x": 18542.27575947115, @@ -22423,7 +26442,7 @@ } } }, - "id": "a44e5544-15ef-40a4-ba25-18b4f3cd7afc", + "id": "b1fa3f03-9d55-4b4d-b1a3-e147b5960cbb", "savedPayload": { "position": { "x": 18358.46008515358, @@ -22456,7 +26475,7 @@ "name": "New Data Formula", "code": "record.atrNPeriod", "project": "Foundations", - "id": "c6468ebf-f70c-4475-891d-467197661c92", + "id": "67094d5a-37fc-4af6-8d84-8f268de323a6", "savedPayload": { "position": { "x": 18595.84689367262, @@ -22484,7 +26503,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "4a20c4f8-9b85-4ade-ad6f-0ecf4be16a1f", + "id": "6026a7c5-8c6d-4778-827f-39c17d89fb8c", "savedPayload": { "position": { "x": 18695.035654996977, @@ -22507,7 +26526,7 @@ } } }, - "id": "f009eb5f-8417-4c59-8968-4cd570cc0daa", + "id": "867a0d6a-b62f-421b-b6ed-ec43f668887d", "savedPayload": { "position": { "x": 18527.21008515358, @@ -22531,7 +26550,7 @@ } } ], - "id": "90cabd0c-0fa3-42ae-ac50-e5a431d086cb", + "id": "2c6156b8-9462-4a85-8045-252715f1f0f5", "savedPayload": { "position": { "x": 18254.166849552035, @@ -22555,7 +26574,7 @@ } } ], - "id": "d5867a0c-1cda-4217-b5a7-ef499ea74898", + "id": "8127debf-f6d5-4694-a17d-78ed96f75f31", "savedPayload": { "position": { "x": 17809.16526768051, @@ -22579,11 +26598,11 @@ } } ], - "id": "c8b5a968-0278-492d-9751-7eaebfbada11", + "id": "62b1f8b9-1b98-4499-b92e-e8a57d7b9386", "savedPayload": { "position": { - "x": 17490.878281255034, - "y": 9619.994754759615 + "x": 17468.878281255034, + "y": 9687.994754759615 }, "targetPosition": { "x": 18051.878281255034, @@ -22632,7 +26651,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.uptrend", "project": "Foundations", - "id": "5b37ccde-b3d9-4fba-b6cd-b7c23b733303", + "id": "cbf04a5d-1f7c-4f6e-a0b7-f98d7f16a549", "savedPayload": { "position": { "x": 18011.633165605854, @@ -22655,7 +26674,7 @@ } } }, - "id": "f4b1a7c9-e2e2-48c9-8bc3-0552443edff5", + "id": "f9073d7e-f4f0-4130-a03b-be7a3cf4a76b", "savedPayload": { "position": { "x": 17811.15669766347, @@ -22687,7 +26706,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.uptrend", "project": "Foundations", - "id": "51de25c4-e4b8-4512-9be1-35b0d7cbf347", + "id": "5dc306f3-3d3c-4891-ba44-24c053cd0269", "savedPayload": { "position": { "x": 17540.284720452983, @@ -22710,7 +26729,7 @@ } } }, - "id": "a42f1fba-eec8-465e-b568-c14025b3d4b1", + "id": "8648e1b2-f5fa-4e76-8c1b-81225b1455f4", "savedPayload": { "position": { "x": 17575.482475087036, @@ -22742,7 +26761,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.downtrend", "project": "Foundations", - "id": "7ddbb3e1-9f16-4b16-b353-3c2efcc4e7b7", + "id": "177681c8-164a-4ac1-ae45-6c24a02bea0b", "savedPayload": { "position": { "x": 17166.22047645328, @@ -22765,7 +26784,7 @@ } } }, - "id": "6289c14d-8ba3-458d-850e-962c943f7e6d", + "id": "2e9beecd-42b8-4a67-80f5-c97d130ba0c8", "savedPayload": { "position": { "x": 17388.450353087184, @@ -22797,7 +26816,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.downtrend", "project": "Foundations", - "id": "09417ae6-7d62-4907-9efc-4e93d638fc87", + "id": "168a5470-e558-4e32-883b-98734b911618", "savedPayload": { "position": { "x": 17406.384504838294, @@ -22820,7 +26839,7 @@ } } }, - "id": "5a61cd20-559c-4039-b1f7-34e943da7ec9", + "id": "d9991167-3424-4adf-93d0-9eb702d13120", "savedPayload": { "position": { "x": 17508.53236727969, @@ -22844,7 +26863,7 @@ } } ], - "id": "a9a62047-665a-420c-a634-5e0cfda03baf", + "id": "31aa9898-e54c-475f-a7e2-a8df02f1687b", "savedPayload": { "position": { "x": 17610.68022972109, @@ -22882,7 +26901,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.GREEN\"\n }\n}", "project": "Foundations", - "id": "2871493d-8163-44e0-81c8-f40851af120c", + "id": "b671eb1e-5d5f-458e-8936-4fe48262418f", "savedPayload": { "position": { "x": 17649.544970339994, @@ -22916,7 +26935,7 @@ "name": "New Style", "config": "{\n \"opacity\": 0.0,\n \"lineWidth\": 0,\n \"lineDash\": [0,0],\n \"paletteColor\": \"UI_COLOR.RED\"\n}", "project": "Foundations", - "id": "b2e661c4-7e54-4a1f-be2c-cac4b787aef5", + "id": "8ac2ceba-f021-4e3a-853c-1f10d5d955df", "savedPayload": { "position": { "x": 17273.11263365798, @@ -22939,7 +26958,7 @@ } } }, - "id": "c772bc21-7efd-4fc8-8d49-ca1c41e893d9", + "id": "c3133686-3b8e-4f27-a0af-7782800515bf", "savedPayload": { "position": { "x": 17490.44594457302, @@ -22963,7 +26982,7 @@ } } ], - "id": "16297e0e-01bf-43c9-a2d3-1ad243890d0a", + "id": "121166dd-a4fd-49d2-ae23-90c4cc7fdecc", "savedPayload": { "position": { "x": 18303.77925548806, @@ -22991,7 +27010,7 @@ "type": "Polygon Vertex", "name": " UP Trend Begin", "project": "Foundations", - "id": "cddb48ff-d599-4976-ba5d-9e0e25538d70", + "id": "26772b09-e7b6-4336-9bb1-9f672491b2d2", "savedPayload": { "position": { "x": 18012.878281255034, @@ -23015,15 +27034,53 @@ "referenceParent": { "type": "Point", "name": "UP Trend Begin", - "id": "f4b1a7c9-e2e2-48c9-8bc3-0552443edff5" - } + "id": "f9073d7e-f4f0-4130-a03b-be7a3cf4a76b" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 14-3", + "Plotter", + "Foundations", + "d21fe864-908d-4327-9b97-21ef5064ef02" + ], + [ + "Super Trend 14-3", + "Plotter Module", + "Foundations", + "f6b5038b-e6a9-4cc9-9a20-1a195b881659" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "de949ad0-fc29-4b64-bc3f-644dddb84fed" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "30480082-1124-423c-94e7-e0f295e6ff73" + ], + [ + "UP Trend Begin", + "Point", + "Foundations", + "2a5a894b-8186-4278-aa12-6cfcfc30098e" + ] + ] } }, { "type": "Polygon Vertex", "name": " UP Trend End", "project": "Foundations", - "id": "baa4f856-3ab9-4ae4-985b-845a2db5bba8", + "id": "1070726b-6a53-4c13-8192-426be278820c", "savedPayload": { "position": { "x": 18144.68022972109, @@ -23047,12 +27104,50 @@ "referenceParent": { "type": "Point", "name": "UP Trend End", - "id": "a42f1fba-eec8-465e-b568-c14025b3d4b1" - } + "id": "8648e1b2-f5fa-4e76-8c1b-81225b1455f4" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 14-3", + "Plotter", + "Foundations", + "d21fe864-908d-4327-9b97-21ef5064ef02" + ], + [ + "Super Trend 14-3", + "Plotter Module", + "Foundations", + "f6b5038b-e6a9-4cc9-9a20-1a195b881659" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "de949ad0-fc29-4b64-bc3f-644dddb84fed" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "30480082-1124-423c-94e7-e0f295e6ff73" + ], + [ + "UP Trend End", + "Point", + "Foundations", + "08862366-eebb-468b-b0bc-011e49dcc005" + ] + ] } } ], - "id": "f86c2acd-b9b1-4c48-ab64-4ccde5953316", + "id": "3214823a-aef8-49a4-95fd-b9c96b922b61", "savedPayload": { "position": { "x": 17866.878281255034, @@ -23088,7 +27183,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "3ccf2a6a-481b-485e-a8d6-78997c2d8916", + "id": "047d51e2-6de5-4b43-9460-ebd483f9535b", "savedPayload": { "position": { "x": 17940.44594457302, @@ -23122,7 +27217,7 @@ "name": "New Style", "config": "{\n \"opacity\": 0,\n \"lineWidth\": 0,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RED\"\n}", "project": "Foundations", - "id": "fffa808a-4a50-4571-9a14-3951e3b93158", + "id": "5aeb7237-0dd9-464a-af23-3d9132e86e3e", "savedPayload": { "position": { "x": 18041.310685191926, @@ -23145,7 +27240,7 @@ } } }, - "id": "9296d2a3-cdc4-44a9-9e9b-0c206a62f98a", + "id": "7252f277-9642-4b0b-b9c7-a4faa8fb682f", "savedPayload": { "position": { "x": 18099.544970339994, @@ -23169,7 +27264,7 @@ } } ], - "id": "096d5e7b-64e8-4e5b-a783-30341a910c36", + "id": "1a173280-e10b-45e3-bb31-c2a3095f06a1", "savedPayload": { "position": { "x": 18157.77925548806, @@ -23197,7 +27292,7 @@ "type": "Polygon Vertex", "name": " Down Trend Begin", "project": "Foundations", - "id": "27b2e510-4d21-4662-ba5d-e519929c7145", + "id": "60bade3a-03b0-4096-b750-2f4015827378", "savedPayload": { "position": { "x": 18316.878281255034, @@ -23221,15 +27316,53 @@ "referenceParent": { "type": "Point", "name": "Down Trend Begin", - "id": "6289c14d-8ba3-458d-850e-962c943f7e6d" - } + "id": "2e9beecd-42b8-4a67-80f5-c97d130ba0c8" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 14-3", + "Plotter", + "Foundations", + "d21fe864-908d-4327-9b97-21ef5064ef02" + ], + [ + "Super Trend 14-3", + "Plotter Module", + "Foundations", + "f6b5038b-e6a9-4cc9-9a20-1a195b881659" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "de949ad0-fc29-4b64-bc3f-644dddb84fed" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "30480082-1124-423c-94e7-e0f295e6ff73" + ], + [ + "Down Trend Begin", + "Point", + "Foundations", + "c915b422-82f2-4f98-8d83-92cfd343f729" + ] + ] } }, { "type": "Polygon Vertex", "name": " Down Trend End", "project": "Foundations", - "id": "0fa6c27c-640f-42f5-82fd-96988008b4e1", + "id": "31e0adfa-eac0-4d93-b74d-373a67817563", "savedPayload": { "position": { "x": 18635.07633278898, @@ -23253,12 +27386,50 @@ "referenceParent": { "type": "Point", "name": "Down Trend End", - "id": "5a61cd20-559c-4039-b1f7-34e943da7ec9" - } + "id": "d9991167-3424-4adf-93d0-9eb702d13120" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Super Trend 14-3", + "Plotter", + "Foundations", + "d21fe864-908d-4327-9b97-21ef5064ef02" + ], + [ + "Super Trend 14-3", + "Plotter Module", + "Foundations", + "f6b5038b-e6a9-4cc9-9a20-1a195b881659" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "de949ad0-fc29-4b64-bc3f-644dddb84fed" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "30480082-1124-423c-94e7-e0f295e6ff73" + ], + [ + "Down Trend End", + "Point", + "Foundations", + "f8515f04-127c-488a-95eb-a55135df9123" + ] + ] } } ], - "id": "5688fbaa-1a64-4eea-a45c-ae498dc9e1c6", + "id": "c7c2d134-f713-40c3-a717-7bd27f44ae59", "savedPayload": { "position": { "x": 18316.878281255034, @@ -23284,7 +27455,7 @@ ], "images": [], "texts": [], - "id": "5bf73cca-0319-42dd-8b73-6914ed0abf47", + "id": "9f5202a8-488e-4f7c-a6de-18f06cfd9a8a", "savedPayload": { "position": { "x": 18316.878281255034, @@ -23324,7 +27495,7 @@ "name": "Up Trend", "code": "record.uptrend", "project": "Foundations", - "id": "272b178b-71b9-48ae-9088-f15452ebf172", + "id": "479b2213-1881-4c1e-a9db-20e638100f2b", "savedPayload": { "position": { "x": 18608.765448576763, @@ -23352,7 +27523,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREEN\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "d58978d7-517d-451a-bf01-c15385c40aed", + "id": "444aa454-2982-442d-a901-783e6cdb4650", "savedPayload": { "position": { "x": 18715.164781928925, @@ -23375,7 +27546,7 @@ } } }, - "id": "1e3bff29-6436-4814-b595-692d73b18336", + "id": "aabd25f7-c0ed-47fc-a40b-40437036416d", "savedPayload": { "position": { "x": 18750.362536562978, @@ -23408,7 +27579,7 @@ "name": "New Data Formula", "code": "record.downtrend", "project": "Foundations", - "id": "9c16eac3-c0c3-43f3-af29-2c6e4ee3948f", + "id": "3dbee3c9-19ef-448b-b684-59f1d64f40b1", "savedPayload": { "position": { "x": 18876.882821534367, @@ -23436,7 +27607,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "7ba7c073-3a2e-4b14-a552-7eb368e2516e", + "id": "0071ef4d-9f74-4103-a24c-be1fc40f01c1", "savedPayload": { "position": { "x": 18990.806274130427, @@ -23459,7 +27630,7 @@ } } }, - "id": "db4e4209-b5cd-4164-a648-70e484a01a01", + "id": "eae4dfb7-e190-4a35-8bc1-ebc07eb009c4", "savedPayload": { "position": { "x": 18888.65841168903, @@ -23492,7 +27663,7 @@ "name": "New Data Formula", "code": "record.trend", "project": "Foundations", - "id": "3ef8d91d-4e45-4aca-90a2-2efc1b6c2c85", + "id": "c259ce18-4f8d-4279-b036-ae0e3ff93d9b", "savedPayload": { "position": { "x": 19131.629649865827, @@ -23520,7 +27691,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "775aa474-6bd5-4afa-b533-af2a40990380", + "id": "c8594bd1-2e58-49a4-8348-c1571ba36810", "savedPayload": { "position": { "x": 19209.56233492983, @@ -23543,7 +27714,7 @@ } } }, - "id": "0dca5594-ed56-4591-a764-4202e19fb98b", + "id": "88bbcadf-33bb-40e3-90f5-1bb248612da0", "savedPayload": { "position": { "x": 19009.085866987447, @@ -23576,7 +27747,7 @@ "name": "New Data Formula", "code": "record.atrNPeriod", "project": "Foundations", - "id": "81840eb5-b85f-4c07-937d-178c2041005e", + "id": "1c48f78f-3ef0-41b1-ac8c-be054f86beb1", "savedPayload": { "position": { "x": 19156.660119580076, @@ -23604,7 +27775,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "6cb94690-da7f-4d63-9998-642f8673cd8a", + "id": "f5fbfcec-c57a-44d0-881e-b442fccbf306", "savedPayload": { "position": { "x": 19168.419571697686, @@ -23627,7 +27798,7 @@ } } }, - "id": "7fd6dfe4-1ffa-46bb-a6c5-f822f2e892db", + "id": "52e93f9f-df81-46d4-ac8f-8812071f0530", "savedPayload": { "position": { "x": 19065.645707712894, @@ -23651,7 +27822,7 @@ } } ], - "id": "422d568d-f4ca-45e8-8f73-ac1a7eb79f53", + "id": "7dc1a5da-eeaf-4c2f-b033-0a09aaebc7ea", "savedPayload": { "position": { "x": 18841.878281255034, @@ -23675,7 +27846,7 @@ } } ], - "id": "3378a290-da71-4912-9268-1e3777e2d127", + "id": "fd5db9c8-574f-4629-a9a3-de70b1f92879", "savedPayload": { "position": { "x": 18616.878281255034, @@ -23699,11 +27870,11 @@ } } ], - "id": "069f1ccd-f790-43a6-b5c1-65dbaf6b2bd4", + "id": "718ee9da-c93e-46ae-8678-6a92c14e3d22", "savedPayload": { "position": { - "x": 17511.296960513584, - "y": 9505.472132424411 + "x": 17520.60466586311, + "y": 9486.968472668685 }, "targetPosition": { "x": 18051.878281255034, @@ -23752,7 +27923,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.FastTrend", "project": "Foundations", - "id": "2ba7d165-5d93-4077-9c0e-c0c93db7b8f1", + "id": "2470fd0b-3045-4065-86a3-c33a9f21b94f", "savedPayload": { "position": { "x": 18053.454819837556, @@ -23775,7 +27946,7 @@ } } }, - "id": "47b8515d-9226-434b-a249-3cb033ba0359", + "id": "9b643dc2-4dae-4f2a-b4e1-701fe72e99c0", "savedPayload": { "position": { "x": 17841.322785481592, @@ -23807,7 +27978,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.FastTrend", "project": "Foundations", - "id": "7d7e9e1a-f86f-4f90-b165-00612a83d5fc", + "id": "1133641b-e21a-4553-805a-eebc6a45ffeb", "savedPayload": { "position": { "x": 17545.635255352187, @@ -23830,7 +28001,7 @@ } } }, - "id": "8b331c71-c231-4aea-8139-1614af7b528e", + "id": "eb0676f9-35f5-48d0-891c-99a7e83c5049", "savedPayload": { "position": { "x": 17835.413003238908, @@ -23854,7 +28025,7 @@ } } ], - "id": "d5304902-239c-4b54-b7ec-efcb9cb01e6d", + "id": "19ff14eb-0d0b-4be3-8b69-98d6f0efa1a7", "savedPayload": { "position": { "x": 18125.19075112563, @@ -23892,7 +28063,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "914b7f49-463f-4939-aef5-f6ff701e9989", + "id": "3445aaa4-5b41-496f-9cb8-bb7bf432a119", "savedPayload": { "position": { "x": 17276.662613701774, @@ -23926,7 +28097,7 @@ "name": "New Style", "config": "{\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_RED\"\n}", "project": "Foundations", - "id": "63e31e9a-efa5-4417-9aaa-f1c5559a6d7e", + "id": "c59fbbec-fa45-42ae-8930-98884b8aa162", "savedPayload": { "position": { "x": 17354.30832723253, @@ -23949,7 +28120,7 @@ } } }, - "id": "0d2ca608-7824-4129-beda-a8109d854c15", + "id": "23a47dd1-16ab-4a56-b623-75742e41a8f8", "savedPayload": { "position": { "x": 17644.086075119252, @@ -23973,7 +28144,7 @@ } } ], - "id": "30d7a670-2d85-4dde-9845-1cf3512e3c50", + "id": "9c62acf3-1a96-469e-9e82-89ed698cb076", "savedPayload": { "position": { "x": 17778.57239594446, @@ -24001,7 +28172,7 @@ "type": "Polygon Vertex", "name": " FastTrend End", "project": "Foundations", - "id": "33a36d88-dd20-419a-83c9-d14dbd8658a1", + "id": "a6b1b3c4-b0a4-4542-b602-b76bd4590f49", "savedPayload": { "position": { "x": 17778.57239594446, @@ -24025,15 +28196,53 @@ "referenceParent": { "type": "Point", "name": "FastTrend End", - "id": "8b331c71-c231-4aea-8139-1614af7b528e" - } + "id": "eb0676f9-35f5-48d0-891c-99a7e83c5049" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend", + "Plotter", + "Foundations", + "7efb235b-f978-450c-8717-b2161c63b677" + ], + [ + "FastTrend", + "Plotter Module", + "Foundations", + "37a95c11-40eb-4919-ad1a-64df4bf8555f" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "80aaed57-9f3a-4c73-8659-cb07b43c35f4" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f8ff9f38-51e0-485b-8337-56f5a93a3261" + ], + [ + "FastTrend End", + "Point", + "Foundations", + "0b0a4610-668c-499c-add3-f65aeabea951" + ] + ] } }, { "type": "Polygon Vertex", "name": " FastTrend Begin", "project": "Foundations", - "id": "e64e29ad-ccf2-401a-80c7-e106130807db", + "id": "d14e7e0a-f613-4ad6-9881-76c4536f054a", "savedPayload": { "position": { "x": 18202.836464656386, @@ -24057,12 +28266,50 @@ "referenceParent": { "type": "Point", "name": "FastTrend Begin", - "id": "47b8515d-9226-434b-a249-3cb033ba0359" - } + "id": "9b643dc2-4dae-4f2a-b4e1-701fe72e99c0" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend", + "Plotter", + "Foundations", + "7efb235b-f978-450c-8717-b2161c63b677" + ], + [ + "FastTrend", + "Plotter Module", + "Foundations", + "37a95c11-40eb-4919-ad1a-64df4bf8555f" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "80aaed57-9f3a-4c73-8659-cb07b43c35f4" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f8ff9f38-51e0-485b-8337-56f5a93a3261" + ], + [ + "FastTrend Begin", + "Point", + "Foundations", + "f327196d-015e-4e62-8b3d-9eac760bfac2" + ] + ] } } ], - "id": "baef3bb2-4342-4276-b448-38efa9148110", + "id": "a99d56a3-6a3f-4ccc-b1e9-f21eb2b36a2c", "savedPayload": { "position": { "x": 17990.704430300422, @@ -24088,7 +28335,7 @@ ], "images": [], "texts": [], - "id": "d0e609c9-681f-422d-9100-de8edf97b646", + "id": "dd19f278-dee3-4077-8361-f8a2468c05f1", "savedPayload": { "position": { "x": 18202.836464656386, @@ -24128,7 +28375,7 @@ "name": "New Data Formula", "code": "record.NegativeDisorder", "project": "Foundations", - "id": "5af5ac9e-d3e4-479f-ae0f-c772325d0c97", + "id": "b468d4c1-966e-4a49-85ec-d320e862652c", "savedPayload": { "position": { "x": 18134.47391572563, @@ -24156,7 +28403,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "3cddd3e2-67e4-4a46-b48a-eb6d1d56047a", + "id": "66031643-9bdd-4f30-8eed-8ac4db8d9f17", "savedPayload": { "position": { "x": 18107.279355142986, @@ -24179,7 +28426,7 @@ } } }, - "id": "d0fcd44e-fff0-48ab-b175-90961482fa45", + "id": "7c14d8b9-0bf4-47c5-a2f0-4d130c0277f6", "savedPayload": { "position": { "x": 18270.671065647493, @@ -24212,7 +28459,7 @@ "name": "New Data Formula", "code": "record.PositiveDisorder", "project": "Foundations", - "id": "e892ca45-4843-431f-8055-3ea3353758af", + "id": "8b187bd4-7137-484b-a986-0bcbf6f9eacf", "savedPayload": { "position": { "x": 18166.443039031732, @@ -24240,7 +28487,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "d37e4f4e-5a6c-4207-a813-8b851d94992a", + "id": "c951d644-1b74-47cb-b1bf-85f842ad8e22", "savedPayload": { "position": { "x": 18651.545658525225, @@ -24263,7 +28510,7 @@ } } }, - "id": "72af18c5-a56e-4746-8ad5-b9cfc99b3383", + "id": "8f0baa70-2708-4de7-b2c8-78498bc73057", "savedPayload": { "position": { "x": 18462.749541210273, @@ -24296,7 +28543,7 @@ "name": "New Data Formula", "code": "record.FastTrend", "project": "Foundations", - "id": "84f236d0-e043-43fb-9238-63268dda260c", + "id": "53a7b9bb-2e33-4a4d-aab3-ae69dc89ee65", "savedPayload": { "position": { "x": 18756.473374998885, @@ -24324,7 +28571,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "67a31065-1c37-4d54-82b1-4c66a51c132b", + "id": "cbfd0e1f-6853-4f41-acbc-a93b4a400d91", "savedPayload": { "position": { "x": 19083.477842460114, @@ -24347,7 +28594,7 @@ } } }, - "id": "5ad74fac-7fdc-49a8-bfb1-b0c05f0ce731", + "id": "daa51214-09eb-4361-a3a7-0084f512a0be", "savedPayload": { "position": { "x": 18803.403714510954, @@ -24380,7 +28627,7 @@ "name": "New Data Formula", "code": "record.intertrend", "project": "Foundations", - "id": "ea372c43-6673-4aa1-a4a2-18458d703bd8", + "id": "57e0be7c-9295-41a1-8b5a-6bfde728beef", "savedPayload": { "position": { "x": 19089.163053714, @@ -24408,7 +28655,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.BLACK\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "7f57e1f5-9169-4b5b-9a01-7ce4d08f4d6e", + "id": "1a79bd13-2295-4a16-a862-46c3b119325b", "savedPayload": { "position": { "x": 18806.160309584608, @@ -24431,7 +28678,7 @@ } } }, - "id": "9d30a2ab-5ee7-4899-b69a-0970104ebcec", + "id": "716e5de8-5420-4d91-bdd5-99c99a79347f", "savedPayload": { "position": { "x": 18821.86109645749, @@ -24455,7 +28702,7 @@ } } ], - "id": "5629b398-df5d-4bbd-8799-2078bfe41029", + "id": "3ea2c14e-1901-488c-aab0-b22709cb8520", "savedPayload": { "position": { "x": 18570.259926073864, @@ -24479,7 +28726,7 @@ } } ], - "id": "d2e36ecc-6028-481a-b3d1-247a0684b1a4", + "id": "69f63f46-442b-4fad-bd0d-0c3c659cfa8d", "savedPayload": { "position": { "x": 18492.614212543107, @@ -24503,1389 +28750,11 @@ } } ], - "id": "a3cc0695-90e7-4ad8-8c20-c0e9ef534463", + "id": "63316746-b6f5-41d1-b335-c9986e1cff7b", "savedPayload": { "position": { - "x": 17582.779391774216, - "y": 9391.708494779705 - }, - "targetPosition": { - "x": 18051.878281255034, - "y": 9765.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Plotter", - "name": "Volume Energy", - "config": "{\n \"codeName\": \"VolumeEnergy\"\n}", - "project": "Foundations", - "modules": [ - { - "type": "Plotter Module", - "name": "Volume Energy", - "config": "{\n \"codeName\": \"VolumeEnergy\",\n \"icon\": \"trend\"\n}", - "project": "Foundations", - "shapes": { - "type": "Shapes", - "name": "New Shapes", - "project": "Foundations", - "chartPoints": [ - { - "type": "Chart Points", - "name": "New Chart Points", - "project": "Foundations", - "points": [ - { - "type": "Point", - "name": "DiffEnergy Begin", - "project": "Foundations", - "pointFormula": { - "type": "Point Formula", - "name": "New Point Formula", - "code": "x = record.begin\ny = record.previous.VolumeEnergy", - "project": "Foundations", - "id": "1b9415c3-3d92-4caa-988a-2c15a9322c7e", - "savedPayload": { - "position": { - "x": 18436.81639414028, - "y": 9941.6505203163 - }, - "targetPosition": { - "x": 18322.011364430753, - "y": 9664.486660562914 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "ed1e9c3e-07bb-46b3-adbc-524bb05ef70d", - "savedPayload": { - "position": { - "x": 18322.011364430753, - "y": 9664.486660562914 - }, - "targetPosition": { - "x": 18207.206334721224, - "y": 9387.322800809528 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Point", - "name": "DiffEnergy End", - "project": "Foundations", - "pointFormula": { - "type": "Point Formula", - "name": "New Point Formula", - "code": "x = record.end\ny = record.VolumeEnergy", - "project": "Foundations", - "id": "25d4e307-1775-46ed-b710-ae523836bb92", - "savedPayload": { - "position": { - "x": 17612.33941789694, - "y": 9309.007085477497 - }, - "targetPosition": { - "x": 17909.77287630908, - "y": 9348.164943143513 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "ddd0f34c-3731-4a39-a457-267f7b7a62e9", - "savedPayload": { - "position": { - "x": 17909.77287630908, - "y": 9348.164943143513 - }, - "targetPosition": { - "x": 18207.206334721224, - "y": 9387.322800809528 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "df7485ee-1baf-446e-af76-5c1bdfe30cd2", - "savedPayload": { - "position": { - "x": 18207.206334721224, - "y": 9387.322800809528 - }, - "targetPosition": { - "x": 18389.83476342384, - "y": 9149.316798722159 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "polygons": [ - { - "type": "Polygon", - "name": "New Polygon", - "project": "Foundations", - "polygonBorder": { - "type": "Polygon Border", - "name": "New Polygon Border", - "project": "Foundations", - "style": { - "type": "Style", - "name": "New Style", - "config": "{\n \"default\": {\n \"opacity\": 0.2,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", - "project": "Foundations", - "id": "903c46ae-3ee9-4b8a-a72c-9d562841dc10", - "savedPayload": { - "position": { - "x": 17720.702014207545, - "y": 9101.762998387827 - }, - "targetPosition": { - "x": 17997.86587396093, - "y": 8986.9579686783 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "styleConditions": [], - "id": "f5a010ca-7b53-414a-bbbc-cb37e69cff0a", - "savedPayload": { - "position": { - "x": 17997.86587396093, - "y": 8986.9579686783 - }, - "targetPosition": { - "x": 18275.029733714317, - "y": 8872.152938968773 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "polygonVertexes": [ - { - "type": "Polygon Vertex", - "name": " DiffEnergy End", - "project": "Foundations", - "id": "eea6063f-b64d-46cd-86e0-91a8d6cd2f34", - "savedPayload": { - "position": { - "x": 18160.22470400479, - "y": 8594.989079215387 - }, - "targetPosition": { - "x": 18275.029733714317, - "y": 8872.152938968773 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Point", - "name": "DiffEnergy End", - "id": "ddd0f34c-3731-4a39-a457-267f7b7a62e9" - } - } - }, - { - "type": "Polygon Vertex", - "name": " DiffEnergy Begin", - "project": "Foundations", - "id": "877680bf-70c2-46a7-abbe-feaab9109e9b", - "savedPayload": { - "position": { - "x": 18552.193593467702, - "y": 8757.347909259246 - }, - "targetPosition": { - "x": 18275.029733714317, - "y": 8872.152938968773 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Point", - "name": "DiffEnergy Begin", - "id": "ed1e9c3e-07bb-46b3-adbc-524bb05ef70d" - } - } - } - ], - "id": "5380e82d-75ce-4cc6-9417-06e779e2c8b7", - "savedPayload": { - "position": { - "x": 18275.029733714317, - "y": 8872.152938968773 - }, - "targetPosition": { - "x": 18389.83476342384, - "y": 9149.316798722159 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "images": [], - "texts": [], - "id": "db0862e6-5a21-43c9-8174-d83483efbfab", - "savedPayload": { - "position": { - "x": 18389.83476342384, - "y": 9149.316798722159 - }, - "targetPosition": { - "x": 18687.268221835984, - "y": 9188.474656388174 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "panels": [ - { - "type": "Plotter Panel", - "name": "Volume Energy", - "config": "{\n \"codeName\": \"VolumeEnergy\",\n \"isLegacy\": false\n}", - "project": "Foundations", - "panelData": [ - { - "type": "Panel Data", - "name": "VolumeEnergy", - "config": "{\n \"valueDecimals\": 2\n}", - "project": "Foundations", - "dataFormula": { - "type": "Data Formula", - "name": "New Data Formula", - "code": "record.VolumeEnergy", - "project": "Foundations", - "id": "ba35026b-66ab-4632-8f27-7ba9d82e2db0", - "savedPayload": { - "position": { - "x": 18937.720049531694, - "y": 8435.29879246005 - }, - "targetPosition": { - "x": 19052.52507924122, - "y": 8712.462652213435 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "textStyle": { - "type": "Text Style", - "name": "New Text Style", - "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", - "project": "Foundations", - "id": "42150f1b-3d57-423d-962a-bc5d7cba051a", - "savedPayload": { - "position": { - "x": 19349.95853765336, - "y": 8751.62050987945 - }, - "targetPosition": { - "x": 19052.52507924122, - "y": 8712.462652213435 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "17be2c19-17d5-4562-bc36-8667e1ded7f7", - "savedPayload": { - "position": { - "x": 19052.52507924122, - "y": 8712.462652213435 - }, - "targetPosition": { - "x": 18869.8966505386, - "y": 8950.468654300805 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "7cd0c0b8-5aa9-4bb2-9279-48e7ba3d150f", - "savedPayload": { - "position": { - "x": 18869.8966505386, - "y": 8950.468654300805 - }, - "targetPosition": { - "x": 18687.268221835984, - "y": 9188.474656388174 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "d6bb640a-eb55-4f39-89f0-45c514d64ba1", - "savedPayload": { - "position": { - "x": 18687.268221835984, - "y": 9188.474656388174 - }, - "targetPosition": { - "x": 18802.07325154551, - "y": 9465.63851614156 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "6703935f-4317-446f-a102-b1643f464f01", - "savedPayload": { - "position": { - "x": 17677.784400139793, - "y": 9296.703486414128 - }, - "targetPosition": { - "x": 18051.878281255034, - "y": 9765.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Plotter", - "name": "Volume Agitation", - "config": "{\n \"codeName\": \"VolumeEnergyB\"\n}", - "project": "Foundations", - "modules": [ - { - "type": "Plotter Module", - "name": "Volume Energy BUY", - "config": "{\n \"codeName\": \"VolumeEnergyB\",\n \"icon\": \"trend\"\n}", - "project": "Foundations", - "shapes": { - "type": "Shapes", - "name": "New Shapes", - "project": "Foundations", - "chartPoints": [ - { - "type": "Chart Points", - "name": "New Chart Points", - "project": "Foundations", - "points": [ - { - "type": "Point", - "name": "Volume Energy BUY Begin", - "project": "Foundations", - "pointFormula": { - "type": "Point Formula", - "name": "New Point Formula", - "code": "x = record.begin\ny = record.previous.VolumeEnergyB", - "project": "Foundations", - "id": "403d70cd-e270-4c4a-85bc-19cb5d4eb3d4", - "savedPayload": { - "position": { - "x": 19510.587404640937, - "y": 9611.901265375764 - }, - "targetPosition": { - "x": 19323.54046408332, - "y": 9377.351820635355 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "c657a3d5-1b0a-42b2-a3f3-a9aceed81580", - "savedPayload": { - "position": { - "x": 19323.54046408332, - "y": 9377.351820635355 - }, - "targetPosition": { - "x": 19136.4935235257, - "y": 9142.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Point", - "name": "Volume Energy BUY End", - "project": "Foundations", - "pointFormula": { - "type": "Point Formula", - "name": "New Point Formula", - "code": "x = record.end\ny = record.VolumeEnergyB", - "project": "Foundations", - "id": "da9a55da-0c45-43ab-a5be-de9496830842", - "savedPayload": { - "position": { - "x": 19002.98096315191, - "y": 9727.75912320404 - }, - "targetPosition": { - "x": 19069.737243338805, - "y": 9435.280749549493 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "a0f1775a-e22c-49c3-9f75-eded344a1199", - "savedPayload": { - "position": { - "x": 19069.737243338805, - "y": 9435.280749549493 - }, - "targetPosition": { - "x": 19136.4935235257, - "y": 9142.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Point", - "name": "TmpB Begin", - "project": "Foundations", - "pointFormula": { - "type": "Point Formula", - "name": "New Point Formula", - "code": "x = record.begin\ny = record.previous.TmpB", - "project": "Foundations", - "id": "6afa2562-1d53-4d99-99d7-31d039399cd9", - "savedPayload": { - "position": { - "x": 18595.912202784246, - "y": 9403.132619365482 - }, - "targetPosition": { - "x": 18866.202863154973, - "y": 9272.967497630214 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "0d602a2a-1a2a-4632-82d9-d2f5ae589e02", - "savedPayload": { - "position": { - "x": 18866.202863154973, - "y": 9272.967497630214 - }, - "targetPosition": { - "x": 19136.4935235257, - "y": 9142.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Point", - "name": "TmpB End", - "project": "Foundations", - "pointFormula": { - "type": "Point Formula", - "name": "TmpB End", - "code": "x = record.end\ny = record.TmpB", - "project": "Foundations", - "id": "900207b4-5657-4fd6-8cc3-8f92e3781f80", - "savedPayload": { - "position": { - "x": 18595.912202784246, - "y": 8882.47213242441 - }, - "targetPosition": { - "x": 18866.202863154973, - "y": 9012.637254159677 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "b7d2c1ef-37e0-4c55-a62f-cf31d64f8e23", - "savedPayload": { - "position": { - "x": 18866.202863154973, - "y": 9012.637254159677 - }, - "targetPosition": { - "x": 19136.4935235257, - "y": 9142.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Point", - "name": "RelativeAgitation Begin", - "project": "Foundations", - "pointFormula": { - "type": "Point Formula", - "name": "New Point Formula", - "code": "x = record.begin\ny = record.previous.RelativeAgitation", - "project": "Foundations", - "id": "ca0da738-895b-4aec-a3ea-b6e8f5cb17eb", - "savedPayload": { - "position": { - "x": 19002.98096315191, - "y": 8557.845628585852 - }, - "targetPosition": { - "x": 19069.737243338805, - "y": 8850.324002240399 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "5bd61492-a1c7-452d-87fd-ae43cb062a9b", - "savedPayload": { - "position": { - "x": 19069.737243338805, - "y": 8850.324002240399 - }, - "targetPosition": { - "x": 19136.4935235257, - "y": 9142.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Point", - "name": "RelativeAgitation End", - "project": "Foundations", - "pointFormula": { - "type": "Point Formula", - "name": "New Point Formula", - "code": "x = record.end\ny = record.RelativeAgitation", - "project": "Foundations", - "id": "5bc57818-967e-49b9-a27b-3d8b898a9854", - "savedPayload": { - "position": { - "x": 19510.587404640937, - "y": 8673.703486414128 - }, - "targetPosition": { - "x": 19323.54046408332, - "y": 8908.252931154537 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "45a25f75-37a8-413d-b4c1-d58152756362", - "savedPayload": { - "position": { - "x": 19323.54046408332, - "y": 8908.252931154537 - }, - "targetPosition": { - "x": 19136.4935235257, - "y": 9142.802375894946 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "0695c6b2-4627-48f0-8ce1-fec31684b883", - "savedPayload": { - "position": { - "x": 18830.08216843255, - "y": 8953.836955360619 - }, - "targetPosition": { - "x": 19129.10936087281, - "y": 8977.976925975638 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "polygons": [ - { - "type": "Polygon", - "name": "New Polygon", - "project": "Foundations", - "polygonBorder": { - "type": "Polygon Border", - "name": "New Polygon Border", - "project": "Foundations", - "style": { - "type": "Style", - "name": "New Style", - "config": " { \"default\": { \"opacity\": 0.2, \"lineWidth\": 1, \"lineDash\": [0,0], \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\" }, \"atMousePosition\": { \"opacity\": 0.3, \"lineWidth\": 2, \"lineDash\": [0,0], \"paletteColor\": \"UI_COLOR.RUSTED_RED\" }}", - "project": "Foundations", - "id": "28bf4db1-0ed2-4de4-83f4-c929b44588aa", - "savedPayload": { - "position": { - "x": 19907.22067503921, - "y": 8664.87356443034 - }, - "targetPosition": { - "x": 19814.515576726728, - "y": 8950.190519318885 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "styleConditions": [], - "id": "00befc2e-c8a5-45b3-bfdc-f769c4237e0d", - "savedPayload": { - "position": { - "x": 19814.515576726728, - "y": 8950.190519318885 - }, - "targetPosition": { - "x": 19721.810478414245, - "y": 9235.50747420743 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "polygonVertexes": [ - { - "type": "Polygon Vertex", - "name": " RelativeAgitation End", - "project": "Foundations", - "id": "9adfe32c-cbf3-4ff4-846c-4311f4c05f98", - "savedPayload": { - "position": { - "x": 20007.12743330279, - "y": 9328.212572519915 - }, - "targetPosition": { - "x": 19721.810478414245, - "y": 9235.50747420743 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Point", - "name": "RelativeAgitation End", - "id": "45a25f75-37a8-413d-b4c1-d58152756362" - } - } - }, - { - "type": "Polygon Vertex", - "name": " RelativeAgitation Begin", - "project": "Foundations", - "id": "736758f0-a0f9-4a1c-855c-5cbc6c5d95b1", - "savedPayload": { - "position": { - "x": 19629.105380101762, - "y": 9520.824429095976 - }, - "targetPosition": { - "x": 19721.810478414245, - "y": 9235.50747420743 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Point", - "name": "RelativeAgitation Begin", - "id": "5bd61492-a1c7-452d-87fd-ae43cb062a9b" - } - } - } - ], - "id": "85566ae3-0740-41ea-b32f-0ae30dca21de", - "savedPayload": { - "position": { - "x": 19299.528784892158, - "y": 8731.08176620754 - }, - "targetPosition": { - "x": 19129.10936087281, - "y": 8977.976925975638 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "images": [], - "texts": [], - "id": "66eb1f77-1cc4-4acc-b1d4-cecb96bc912c", - "savedPayload": { - "position": { - "x": 19129.10936087281, - "y": 8977.976925975638 - }, - "targetPosition": { - "x": 19257.717129293727, - "y": 9249.012056358752 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "panels": [ - { - "type": "Plotter Panel", - "name": "Volume Energy BUY", - "config": "{\n \"codeName\": \"VolumeEnergyB\",\n \"isLegacy\": false\n}", - "project": "Foundations", - "panelData": [ - { - "type": "Panel Data", - "name": "VolumeEnergy", - "config": "{\n \"valueDecimals\": 2\n}", - "project": "Foundations", - "dataFormula": { - "type": "Data Formula", - "name": "New Data Formula", - "code": "record.VolumeEnergyB", - "project": "Foundations", - "id": "588ef488-1978-42c6-92e7-6ed95601653e", - "savedPayload": { - "position": { - "x": 19333.98913258091, - "y": 8803.705410514161 - }, - "targetPosition": { - "x": 19580.88429234901, - "y": 8974.124834533508 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "textStyle": { - "type": "Text Style", - "name": "New Text Style", - "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", - "project": "Foundations", - "id": "a12e0a97-3794-46bb-b57e-82a8b586dc99", - "savedPayload": { - "position": { - "x": 19851.919422732124, - "y": 8845.517066112592 - }, - "targetPosition": { - "x": 19580.88429234901, - "y": 8974.124834533508 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "be9b5f3c-fe42-4670-8479-68bacd464f8b", - "savedPayload": { - "position": { - "x": 19580.88429234901, - "y": 8974.124834533508 - }, - "targetPosition": { - "x": 19556.74432173399, - "y": 9273.15202697377 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Panel Data", - "name": "Agitation", - "config": "{\n \"valueDecimals\": 10\n}", - "project": "Foundations", - "dataFormula": { - "type": "Data Formula", - "name": "New Data Formula", - "code": "record.TmpB", - "project": "Foundations", - "id": "d1f40f06-cd1b-4e0d-b057-6a4a6b7af25f", - "savedPayload": { - "position": { - "x": 20026.1909381936, - "y": 9050.396837820692 - }, - "targetPosition": { - "x": 19855.771514174252, - "y": 9297.291997588789 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "textStyle": { - "type": "Text Style", - "name": "New Text Style", - "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", - "project": "Foundations", - "id": "85d3d386-eb9b-4cc5-aca3-f49e98488516", - "savedPayload": { - "position": { - "x": 19984.379282595168, - "y": 9568.327127971903 - }, - "targetPosition": { - "x": 19855.771514174252, - "y": 9297.291997588789 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "3a757c5e-6140-476e-b7b3-6da7249529ce", - "savedPayload": { - "position": { - "x": 19855.771514174252, - "y": 9297.291997588789 - }, - "targetPosition": { - "x": 19556.74432173399, - "y": 9273.15202697377 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Panel Data", - "name": "Relative Agitation", - "config": "{\n \"valueDecimals\": 10\n}", - "project": "Foundations", - "dataFormula": { - "type": "Data Formula", - "name": "New Data Formula", - "code": "record.RelativeAgitation", - "project": "Foundations", - "id": "636654cb-8c01-40d4-b8a0-095fd0f137bf", - "savedPayload": { - "position": { - "x": 19779.499510887068, - "y": 9742.598643433379 - }, - "targetPosition": { - "x": 19532.60435111897, - "y": 9572.179219414033 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "textStyle": { - "type": "Text Style", - "name": "New Text Style", - "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", - "project": "Foundations", - "id": "bf610b73-b8be-4ccf-b493-95f2d75cc46a", - "savedPayload": { - "position": { - "x": 19261.569220735855, - "y": 9700.786987834948 - }, - "targetPosition": { - "x": 19532.60435111897, - "y": 9572.179219414033 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "95f8b3be-6555-4a69-92cd-bdbabf124218", - "savedPayload": { - "position": { - "x": 19532.60435111897, - "y": 9572.179219414033 - }, - "targetPosition": { - "x": 19556.74432173399, - "y": 9273.15202697377 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "d9d554d1-923d-400e-a0c1-12caf8ef2534", - "savedPayload": { - "position": { - "x": 19556.74432173399, - "y": 9273.15202697377 - }, - "targetPosition": { - "x": 19257.717129293727, - "y": 9249.012056358752 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "540459f7-8321-48aa-b1b8-7b2562436d99", - "savedPayload": { - "position": { - "x": 19257.717129293727, - "y": 9249.012056358752 - }, - "targetPosition": { - "x": 19087.29770527438, - "y": 9495.907216126849 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "df05deee-2fc8-4e65-910d-dbd264710e14", - "savedPayload": { - "position": { - "x": 17791.5480377845, - "y": 9225.221055153494 + "x": 17602.771832352373, + "y": 9367.928780950468 }, "targetPosition": { "x": 18051.878281255034, @@ -25934,7 +28803,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.OBV", "project": "Foundations", - "id": "234963de-ef55-4a5c-afb1-50d53bde003e", + "id": "647661ae-1f5a-4e00-ba6d-cbbbc0cd8ac3", "savedPayload": { "position": { "x": 18443.992692637097, @@ -25957,7 +28826,7 @@ } } }, - "id": "8517ffc3-f0f0-451c-9890-6a6ad12d2e03", + "id": "6488e60c-3b81-41b3-89a4-39560c7c0afb", "savedPayload": { "position": { "x": 18225.81949099294, @@ -25989,7 +28858,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.OBV", "project": "Foundations", - "id": "c5a1f7e0-bba9-4119-8fc0-056606a6a9f0", + "id": "a03bbe9c-28d9-4a0e-a6dc-48fd11d65bf3", "savedPayload": { "position": { "x": 18597.374950712347, @@ -26012,7 +28881,7 @@ } } }, - "id": "3dcc5a2e-52b7-4e35-9a28-354869efce63", + "id": "ae5934d3-c1e9-4fe1-b80c-d2c0966a3985", "savedPayload": { "position": { "x": 18302.510620030567, @@ -26044,7 +28913,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.VEma20", "project": "Foundations", - "id": "e6f52523-d3d8-4ac2-81f3-21c8cb29e394", + "id": "6694a8ee-9a6c-4ecb-900f-5d65f86618c2", "savedPayload": { "position": { "x": 18563.522525628272, @@ -26067,7 +28936,7 @@ } } }, - "id": "51196e08-d980-4ae5-ac9e-4958ae0fddfc", + "id": "bf47e25a-dc70-4689-9a37-2eae2515be8e", "savedPayload": { "position": { "x": 18285.584407488528, @@ -26099,7 +28968,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.VEma20", "project": "Foundations", - "id": "359c9340-3e3f-44ae-a482-357f1650a4b2", + "id": "8db93db1-98ca-4189-b4eb-1193406fc51f", "savedPayload": { "position": { "x": 18353.18332315926, @@ -26122,7 +28991,7 @@ } } }, - "id": "e6cd7a6e-5d07-48f8-84e5-75cd7f39d77c", + "id": "c928bf66-85ae-4f15-b650-88a38c05786d", "savedPayload": { "position": { "x": 18180.414806254023, @@ -26154,7 +29023,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.VEma10", "project": "Foundations", - "id": "aaf7f63f-8d28-41c7-b033-27b183d28c6c", + "id": "58b93b8a-d2ac-45e1-9d73-b65aa655e370", "savedPayload": { "position": { "x": 18033.138553903438, @@ -26177,7 +29046,7 @@ } } }, - "id": "d79e3ec0-b9aa-44ba-9a5c-3974e1b966e6", + "id": "63740d84-0cf1-4a26-8dc3-81aa77b545cf", "savedPayload": { "position": { "x": 18020.39242162611, @@ -26209,7 +29078,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.VEma10", "project": "Foundations", - "id": "988775f8-bd07-4f4d-846c-38e986d7bef7", + "id": "165c226b-4592-4489-a331-b82436aaa9ee", "savedPayload": { "position": { "x": 17705.000170771244, @@ -26232,7 +29101,7 @@ } } }, - "id": "2244d472-4ab3-44de-b918-33babdaaf29e", + "id": "d62fd26d-d00b-49c2-b974-7bf202e645a7", "savedPayload": { "position": { "x": 17856.323230060014, @@ -26264,7 +29133,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.VEma5", "project": "Foundations", - "id": "d19fa2bf-6a40-406c-95e0-85c42ffff65a", + "id": "14a89054-a3af-4062-b382-bff990b188c0", "savedPayload": { "position": { "x": 17472.949791892133, @@ -26287,7 +29156,7 @@ } } }, - "id": "419645f9-904c-4d2a-afd6-464cb36bdd0a", + "id": "15beee86-2e4d-4b62-b014-9f1084238a2c", "savedPayload": { "position": { "x": 17740.29804062046, @@ -26319,7 +29188,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.VEma5", "project": "Foundations", - "id": "0929ff1c-c45d-4fd5-9e4c-de393956691f", + "id": "d93e78b8-71c5-499d-8e21-8091f2d818ea", "savedPayload": { "position": { "x": 17410.66177297059, @@ -26342,7 +29211,7 @@ } } }, - "id": "0c1c7356-541c-47a2-928d-b9e1a118322d", + "id": "4e61ee4f-3d00-4752-be47-df9361b39f65", "savedPayload": { "position": { "x": 17709.154031159687, @@ -26374,7 +29243,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.VEma3", "project": "Foundations", - "id": "2e4b4993-6bd2-480f-b9a6-dd5605c63440", + "id": "a8a0ab64-f9c5-4978-93f3-c2b15311efa5", "savedPayload": { "position": { "x": 17537.9121199081, @@ -26397,7 +29266,7 @@ } } }, - "id": "b8b2f4fc-aff7-4fe9-a917-91f77fa621ba", + "id": "c4162469-5eb5-4c35-bef8-28d0623551f3", "savedPayload": { "position": { "x": 17772.77920462844, @@ -26429,7 +29298,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.VEma3", "project": "Foundations", - "id": "d1ca4166-c31d-4fc6-8a17-fc349e1d15d8", + "id": "7cfc3b3f-b3a2-4e28-9a32-f018b9165c70", "savedPayload": { "position": { "x": 17814.299746659977, @@ -26452,7 +29321,7 @@ } } }, - "id": "11f0f2d3-c546-469e-9c6c-22917d905b5f", + "id": "686a0499-d33a-4964-bb61-9bff20dd6881", "savedPayload": { "position": { "x": 17910.97301800438, @@ -26476,7 +29345,7 @@ } } ], - "id": "b0c1efc1-e521-41a5-a74b-20cb7ffc06d4", + "id": "28d28c5c-d5c5-424c-a53b-cb8adcaa86b3", "savedPayload": { "position": { "x": 18007.646289348784, @@ -26514,7 +29383,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 0.2,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "0876aeb8-4f2c-4ef9-845f-daea70c56bd7", + "id": "04eaf63e-fb75-418f-805a-7118db9072af", "savedPayload": { "position": { "x": 18513.24329856391, @@ -26538,7 +29407,7 @@ } }, "styleConditions": [], - "id": "79d5987a-ab58-4306-b252-78f27a7b8228", + "id": "d598b2da-adfe-442b-a2ef-1240a89d5033", "savedPayload": { "position": { "x": 18792.50542315717, @@ -26566,7 +29435,7 @@ "type": "Polygon Vertex", "name": " OBV Begin", "project": "Foundations", - "id": "14ed3163-3d13-4794-8c32-6dce65b7a501", + "id": "a225bee7-8251-4752-a7ef-d898b84323f4", "savedPayload": { "position": { "x": 18962.16524044051, @@ -26590,15 +29459,53 @@ "referenceParent": { "type": "Point", "name": "OBV Begin", - "id": "8517ffc3-f0f0-451c-9890-6a6ad12d2e03" - } + "id": "6488e60c-3b81-41b3-89a4-39560c7c0afb" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "e9c77cb0-87b1-412a-81a5-222c79a2f5b9" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2867ec74-98c4-48f7-a2f0-03337f9897bc" + ], + [ + "OBV Begin", + "Point", + "Foundations", + "daef3555-86b3-4d10-b5bd-cee78ef5ed3e" + ] + ] } }, { "type": "Polygon Vertex", "name": " OBV End", "project": "Foundations", - "id": "32710fae-ba6e-4166-bc4a-4a31d44de35d", + "id": "de6ce079-92ac-457c-a522-b1b70873153d", "savedPayload": { "position": { "x": 19351.02967234369, @@ -26622,12 +29529,50 @@ "referenceParent": { "type": "Point", "name": "OBV End", - "id": "3dcc5a2e-52b7-4e35-9a28-354869efce63" - } + "id": "ae5934d3-c1e9-4fe1-b80c-d2c0966a3985" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "e9c77cb0-87b1-412a-81a5-222c79a2f5b9" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2867ec74-98c4-48f7-a2f0-03337f9897bc" + ], + [ + "OBV End", + "Point", + "Foundations", + "46c7efbc-8d43-49e4-8e69-86835ac3a62c" + ] + ] } } ], - "id": "fe39a341-5251-42f9-9ab3-f493acbb14d4", + "id": "32da2ceb-1c6c-4995-b0ed-9bfa89ad9f14", "savedPayload": { "position": { "x": 18691.182568747812, @@ -26663,7 +29608,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_BLUE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "643fa486-0327-457f-9ad4-9cff64a2f0bc", + "id": "11d1ffd6-060d-4c72-8605-b914055b1d44", "savedPayload": { "position": { "x": 18425.657463718428, @@ -26687,7 +29632,7 @@ } }, "styleConditions": [], - "id": "c3afe9e4-e3f3-4f6c-b47b-cc5e165bc85f", + "id": "52fbf729-88fc-4805-9012-9f42f6b1cb2e", "savedPayload": { "position": { "x": 18560.85395645841, @@ -26715,7 +29660,7 @@ "type": "Polygon Vertex", "name": " OBV-EMA20 Begin", "project": "Foundations", - "id": "18e75140-1922-4aa7-9b85-f40ce6158d69", + "id": "70f6c56a-4065-47b2-bc9e-dfc7d9a8dd28", "savedPayload": { "position": { "x": 18428.24098642531, @@ -26739,15 +29684,53 @@ "referenceParent": { "type": "Point", "name": "OBV-EMA20 Begin", - "id": "51196e08-d980-4ae5-ac9e-4958ae0fddfc" - } + "id": "bf47e25a-dc70-4689-9a37-2eae2515be8e" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "e9c77cb0-87b1-412a-81a5-222c79a2f5b9" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2867ec74-98c4-48f7-a2f0-03337f9897bc" + ], + [ + "OBV-EMA20 Begin", + "Point", + "Foundations", + "0fe194e4-f0c0-457b-96d0-723499032972" + ] + ] } }, { "type": "Polygon Vertex", "name": " OBV-EMA20 End", "project": "Foundations", - "id": "1e92d6b1-2d8d-4088-aacc-d464ea5fb6ce", + "id": "1910b088-016a-4cb7-96ff-e6b1f87fc3e8", "savedPayload": { "position": { "x": 18831.246941938374, @@ -26771,12 +29754,50 @@ "referenceParent": { "type": "Point", "name": "OBV-EMA20 End", - "id": "e6cd7a6e-5d07-48f8-84e5-75cd7f39d77c" - } + "id": "c928bf66-85ae-4f15-b650-88a38c05786d" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "e9c77cb0-87b1-412a-81a5-222c79a2f5b9" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2867ec74-98c4-48f7-a2f0-03337f9897bc" + ], + [ + "OBV-EMA20 End", + "Point", + "Foundations", + "ce18cae6-0e23-4910-9a57-d0efb9636a2d" + ] + ] } } ], - "id": "d04cb4c1-24ba-4053-814f-d468f7283b2f", + "id": "dcb6477f-c306-45f7-9251-7a96f62156e2", "savedPayload": { "position": { "x": 18696.050449198392, @@ -26812,7 +29833,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.APPLE_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "ea082e87-ad2f-4645-96ca-4d2db9af8129", + "id": "6e07aa19-0cc7-4c33-bb1f-d494768823c6", "savedPayload": { "position": { "x": 18315.233309895986, @@ -26836,7 +29857,7 @@ } }, "styleConditions": [], - "id": "663e91f2-09f2-4ab3-8cf2-aefa8af000fb", + "id": "6acdc45a-cb6e-4c7d-af52-3009a31cd363", "savedPayload": { "position": { "x": 18608.90881366528, @@ -26864,7 +29885,7 @@ "type": "Polygon Vertex", "name": " OBV-EMA10 Begin", "project": "Foundations", - "id": "f3e01eb8-9d9c-4da5-9269-97e486c571d0", + "id": "0d4f5a71-52c7-47f7-94cf-1955a806851f", "savedPayload": { "position": { "x": 18841.30872289767, @@ -26888,15 +29909,53 @@ "referenceParent": { "type": "Point", "name": "OBV-EMA10 Begin", - "id": "d79e3ec0-b9aa-44ba-9a5c-3974e1b966e6" - } + "id": "63740d84-0cf1-4a26-8dc3-81aa77b545cf" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "e9c77cb0-87b1-412a-81a5-222c79a2f5b9" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2867ec74-98c4-48f7-a2f0-03337f9897bc" + ], + [ + "OBV-EMA10 Begin", + "Point", + "Foundations", + "8888ef7f-db48-41b4-9ef6-4f7f17e689fe" + ] + ] } }, { "type": "Polygon Vertex", "name": " OBV-EMA10 End", "project": "Foundations", - "id": "154ae96e-394f-42bc-8368-5c3a4d7639bf", + "id": "9c40d349-7b9f-4636-bd7a-41033327512e", "savedPayload": { "position": { "x": 19196.259821203865, @@ -26920,12 +29979,50 @@ "referenceParent": { "type": "Point", "name": "OBV-EMA10 End", - "id": "2244d472-4ab3-44de-b918-33babdaaf29e" - } + "id": "d62fd26d-d00b-49c2-b974-7bf202e645a7" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "e9c77cb0-87b1-412a-81a5-222c79a2f5b9" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2867ec74-98c4-48f7-a2f0-03337f9897bc" + ], + [ + "OBV-EMA10 End", + "Point", + "Foundations", + "b4967e5e-72f1-46d7-828b-e6cd6fc93d30" + ] + ] } } ], - "id": "2481c22d-0079-425e-b202-e20ef85677b3", + "id": "fa884b83-8033-42d0-ae0b-2debb9906573", "savedPayload": { "position": { "x": 18902.584317434572, @@ -26961,7 +30058,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RED_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "643cffc8-8705-4a8e-ae95-e758ec5c4730", + "id": "d88b1197-af78-4e5f-8ada-65e56d8a7cd4", "savedPayload": { "position": { "x": 18693.23821700782, @@ -26985,7 +30082,7 @@ } }, "styleConditions": [], - "id": "5debabe6-90b3-44e3-948c-df7e33c8f8c8", + "id": "d6ba70dd-5f97-4187-8721-1cb2ac727b60", "savedPayload": { "position": { "x": 18924.2490875796, @@ -27013,7 +30110,7 @@ "type": "Polygon Vertex", "name": " OBV-EMA5 Begin", "project": "Foundations", - "id": "f8f00d37-baad-45a8-9c3e-636dc9937ba0", + "id": "4e23f15a-9387-4c86-8624-d3229138bd52", "savedPayload": { "position": { "x": 19346.660004331283, @@ -27037,15 +30134,53 @@ "referenceParent": { "type": "Point", "name": "OBV-EMA5 Begin", - "id": "419645f9-904c-4d2a-afd6-464cb36bdd0a" - } + "id": "15beee86-2e4d-4b62-b014-9f1084238a2c" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "e9c77cb0-87b1-412a-81a5-222c79a2f5b9" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2867ec74-98c4-48f7-a2f0-03337f9897bc" + ], + [ + "OBV-EMA5 Begin", + "Point", + "Foundations", + "9e132500-c71c-4110-a1f4-c28c16af5d08" + ] + ] } }, { "type": "Polygon Vertex", "name": " OBV-EMA5 End", "project": "Foundations", - "id": "ce70b365-9402-408b-a0cc-1452ce228fc5", + "id": "10325888-c620-4030-a05b-cf4c75b07753", "savedPayload": { "position": { "x": 19386.270828723158, @@ -27069,12 +30204,50 @@ "referenceParent": { "type": "Point", "name": "OBV-EMA5 End", - "id": "0c1c7356-541c-47a2-928d-b9e1a118322d" - } + "id": "4e61ee4f-3d00-4752-be47-df9361b39f65" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "e9c77cb0-87b1-412a-81a5-222c79a2f5b9" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2867ec74-98c4-48f7-a2f0-03337f9897bc" + ], + [ + "OBV-EMA5 End", + "Point", + "Foundations", + "d065807d-2fc9-4e10-a544-e8ac18b55de0" + ] + ] } } ], - "id": "0ae31a00-a0ed-4fe8-a75e-c422076092fc", + "id": "a59347c1-e0a5-4344-b542-6aa5790a63d3", "savedPayload": { "position": { "x": 19155.25995815138, @@ -27110,7 +30283,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.LIGHT_PINK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "df222d6b-1a7b-4305-ad36-c9e77b3c60b1", + "id": "26b6768e-ef68-482e-a70e-8bfab7019f2e", "savedPayload": { "position": { "x": 19275.026780103843, @@ -27134,7 +30307,7 @@ } }, "styleConditions": [], - "id": "d152c355-1ea1-4a91-860b-4e60d9a6b171", + "id": "697654cb-deb9-4da5-9f57-6f136514700d", "savedPayload": { "position": { "x": 19269.41712017457, @@ -27162,7 +30335,7 @@ "type": "Polygon Vertex", "name": " OBV-EMA3 Begin", "project": "Foundations", - "id": "05a99639-d1bf-4d6d-92b8-8a41b4a6d9f3", + "id": "18dce079-4d41-492a-a825-ddca81cdafc8", "savedPayload": { "position": { "x": 19563.75500851912, @@ -27186,15 +30359,53 @@ "referenceParent": { "type": "Point", "name": "OBV-EMA3 Begin", - "id": "b8b2f4fc-aff7-4fe9-a917-91f77fa621ba" - } + "id": "c4162469-5eb5-4c35-bef8-28d0623551f3" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "e9c77cb0-87b1-412a-81a5-222c79a2f5b9" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2867ec74-98c4-48f7-a2f0-03337f9897bc" + ], + [ + "OBV-EMA3 Begin", + "Point", + "Foundations", + "d0a5475c-6c8b-4133-83e5-84f9ebd304ad" + ] + ] } }, { "type": "Polygon Vertex", "name": " OBV-EMA3 End", "project": "Foundations", - "id": "08817d2e-c63c-42cb-bb31-225af567bc5f", + "id": "1583842d-cc16-4154-9883-87b5c8bcaf25", "savedPayload": { "position": { "x": 19258.197800316026, @@ -27218,12 +30429,50 @@ "referenceParent": { "type": "Point", "name": "OBV-EMA3 End", - "id": "11f0f2d3-c546-469e-9c6c-22917d905b5f" - } + "id": "686a0499-d33a-4964-bb61-9bff20dd6881" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "On-Balance-Volume", + "Plotter", + "Foundations", + "24a55592-ac55-4376-84bf-ff50fc32fdf2" + ], + [ + "On-Balance-Volume", + "Plotter Module", + "Foundations", + "f573d5b1-0f6f-4cb1-805f-84f5cf4c505d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "e9c77cb0-87b1-412a-81a5-222c79a2f5b9" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2867ec74-98c4-48f7-a2f0-03337f9897bc" + ], + [ + "OBV-EMA3 End", + "Point", + "Foundations", + "33e2ed30-77c7-48c5-9510-6ae8b1deda12" + ] + ] } } ], - "id": "c7449aa5-c695-40f4-97e5-71991b32e80c", + "id": "2a6e7295-200a-4e5f-bb20-c32557a103a2", "savedPayload": { "position": { "x": 19263.807460245298, @@ -27249,7 +30498,7 @@ ], "images": [], "texts": [], - "id": "724ca3e5-0803-4ba0-965e-98ed877dac6f", + "id": "05dcbf07-0a49-444a-a3f5-c83831ceb922", "savedPayload": { "position": { "x": 18963.859911971475, @@ -27289,7 +30538,7 @@ "name": "New Data Formula", "code": "record.OBV", "project": "Foundations", - "id": "097e5eba-b850-4bd3-a714-b9e3c576b4db", + "id": "6f2a168e-d488-4194-b4c2-d2492036ff57", "savedPayload": { "position": { "x": 18963.859911971475, @@ -27317,7 +30566,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "94759fec-67d2-4b06-bcf6-95e271cf42a3", + "id": "6a4eb669-de41-4b81-98be-64d5d4c9651d", "savedPayload": { "position": { "x": 19376.098400093146, @@ -27340,7 +30589,7 @@ } } }, - "id": "f745a972-6ac1-41d3-9e21-5ec003db6dce", + "id": "f0a2ba1c-a552-461a-a183-710d26d6354a", "savedPayload": { "position": { "x": 19261.293370383617, @@ -27373,7 +30622,7 @@ "name": "New Data Formula", "code": "record.VEma20", "project": "Foundations", - "id": "144263a1-419a-4ed6-914f-4a5abe36bb6f", + "id": "454b0ebb-9173-4f0e-bc24-280b8d2e4c96", "savedPayload": { "position": { "x": 19923.983686200994, @@ -27401,7 +30650,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.TRUE_BLUE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "4b04d232-3fd7-4647-adc0-1dd2ff1cf306", + "id": "e01a0d94-88db-41a2-b95a-0cc4f8b8a2c3", "savedPayload": { "position": { "x": 19511.745198079323, @@ -27424,7 +30673,7 @@ } } }, - "id": "bda58470-4c24-4b85-9a71-a5a5cface59e", + "id": "bb132d1b-28f9-4cb8-8f21-137783e247c7", "savedPayload": { "position": { "x": 19558.726828795763, @@ -27457,7 +30706,7 @@ "name": "New Data Formula", "code": "record.VEma10", "project": "Foundations", - "id": "c93eda75-b906-4516-80f3-ea690c5f9569", + "id": "fe4f6674-440e-4580-87e3-d90c09485117", "savedPayload": { "position": { "x": 19760.243516505634, @@ -27485,7 +30734,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.TRUE_BLUE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "7f02458e-1c4f-438f-a69b-ee7552ce15d0", + "id": "9cd414ab-f4aa-4fff-bf39-8942483b4859", "savedPayload": { "position": { "x": 19245.073654664877, @@ -27508,7 +30757,7 @@ } } }, - "id": "571c15dc-45ce-4fc5-afd1-65ec3ea3fb7b", + "id": "42d2591b-204d-4348-8f47-7ca9e03c0413", "savedPayload": { "position": { "x": 19741.355257498377, @@ -27541,7 +30790,7 @@ "name": "New Data Formula", "code": "record.VEma5", "project": "Foundations", - "id": "3a31328c-0a2f-41e1-bdb6-b30f001dbab1", + "id": "437532f8-a36c-4175-9d12-799b1fb5a4d9", "savedPayload": { "position": { "x": 20191.878281255034, @@ -27569,7 +30818,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.TRUE_BLUE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "6d20fb92-7a06-44e8-bd01-424c8dfc2ac9", + "id": "3ac369ef-402c-4317-861e-06dd51cb42e1", "savedPayload": { "position": { "x": 19591.878281255034, @@ -27592,7 +30841,7 @@ } } }, - "id": "d349c449-7bb9-4486-903e-583001fbd6f5", + "id": "c95ef06c-1d09-4881-a499-f6b88be06e93", "savedPayload": { "position": { "x": 19626.55022778885, @@ -27625,7 +30874,7 @@ "name": "New Data Formula", "code": "record.VEma3", "project": "Foundations", - "id": "de35817e-e731-4321-8f5a-37fb6ab58b5e", + "id": "13ab6f98-9e30-4604-b499-8117720e1874", "savedPayload": { "position": { "x": 19511.745198079323, @@ -27653,7 +30902,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.TRUE_BLUE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "0180d6c2-7cba-47fc-8924-0147f671e75d", + "id": "21b2a432-3045-4ede-91a3-d2fe2ac11810", "savedPayload": { "position": { "x": 19031.683310964563, @@ -27676,7 +30925,7 @@ } } }, - "id": "b0447ae5-d440-4061-b8d4-0a3337f4c823", + "id": "145ceaae-ba57-4350-93d9-1e4624de379f", "savedPayload": { "position": { "x": 19329.116769376706, @@ -27700,7 +30949,7 @@ } } ], - "id": "8164f9f2-2754-45a1-a90e-ce332706c640", + "id": "e4b50505-7c2e-49f7-ad63-434a1acacbab", "savedPayload": { "position": { "x": 19443.921799086234, @@ -27724,15 +30973,15 @@ } } ], - "id": "2b37ed9e-e434-4955-8dd8-0b1dd4d6403b", + "id": "eb5ea832-3feb-4289-b174-5dc7ddfc0b37", "savedPayload": { "position": { - "x": 19146.488340674092, - "y": 9188.474656388174 + "x": 17531.21779431397, + "y": 8684.639734412041 }, "targetPosition": { - "x": 19031.683310964563, - "y": 9465.63851614156 + "x": 17791.5480377845, + "y": 9225.221055153494 }, "floatingObject": { "isPinned": false, @@ -27748,11 +30997,11 @@ } } ], - "id": "76b458d7-0a90-4717-9c28-430044ccdbb8", + "id": "b53175dd-f063-4859-ba64-7d5bb0fa447f", "savedPayload": { "position": { - "x": 17918.365720881247, - "y": 9180.845628585852 + "x": 17711.03943321634, + "y": 9272.012056358752 }, "targetPosition": { "x": 18051.878281255034, @@ -27801,7 +31050,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.osc", "project": "Foundations", - "id": "ec8b68dd-1047-46ec-aa61-0dcba833dd7c", + "id": "be91f5f7-5da3-4483-b3a8-2980fa8df5f3", "savedPayload": { "position": { "x": 19121.876863091304, @@ -27824,7 +31073,7 @@ } } }, - "id": "a90fa6d7-bce5-4e53-8c99-50b7f6eba85d", + "id": "7d94d215-d98d-4628-b6c7-307b4acff801", "savedPayload": { "position": { "x": 18694.85690797037, @@ -27856,7 +31105,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.osc", "project": "Foundations", - "id": "f27f34e9-a196-4b37-b15e-0b65f383a13d", + "id": "d50d7d10-30fc-4ba7-8e42-b831c1e378a1", "savedPayload": { "position": { "x": 19022.30697120627, @@ -27879,7 +31128,7 @@ } } }, - "id": "e48a8bed-fe67-4fb9-a603-7349a03d02d2", + "id": "be616391-78c7-487a-8ca0-0fbfc276a815", "savedPayload": { "position": { "x": 18645.071962027854, @@ -27911,7 +31160,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.oscb", "project": "Foundations", - "id": "bbd65839-32f8-4b5e-808c-a42a6fa753c1", + "id": "bf411ed9-ac10-450f-9f5a-72a8d7f90185", "savedPayload": { "position": { "x": 18354.60576711488, @@ -27934,7 +31183,7 @@ } } }, - "id": "4c29e450-50a2-4e9f-8d2d-74587fd237ea", + "id": "52619a28-3990-4413-a11a-452402a64fb8", "savedPayload": { "position": { "x": 18311.22135998216, @@ -27966,7 +31215,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.oscb", "project": "Foundations", - "id": "d0ad0ed2-f15b-48b9-8a8c-4cc73873adeb", + "id": "ace5f40d-228c-45fb-85f7-1dabd6fecf2a", "savedPayload": { "position": { "x": 17621.56587612036, @@ -27989,7 +31238,7 @@ } } }, - "id": "6fda6b0a-a458-4cb6-bd76-f5c2517a1835", + "id": "46d10807-2323-4876-85ec-9282a47c714c", "savedPayload": { "position": { "x": 17944.701414484898, @@ -28021,7 +31270,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.oscs", "project": "Foundations", - "id": "7e275f5d-5916-43bf-b5b1-467fd542236c", + "id": "69143a2a-b2f0-45b3-be6a-5bd5c91d4729", "savedPayload": { "position": { "x": 17375.181287430307, @@ -28044,7 +31293,7 @@ } } }, - "id": "9afc6e6a-24df-48b4-9010-caa63435654c", + "id": "5d9f7d46-7cfd-41d4-bb9b-7acd6e4e977c", "savedPayload": { "position": { "x": 17821.50912013987, @@ -28076,7 +31325,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.oscs", "project": "Foundations", - "id": "e065ce51-78eb-4901-8435-70cdd415a2d1", + "id": "1d19eed7-c1a7-49f3-a2e0-f2d68743dbef", "savedPayload": { "position": { "x": 17800.98462165802, @@ -28099,7 +31348,7 @@ } } }, - "id": "c1707db6-4438-4b1d-ba93-3a87fdb2382c", + "id": "38a2834b-82ee-42be-8af3-614dd6ef5235", "savedPayload": { "position": { "x": 18034.410787253728, @@ -28123,7 +31372,7 @@ } } ], - "id": "6187dfd1-2eb0-4615-ac8b-ead07cf3f0c6", + "id": "e53bb674-1e0a-45f6-a159-a31ff6766751", "savedPayload": { "position": { "x": 18267.836952849437, @@ -28161,7 +31410,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_BLUE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "8daa79e7-ed1c-4b30-9fe1-3028aab98de0", + "id": "5aca03a8-d6ef-413f-8fea-7940fce2e103", "savedPayload": { "position": { "x": 18915.94122093975, @@ -28185,7 +31434,7 @@ } }, "styleConditions": [], - "id": "1c09aa8e-61b1-490d-bd29-d504fbdc9369", + "id": "4901d9b9-a0a2-4238-b460-66431d1381d3", "savedPayload": { "position": { "x": 18933.073039750976, @@ -28213,7 +31462,7 @@ "type": "Polygon Vertex", "name": " Volume Oscillator End", "project": "Foundations", - "id": "e6d71acf-166e-4f21-a851-1861173b2af6", + "id": "821e7389-3dfa-4ecb-b3f4-12b0dd644760", "savedPayload": { "position": { "x": 18500.53108705199, @@ -28237,15 +31486,53 @@ "referenceParent": { "type": "Point", "name": "Volume Oscillator End", - "id": "e48a8bed-fe67-4fb9-a603-7349a03d02d2" - } + "id": "be616391-78c7-487a-8ca0-0fbfc276a815" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Plotter", + "Foundations", + "5ad09001-0b4f-4217-a83f-d4eddaef9c9a" + ], + [ + "Volume Oscillators", + "Plotter Module", + "Foundations", + "6d1c59e5-a8b7-4864-8af2-14cb56633e8d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "fbd8a77f-03a3-4076-a472-a60c95faa4c6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "eb058213-2c35-460c-902f-96c7b3aa5402" + ], + [ + "Volume Oscillator End", + "Point", + "Foundations", + "13762b1e-63b5-4799-b984-d5f046313c70" + ] + ] } }, { "type": "Polygon Vertex", "name": " Volume Oscillator Begin", "project": "Foundations", - "id": "2d8df6eb-f069-4c65-9ffe-5a5cb334ac8b", + "id": "7dae79bf-b382-49d8-87da-28bdecaea304", "savedPayload": { "position": { "x": 18967.33667737343, @@ -28269,12 +31556,50 @@ "referenceParent": { "type": "Point", "name": "Volume Oscillator Begin", - "id": "a90fa6d7-bce5-4e53-8c99-50b7f6eba85d" - } + "id": "7d94d215-d98d-4628-b6c7-307b4acff801" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Plotter", + "Foundations", + "5ad09001-0b4f-4217-a83f-d4eddaef9c9a" + ], + [ + "Volume Oscillators", + "Plotter Module", + "Foundations", + "6d1c59e5-a8b7-4864-8af2-14cb56633e8d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "fbd8a77f-03a3-4076-a472-a60c95faa4c6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "eb058213-2c35-460c-902f-96c7b3aa5402" + ], + [ + "Volume Oscillator Begin", + "Point", + "Foundations", + "4314ae0a-de67-46a4-a244-9cfa60e70933" + ] + ] } } ], - "id": "c0dac60f-f367-45ab-a08d-e828c86f866a", + "id": "f483c521-e9fd-4358-bcbe-39cf18003aba", "savedPayload": { "position": { "x": 18950.204858562203, @@ -28310,7 +31635,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "44f40582-fad3-4495-9f45-b327a600d02d", + "id": "17346f0c-f6ad-461a-97c5-07681c6ca3c9", "savedPayload": { "position": { "x": 19219.160767319798, @@ -28334,7 +31659,7 @@ } }, "styleConditions": [], - "id": "37ad622c-a50a-4ead-82b8-ef0dac21840b", + "id": "c1d9b0f0-5711-461e-a6d9-b195533f495b", "savedPayload": { "position": { "x": 19448.009638878477, @@ -28362,7 +31687,7 @@ "type": "Polygon Vertex", "name": " Volume Oscillator BUY End", "project": "Foundations", - "id": "4b9ed175-57c7-43ed-8e9c-f6b709697170", + "id": "cd11732d-075e-4633-bd70-5f7515b36e92", "savedPayload": { "position": { "x": 19870.838390801895, @@ -28386,15 +31711,53 @@ "referenceParent": { "type": "Point", "name": "Volume Oscillator BUY End", - "id": "6fda6b0a-a458-4cb6-bd76-f5c2517a1835" - } + "id": "46d10807-2323-4876-85ec-9282a47c714c" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Plotter", + "Foundations", + "5ad09001-0b4f-4217-a83f-d4eddaef9c9a" + ], + [ + "Volume Oscillators", + "Plotter Module", + "Foundations", + "6d1c59e5-a8b7-4864-8af2-14cb56633e8d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "fbd8a77f-03a3-4076-a472-a60c95faa4c6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "eb058213-2c35-460c-902f-96c7b3aa5402" + ], + [ + "Volume Oscillator BUY End", + "Point", + "Foundations", + "d34de1f5-0c62-46a6-b0d7-53f71978e8e0" + ] + ] } }, { "type": "Polygon Vertex", "name": " VOlume Oscillator BUY Begin", "project": "Foundations", - "id": "0d7e6b8e-536a-4e1f-82f0-64a33da535fc", + "id": "0f62b625-3f83-4bab-8101-27ef1afd411c", "savedPayload": { "position": { "x": 19905.707381995835, @@ -28418,12 +31781,50 @@ "referenceParent": { "type": "Point", "name": "VOlume Oscillator BUY Begin", - "id": "4c29e450-50a2-4e9f-8d2d-74587fd237ea" - } + "id": "52619a28-3990-4413-a11a-452402a64fb8" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Plotter", + "Foundations", + "5ad09001-0b4f-4217-a83f-d4eddaef9c9a" + ], + [ + "Volume Oscillators", + "Plotter Module", + "Foundations", + "6d1c59e5-a8b7-4864-8af2-14cb56633e8d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "fbd8a77f-03a3-4076-a472-a60c95faa4c6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "eb058213-2c35-460c-902f-96c7b3aa5402" + ], + [ + "VOlume Oscillator BUY Begin", + "Point", + "Foundations", + "6f86326a-b83e-4ccc-80c6-057e0c1c32fe" + ] + ] } } ], - "id": "2e2cab9e-8944-4f59-9d86-370b5efa1c03", + "id": "40a783d7-f868-4a5a-b5f0-6adee1aefa0b", "savedPayload": { "position": { "x": 19277.21512066749, @@ -28459,7 +31860,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "2db4f8e8-14aa-4183-877a-846b726f66da", + "id": "a0dbfb95-34c4-46c1-b122-c1b72d0cc0e7", "savedPayload": { "position": { "x": 19988.00519780637, @@ -28483,7 +31884,7 @@ } }, "styleConditions": [], - "id": "ee33a6bd-378a-4deb-8b0d-105816dae10f", + "id": "ad0b14c6-e310-4de5-9af9-eaa8be340cae", "savedPayload": { "position": { "x": 19874.237559010493, @@ -28511,7 +31912,7 @@ "type": "Polygon Vertex", "name": " Volume Oscillator SELL End", "project": "Foundations", - "id": "22d9fc91-1297-4b4a-8c51-d06f08e28698", + "id": "44dd250e-96c2-42ea-a8c9-d5b1c6906a57", "savedPayload": { "position": { "x": 20038.061210356813, @@ -28535,15 +31936,53 @@ "referenceParent": { "type": "Point", "name": "Volume Oscillator SELL End", - "id": "c1707db6-4438-4b1d-ba93-3a87fdb2382c" - } + "id": "38a2834b-82ee-42be-8af3-614dd6ef5235" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Plotter", + "Foundations", + "5ad09001-0b4f-4217-a83f-d4eddaef9c9a" + ], + [ + "Volume Oscillators", + "Plotter Module", + "Foundations", + "6d1c59e5-a8b7-4864-8af2-14cb56633e8d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "fbd8a77f-03a3-4076-a472-a60c95faa4c6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "eb058213-2c35-460c-902f-96c7b3aa5402" + ], + [ + "Volume Oscillator SELL End", + "Point", + "Foundations", + "2abd96e8-e39f-4f15-addc-a3f62d727a82" + ] + ] } }, { "type": "Polygon Vertex", "name": " Volume Oscillator SELL Begin", "project": "Foundations", - "id": "0dd4fca6-290a-40a9-ad32-d3740fa8aee4", + "id": "7b107b26-b9cb-4bd3-bb1e-67141aff6686", "savedPayload": { "position": { "x": 19646.702281418737, @@ -28567,12 +32006,50 @@ "referenceParent": { "type": "Point", "name": "Volume Oscillator SELL Begin", - "id": "9afc6e6a-24df-48b4-9010-caa63435654c" - } + "id": "5d9f7d46-7cfd-41d4-bb9b-7acd6e4e977c" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Volume Oscillators", + "Plotter", + "Foundations", + "5ad09001-0b4f-4217-a83f-d4eddaef9c9a" + ], + [ + "Volume Oscillators", + "Plotter Module", + "Foundations", + "6d1c59e5-a8b7-4864-8af2-14cb56633e8d" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "fbd8a77f-03a3-4076-a472-a60c95faa4c6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "eb058213-2c35-460c-902f-96c7b3aa5402" + ], + [ + "Volume Oscillator SELL Begin", + "Point", + "Foundations", + "ca4ead68-7d62-4a2c-9f62-b9ef5428921a" + ] + ] } } ], - "id": "3d75d11f-e84c-420a-8dfd-f64681cbb1d0", + "id": "c2b1216f-581a-45fb-ab9c-f17b3d90bd44", "savedPayload": { "position": { "x": 19773.742183591043, @@ -28598,7 +32075,7 @@ ], "images": [], "texts": [], - "id": "489a06a4-6066-412e-b358-8b725e89f7fb", + "id": "56cb5628-7e7d-4163-8ee1-e6f3d1273cf3", "savedPayload": { "position": { "x": 19399.878630072417, @@ -28638,7 +32115,7 @@ "name": "New Data Formula", "code": "record.oscb", "project": "Foundations", - "id": "1a4795b7-2248-4044-b670-5b0e93daf5fc", + "id": "1619ffec-910a-48b5-b6cc-8eacdc8d7c2e", "savedPayload": { "position": { "x": 18850.05945166466, @@ -28666,7 +32143,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.TRUE_GREEN\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "40a739bc-fba0-4fac-8c21-22641214f74f", + "id": "8a1ad915-949a-4482-bac9-0d3cd2316a89", "savedPayload": { "position": { "x": 19573.65064431035, @@ -28689,7 +32166,7 @@ } } }, - "id": "5af61acd-09c4-4fda-a867-ac851b1d0bf9", + "id": "ee74ae10-d4ae-4cf1-ba4e-46179b18fbbe", "savedPayload": { "position": { "x": 19295.47910051108, @@ -28722,7 +32199,7 @@ "name": "New Data Formula", "code": "record.osc", "project": "Foundations", - "id": "54bc04cf-e904-4764-abf4-10b54f8c5c39", + "id": "63ed5805-0bc7-4653-9b35-5fa185ac56b4", "savedPayload": { "position": { "x": 19492.400386165333, @@ -28750,7 +32227,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.TRUE_BLUE\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "257eb940-fee6-4ddb-bf0c-80ac38c6382c", + "id": "68448211-7e96-4a24-8d58-ef5b43e058bd", "savedPayload": { "position": { "x": 20152.074453127098, @@ -28773,7 +32250,7 @@ } } }, - "id": "71f3deac-d398-4719-a5dd-6e83d9e2213b", + "id": "a10a8d26-0737-4d7b-ad28-d42c5ed1de34", "savedPayload": { "position": { "x": 19880.49277541546, @@ -28806,7 +32283,7 @@ "name": "New Data Formula", "code": "record.oscs", "project": "Foundations", - "id": "ce3fbe83-3a36-4d64-8b97-c584e0106254", + "id": "a8b068fc-9167-423a-81ff-f7d67f14b4e2", "savedPayload": { "position": { "x": 20075.39495945179, @@ -28834,7 +32311,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.TRUE_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "ca03d89e-ad43-4e3d-b89a-f975540c0e35", + "id": "40d8f860-182a-4746-b785-b704a7e96ff6", "savedPayload": { "position": { "x": 19351.8037668061, @@ -28857,7 +32334,7 @@ } } }, - "id": "62b7fc18-5706-4551-9c62-d8a52f481562", + "id": "e5b15427-5571-49dc-ad88-31d32dbc43b9", "savedPayload": { "position": { "x": 19629.975310605372, @@ -28881,7 +32358,7 @@ } } ], - "id": "f1fed89a-90ca-46cd-b1eb-acae6b408339", + "id": "b2ed1742-3cd6-4d00-b3cf-b80327842194", "savedPayload": { "position": { "x": 19462.727205558225, @@ -28905,7 +32382,7 @@ } } ], - "id": "56ff8ae2-3435-4a2c-9bff-76515bd9cfc8", + "id": "be515793-ba61-474d-af7d-0c10442c7409", "savedPayload": { "position": { "x": 19044.96163570099, @@ -28929,11 +32406,11 @@ } } ], - "id": "59985834-3cee-41bb-9f29-35e111921149", + "id": "59a9f2df-50b6-47bb-8684-2f7be98f2f7c", "savedPayload": { "position": { - "x": 18051.878281255034, - "y": 9165.802375894946 + "x": 17839.115349029515, + "y": 9204.792630283697 }, "targetPosition": { "x": 18051.878281255034, @@ -28982,7 +32459,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.PastForecast", "project": "Foundations", - "id": "be43af30-a7fc-4a5f-8a50-bd663fc79683", + "id": "ed73bdee-c415-4b9e-8ab5-9a909ce7ec4a", "savedPayload": { "position": { "x": 19655.423312256804, @@ -29005,7 +32482,7 @@ } } }, - "id": "66ee4cbb-40a2-494e-b08e-8ebd98acd104", + "id": "5b03f1f5-d618-43fb-9ae6-9c05aab82020", "savedPayload": { "position": { "x": 19249.106370027825, @@ -29037,7 +32514,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.PastForecast", "project": "Foundations", - "id": "2963d17a-b2f6-46e9-852a-09d819a7f093", + "id": "41438f17-cdfb-4a27-a6a1-eb60718b7356", "savedPayload": { "position": { "x": 19713.943259055566, @@ -29060,7 +32537,7 @@ } } }, - "id": "ffcc62a4-8fb9-4832-bfac-e98269ff5e3c", + "id": "5884be33-8e76-4bb5-b1cd-1a8dc72f2f30", "savedPayload": { "position": { "x": 19278.366343427206, @@ -29092,7 +32569,7 @@ "name": "New Point Formula", "code": "x = record.T5begin\ny =(1 + record.previous.forecast5 / 100) * record.previous.PastForecast", "project": "Foundations", - "id": "11c88d33-0cbf-4724-9dbc-6b7523a5fe80", + "id": "16698d64-1e78-4c3a-906c-1b565c368ca6", "savedPayload": { "position": { "x": 19364.840646412922, @@ -29115,7 +32592,7 @@ } } }, - "id": "26f9f0ac-88ea-491c-9bc0-dc1b72aab84c", + "id": "ab07eada-ff73-4924-a2f2-e6024793d674", "savedPayload": { "position": { "x": 19103.815037105884, @@ -29147,7 +32624,7 @@ "name": "New Point Formula", "code": "x = record.T5end\ny = (1 + record.forecast5 / 100) * record.PastForecast", "project": "Foundations", - "id": "be2d9f83-c09c-4ae9-8f07-52a53251fe45", + "id": "88681800-1db0-4329-9862-39809213cd50", "savedPayload": { "position": { "x": 18771.464466627738, @@ -29170,7 +32647,7 @@ } } }, - "id": "a433bfe9-9af7-4841-b3f5-7d49c135d525", + "id": "86c926c4-cbdb-4c43-afca-f834739b2173", "savedPayload": { "position": { "x": 18807.12694721329, @@ -29202,7 +32679,7 @@ "name": "New Point Formula", "code": "x = record.T5begin\ny =(1 + record.previous.minForecast5/ 100) * record.previous.PastForecast", "project": "Foundations", - "id": "9566d1c5-44a6-4972-b9ef-7cca438a655b", + "id": "190254f2-0184-44f7-a069-7220f83dd2a4", "savedPayload": { "position": { "x": 18211.462028863156, @@ -29225,7 +32702,7 @@ } } }, - "id": "fa306c31-c2c4-4268-b3fd-96220dde53f8", + "id": "47837daa-368c-4b51-8dae-87e6877959ac", "savedPayload": { "position": { "x": 18527.125728331, @@ -29257,7 +32734,7 @@ "name": "New Point Formula", "code": "x = record.T5end\ny =(1 + record.minForecast5/ 100) * record.PastForecast", "project": "Foundations", - "id": "88c2dc9a-0d7b-42fe-85ba-b3bb5737ef08", + "id": "8e154579-8989-4d85-9f9b-f549ded226fd", "savedPayload": { "position": { "x": 17946.86469748307, @@ -29280,7 +32757,7 @@ } } }, - "id": "c0a2bcda-1626-4e23-bce8-58fa9e707f27", + "id": "3f8cabbf-c52f-4ea4-b46e-6cc28407a0e4", "savedPayload": { "position": { "x": 18394.827062640958, @@ -29312,7 +32789,7 @@ "name": "New Point Formula", "code": "x = record.T5begin\ny =(1 + record.previous.maxForecast5/ 100) * record.previous.PastForecast", "project": "Foundations", - "id": "1e346a7d-27c7-4568-9340-562c34ea3e1c", + "id": "73072bbc-8d2c-4e70-8330-10f2ba09bbe6", "savedPayload": { "position": { "x": 18101.480504511994, @@ -29335,7 +32812,7 @@ } } }, - "id": "853a5dbd-867d-4959-b430-3d93a15625ea", + "id": "230c05e4-d4ac-411d-b6f2-ba4578f92084", "savedPayload": { "position": { "x": 18472.13496615542, @@ -29367,7 +32844,7 @@ "name": "New Point Formula", "code": "x = record.T5end\ny =(1 + record.maxForecast5/ 100) * record.PastForecast", "project": "Foundations", - "id": "84d14842-61f7-4155-823f-6e716150d775", + "id": "bc3c155e-9b12-49bd-91cd-c9473a57c674", "savedPayload": { "position": { "x": 18602.962995477814, @@ -29390,7 +32867,7 @@ } } }, - "id": "067f13cf-d595-455c-923a-976d1f1d774d", + "id": "1cd0ae40-7a07-47a2-aba2-083616ba30d1", "savedPayload": { "position": { "x": 18722.87621163833, @@ -29414,7 +32891,7 @@ } } ], - "id": "79ce74ee-1470-423c-bac7-f305890e4485", + "id": "5b1804fd-c392-4bc0-a79d-331c63ea07f2", "savedPayload": { "position": { "x": 18842.789427798845, @@ -29452,7 +32929,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_BLUE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "3a6e4b0f-e931-4acc-8b21-b06e5bb0f7e7", + "id": "b461885a-e67b-4f76-91bc-e659a36995cf", "savedPayload": { "position": { "x": 18397.994143681477, @@ -29476,7 +32953,7 @@ } }, "styleConditions": [], - "id": "75a62612-8a3c-4911-805e-4c285c83bc5f", + "id": "ff82a78c-5618-4b03-8e79-0b847ed84221", "savedPayload": { "position": { "x": 18807.32854159101, @@ -29504,7 +32981,7 @@ "type": "Polygon Vertex", "name": " PastForecast End", "project": "Foundations", - "id": "4ad04021-9a80-4674-be87-d03fb166dd57", + "id": "f7a27edd-6389-4a9e-91f0-ee8e6f99765d", "savedPayload": { "position": { "x": 19403.599695351393, @@ -29528,15 +33005,53 @@ "referenceParent": { "type": "Point", "name": "PastForecast End", - "id": "ffcc62a4-8fb9-4832-bfac-e98269ff5e3c" - } + "id": "5884be33-8e76-4bb5-b1cd-1a8dc72f2f30" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters", + "Plotter", + "Foundations", + "051ef580-6010-4015-9de9-8072a5b993c2" + ], + [ + "Holt-Winters", + "Plotter Module", + "Foundations", + "0b596ddc-3b5d-4449-925c-b6f8aa3f1fca" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "3f63adbc-62f7-4f4e-9991-250e4db9f0e6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "6f98a9ad-7e69-408b-bbe1-1de383f24091" + ], + [ + "PastForecast End", + "Point", + "Foundations", + "070b46bd-df50-4c23-9e6a-50be79613de0" + ] + ] } }, { "type": "Polygon Vertex", "name": " PastForecast Begin", "project": "Foundations", - "id": "6493b09e-428a-4eb0-8086-be841caf9c12", + "id": "063901e5-2e42-4be1-a5ae-b40bccac3e4b", "savedPayload": { "position": { "x": 19625.997337410077, @@ -29560,12 +33075,50 @@ "referenceParent": { "type": "Point", "name": "PastForecast Begin", - "id": "66ee4cbb-40a2-494e-b08e-8ebd98acd104" - } + "id": "5b03f1f5-d618-43fb-9ae6-9c05aab82020" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters", + "Plotter", + "Foundations", + "051ef580-6010-4015-9de9-8072a5b993c2" + ], + [ + "Holt-Winters", + "Plotter Module", + "Foundations", + "0b596ddc-3b5d-4449-925c-b6f8aa3f1fca" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "3f63adbc-62f7-4f4e-9991-250e4db9f0e6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "6f98a9ad-7e69-408b-bbe1-1de383f24091" + ], + [ + "PastForecast Begin", + "Point", + "Foundations", + "def6595f-6583-41ad-895c-eeb2c4eba009" + ] + ] } } ], - "id": "8661d94d-2851-4b73-b1b7-7d20634d8f77", + "id": "5b3145c2-b242-4adb-b5cf-6bbdb8d27b60", "savedPayload": { "position": { "x": 18581.763818491807, @@ -29601,7 +33154,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.BROWN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "ed42ebad-287f-439d-bbc5-f341fe80ae85", + "id": "e25d3113-f8c7-4c0b-b92c-275b91957871", "savedPayload": { "position": { "x": 18874.23414345827, @@ -29625,7 +33178,7 @@ } }, "styleConditions": [], - "id": "833a5cb0-62d4-414a-b2b2-6d465dc57b74", + "id": "8e169aec-10a9-4399-bdf2-c4d39581f1ee", "savedPayload": { "position": { "x": 19135.25975276531, @@ -29653,7 +33206,7 @@ "type": "Polygon Vertex", "name": " Forecast5 Begin", "project": "Foundations", - "id": "bd75fc98-7114-430d-b2cb-0031f985bb3c", + "id": "8e9a7591-2908-478e-a900-e77cbb69c3d0", "savedPayload": { "position": { "x": 19762.844540494996, @@ -29677,15 +33230,53 @@ "referenceParent": { "type": "Point", "name": "Forecast5 Begin", - "id": "26f9f0ac-88ea-491c-9bc0-dc1b72aab84c" - } + "id": "ab07eada-ff73-4924-a2f2-e6024793d674" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters", + "Plotter", + "Foundations", + "051ef580-6010-4015-9de9-8072a5b993c2" + ], + [ + "Holt-Winters", + "Plotter Module", + "Foundations", + "0b596ddc-3b5d-4449-925c-b6f8aa3f1fca" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "3f63adbc-62f7-4f4e-9991-250e4db9f0e6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "6f98a9ad-7e69-408b-bbe1-1de383f24091" + ], + [ + "Forecast5 Begin", + "Point", + "Foundations", + "509116e4-eab0-49a3-bcd6-216b3ce589b8" + ] + ] } }, { "type": "Polygon Vertex", "name": " Forecast5 End", "project": "Foundations", - "id": "680b03a4-a79a-4164-a7a6-4dd160165ce8", + "id": "4d4010df-bc82-4451-9f5e-eef0018ff500", "savedPayload": { "position": { "x": 19657.310971379386, @@ -29709,12 +33300,50 @@ "referenceParent": { "type": "Point", "name": "Forecast5 End", - "id": "a433bfe9-9af7-4841-b3f5-7d49c135d525" - } + "id": "86c926c4-cbdb-4c43-afca-f834739b2173" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters", + "Plotter", + "Foundations", + "051ef580-6010-4015-9de9-8072a5b993c2" + ], + [ + "Holt-Winters", + "Plotter Module", + "Foundations", + "0b596ddc-3b5d-4449-925c-b6f8aa3f1fca" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "3f63adbc-62f7-4f4e-9991-250e4db9f0e6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "6f98a9ad-7e69-408b-bbe1-1de383f24091" + ], + [ + "Forecast5 End", + "Point", + "Foundations", + "e51678e4-3706-49cd-821c-336b907b5f20" + ] + ] } } ], - "id": "7734eb66-aa2c-4cd0-a8fb-222013e3ec48", + "id": "f4436e81-2227-4926-bf99-5c337d38686a", "savedPayload": { "position": { "x": 18768.700574342656, @@ -29750,7 +33379,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RED_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "b2bcc4b3-55ee-4bf2-8185-d3f1e8a761a7", + "id": "e8a3d797-3785-4b2b-b850-45290ffd896d", "savedPayload": { "position": { "x": 18397.994143681477, @@ -29774,7 +33403,7 @@ } }, "styleConditions": [], - "id": "9a3d9235-df5b-43fe-b3d0-f7634c926c7c", + "id": "acdd6185-9352-495b-9356-4854205cad72", "savedPayload": { "position": { "x": 18807.32854159101, @@ -29802,7 +33431,7 @@ "type": "Polygon Vertex", "name": " Forecast5 min Begin", "project": "Foundations", - "id": "e2fa7dea-1f62-4326-ac8b-953b11efea54", + "id": "387fd5fa-8135-4be4-bb07-94d1e1f9f277", "savedPayload": { "position": { "x": 19403.599695351393, @@ -29826,15 +33455,53 @@ "referenceParent": { "type": "Point", "name": "Forecast5 min Begin", - "id": "fa306c31-c2c4-4268-b3fd-96220dde53f8" - } + "id": "47837daa-368c-4b51-8dae-87e6877959ac" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters", + "Plotter", + "Foundations", + "051ef580-6010-4015-9de9-8072a5b993c2" + ], + [ + "Holt-Winters", + "Plotter Module", + "Foundations", + "0b596ddc-3b5d-4449-925c-b6f8aa3f1fca" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "3f63adbc-62f7-4f4e-9991-250e4db9f0e6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "6f98a9ad-7e69-408b-bbe1-1de383f24091" + ], + [ + "Forecast5 min Begin", + "Point", + "Foundations", + "5a81a524-1b63-4c1d-8223-bc9766f368f6" + ] + ] } }, { "type": "Polygon Vertex", "name": " Forecast5 min End", "project": "Foundations", - "id": "c159e9ad-cb37-4c6d-b791-a19d5ffdf15e", + "id": "1068e1b8-4c02-4e34-94a6-0edec5867eb8", "savedPayload": { "position": { "x": 19625.997337410077, @@ -29858,12 +33525,50 @@ "referenceParent": { "type": "Point", "name": "Forecast5 min End", - "id": "c0a2bcda-1626-4e23-bce8-58fa9e707f27" - } + "id": "3f8cabbf-c52f-4ea4-b46e-6cc28407a0e4" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters", + "Plotter", + "Foundations", + "051ef580-6010-4015-9de9-8072a5b993c2" + ], + [ + "Holt-Winters", + "Plotter Module", + "Foundations", + "0b596ddc-3b5d-4449-925c-b6f8aa3f1fca" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "3f63adbc-62f7-4f4e-9991-250e4db9f0e6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "6f98a9ad-7e69-408b-bbe1-1de383f24091" + ], + [ + "Forecast5 min End", + "Point", + "Foundations", + "340f0a97-8727-49fe-8519-1f40a7e94caa" + ] + ] } } ], - "id": "6e8b9b47-269f-4406-949e-70c39979831d", + "id": "6626bfff-fecf-4f23-ba7e-2fc4149faed2", "savedPayload": { "position": { "x": 19216.662939500544, @@ -29899,7 +33604,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.MIDNIGHT_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "5517b665-23cf-414b-b4fa-dc40b398d816", + "id": "6a1577f8-9c87-415c-8132-85ad8e8ca9f6", "savedPayload": { "position": { "x": 19392.13810983382, @@ -29923,7 +33628,7 @@ } }, "styleConditions": [], - "id": "daf419e7-7964-4e19-b2e3-a21828893c9c", + "id": "27417c7c-14d5-4348-841d-56c63211d153", "savedPayload": { "position": { "x": 19434.9133293207, @@ -29951,7 +33656,7 @@ "type": "Polygon Vertex", "name": " Forecast5 max Begin", "project": "Foundations", - "id": "d6711888-650f-4241-af73-3b02a8c2c357", + "id": "32ba779d-7541-49e8-b756-659f47054c79", "savedPayload": { "position": { "x": 19925.65091396547, @@ -29975,15 +33680,53 @@ "referenceParent": { "type": "Point", "name": "Forecast5 max Begin", - "id": "853a5dbd-867d-4959-b430-3d93a15625ea" - } + "id": "230c05e4-d4ac-411d-b6f2-ba4578f92084" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters", + "Plotter", + "Foundations", + "051ef580-6010-4015-9de9-8072a5b993c2" + ], + [ + "Holt-Winters", + "Plotter Module", + "Foundations", + "0b596ddc-3b5d-4449-925c-b6f8aa3f1fca" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "3f63adbc-62f7-4f4e-9991-250e4db9f0e6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "6f98a9ad-7e69-408b-bbe1-1de383f24091" + ], + [ + "Forecast5 max Begin", + "Point", + "Foundations", + "48f02dd9-5303-4709-9c10-5225acf5f026" + ] + ] } }, { "type": "Polygon Vertex", "name": " Forecast5 max End", "project": "Foundations", - "id": "378e535c-4896-4dc0-9cba-909625296b5a", + "id": "4855823a-ec2d-4644-84b1-6acdde4e0b68", "savedPayload": { "position": { "x": 19520.463768294463, @@ -30007,12 +33750,50 @@ "referenceParent": { "type": "Point", "name": "Forecast5 max End", - "id": "067f13cf-d595-455c-923a-976d1f1d774d" - } + "id": "1cd0ae40-7a07-47a2-aba2-083616ba30d1" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters", + "Plotter", + "Foundations", + "051ef580-6010-4015-9de9-8072a5b993c2" + ], + [ + "Holt-Winters", + "Plotter Module", + "Foundations", + "0b596ddc-3b5d-4449-925c-b6f8aa3f1fca" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "3f63adbc-62f7-4f4e-9991-250e4db9f0e6" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "6f98a9ad-7e69-408b-bbe1-1de383f24091" + ], + [ + "Forecast5 max End", + "Point", + "Foundations", + "2ae8018d-d847-43af-b5b6-ff42c076a73c" + ] + ] } } ], - "id": "a9670495-0b6f-4acf-87dc-0ead1f826591", + "id": "a40306ca-2abb-45cc-988c-51c01ef720a8", "savedPayload": { "position": { "x": 19477.688548807582, @@ -30038,7 +33819,7 @@ ], "images": [], "texts": [], - "id": "6634e2ab-1843-48c7-af67-aa6510b3dc9a", + "id": "b50286e1-238d-4576-b838-1bee95945718", "savedPayload": { "position": { "x": 19029.726183649695, @@ -30078,7 +33859,7 @@ "name": "New Data Formula", "code": "record.PastForecast", "project": "Foundations", - "id": "fa24f56a-f544-44a1-aa0a-719d4e738740", + "id": "c3e22f63-1aa9-46a9-9923-0893d92ba000", "savedPayload": { "position": { "x": 20107.51976543949, @@ -30106,7 +33887,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "4eb22e8c-fdae-4f47-9d02-9fec6ffbf7c5", + "id": "b15bccdc-6354-4801-afc5-c418d6ecaf7d", "savedPayload": { "position": { "x": 20070.433332361805, @@ -30129,7 +33910,7 @@ } } }, - "id": "28174254-2e82-4bc0-bf4f-6104a45dd47d", + "id": "b81021af-4cb8-4adb-9f06-5b291812ec78", "savedPayload": { "position": { "x": 20322.174850357602, @@ -30162,7 +33943,7 @@ "name": "New Data Formula", "code": "record.forecast5", "project": "Foundations", - "id": "4543e29d-a884-4653-8a2a-b9b9aa268405", + "id": "1ab3b639-de8d-40ee-abfa-3dd0a1ca9980", "savedPayload": { "position": { "x": 20019.677501527905, @@ -30190,7 +33971,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "fcc86cc7-8f6a-4979-b739-bd5d81adca43", + "id": "04a1e245-0ec0-40b7-8d01-e23738b77bf0", "savedPayload": { "position": { "x": 20188.97911557656, @@ -30213,7 +33994,7 @@ } } }, - "id": "55a3350e-4866-42e5-a975-75caa321909b", + "id": "7b44f348-ad4e-4475-ad3d-7e5d54633081", "savedPayload": { "position": { "x": 20323.956206651215, @@ -30246,7 +34027,7 @@ "name": "New Data Formula", "code": "record.forecast10", "project": "Foundations", - "id": "364ea5b4-f915-4deb-854d-b65aa3f0e9ef", + "id": "e1239bdf-93df-4955-9baf-63a879a3ae9b", "savedPayload": { "position": { "x": 20588.381864689934, @@ -30274,7 +34055,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "0bbea5a2-ad38-4403-a7ab-c85a8a17e2cc", + "id": "af527a67-4b19-4aab-b01f-1cdc1efc4a2e", "savedPayload": { "position": { "x": 20272.060147270535, @@ -30297,7 +34078,7 @@ } } }, - "id": "27134f50-b63c-43d4-ac50-1e32bdcc96bf", + "id": "db525a8f-440c-413f-bdaa-8dc8edd87f7f", "savedPayload": { "position": { "x": 20401.688880621088, @@ -30330,7 +34111,7 @@ "name": "New Data Formula", "code": "record.forecast20", "project": "Foundations", - "id": "0e8ef7d7-9446-47f6-950c-4f1c15834c4d", + "id": "c31983e6-2a58-4994-ae39-2b441e1118d2", "savedPayload": { "position": { "x": 20272.060147270535, @@ -30358,7 +34139,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "5ff2481a-27d1-4a10-a567-826a85f6a6da", + "id": "ffeb5785-a633-47dd-a06e-19e1135a5849", "savedPayload": { "position": { "x": 19756.890285429778, @@ -30381,7 +34162,7 @@ } } }, - "id": "0fe4ef23-898a-4d25-9a37-116b90ffbfd3", + "id": "7d6b7491-d850-4eec-8d7b-6cf17e69fca5", "savedPayload": { "position": { "x": 20541.932186758655, @@ -30414,7 +34195,7 @@ "name": "New Data Formula", "code": "record.forecast30", "project": "Foundations", - "id": "33de5d86-f8cf-4249-99a7-b393be65e563", + "id": "4b516dd0-5c64-49eb-9f5c-9823898f276e", "savedPayload": { "position": { "x": 20311.102385452763, @@ -30442,7 +34223,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "97581ea7-13c7-49b7-9b62-9155a85478fe", + "id": "969cec11-2a02-4b5f-b57b-9f05d41e95d1", "savedPayload": { "position": { "x": 21086.995961784945, @@ -30465,7 +34246,7 @@ } } }, - "id": "74948b47-7ce2-479d-baa6-efa6091aae8d", + "id": "f11a37da-235d-4ca5-922f-d65d0b6aea1f", "savedPayload": { "position": { "x": 20720.436783362296, @@ -30498,7 +34279,7 @@ "name": "New Data Formula", "code": "record.trend", "project": "Foundations", - "id": "1ccc410d-9adf-43d2-8c75-06bb814dc525", + "id": "bef85f2b-a7b8-4279-9202-f2709e310beb", "savedPayload": { "position": { "x": 19929.36405151103, @@ -30526,7 +34307,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "f7861df7-5b63-4bbb-b073-53d0a7247c98", + "id": "4aef64b0-8e3c-448a-bff4-1843fa33507b", "savedPayload": { "position": { "x": 19568.87523230481, @@ -30549,7 +34330,7 @@ } } }, - "id": "3075056d-1f6a-4863-a2ff-5653ee900436", + "id": "03aea33f-413e-4d28-819f-87b0e091e92c", "savedPayload": { "position": { "x": 20906.337604015884, @@ -30582,7 +34363,7 @@ "name": "New Data Formula", "code": "record.minForecast5", "project": "Foundations", - "id": "d4c77a78-77be-43f7-b65b-a01270d62c3d", + "id": "1fb5a328-8194-495e-aac0-3404c60119d5", "savedPayload": { "position": { "x": 21035.59237437013, @@ -30610,7 +34391,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "440a48c0-2a70-4fa7-9911-2d7b5f93c7ce", + "id": "85d72dd7-8095-42b4-b3b1-ae88963e5a71", "savedPayload": { "position": { "x": 20266.961124234815, @@ -30633,7 +34414,7 @@ } } }, - "id": "b9329928-c606-4f52-96b5-d10650666556", + "id": "c451d789-ffda-4bcd-9320-77dfba946226", "savedPayload": { "position": { "x": 21067.490707972487, @@ -30666,7 +34447,7 @@ "name": "New Data Formula", "code": "record.maxForecast5", "project": "Foundations", - "id": "595ab958-e76d-49b2-bc82-67a99e841e68", + "id": "b239a138-d6da-4d1c-8bdd-f6f66d227f4c", "savedPayload": { "position": { "x": 20970.90778573818, @@ -30694,7 +34475,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "eeb2f017-ca86-4985-b7e0-17ecde81e6a8", + "id": "38c229eb-4fa5-4946-8957-7a8cf79605e7", "savedPayload": { "position": { "x": 20216.466437265717, @@ -30717,7 +34498,7 @@ } } }, - "id": "d95cd2c3-ef16-4288-a3ef-a76edc780de7", + "id": "e4ec1c3e-54cf-4b84-a5ad-8949a8024172", "savedPayload": { "position": { "x": 21176.031259528012, @@ -30750,7 +34531,7 @@ "name": "New Data Formula", "code": "record.minForecast10", "project": "Foundations", - "id": "8eadf1a5-c121-43bf-837c-5ddd0d0e1e14", + "id": "550f5098-dd18-49fd-8818-d04f86cd320a", "savedPayload": { "position": { "x": 21273.625431232966, @@ -30778,7 +34559,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "f520a13d-39b8-459c-bbd5-8b36868d8638", + "id": "5ae34ad6-c11e-4f56-98da-9682f6fbd9f6", "savedPayload": { "position": { "x": 20508.287754351946, @@ -30801,7 +34582,7 @@ } } }, - "id": "ecc671f6-8f0e-4473-b215-36b16536a94a", + "id": "e15ee138-f85f-4d89-8239-4992aa8854ef", "savedPayload": { "position": { "x": 21213.191611258557, @@ -30834,7 +34615,7 @@ "name": "New Data Formula", "code": "record.maxForecast10", "project": "Foundations", - "id": "4afdf264-06fb-4566-b3c4-17cbab0fb659", + "id": "c1d41b1b-4b3d-4754-b76c-d482aeb5bd74", "savedPayload": { "position": { "x": 20874.135441601302, @@ -30862,7 +34643,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "aa2dc9a5-c897-448d-ada0-ea5f0b5db3f3", + "id": "3214a188-fffd-48d0-9e94-5f5a2cdc4537", "savedPayload": { "position": { "x": 20150.54424895561, @@ -30885,7 +34666,7 @@ } } }, - "id": "544974e5-d5d6-476c-a2e7-f5239118690b", + "id": "50d2486f-b9c2-4e6f-b76a-f009fc696557", "savedPayload": { "position": { "x": 21172.54640075871, @@ -30918,7 +34699,7 @@ "name": "New Data Formula", "code": "record.minForecast20", "project": "Foundations", - "id": "148b1821-9733-458e-a72e-12ebbf4ce5d1", + "id": "8529fd2e-08d4-477d-a5a4-300c9b43e519", "savedPayload": { "position": { "x": 21162.76741431798, @@ -30946,7 +34727,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "0aeaf423-824b-49dd-b7f8-dc575ab0598c", + "id": "a2c3a26d-e45b-4414-8201-d0e29e24d18b", "savedPayload": { "position": { "x": 20383.42814595671, @@ -30969,7 +34750,7 @@ } } }, - "id": "83f4c21f-e9f1-41ba-a062-f617624441ff", + "id": "bd8be66b-e768-4e23-afbc-fe110a42a39a", "savedPayload": { "position": { "x": 21061.123554174046, @@ -31002,7 +34783,7 @@ "name": "New Data Formula", "code": "record.maxForecast20", "project": "Foundations", - "id": "1ef3c1ed-5676-45e3-b99a-a8504accfa9a", + "id": "c8dbd696-8739-463d-ab1b-9ccc52e1a420", "savedPayload": { "position": { "x": 20805.998685833878, @@ -31030,7 +34811,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "f385246c-48ec-49fc-a294-0009fde01b5d", + "id": "ba916ad0-c974-41f5-a677-56f8eb0026ce", "savedPayload": { "position": { "x": 20110.623167411475, @@ -31053,7 +34834,7 @@ } } }, - "id": "9d7cd9e7-273a-4036-ba8d-19577edfc581", + "id": "11da8f1c-46d1-4559-9755-0fbfe461c17e", "savedPayload": { "position": { "x": 20898.189093923833, @@ -31086,7 +34867,7 @@ "name": "New Data Formula", "code": "record.minForecast30", "project": "Foundations", - "id": "c2e064cd-715e-49ab-b930-c543561ade11", + "id": "86b80061-c29d-48fd-a3f9-ae4975555d98", "savedPayload": { "position": { "x": 21073.438990626524, @@ -31114,7 +34895,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "e977adef-f16d-4529-be2f-6dc8523b5cb6", + "id": "8afbec5e-1118-49f5-ad98-f2004689f9ba", "savedPayload": { "position": { "x": 20299.0966117196, @@ -31137,7 +34918,7 @@ } } }, - "id": "76f616bd-1271-4aa7-8d60-644ba4b76654", + "id": "7fa65170-5378-49bc-91cc-2ac9bbac9e65", "savedPayload": { "position": { "x": 20711.915868398435, @@ -31170,7 +34951,7 @@ "name": "New Data Formula", "code": "record.maxForecast30", "project": "Foundations", - "id": "486866fa-da74-4ad8-b657-9d6a8c7e61bd", + "id": "a363fce1-3585-43d5-9063-019e21f8ab63", "savedPayload": { "position": { "x": 20755.792026620842, @@ -31198,7 +34979,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "9db5fab7-aed8-4e2e-8f3a-89d2dfd15b31", + "id": "34780f11-0859-4c61-a3f4-78dfb2ed8642", "savedPayload": { "position": { "x": 20084.53260212094, @@ -31221,7 +35002,7 @@ } } }, - "id": "5bdb947a-5013-47cc-a413-e8f8702ec2f7", + "id": "123971f1-ee18-4919-a0b3-623af105938c", "savedPayload": { "position": { "x": 20534.51221053032, @@ -31245,7 +35026,7 @@ } } ], - "id": "d98abde1-a983-483b-8cac-f5d2e0be3db1", + "id": "d56720e4-952c-4eb4-bece-d962f7ce62ec", "savedPayload": { "position": { "x": 20763.212002849177, @@ -31269,7 +35050,7 @@ } } ], - "id": "6fd0df65-0cbf-41c0-923b-8c0ada7c1d23", + "id": "da446172-20be-4a32-8982-f5923365f08a", "savedPayload": { "position": { "x": 19290.751792956733, @@ -31293,11 +35074,11 @@ } } ], - "id": "9b67bd7c-21a6-4a40-8666-cae865fa6f76", + "id": "817d54c3-7a4a-4788-8844-2ae997e3f620", "savedPayload": { "position": { - "x": 18185.390841628825, - "y": 9180.845628585852 + "x": 17979.55627310184, + "y": 9170.177051436112 }, "targetPosition": { "x": 18051.878281255034, @@ -31346,7 +35127,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.FastTrend", "project": "Foundations", - "id": "4b2ffb27-268c-4849-a7c9-354fc99c6f18", + "id": "40fde978-330c-428b-9dca-a4883db05b98", "savedPayload": { "position": { "x": 19193.245210751335, @@ -31369,7 +35150,7 @@ } } }, - "id": "2114d91e-a953-4373-839d-21a2f85d9213", + "id": "104fea61-3767-42e5-bf19-35b9b9ce8a78", "savedPayload": { "position": { "x": 18981.11317639537, @@ -31401,7 +35182,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.FastTrend", "project": "Foundations", - "id": "23276c79-2e58-48b1-8724-fac449b9ec1a", + "id": "144c696b-90f2-4394-8c69-a97a5c3a2a74", "savedPayload": { "position": { "x": 18685.425646265965, @@ -31424,7 +35205,7 @@ } } }, - "id": "c22786cd-094f-455e-b30f-6f421c9ef998", + "id": "702cf635-d652-4c45-99b9-e0c3aba7af9c", "savedPayload": { "position": { "x": 18975.203394152686, @@ -31448,7 +35229,7 @@ } } ], - "id": "50927b6b-c613-40f7-a62f-5154ee5b2a85", + "id": "b8220abb-9505-4827-90a5-27bab1d3cf35", "savedPayload": { "position": { "x": 19302.97497409097, @@ -31486,7 +35267,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "e3afdc54-e53f-4e05-99d9-d03527d95805", + "id": "49001578-32ad-4753-9330-e328955f253c", "savedPayload": { "position": { "x": 19802.320290172996, @@ -31520,7 +35301,7 @@ "name": "New Style", "config": "{\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_RED\"\n}", "project": "Foundations", - "id": "f3ae143a-68eb-496c-bfe7-b19fc132ef47", + "id": "5d8b07f5-ff30-484d-b6cf-902be4e20279", "savedPayload": { "position": { "x": 19506.877964269333, @@ -31543,7 +35324,7 @@ } } }, - "id": "bf21bb44-7b38-43c5-be66-d11148d937b2", + "id": "074e0f35-c4fc-4e73-9c1f-a43d8f2dd3ce", "savedPayload": { "position": { "x": 19314.04168136337, @@ -31567,7 +35348,7 @@ } } ], - "id": "e430b950-254c-47d4-999b-d885869b0245", + "id": "44875970-a388-434b-a650-2c368cbdc4b3", "savedPayload": { "position": { "x": 19712.090050264735, @@ -31595,7 +35376,7 @@ "type": "Polygon Vertex", "name": " FastTrend End", "project": "Foundations", - "id": "d74ad743-258c-4e99-89d3-f17d48826ad8", + "id": "13a280db-bc9d-4580-897e-7490d526f20f", "savedPayload": { "position": { "x": 20096.60387949821, @@ -31619,15 +35400,53 @@ "referenceParent": { "type": "Point", "name": "FastTrend End", - "id": "c22786cd-094f-455e-b30f-6f421c9ef998" - } + "id": "702cf635-d652-4c45-99b9-e0c3aba7af9c" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend3", + "Plotter", + "Foundations", + "01c7b6fc-2531-4567-a589-4df488364664" + ], + [ + "FastTrend3", + "Plotter Module", + "Foundations", + "1c605dbd-43b0-4797-ba15-207747be17e5" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "0a7899b8-1eeb-4508-9ed3-bdc496008c55" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "9b13026d-2e3b-418f-9d17-3979403508fa" + ], + [ + "FastTrend End", + "Point", + "Foundations", + "7b5e98bd-3c2f-4e46-9b3a-87dd19a29a77" + ] + ] } }, { "type": "Polygon Vertex", "name": " FastTrend Begin", "project": "Foundations", - "id": "ad731b10-e408-45c2-894f-218fe47eecc3", + "id": "2602ce01-318a-44bd-9601-f50666b62ffd", "savedPayload": { "position": { "x": 19917.302136260136, @@ -31651,12 +35470,50 @@ "referenceParent": { "type": "Point", "name": "FastTrend Begin", - "id": "2114d91e-a953-4373-839d-21a2f85d9213" - } + "id": "104fea61-3767-42e5-bf19-35b9b9ce8a78" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend3", + "Plotter", + "Foundations", + "01c7b6fc-2531-4567-a589-4df488364664" + ], + [ + "FastTrend3", + "Plotter Module", + "Foundations", + "1c605dbd-43b0-4797-ba15-207747be17e5" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "0a7899b8-1eeb-4508-9ed3-bdc496008c55" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "9b13026d-2e3b-418f-9d17-3979403508fa" + ], + [ + "FastTrend Begin", + "Point", + "Foundations", + "25fc0a6d-c41b-4962-ad9a-6c2a94fc417a" + ] + ] } } ], - "id": "698711ee-fd7f-4530-8042-d62b576c579f", + "id": "b6778055-b689-4a3f-93e4-16c32a214b62", "savedPayload": { "position": { "x": 19814.696093262435, @@ -31682,7 +35539,7 @@ ], "images": [], "texts": [], - "id": "377d2d18-2922-436b-86e6-4216a86e02b1", + "id": "1822a3be-dfc8-425e-9deb-c46c5eccf766", "savedPayload": { "position": { "x": 19532.78830702666, @@ -31722,7 +35579,7 @@ "name": "New Data Formula", "code": "record.NegativeDisorder", "project": "Foundations", - "id": "c5d86b95-0c6f-45ca-8e6b-8de78dd6e328", + "id": "031ed373-339b-42ad-96cc-bd06df8ee1f6", "savedPayload": { "position": { "x": 19638.190722089348, @@ -31750,7 +35607,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "decbbc6d-782a-40a0-807a-10b4fa1bff2f", + "id": "4dd65b6a-3417-464b-9478-7a7725bac6d1", "savedPayload": { "position": { "x": 20119.969585309518, @@ -31773,7 +35630,7 @@ } } }, - "id": "8e746a38-de12-4ef1-9e3f-9e9701523eef", + "id": "d3868541-49d8-4155-83ee-97ae83bbd3e7", "savedPayload": { "position": { "x": 19822.889164687047, @@ -31806,7 +35663,7 @@ "name": "New Data Formula", "code": "record.PositiveDisorder", "project": "Foundations", - "id": "8d170910-3c30-4752-91b2-e9ab9fb20ed4", + "id": "9a7d555b-6a1b-4be8-919c-f9a914d537c0", "savedPayload": { "position": { "x": 20177.534272781446, @@ -31834,7 +35691,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "e634f272-18ad-4c86-a616-010d7b796cd2", + "id": "3240b045-10dc-4b85-917f-436d56b515cc", "savedPayload": { "position": { "x": 20141.287745776946, @@ -31857,7 +35714,7 @@ } } }, - "id": "948dd7ed-bdfd-4cb0-b528-4f475b37aa37", + "id": "3025e708-75e6-4352-8316-79d09a368a2b", "savedPayload": { "position": { "x": 20009.776401740222, @@ -31890,7 +35747,7 @@ "name": "New Data Formula", "code": "record.FastTrend", "project": "Foundations", - "id": "13b8cfc4-c2db-417a-9d26-e42db6230f27", + "id": "e7ef3332-d213-4693-af54-68b18b3197e1", "savedPayload": { "position": { "x": 20071.462264123667, @@ -31918,7 +35775,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "612aaf18-27e7-4d1a-b3b9-25b7dd93b79f", + "id": "51fa23a3-644f-4a26-bc20-307e6d41b16f", "savedPayload": { "position": { "x": 19567.281815240578, @@ -31941,7 +35798,7 @@ } } }, - "id": "681f7122-5340-4eb2-8d80-18a51ef080e6", + "id": "6024d4f4-44ea-46da-a9b9-99d26359b4f7", "savedPayload": { "position": { "x": 19783.083755342173, @@ -31974,7 +35831,7 @@ "name": "New Data Formula", "code": "record.intertrend", "project": "Foundations", - "id": "9dc71d66-501f-4931-bf40-5b85754d83a2", + "id": "c3a00099-bcb7-4f24-bba1-87c7df6ac572", "savedPayload": { "position": { "x": 19466.562606826097, @@ -32002,7 +35859,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.BLACK\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "fe734888-78d6-48fd-ae3c-4dc0adb1e13f", + "id": "f0a5f671-fd3b-455e-8240-70c4bb586b76", "savedPayload": { "position": { "x": 19191.20847995767, @@ -32025,7 +35882,7 @@ } } }, - "id": "b72b0093-64b5-4413-b576-be8eef913e09", + "id": "21b8aad5-0cab-4383-a115-d2fde102c1ab", "savedPayload": { "position": { "x": 19456.092757815346, @@ -32049,7 +35906,7 @@ } } ], - "id": "53825ec4-1daa-42fe-8cca-d0ad32929999", + "id": "517a20cc-e4da-494d-93dd-bf33c574089c", "savedPayload": { "position": { "x": 19710.507186662275, @@ -32073,7 +35930,7 @@ } } ], - "id": "02d137ca-2a9f-4a09-a894-dd954e5df998", + "id": "6cf19301-42a6-4466-aaa7-be1aca18a804", "savedPayload": { "position": { "x": 19480.69385372658, @@ -32097,11 +35954,11 @@ } } ], - "id": "63dc6b37-171a-4ebf-928c-c88f1c87651a", + "id": "acc1e9c5-37d0-43bb-aa7f-53ebb2048865", "savedPayload": { "position": { - "x": 18312.20852472557, - "y": 9225.221055153494 + "x": 18124.20028940823, + "y": 9170.177051436112 }, "targetPosition": { "x": 18051.878281255034, @@ -32150,7 +36007,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.FastTrend", "project": "Foundations", - "id": "63ee4128-b54f-47f5-afcd-4b38f2c23576", + "id": "860f9bcb-d884-41d1-8875-aa942dc0fe96", "savedPayload": { "position": { "x": 18295.83742451556, @@ -32173,7 +36030,7 @@ } } }, - "id": "307afab5-cc3b-4993-b42d-00aac9cbda15", + "id": "fd20608f-7564-4d70-9e24-aa2c27e1a2e3", "savedPayload": { "position": { "x": 18083.705390159597, @@ -32205,7 +36062,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.FastTrend", "project": "Foundations", - "id": "3e8be48e-ed5f-4355-a42c-415a6818f2d9", + "id": "30916525-7e62-49c9-b4fc-274632758fac", "savedPayload": { "position": { "x": 17788.01786003019, @@ -32228,7 +36085,7 @@ } } }, - "id": "3c44f3d7-7792-4661-a37c-4ccec93d9865", + "id": "1e809de6-d97e-4f9a-a067-833306e91ee0", "savedPayload": { "position": { "x": 18077.795607916913, @@ -32252,7 +36109,7 @@ } } ], - "id": "63c8c88d-447a-4a9a-a103-f559694584e1", + "id": "175cafe1-d61d-4d33-a6e6-34cdd687f19c", "savedPayload": { "position": { "x": 19531.974235323836, @@ -32290,7 +36147,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "4cc3a909-cec9-4102-af51-7b4973237954", + "id": "f40f01b3-2d0f-49b8-ba0e-5ae5778a21d0", "savedPayload": { "position": { "x": 20317.358317045517, @@ -32324,7 +36181,7 @@ "name": "New Style", "config": "{\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_RED\"\n}", "project": "Foundations", - "id": "2b014037-77f4-4c28-8c60-abba22432365", + "id": "9e256fa9-4960-4a7b-b810-697e44d5ae2f", "savedPayload": { "position": { "x": 19877.191896715303, @@ -32347,7 +36204,7 @@ } } }, - "id": "359b3490-ec0d-41b1-bbe9-98733c640478", + "id": "b95f791d-a64b-447e-887f-c8f0d321378c", "savedPayload": { "position": { "x": 19576.08312385382, @@ -32371,7 +36228,7 @@ } } ], - "id": "3ee5658b-a662-46aa-96c9-6bf4199b30f0", + "id": "fb930174-a6b6-4a62-ade1-7f95a4a7dd27", "savedPayload": { "position": { "x": 20155.30719165276, @@ -32399,7 +36256,7 @@ "type": "Polygon Vertex", "name": " FastTrend End", "project": "Foundations", - "id": "2288fb8c-9c75-44e6-99e5-a30df52d84a4", + "id": "f5842361-615e-4121-9427-999d51665dea", "savedPayload": { "position": { "x": 20722.340271454304, @@ -32423,15 +36280,53 @@ "referenceParent": { "type": "Point", "name": "FastTrend End", - "id": "3c44f3d7-7792-4661-a37c-4ccec93d9865" - } + "id": "1e809de6-d97e-4f9a-a067-833306e91ee0" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend5", + "Plotter", + "Foundations", + "5b43a422-6c2b-408d-bb0f-1475077f2459" + ], + [ + "FastTrend5", + "Plotter Module", + "Foundations", + "77a0c03b-a624-4a4f-82de-5efee7325a11" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "261ed602-ca83-4d55-a46c-a5f1ba46939d" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "748c845b-be8c-400b-a96b-8057a1e1f6de" + ], + [ + "FastTrend End", + "Point", + "Foundations", + "4139ea80-360c-4223-bdd5-aadd108b6c9b" + ] + ] } }, { "type": "Polygon Vertex", "name": " FastTrend Begin", "project": "Foundations", - "id": "db64a1dd-7555-4555-9293-89df07193323", + "id": "e81dbd41-3a46-41a7-8023-946e2aacf6b5", "savedPayload": { "position": { "x": 20433.42248659021, @@ -32455,12 +36350,50 @@ "referenceParent": { "type": "Point", "name": "FastTrend Begin", - "id": "307afab5-cc3b-4993-b42d-00aac9cbda15" - } + "id": "fd20608f-7564-4d70-9e24-aa2c27e1a2e3" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend5", + "Plotter", + "Foundations", + "5b43a422-6c2b-408d-bb0f-1475077f2459" + ], + [ + "FastTrend5", + "Plotter Module", + "Foundations", + "77a0c03b-a624-4a4f-82de-5efee7325a11" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "261ed602-ca83-4d55-a46c-a5f1ba46939d" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "748c845b-be8c-400b-a96b-8057a1e1f6de" + ], + [ + "FastTrend Begin", + "Point", + "Foundations", + "dbbda5aa-233a-4b7d-b562-46668fc6d6b1" + ] + ] } } ], - "id": "0454751b-ad22-4f4d-b9ea-98cfc6e8fd19", + "id": "e97ffaa7-e39c-4340-82f2-58cb1122e015", "savedPayload": { "position": { "x": 20294.364839121485, @@ -32486,7 +36419,7 @@ ], "images": [], "texts": [], - "id": "3b50df83-e4c3-4c19-b551-6c6ddb497df7", + "id": "649e9169-18f0-446e-97a5-067fc7870eb0", "savedPayload": { "position": { "x": 19866.389406788665, @@ -32526,7 +36459,7 @@ "name": "New Data Formula", "code": "record.NegativeDisorder", "project": "Foundations", - "id": "2527f3db-7ed2-4566-afb7-0cdf065568fc", + "id": "c2179289-f3ee-4686-ab7a-2ba91545a472", "savedPayload": { "position": { "x": 20025.772443238, @@ -32554,7 +36487,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "baaed25d-7199-410a-8253-28867bd54d2f", + "id": "867d5bf1-6395-4bd4-aeef-03ecfb84cff5", "savedPayload": { "position": { "x": 20737.810659685336, @@ -32577,7 +36510,7 @@ } } }, - "id": "66b97121-925b-498e-b390-dd92cf53b372", + "id": "5960f1b8-d4fe-4230-9dba-0b3ab89621bc", "savedPayload": { "position": { "x": 20290.275806769612, @@ -32610,7 +36543,7 @@ "name": "New Data Formula", "code": "record.PositiveDisorder", "project": "Foundations", - "id": "b4ac0a79-941b-4a32-b973-2cbfd8fd77ef", + "id": "46d7d76c-ecd6-49cc-bed0-1cbdde5c954c", "savedPayload": { "position": { "x": 20819.28253383284, @@ -32638,7 +36571,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "b3ee809e-f9db-4d6e-b588-78876cc0719b", + "id": "4b2d44a1-f093-4db5-b6e4-fb98666ab6e6", "savedPayload": { "position": { "x": 20737.810659685336, @@ -32661,7 +36594,7 @@ } } }, - "id": "9624afea-592d-4a64-b6a2-9c105026d053", + "id": "c0e927e0-d941-48cf-aa50-086818a39191", "savedPayload": { "position": { "x": 20554.779170301226, @@ -32694,7 +36627,7 @@ "name": "New Data Formula", "code": "record.FastTrend", "project": "Foundations", - "id": "be0f8241-cc68-49e9-af79-c6aa785312c1", + "id": "63828a23-6016-4113-bde7-960484fa0f35", "savedPayload": { "position": { "x": 20628.780010586313, @@ -32722,7 +36655,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "cc3629a1-7abd-4ee7-95bb-f51ad7444b5f", + "id": "24603089-5b5f-4456-a596-8e017224195b", "savedPayload": { "position": { "x": 19866.389406788665, @@ -32745,7 +36678,7 @@ } } }, - "id": "b011ef69-9c09-42fb-96a9-5429a7e162f8", + "id": "d7002f04-9723-4338-9bb8-c1154b5bcb8d", "savedPayload": { "position": { "x": 20200.804578253494, @@ -32778,7 +36711,7 @@ "name": "New Data Formula", "code": "record.intertrend", "project": "Foundations", - "id": "8dc60b85-979f-4018-8e6d-aac731b12ed4", + "id": "91b586cd-0ca6-47fd-810d-4c4c428a5557", "savedPayload": { "position": { "x": 19717.532885682504, @@ -32806,7 +36739,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.BLACK\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "d377c963-6af3-41b9-a936-5f646ce3dfc1", + "id": "4be752ab-4730-4bfa-910f-7f9f25c10c66", "savedPayload": { "position": { "x": 19327.821453979504, @@ -32829,7 +36762,7 @@ } } }, - "id": "394b4729-5cef-4016-ad17-304fc4684405", + "id": "132d7e0c-f281-4c52-a91e-954daa6e606e", "savedPayload": { "position": { "x": 19717.532885682504, @@ -32853,7 +36786,7 @@ } } ], - "id": "765d4716-a98f-41bb-a00b-0fd768c32dda", + "id": "4b7de6f5-840a-420d-8cb2-a71b7f57667e", "savedPayload": { "position": { "x": 20107.244317385503, @@ -32877,7 +36810,7 @@ } } ], - "id": "c7d21245-fe05-41e8-9033-53ee4ac3867b", + "id": "2c2a13fe-ca25-426d-88c7-878442d12471", "savedPayload": { "position": { "x": 19772.829145920674, @@ -32901,11 +36834,11 @@ } } ], - "id": "73bcd966-ca54-4656-84b5-17e99668e359", + "id": "d6d541ff-108b-4c39-bac5-19e3df7a9970", "savedPayload": { "position": { - "x": 18425.972162370275, - "y": 9296.703486414128 + "x": 18264.641213480554, + "y": 9204.792630283697 }, "targetPosition": { "x": 18051.878281255034, @@ -32954,7 +36887,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.FastTrend", "project": "Foundations", - "id": "09a86434-dee9-4dea-8e43-8ecdd405cf1a", + "id": "525936e6-090a-4e56-a5eb-46a07b2ade47", "savedPayload": { "position": { "x": 18401.899307515512, @@ -32977,7 +36910,7 @@ } } }, - "id": "68ccdb07-3048-4b61-aea3-499843569a8f", + "id": "ae38b9fe-7d57-4081-b4a7-828bea37749c", "savedPayload": { "position": { "x": 19507.787400850422, @@ -33009,7 +36942,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.FastTrend", "project": "Foundations", - "id": "8b4c1e99-db6d-4ce2-aa9b-76f852bbb423", + "id": "1538bf12-9bc7-48b9-a203-d8fcb112feef", "savedPayload": { "position": { "x": 19829.764840892927, @@ -33032,7 +36965,7 @@ } } }, - "id": "b8611903-e65f-488d-aa48-ea3a8fa28603", + "id": "c9d36734-4f91-47a2-b922-9dee305e4f6a", "savedPayload": { "position": { "x": 19776.719080403305, @@ -33056,7 +36989,7 @@ } } ], - "id": "87cae3a7-55b8-4e59-bcf8-ebed9addb25c", + "id": "f4f2d2d1-0035-4151-9d9f-35786e242666", "savedPayload": { "position": { "x": 19723.673319913683, @@ -33094,7 +37027,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "029441af-e740-4cd0-9d8c-c0bc73caaaa2", + "id": "96720359-1776-4300-b1bf-39d7ec908b2d", "savedPayload": { "position": { "x": 20375.26157062351, @@ -33128,7 +37061,7 @@ "name": "New Style", "config": "{\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_RED\"\n}", "project": "Foundations", - "id": "a5854a36-5183-4150-a43c-c50645ead782", + "id": "3c453edd-4d44-4703-be45-a486952d6316", "savedPayload": { "position": { "x": 19937.946364877913, @@ -33151,7 +37084,7 @@ } } }, - "id": "f7ae5c25-5ddb-4d78-9da5-8fef5f9401ef", + "id": "8a9e664f-f989-4425-adff-5d63a01ae39b", "savedPayload": { "position": { "x": 19627.410809710964, @@ -33175,7 +37108,7 @@ } } ], - "id": "6501b881-0918-4f5b-8c48-5462d9189516", + "id": "f92a0a3c-9d04-4516-8f0e-72dd2a44291e", "savedPayload": { "position": { "x": 20191.505666035202, @@ -33203,7 +37136,7 @@ "type": "Polygon Vertex", "name": " FastTrend End", "project": "Foundations", - "id": "ab727faa-d2de-4fab-bcd1-12316e18b1db", + "id": "fb66d340-dcb7-4d24-99ef-5ebb9f23af2d", "savedPayload": { "position": { "x": 20750.057154740367, @@ -33227,15 +37160,53 @@ "referenceParent": { "type": "Point", "name": "FastTrend End", - "id": "b8611903-e65f-488d-aa48-ea3a8fa28603" - } + "id": "c9d36734-4f91-47a2-b922-9dee305e4f6a" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend20", + "Plotter", + "Foundations", + "79a11454-0fc9-469e-a3c1-9110ccdeb42b" + ], + [ + "FastTrend20", + "Plotter Module", + "Foundations", + "9311917f-0bf5-4904-8d8c-638d82d79d23" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "856eaa7c-52e7-4860-a486-5ed1c99674e8" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "6c45dd6d-2fb0-4379-8f02-0b904336fb0a" + ], + [ + "FastTrend End", + "Point", + "Foundations", + "12183b70-d45b-49ef-87e8-02295cee9d2f" + ] + ] } }, { "type": "Polygon Vertex", "name": " FastTrend Begin", "project": "Foundations", - "id": "7eda2275-4a79-43ba-aafc-392142621047", + "id": "f37e895d-1889-458b-9d92-3e133edb3db8", "savedPayload": { "position": { "x": 20445.064967192488, @@ -33259,12 +37230,50 @@ "referenceParent": { "type": "Point", "name": "FastTrend Begin", - "id": "68ccdb07-3048-4b61-aea3-499843569a8f" - } + "id": "ae38b9fe-7d57-4081-b4a7-828bea37749c" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "FastTrend20", + "Plotter", + "Foundations", + "79a11454-0fc9-469e-a3c1-9110ccdeb42b" + ], + [ + "FastTrend20", + "Plotter Module", + "Foundations", + "9311917f-0bf5-4904-8d8c-638d82d79d23" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "856eaa7c-52e7-4860-a486-5ed1c99674e8" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "6c45dd6d-2fb0-4379-8f02-0b904336fb0a" + ], + [ + "FastTrend Begin", + "Point", + "Foundations", + "e3cb3629-61f2-49f0-b133-7a553f649e6a" + ] + ] } } ], - "id": "051ee16d-53ca-4e49-8595-bd15a8afe2d7", + "id": "3f231125-21a1-4d41-ab17-797ffd75dd33", "savedPayload": { "position": { "x": 20318.285316613845, @@ -33290,7 +37299,7 @@ ], "images": [], "texts": [], - "id": "b8303f1e-52b3-478c-a545-5027ac1baeb3", + "id": "b5c77ab6-c73c-4b64-a5e7-2084d446d4d9", "savedPayload": { "position": { "x": 19886.513478487323, @@ -33330,7 +37339,7 @@ "name": "New Data Formula", "code": "record.NegativeDisorder", "project": "Foundations", - "id": "a611bd73-ab6b-4109-95b7-e7053a0a3c21", + "id": "93787e33-216d-44e6-868a-2e8aa10ea908", "savedPayload": { "position": { "x": 20046.798936716244, @@ -33358,7 +37367,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "c3cc76f2-d2dd-410a-abe5-a304b9e3bf96", + "id": "9e75fc83-3ffa-4a46-a566-80df93e8fed9", "savedPayload": { "position": { "x": 20749.493944247264, @@ -33381,7 +37390,7 @@ } } }, - "id": "826bde57-2612-49d3-9d36-35393cf244f9", + "id": "91bcda02-9dd2-4adb-8a2d-0a175b0f2306", "savedPayload": { "position": { "x": 20300.79838520629, @@ -33414,7 +37423,7 @@ "name": "New Data Formula", "code": "record.PositiveDisorder", "project": "Foundations", - "id": "ffb462f6-668e-48e9-aaee-aa024c61e8b7", + "id": "2690a87f-95f9-4413-b267-4d35f9f22243", "savedPayload": { "position": { "x": 20826.90295143647, @@ -33442,7 +37451,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "faeae7d9-5052-47a4-ad5e-6cb6afe32a3b", + "id": "270ced52-5647-4f20-bc6b-3c186155abd9", "savedPayload": { "position": { "x": 20723.32899070974, @@ -33465,7 +37474,7 @@ } } }, - "id": "61e75cd4-3eba-4b79-9005-0f53fbc6da67", + "id": "eebcf56c-565c-43fe-92ba-451520dda03b", "savedPayload": { "position": { "x": 20552.111405600524, @@ -33498,7 +37507,7 @@ "name": "New Data Formula", "code": "record.FastTrend", "project": "Foundations", - "id": "0446c347-a34f-4d5c-9509-4f85310cac41", + "id": "892c8939-9313-466f-b753-b3415e8f4348", "savedPayload": { "position": { "x": 20610.88492995913, @@ -33526,7 +37535,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "16976f29-9714-4ecb-a7bf-41a23572ca24", + "id": "ea86a141-82e1-49c0-8e2a-81b31f0020ba", "savedPayload": { "position": { "x": 19844.177694349546, @@ -33549,7 +37558,7 @@ } } }, - "id": "f9f99c00-86ec-4871-8ac0-d22141452813", + "id": "b3887961-45c2-4437-812a-76313b83c301", "savedPayload": { "position": { "x": 20187.054966321346, @@ -33582,7 +37591,7 @@ "name": "New Data Formula", "code": "record.intertrend", "project": "Foundations", - "id": "aacbf998-e551-424f-a791-d4e656a3cd82", + "id": "dd3c5fbf-9f53-489d-a5e0-619c9bc81f73", "savedPayload": { "position": { "x": 19697.2744357834, @@ -33610,7 +37619,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.BLACK\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "30db5a3d-0c39-43da-9df8-7103c3fd99cd", + "id": "8b6e342b-3e7b-4a27-8199-ac47c9a81a5e", "savedPayload": { "position": { "x": 19326.997265482933, @@ -33633,7 +37642,7 @@ } } }, - "id": "4fc8fd01-5a1a-494f-a037-624ff444d2af", + "id": "a235a5f4-0b7f-48be-b6cd-5f4d09d93381", "savedPayload": { "position": { "x": 19710.124658640565, @@ -33657,7 +37666,7 @@ } } ], - "id": "26d7e788-bb73-44c9-a3b6-3413286bb1e2", + "id": "f54a4a4b-2529-48d2-9087-11efb4fe64f8", "savedPayload": { "position": { "x": 20106.10227465536, @@ -33681,7 +37690,7 @@ } } ], - "id": "e7421eef-db1a-443b-a0bd-3ee1e5bcff9d", + "id": "aa972b32-6fe1-47f6-933e-3e555c2ae658", "savedPayload": { "position": { "x": 19780.42195750808, @@ -33705,11 +37714,11 @@ } } ], - "id": "07dc3e48-ee27-4880-bed5-4b5ac182f250", + "id": "fcda91a1-ecba-44eb-8f96-743f0886fe99", "savedPayload": { "position": { - "x": 18520.977170735852, - "y": 9391.708494779705 + "x": 18392.717129293727, + "y": 9272.012056358752 }, "targetPosition": { "x": 18051.878281255034, @@ -33758,7 +37767,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.PastForecast", "project": "Foundations", - "id": "f99e055b-ca6a-466e-b379-7bfedde45ae7", + "id": "d32f36e1-8092-4d5e-9c16-61b87e6f5a7a", "savedPayload": { "position": { "x": 20153.894045277786, @@ -33781,7 +37790,7 @@ } } }, - "id": "654c687a-404e-4e69-8e69-3aac20df6fd8", + "id": "2e6071a8-d620-4eba-b2ca-d37ad9dae8f2", "savedPayload": { "position": { "x": 19747.577103048807, @@ -33813,7 +37822,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.PastForecast", "project": "Foundations", - "id": "5884e5ed-3f88-413a-9cd3-12c01bf34421", + "id": "0a3e0733-0c8b-4ce6-82ff-2daa4e5dd178", "savedPayload": { "position": { "x": 20212.41399207655, @@ -33836,7 +37845,7 @@ } } }, - "id": "1d70e4fa-89a6-41d5-af1d-833df57b98b1", + "id": "708f68d4-5592-4a93-b418-4819b73d55fe", "savedPayload": { "position": { "x": 19776.837076448188, @@ -33868,7 +37877,7 @@ "name": "New Point Formula", "code": "x = record.T5begin\ny =(1 + record.previous.forecast5 / 100) * record.previous.PastForecast", "project": "Foundations", - "id": "4c0c3216-21cc-47e9-a03f-a5637f7c7b6e", + "id": "81b583e7-fec4-4e76-918f-d2e9483a8ca1", "savedPayload": { "position": { "x": 19863.311379433904, @@ -33891,7 +37900,7 @@ } } }, - "id": "8da5c97e-2be8-4fc7-af23-3218284f3235", + "id": "0c353777-fa95-42da-8972-17a58679062c", "savedPayload": { "position": { "x": 19602.285770126866, @@ -33923,7 +37932,7 @@ "name": "New Point Formula", "code": "x = record.T5end\ny = (1 + record.forecast5 / 100) * record.PastForecast", "project": "Foundations", - "id": "e99a6bd4-039a-44e0-b2a6-2e9e5eb1c58a", + "id": "81d1393a-0199-4d0b-8994-154539385d9d", "savedPayload": { "position": { "x": 19269.93519964872, @@ -33946,7 +37955,7 @@ } } }, - "id": "f6c267e8-0290-498b-9f07-a86a3844efa9", + "id": "91e4c6ac-e51b-46f5-999e-585b24b44b65", "savedPayload": { "position": { "x": 19305.597680234274, @@ -33978,7 +37987,7 @@ "name": "New Point Formula", "code": "x = record.T5begin\ny =(1 + record.previous.minForecast5/ 100) * record.previous.PastForecast", "project": "Foundations", - "id": "abb245ef-6d56-450d-b5c4-4ec04e1da759", + "id": "1a3bd5c6-4a32-4347-9f8a-e95cbee70c51", "savedPayload": { "position": { "x": 18709.932761884138, @@ -34001,7 +38010,7 @@ } } }, - "id": "b7b3c8f0-8685-4e68-bb15-4c44e54a833a", + "id": "74848c1c-6c40-490d-8d8a-40f146081c67", "savedPayload": { "position": { "x": 19025.596461351983, @@ -34033,7 +38042,7 @@ "name": "New Point Formula", "code": "x = record.T5end\ny =(1 + record.minForecast5/ 100) * record.PastForecast", "project": "Foundations", - "id": "6a0291aa-1fab-4fb8-94d7-82f6963f87ae", + "id": "999a9192-54d7-49e7-96fa-b9609bec760b", "savedPayload": { "position": { "x": 18445.335430504052, @@ -34056,7 +38065,7 @@ } } }, - "id": "1035107a-33bc-4ab0-8ae6-b1814b8652eb", + "id": "2b391143-9173-4004-a589-bfad369b50f2", "savedPayload": { "position": { "x": 18893.29779566194, @@ -34088,7 +38097,7 @@ "name": "New Point Formula", "code": "x = record.T5begin\ny =(1 + record.previous.maxForecast5/ 100) * record.previous.PastForecast", "project": "Foundations", - "id": "99ad64ef-2192-4558-931a-4ed19469c68e", + "id": "14da2013-5daa-4f91-abe6-f7b5de3428bf", "savedPayload": { "position": { "x": 18599.951237532976, @@ -34111,7 +38120,7 @@ } } }, - "id": "f15c23a0-963c-4d0b-9cab-e00d7d257332", + "id": "0d4154f0-c747-418a-82cf-a2ea274e1405", "savedPayload": { "position": { "x": 18970.6056991764, @@ -34143,7 +38152,7 @@ "name": "New Point Formula", "code": "x = record.T5end\ny =(1 + record.maxForecast5/ 100) * record.PastForecast", "project": "Foundations", - "id": "0264cb7e-8df2-4e48-bf35-1e14ddb0df66", + "id": "f831c7f3-e8de-4b29-a9dd-f2d8f9f95b23", "savedPayload": { "position": { "x": 19101.433728498796, @@ -34166,7 +38175,7 @@ } } }, - "id": "0b7d781c-10c1-4297-bce8-983b3057b4c0", + "id": "a5247f1c-281f-462f-b5af-818207e7edab", "savedPayload": { "position": { "x": 19221.34694465931, @@ -34190,7 +38199,7 @@ } } ], - "id": "769ead6a-b744-4e44-b96b-edb1a9a6c987", + "id": "623a2173-baa7-4e9b-aa72-06889e86ce4c", "savedPayload": { "position": { "x": 19651.725204089988, @@ -34228,7 +38237,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_BLUE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "57834e94-60a7-46d7-8bd1-642526c6e093", + "id": "5b01cbc9-bc42-456b-aaa3-ea65c1d432d1", "savedPayload": { "position": { "x": 18896.46487670246, @@ -34252,7 +38261,7 @@ } }, "styleConditions": [], - "id": "460e51c5-d668-45ce-9076-8eec21873993", + "id": "463d5d44-1403-4168-8d50-70419b208d60", "savedPayload": { "position": { "x": 19305.799274611993, @@ -34280,7 +38289,7 @@ "type": "Polygon Vertex", "name": " PastForecast End", "project": "Foundations", - "id": "67ff5caf-a7be-46c6-a36e-ad1adc18ac1c", + "id": "23f7a17b-f777-469d-a072-84972fab2b4a", "savedPayload": { "position": { "x": 19902.070428372375, @@ -34304,15 +38313,53 @@ "referenceParent": { "type": "Point", "name": "PastForecast End", - "id": "1d70e4fa-89a6-41d5-af1d-833df57b98b1" - } + "id": "708f68d4-5592-4a93-b418-4819b73d55fe" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters 2", + "Plotter", + "Foundations", + "4c1f5b98-8c0e-4777-86fd-03c3ef0651e2" + ], + [ + "Holt-Winters 2", + "Plotter Module", + "Foundations", + "ed55dd2c-5c47-45d0-8a74-12d8c152d56f" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "272b86e5-259e-4ff0-bece-672abd47786c" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f1321045-c574-4858-8340-2d7d89a7f178" + ], + [ + "PastForecast End", + "Point", + "Foundations", + "e94ec8c9-194f-46e5-ba37-87c812d66c1a" + ] + ] } }, { "type": "Polygon Vertex", "name": " PastForecast Begin", "project": "Foundations", - "id": "7a8363bb-e26a-465e-8626-954585a6eb69", + "id": "2e351065-4362-49bd-b255-ed7355f7382e", "savedPayload": { "position": { "x": 20124.46807043106, @@ -34336,12 +38383,50 @@ "referenceParent": { "type": "Point", "name": "PastForecast Begin", - "id": "654c687a-404e-4e69-8e69-3aac20df6fd8" - } + "id": "2e6071a8-d620-4eba-b2ca-d37ad9dae8f2" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters 2", + "Plotter", + "Foundations", + "4c1f5b98-8c0e-4777-86fd-03c3ef0651e2" + ], + [ + "Holt-Winters 2", + "Plotter Module", + "Foundations", + "ed55dd2c-5c47-45d0-8a74-12d8c152d56f" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "272b86e5-259e-4ff0-bece-672abd47786c" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f1321045-c574-4858-8340-2d7d89a7f178" + ], + [ + "PastForecast Begin", + "Point", + "Foundations", + "0d0017e6-9f09-4a43-9d8d-8bc1e0069b12" + ] + ] } } ], - "id": "55923b06-a133-4ef8-9107-d962e2694731", + "id": "1a5fcac7-fef2-4331-b557-170a261ee1dd", "savedPayload": { "position": { "x": 19807.016631151502, @@ -34377,7 +38462,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.BROWN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "2aa5afb1-450f-4ac7-9cd7-c91381935604", + "id": "979dcd0f-4398-4420-bc94-f2c9eb0047e4", "savedPayload": { "position": { "x": 19372.704876479253, @@ -34401,7 +38486,7 @@ } }, "styleConditions": [], - "id": "7c9c5972-2866-46e1-9802-6e4b7b762d3d", + "id": "4f27e2c0-5b88-4917-bee3-0875c3aaf9fb", "savedPayload": { "position": { "x": 19633.73048578629, @@ -34429,7 +38514,7 @@ "type": "Polygon Vertex", "name": " Forecast5 Begin", "project": "Foundations", - "id": "823b5eb2-befa-4125-ac98-8a16fd7ee255", + "id": "3f53e036-ed30-464c-9c12-cf8bc3105e08", "savedPayload": { "position": { "x": 20261.31527351598, @@ -34453,15 +38538,53 @@ "referenceParent": { "type": "Point", "name": "Forecast5 Begin", - "id": "8da5c97e-2be8-4fc7-af23-3218284f3235" - } + "id": "0c353777-fa95-42da-8972-17a58679062c" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters 2", + "Plotter", + "Foundations", + "4c1f5b98-8c0e-4777-86fd-03c3ef0651e2" + ], + [ + "Holt-Winters 2", + "Plotter Module", + "Foundations", + "ed55dd2c-5c47-45d0-8a74-12d8c152d56f" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "272b86e5-259e-4ff0-bece-672abd47786c" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f1321045-c574-4858-8340-2d7d89a7f178" + ], + [ + "Forecast5 Begin", + "Point", + "Foundations", + "bc595ed3-1bfe-4637-b375-3e44ff0b705f" + ] + ] } }, { "type": "Polygon Vertex", "name": " Forecast5 End", "project": "Foundations", - "id": "6f597b94-8315-403b-9e10-b5162068dd79", + "id": "42b1a7a3-f7fa-42a6-857d-67b95eea12de", "savedPayload": { "position": { "x": 20155.781704400368, @@ -34485,12 +38608,50 @@ "referenceParent": { "type": "Point", "name": "Forecast5 End", - "id": "f6c267e8-0290-498b-9f07-a86a3844efa9" - } + "id": "91e4c6ac-e51b-46f5-999e-585b24b44b65" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters 2", + "Plotter", + "Foundations", + "4c1f5b98-8c0e-4777-86fd-03c3ef0651e2" + ], + [ + "Holt-Winters 2", + "Plotter Module", + "Foundations", + "ed55dd2c-5c47-45d0-8a74-12d8c152d56f" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "272b86e5-259e-4ff0-bece-672abd47786c" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f1321045-c574-4858-8340-2d7d89a7f178" + ], + [ + "Forecast5 End", + "Point", + "Foundations", + "efacb780-fba1-4b07-9856-c923b5231641" + ] + ] } } ], - "id": "f77997c2-fe81-43a0-8c8d-4e5ef0961340", + "id": "9ec91dbc-f82b-45ad-b535-a716b628920d", "savedPayload": { "position": { "x": 20386.57212692494, @@ -34526,7 +38687,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RED_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "89b0ff3d-da42-44db-9641-a1ba3e8b1741", + "id": "5fa88909-c00c-43e8-a6eb-007dd63a7092", "savedPayload": { "position": { "x": 18896.46487670246, @@ -34550,7 +38711,7 @@ } }, "styleConditions": [], - "id": "1e5c0a44-9cf9-4c14-8333-16282fe1ac7e", + "id": "ae84508b-06e6-4500-80cf-8295ae7fc34e", "savedPayload": { "position": { "x": 19305.799274611993, @@ -34578,7 +38739,7 @@ "type": "Polygon Vertex", "name": " Forecast5 min Begin", "project": "Foundations", - "id": "b3fb06d4-75be-4da3-b3ee-8cec01720b19", + "id": "90d4c360-5a87-4543-b8fe-577db155aa37", "savedPayload": { "position": { "x": 19902.070428372375, @@ -34602,15 +38763,53 @@ "referenceParent": { "type": "Point", "name": "Forecast5 min Begin", - "id": "b7b3c8f0-8685-4e68-bb15-4c44e54a833a" - } + "id": "74848c1c-6c40-490d-8d8a-40f146081c67" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters 2", + "Plotter", + "Foundations", + "4c1f5b98-8c0e-4777-86fd-03c3ef0651e2" + ], + [ + "Holt-Winters 2", + "Plotter Module", + "Foundations", + "ed55dd2c-5c47-45d0-8a74-12d8c152d56f" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "272b86e5-259e-4ff0-bece-672abd47786c" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f1321045-c574-4858-8340-2d7d89a7f178" + ], + [ + "Forecast5 min Begin", + "Point", + "Foundations", + "dba60835-f589-4259-8acc-8608dd88d6b5" + ] + ] } }, { "type": "Polygon Vertex", "name": " Forecast5 min End", "project": "Foundations", - "id": "fd94d598-ee1d-4bc4-87ce-bd8eadfa800d", + "id": "567e8e3e-c09e-4b40-a7e9-5fd9ef5ce814", "savedPayload": { "position": { "x": 20124.46807043106, @@ -34634,12 +38833,50 @@ "referenceParent": { "type": "Point", "name": "Forecast5 min End", - "id": "1035107a-33bc-4ab0-8ae6-b1814b8652eb" - } + "id": "2b391143-9173-4004-a589-bfad369b50f2" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters 2", + "Plotter", + "Foundations", + "4c1f5b98-8c0e-4777-86fd-03c3ef0651e2" + ], + [ + "Holt-Winters 2", + "Plotter Module", + "Foundations", + "ed55dd2c-5c47-45d0-8a74-12d8c152d56f" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "272b86e5-259e-4ff0-bece-672abd47786c" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f1321045-c574-4858-8340-2d7d89a7f178" + ], + [ + "Forecast5 min End", + "Point", + "Foundations", + "c3a882bf-881e-49b4-a2c2-230c118d0f5b" + ] + ] } } ], - "id": "c3cc9b55-7522-4a98-945d-f2249d066c02", + "id": "1593b241-85d3-4cc6-af6f-9495fe30bac0", "savedPayload": { "position": { "x": 20810.83619563687, @@ -34675,7 +38912,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 1,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.MIDNIGHT_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "b6fbd11d-46ec-419f-ba5a-90ac6b1bca1b", + "id": "44dbbfba-67ac-4994-ae8e-8cb07d3d2f82", "savedPayload": { "position": { "x": 19890.608842854803, @@ -34699,7 +38936,7 @@ } }, "styleConditions": [], - "id": "0bdb4c0f-7556-4f87-b2c3-47f3ebe4e88c", + "id": "bfb92e2d-b58a-495f-aed0-8ad73cd68e7b", "savedPayload": { "position": { "x": 19933.384062341684, @@ -34727,7 +38964,7 @@ "type": "Polygon Vertex", "name": " Forecast5 max Begin", "project": "Foundations", - "id": "20f082f0-d948-497e-84de-f705a93451e2", + "id": "ad49f5e2-7041-4a8f-aa2f-18611c33f30a", "savedPayload": { "position": { "x": 20424.121646986452, @@ -34751,15 +38988,53 @@ "referenceParent": { "type": "Point", "name": "Forecast5 max Begin", - "id": "f15c23a0-963c-4d0b-9cab-e00d7d257332" - } + "id": "0d4154f0-c747-418a-82cf-a2ea274e1405" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters 2", + "Plotter", + "Foundations", + "4c1f5b98-8c0e-4777-86fd-03c3ef0651e2" + ], + [ + "Holt-Winters 2", + "Plotter Module", + "Foundations", + "ed55dd2c-5c47-45d0-8a74-12d8c152d56f" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "272b86e5-259e-4ff0-bece-672abd47786c" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f1321045-c574-4858-8340-2d7d89a7f178" + ], + [ + "Forecast5 max Begin", + "Point", + "Foundations", + "97fbf77d-14af-4ac8-ae26-8e62e277b4d6" + ] + ] } }, { "type": "Polygon Vertex", "name": " Forecast5 max End", "project": "Foundations", - "id": "a9c85e81-c9d9-423d-af3c-22bab8bd3e52", + "id": "d41f3382-499c-4cdd-b417-9067bd9bd785", "savedPayload": { "position": { "x": 20018.934501315445, @@ -34783,12 +39058,50 @@ "referenceParent": { "type": "Point", "name": "Forecast5 max End", - "id": "0b7d781c-10c1-4297-bce8-983b3057b4c0" - } + "id": "a5247f1c-281f-462f-b5af-818207e7edab" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Holt-Winters 2", + "Plotter", + "Foundations", + "4c1f5b98-8c0e-4777-86fd-03c3ef0651e2" + ], + [ + "Holt-Winters 2", + "Plotter Module", + "Foundations", + "ed55dd2c-5c47-45d0-8a74-12d8c152d56f" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "272b86e5-259e-4ff0-bece-672abd47786c" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f1321045-c574-4858-8340-2d7d89a7f178" + ], + [ + "Forecast5 max End", + "Point", + "Foundations", + "72056f31-cac6-4c23-998f-9da6eac2df33" + ] + ] } } ], - "id": "190d3fb8-ea12-414c-8c62-c0e527189936", + "id": "7d672e43-e42d-47c0-95c6-a36787bbb7dd", "savedPayload": { "position": { "x": 20655.544768575357, @@ -34814,7 +39127,7 @@ ], "images": [], "texts": [], - "id": "26f84268-f2d2-4332-a84a-b35344536302", + "id": "f218ac94-b7d2-4334-90b6-eb7624391066", "savedPayload": { "position": { "x": 20231.28069986343, @@ -34854,7 +39167,7 @@ "name": "New Data Formula", "code": "record.PastForecast", "project": "Foundations", - "id": "12c36797-01cd-4d10-9ca9-327d870bfb4b", + "id": "22213c51-14ff-4f57-aacd-8fab5a6a078e", "savedPayload": { "position": { "x": 20605.990498460473, @@ -34882,7 +39195,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "ab447322-3135-4122-b4e7-9b68682d9d48", + "id": "05331861-31ca-4682-b8c8-1f6078e61d27", "savedPayload": { "position": { "x": 20568.904065382787, @@ -34905,7 +39218,7 @@ } } }, - "id": "e576d38a-a6de-43e5-8600-aa6977b2d988", + "id": "054ce43d-21aa-4a52-9e32-168c52d03c45", "savedPayload": { "position": { "x": 20820.645583378584, @@ -34938,7 +39251,7 @@ "name": "New Data Formula", "code": "record.forecast5", "project": "Foundations", - "id": "accc568b-f10f-41e6-af24-7212318ac666", + "id": "55707c09-2a64-4e51-a09a-6c631057bcb2", "savedPayload": { "position": { "x": 20518.148234548888, @@ -34966,7 +39279,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "0cde6754-f901-421c-86a3-2e72fcb24256", + "id": "ea3bc2e9-8d4b-4c8b-a0b8-7f0a1efcf98e", "savedPayload": { "position": { "x": 20687.449848597542, @@ -34989,7 +39302,7 @@ } } }, - "id": "705a3c55-d16a-40f8-81d8-180c54bfff65", + "id": "7b4693e0-50dc-4389-b784-62763c2556d3", "savedPayload": { "position": { "x": 20822.426939672197, @@ -35022,7 +39335,7 @@ "name": "New Data Formula", "code": "record.forecast10", "project": "Foundations", - "id": "b2322782-8182-446f-b565-4a93499e2c51", + "id": "0e9782a6-2bef-41cf-9521-273786cdf6e5", "savedPayload": { "position": { "x": 21086.852597710917, @@ -35050,7 +39363,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "ae4d034f-95be-405e-849c-a853ae121038", + "id": "da1a2649-b1de-4e8d-9681-4b5bdb2f31af", "savedPayload": { "position": { "x": 20770.530880291517, @@ -35073,7 +39386,7 @@ } } }, - "id": "f59a41ff-85b0-4945-aa33-50b7e26ea03a", + "id": "505d2b6c-0f8f-4c56-93d8-d20f8dc4ea7a", "savedPayload": { "position": { "x": 20900.15961364207, @@ -35106,7 +39419,7 @@ "name": "New Data Formula", "code": "record.forecast20", "project": "Foundations", - "id": "ccdfa706-8a07-4c6e-9026-a0246f74b2f0", + "id": "cc83b944-1cd0-410d-b1b5-c782740f6fc8", "savedPayload": { "position": { "x": 20770.530880291517, @@ -35134,7 +39447,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "376c14d0-b0b0-4794-8c1f-a7608c349f62", + "id": "1d26602b-069e-4edb-a988-b2703f12e753", "savedPayload": { "position": { "x": 20255.36101845076, @@ -35157,7 +39470,7 @@ } } }, - "id": "d6d7c350-8159-4184-bde4-b4e8bd0f5363", + "id": "9e91f6e8-397c-4d2d-8682-e67f2a81a2ad", "savedPayload": { "position": { "x": 21040.402919779637, @@ -35190,7 +39503,7 @@ "name": "New Data Formula", "code": "record.forecast30", "project": "Foundations", - "id": "7e5df868-3701-408d-b60e-341dce03092d", + "id": "72551201-0a54-471f-8d64-47277c7ac013", "savedPayload": { "position": { "x": 20809.573118473745, @@ -35218,7 +39531,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "bd7c8746-9f8c-4251-a942-c67794265e48", + "id": "af1542aa-62e2-46d5-a436-5956406f2038", "savedPayload": { "position": { "x": 21585.466694805928, @@ -35241,7 +39554,7 @@ } } }, - "id": "4e2dca44-c1df-43e6-9e0f-2d8cb7cdc848", + "id": "901c5b6e-c8ad-40fd-98c3-c94070593561", "savedPayload": { "position": { "x": 21218.90751638328, @@ -35274,7 +39587,7 @@ "name": "New Data Formula", "code": "record.trend", "project": "Foundations", - "id": "3a6247c2-e3c7-4242-96db-e62f1988e6a7", + "id": "62484b07-d796-4185-a0ac-5c4fc572eefa", "savedPayload": { "position": { "x": 20427.834784532013, @@ -35302,7 +39615,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "3b4fd644-62b5-40f7-b3f6-de9ca9e2aa95", + "id": "31c777b1-57d3-41fb-b4b6-002117a1403e", "savedPayload": { "position": { "x": 20067.345965325792, @@ -35325,7 +39638,7 @@ } } }, - "id": "d2da439b-a715-4eec-9139-755d55532432", + "id": "9fe7b619-d64a-4f10-b934-167904461502", "savedPayload": { "position": { "x": 21404.808337036866, @@ -35358,7 +39671,7 @@ "name": "New Data Formula", "code": "record.minForecast5", "project": "Foundations", - "id": "2203e6bb-589a-4815-98b7-945e4e26af79", + "id": "05092db7-b019-42d5-b401-ea000e281072", "savedPayload": { "position": { "x": 21534.063107391114, @@ -35386,7 +39699,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "62988967-7449-4c2d-b216-cb52b842f444", + "id": "49ebbb3e-2f44-4d17-b9f2-184ee4dd1b9f", "savedPayload": { "position": { "x": 20765.431857255797, @@ -35409,7 +39722,7 @@ } } }, - "id": "e4c0c850-37b3-4e66-9cca-2d5fbcd2ecde", + "id": "db50371c-c0d2-4e6a-ba52-e5c4c3ff67a5", "savedPayload": { "position": { "x": 21565.96144099347, @@ -35442,7 +39755,7 @@ "name": "New Data Formula", "code": "record.maxForecast5", "project": "Foundations", - "id": "2cf7e3f7-ed8a-45ec-b1e0-321abb957b79", + "id": "4386b3bb-5306-4fce-8768-81638c7d4880", "savedPayload": { "position": { "x": 21469.378518759164, @@ -35470,7 +39783,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "cbbfcfbf-63cb-4475-adf5-44028f9168b4", + "id": "acfabd26-e7a6-4ac6-8202-be8e8a86c96d", "savedPayload": { "position": { "x": 20714.9371702867, @@ -35493,7 +39806,7 @@ } } }, - "id": "7def46c8-0429-4baa-91bd-7859374b6e48", + "id": "da454768-c65c-484f-8247-7ba7653b1611", "savedPayload": { "position": { "x": 21674.501992548994, @@ -35526,7 +39839,7 @@ "name": "New Data Formula", "code": "record.minForecast10", "project": "Foundations", - "id": "864ebd41-9e7c-496e-8464-76e621434fbf", + "id": "f1c3d48e-fa32-4113-90be-9ebf76a2b985", "savedPayload": { "position": { "x": 21772.096164253948, @@ -35554,7 +39867,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "a4dc07e0-56c5-4866-9e9a-96d76af8de48", + "id": "55a8f167-413a-46f1-aa53-79005a61356b", "savedPayload": { "position": { "x": 21006.75848737293, @@ -35577,7 +39890,7 @@ } } }, - "id": "7a0f0a77-b641-4f4a-b44a-16a2b4ecdd8a", + "id": "633a796a-106f-4a46-97cc-0a0f0772576a", "savedPayload": { "position": { "x": 21711.66234427954, @@ -35610,7 +39923,7 @@ "name": "New Data Formula", "code": "record.maxForecast10", "project": "Foundations", - "id": "d1387b23-5ca5-45dc-a556-0cc6f12d3eed", + "id": "ba0a991a-0201-4552-bc0c-d03796b7829e", "savedPayload": { "position": { "x": 21372.606174622284, @@ -35638,7 +39951,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "4868b7b9-daf7-46af-9bb4-2548dc9ab109", + "id": "43dc5149-94d7-47d2-8778-c2fb47f4a871", "savedPayload": { "position": { "x": 20649.014981976594, @@ -35661,7 +39974,7 @@ } } }, - "id": "482e1660-2a2a-4bfe-a9c6-f3f2c0ea7ac6", + "id": "7b5b8dcc-5ab2-456f-9d5b-75cacdcc1035", "savedPayload": { "position": { "x": 21671.017133779693, @@ -35694,7 +40007,7 @@ "name": "New Data Formula", "code": "record.minForecast20", "project": "Foundations", - "id": "7901cf3c-6fe5-4c82-a0ee-54552627b167", + "id": "7628407b-58ed-4c9a-a762-200b99e8c34d", "savedPayload": { "position": { "x": 21661.23814733896, @@ -35722,7 +40035,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "7ed7c1c5-edc1-4dca-92ff-4c0a4d6e6f7e", + "id": "90cb9687-5eda-4407-953a-cefd653b178f", "savedPayload": { "position": { "x": 20881.898878977692, @@ -35745,7 +40058,7 @@ } } }, - "id": "8d27f095-2fc1-4fc5-8ef3-69a6bd1d9041", + "id": "666e562c-6493-4d38-b088-78f7c56fc90d", "savedPayload": { "position": { "x": 21559.59428719503, @@ -35778,7 +40091,7 @@ "name": "New Data Formula", "code": "record.maxForecast20", "project": "Foundations", - "id": "9074168e-237a-4bef-9754-081a258058a5", + "id": "f998e6f4-c494-4dd9-a629-d8eda6e4beab", "savedPayload": { "position": { "x": 21304.46941885486, @@ -35806,7 +40119,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "09c96b36-8c43-4fd3-9b0f-ab993b2da011", + "id": "9d0a18ae-418a-4ccf-9378-5d996f0a8537", "savedPayload": { "position": { "x": 20609.093900432457, @@ -35829,7 +40142,7 @@ } } }, - "id": "f1b429f2-b1d8-4c42-9b31-811311e91095", + "id": "724b645a-37a5-44dc-966f-76e0db750555", "savedPayload": { "position": { "x": 21396.659826944815, @@ -35862,7 +40175,7 @@ "name": "New Data Formula", "code": "record.minForecast30", "project": "Foundations", - "id": "f62a8cbb-a5b5-4704-9d93-4ce3d16ce52b", + "id": "38744088-4205-4161-884a-f5e07df109a9", "savedPayload": { "position": { "x": 21571.909723647506, @@ -35890,7 +40203,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "011e4021-13d8-4563-90ce-71aca8c459a0", + "id": "bc031779-1ad9-4db9-b070-46ce0d671230", "savedPayload": { "position": { "x": 20797.567344740582, @@ -35913,7 +40226,7 @@ } } }, - "id": "69c59aeb-2e10-4d64-80d8-91569fd6c7f1", + "id": "acbfa1c0-076e-4256-a3b7-25e83e6e6f2b", "savedPayload": { "position": { "x": 21210.386601419417, @@ -35946,7 +40259,7 @@ "name": "New Data Formula", "code": "record.maxForecast30", "project": "Foundations", - "id": "0b8b7c0f-5d37-4669-867b-549924049f86", + "id": "81e83934-16e4-441f-a362-5be54b2dead7", "savedPayload": { "position": { "x": 21254.262759641824, @@ -35974,7 +40287,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "2a073405-5b77-4e30-92d5-0f6440f73d21", + "id": "f5ca8210-fad8-4416-88c3-f9e79b17376c", "savedPayload": { "position": { "x": 20583.003335141922, @@ -35997,7 +40310,7 @@ } } }, - "id": "0db6614c-7ab0-477d-abde-17cc1801346d", + "id": "bdd0e4a7-787f-4a50-aa95-453de892da61", "savedPayload": { "position": { "x": 21032.982943551302, @@ -36021,7 +40334,7 @@ } } ], - "id": "9a501a5c-07d4-4976-b315-ac8547f1c6f0", + "id": "fdc1f707-0215-46e0-b015-1446fba15af9", "savedPayload": { "position": { "x": 21261.68273587016, @@ -36045,7 +40358,7 @@ } } ], - "id": "304017a6-6d95-4565-818f-d59169dfc6ac", + "id": "d3991f1f-dacf-4d98-b51c-463cf116baca", "savedPayload": { "position": { "x": 20075.98927280192, @@ -36069,11 +40382,11 @@ } } ], - "id": "fda025b7-fa81-4620-be4d-41f0c013d27e", + "id": "5f2babc5-3671-4fe1-aed9-9732eb37b605", "savedPayload": { "position": { - "x": 18592.459601996485, - "y": 9505.472132424411 + "x": 18500.984730157696, + "y": 9367.928780950468 }, "targetPosition": { "x": 18051.878281255034, @@ -36122,7 +40435,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.OBVInt", "project": "Foundations", - "id": "a2b6fd13-0bb5-4b45-8a97-3fb7e58d4816", + "id": "9cf0c3e4-4ce7-4c70-b1ad-0476ff3f1052", "savedPayload": { "position": { "x": 18893.0172207858, @@ -36145,7 +40458,7 @@ } } }, - "id": "a5f72c24-9b07-4a3a-8bdb-b62aaa4f9c6b", + "id": "d1248728-e8ae-4090-9267-15a7f25c43cd", "savedPayload": { "position": { "x": 19034.569427624545, @@ -36177,7 +40490,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.OBVInt", "project": "Foundations", - "id": "68a11e10-0363-459a-acc7-9060dbb44050", + "id": "b354ddd9-23c9-4135-a20a-4c22bb0963b1", "savedPayload": { "position": { "x": 18585.518872339733, @@ -36200,7 +40513,7 @@ } } }, - "id": "9db53f2f-2fb1-4026-9825-b571f2a1075b", + "id": "50ff56f7-08b7-4387-9169-ec42b96edae7", "savedPayload": { "position": { "x": 18880.82025340151, @@ -36232,7 +40545,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.OBVInt3", "project": "Foundations", - "id": "6ea0cd00-cf02-4d43-a7f4-33700ab02af8", + "id": "500563c5-2c89-4df7-9c96-b9081581a0fe", "savedPayload": { "position": { "x": 19094.21346729885, @@ -36255,7 +40568,7 @@ } } }, - "id": "7fdcc695-832e-44af-a589-d61c8a01aff9", + "id": "6a5394cb-ad80-49b3-963b-202b4627cbda", "savedPayload": { "position": { "x": 19135.16755088107, @@ -36287,7 +40600,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.OBVInt3", "project": "Foundations", - "id": "55166f0f-1a19-4dd3-92e9-dfd4c2c0ad73", + "id": "cfebbee9-3cf4-4fb2-bed9-76850f05db11", "savedPayload": { "position": { "x": 19716.10236532302, @@ -36310,7 +40623,7 @@ } } }, - "id": "4c7c12fe-2b71-4160-b8a5-2e6428b38613", + "id": "e06bc09c-01a0-4779-9e60-93161c9df5d3", "savedPayload": { "position": { "x": 19446.111999893154, @@ -36334,7 +40647,7 @@ } } ], - "id": "605106e2-35a8-45fa-9fff-890d31ea36db", + "id": "19fa02b1-2b32-48fa-bead-d8916e6bdcfa", "savedPayload": { "position": { "x": 19176.12163446329, @@ -36372,7 +40685,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.BLACK\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "536fda7e-c35d-4c21-a8af-7020d53f7f3a", + "id": "f24928ab-5f5e-47b8-adb3-3148d0d017b7", "savedPayload": { "position": { "x": 19679.32523382673, @@ -36396,7 +40709,7 @@ } }, "styleConditions": [], - "id": "2dee6b57-4694-4383-8f45-764785ab1d46", + "id": "02663365-e262-4b57-b3de-6af3daa6c7c6", "savedPayload": { "position": { "x": 19822.914632399265, @@ -36424,7 +40737,7 @@ "type": "Polygon Vertex", "name": " OBV Integral End", "project": "Foundations", - "id": "b7794b69-2615-4fe7-aec7-1d85fbfcf1f9", + "id": "ee30caa2-bfd6-4ced-9723-fa643af11547", "savedPayload": { "position": { "x": 20549.06912142743, @@ -36448,15 +40761,53 @@ "referenceParent": { "type": "Point", "name": "OBV Integral End", - "id": "9db53f2f-2fb1-4026-9825-b571f2a1075b" - } + "id": "50ff56f7-08b7-4387-9169-ec42b96edae7" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Integral", + "Plotter Module", + "Foundations", + "baa39ecc-f8da-4740-a16d-d6cee2ff4c51" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "fd9412c5-f786-4381-a650-13613fc69366" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "b5bddb34-31f3-47ac-99d4-0d7289ed56d0" + ], + [ + "OBV Integral End", + "Point", + "Foundations", + "eb1d11b8-6ac4-4edb-8c85-c61ded65925a" + ] + ] } }, { "type": "Polygon Vertex", "name": " OBV Integral Begin", "project": "Foundations", - "id": "831c0cb1-a590-4754-b1dd-8dc4533ba342", + "id": "4c016bb2-8a1f-4e7c-b786-d0143a760516", "savedPayload": { "position": { "x": 20110.093429544333, @@ -36480,12 +40831,50 @@ "referenceParent": { "type": "Point", "name": "OBV Integral Begin", - "id": "a5f72c24-9b07-4a3a-8bdb-b62aaa4f9c6b" - } + "id": "d1248728-e8ae-4090-9267-15a7f25c43cd" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Integral", + "Plotter Module", + "Foundations", + "baa39ecc-f8da-4740-a16d-d6cee2ff4c51" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "fd9412c5-f786-4381-a650-13613fc69366" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "b5bddb34-31f3-47ac-99d4-0d7289ed56d0" + ], + [ + "OBV Integral Begin", + "Point", + "Foundations", + "b5e5758b-c296-46fe-b3b6-1b36f734b035" + ] + ] } } ], - "id": "05eff415-58a8-4069-be36-2f0ba7abf73a", + "id": "fc854c94-ddf8-4186-b138-a9ea76929be9", "savedPayload": { "position": { "x": 19966.5040309718, @@ -36511,7 +40900,7 @@ ], "images": [], "texts": [], - "id": "3174d9cf-b136-4161-b5f4-fe324fe609a4", + "id": "6617f38b-96ba-40bb-ba98-99b9bd9daa0c", "savedPayload": { "position": { "x": 19383.938940516167, @@ -36551,7 +40940,7 @@ "name": "New Data Formula", "code": "record.OBVInt", "project": "Foundations", - "id": "ae4079f7-47c9-4b36-beec-30696f7173c8", + "id": "a06a1f14-9793-4b91-a12e-941fe9fc6ece", "savedPayload": { "position": { "x": 20382.138643077556, @@ -36579,7 +40968,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "74c9363f-5fef-4b87-afb0-5d05df0c4076", + "id": "3891e263-0324-41a3-b48d-702272da0861", "savedPayload": { "position": { "x": 20630.842776833444, @@ -36602,7 +40991,7 @@ } } }, - "id": "e579eb3c-fe00-4809-8b86-8bd45fcfcea0", + "id": "08c66529-7901-45c8-84c5-954ef50d13d5", "savedPayload": { "position": { "x": 20215.208164727686, @@ -36635,7 +41024,7 @@ "name": "New Data Formula", "code": "record.OBVInt3", "project": "Foundations", - "id": "ac50b472-e96a-4106-909f-10d7e46a3945", + "id": "4a3cd8b3-a5a2-4971-bce3-a971c15bd24f", "savedPayload": { "position": { "x": 19881.347208027943, @@ -36663,7 +41052,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "c139c377-a366-40af-b127-58b7ddc20e78", + "id": "033b5a47-c362-42e0-a5ee-3e8651a6c1cb", "savedPayload": { "position": { "x": 18883.147505466553, @@ -36686,7 +41075,7 @@ } } }, - "id": "e98ae1a1-2fe4-482f-be64-3d6de5e4fabb", + "id": "3b5fa1a3-8b0d-4f11-9e93-3ece88e9a1cc", "savedPayload": { "position": { "x": 19465.712595922185, @@ -36710,7 +41099,7 @@ } } ], - "id": "94f7acc0-7851-4dc5-826b-bec4bae02cac", + "id": "7425a627-0975-463e-ac0b-ee5c47a0e700", "savedPayload": { "position": { "x": 19632.643074272055, @@ -36734,15 +41123,15 @@ } } ], - "id": "cc58fb7e-710d-4a94-ab49-a90a8f14d253", + "id": "c9d2dd2d-fae8-427b-81fe-e35f1cff143e", "savedPayload": { "position": { - "x": 18503.322468190338, - "y": 9047.333068212063 + "x": 18304.3179934207, + "y": 8955.694857276758 }, "targetPosition": { - "x": 18636.835028564128, - "y": 9632.289815521157 + "x": 18583.15189664696, + "y": 9486.968472668685 }, "floatingObject": { "isPinned": false, @@ -36781,7 +41170,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.PosSpan", "project": "Foundations", - "id": "c82d198c-1810-43d5-a629-ee9c48c69bd9", + "id": "f9ad3844-7e49-4e35-8af5-13e1319f3341", "savedPayload": { "position": { "x": 19120.948682993083, @@ -36804,7 +41193,7 @@ } } }, - "id": "75908725-d39b-484d-8df6-9ac3a1b97703", + "id": "ae40a444-03bf-403e-88b4-e3555ee76f71", "savedPayload": { "position": { "x": 19116.460860888503, @@ -36836,7 +41225,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.PosSpan", "project": "Foundations", - "id": "3a7c9fa7-2041-4b53-b859-a51ef83fe7a5", + "id": "dc12fae2-6e75-46cb-ac66-8b42603e37bb", "savedPayload": { "position": { "x": 18544.176608504422, @@ -36859,7 +41248,7 @@ } } }, - "id": "28123870-c0ca-46df-8523-53ccbcc9654c", + "id": "a3dec963-e28f-40fa-ba85-82e65d9a5148", "savedPayload": { "position": { "x": 18828.074823644172, @@ -36891,7 +41280,7 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.NegSpan", "project": "Foundations", - "id": "f392e881-8f58-468d-a798-225062d62161", + "id": "c19e7e61-cbf0-443c-b92f-2b2b1375b8f6", "savedPayload": { "position": { "x": 18752.079901971178, @@ -36914,7 +41303,7 @@ } } }, - "id": "f397a86a-adcd-439d-934a-24efc50f6a53", + "id": "d6ec0051-992b-46e2-8f5a-9f04b2340d16", "savedPayload": { "position": { "x": 18932.02647037755, @@ -36946,7 +41335,7 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.NegSpan", "project": "Foundations", - "id": "0f2b5e51-da0b-4b4b-a36c-c40b9fb33c8e", + "id": "c7fa0818-b941-4079-8468-3a3645e6e1d1", "savedPayload": { "position": { "x": 19457.343278195323, @@ -36969,7 +41358,7 @@ } } }, - "id": "e03f2b39-3271-4f51-a0e5-dc11b04f53c0", + "id": "0b1c6054-3a43-4e0d-8b5e-2d83ad281500", "savedPayload": { "position": { "x": 19284.658158489623, @@ -36993,7 +41382,7 @@ } } ], - "id": "2eb5f875-ebb4-41e2-bf23-342b72c385ab", + "id": "a0410062-eb8a-48c8-8b61-912d476376ae", "savedPayload": { "position": { "x": 19111.973038783923, @@ -37031,7 +41420,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.BOTTLE_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "da28e05f-f7f0-4705-83a2-88ca1e9a6520", + "id": "f404407d-e1a1-4c63-bd05-02838b8ec871", "savedPayload": { "position": { "x": 19928.029367582618, @@ -37055,7 +41444,7 @@ } }, "styleConditions": [], - "id": "280cc274-3085-4aa4-ab6c-50e81bd7e6a4", + "id": "5177f80a-f4d6-4dc8-9bd9-65a0afabe52a", "savedPayload": { "position": { "x": 20071.618766155152, @@ -37083,7 +41472,7 @@ "type": "Polygon Vertex", "name": " OBV PosSpan End", "project": "Foundations", - "id": "0104c6f3-33e2-4676-b384-2103f6a3f4bc", + "id": "9ff8b508-d56f-4a1f-bca0-e95a40d97fd0", "savedPayload": { "position": { "x": 20797.773255183318, @@ -37107,15 +41496,53 @@ "referenceParent": { "type": "Point", "name": "OBV PosSpan End", - "id": "28123870-c0ca-46df-8523-53ccbcc9654c" - } + "id": "a3dec963-e28f-40fa-ba85-82e65d9a5148" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Span", + "Plotter Module", + "Foundations", + "ddc76a9e-ac9c-4773-bda2-a46ddc498ebf" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "572e8807-cfe5-4c0a-8a70-ee03fbfa0560" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2593e03c-eaa3-4946-b940-1682a7ae654f" + ], + [ + "OBV PosSpan End", + "Point", + "Foundations", + "17badf25-b2f7-48de-b186-1e0b5b18347d" + ] + ] } }, { "type": "Polygon Vertex", "name": " OBV PosSpan Begin", "project": "Foundations", - "id": "8931a382-3615-460e-8426-99cf6b619487", + "id": "06d64ef5-e6c0-47d5-aea8-3f247027151e", "savedPayload": { "position": { "x": 20358.79756330022, @@ -37139,12 +41566,50 @@ "referenceParent": { "type": "Point", "name": "OBV PosSpan Begin", - "id": "75908725-d39b-484d-8df6-9ac3a1b97703" - } + "id": "ae40a444-03bf-403e-88b4-e3555ee76f71" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Span", + "Plotter Module", + "Foundations", + "ddc76a9e-ac9c-4773-bda2-a46ddc498ebf" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "572e8807-cfe5-4c0a-8a70-ee03fbfa0560" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2593e03c-eaa3-4946-b940-1682a7ae654f" + ], + [ + "OBV PosSpan Begin", + "Point", + "Foundations", + "a0299fe3-6a5a-46a6-960c-2bc413788f74" + ] + ] } } ], - "id": "c707abd4-72c7-4a51-ad39-84477b8e2310", + "id": "826a83a8-911d-4397-b24c-20dc49f17790", "savedPayload": { "position": { "x": 19575.49798516631, @@ -37180,7 +41645,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RED_ORANGE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "66367b98-5540-4c88-ad30-0c75f8dc4612", + "id": "eb116a1c-9914-4710-9894-5d77b0913066", "savedPayload": { "position": { "x": 20941.362653755852, @@ -37204,7 +41669,7 @@ } }, "styleConditions": [], - "id": "d8552687-8260-49a8-8de1-9f4523513577", + "id": "b1841f7b-8b0a-4034-be23-4c928fd60d74", "savedPayload": { "position": { "x": 20358.79756330022, @@ -37232,7 +41697,7 @@ "type": "Polygon Vertex", "name": " OBV NegSpan End", "project": "Foundations", - "id": "0b830d24-6a47-4a71-9f40-aedbc9367d1d", + "id": "b91c782c-0a17-4856-ba18-6fa68f8c12fd", "savedPayload": { "position": { "x": 19919.821871417123, @@ -37256,15 +41721,53 @@ "referenceParent": { "type": "Point", "name": "OBV NegSpan End", - "id": "e03f2b39-3271-4f51-a0e5-dc11b04f53c0" - } + "id": "0b1c6054-3a43-4e0d-8b5e-2d83ad281500" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Span", + "Plotter Module", + "Foundations", + "ddc76a9e-ac9c-4773-bda2-a46ddc498ebf" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "572e8807-cfe5-4c0a-8a70-ee03fbfa0560" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2593e03c-eaa3-4946-b940-1682a7ae654f" + ], + [ + "OBV NegSpan End", + "Point", + "Foundations", + "5cfbecb6-5e27-47e1-91c2-57a76f9738a4" + ] + ] } }, { "type": "Polygon Vertex", "name": " OBV NegSpan Begin", "project": "Foundations", - "id": "0e947270-e145-4e35-bbd2-004c3a639fef", + "id": "06aee1e3-b950-4bd6-82df-dbc29a120e61", "savedPayload": { "position": { "x": 19193.667382388958, @@ -37288,12 +41791,50 @@ "referenceParent": { "type": "Point", "name": "OBV NegSpan Begin", - "id": "f397a86a-adcd-439d-934a-24efc50f6a53" - } + "id": "d6ec0051-992b-46e2-8f5a-9f04b2340d16" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Span", + "Plotter Module", + "Foundations", + "ddc76a9e-ac9c-4773-bda2-a46ddc498ebf" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "572e8807-cfe5-4c0a-8a70-ee03fbfa0560" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2593e03c-eaa3-4946-b940-1682a7ae654f" + ], + [ + "OBV NegSpan Begin", + "Point", + "Foundations", + "fb6d162e-c3c1-47d3-9e35-d460b02fbcec" + ] + ] } } ], - "id": "2d06e457-7da6-47d5-80b5-7e953fafda04", + "id": "f702dd86-9bde-4710-bf8c-694e51a8775d", "savedPayload": { "position": { "x": 19971.98856399145, @@ -37319,7 +41860,7 @@ ], "images": [], "texts": [], - "id": "c220798f-2122-49dd-9c17-1811a1ef4462", + "id": "efde8e5a-1712-4a58-ab40-c3826b6714d1", "savedPayload": { "position": { "x": 19398.644880519765, @@ -37359,7 +41900,7 @@ "name": "New Data Formula", "code": "record.PosSpan", "project": "Foundations", - "id": "305b8d3a-9e29-46c4-8fb2-5f1cbe1ba4bb", + "id": "3400e58f-6763-4ef2-94bb-ef4678568bc2", "savedPayload": { "position": { "x": 19881.347208027943, @@ -37387,7 +41928,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "7533ca2d-1044-4eba-a831-87065f50a430", + "id": "6ecf13c0-5bfa-483d-9268-351b627bbc53", "savedPayload": { "position": { "x": 19131.85163922244, @@ -37410,7 +41951,7 @@ } } }, - "id": "155e6907-3ae7-4621-9058-32654f365393", + "id": "9c8d5e8d-1eab-44fd-8ff9-c86f757253eb", "savedPayload": { "position": { "x": 19298.78211757231, @@ -37443,7 +41984,7 @@ "name": "New Data Formula", "code": "record.NegSpan", "project": "Foundations", - "id": "f209d469-e175-4e4d-8249-37b3f6f5d032", + "id": "e977ae4b-0f74-4843-8069-03a86217bdec", "savedPayload": { "position": { "x": 18133.651936661052, @@ -37471,7 +42012,7 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "2f7e2858-e13f-47c8-9493-ee19104d6da6", + "id": "68498554-8f38-4132-851d-2a53cc3ceabc", "savedPayload": { "position": { "x": 17884.947802905164, @@ -37494,7 +42035,7 @@ } } }, - "id": "bd9e38b0-32b5-4dd8-9ccc-aa91a76b834d", + "id": "d2ea6264-f4aa-47fe-9d22-673b9efb435d", "savedPayload": { "position": { "x": 18300.582415010922, @@ -37518,7 +42059,7 @@ } } ], - "id": "3813a10e-c14c-4f10-b42c-f16a925f9e06", + "id": "7033849d-2ca9-473d-8a09-5d9510ec41fc", "savedPayload": { "position": { "x": 19629.895418535772, @@ -37542,15 +42083,15 @@ } } ], - "id": "fe058bb9-88fc-4330-b97f-5552aff192ff", + "id": "6089dec1-c404-4799-8c47-fc3a5c12b292", "savedPayload": { "position": { - "x": 19221.791775873222, - "y": 9498.777255147368 + "x": 19114.425512038884, + "y": 9208.134569442424 }, "targetPosition": { - "x": 18636.835028564128, - "y": 9632.289815521157 + "x": 18583.15189664696, + "y": 9486.968472668685 }, "floatingObject": { "isPinned": false, @@ -37589,15 +42130,15 @@ "name": "New Point Formula", "code": "x = record.begin\ny = record.previous.trendspan", "project": "Foundations", - "id": "ed38bc21-cf4d-4bc9-9c15-ba49e456073e", + "id": "5555f1ff-8bb0-481e-b43e-7e128253dcf1", "savedPayload": { "position": { - "x": 19309.422431848918, - "y": 8949.664546513151 + "x": 19164.10108899645, + "y": 9003.34767843032 }, "targetPosition": { - "x": 19376.178712035813, - "y": 9242.142920167698 + "x": 19303.51804060958, + "y": 9268.984486126283 }, "floatingObject": { "isPinned": false, @@ -37612,11 +42153,11 @@ } } }, - "id": "e167ee19-baa7-4f47-9730-bda83c62d4ef", + "id": "93f190e0-ba67-4ec6-b943-94dfc746d993", "savedPayload": { "position": { - "x": 19376.178712035813, - "y": 9242.142920167698 + "x": 19303.51804060958, + "y": 9268.984486126283 }, "targetPosition": { "x": 19442.93499222271, @@ -37644,15 +42185,15 @@ "name": "New Point Formula", "code": "x = record.end\ny = record.trendspan", "project": "Foundations", - "id": "b2bb1b83-d7f1-426e-a3c1-47cda77aa71d", + "id": "e9857482-072d-40d9-b397-4a9029934d0e", "savedPayload": { "position": { - "x": 20016.278675694393, - "y": 9711.474398468788 + "x": 20042.44839112565, + "y": 9558.780857887894 }, "targetPosition": { - "x": 19729.60683395855, - "y": 9623.047846145517 + "x": 19742.69169167418, + "y": 9546.70107585507 }, "floatingObject": { "isPinned": false, @@ -37667,11 +42208,11 @@ } } }, - "id": "b49da41a-0127-40da-8745-a418b22667fb", + "id": "15af244b-f56e-4df6-9a02-dd5ff4a6ce01", "savedPayload": { "position": { - "x": 19729.60683395855, - "y": 9623.047846145517 + "x": 19742.69169167418, + "y": 9546.70107585507 }, "targetPosition": { "x": 19442.93499222271, @@ -37691,20 +42232,20 @@ } } ], - "id": "d41c7a85-8d0a-40cd-b52e-4d1a72546767", + "id": "ca2c0003-2be0-4c8e-aa36-b3effe26f4b0", "savedPayload": { "position": { "x": 19442.93499222271, "y": 9534.621293822245 }, "targetPosition": { - "x": 19343.691272409604, - "y": 10394.099667476792 + "x": 19461.49919877616, + "y": 10042.401652126262 }, "floatingObject": { "isPinned": true, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 1, "distanceToParent": 2, "arrangementStyle": 0 @@ -37729,7 +42270,7 @@ "name": "New Style", "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.BOTTLE_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", "project": "Foundations", - "id": "035e3a92-5bf4-4b68-a25e-88f194197097", + "id": "f6d0efb4-d417-4949-a9e9-f09db72a1f33", "savedPayload": { "position": { "x": 19653.315110182397, @@ -37753,7 +42294,7 @@ } }, "styleConditions": [], - "id": "a644befa-75de-43fb-bfa3-a759d05c6fbc", + "id": "23ceff85-4c6b-4daa-9a80-a1053420d674", "savedPayload": { "position": { "x": 20061.418752844947, @@ -37781,7 +42322,7 @@ "type": "Polygon Vertex", "name": " Trend Span Begin", "project": "Foundations", - "id": "0fe5face-d318-4218-8e65-cfeb810575a0", + "id": "495fcc28-2cce-4939-b2d0-58715a77f909", "savedPayload": { "position": { "x": 20909.353518605392, @@ -37805,15 +42346,53 @@ "referenceParent": { "type": "Point", "name": "Trend Span Begin", - "id": "e167ee19-baa7-4f47-9730-bda83c62d4ef" - } + "id": "93f190e0-ba67-4ec6-b943-94dfc746d993" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Trend Span", + "Plotter Module", + "Foundations", + "23918320-7bca-4a15-9826-be06478c7488" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "b07c47b3-13cd-4d88-ad33-10e6ad68ec30" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f0798a4e-cf7d-46ed-97d9-e9eb571406b8" + ], + [ + "Trend Span Begin", + "Point", + "Foundations", + "6001eef7-89fa-475f-8819-bd70fda0a7e4" + ] + ] } }, { "type": "Polygon Vertex", "name": " Trend Span End", "project": "Foundations", - "id": "86dafa69-b9ce-4336-ba81-2997b5c1ebf9", + "id": "760d94b0-42c5-48fc-801b-2d0a3ad7687d", "savedPayload": { "position": { "x": 20877.62603817005, @@ -37837,20 +42416,58 @@ "referenceParent": { "type": "Point", "name": "Trend Span End", - "id": "b49da41a-0127-40da-8745-a418b22667fb" - } + "id": "15af244b-f56e-4df6-9a02-dd5ff4a6ce01" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "OBV-Extras", + "Plotter", + "Foundations", + "2efdcfe2-82d3-4852-b85e-97600e6a174d" + ], + [ + "OBV-Trend Span", + "Plotter Module", + "Foundations", + "23918320-7bca-4a15-9826-be06478c7488" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "b07c47b3-13cd-4d88-ad33-10e6ad68ec30" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "f0798a4e-cf7d-46ed-97d9-e9eb571406b8" + ], + [ + "Trend Span End", + "Point", + "Foundations", + "349681bc-b2ed-451b-83d3-c4732dd95d07" + ] + ] } } ], - "id": "c817a5f7-929f-47fd-9b0b-1ab7fdb501eb", + "id": "78fd2011-9efd-46b9-98b8-26aaf9a2fcd5", "savedPayload": { "position": { - "x": 19477.203832783394, - "y": 10979.056414785886 + "x": 19740.33310200242, + "y": 10573.675267518189 }, "targetPosition": { - "x": 19343.691272409604, - "y": 10394.099667476792 + "x": 19461.49919877616, + "y": 10042.401652126262 }, "floatingObject": { "isPinned": false, @@ -37868,20 +42485,20 @@ ], "images": [], "texts": [], - "id": "8b2ecbd5-f22e-4951-9a66-286d8424607c", + "id": "72af0521-e026-4c2e-9598-888fb745d035", "savedPayload": { "position": { - "x": 19343.691272409604, - "y": 10394.099667476792 + "x": 19461.49919877616, + "y": 10042.401652126262 }, "targetPosition": { - "x": 18770.34758893792, - "y": 10217.24656283025 + "x": 18861.98579987322, + "y": 10018.242088060611 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 1, "distanceToParent": 3, "arrangementStyle": 0 @@ -37908,15 +42525,15 @@ "name": "New Data Formula", "code": "record.trendspan", "project": "Foundations", - "id": "09bdfbf7-251b-4e85-898c-147aa8e0e59b", + "id": "580f34ba-fab5-4721-adfd-436faa78c482", "savedPayload": { "position": { - "x": 18024.19790311592, - "y": 11618.41059546445 + "x": 18499.460711746113, + "y": 11563.74380610509 }, "targetPosition": { - "x": 17890.68534274213, - "y": 11033.453848155355 + "x": 18220.626808519854, + "y": 11032.470190713164 }, "floatingObject": { "isPinned": false, @@ -37936,15 +42553,15 @@ "name": "New Text Style", "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", "project": "Foundations", - "id": "41f30e14-9888-4a52-969a-6630ab99bd05", + "id": "5f6a7c30-8418-4868-a519-a4f2d5eb88b8", "savedPayload": { "position": { - "x": 17317.341659270445, - "y": 10856.600743508814 + "x": 17621.11340961691, + "y": 11008.310626647513 }, "targetPosition": { - "x": 17890.68534274213, - "y": 11033.453848155355 + "x": 18220.626808519854, + "y": 11032.470190713164 }, "floatingObject": { "isPinned": false, @@ -37959,15 +42576,15 @@ } } }, - "id": "c9558eaf-fef9-4ac7-92f9-884efc9dc980", + "id": "d0f8fcf0-8d7a-44e2-baee-d61f061dcbb0", "savedPayload": { "position": { - "x": 17890.68534274213, - "y": 11033.453848155355 + "x": 18220.626808519854, + "y": 11032.470190713164 }, "targetPosition": { - "x": 18330.516465840024, - "y": 10625.350205492803 + "x": 18541.306304196536, + "y": 10525.356139386888 }, "floatingObject": { "isPinned": false, @@ -37983,15 +42600,15 @@ } } ], - "id": "e72317c4-fb72-493f-a0ad-c69b0b5932a5", + "id": "ea88157e-98cd-49b0-80f2-dd1e3b314fef", "savedPayload": { "position": { - "x": 18330.516465840024, - "y": 10625.350205492803 + "x": 18541.306304196536, + "y": 10525.356139386888 }, "targetPosition": { - "x": 18770.34758893792, - "y": 10217.24656283025 + "x": 18861.98579987322, + "y": 10018.242088060611 }, "floatingObject": { "isPinned": false, @@ -38007,15 +42624,1591 @@ } } ], - "id": "8547bbec-1854-4775-86ef-0b81e1a22aa7", + "id": "ea77d5e2-5baf-421f-b83e-6114cf909328", "savedPayload": { "position": { - "x": 18770.34758893792, - "y": 10217.24656283025 + "x": 18861.98579987322, + "y": 10018.242088060611 }, "targetPosition": { - "x": 18636.835028564128, - "y": 9632.289815521157 + "x": 18583.15189664696, + "y": 9486.968472668685 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "24287d24-292e-4403-bf0c-ac514afca25e", + "savedPayload": { + "position": { + "x": 18583.15189664696, + "y": 9486.968472668685 + }, + "targetPosition": { + "x": 18051.878281255034, + "y": 9765.802375894946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Plotter", + "name": "Better Sine Wave", + "config": "{\n \"codeName\": \"BetterSineWave\"\n}", + "project": "Foundations", + "modules": [ + { + "type": "Plotter Module", + "name": "Better Sine Wave 36", + "config": "{\n \"codeName\": \"BetterSineWave36\",\n \"icon\": \"trend\"\n}", + "project": "Foundations", + "shapes": { + "type": "Shapes", + "name": "New Shapes", + "project": "Foundations", + "chartPoints": [ + { + "type": "Chart Points", + "name": "New Chart Points", + "project": "Foundations", + "points": [ + { + "type": "Point", + "name": "BSV36 Begin", + "project": "Foundations", + "pointFormula": { + "type": "Point Formula", + "name": "New Point Formula", + "code": "x = record.begin\ny = record.previous.bsv36", + "project": "Foundations", + "id": "aa811b9b-5698-41e3-a70e-4ebf78d0b09e", + "savedPayload": { + "position": { + "x": 18260.12395950981, + "y": 8350.34376839172 + }, + "targetPosition": { + "x": 18135.543547022608, + "y": 8433.888491890686 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "7ccd6bf8-ac56-4487-9424-29094ff0bc25", + "savedPayload": { + "position": { + "x": 18135.543547022608, + "y": 8433.888491890686 + }, + "targetPosition": { + "x": 18010.963134535406, + "y": 8517.433215389652 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Point", + "name": "BSV36 End", + "project": "Foundations", + "pointFormula": { + "type": "Point Formula", + "name": "New Point Formula", + "code": "x = record.end\ny = record.bsv36", + "project": "Foundations", + "id": "7c6b5ec2-a3e8-48bc-86a4-1db44b3d8c4e", + "savedPayload": { + "position": { + "x": 18309.234426189636, + "y": 8549.592764125888 + }, + "targetPosition": { + "x": 18160.09878036252, + "y": 8533.51298975777 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "be397f46-750a-4062-bdd8-dd92612d790f", + "savedPayload": { + "position": { + "x": 18160.09878036252, + "y": 8533.51298975777 + }, + "targetPosition": { + "x": 18010.963134535406, + "y": 8517.433215389652 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Point", + "name": "Zero Begin", + "project": "Foundations", + "pointFormula": { + "type": "Point Formula", + "name": "New Point Formula", + "code": "x = record.begin\ny = 0", + "project": "Foundations", + "id": "10d51c93-ea3d-439e-bee1-865905236d8d", + "savedPayload": { + "position": { + "x": 18218.780440588285, + "y": 8733.793949592795 + }, + "targetPosition": { + "x": 18114.871787561846, + "y": 8625.613582491223 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "2dc949e3-198a-49a2-9ccc-c37a18774b94", + "savedPayload": { + "position": { + "x": 18114.871787561846, + "y": 8625.613582491223 + }, + "targetPosition": { + "x": 18010.963134535406, + "y": 8517.433215389652 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Point", + "name": "Zero End", + "project": "Foundations", + "pointFormula": { + "type": "Point Formula", + "name": "New Point Formula", + "code": "x = record.end\ny =0", + "project": "Foundations", + "id": "b9137c52-b99c-4794-95ef-46ef55e5e927", + "savedPayload": { + "position": { + "x": 18031.086427852708, + "y": 8816.75754294434 + }, + "targetPosition": { + "x": 18021.024781194057, + "y": 8667.095379166996 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "4a9a664e-0835-46bb-8af8-5056bb081d09", + "savedPayload": { + "position": { + "x": 18021.024781194057, + "y": 8667.095379166996 + }, + "targetPosition": { + "x": 18010.963134535406, + "y": 8517.433215389652 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Point", + "name": "0.85 Begin", + "project": "Foundations", + "pointFormula": { + "type": "Point Formula", + "name": "New Point Formula", + "code": "x = record.begin\ny = 0.85", + "project": "Foundations", + "id": "7cee4781-e773-49bf-9d21-36715c3114b7", + "savedPayload": { + "position": { + "x": 17833.976502528472, + "y": 8759.663956813694 + }, + "targetPosition": { + "x": 17922.46981853194, + "y": 8638.548586101673 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "0abe810f-cfa3-4d27-9d4b-2ed6b6188387", + "savedPayload": { + "position": { + "x": 17922.46981853194, + "y": 8638.548586101673 + }, + "targetPosition": { + "x": 18010.963134535406, + "y": 8517.433215389652 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Point", + "name": "0.85 End", + "project": "Foundations", + "pointFormula": { + "type": "Point Formula", + "name": "New Point Formula", + "code": "x = record.end\ny = 0.85", + "project": "Foundations", + "id": "7f35ccb7-a16c-4d48-8595-b92e6c08671e", + "savedPayload": { + "position": { + "x": 17719.680589307594, + "y": 8589.22791467592 + }, + "targetPosition": { + "x": 17865.3218619215, + "y": 8553.330565032786 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "9dfaa646-ead4-4d47-8e8f-5362c1beb27a", + "savedPayload": { + "position": { + "x": 17865.3218619215, + "y": 8553.330565032786 + }, + "targetPosition": { + "x": 18010.963134535406, + "y": 8517.433215389652 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Point", + "name": "-0.85 Begin", + "project": "Foundations", + "pointFormula": { + "type": "Point Formula", + "name": "New Point Formula", + "code": "x = record.begin\ny = -0.85", + "project": "Foundations", + "id": "569f113b-4039-4aca-80e5-73ad14c535ba", + "savedPayload": { + "position": { + "x": 17741.679016243703, + "y": 8385.198334832896 + }, + "targetPosition": { + "x": 17876.321075389555, + "y": 8451.315775111274 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "7bf809dc-6c7e-4231-81ac-d17457bea798", + "savedPayload": { + "position": { + "x": 17876.321075389555, + "y": 8451.315775111274 + }, + "targetPosition": { + "x": 18010.963134535406, + "y": 8517.433215389652 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Point", + "name": "-0.85 End", + "project": "Foundations", + "pointFormula": { + "type": "Point Formula", + "name": "New Point Formula", + "code": "x = record.end\ny = -0.85", + "project": "Foundations", + "id": "6befd533-bb3e-4e18-a3b8-a61739a17004", + "savedPayload": { + "position": { + "x": 17889.67847488812, + "y": 8243.042925229374 + }, + "targetPosition": { + "x": 17950.320804711762, + "y": 8380.238070309513 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "0c5b323f-d517-40f3-b765-8194baca3165", + "savedPayload": { + "position": { + "x": 17950.320804711762, + "y": 8380.238070309513 + }, + "targetPosition": { + "x": 18010.963134535406, + "y": 8517.433215389652 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "9a8cdbb2-6eff-479d-962c-dca43163cd18", + "savedPayload": { + "position": { + "x": 18551.82392442019, + "y": 8973.619092885148 + }, + "targetPosition": { + "x": 18593.556544007657, + "y": 8829.541376140443 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "polygons": [ + { + "type": "Polygon", + "name": "Better Sine Wave 36", + "project": "Foundations", + "polygonBorder": { + "type": "Polygon Border", + "name": "New Polygon Border", + "project": "Foundations", + "style": { + "type": "Style", + "name": "New Style", + "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_BLUE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", + "project": "Foundations", + "id": "236f51a9-2f52-4f97-8917-cefb145151d8", + "savedPayload": { + "position": { + "x": 17104.661689036442, + "y": 9011.728397742529 + }, + "targetPosition": { + "x": 17537.38315744273, + "y": 8596.09378563677 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 1 + }, + "uiObject": { + "isRunning": false + } + } + }, + "styleConditions": [], + "id": "ea61dfd8-b0cf-4a60-8064-77fc3be3456c", + "savedPayload": { + "position": { + "x": 17537.38315744273, + "y": 8596.09378563677 + }, + "targetPosition": { + "x": 17970.10462584902, + "y": 8180.45917353101 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "polygonVertexes": [ + { + "type": "Polygon Vertex", + "name": " BSV36 End", + "project": "Foundations", + "id": "2ef2e134-3128-44e8-b7cb-4c6f1cd7955a", + "savedPayload": { + "position": { + "x": 17554.470013743263, + "y": 7747.73770512472 + }, + "targetPosition": { + "x": 17970.10462584902, + "y": 8180.45917353101 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Point", + "name": "BSV36 End", + "id": "be397f46-750a-4062-bdd8-dd92612d790f" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 36", + "Plotter Module", + "Foundations", + "9e65c18a-33f0-41cc-99cf-3c3e7e5f522c" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "7783d96c-fde8-40a7-8d4f-f74bad498855" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2f78c012-0ba8-4fa0-8473-c10d77788b7f" + ], + [ + "BSV36 End", + "Point", + "Foundations", + "0d445ebb-9bfb-480f-977d-475da6c10e18" + ] + ] + } + }, + { + "type": "Polygon Vertex", + "name": " BSV36 Begin", + "project": "Foundations", + "id": "2eedf85d-bb4f-467f-9ea6-d60e80690a04", + "savedPayload": { + "position": { + "x": 18402.82609425531, + "y": 7764.82456142525 + }, + "targetPosition": { + "x": 17970.10462584902, + "y": 8180.45917353101 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Point", + "name": "BSV36 Begin", + "id": "7ccd6bf8-ac56-4487-9424-29094ff0bc25" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 36", + "Plotter Module", + "Foundations", + "9e65c18a-33f0-41cc-99cf-3c3e7e5f522c" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "7783d96c-fde8-40a7-8d4f-f74bad498855" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2f78c012-0ba8-4fa0-8473-c10d77788b7f" + ], + [ + "BSV36 Begin", + "Point", + "Foundations", + "86276e3f-e7d0-42d4-ae22-c4778e3cfa6e" + ] + ] + } + } + ], + "id": "9d68f874-372f-47c8-be51-3232887e2070", + "savedPayload": { + "position": { + "x": 18302.27399877984, + "y": 8901.33607542671 + }, + "targetPosition": { + "x": 18593.556544007657, + "y": 8829.541376140443 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Polygon", + "name": "Zero", + "project": "Foundations", + "polygonBorder": { + "type": "Polygon Border", + "name": "New Polygon Border", + "project": "Foundations", + "style": { + "type": "Style", + "name": "New Style", + "config": "{\n \"default\": {\n \"opacity\": 0.5,\n \"lineWidth\": 0.5,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.DARK_TURQUOISE\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", + "project": "Foundations", + "id": "84fd6c8b-907b-4929-b994-6a7fb042985f", + "savedPayload": { + "position": { + "x": 17987.191482149552, + "y": 7332.103093018961 + }, + "targetPosition": { + "x": 18402.82609425531, + "y": 7764.82456142525 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "styleConditions": [], + "id": "fc85f61b-a30d-43bb-9d9b-1f074335b20f", + "savedPayload": { + "position": { + "x": 18402.82609425531, + "y": 7764.82456142525 + }, + "targetPosition": { + "x": 18818.460706361067, + "y": 8197.54602983154 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "polygonVertexes": [ + { + "type": "Polygon Vertex", + "name": " Zero End", + "project": "Foundations", + "id": "b78ad8a9-7e29-4de6-87ae-4d1524e5eeeb", + "savedPayload": { + "position": { + "x": 19251.182174767357, + "y": 7781.91141772578 + }, + "targetPosition": { + "x": 18818.460706361067, + "y": 8197.54602983154 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Point", + "name": "Zero End", + "id": "4a9a664e-0835-46bb-8af8-5056bb081d09" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 36", + "Plotter Module", + "Foundations", + "9e65c18a-33f0-41cc-99cf-3c3e7e5f522c" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "7783d96c-fde8-40a7-8d4f-f74bad498855" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2f78c012-0ba8-4fa0-8473-c10d77788b7f" + ], + [ + "Zero End", + "Point", + "Foundations", + "12ad67d5-c3bd-4d40-b027-e9f924d8d572" + ] + ] + } + }, + { + "type": "Polygon Vertex", + "name": " Zero Begin", + "project": "Foundations", + "id": "16d52354-3bfc-4e40-97e6-c5dea23b30b7", + "savedPayload": { + "position": { + "x": 19234.095318466825, + "y": 8630.267498237828 + }, + "targetPosition": { + "x": 18818.460706361067, + "y": 8197.54602983154 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Point", + "name": "Zero Begin", + "id": "2dc949e3-198a-49a2-9ccc-c37a18774b94" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 36", + "Plotter Module", + "Foundations", + "9e65c18a-33f0-41cc-99cf-3c3e7e5f522c" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "7783d96c-fde8-40a7-8d4f-f74bad498855" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2f78c012-0ba8-4fa0-8473-c10d77788b7f" + ], + [ + "Zero Begin", + "Point", + "Foundations", + "41dce969-6f3b-4454-a278-7717da326e31" + ] + ] + } + } + ], + "id": "bfb2670b-afcc-41b3-8c45-81ee8d2bcc04", + "savedPayload": { + "position": { + "x": 18385.73923795478, + "y": 8613.180641937299 + }, + "targetPosition": { + "x": 18593.556544007657, + "y": 8829.541376140443 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Polygon", + "name": "0.85", + "project": "Foundations", + "polygonBorder": { + "type": "Polygon Border", + "name": "New Polygon Border", + "project": "Foundations", + "style": { + "type": "Style", + "name": "New Style", + "config": "{\n \"default\": {\n \"opacity\": 0.6,\n \"lineWidth\": 0.5,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", + "project": "Foundations", + "id": "6744b408-ba1b-440e-a3c5-24758207b95e", + "savedPayload": { + "position": { + "x": 18100.710916203774, + "y": 8374.455464301162 + }, + "targetPosition": { + "x": 18388.866349693184, + "y": 8457.920703476097 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "styleConditions": [], + "id": "a11916f7-095a-4c9e-bd93-14cbb4a7acc2", + "savedPayload": { + "position": { + "x": 18388.866349693184, + "y": 8457.920703476097 + }, + "targetPosition": { + "x": 18677.021783182594, + "y": 8541.385942651032 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "polygonVertexes": [ + { + "type": "Polygon Vertex", + "name": " 0.85 End", + "project": "Foundations", + "id": "334bc3b4-26c7-4149-b704-6cdee67010c3", + "savedPayload": { + "position": { + "x": 18760.48702235753, + "y": 8253.23050916162 + }, + "targetPosition": { + "x": 18677.021783182594, + "y": 8541.385942651032 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Point", + "name": "0.85 End", + "id": "9dfaa646-ead4-4d47-8e8f-5362c1beb27a" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 36", + "Plotter Module", + "Foundations", + "9e65c18a-33f0-41cc-99cf-3c3e7e5f522c" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "7783d96c-fde8-40a7-8d4f-f74bad498855" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2f78c012-0ba8-4fa0-8473-c10d77788b7f" + ], + [ + "0.85 End", + "Point", + "Foundations", + "41f74cc7-9773-42d1-8c72-56d1e128b5f3" + ] + ] + } + }, + { + "type": "Polygon Vertex", + "name": " 0.85 Begin", + "project": "Foundations", + "id": "fc029cae-da3b-42fe-a636-272724933047", + "savedPayload": { + "position": { + "x": 18965.177216672004, + "y": 8624.851181825967 + }, + "targetPosition": { + "x": 18677.021783182594, + "y": 8541.385942651032 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Point", + "name": "0.85 Begin", + "id": "0abe810f-cfa3-4d27-9d4b-2ed6b6188387" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 36", + "Plotter Module", + "Foundations", + "9e65c18a-33f0-41cc-99cf-3c3e7e5f522c" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "7783d96c-fde8-40a7-8d4f-f74bad498855" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2f78c012-0ba8-4fa0-8473-c10d77788b7f" + ], + [ + "0.85 Begin", + "Point", + "Foundations", + "0038b47d-893e-4404-84dd-9e0bc798d861" + ] + ] + } + } + ], + "id": "1ced0c0b-6c8e-4886-b36a-d3d467a1df5a", + "savedPayload": { + "position": { + "x": 18677.021783182594, + "y": 8541.385942651032 + }, + "targetPosition": { + "x": 18593.556544007657, + "y": 8829.541376140443 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Polygon", + "name": "-0.85", + "project": "Foundations", + "polygonBorder": { + "type": "Polygon Border", + "name": "New Polygon Border", + "project": "Foundations", + "style": { + "type": "Style", + "name": "New Style", + "config": "{\n \"default\": {\n \"opacity\": 0.6,\n \"lineWidth\": 0.5,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_GREEN\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", + "project": "Foundations", + "id": "e10af6bd-20c2-4cb8-b6fc-def5c343988d", + "savedPayload": { + "position": { + "x": 18741.24969066294, + "y": 8175.181586398545 + }, + "targetPosition": { + "x": 18813.044389949206, + "y": 8466.46413162636 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "styleConditions": [], + "id": "21e5a9d2-fcfd-477c-b68b-bc76803f12ce", + "savedPayload": { + "position": { + "x": 18813.044389949206, + "y": 8466.46413162636 + }, + "targetPosition": { + "x": 18884.839089235473, + "y": 8757.746676854176 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "polygonVertexes": [ + { + "type": "Polygon Vertex", + "name": " -0.85 End", + "project": "Foundations", + "id": "8628e94a-1ece-40d0-a01a-5e3c2779a45c", + "savedPayload": { + "position": { + "x": 19176.12163446329, + "y": 8685.95197756791 + }, + "targetPosition": { + "x": 18884.839089235473, + "y": 8757.746676854176 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Point", + "name": "-0.85 End", + "id": "0c5b323f-d517-40f3-b765-8194baca3165" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 36", + "Plotter Module", + "Foundations", + "9e65c18a-33f0-41cc-99cf-3c3e7e5f522c" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "7783d96c-fde8-40a7-8d4f-f74bad498855" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2f78c012-0ba8-4fa0-8473-c10d77788b7f" + ], + [ + "-0.85 End", + "Point", + "Foundations", + "c2378634-48fd-4832-916e-2620d0b6e0ea" + ] + ] + } + }, + { + "type": "Polygon Vertex", + "name": " -0.85 Begin", + "project": "Foundations", + "id": "e687426b-f199-49a8-b692-6b960050d4df", + "savedPayload": { + "position": { + "x": 18956.63378852174, + "y": 9049.029222081992 + }, + "targetPosition": { + "x": 18884.839089235473, + "y": 8757.746676854176 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Point", + "name": "-0.85 Begin", + "id": "7bf809dc-6c7e-4231-81ac-d17457bea798" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 36", + "Plotter Module", + "Foundations", + "9e65c18a-33f0-41cc-99cf-3c3e7e5f522c" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "7783d96c-fde8-40a7-8d4f-f74bad498855" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "2f78c012-0ba8-4fa0-8473-c10d77788b7f" + ], + [ + "-0.85 Begin", + "Point", + "Foundations", + "0d8a5f4a-e910-4d79-a9d1-92e4740f9426" + ] + ] + } + } + ], + "id": "61cbb0ba-9783-4425-a169-954ca96802ad", + "savedPayload": { + "position": { + "x": 18884.839089235473, + "y": 8757.746676854176 + }, + "targetPosition": { + "x": 18593.556544007657, + "y": 8829.541376140443 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "images": [], + "texts": [], + "id": "2797115b-8a45-4569-8fc9-63996239fef6", + "savedPayload": { + "position": { + "x": 18593.556544007657, + "y": 8829.541376140443 + }, + "targetPosition": { + "x": 18801.373850060536, + "y": 9045.902110343588 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 2, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "panels": [ + { + "type": "Plotter Panel", + "name": "BetterSIneWave 36", + "config": "{\n \"codeName\": \"BetterSineWave36\"\n}", + "project": "Foundations", + "panelData": [ + { + "type": "Panel Data", + "name": "BetterSineWave36", + "config": "{\n \"valueDecimals\": 2\n}", + "project": "Foundations", + "dataFormula": { + "type": "Data Formula", + "name": "New Data Formula", + "code": "record.bsv36", + "project": "Foundations", + "id": "4b25bd4e-a606-470a-a77b-923c2a21d10c", + "savedPayload": { + "position": { + "x": 20133.43450932167, + "y": 8182.412446219696 + }, + "targetPosition": { + "x": 19966.5040309718, + "y": 8758.72331319852 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "textStyle": { + "type": "Text Style", + "name": "New Text Style", + "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", + "project": "Foundations", + "id": "1a1d95f6-1f39-4d80-898d-424a10e98ed9", + "savedPayload": { + "position": { + "x": 20382.138643077556, + "y": 9191.444781604809 + }, + "targetPosition": { + "x": 19966.5040309718, + "y": 8758.72331319852 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "86d849b3-cd6a-44ef-89d3-e62abeefc2fc", + "savedPayload": { + "position": { + "x": 19966.5040309718, + "y": 8758.72331319852 + }, + "targetPosition": { + "x": 19383.938940516167, + "y": 8902.312711771054 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "f25d4239-8187-4675-807e-86dc22dd85f3", + "savedPayload": { + "position": { + "x": 19383.938940516167, + "y": 8902.312711771054 + }, + "targetPosition": { + "x": 18801.373850060536, + "y": 9045.902110343588 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "6ea00c08-f172-49e0-90ec-a717029f61e9", + "savedPayload": { + "position": { + "x": 18801.373850060536, + "y": 9045.902110343588 + }, + "targetPosition": { + "x": 18634.443371710666, + "y": 9622.212977322411 }, "floatingObject": { "isPinned": false, @@ -38029,13 +44222,554 @@ "isRunning": false } } + }, + { + "type": "Plotter Module", + "name": "Better Sine Wave 6", + "config": "{\n \"codeName\": \"BetterSineWave6\",\n \"icon\": \"trend\"\n}", + "project": "Foundations", + "shapes": { + "type": "Shapes", + "name": "New Shapes", + "project": "Foundations", + "chartPoints": [ + { + "type": "Chart Points", + "name": "New Chart Points", + "project": "Foundations", + "points": [ + { + "type": "Point", + "name": "BSV6 Begin", + "project": "Foundations", + "pointFormula": { + "type": "Point Formula", + "name": "New Point Formula", + "code": "x = record.begin\ny = record.previous.bsv6", + "project": "Foundations", + "id": "d6cc8706-dc3d-4108-aa90-7c9596fcbd16", + "savedPayload": { + "position": { + "x": 19466.558387806643, + "y": 9550.906596208319 + }, + "targetPosition": { + "x": 19570.467040833082, + "y": 9659.08696330989 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "4566f8eb-5195-44b4-afe6-b64573e9dab0", + "savedPayload": { + "position": { + "x": 19570.467040833082, + "y": 9659.08696330989 + }, + "targetPosition": { + "x": 19674.37569385952, + "y": 9767.267330411461 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Point", + "name": "BSV6 End", + "project": "Foundations", + "pointFormula": { + "type": "Point Formula", + "name": "New Point Formula", + "code": "x = record.end\ny = record.bsv6", + "project": "Foundations", + "id": "d8b86fd5-287d-46e0-8d15-2bb1a2e9638d", + "savedPayload": { + "position": { + "x": 19965.658239087334, + "y": 9695.472631125194 + }, + "targetPosition": { + "x": 19820.016966473428, + "y": 9731.369980768328 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "dea3c4ed-e6ef-4bfd-bf7f-64ec688bd9d6", + "savedPayload": { + "position": { + "x": 19820.016966473428, + "y": 9731.369980768328 + }, + "targetPosition": { + "x": 19674.37569385952, + "y": 9767.267330411461 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "a691097c-1ee0-4a37-a82c-4f78705d2f4b", + "savedPayload": { + "position": { + "x": 19674.37569385952, + "y": 9767.267330411461 + }, + "targetPosition": { + "x": 19632.643074272055, + "y": 9911.345047156166 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 1, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "polygons": [ + { + "type": "Polygon", + "name": "Better Sine Wave 6", + "project": "Foundations", + "polygonBorder": { + "type": "Polygon Border", + "name": "New Polygon Border", + "project": "Foundations", + "style": { + "type": "Style", + "name": "New Style", + "config": "{\n \"default\": {\n \"opacity\": 1,\n \"lineWidth\": 3,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.TRUE_RED\"\n },\n \"atMousePosition\": {\n \"opacity\": 0.3,\n \"lineWidth\": 2,\n \"lineDash\": [\n 0,\n 0\n ],\n \"paletteColor\": \"UI_COLOR.RUSTED_RED\"\n }\n}", + "project": "Foundations", + "id": "794f060c-7d7a-4658-80c0-4aa78ff70a9c", + "savedPayload": { + "position": { + "x": 20913.72062319039, + "y": 9512.797291350937 + }, + "targetPosition": { + "x": 20480.999154784102, + "y": 9928.431903456696 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 1 + }, + "uiObject": { + "isRunning": false + } + } + }, + "styleConditions": [], + "id": "fa37d444-b4cc-48d4-a654-ea8f403e5f4b", + "savedPayload": { + "position": { + "x": 20480.999154784102, + "y": 9928.431903456696 + }, + "targetPosition": { + "x": 20048.277686377813, + "y": 10344.066515562456 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "polygonVertexes": [ + { + "type": "Polygon Vertex", + "name": " BSV6 End", + "project": "Foundations", + "id": "2bcd9238-ed75-46ed-8191-cb0fde3a321e", + "savedPayload": { + "position": { + "x": 20463.91229848357, + "y": 10776.787983968745 + }, + "targetPosition": { + "x": 20048.277686377813, + "y": 10344.066515562456 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Point", + "name": "BSV6 End", + "id": "dea3c4ed-e6ef-4bfd-bf7f-64ec688bd9d6" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 6", + "Plotter Module", + "Foundations", + "3f2a9a23-2704-4b76-b386-27840b359521" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "9f5cfd89-f141-4b91-85de-2302d60a4478" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "374a9d8e-8c5b-4179-ab29-96e3b9984b95" + ], + [ + "BSV6 End", + "Point", + "Foundations", + "8c595baf-c9cc-4a0e-98af-cfd17f316aea" + ] + ] + } + }, + { + "type": "Polygon Vertex", + "name": " BSV6 Begin", + "project": "Foundations", + "id": "3c4d984e-352b-4328-984f-d70aff9ef593", + "savedPayload": { + "position": { + "x": 19615.556217971523, + "y": 10759.701127668215 + }, + "targetPosition": { + "x": 20048.277686377813, + "y": 10344.066515562456 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Point", + "name": "BSV6 Begin", + "id": "4566f8eb-5195-44b4-afe6-b64573e9dab0" + }, + "referenceParentCombinedNodePath": [ + [ + "Quasar", + "Data Mine", + "Foundations", + "a65781fb-5d0b-416f-9a54-ff74c4bc67b1" + ], + [ + "Better Sine Wave", + "Plotter", + "Foundations", + "ae095de5-a490-4c09-a082-bef5bdc0bc67" + ], + [ + "Better Sine Wave 6", + "Plotter Module", + "Foundations", + "3f2a9a23-2704-4b76-b386-27840b359521" + ], + [ + "New Shapes", + "Shapes", + "Foundations", + "9f5cfd89-f141-4b91-85de-2302d60a4478" + ], + [ + "New Chart Points", + "Chart Points", + "Foundations", + "374a9d8e-8c5b-4179-ab29-96e3b9984b95" + ], + [ + "BSV6 Begin", + "Point", + "Foundations", + "79383302-7452-4c3d-95a9-415a16027c87" + ] + ] + } + } + ], + "id": "2da89ad8-c4c8-44df-83ef-defe83fb945d", + "savedPayload": { + "position": { + "x": 20048.277686377813, + "y": 10344.066515562456 + }, + "targetPosition": { + "x": 19632.643074272055, + "y": 9911.345047156166 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "images": [], + "texts": [], + "id": "f8ee911c-58ce-4941-ae68-2338c0891333", + "savedPayload": { + "position": { + "x": 19632.643074272055, + "y": 9911.345047156166 + }, + "targetPosition": { + "x": 19050.077983816424, + "y": 10054.9344457287 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "panels": [ + { + "type": "Plotter Panel", + "name": "BetterSIneWave 6", + "config": "{\n \"codeName\": \"BetterSineWave6\"\n}", + "project": "Foundations", + "panelData": [ + { + "type": "Panel Data", + "name": "BetterSineWave6", + "config": "{\n \"valueDecimals\": 2\n}", + "project": "Foundations", + "dataFormula": { + "type": "Data Formula", + "name": "New Data Formula", + "code": "record.bsv6", + "project": "Foundations", + "id": "6ce94b33-97d5-4473-994c-5ac6b5592668", + "savedPayload": { + "position": { + "x": 19131.85163922244, + "y": 11640.277648092637 + }, + "targetPosition": { + "x": 18716.217027116683, + "y": 11207.556179686348 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "textStyle": { + "type": "Text Style", + "name": "New Text Style", + "config": "{\n \"paletteColor\": \"UI_COLOR.GREY\",\n \"opacity\": 1,\n \"fontSize\": 14\n}", + "project": "Foundations", + "id": "794ac7f8-64a8-4c2d-af47-291a419f5505", + "savedPayload": { + "position": { + "x": 18133.651936661052, + "y": 11351.145578258882 + }, + "targetPosition": { + "x": 18716.217027116683, + "y": 11207.556179686348 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "dbf1789c-3118-4f94-aee8-6b845eddf8f9", + "savedPayload": { + "position": { + "x": 18716.217027116683, + "y": 11207.556179686348 + }, + "targetPosition": { + "x": 18883.147505466553, + "y": 10631.245312707524 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "a0aa9373-6b83-4b29-9ff1-81bc7c53570c", + "savedPayload": { + "position": { + "x": 18883.147505466553, + "y": 10631.245312707524 + }, + "targetPosition": { + "x": 19050.077983816424, + "y": 10054.9344457287 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "333fe67d-7192-42b5-8d34-453c5c7cfc56", + "savedPayload": { + "position": { + "x": 19050.077983816424, + "y": 10054.9344457287 + }, + "targetPosition": { + "x": 18634.443371710666, + "y": 9622.212977322411 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } } ], - "id": "01000126-fe74-429b-921b-557969d22251", + "id": "1a2649c0-5197-4da3-bc9b-ed761dd683ce", "savedPayload": { "position": { - "x": 18636.835028564128, - "y": 9632.289815521157 + "x": 18634.443371710666, + "y": 9622.212977322411 }, "targetPosition": { "x": 18051.878281255034, @@ -38055,7 +44789,7 @@ } } ], - "id": "38bead37-30f1-4afb-81cb-9bfd11b9aa69", + "id": "cda8a0e8-ef4a-4a59-acd3-f5fe21eb4ccb", "savedPayload": { "position": { "x": 18051.878281255034, @@ -38068,7 +44802,7 @@ "floatingObject": { "isPinned": true, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 1, "distanceToParent": 5, "arrangementStyle": 0 diff --git a/Projects/Foundations/Plugins/Workspaces/Getting-Started-Tutorials.json b/Projects/Foundations/Plugins/Workspaces/Getting-Started-Tutorials.json index 1077b47d8..940568935 100644 --- a/Projects/Foundations/Plugins/Workspaces/Getting-Started-Tutorials.json +++ b/Projects/Foundations/Plugins/Workspaces/Getting-Started-Tutorials.json @@ -60159,7 +60159,6 @@ "arrangementStyle": 0 }, "uiObject": { - "isPlaying": false, "isRunning": false }, "tutorial": { @@ -62416,7 +62415,7 @@ "referenceParent": { "type": "Workspace", "name": "Getting Started Tutorials", - "id": "e927ea33-b88c-4524-97bb-07bbfea501f2" + "id": "90718523-1d6d-49a5-893c-803a492fdb43" }, "referenceParentCombinedNodePath": [ [ @@ -63381,7 +63380,6 @@ "arrangementStyle": 0 }, "uiObject": { - "isPlaying": false, "isRunning": false }, "tutorial": { @@ -69872,6 +69870,7 @@ "arrangementStyle": 0 }, "uiObject": { + "isPlaying": true, "isRunning": false }, "tutorial": { diff --git a/Projects/Foundations/Schemas/App-Schema/bot-data-dependencies.json b/Projects/Foundations/Schemas/App-Schema/bot-data-dependencies.json index 4bb8dd2ca..bee3c1661 100644 --- a/Projects/Foundations/Schemas/App-Schema/bot-data-dependencies.json +++ b/Projects/Foundations/Schemas/App-Schema/bot-data-dependencies.json @@ -9,8 +9,8 @@ }, { "action": "Add UI Object", - "label": "Add Dependency Product Folder", - "relatedUiObject": "Dependency Product Folder", + "label": "Add Data Dependency Folder", + "relatedUiObject": "Data Dependency Folder", "actionFunction": "payload.executeAction" }, { diff --git a/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json b/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json index 96a182740..b167e079f 100644 --- a/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json +++ b/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json @@ -10,6 +10,7 @@ { "action": "Add UI Object", "label": "Add Tutorial", + "iconProject": "Education", "relatedUiObject": "Tutorial", "actionFunction": "payload.executeAction" }, diff --git a/Projects/Foundations/Schemas/App-Schema/plugin-tutorials.json b/Projects/Foundations/Schemas/App-Schema/plugin-tutorials.json index 266c90700..ba844f57f 100644 --- a/Projects/Foundations/Schemas/App-Schema/plugin-tutorials.json +++ b/Projects/Foundations/Schemas/App-Schema/plugin-tutorials.json @@ -4,6 +4,7 @@ { "action": "Add Missing Plugin Tutorials", "label": "Add Missing Tutorials", + "iconProject": "Education", "askConfirmation": true, "confirmationLabel": "Confirm to Proceed", "workDoneLabel": "Done", diff --git a/Projects/Foundations/Schemas/Docs-Nodes/D/Data/Data-Mine-Tasks/data-mine-tasks.json b/Projects/Foundations/Schemas/Docs-Nodes/D/Data/Data-Mine-Tasks/data-mine-tasks.json index 009ef02ea..df6abd1e8 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/D/Data/Data-Mine-Tasks/data-mine-tasks.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/D/Data/Data-Mine-Tasks/data-mine-tasks.json @@ -1,7 +1,14 @@ { "type": "Data Mine Tasks", "definition": { - "text": "The data mine tasks node is an organizational device that groups tasks corresponding to the referenced data mine." + "text": "The data mine tasks node is an organizational device that groups tasks corresponding to the referenced data mine.", + "translations": [ + { + "language": "ES", + "text": "El nodo data mine tasks es un dispositivo organizativo que agrupa las tareas correspondientes a la mina de datos referenciada.", + "updated": 1629581022406 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/M/Manage/Manage-Stage/manage-stage.json b/Projects/Foundations/Schemas/Docs-Nodes/M/Manage/Manage-Stage/manage-stage.json index 73f706b72..c56f543dd 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/M/Manage/Manage-Stage/manage-stage.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/M/Manage/Manage-Stage/manage-stage.json @@ -1,7 +1,14 @@ { "type": "Manage Stage", "definition": { - "text": "The manage stage deals with the setting and management of stop loss and take profit targets, both to protect your capital and to increase the efficiency of your trading system." + "text": "The manage stage deals with the setting and management of stop loss and take profit targets, both to protect your capital and to increase the efficiency of your trading system.", + "translations": [ + { + "language": "ES", + "text": "El manage stage se ocupa del establecimiento y la gestión de objetivos de stop loss y take profit, tanto para proteger su capital como para aumentar la eficiencia de su sistema de trading.", + "updated": 1629580869439 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/M/Market/Market-Sell-Order/market-sell-order.json b/Projects/Foundations/Schemas/Docs-Nodes/M/Market/Market-Sell-Order/market-sell-order.json index f4891b48c..381cb44b3 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/M/Market/Market-Sell-Order/market-sell-order.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/M/Market/Market-Sell-Order/market-sell-order.json @@ -1,7 +1,14 @@ { "type": "Market Sell Order", "definition": { - "text": "A market sell order is an instruction sent to the exchange to sell the base asset, for immediate execution at current market prices." + "text": "A market sell order is an instruction sent to the exchange to sell the base asset, for immediate execution at current market prices.", + "translations": [ + { + "language": "ES", + "text": "Un market sell orderes una instrucción enviada a la bolsa para vender el activo base, para su ejecución inmediata a los precios actuales del mercado.", + "updated": 1629580936448 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/P/Position/Position/position.json b/Projects/Foundations/Schemas/Docs-Nodes/P/Position/Position/position.json index 63d55519d..0a3efda90 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/P/Position/Position/position.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/P/Position/Position/position.json @@ -1,7 +1,14 @@ { "type": "Position", "definition": { - "text": "Position is the section of the data structure that keeps track of information within the scope of each position, and during the time a position is open." + "text": "Position is the section of the data structure that keeps track of information within the scope of each position, and during the time a position is open.", + "translations": [ + { + "language": "ES", + "text": "Position es la sección de la estructura de datos que realiza un seguimiento de la información dentro del alcance de cada puesto, y durante el tiempo que un puesto está abierto.", + "updated": 1629580398836 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/S/Slippage/Slippage/slippage.json b/Projects/Foundations/Schemas/Docs-Nodes/S/Slippage/Slippage/slippage.json index 3d2ddff6b..000b085d8 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/S/Slippage/Slippage/slippage.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/S/Slippage/Slippage/slippage.json @@ -1,7 +1,14 @@ { "type": "Slippage", "definition": { - "text": "The slippage is an assumption on the difference between the simulated rate and the actual fill rate of a market order, most relevant in the context of backtesting and paper-trading sessions. The parameter is a tool to make simulations more realistic." + "text": "The slippage is an assumption on the difference between the simulated rate and the actual fill rate of a market order, most relevant in the context of backtesting and paper-trading sessions. The parameter is a tool to make simulations more realistic.", + "translations": [ + { + "language": "ES", + "text": "El slippage es una suposición sobre la diferencia entre la tasa simulada y la tasa de ejecución real de una orden de mercado, más relevante en el contexto de las sesiones de backtesting y de paper-trading. El parámetro es una herramienta para hacer que las simulaciones sean más realistas.", + "updated": 1629581196113 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/S/Stop/Stop-Loss/stop-loss.json b/Projects/Foundations/Schemas/Docs-Nodes/S/Stop/Stop-Loss/stop-loss.json index f0dcef611..e63000e64 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/S/Stop/Stop-Loss/stop-loss.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/S/Stop/Stop-Loss/stop-loss.json @@ -1,7 +1,14 @@ { "type": "Stop Loss", "definition": { - "text": "Stop loss is the current stop loss target, as defined in the manage stage of the corresponding strategy." + "text": "Stop loss is the current stop loss target, as defined in the manage stage of the corresponding strategy.", + "translations": [ + { + "language": "ES", + "text": "Stop loss es el objetivo actual de stop loss, según se define en la etapa de gestión de la estrategia correspondiente.", + "updated": 1629580794189 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/S/Strategies/Strategies/strategies.json b/Projects/Foundations/Schemas/Docs-Nodes/S/Strategies/Strategies/strategies.json index 0b392d6f5..dfe4c652d 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/S/Strategies/Strategies/strategies.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/S/Strategies/Strategies/strategies.json @@ -1,7 +1,14 @@ { "type": "Strategies", "definition": { - "text": "Strategies counts the number of times strategies have been triggered-on, in the context of the parent node." + "text": "Strategies counts the number of times strategies have been triggered-on, in the context of the parent node.", + "translations": [ + { + "language": "ES", + "text": "Strategies cuenta el número de veces que se han activado las estrategias, en el contexto del nodo padre.", + "updated": 1629581287671 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/S/Strategy/Strategy/strategy.json b/Projects/Foundations/Schemas/Docs-Nodes/S/Strategy/Strategy/strategy.json index 6a4ed685e..be9fb67cd 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/S/Strategy/Strategy/strategy.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/S/Strategy/Strategy/strategy.json @@ -1,7 +1,14 @@ { "type": "Strategy", "definition": { - "text": "The strategy section of the trading engine keeps track of information relating to the trading strategies that are triggered-on, during the time they remain open." + "text": "The strategy section of the trading engine keeps track of information relating to the trading strategies that are triggered-on, during the time they remain open.", + "translations": [ + { + "language": "ES", + "text": "El strategy sección del motor de trading realiza un seguimiento de la información relacionada con las estrategias de trading que se activan, durante el tiempo que permanecen abiertas.", + "updated": 1629580247307 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/T/Take/Take-Profit/take-profit.json b/Projects/Foundations/Schemas/Docs-Nodes/T/Take/Take-Profit/take-profit.json index 61cb17163..7380cce8d 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/T/Take/Take-Profit/take-profit.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/T/Take/Take-Profit/take-profit.json @@ -1,7 +1,14 @@ { "type": "Take Profit", "definition": { - "text": "Take profit is the current take profit target, as defined in the manage stage of the corresponding strategy." + "text": "Take profit is the current take profit target, as defined in the manage stage of the corresponding strategy.", + "translations": [ + { + "language": "ES", + "text": "Take profit es el objetivo actual de obtención de beneficios, según se define en la etapa de gestión de la estrategia correspondiente.", + "updated": 1629579903804 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/T/Target/Target-Rate/target-rate.json b/Projects/Foundations/Schemas/Docs-Nodes/T/Target/Target-Rate/target-rate.json index 6bf3a586b..f0c19a4dc 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/T/Target/Target-Rate/target-rate.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/T/Target/Target-Rate/target-rate.json @@ -1,7 +1,14 @@ { "type": "Target Rate", "definition": { - "text": "The target rate is a reference rate that may affect simulations and that, in combination with the placement of managed stop loss and managed take profit targets, is used to determine whether the targets have been hit." + "text": "The target rate is a reference rate that may affect simulations and that, in combination with the placement of managed stop loss and managed take profit targets, is used to determine whether the targets have been hit.", + "translations": [ + { + "language": "ES", + "text": "El target rate es una tasa de referencia que puede afectar a las simulaciones y que, en combinación con la ubicación de los objetivos de stop loss gestionados y take profit gestionados, se utiliza para determinar si se han alcanzado los objetivos.", + "updated": 1629580668142 + } + ] }, "paragraphs": [ { @@ -143,4 +150,4 @@ "text": "As you see, flexibility is a key design feature in Superalgos." } ] -} +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-Off-Event/trigger-off-event.json b/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-Off-Event/trigger-off-event.json index 39d949e67..29c021db9 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-Off-Event/trigger-off-event.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-Off-Event/trigger-off-event.json @@ -1,7 +1,14 @@ { "type": "Trigger Off Event", "definition": { - "text": "The trigger-off event defines the situation in which the corresponding strategy shall be triggered-off. A strategy that is triggered-off releases the capital in reserve and makes it available to other strategies in the trading system." + "text": "The trigger-off event defines the situation in which the corresponding strategy shall be triggered-off. A strategy that is triggered-off releases the capital in reserve and makes it available to other strategies in the trading system.", + "translations": [ + { + "language": "ES", + "text": "El evento trigger-off define la situación en la que se activará la estrategia correspondiente. Una estrategia que se activa libera el capital en reserva y lo pone a disposición de otras estrategias en el sistema de trading.", + "updated": 1629580571614 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-On-Event/trigger-on-event.json b/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-On-Event/trigger-on-event.json index a4d6db2d8..22ac96994 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-On-Event/trigger-on-event.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-On-Event/trigger-on-event.json @@ -1,7 +1,14 @@ { "type": "Trigger On Event", "definition": { - "text": "The trigger-on event defines the set of rules that need to be met for the corresponding strategy to be triggered on. A strategy that is triggered may use all the capital available to the trading system, and prevents other strategies in the system from triggering." + "text": "The trigger-on event defines the set of rules that need to be met for the corresponding strategy to be triggered on. A strategy that is triggered may use all the capital available to the trading system, and prevents other strategies in the system from triggering.", + "translations": [ + { + "language": "ES", + "text": "El trigger-on event define el conjunto de reglas que deben cumplirse para que se active la estrategia correspondiente. Una estrategia que se activa puede utilizar todo el capital disponible para el sistema de trading y evita que se activen otras estrategias en el sistema.", + "updated": 1629580618624 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-On/trigger-on.json b/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-On/trigger-on.json index f615ab037..43c7ca2d5 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-On/trigger-on.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/T/Trigger/Trigger-On/trigger-on.json @@ -1,7 +1,14 @@ { "type": "Trigger On", "definition": { - "text": "Counts the periods since the last time a strategy was triggered on." + "text": "Counts the periods since the last time a strategy was triggered on.", + "translations": [ + { + "language": "ES", + "text": "Cuenta los períodos desde la última vez que se activó una estrategia.", + "updated": 1629580287934 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Topics/I/Introduction/Introduction/introduction-005-workspaces.json b/Projects/Foundations/Schemas/Docs-Topics/I/Introduction/Introduction/introduction-005-workspaces.json index 9043403c0..4e0ed8ab6 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/I/Introduction/Introduction/introduction-005-workspaces.json +++ b/Projects/Foundations/Schemas/Docs-Topics/I/Introduction/Introduction/introduction-005-workspaces.json @@ -4,7 +4,14 @@ "type": "Workspaces", "definition": { "text": "Workspaces are a powerful concept. They enable working on multiple settings in an orderly fashion.", - "updated": 1615893371936 + "updated": 1615893371936, + "translations": [ + { + "language": "ES", + "text": "Workspaces son un concepto poderoso. Permiten trabajar en múltiples entornos de forma ordenada.", + "updated": 1629579704727 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Topics/P/Pluvtech/Pluvtech-Data-Mine/pluvtech-data-mine-008-simple-moving-average.json b/Projects/Foundations/Schemas/Docs-Topics/P/Pluvtech/Pluvtech-Data-Mine/pluvtech-data-mine-008-simple-moving-average.json index 06922302f..728ad4086 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/P/Pluvtech/Pluvtech-Data-Mine/pluvtech-data-mine-008-simple-moving-average.json +++ b/Projects/Foundations/Schemas/Docs-Topics/P/Pluvtech/Pluvtech-Data-Mine/pluvtech-data-mine-008-simple-moving-average.json @@ -4,7 +4,14 @@ "type": "Simple Moving Average", "definition": { "text": "A simple moving average (SMA) calculates the average of a selected range of prices, usually closing prices, by the number of periods in that range.", - "updated": 1622686933380 + "updated": 1622686933380, + "translations": [ + { + "language": "ES", + "text": "Un simple moving average (SMA) calcula el promedio de un rango seleccionado de precios, generalmente precios de cierre, por el número de períodos en ese rango.", + "updated": 1629579640550 + } + ] }, "paragraphs": [ { diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-001-creating-your-user-profile-tutorial.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-001-creating-your-user-profile-tutorial.json new file mode 100644 index 000000000..0529f0b2d --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-001-creating-your-user-profile-tutorial.json @@ -0,0 +1,28 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 1, + "type": "Creating Your User Profile Tutorial", + "definition": { + "text": "This Tutorial walks you through the steps to create a User Profile and begin the journey to participating in Superalgos Governance.", + "updated": 1629146822189 + }, + "paragraphs": [ + { + "style": "Title", + "text": "About This Tutorial" + }, + { + "style": "List", + "text": "Workspace: Token Distribution Superalgos.", + "updated": 1629146723735 + }, + { + "style": "List", + "text": "Maintainer: @harrellbm (Telegram, and Discord)." + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-002-tutorial-step-better-together.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-002-tutorial-step-better-together.json new file mode 100644 index 000000000..3692e4da2 --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-002-tutorial-step-better-together.json @@ -0,0 +1,33 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 2, + "type": "Tutorial Step - Better Together", + "definition": { + "text": "Welcome to Superalgos Governance! Today I will walk you through everything you need to know about creating a Superalgos User Profile and joining the Governance network!", + "updated": 1629164302622, + "icon": { + "name": "Charting-Space/chart-points", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "As a completely open source and collaborative project, Superalgos is not run by any singular set of people. ", + "updated": 1629164311647 + }, + { + "style": "Note", + "text": "Even the core team, who are dedicated to improving and maintaining Superalgos, do not directly control the path development will take. ", + "updated": 1629164322397 + }, + { + "style": "Text", + "text": "Instead, the governance system distributes decision making power across all register users by leveraging the SA token." + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-003-tutorial-step-make-sure-you’re-comfortable.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-003-tutorial-step-make-sure-you’re-comfortable.json new file mode 100644 index 000000000..7698b3aa6 --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-003-tutorial-step-make-sure-you’re-comfortable.json @@ -0,0 +1,28 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 3, + "type": "Tutorial Step - Make sure You’re Comfortable", + "definition": { + "text": "Before you jump into governance, it’s important you know what is being governed!", + "updated": 1629147485727, + "icon": { + "name": "Charting-Space/charting-space", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "We have got a lot of exciting things to talk about, but I want to make sure you can follow along easily. ", + "updated": 1629164474591 + }, + { + "style": "Callout", + "text": "If you haven't already, take some time to go through the Getting Started Tutorials." + }, + { + "style": "Success", + "text": "There is no need to be an expert, but some general knowledge of the system will make your time in the Governance project much more productive." + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-004-tutorial-step-one-token-to-rule-them-all.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-004-tutorial-step-one-token-to-rule-them-all.json new file mode 100644 index 000000000..d8b2f5a2c --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-004-tutorial-step-one-token-to-rule-them-all.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 4, + "type": "Tutorial Step - One Token to Rule Them All", + "definition": { + "text": "Unlike some crypto currencies the SA token actually means something!", + "updated": 1629162158011, + "icon": { + "name": "design-space", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "The SA token is a BEP20 token hosted on the Binance Smart Chain (BSC). It represents your amount of investment in the Superalgos project and community. It is a way to reward and grow the Superalgos user base and development pool.", + "updated": 1629164803435 + }, + { + "style": "Success", + "text": "This means that the more you contribute to the project and help others, the more tokens you will earn!", + "updated": 1629164817915 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-005-tutorial-step-with-tokens-comes-responsibility.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-005-tutorial-step-with-tokens-comes-responsibility.json new file mode 100644 index 000000000..8ce01f89f --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-005-tutorial-step-with-tokens-comes-responsibility.json @@ -0,0 +1,24 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 5, + "type": "Tutorial Step - With Tokens Comes Responsibility", + "definition": { + "text": "Holding tokens does more than just show commitment. SA tokens also confer governance power!", + "updated": 1629162449407, + "icon": { + "name": "workspace", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "The more tokens you hold the more influence you can have over the direction of the project. This means, by owning SA tokens, you hold the power to use those tokens to exert influence over what parts of the system will be developed and how the community will evolve.", + "updated": 1629165111109 + }, + { + "style": "Note", + "text": "This works in a cycle. The more you contribute, the more tokens you earn, the more say you have!" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-006-tutorial-step-a-mighty-meritocracy.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-006-tutorial-step-a-mighty-meritocracy.json new file mode 100644 index 000000000..ac1e36627 --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-006-tutorial-step-a-mighty-meritocracy.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 6, + "type": "Tutorial Step - A Mighty Meritocracy", + "definition": { + "text": "Superalgos does not reward freeloading! Real contributions to the project and community are what get rewarded with SA tokens and Governance power.", + "updated": 1629162653518, + "icon": { + "name": "crypto-exchange", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "The fancy word for this kind of project governance is meritocracy. In other words, the more you contribute to the improvement of Superalgos, and to the support of our community, the more governance power you earn to influence the future of the Superalgos project.", + "updated": 1629165463461 + }, + { + "style": "Note", + "text": "This is a collaboration! Only together can we continue to make Superalgos the game changer it is today no matter what the future may bring.", + "updated": 1629165548280 + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-007-tutorial-step-a-worthy-contribution.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-007-tutorial-step-a-worthy-contribution.json new file mode 100644 index 000000000..c5ef7d472 --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-007-tutorial-step-a-worthy-contribution.json @@ -0,0 +1,24 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 7, + "type": "Tutorial Step - A Worthy Contribution", + "definition": { + "text": "No matter who you are, you can bring value to the Superalgos network!", + "updated": 1629162880545, + "icon": { + "name": "Market/market", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Success", + "text": "Each of us bring unique talents and experience into our work with Superalgos. Even if you are not a programmer or expert trader there is still ways for you to get involved and grow the project!", + "updated": 1629165838038 + }, + { + "style": "Text", + "text": "One of the first contributions you can make to the project is getting involved in governance itself. The network of users guiding Superalgos is an integral part of the success of our open collaboration. You bring value to the network just by being a part of it!" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-008-tutorial-step-what’s-in-a-profile.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-008-tutorial-step-what’s-in-a-profile.json new file mode 100644 index 000000000..6d517fab2 --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-008-tutorial-step-what’s-in-a-profile.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 8, + "type": "Tutorial Step - What’s in a Profile?", + "definition": { + "text": "So what are we waiting for? Let’s get started! To participate in Governance you will first need a User Profile.", + "updated": 1629163040597, + "icon": { + "name": "Charting-Space/chart-points", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "Your profile is set up just like the rest of the Superalgos system. It is a hierarchy of nodes. Only this hierarchy defines how you intend to use the Token Power you have earned or is delegated to you by other users. ", + "updated": 1629165991225 + }, + { + "style": "Note", + "text": "By channelling your token power you help decide what parts of the system will be incentivised for further development and who will be rewarded for the community roles they have played.", + "updated": 1629166027369 + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-009-tutorial-step-program-participation.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-009-tutorial-step-program-participation.json new file mode 100644 index 000000000..d850f81e3 --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-009-tutorial-step-program-participation.json @@ -0,0 +1,29 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 9, + "type": "Tutorial Step - Program Participation", + "definition": { + "text": "How you use your Token Power is defined within a number of different Programs within your profile hierarchy.", + "updated": 1629163374967, + "icon": { + "name": "Charting-Space/chart-points", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "These programs help organize the types of development and community relationships you want to reward. ", + "updated": 1629166399952 + }, + { + "style": "Note", + "text": "For instance, the Claims Program lets you present claims for the work you’ve done. While the Support Program lets you thank other Superalgos users that have helped you with technical support. ", + "updated": 1629166416422 + }, + { + "style": "Text", + "text": "We’ll cover all these and other programs in detail once you have a working profile!" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-010-tutorial-step-where-is-all-begins.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-010-tutorial-step-where-is-all-begins.json new file mode 100644 index 000000000..26eddc2a0 --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-010-tutorial-step-where-is-all-begins.json @@ -0,0 +1,25 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 10, + "type": "Tutorial Step - Where is all Begins", + "definition": { + "text": "Here we are at the head of the governance project. Let’s get that profile created!", + "updated": 1629163572836, + "icon": { + "name": "Charting-Space/dashboard", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Click the Add Profile Constructor button.", + "updated": 1629163599518 + }, + { + "style": "Text", + "text": "Now position the resulting Profile Constructor node where it is easy to see.", + "updated": 1629163626525 + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-011-tutorial-step-profile-in-a-heartbeat.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-011-tutorial-step-profile-in-a-heartbeat.json new file mode 100644 index 000000000..069f39d36 --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-011-tutorial-step-profile-in-a-heartbeat.json @@ -0,0 +1,30 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 11, + "type": "Tutorial Step - Profile in a Heartbeat", + "definition": { + "text": "The Profile Constructor is the device you will use to set up your profile. ", + "updated": 1629163751173, + "icon": { + "name": "under-construction", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Text", + "text": "Not only that but it will create a unique Binance Smart Chain wallet that is connected with your profile. We call it your Governance Address.", + "updated": 1629166742408 + }, + { + "style": "Note", + "text": "This means that you will not be able to use any existing wallet addresses you may own, but will create a new one. ", + "updated": 1629166737533 + }, + { + "style": "Text", + "text": "Your Governance Address will allow you to receive the SA tokens you earn. Superalgos will also read the balance of this address to become aware of the number of SA tokens you hold, and assign your profile an equivalent amount of Token Power.", + "updated": 1629166705049 + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-012-tutorial-step-get-that-heartbeat-pumping.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-012-tutorial-step-get-that-heartbeat-pumping.json new file mode 100644 index 000000000..9e2ccbe7f --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-012-tutorial-step-get-that-heartbeat-pumping.json @@ -0,0 +1,33 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 12, + "type": "Tutorial Step - Pump that Heartbeat!", + "definition": { + "text": "Now let’s configure that constructor! ", + "updated": 1629167048288, + "icon": { + "name": "Time/time-machine", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Click the configuration option and type your GitHub username under the username properly.", + "updated": 1629167062088 + }, + { + "style": "Text", + "text": "It should look something like this:" + }, + { + "style": "Json", + "text": "{\n \"githubUsername\": \"My Awesome Username\"\n}", + "updated": 1629167126327 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-012-tutorial-step-pump-that-heartbeat.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-012-tutorial-step-pump-that-heartbeat.json new file mode 100644 index 000000000..f5223f6a7 --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-012-tutorial-step-pump-that-heartbeat.json @@ -0,0 +1,33 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 12, + "type": "Tutorial Step - Pump that Heartbeat!", + "definition": { + "text": "Now let’s configure that Profile Constructor!", + "updated": 1629167519082, + "icon": { + "name": "Time/time-machine", + "project": "Foundations" + } + }, + "paragraphs": [ + { + "style": "Callout", + "text": "Click the configuration option and type your GitHub username under the username properly.", + "updated": 1629167062088 + }, + { + "style": "Text", + "text": "It should look something like this:" + }, + { + "style": "Json", + "text": "{\n \"githubUsername\": \"My Awesome Username\"\n}", + "updated": 1629167126327 + }, + { + "style": "Text", + "text": "" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-013-tutorial-step-oh-so-shiny.json b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-013-tutorial-step-oh-so-shiny.json new file mode 100644 index 000000000..f251b50df --- /dev/null +++ b/Projects/Foundations/Schemas/Docs-Tutorials/C/Creating/Creating-Your-User-Profile-Tutorial/creating-your-user-profile-tutorial-013-tutorial-step-oh-so-shiny.json @@ -0,0 +1,23 @@ +{ + "tutorial": "Creating Your User Profile Tutorial", + "pageNumber": 13, + "type": "Tutorial Step - Oh so Shiny", + "definition": { + "text": "Write a summary for this tutorial page." + }, + "paragraphs": [ + { + "style": "Text", + "text": "We are almost there. Now click create user profile and watch the magic happen. That’s right, you just created your profile!", + "updated": 1629167761539 + }, + { + "style": "Text", + "text": "While we didn’t have to break a sweat making your profile, some pretty amazing things happened behind the scenes. The constructor just generated your user profile, and unique SA Token Governance address. A cryptographic message with your GitHub.com username has been signed with the private key corresponding to the address just generated. This message will be stored in your User Profile so that we may authenticate it comes from you once you submit your profile as a plugin in the Governance Project." + }, + { + "style": "Text", + "text": "What this means is that your profile, and its associated token address, can only be accessed and changed by you!" + } + ] +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-002-tutorial-step-welcome.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-002-tutorial-step-welcome.json index c5c0b4cb3..dd2f5f9b1 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-002-tutorial-step-welcome.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-002-tutorial-step-welcome.json @@ -5,30 +5,40 @@ "definition": { "text": "Let’s build the mother of all trading strategies: The Moving Average Cross!", "icon": { - "name": "Tutorial/tutorial", + "name": "Tutorial\\tutorial", "project": "Foundations" }, - "updated": 1614275495850, + "updated": 1629342747241, "translations": [ { "language": "DE", "text": "Lass uns die Mutter aller Handelsstrategien aufbauen: Die Moving Average Überkreuzung!", "updated": 1622970055812, "style": "Definition" + }, + { + "language": "ES", + "text": "Construyamos la madre de todas las estrategias trading: The Moving Average Cross", + "updated": 1629342995750 } ] }, "paragraphs": [ { "style": "Text", - "text": "For this tutorial I assume that", - "updated": 1614240501976, + "text": "For this tutorial I assume that:", + "updated": 1629342738424, "translations": [ { "language": "DE", "text": "Für dieses Lernprogramm gehe ich davon aus, dass", "updated": 1622970071369, "style": "Text" + }, + { + "language": "ES", + "text": "Para este tutorial supongo que:", + "updated": 1629343108610 } ] }, @@ -41,8 +51,14 @@ "text": "du das Willkommens-Tutorial im Workspace \"Erste Schritte\" absolviert haben", "updated": 1622970086389, "style": "List" + }, + { + "language": "ES", + "text": "Has hecho el Welcome Tutorial en el Getting Started Workspace", + "updated": 1629343127301 } - ] + ], + "updated": 1629342770748 }, { "style": "List", @@ -53,32 +69,48 @@ "text": "du dich sicher im Workspace und in den Charts bewegen kannst.", "updated": 1622970109192, "style": "List" + }, + { + "language": "ES", + "text": "Te sientes cómodo moviéndote por el Workspace y los Charts", + "updated": 1629343147093 } - ] + ], + "updated": 1629342792390 }, { "style": "List", "text": "You have a basic understanding about what is a Trading Bot and a strategy", - "updated": 1614275543824, + "updated": 1629342812080, "translations": [ { "language": "DE", "text": "du hast ein grundlegendes Verständnis davon, was ein Trading Bot und eine Trading Strategie ist", "updated": 1622970162593, "style": "List" + }, + { + "language": "ES", + "text": "Tienes un conocimiento básico sobre lo que es un Trading Bot y una estrategia", + "updated": 1629343167648 } ] }, { "style": "Note", "text": "We will build a bot to backtest a strategy based on Simple Moving Average Cross between SMA50 and SMA200 on 4h TF, a classic!", - "updated": 1622980039332, + "updated": 1629342831236, "translations": [ { "language": "DE", "text": "Wir werden einen Bot bauen, der auf eine Simple Moving Average Überkreuzung zwischen SMA50 und SMA200 auf 4h TF(Time Frame) basierende Strategie backtestet, ein Klassiker!", "updated": 1622980080284, "style": "Note" + }, + { + "language": "ES", + "text": "Construiremos un bot para probar una estrategia basada en Simple Moving Average Cross entre SMA50 y SMA200 en 4h TF, ¡un clásico!", + "updated": 1629343206412 } ] }, diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-003-tutorial-step-look-around.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-003-tutorial-step-look-around.json index 9d8dae3c2..48b85d385 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-003-tutorial-step-look-around.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-003-tutorial-step-look-around.json @@ -4,9 +4,9 @@ "type": "Tutorial Step - Look around", "definition": { "text": "Workspaces can be changed!", - "updated": 1614241100778, + "updated": 1629344688461, "icon": { - "name": "Layer/layer", + "name": "Layer\\layer", "project": "Foundations" }, "translations": [ @@ -15,6 +15,11 @@ "text": "Workspaces können angepasst werden!", "updated": 1622977673407, "style": "Definition" + }, + { + "language": "ES", + "text": "Workspaces pueden ser cambiados", + "updated": 1629344801370 } ] }, @@ -22,26 +27,36 @@ { "style": "Text", "text": "I arranged the workspace in a slightly different way compared to Getting Started. It's a good practice to customize the workspace to keep it tidy and clean. Remember that every hierarchy, node or offspring can impact on your machine resources.", - "updated": 1614241304126, + "updated": 1629344708619, "translations": [ { "language": "DE", "text": "Ich habe den Workspace im Vergleich zu Getting Started (\"Erste Schritte\") etwas anders angeordnet. Es ist eine gute Praxis, den Workspace anzupassen, um ihn aufgeräumt und sauber zu halten. Denke daran, dass jede Hierarchie, jeder Knoten und jeder Nachfolgende Auswirkungen auf deine Maschinenressourcen haben kann.", "updated": 1622977620392, "style": "Text" + }, + { + "language": "ES", + "text": "Arreglé el workspace de una manera ligeramente diferente en comparación con Getting Started. Es una buena práctica personalizar el workspace para mantenerlo ordenado y limpio. Recuerda que cada jerarquía, nodo o descendencia puede afectar los recursos de tu máquina.", + "updated": 1629344864911 } ] }, { "style": "Success", "text": "Have a look around, right click on empty space and explore the Workspace I arranged for you!", - "updated": 1614334045360, + "updated": 1629344734628, "translations": [ { "language": "DE", "text": "Schau dich um, klicke mit der rechten Maustaste auf eine leere Fläche und erkunde den Workspace, den ich für dich eingerichtet habe!", "updated": 1622977643971, "style": "Success" + }, + { + "language": "ES", + "text": "Echa un vistazo, haga clic derecho en el espacio vacío y explore el Workspace. ¡Lo arreglé para ti!", + "updated": 1629344896872 } ] }, diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-004-tutorial-step-custom-data-mine.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-004-tutorial-step-custom-data-mine.json index 1c4cfb97d..cd9f517d0 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-004-tutorial-step-custom-data-mine.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-004-tutorial-step-custom-data-mine.json @@ -5,7 +5,7 @@ "definition": { "text": "Not only Workspaces can be modified", "icon": { - "name": "Data/data-mine", + "name": "Data\\data-mine", "project": "Foundations" }, "updated": 1614241455319, @@ -15,6 +15,11 @@ "text": "Nicht nur Workspaces können modifiziert werden.", "updated": 1622977759915, "style": "Definition" + }, + { + "language": "ES", + "text": "No solo Workspaces se pueden modificar", + "updated": 1629346887546 } ] }, @@ -29,6 +34,11 @@ "text": "SA ist sehr modular und kann so angeordnet werden, wie wir es für unsere Bedürfnisse bevorzugen.", "updated": 1622977780236, "style": "Text" + }, + { + "language": "ES", + "text": "SA es muy modular y se puede organizar de la manera que prefiramos para nuestras necesidades.", + "updated": 1629347317411 } ] }, @@ -41,6 +51,11 @@ "text": "Ich habe für dich einen sehr einfachen Workspace mit einer neuen Data Mine vorbereitet und die Knoten angeordnet, wobei ich alles gelöscht habe, was ich für dieses Tutorial nicht benötige.", "updated": 1622977811209, "style": "Text" + }, + { + "language": "ES", + "text": "Te preparé un muy básico Workspace con un nuevo Data Mine y organize los nodos eliminando todo lo que no necesito para este tutorial.", + "updated": 1629347385771 } ] }, @@ -53,6 +68,11 @@ "text": "In SA können Data Mines hinzugefügt und entfernt werden, aber die auf der Festplatte gespeicherten Daten werden nicht gelöscht, wenn du einen Indikator entfernst!", "updated": 1622977843713, "style": "Success" + }, + { + "language": "ES", + "text": "En SA, las minas de datos se pueden agregar y eliminar, pero los datos guardados en su disco duro no se eliminarán si eliminas un indicador.", + "updated": 1629347666344 } ] }, diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-005-tutorial-step-the-strategy.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-005-tutorial-step-the-strategy.json index 2bd028205..a158f1b44 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-005-tutorial-step-the-strategy.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-005-tutorial-step-the-strategy.json @@ -5,7 +5,7 @@ "definition": { "text": "Let's build the mother of all strategies!", "icon": { - "name": "Strategy/strategy", + "name": "Strategy\\strategy", "project": "Foundations" }, "updated": 1614241902261, @@ -15,6 +15,11 @@ "text": "Lass uns die Mutter aller Strategien erstellen!", "updated": 1622977892890, "style": "Definition" + }, + { + "language": "ES", + "text": "¡Construyamos la madre de todas las estrategias!", + "updated": 1629347747877 } ] }, @@ -29,6 +34,11 @@ "text": "Um eine Strategie backtesten zu können, müssen wir sie erst einmal schreiben oder klar im Kopf haben. Auf folgenden Eckpfeilern basiert unser Test:", "updated": 1622979087886, "style": "Text" + }, + { + "language": "ES", + "text": "Para realizar una prueba retrospectiva de una estrategia, primero debemos escribirla o tenerla clara en nuestra mente. Así que estas son las piedras angulares en las que se basa nuestra prueba:", + "updated": 1629347848333 } ] }, @@ -41,6 +51,11 @@ "text": "Strategie verwendet SMA50 und SMA200", "updated": 1622977962657, "style": "List" + }, + { + "language": "ES", + "text": "Strategy usa SMA50 y SMA200", + "updated": 1629347862168 } ] }, @@ -53,6 +68,11 @@ "text": "Die Strategie basiert auf 4h TF (Time Frame)", "updated": 1622979509680, "style": "List" + }, + { + "language": "ES", + "text": "Strategy está basado en 4H TF", + "updated": 1629347891997 } ] }, @@ -65,6 +85,11 @@ "text": "Der Bot wird das Asset kaufen, wenn der SMA50 den SMA200 nach oben kreuzt", "updated": 1622978113525, "style": "List" + }, + { + "language": "ES", + "text": "El bot comprará el asset cuando SMA50 cruzar hasta SMA200", + "updated": 1629347952235 } ] }, @@ -77,6 +102,11 @@ "text": "Stop Loss wird auf 20% vom Einstiegspunkt gesetzt", "updated": 1622978127244, "style": "List" + }, + { + "language": "ES", + "text": "Stop Loss está fijado en 20% desde la entrada", + "updated": 1629348020213 } ] }, @@ -89,6 +119,11 @@ "text": "Take Profit wird auf 100% oder auf SMA50 kreuzt SMA200 nach unten gesetzt", "updated": 1622978244002, "style": "List" + }, + { + "language": "ES", + "text": "Take Profit está fijado en 100% o en SMA50 cruzar abajo SMA200", + "updated": 1629348082752 } ] } diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-006-tutorial-step-trading-system.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-006-tutorial-step-trading-system.json index 0d47b65ce..53221202a 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-006-tutorial-step-trading-system.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-006-tutorial-step-trading-system.json @@ -5,7 +5,7 @@ "definition": { "text": "Trading System is already set up. Let's have a look!", "icon": { - "name": "Trading/trading-system-reference", + "name": "Trading\\trading-system-reference", "project": "Foundations" }, "updated": 1614242955916, @@ -15,6 +15,11 @@ "text": "Das Trading System ist bereits aufgesetzt. Lass es uns anschauen!", "updated": 1622978283268, "style": "Definition" + }, + { + "language": "ES", + "text": "Trading System ya está configurado. ¡Echemos un vistazo!", + "updated": 1629348173186 } ] }, @@ -29,6 +34,11 @@ "text": "ie Strategie ist bereits umgesetzt. Schauen wir sie uns einmal an, um sie zu verstehen!", "updated": 1622978294304, "style": "Text" + }, + { + "language": "ES", + "text": "La estrategia ya está desplegada. ¡Así que echemos un vistazo para entenderlo!", + "updated": 1629348191210 } ] }, @@ -41,6 +51,11 @@ "text": "Wie du sehen kannst, hat ein Tradingsystem zwei Hauptnachfolger:", "updated": 1622978319793, "style": "Text" + }, + { + "language": "ES", + "text": "Como puedes ver, un Trading System tiene 2 descendientes principales:", + "updated": 1629348227357 } ] }, @@ -54,6 +69,11 @@ "text": "Dynamic Indicators (\"Dynamische Indikatoren\"): Damit kannst du On-The-Fly-Indikatoren erstellen", "updated": 1622978351655, "style": "List" + }, + { + "language": "ES", + "text": "Dynamic Indicators: Esto te permite crear indicadores sobre la marcha", + "updated": 1629348275874 } ] }, @@ -67,6 +87,11 @@ "text": "Trading Strategy (\"Handelsstrategie\"): Hier definieren wir Parameter, Bedingungen und Formeln für unsere Strategie", "updated": 1622978372386, "style": "List" + }, + { + "language": "ES", + "text": "Trading Strategy: Es donde definimos parámetros, condiciones y fórmulas para nuestra estrategia.", + "updated": 1629348244296 } ] }, @@ -79,6 +104,11 @@ "text": "Dieses Tutorial behandelt keine Definitionen oder Konzepte, die in SA verwendet werden. In diesem Tutorial geht es nur darum, wie man eine Strategie einsetzt!", "updated": 1622978385419, "style": "Success" + }, + { + "language": "ES", + "text": "Este tutorial no cubre definiciones o conceptos usados ​​en SA. ¡Este tutorial solo trata sobre cómo implementar una estrategia!", + "updated": 1629348296182 } ] } diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-007-tutorial-step-trigger-stage.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-007-tutorial-step-trigger-stage.json index ef08c81c8..9d141338d 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-007-tutorial-step-trigger-stage.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-007-tutorial-step-trigger-stage.json @@ -15,6 +15,11 @@ "text": "Trigger Stage ist unser Talent Scout.", "updated": 1622978455848, "style": "Definition" + }, + { + "language": "ES", + "text": "Trigger Stagees es nuestro talento scout", + "updated": 1629348587860 } ] }, @@ -29,6 +34,11 @@ "text": "Unsere Strategie basiert auf dem SMA-Kreuz und in diesem Knoten können wir den Bot anweisen, nach Bedingungen zu suchen, die erfüllt sein müssen, um einen Handel zu tätigen.", "updated": 1622978530689, "style": "Text" + }, + { + "language": "ES", + "text": "Nuestra estrategia se basa en el cruce de SMA y es en este nodo donde podemos instruir al bot para que busque las condiciones que deben cumplirse para realizar una operación.", + "updated": 1629348884906 } ] }, @@ -41,6 +51,11 @@ "text": "In dieser Phase geht es darum, den Markt zu überprüfen und zu entscheiden, ob die Bedingungen einen Handel wert sind oder nicht!", "updated": 1622978559675, "style": "Important" + }, + { + "language": "ES", + "text": "¡Esta etapa se trata de verificar el mercado y decidir si algunas condiciones valen la pena o no!", + "updated": 1629348903247 } ] }, @@ -54,6 +69,11 @@ "text": "Werfen wir einen Blick auf seine drei Nachfolger und ich zeige dir ein paar kleine Tricks, um die Strategie schnellstmöglich zu implementieren!", "updated": 1622978601078, "style": "Text" + }, + { + "language": "ES", + "text": "¡Echemos un vistazo a sus 3 descendientes y te muestro algunos pequeños trucos para implementar la estrategia de la manera más rápida posible!", + "updated": 1629348921004 } ] } diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-008-tutorial-step-trigger-on.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-008-tutorial-step-trigger-on.json index df11e4b59..27f257428 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-008-tutorial-step-trigger-on.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-008-tutorial-step-trigger-on.json @@ -15,6 +15,11 @@ "text": "Reserviere Geldmittel!", "updated": 1622978638588, "style": "Definition" + }, + { + "language": "ES", + "text": "¡Reserva algunos fondos!", + "updated": 1629349159115 } ] }, @@ -29,6 +34,11 @@ "text": "Beim Ereignis Trigger On geht es darum, deine Mittel zu reservieren (zu sperren) und sie dem Bot zur Verfügung zu stellen.", "updated": 1622981206455, "style": "Text" + }, + { + "language": "ES", + "text": "El evento Trigger On consiste en reservar (bloquear) sus fondos y ponerlos a disposición del bot.", + "updated": 1629349408557 } ] }, @@ -45,6 +55,11 @@ "text": "Was ich tun muss, ist:", "updated": 1622978676342, "style": "Text" + }, + { + "language": "ES", + "text": "Lo que necesito hacer es:", + "updated": 1629349429401 } ] }, @@ -57,6 +72,11 @@ "text": "Definiere den TF (Time Frame)", "updated": 1622978697311, "style": "List" + }, + { + "language": "ES", + "text": "Definir el TF", + "updated": 1629349443558 } ] }, @@ -69,6 +89,11 @@ "text": "Definiere das SMA50/200 Kreuz", "updated": 1622978711889, "style": "List" + }, + { + "language": "ES", + "text": "Definir el SMA50/200 cross", + "updated": 1629349524087 } ] }, @@ -81,6 +106,11 @@ "text": "Zur Definition, verwende ich zwei Bedingungen:", "updated": 1622981248271, "style": "Text" + }, + { + "language": "ES", + "text": "Para definir una cruz utilizo 2 condiciones:", + "updated": 1629351309083 } ] }, diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-009-tutorial-step-trigger-off.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-009-tutorial-step-trigger-off.json index da3afed4e..e4d9058f3 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-009-tutorial-step-trigger-off.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-009-tutorial-step-trigger-off.json @@ -15,6 +15,11 @@ "text": "Wenn du keine Bedingung benötigst setze es einfach auf „False“ oder „True“!", "updated": 1622978946854, "style": "Definition" + }, + { + "language": "ES", + "text": "Si no necesitas una condición, configúrela en False o True!", + "updated": 1629352241171 } ] }, @@ -29,6 +34,11 @@ "text": "Für meinen Backtest benötige ich keine Trigger Off Bedingung, also schreibe ich einfach False in den Javascript-Code", "updated": 1622978973861, "style": "Text" + }, + { + "language": "ES", + "text": "Para mi backtest no necesito un Trigger Off condición, así que solo escribo false en codigo Javascript", + "updated": 1629354481694 } ] }, @@ -42,6 +52,11 @@ "text": "Denke daran, dass Bedingungen nur True oder False sein können. Wenn ich Javascript-Code innerhalb dieser Art von Knoten schreibe, müssen sie True oder False auswerten, weil das, was ich schreibe, im Wesentlichen ein Test ist.", "updated": 1622978923884, "style": "Success" + }, + { + "language": "ES", + "text": "Recuerda que Conditions puede ser solo True o False. Cuando escribo código Javascript dentro de este tipo de nodos, deben evaluar True o False porque esencialmente lo que estoy escribiendo es una prueba.", + "updated": 1629354487276 } ] } diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-010-tutorial-step-take-position.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-010-tutorial-step-take-position.json index d7249f43d..3b728bf67 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-010-tutorial-step-take-position.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-010-tutorial-step-take-position.json @@ -15,6 +15,11 @@ "text": "Zeit, um Position zu beziehen!", "updated": 1622979146522, "style": "Definition" + }, + { + "language": "ES", + "text": "Tiempo para tomar Position!", + "updated": 1629355595189 } ] }, @@ -29,6 +34,11 @@ "text": "In diesem Knoten verwende ich den gleichen Trick wie beim Trigger Off Event (Ereignis), erzwinge aber in diesem Fall den Wert True. Ich habe bereits im Trigger On Event definiert, was meine Bedingungen sind. In diesem Knoten kann ich also einfach die beiden Bedingungen kopieren und auf True setzen.", "updated": 1622981314446, "style": "Text" + }, + { + "language": "ES", + "text": "En este nodo utilizo el mismo truco utilizado para el Trigger Off Event pero en este caso obligándolo a True.Ya lo definí en el Trigger On Event cuales son mis condiciones. Entonces en este nodo puedo simplemente copiar las dos condiciones o configurarlo en True.", + "updated": 1629355939657 } ] }, @@ -41,6 +51,11 @@ "text": "Wenn ich mehr Bedingungen benötige, kann ich sie natürlich nach meinen Bedürfnissen hinzufügen oder ändern!", "updated": 1622979260265, "style": "Success" + }, + { + "language": "ES", + "text": "¡Por supuesto, si necesito más condiciones, puedo agregarlas o modificarlas según mis necesidades!", + "updated": 1629355966149 } ] }, @@ -53,6 +68,11 @@ "text": "Cool. Meine Definitionen sind festgelegt. Es ist an der Zeit, zur Open Stage überzugehen!", "updated": 1622981356171, "style": "Note" + }, + { + "language": "ES", + "text": "Súper. Mis definiciones iniciales están establecidas. ¡Es hora de pasar al Open Stage!", + "updated": 1629356060233 } ] } diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-011-tutorial-step-open-stage.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-011-tutorial-step-open-stage.json index 4b146ffc8..d3ffb5527 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-011-tutorial-step-open-stage.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-011-tutorial-step-open-stage.json @@ -5,7 +5,7 @@ "definition": { "text": "The Open Stage is where bot take position!", "icon": { - "name": "Open/open-stage", + "name": "Open\\open-stage", "project": "Foundations" }, "updated": 1614260398081, @@ -15,6 +15,11 @@ "text": "Die Open Stage ist der Zeitpunkt, an dem der Bot die Position einnimmt!", "updated": 1622979315892, "style": "Definition" + }, + { + "language": "ES", + "text": "El Open Stage es donde el bot toma posición!", + "updated": 1629356240122 } ] }, @@ -29,6 +34,11 @@ "text": "Die Strategie, die ich backtesten möchte, basiert auf 4h TF und die Strategie ist Long (steigende Kurse). Das bedeutet, dass der Bot das Asset kaufen wird, um es später zu verkaufen (zu einem besseren Preis, wie wir hoffen!). Um die Dinge einfach zu halten, muss ich nur den TF im Target Rate-Knoten angeben, indem ich meinen vollen Saldo im Target Size in Quoted Asset verwende.", "updated": 1622979336945, "style": "Text" + }, + { + "language": "ES", + "text": "La estrategia que quiero hacer backtesting se basa en 4h TF y la estrategia es Long. Esto significa que el bot Buy el asset para después Sell (¡a un mejor precio esperamos!). Para simplificar las cosas, todo lo que tengo que hacer es indicar el TF en el nodo Target Rate usando todo mi saldo en el Target Size en Quoted Asset.", + "updated": 1629356415752 } ] }, @@ -42,6 +52,11 @@ "text": "Wenn unser Markt BTC/USDT ist, dann ist das Quoted Asset USDT und Base Asset ist BTC.", "updated": 1622979556680, "style": "Success" + }, + { + "language": "ES", + "text": "Si nuestro mercado es BTC/USDT entonces la Quoted Asset is USDT y Base Asset es BTC", + "updated": 1629356454601 } ] } diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-012-tutorial-step-manage-stage.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-012-tutorial-step-manage-stage.json index ccf539d76..09fa785ff 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-012-tutorial-step-manage-stage.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-012-tutorial-step-manage-stage.json @@ -15,6 +15,12 @@ "text": "Gewinn mitnehmen (Take Profit) oder einen Verlust begrenzen (Stop Loss)?!", "updated": 1622979661677, "style": "Definition" + }, + { + "language": "ES", + "text": "El Manage Stagees donde el bot comprueba si tiene que hacer Take Profit o un Stop Loss", + "updated": 1629356619813, + "style": "Definition" } ] }, @@ -29,6 +35,12 @@ "text": "In dieser Phase prüft der Bot, ob der Preis Take Profit (TP) oder Stop Loss (SL) erreicht hat. Die anfänglichen Bedingungen für meine Strategie waren, einen SL bei 20% vom Einstieg zu setzen und einen TP bei 100% oder wenn MA50 unter MA200 kreuzt.", "updated": 1622979639862, "style": "Text" + }, + { + "language": "ES", + "text": "En esta etapa, el bot comprueba si el precio ha llegado a Take Profit (TP) o Stop Loss (SL). Las condiciones iniciales para mi estrategia fueron establecer un SL al 20% desde la entrada y un TP al 100% o cuando MA50 cruza por debajo de MA200.", + "updated": 1629356685676, + "style": "Text" } ] }, @@ -60,6 +72,11 @@ "text": "Die Take Profit Formel ist ein wenig aufwendiger:", "updated": 1622979702092, "style": "Text" + }, + { + "language": "ES", + "text": "La fórmula Take Profit es un poco más elaborada:", + "updated": 1629423638424 } ] }, diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-013-tutorial-step-close-stage.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-013-tutorial-step-close-stage.json index 18d695097..3d5740bdc 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-013-tutorial-step-close-stage.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-013-tutorial-step-close-stage.json @@ -5,7 +5,7 @@ "definition": { "text": "The Close Stage is in charge of closing the trade", "icon": { - "name": "Close/close-stage", + "name": "Close\\close-stage", "project": "Foundations" }, "updated": 1614261551174, @@ -15,6 +15,11 @@ "text": "Die Close Stage ist für das Schließen des Trades zuständig.", "updated": 1622979775474, "style": "Definition" + }, + { + "language": "ES", + "text": "El Close Stage se encarga de cerrar el trade", + "updated": 1629576232311 } ] }, @@ -29,6 +34,11 @@ "text": "In der vorherigen Phase (der Manage Stage) prüft der Bot, ob der aktuelle Preis den SL oder den TP getroffen hat. Sobald eines dieser beiden Ereignisse eingetreten ist, übernimmt die Close Stage die Aufgabe, die Position zu schließen. Die Funktionsweise ist sehr ähnlich wie bei der Open Stage. Der Bot muss wissen, auf welche Kerze er schauen soll.", "updated": 1622979799896, "style": "Text" + }, + { + "language": "ES", + "text": "En la etapa anterior (el Manage Stage) bot está comprobando si el precio actual ha alcanzado el SL o el TP. Una vez que uno de estos dos eventos ha sido alcanzado, entonces el Close Stage se encarga de cerrar el trade. La forma en que funciona es muy similar al Open Stage. El bot necesita saber qué vela debe verse", + "updated": 1629576335495 } ] }, @@ -45,6 +55,11 @@ "text": "Im Gegensatz zur Open Stage verkaufen wir hier das Asset, daher benötigen wir eine Market Sell Order und der Bot verkauft das quotierte Asset.", "updated": 1622979827422, "style": "Text" + }, + { + "language": "ES", + "text": "Y obviamente a diferencia del Open Stage, aquí nosotros Sell el asset así que necesitamos un Market Sell Order Y lo que vende bot es el Quoted asset", + "updated": 1629576513796 } ] }, diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-014-tutorial-step-thats-it.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-014-tutorial-step-thats-it.json index 3c3f8ff72..cc5942fa9 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-014-tutorial-step-thats-it.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-014-tutorial-step-thats-it.json @@ -5,7 +5,7 @@ "definition": { "text": "Strategy is defined!", "icon": { - "name": "Announcement/announcement", + "name": "Announcement\\announcement", "project": "Foundations" }, "updated": 1614262144926, @@ -15,6 +15,12 @@ "text": "Strategie definiert!", "updated": 1622980119217, "style": "Definition" + }, + { + "language": "ES", + "text": "¡ Strategy está definida!", + "updated": 1629357095005, + "style": "Definition" } ] }, @@ -29,6 +35,12 @@ "text": "Wie du gesehen hast, ist die Implementierung einer einfachen Strategie eine Sache von wenigen Zeilen Code!", "updated": 1622980130290, "style": "Text" + }, + { + "language": "ES", + "text": "Es cuestión de unas pocas líneas de código.", + "updated": 1629576702851, + "style": "Text" } ] }, @@ -42,6 +54,12 @@ "text": "Beachte dies, um korrekt mit Base und Quoted Asset umzugehen. Base ist oben, Quoted ist unten! In unserem Fall BTC/USD ist also BTC das Basis-Asset, während USDT das quotierte Asset ist.", "updated": 1622980143220, "style": "Success" + }, + { + "language": "ES", + "text": "Ten esto en cuenta para tratar correctamente Base and Quoted Asset. Base está en la cima, Quoted está en el fondo! Entonces en nuestro caso BTC / USD tenemos BTC es el Base Asset mientras que USDT es el Quoted Asset", + "updated": 1629357672381, + "style": "Success" } ] }, @@ -55,6 +73,12 @@ "text": "Das ändert sich nicht, wenn du Short gehst. Wenn die Strategie Short ist, wird der Bot in der Eröffnungsphase das Basis-Asset verkaufen und es später mit dem quotierten Asset zurückkaufen!", "updated": 1622980155348, "style": "Warning" + }, + { + "language": "ES", + "text": "No cambia si te vas Short. Si la estrategia es Short luego en el Open Stage Bot venderá el Base Asset y luego volver a comprarlo usando Quoted Asset!", + "updated": 1629357633755, + "style": "Warning" } ] } diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-015-tutorial-step-update-data-mines.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-015-tutorial-step-update-data-mines.json index 20e31e804..ca846718c 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-015-tutorial-step-update-data-mines.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-015-tutorial-step-update-data-mines.json @@ -5,7 +5,7 @@ "definition": { "text": "Chances are you already have some data mined!", "icon": { - "name": "Data/data-tasks", + "name": "Data\\data-tasks", "project": "Foundations" }, "updated": 1614267263084, @@ -15,6 +15,11 @@ "text": "Eventuell hast du bereits ein paar Daten gemined!", "updated": 1622980204621, "style": "Definition" + }, + { + "language": "ES", + "text": "¡Lo más probable es que ya tengas algunos datos extraídos!", + "updated": 1629576816892 } ] }, @@ -29,6 +34,11 @@ "text": "Wenn du das Intro-Tutorial gemacht hast, dann hast du wahrscheinlich schon einige Daten geschürft. Allerdings habe ich einen neuen Indikator hinzugefügt, der in der Anfangskonfiguration nicht vorhanden ist. Führe also bitte die Data Mines aus (\"Run\") und warte, bis sie zu 100% fertig sind.", "updated": 1622980292728, "style": "Text" + }, + { + "language": "ES", + "text": "Si has hecho la intro Tutorial entonces probablemente ya hayas extraído algunos datos. Pero agregué un nuevo indicador que no está presente en la configuración inicial. Así que por favor Run los data Mines Y espera hasta que estén 100% listos.", + "updated": 1629576956473 } ] }, @@ -42,6 +52,11 @@ "text": "Stelle sicher, dass unter Sparta Data Mine Tasks der neu hinzugefügte Indikator Simple Moving Average zu 100% aktualisiert ist.", "updated": 1622980304913, "style": "Important" + }, + { + "language": "ES", + "text": "Asegúrate de que debajo Sparta Data Mine Tasks el indicador recién agregado Simple Moving Average está 100% actualizado.", + "updated": 1629577044677 } ] }, @@ -55,6 +70,11 @@ "text": "Sobald alle Indikatoren 100%ig sind, kannst du die Data Mines stoppen und Ressourcen für den Backtest sparen.", "updated": 1622980322182, "style": "Success" + }, + { + "language": "ES", + "text": "Ya al 100%, puedes detener los Data Mines y ahorrar recursos para el backtest.", + "updated": 1629577393595 } ] } diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-016-tutorial-step-backtest.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-016-tutorial-step-backtest.json index 8e51cdca8..969e29c74 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-016-tutorial-step-backtest.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-016-tutorial-step-backtest.json @@ -15,6 +15,11 @@ "text": "Stelle sicher, dass alle Parameter korrekt sind!", "updated": 1622980368660, "style": "Definition" + }, + { + "language": "ES", + "text": "¡Asegurarte que los Parameters están en su lugar!", + "updated": 1629577782178 } ] }, @@ -29,6 +34,11 @@ "text": "Bevor du den Backtest ausführst, stelle sicher, dass der Knoten Trading Parameters konsistente Daten hat. Ich habe bereits alles für dich vorbereitet, aber nimm dir etwas Zeit und beachte, dass:", "updated": 1622980410674, "style": "Text" + }, + { + "language": "ES", + "text": "Antes de ejecutar el backtest, asegúrese de que el Trading Parameters nodo tiene datos consistentes. Ya preparé todo para ti, pero tómate un tiempo y fíjate que:", + "updated": 1629577823477 } ] }, @@ -41,6 +51,11 @@ "text": "Session Base Asset auf 0 eingestellt ist", "updated": 1622980449763, "style": "List" + }, + { + "language": "ES", + "text": "Session Base Asset está establecido en 0", + "updated": 1629577840744 } ] }, @@ -54,6 +69,11 @@ "text": "Session Quoted Asset auf 1000 eingestellt ist (das sind in diesem Fall 1000$ USDT)", "updated": 1622980491671, "style": "List" + }, + { + "language": "ES", + "text": "Session Quoted Assetestá establecido en 1000 (es decir, 1000 $ USDT en este caso)", + "updated": 1629577866359 } ] }, @@ -67,6 +87,11 @@ "text": "Slippage auf 0 gesetzt ist, da ich kleine Beträge backteste und ich davon ausgehen kann, dass die Aufträge ohne Slippage ausgeführt werden", "updated": 1622980519600, "style": "List" + }, + { + "language": "ES", + "text": "Slippage se establece en 0 porque estoy probando pequeñas cantidades y puedo asumir que los pedidos se llenan sin slippage", + "updated": 1629577911905 } ] }, @@ -80,6 +105,11 @@ "text": "Bist du bereit? Führe (\"Run\") den Backtest aus!", "updated": 1622980556540, "style": "Important" + }, + { + "language": "ES", + "text": "¿Estás listo? ¡Ejecuta el backtest!", + "updated": 1629578196637 } ] } diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-017-tutorial-step-final-step.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-017-tutorial-step-final-step.json index 8bafb0478..b1bc42196 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-017-tutorial-step-final-step.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-017-tutorial-step-final-step.json @@ -15,6 +15,11 @@ "text": "Zeit sich die Charts anzuschauen!", "updated": 1622980596813, "style": "Definition" + }, + { + "language": "ES", + "text": "¡Es hora de mirar el gráfico!", + "updated": 1629578259488 } ] }, @@ -29,6 +34,11 @@ "text": "Wenn der Backtest beendet ist, halte ich die gesamte Hierarchie über den Knoten Testing Trading Tasks an. Erweitere den Knoten und klicke auf Stop All.", "updated": 1622980659088, "style": "Text" + }, + { + "language": "ES", + "text": "Cuando finaliza el backtest, detengo toda la jerarquía del nodo Testing Trading Tasks. Expande el nodo y has clic en Stop All.", + "updated": 1629578317859 } ] }, @@ -41,6 +51,11 @@ "text": "Denk daran, dass es eine gute Praxis ist, Hierarchien zusammengeklappt zu halten und nicht benötigte Aufgaben zu stoppen, um Ressourcen zu sparen!", "updated": 1622980636929, "style": "Success" + }, + { + "language": "ES", + "text": "Recuerda que es una buena práctica mantener las jerarquías colapsadas y detener las tareas inútiles para ahorrar recursos.", + "updated": 1629578351656 } ] }, diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-018-tutorial-step-the-chart.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-018-tutorial-step-the-chart.json index 5c8cb67bf..b19610514 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-018-tutorial-step-the-chart.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-018-tutorial-step-the-chart.json @@ -5,7 +5,7 @@ "definition": { "text": "Enjoy your backtest!", "icon": { - "name": "Charting-space/charting-space", + "name": "Charting-Space\\charting-space", "project": "Foundations" }, "updated": 1614269880685, @@ -15,6 +15,11 @@ "text": "Viel Spaß mit deinem Backtest!", "updated": 1622980702656, "style": "Definition" + }, + { + "language": "ES", + "text": "¡Disfruta tu backtest!", + "updated": 1629578516025 } ] }, @@ -29,6 +34,11 @@ "text": "Jetzt ist es an der Zeit, in den Charting Space zu wechseln und (falls noch nicht geschehen) starte:", "updated": 1622980744641, "style": "Text" + }, + { + "language": "ES", + "text": "Ahora es el momento de pasar al Charting Spacey (si aún no se está ejecutando) enciende:", + "updated": 1629578564301 } ] }, @@ -66,8 +76,13 @@ "text": "Nimm dir Zeit und erkunde die visuellen Ergebnisse. Wende den SMA-Indikator auf den Chart an und vergewissere dich, dass der Bot die Position zum erwarteten Zeitpunkt eingenommen hat.", "updated": 1622980791002, "style": "Success" + }, + { + "language": "ES", + "text": "Tómese su tiempo y explore los resultados visuales. Aplique el indicador SMA al gráfico y asegúrese de que el bot haya tomado posición cuando se esperaba", + "updated": 1629578671372 } ] } ] -} +} \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-019-tutorial-step-the-end.json b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-019-tutorial-step-the-end.json index 90f112afe..fa3495e94 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-019-tutorial-step-the-end.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/H/Hello/Hello-World-Tutorial/hello-world-tutorial-019-tutorial-step-the-end.json @@ -15,6 +15,11 @@ "text": "Dies ist der letzte Schritt in diesem Tutorial, aber ein erster großer Schritt für dich!", "updated": 1622980855701, "style": "Definition" + }, + { + "language": "ES", + "text": "Este es el paso final de este tutorial, ¡pero un primer gran paso para ti!", + "updated": 1629578693755 } ] }, @@ -29,6 +34,11 @@ "text": "Nachdem du nun gesehen hast, wie schnell und einfach es ist, einfache Strategien in SA einzusetzen, lasse ich dich mit einigen Tipps zurück, die du erforschen kannst.", "updated": 1622980866244, "style": "Text" + }, + { + "language": "ES", + "text": "Ahora que ha visto lo rápido y fácil que es implementar estrategias simples en SA, le dejo algunos consejos que puede explorar.", + "updated": 1629578879458 } ] }, @@ -41,6 +51,11 @@ "text": "Vielleicht kannst du einen neuen Indikator hinzufügen und seine Eigenschaften wie einen zusätzlichen Filter für die Trigger Stage verwenden", "updated": 1622981671905, "style": "Text" + }, + { + "language": "ES", + "text": "Tal vez puedas agregar un nuevo indicador y usar sus propiedades como un filtro adicional para el Trigger Stage.", + "updated": 1629578981875 } ], "updated": 1622980962381 @@ -54,6 +69,11 @@ "text": "Oder du kannst den SL so modifizieren, dass er einen Trailing hat, anstatt fest zu sein.", "updated": 1622980929319, "style": "Text" + }, + { + "language": "ES", + "text": "O puedes modificar el SL para tener uno final en lugar de ser fijo.", + "updated": 1629579019376 } ] }, @@ -67,6 +87,11 @@ "text": "Vielen Dank für deine Zeit. Hier findest du einen ausführlicheren Artikel: http://bit.ly/9808usHelloWorld", "updated": 1622980916321, "style": "Note" + }, + { + "language": "ES", + "text": "Gracias por tu tiempo. Puede leer un artículo más detallado aquí: http://bit.ly/9808usHelloWorld", + "updated": 1629579335349 } ] } diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-002-tutorial-install-a-new-market.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-002-tutorial-install-a-new-market.json index d173edf89..eb532a0f8 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-002-tutorial-install-a-new-market.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-002-tutorial-install-a-new-market.json @@ -7,29 +7,71 @@ "project": "Foundations", "name": "Market/market" }, - "text": "This tutorial walks you through the process of setting up a new Market on which to run data mining and trading operations." + "text": "This tutorial walks you through the process of setting up a new Market on which to run data mining and trading operations.", + "translations": [ + { + "language": "ES", + "text": "Este tutorial te guía a través del proceso de configuración de un nuevo mercado en el que ejecutar operaciones de minería de datos y comercio.", + "updated": 1628985038532 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Setting up a new Market involves:" + "text": "Setting up a new Market involves:", + "translations": [ + { + "language": "ES", + "text": "Configurar un nuevo Market implica:", + "updated": 1628985109327 + } + ] }, { "style": "List", - "text": "1. Adding the assets for the exchange of choice." + "text": "1. Adding the assets for the exchange of choice.", + "translations": [ + { + "language": "ES", + "text": "1. Añadiendo los assets para el exchange de elección.", + "updated": 1628985249427 + } + ] }, { "style": "List", - "text": "2. Setting up a market with the said assets." + "text": "2. Setting up a market with the said assets.", + "translations": [ + { + "language": "ES", + "text": "2. Creación de un mercado con dichos assets.", + "updated": 1628990068651 + } + ] }, { "style": "List", - "text": "3. Installing the market " + "text": "3. Installing the market ", + "translations": [ + { + "language": "ES", + "text": "3. Instalando el mercado", + "updated": 1628990055678 + } + ] }, { "style": "Callout", "text": "When you click the Next button below, you will go to the Exchange Assets node under Binance, in the Crypto Ecosystem hierarchy. You may learn how to install a market in this exchange so that you may do the same in your exchange of choice later on.", - "updated": 1615202737286 + "updated": 1615202737286, + "translations": [ + { + "language": "ES", + "text": "Cuando hagas clic en el botón Next a continuación, irás al nodo Exchange Assets bajo Binance, en la jerarquía Crypto Ecosystem. Puedes aprender a instalar un mercado en este exchange para que puedas hacer lo mismo en tu exchange de elección más adelante.", + "updated": 1628991773444 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-003-tutorial-topic-add-the-assets.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-003-tutorial-topic-add-the-assets.json index 0d2c70f08..9b9268aaf 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-003-tutorial-topic-add-the-assets.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-003-tutorial-topic-add-the-assets.json @@ -4,20 +4,41 @@ "type": "Tutorial Topic - Add the Assets", "definition": { "icon": { - "project": "Foundations", - "name": "asset" + "name": "Market/asset", + "project": "Foundations" }, - "text": "If the assets you wish to work with are not listed under Exchange Assets, you must add and configure them first." + "text": "If the assets you wish to work with are not listed under Exchange Assets, you must add and configure them first.", + "translations": [ + { + "language": "ES", + "text": "Si los activos con los que desea trabajar no se enumeran en Activos de Exchange, primero debe agregarlos y configurarlos.", + "updated": 1629162948016 + } + ] }, "paragraphs": [ { "style": "Callout", "text": "In this section of the tutorial, you will learn to define which assets you wish to work with.", - "updated": 1617210801606 + "updated": 1617210801606, + "translations": [ + { + "language": "ES", + "text": "En esta sección del tutorial, aprenderás a definir con qué assets deseas trabajar.", + "updated": 1629162994984 + } + ] }, { "style": "Success", - "text": "Each exchange may list hundreds of assets, however, you will likely be interested in just a few. Some automated operations may feed on your definitions, so keeping them free of junk is always a good idea." + "text": "Each exchange may list hundreds of assets, however, you will likely be interested in just a few. Some automated operations may feed on your definitions, so keeping them free of junk is always a good idea.", + "translations": [ + { + "language": "ES", + "text": "Cada exchange puede enumerar cientos de assets, sin embargo, es probable que solo te interesen unos pocos. Algunas operaciones automatizadas pueden alimentarse de tus definiciones, por lo que mantenerlas libres de basura es siempre una buena idea.", + "updated": 1629163406741 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-004-tutorial-step-add-the-assets-1.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-004-tutorial-step-add-the-assets-1.json index dc2b6310f..9cd7d740a 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-004-tutorial-step-add-the-assets-1.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-004-tutorial-step-add-the-assets-1.json @@ -4,15 +4,29 @@ "type": "Tutorial Step - Add the Assets 1", "definition": { "icon": { - "project": "Foundations", - "name": "exchange-assets" + "name": "Exchange/exchange-assets", + "project": "Foundations" }, - "text": "Open the Exchange Assets node menu and use the Add Asset button to add the required assets." + "text": "Open the Exchange Assets node menu and use the Add Asset button to add the required assets.", + "translations": [ + { + "language": "ES", + "text": "Abre el menú del nodo Exchange Assets y usa el botón Add Asset para agregar los requeridos assets.", + "updated": 1628992100719 + } + ] }, "paragraphs": [ { "style": "Important", - "text": "Assets under Exchange Assets may not be duplicated. If the definitions for the assets you are interested in already exist, you may reuse them instead of creating new ones. If such is the case, simply skip the next few steps until you need to set up the Market." + "text": "Assets under Exchange Assets may not be duplicated. If the definitions for the assets you are interested in already exist, you may reuse them instead of creating new ones. If such is the case, simply skip the next few steps until you need to set up the Market.", + "translations": [ + { + "language": "ES", + "text": "Assets bajo Exchange Assets no se puede duplicar. Si las definiciones de la assets si te interesa que ya existan, puedes reutilizarlos en lugar de crear otros nuevos. Si ese es el caso, simplemente omite los siguientes pasos hasta que necesites configurar el Market.", + "updated": 1628992173230 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-005-tutorial-step-add-the-assets-2.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-005-tutorial-step-add-the-assets-2.json index bb1213348..5602dbb43 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-005-tutorial-step-add-the-assets-2.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-005-tutorial-step-add-the-assets-2.json @@ -4,11 +4,18 @@ "type": "Tutorial Step - Add the Assets 2", "definition": { "icon": { - "project": "Foundations", - "name": "asset" + "name": "Market/asset", + "project": "Foundations" }, "text": "Edit the configuration of each of the new assets entering the ticker (as listed by the exchange) in the codeName property. ", - "updated": 1617210890633 + "updated": 1617210890633, + "translations": [ + { + "language": "ES", + "text": "Edita la configuración de cada uno de los nuevos activos que ingresan al ticker (según lo enumerado por el exchange) en la propiedad codeName.", + "updated": 1629163635069 + } + ] }, "paragraphs": [ { @@ -22,7 +29,14 @@ }, { "style": "Note", - "text": "If the icon for the configured assets exist in the image library, the default icon is replaced automatically." + "text": "If the icon for the configured assets exist in the image library, the default icon is replaced automatically.", + "translations": [ + { + "language": "ES", + "text": "Si el icono de los assets configurados existe en la biblioteca de imágenes, el icono predeterminado se reemplaza automáticamente.", + "updated": 1629163669241 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-006-tutorial-step-add-the-assets-3.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-006-tutorial-step-add-the-assets-3.json index d61d7ec41..b64cecc7a 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-006-tutorial-step-add-the-assets-3.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-006-tutorial-step-add-the-assets-3.json @@ -4,19 +4,40 @@ "type": "Tutorial Step - Add the Assets 3", "definition": { "icon": { - "project": "Foundations", - "name": "asset" + "name": "Market/asset", + "project": "Foundations" }, - "text": "Label the assets with the descriptive name of the coin or token, for ease of use. For example: Ether." + "text": "Label the assets with the descriptive name of the coin or token, for ease of use. For example: Ether.", + "translations": [ + { + "language": "ES", + "text": "Etiqueta los assets con el nombre descriptivo de la moneda o ficha, para facilitar su uso. Por ejemplo: Ether.", + "updated": 1629163866099 + } + ] }, "paragraphs": [ { "style": "List", - "text": "Step 3: Label Nodes" + "text": "Step 3: Label Nodes", + "translations": [ + { + "language": "ES", + "text": "Step 3: Etiqueta lols nodos", + "updated": 1629163910016 + } + ] }, { "style": "Success", - "text": "Keeping a tidy Workspace with proper labels for significant nodes helps in managing large operations and administering complexity." + "text": "Keeping a tidy Workspace with proper labels for significant nodes helps in managing large operations and administering complexity.", + "translations": [ + { + "language": "ES", + "text": "Mantener un espacio de trabajo ordenado con etiquetas adecuadas para nodos importantes ayuda a gestionar grandes operaciones y a administrar la complejidad.", + "updated": 1629163971957 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-007-tutorial-topic-set-up-the-market.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-007-tutorial-topic-set-up-the-market.json index 5075524a0..bdad3b88d 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-007-tutorial-topic-set-up-the-market.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-007-tutorial-topic-set-up-the-market.json @@ -4,20 +4,41 @@ "type": "Tutorial Topic - Set Up the Market", "definition": { "icon": { - "project": "Foundations", - "name": "market" + "name": "Market/market", + "project": "Foundations" }, - "text": "If there is no Market set up with the pair you wish to work with under Exchange Markets, you must set up the market definition before installing it." + "text": "If there is no Market set up with the pair you wish to work with under Exchange Markets, you must set up the market definition before installing it.", + "translations": [ + { + "language": "ES", + "text": "Si no hay un Market configurado con el par con el que deseas trabajar en Exchange Markets, debes configurar la definición de mercado antes de instalarlo.", + "updated": 1629164083032 + } + ] }, "paragraphs": [ { "style": "Callout", - "text": "The next few steps teach you how to set up the market so that you may later install it." + "text": "The next few steps teach you how to set up the market so that you may later install it.", + "translations": [ + { + "language": "ES", + "text": "Los siguientes pasos te enseñarán cómo configurar el mercado para que puedas instalarlo más tarde.", + "updated": 1629164109911 + } + ] }, { "style": "Important", "text": "Make sure that the combination of Market Base Asset and Market Quoted Asset that you wish to define as a Market in Superalgos exists as a market listed at the exchange.", - "updated": 1617211041220 + "updated": 1617211041220, + "translations": [ + { + "language": "ES", + "text": "Asegúrese de que la combinación de Market Base Asset y Market Quoted Asset que desea definir como Market en Superalgos existe como un mercado que cotiza en el exchange.", + "updated": 1629164457557 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-008-tutorial-step-set-up-the-market-1.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-008-tutorial-step-set-up-the-market-1.json index 3b2aa24d9..f5f88d3a1 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-008-tutorial-step-set-up-the-market-1.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-008-tutorial-step-set-up-the-market-1.json @@ -4,20 +4,41 @@ "type": "Tutorial Step - Set Up the Market 1", "definition": { "icon": { - "project": "Foundations", - "name": "market" + "name": "Market/market", + "project": "Foundations" }, - "text": "Add a new Market node using the Add Market option on the menu." + "text": "Add a new Market node using the Add Market option on the menu.", + "translations": [ + { + "language": "ES", + "text": "Añade un nuevo nodo Market usando el Add Market opción en el menú.", + "updated": 1629164947647 + } + ] }, "paragraphs": [ { "style": "Success", "text": "A Market node should be added featuring two offspring: a Market Base Asset and a Market Quoted Asset.", - "updated": 1617211390857 + "updated": 1617211390857, + "translations": [ + { + "language": "ES", + "text": "Se debe agregar un nodo de Market con dos descendientes: a Market Base Asset y a Market Quoted Asset.", + "updated": 1629165004233 + } + ] }, { "style": "Important", - "text": "Before continuing, make sure which is the base and which the quoted asset in the exchange's listing. Usually, the base asset is the first in the name of the pair, but this is not enforced on every exchange, so be vigilant." + "text": "Before continuing, make sure which is the base and which the quoted asset in the exchange's listing. Usually, the base asset is the first in the name of the pair, but this is not enforced on every exchange, so be vigilant.", + "translations": [ + { + "language": "ES", + "text": "Antes de continuar, asegúrate de cuál es la base y cuál es el asset cotizado en la cotización de el exchange. Por lo general, el asset base es el primero en el nombre del par, pero esto no se aplica en todos los exchanges, así que esté atento.", + "updated": 1629165598676 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-009-tutorial-step-set-up-the-market-2.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-009-tutorial-step-set-up-the-market-2.json index faf7a9b54..b1af9bfbf 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-009-tutorial-step-set-up-the-market-2.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-009-tutorial-step-set-up-the-market-2.json @@ -4,15 +4,29 @@ "type": "Tutorial Step - Set Up the Market 2", "definition": { "icon": { - "project": "Foundations", - "name": "asset" + "name": "Market/asset", + "project": "Foundations" }, - "text": "Establish a reference from the Market Base Asset node in the Market you just defined to the corresponding Asset node defined under Exchange Assets." + "text": "Establish a reference from the Market Base Asset node in the Market you just defined to the corresponding Asset node defined under Exchange Assets.", + "translations": [ + { + "language": "ES", + "text": "Establecer una referencia de el nodo Market Base Asset en el Market que acabas de definir a el correspondiente nodo Asset definido bajo Exchange Assets.", + "updated": 1629165785229 + } + ] }, "paragraphs": [ { "style": "Note", - "text": "If you are not familiar with establishing references, please read about the topic in the documentation." + "text": "If you are not familiar with establishing references, please read about the topic in the documentation.", + "translations": [ + { + "language": "ES", + "text": "Si no estás familiarizado con el establecimiento de referencias, lee sobre el tema en la documentación.", + "updated": 1629165919563 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-010-tutorial-step-set-up-the-market-3.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-010-tutorial-step-set-up-the-market-3.json index 77894a97d..d1d9a759b 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-010-tutorial-step-set-up-the-market-3.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-010-tutorial-step-set-up-the-market-3.json @@ -4,16 +4,30 @@ "type": "Tutorial Step - Set Up the Market 3", "definition": { "icon": { - "project": "Foundations", - "name": "asset" + "name": "Market/asset", + "project": "Foundations" }, - "text": "Now establish a reference from the Market Quoted Asset node in the Market you just defined to the corresponding Asset node defined under Exchange Assets." + "text": "Now establish a reference from the Market Quoted Asset node in the Market you just defined to the corresponding Asset node defined under Exchange Assets.", + "translations": [ + { + "language": "ES", + "text": "Ahora establece una referencia del nodo Market Quoted Asset en el Market que acaba de definir a la correspondiente nodo Asset definido bajo Exchange Assets.", + "updated": 1629166070472 + } + ] }, "paragraphs": [ { "style": "Success", "text": "You are almost done with this references!", - "updated": 1617212021559 + "updated": 1617212021559, + "translations": [ + { + "language": "ES", + "text": "¡Ya casi has terminado con estas referencias!", + "updated": 1629166084110 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-011-tutorial-step-set-up-the-market-4.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-011-tutorial-step-set-up-the-market-4.json index a397eb7ce..aaa5b3787 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-011-tutorial-step-set-up-the-market-4.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-011-tutorial-step-set-up-the-market-4.json @@ -4,21 +4,42 @@ "type": "Tutorial Step - Set Up the Market 4", "definition": { "icon": { - "project": "Foundations", - "name": "market" + "name": "Market/market", + "project": "Foundations" }, "text": "Label the Market with the ticker names corresponding to the Market Base Asset and the Market Quoted Asset, just like the exchange listing. ", - "updated": 1617212204904 + "updated": 1617212204904, + "translations": [ + { + "language": "ES", + "text": "Etiqueta el Market con los nombres de ticker correspondientes a el Market Base Asset ay el Market Quoted Asset, al igual que la lista de exchange.", + "updated": 1629247010585 + } + ] }, "paragraphs": [ { "style": "Note", "text": "For example: ETH/USDT.", - "updated": 1617212210997 + "updated": 1617212210997, + "translations": [ + { + "language": "ES", + "text": "Por ejemplo: ETH/USDT.", + "updated": 1629247028876 + } + ] }, { "style": "Success", - "text": "Keeping a tidy Workspace with proper labels for significant nodes helps in managing large operations and administering complexity. These labels may be used by other nodes!" + "text": "Keeping a tidy Workspace with proper labels for significant nodes helps in managing large operations and administering complexity. These labels may be used by other nodes!", + "translations": [ + { + "language": "ES", + "text": "Manteniendo un ordenado Workspace con etiquetas adecuadas para nodos importantes, ayuda a gestionar grandes operaciones y a administrar la complejidad. ¡Estas etiquetas pueden ser utilizadas por otros nodos!", + "updated": 1629247073143 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-012-tutorial-topic-install-the-market.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-012-tutorial-topic-install-the-market.json index ecd1d0f1f..700573dfe 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-012-tutorial-topic-install-the-market.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-012-tutorial-topic-install-the-market.json @@ -4,21 +4,42 @@ "type": "Tutorial Topic - Install the Market", "definition": { "icon": { - "project": "Foundations", - "name": "market" + "name": "Market/market", + "project": "Foundations" }, "text": "You finished the setup required to install the market! The rest is fully automated!", - "updated": 1617212322242 + "updated": 1617212322242, + "translations": [ + { + "language": "ES", + "text": "¡Terminaste la configuración requerida para instalar el mercado! ¡El resto está completamente automatizado!", + "updated": 1629247436746 + } + ] }, "paragraphs": [ { "style": "Callout", "text": "Click the Install Market button on the Market node you just finished setting up. Now that the Market is set up, installing it is just a click away.", - "updated": 1617212281868 + "updated": 1617212281868, + "translations": [ + { + "language": "ES", + "text": "Haz clic en el botón Install Market en el nodo Market que acabas de terminar de configurar. Ahora que el Market está configurado, instalarlo está a solo un clic de distancia.", + "updated": 1629247557848 + } + ] }, { "style": "Note", - "text": "The Install Market function sets up many data structures in the local Network Node and in the Charting Space. The next few steps in the tutorial will help you get familiar with the installation." + "text": "The Install Market function sets up many data structures in the local Network Node and in the Charting Space. The next few steps in the tutorial will help you get familiar with the installation.", + "translations": [ + { + "language": "ES", + "text": "La Install Market La función configura muchas estructuras de datos en el local Network Node y en el Charting Space. Los siguientes pasos del tutorial te ayudarán a familiarizarse con la instalación.", + "updated": 1629247622619 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-013-tutorial-topic-network-verification.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-013-tutorial-topic-network-verification.json index cd8072513..7aaa110ea 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-013-tutorial-topic-network-verification.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-013-tutorial-topic-network-verification.json @@ -7,16 +7,37 @@ "project": "Foundations", "name": "network-node" }, - "text": "The Install Market function sets up many data structures in the local Network Node." + "text": "The Install Market function sets up many data structures in the local Network Node.", + "translations": [ + { + "language": "ES", + "text": "La instalación de la función Market configura muchas estructuras de datos en el local Network Node.", + "updated": 1629247715120 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "In the next few steps, you will verify that each of the expected data structures was created successfully. The expected structures are:" + "text": "In the next few steps, you will verify that each of the expected data structures was created successfully. The expected structures are:", + "translations": [ + { + "language": "ES", + "text": "En los siguientes pasos, verificarás que cada una de las estructuras de datos esperadas se haya creado correctamente. Las estructuras esperadas son:", + "updated": 1629247883351 + } + ] }, { "style": "Callout", - "text": "1. Data Tasks tasks for all data mines included in your workspace.

2. Backtesting and live trading tasks for all included trading systems.

3. The corresponding Data Storage definitions." + "text": "1. Data Tasks tasks for all data mines included in your workspace.

2. Backtesting and live trading tasks for all included trading systems.

3. The corresponding Data Storage definitions.", + "translations": [ + { + "language": "ES", + "text": "1. Data Tasks tareas para todas las minas de datos incluidas en tu espacio de trabajo.2. Backtesting and live trading tasks for all included trading systems.3. The corresponding Data Storage definitions.", + "updated": 1629247909377 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-014-tutorial-step-network-verification-1.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-014-tutorial-step-network-verification-1.json index a4862e4fb..c128d36f4 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-014-tutorial-step-network-verification-1.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-014-tutorial-step-network-verification-1.json @@ -4,27 +4,62 @@ "type": "Tutorial Step - Network Verification 1", "definition": { "icon": { - "project": "Foundations", - "name": "data-tasks" + "name": "Data/data-tasks", + "project": "Foundations" }, - "text": "Verify that the Data Tasks tasks for the corresponding Market were created successfully." + "text": "Verify that the Data Tasks tasks for the corresponding Market were created successfully.", + "translations": [ + { + "language": "ES", + "text": "Verifica que las tareas del Data Tasks para el correspondiente Market fueron creadas con éxito.", + "updated": 1629248555223 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Look for the following data structures:" + "text": "Look for the following data structures:", + "translations": [ + { + "language": "ES", + "text": "Busca las siguientes estructuras de datos:", + "updated": 1629248659569 + } + ] }, { "style": "List", - "text": "A Market Data Tasks node for the new market." + "text": "A Market Data Tasks node for the new market.", + "translations": [ + { + "language": "ES", + "text": "Un nodo Market Data Tasks para el nuevo mercado.", + "updated": 1629248644175 + } + ] }, { "style": "List", - "text": "One Data Mine Tasks node for each Data Mine included in the Workspace." + "text": "One Data Mine Tasks node for each Data Mine included in the Workspace.", + "translations": [ + { + "language": "ES", + "text": "Un nodo Data Mine Taskspor cada Data Mine incluido en el Workspace.", + "updated": 1629248688491 + } + ] }, { "style": "List", - "text": "One Task Manager per Data Mine and one Task for each bot defined in each data mine." + "text": "One Task Manager per Data Mine and one Task for each bot defined in each data mine.", + "translations": [ + { + "language": "ES", + "text": "Un Task Manager por Data Mine y un Task para cada bot definido en cada mina de datos.", + "updated": 1629248744863 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-015-tutorial-step-network-verification-2.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-015-tutorial-step-network-verification-2.json index e19cb07b8..0dd55d075 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-015-tutorial-step-network-verification-2.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-015-tutorial-step-network-verification-2.json @@ -7,24 +7,59 @@ "project": "Foundations", "name": "testing-trading-tasks" }, - "text": "Verify that the Testing Trading Tasks tasks for the corresponding Market were created successfully." + "text": "Verify that the Testing Trading Tasks tasks for the corresponding Market were created successfully.", + "translations": [ + { + "language": "ES", + "text": "Verifica que las tareas del Testing Trading Tasks del correspondiente Market fueron creados con éxito.", + "updated": 1629248966784 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Look for the following data structures:" + "text": "Look for the following data structures:", + "translations": [ + { + "language": "ES", + "text": "Busca las siguientes estructuras de datos:", + "updated": 1629249005363 + } + ] }, { "style": "List", - "text": "A Market Trading Tasks node for the new market." + "text": "A Market Trading Tasks node for the new market.", + "translations": [ + { + "language": "ES", + "text": "Un nodo Market Trading Tasks para el nuevo mercado.", + "updated": 1629249052629 + } + ] }, { "style": "List", - "text": "One Trading Mine Tasks node for each trading mine included in the Workspace." + "text": "One Trading Mine Tasks node for each trading mine included in the Workspace.", + "translations": [ + { + "language": "ES", + "text": "Un Trading Mine Tasks nodo para cada mina comercial incluida en el Workspace.", + "updated": 1629249077978 + } + ] }, { "style": "List", - "text": "One Task Manager per trading mine and one Task with a Backtesting Session for each Trading System in the workspace." + "text": "One Task Manager per trading mine and one Task with a Backtesting Session for each Trading System in the workspace.", + "translations": [ + { + "language": "ES", + "text": "Un Task Manager por mina comercial y un Task con un Backtesting Session para cada Trading System en el espacio de trabajo.", + "updated": 1629249127594 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-016-tutorial-step-network-verification-3.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-016-tutorial-step-network-verification-3.json index 72dfcd377..65c9a71a9 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-016-tutorial-step-network-verification-3.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-016-tutorial-step-network-verification-3.json @@ -7,16 +7,37 @@ "project": "Foundations", "name": "production-trading-tasks" }, - "text": "Verify that the Production Trading Tasks tasks for the corresponding Market were created successfully." + "text": "Verify that the Production Trading Tasks tasks for the corresponding Market were created successfully.", + "translations": [ + { + "language": "ES", + "text": "Verifica que las tareas Production Trading Tasks se crearon con éxito para el Market correspondiente.", + "updated": 1629249520590 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Look for the following data structures:" + "text": "Look for the following data structures:", + "translations": [ + { + "language": "ES", + "text": "Busca las siguientes estructuras de datos:", + "updated": 1629249556254 + } + ] }, { "style": "List", - "text": "A Market Trading Tasks node for the new market." + "text": "A Market Trading Tasks node for the new market.", + "translations": [ + { + "language": "ES", + "text": "Un Market Trading Tasks nodo para el nuevo mercado.", + "updated": 1629249638874 + } + ] }, { "style": "List", @@ -24,7 +45,14 @@ }, { "style": "List", - "text": "One Task Manager per Trading Mine and one Task with a Backtesting Session for each Trading System in the workspace." + "text": "One Task Manager per Trading Mine and one Task with a Backtesting Session for each Trading System in the workspace.", + "translations": [ + { + "language": "ES", + "text": "Un Task Manager por Trading Mine y un Task con una Backtesting Session para cada Trading System en el espacio de trabajo.", + "updated": 1629249792961 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-017-tutorial-step-network-verification-4.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-017-tutorial-step-network-verification-4.json index eecc41ac9..65cfb2e84 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-017-tutorial-step-network-verification-4.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-017-tutorial-step-network-verification-4.json @@ -4,23 +4,51 @@ "type": "Tutorial Step - Network Verification 4", "definition": { "icon": { - "project": "Foundations", - "name": "data-storage" + "name": "Data/data-storage", + "project": "Foundations" }, - "text": "Verify that the Data Storage nodes for the corresponding Market were created successfully." + "text": "Verify that the Data Storage nodes for the corresponding Market were created successfully.", + "translations": [ + { + "language": "ES", + "text": "Verifica que los nodo Data Storage para el Market correspondiente se crearon con éxito.", + "updated": 1629249917009 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Look for the following data structures:" + "text": "Look for the following data structures:", + "translations": [ + { + "language": "ES", + "text": "Busque las siguientes estructuras de datos:", + "updated": 1629249952621 + } + ] }, { "style": "List", - "text": "A Market Data Products node under Data Mines Data, with a Data Mine Products node for each Data Mine in the workspace." + "text": "A Market Data Products node under Data Mines Data, with a Data Mine Products node for each Data Mine in the workspace.", + "translations": [ + { + "language": "ES", + "text": "Un nodo Market Data Products bajo Data Mines Data, con un nodo Data Mine Products para cada Data Mine en el espacio de trabajo.", + "updated": 1629250030704 + } + ] }, { "style": "List", - "text": "A Market Trading Products node under Trading Mines Data, with a Trading Session Reference for each trading session in the testing and production environments." + "text": "A Market Trading Products node under Trading Mines Data, with a Trading Session Reference for each trading session in the testing and production environments.", + "translations": [ + { + "language": "ES", + "text": "Un nodo Market Trading Products bajo Trading Mines Data, con un Trading Session Reference para cada sesión de trading en los entornos de prueba y producción.", + "updated": 1629250105046 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-018-tutorial-topic-charts-verification.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-018-tutorial-topic-charts-verification.json index b88d87f98..7b317adbe 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-018-tutorial-topic-charts-verification.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-018-tutorial-topic-charts-verification.json @@ -4,23 +4,51 @@ "type": "Tutorial Topic - Charts Verification", "definition": { "icon": { - "project": "Foundations", - "name": "charting-space" + "name": "Charting-Space/charting-space", + "project": "Foundations" }, - "text": "Beyond the data structures set up in the Network hierarchy, the Install Market function also sets up charts matching the trading sessions created." + "text": "Beyond the data structures set up in the Network hierarchy, the Install Market function also sets up charts matching the trading sessions created.", + "translations": [ + { + "language": "ES", + "text": "Más allá de las estructuras de datos configuradas en la jerarquía de la Network, la función Install Market también configura gráficos que coinciden las sesiones de trading creadas.", + "updated": 1629250291168 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "In the next few steps you will verify that the expected data structures were created successfully." + "text": "In the next few steps you will verify that the expected data structures were created successfully.", + "translations": [ + { + "language": "ES", + "text": "En los siguientes pasos, verificará que las estructuras de datos esperadas se hayan creado correctamente.", + "updated": 1629250307906 + } + ] }, { "style": "Callout", - "text": "The charts created allow working with each of the trading sessions independently." + "text": "The charts created allow working with each of the trading sessions independently.", + "translations": [ + { + "language": "ES", + "text": "Los gráficos creados permiten trabajar con las Trading Session de forma independiente.", + "updated": 1629250720714 + } + ] }, { "style": "Success", - "text": "Notice from the organization of the charts that Superalgos allows scaling up your operation to unlimited trading systems and charts." + "text": "Notice from the organization of the charts that Superalgos allows scaling up your operation to unlimited trading systems and charts.", + "translations": [ + { + "language": "ES", + "text": "Observa desde la organización de los gráficos que Superalgos permite escalar tu operación a gráficos y sistemas comerciales ilimitados.", + "updated": 1629250466323 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-019-tutorial-step-charts-verification-1.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-019-tutorial-step-charts-verification-1.json index fb0187dc8..74651efad 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-019-tutorial-step-charts-verification-1.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-019-tutorial-step-charts-verification-1.json @@ -4,23 +4,51 @@ "type": "Tutorial Step - Charts Verification 1", "definition": { "icon": { - "project": "Foundations", - "name": "charting-space" + "name": "Charting-Space/charting-space", + "project": "Foundations" }, - "text": "Verify that the Charting Space data structures for the corresponding Market were created successfully." + "text": "Verify that the Charting Space data structures for the corresponding Market were created successfully.", + "translations": [ + { + "language": "ES", + "text": "Verifica que las estructuras de datos del Charting Space para el mercado correspondiente se crearon con éxito.", + "updated": 1629251098125 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Look for the following data structures:" + "text": "Look for the following data structures:", + "translations": [ + { + "language": "ES", + "text": "Busca las siguientes estructuras de datos:", + "updated": 1629251126491 + } + ] }, { "style": "List", - "text": "A Time Machine node for each trading session created in the Testing Trading Tasks." + "text": "A Time Machine node for each trading session created in the Testing Trading Tasks.", + "translations": [ + { + "language": "ES", + "text": "Un nodo Time Machine para cada Trading Session creada en el Testing Trading Tasks.", + "updated": 1629251359090 + } + ] }, { "style": "List", - "text": "A Time Machine node for each trading session created in the Production Trading Tasks." + "text": "A Time Machine node for each trading session created in the Production Trading Tasks.", + "translations": [ + { + "language": "ES", + "text": "Un nodo Time Machine oara cada Trading Session creada en el Production Trading Tasks.", + "updated": 1629251407209 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-020-tutorial-step-charts-verification-2.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-020-tutorial-step-charts-verification-2.json index 8e4142965..196162a3c 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-020-tutorial-step-charts-verification-2.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-020-tutorial-step-charts-verification-2.json @@ -4,23 +4,51 @@ "type": "Tutorial Step - Charts Verification 2", "definition": { "icon": { - "project": "Foundations", - "name": "time-machine" + "name": "Time/time-machine", + "project": "Foundations" }, - "text": "Verify that the time machines created show up on the charting space... you should find..." + "text": "Verify that the time machines created show up on the charting space... you should find...", + "translations": [ + { + "language": "ES", + "text": "Verifica que las máquinas del tiempo creadas aparezcan en el espacio de gráficos ... deberías encontrar ...", + "updated": 1629251601715 + } + ] }, "paragraphs": [ { "style": "List", - "text": "A Time Machine for each trading session created in the Testing Trading Tasks." + "text": "A Time Machine for each trading session created in the Testing Trading Tasks.", + "translations": [ + { + "language": "ES", + "text": "Un Time Machine para cada Trading Session crada en el Testing Trading Tasks.", + "updated": 1629251649077 + } + ] }, { "style": "List", - "text": "A Time Machine for each trading session created in the Production Trading Tasks." + "text": "A Time Machine for each trading session created in the Production Trading Tasks.", + "translations": [ + { + "language": "ES", + "text": "Un Time Machine para cada Trading Session creado en el Production Trading Tasks.", + "updated": 1629251693396 + } + ] }, { "style": "Success", - "text": "Hover your mouse over a chart to see what Crypto Exchange and Market it features." + "text": "Hover your mouse over a chart to see what Crypto Exchange and Market it features.", + "translations": [ + { + "language": "ES", + "text": "Pasa el mouse sobre un gráfico para ver qué Crypto Exchange y Market contiene.", + "updated": 1629251750388 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-021-tutorial-topic-you-made-it.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-021-tutorial-topic-you-made-it.json index b7e754817..96698688b 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-021-tutorial-topic-you-made-it.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Install/Install-a-New-Market/install-a-new-market-021-tutorial-topic-you-made-it.json @@ -4,15 +4,29 @@ "type": "Tutorial Topic - You Made It!", "definition": { "icon": { - "project": "Foundations", - "name": "tutorial" + "name": "Tutorial/tutorial", + "project": "Foundations" }, - "text": "Congratulations... you have reached the end of this tutorial!" + "text": "Congratulations... you have reached the end of this tutorial!", + "translations": [ + { + "language": "ES", + "text": "Felicitaciones ... ¡has llegado al final de este tutorial!", + "updated": 1629251820232 + } + ] }, "paragraphs": [ { "style": "Success", - "text": "You may revisit this tutorial at any point. If you select the Play option on the menu, you start right from the beginning. If you select the Resume option instead, you start where you last left, or where you last skipped a step." + "text": "You may revisit this tutorial at any point. If you select the Play option on the menu, you start right from the beginning. If you select the Resume option instead, you start where you last left, or where you last skipped a step.", + "translations": [ + { + "language": "ES", + "text": "Puedes volver a visitar este tutorial en cualquier momento. Si seleccionas el Play en el menú, comienza desde el principio. Si seleccionas el Resume en su lugar, comienzas donde lo dejaste por última vez o donde saltaste un paso por última vez.", + "updated": 1629251900929 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-002-tutorial-intro-to-trading-systems.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-002-tutorial-intro-to-trading-systems.json index ea5454083..30a4c6225 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-002-tutorial-intro-to-trading-systems.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-002-tutorial-intro-to-trading-systems.json @@ -4,19 +4,40 @@ "type": "Tutorial - Intro to Trading Systems", "definition": { "icon": { - "project": "Foundations", - "name": "trading-system" + "name": "Trading\\trading-system", + "project": "Foundations" }, - "text": "Trading systems are the heart and soul of systematic trading, as they concentrate the biggest chunk of trading intelligence." + "text": "Trading systems are the heart and soul of systematic trading, as they concentrate the biggest chunk of trading intelligence.", + "translations": [ + { + "language": "ES", + "text": "Los sistemas de trading son el corazón y el alma del trading sistemático, ya que concentran la mayor parte de la inteligencia trading.", + "updated": 1629587307428 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "The rest of the infrastructure built into Superalgos—data mining and visualization, the trading bot and trading engine, the visual strategy designer and debugger—all have significant equity in the intelligence pie, but it's fair to argue that was developed to support the design, testing, and deployment of trading systems!" + "text": "The rest of the infrastructure built into Superalgos—data mining and visualization, the trading bot and trading engine, the visual strategy designer and debugger—all have significant equity in the intelligence pie, but it's fair to argue that was developed to support the design, testing, and deployment of trading systems!", + "translations": [ + { + "language": "ES", + "text": "El resto de la infraestructura integrada en Superalgos: minería y visualización de datos, el trading bot y trading engine, el diseñador de estrategia visual y el depurador, todos tienen una participación significativa en el pastel de inteligencia, pero es justo argumentar que fue desarrollado para respaldar el diseño, las pruebas y la implementación de sistemas de trading.", + "updated": 1629587395422 + } + ] }, { "style": "Callout", - "text": "This first tutorial explains how Superalgos views and handles a Trading System. The rest of the tutorials in the series teach you how to build them!" + "text": "This first tutorial explains how Superalgos views and handles a Trading System. The rest of the tutorials in the series teach you how to build them!", + "translations": [ + { + "language": "ES", + "text": "Este primer tutorial explica cómo Superalgos ve y maneja un Trading System. ¡El resto de los tutoriales de la serie te enseñan cómo construirlos!", + "updated": 1629587450801 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-003-tutorial-topic-frame-it-flexibly.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-003-tutorial-topic-frame-it-flexibly.json index 565ca7f7e..1b7abda94 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-003-tutorial-topic-frame-it-flexibly.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-003-tutorial-topic-frame-it-flexibly.json @@ -4,24 +4,52 @@ "type": "Tutorial Topic - Frame It Flexibly!", "definition": { "icon": { - "project": "Foundations", - "name": "trading-system" + "name": "Trading\\trading-system", + "project": "Foundations" }, - "text": "A Trading System governs trading strategies, and provides a flexible—but structured— framework to build them." + "text": "A Trading System governs trading strategies, and provides a flexible—but structured— framework to build them.", + "translations": [ + { + "language": "ES", + "text": "Un Trading System rige las estrategias trading proporciona un marco flexible, pero estructurado, para desarrollarlas.", + "updated": 1629587546135 + } + ] }, "paragraphs": [ { "style": "Callout", "text": "Please, read this page to get up to speed with how trading systems work!", - "updated": 1610367185240 + "updated": 1610367185240, + "translations": [ + { + "language": "ES", + "text": "Por favor, lea esta página para ponerse al día con el funcionamiento de los sistemas comerciales.", + "updated": 1629587573430 + } + ] }, { "style": "Success", - "text": "There is no substitute for knowledge, so you will need to do some reading before I get your hands dirty with good ol' trading logic!" + "text": "There is no substitute for knowledge, so you will need to do some reading before I get your hands dirty with good ol' trading logic!", + "translations": [ + { + "language": "ES", + "text": "¡No hay sustituto para el conocimiento, por lo que tendrás que leer un poco antes de que me ensucie las manos con la buena lógica del trading!", + "updated": 1629587618899 + } + ] }, { "style": "Warning", - "text": "Skipping the reading may result in permanent neurological impairment. Your call!" + "text": "Skipping the reading may result in permanent neurological impairment. Your call!", + "translations": [ + { + "language": "ES", + "text": "Saltarse la lectura puede resultar en un deterioro neurológico permanente. ¡Tu llamada!", + "updated": 1629587887766 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-004-tutorial-step-points-to-take-home..json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-004-tutorial-step-points-to-take-home..json index 948f9be1a..80a5fecb6 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-004-tutorial-step-points-to-take-home..json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-004-tutorial-step-points-to-take-home..json @@ -4,31 +4,73 @@ "type": "Tutorial Step - Points to Take Home...", "definition": { "icon": { - "project": "Foundations", - "name": "trading-system" + "name": "Trading\\trading-system", + "project": "Foundations" }, - "text": "There are some key learnings in the previous reading: multiple strategies, single positions, and precedence." + "text": "There are some key learnings in the previous reading: multiple strategies, single positions, and precedence.", + "translations": [ + { + "language": "ES", + "text": "Hay algunos aprendizajes clave en la lectura anterior: estrategias múltiples, posiciones únicas y precedencia.", + "updated": 1629588118888 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Let's take some mental notes for what comes next:" + "text": "Let's take some mental notes for what comes next:", + "translations": [ + { + "language": "ES", + "text": "Tomemos algunas notas mentales para lo que viene a continuación:", + "updated": 1629588135560 + } + ] }, { "style": "List", - "text": "Multiple strategies may coexist within a trading system—as many as you wish." + "text": "Multiple strategies may coexist within a trading system—as many as you wish.", + "translations": [ + { + "language": "ES", + "text": "Pueden coexistir múltiples estrategias dentro de un sistema trading, tantas como desees.", + "updated": 1629588192365 + } + ] }, { "style": "List", - "text": "One active strategy with one open position at any given moment is allowed only." + "text": "One active strategy with one open position at any given moment is allowed only.", + "translations": [ + { + "language": "ES", + "text": "Solo se permite una estrategia activa con una posición abierta en un momento dado.", + "updated": 1629588175743 + } + ] }, { "style": "List", - "text": "Precedence is given by the order in which strategies are defined around the Trading System node. You may change the order, of course!" + "text": "Precedence is given by the order in which strategies are defined around the Trading System node. You may change the order, of course!", + "translations": [ + { + "language": "ES", + "text": "La precedencia viene dada por el orden en el que se definen las estrategias alrededor del nodo Trading System. ¡Puedes cambiar el orden!", + "updated": 1629588262008 + } + ] }, { "style": "Note", - "text": "You are probably asking why? Do these rules sound arbitrary? They are, for good reason!" + "text": "You are probably asking why? Do these rules sound arbitrary? They are, for good reason!", + "translations": [ + { + "language": "ES", + "text": "Probablemente te estés preguntando.. ¿por qué estas reglas suenan arbitrarias? ¡Lo son!", + "updated": 1629588865354 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-005-tutorial-step-but.-but.-why.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-005-tutorial-step-but.-but.-why.json index 58a98e986..d843b4499 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-005-tutorial-step-but.-but.-why.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-005-tutorial-step-but.-but.-why.json @@ -4,23 +4,51 @@ "type": "Tutorial Step - But... But... Why?", "definition": { "icon": { - "project": "Foundations", - "name": "trading-system" + "name": "Trading\\trading-system", + "project": "Foundations" }, - "text": "Why would I want to have multiple strategies within a trading system, when only one of them may trade at any point?" + "text": "Why would I want to have multiple strategies within a trading system, when only one of them may trade at any point?", + "translations": [ + { + "language": "ES", + "text": "¿Por qué querría tener múltiples estrategias dentro de un Trading System, cuando solo una de ellas puede operar en cualquier momento?", + "updated": 1629591838961 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Before answering the burning question, let's take a look at a couple of examples. Take a look at the two strategies within the Weak-hands Buster (WHB v2) trading system!" + "text": "Before answering the burning question, let's take a look at a couple of examples. Take a look at the two strategies within the Weak-hands Buster (WHB v2) trading system!", + "translations": [ + { + "language": "ES", + "text": "Antes de responder a la pregunta candente, echemos un vistazo a un par de ejemplos. ¡Echa un vistazo a las dos estrategias dentro del Tradiing System Weak-Hands Buster (WHB v2)!", + "updated": 1629598150880 + } + ] }, { "style": "Callout", - "text": "Explore the definitions of the Trigger On Event on the Trigger Stage and see if you notice the difference between the two." + "text": "Explore the definitions of the Trigger On Event on the Trigger Stage and see if you notice the difference between the two.", + "translations": [ + { + "language": "ES", + "text": "Explore las definiciones de Trigger On Event sobre el Trigger Stagey vea si nota la diferencia entre los dos.", + "updated": 1629598211253 + } + ] }, { "style": "Success", - "text": "There's a hint in the name of each strategy!" + "text": "There's a hint in the name of each strategy!", + "translations": [ + { + "language": "ES", + "text": "¡Hay una pista en el nombre de cada estrategia!", + "updated": 1629598225693 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-006-tutorial-step-steep-vs.-extreme.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-006-tutorial-step-steep-vs.-extreme.json index 10869ce35..45250a045 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-006-tutorial-step-steep-vs.-extreme.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-006-tutorial-step-steep-vs.-extreme.json @@ -7,16 +7,37 @@ "project": "Foundations", "name": "condition" }, - "text": "Did you find the difference? Don't worry if you didn't! There are lots of conditions! I'll give you another hint!" + "text": "Did you find the difference? Don't worry if you didn't! There are lots of conditions! I'll give you another hint!", + "translations": [ + { + "language": "ES", + "text": "¿Encontraste la diferencia? ¡No te preocupe si no lo hiciste! ¡Hay muchas condiciones! ¡Te daré otra pista!", + "updated": 1629589533343 + } + ] }, "paragraphs": [ { "style": "Callout", - "text": "Look again and notice that the first seven conditions of the Trigger On Event are the same on both strategies! The remaining conditions are different, though!" + "text": "Look again and notice that the first seven conditions of the Trigger On Event are the same on both strategies! The remaining conditions are different, though!", + "translations": [ + { + "language": "ES", + "text": "Mira de nuevo y observa que las primeras siete condiciones del Trigger On Event son iguales en ambas estrategias! ¡Sin embargo, las condiciones restantes son diferentes!", + "updated": 1629589848429 + } + ] }, { "style": "Success", - "text": "You may drag the Trigger On Event of a strategy and pin it closer to the event of the other strategy for easier comparison!" + "text": "You may drag the Trigger On Event of a strategy and pin it closer to the event of the other strategy for easier comparison!", + "translations": [ + { + "language": "ES", + "text": "Puedes arrastrar el Trigger On Event de una estrategia y fíjela más cerca del evento de la otra estrategia para facilitar la comparación.", + "updated": 1629589881277 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-007-tutorial-step-a-particular-case..json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-007-tutorial-step-a-particular-case..json index 8a9f5b65e..bbeb91be5 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-007-tutorial-step-a-particular-case..json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-007-tutorial-step-a-particular-case..json @@ -4,19 +4,40 @@ "type": "Tutorial Step - A Particular Case...", "definition": { "icon": { - "project": "Foundations", - "name": "trading-strategy" + "name": "Trading\\trading-strategy", + "project": "Foundations" }, - "text": "Both strategies are virtually the same in that they share the same base rules for triggering... with minor differences..." + "text": "Both strategies are virtually the same in that they share the same base rules for triggering... with minor differences...", + "translations": [ + { + "language": "ES", + "text": "Ambas estrategias son prácticamente iguales en el sentido de que comparten las mismas reglas básicas para la activación... ", + "updated": 1629590239242 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "Beyond the seven conditions in common, the Steep strategy has one additional Condition while the Xtreme strategy has three. We won't analyze those differences one by one, although you may if you wish! Let's instead reveal the underlying concept behind the differences:" + "text": "Beyond the seven conditions in common, the Steep strategy has one additional Condition while the Xtreme strategy has three. We won't analyze those differences one by one, although you may if you wish! Let's instead reveal the underlying concept behind the differences:", + "translations": [ + { + "language": "ES", + "text": "Más allá de las siete condiciones en común, la Steep strategy tiene un Condition adicional mientras que la estrategia Xtreme tiene tres. No analizaremos esas diferencias una a una, ¡aunque puede hacerlo si lo desea! En su lugar, revelemos el concepto subyacente detrás de las diferencias:", + "updated": 1629590038879 + } + ] }, { "style": "Callout", - "text": "Within the market Situation defined by the first seven conditions, the Steep strategy deals with a certain type of price action—price falling on a steep curve—while the Xtreme strategy deals with price falling on an extremely steep curve!" + "text": "Within the market Situation defined by the first seven conditions, the Steep strategy deals with a certain type of price action—price falling on a steep curve—while the Xtreme strategy deals with price falling on an extremely steep curve!", + "translations": [ + { + "language": "ES", + "text": "Dentro de la situación de mercado definida por las primeras siete condiciones, la estrategia Steep se ocupa de un cierto tipo de acción del precio, el precio que cae en una curva pronunciada, mientras que la estrategia Xtreme se ocupa de la caída del precio en una curva extremadamente pronunciada.", + "updated": 1629590224948 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-008-tutorial-step-another-example.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-008-tutorial-step-another-example.json index 4cd21cd06..c8a2bd6ae 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-008-tutorial-step-another-example.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-008-tutorial-step-another-example.json @@ -4,19 +4,40 @@ "type": "Tutorial Step - Another Example?", "definition": { "icon": { - "project": "Foundations", - "name": "trading-system" + "name": "Trading\\trading-system", + "project": "Foundations" }, - "text": "Let's take a look at another example! This is BB Top Bounce, a Trading System based on the bounce off the upper Bollinger Band trading idea." + "text": "Let's take a look at another example! This is BB Top Bounce, a Trading System based on the bounce off the upper Bollinger Band trading idea.", + "translations": [ + { + "language": "ES", + "text": "¡Echemos un vistazo a otro ejemplo! Este es BB Top Bounce, un Trading System basado en el rebote de la parte superior de la idea de trading Bollinger Band.", + "updated": 1629590642973 + } + ] }, "paragraphs": [ { "style": "Callout", - "text": "Expand the trading system node... Let's see what it may teach us!" + "text": "Expand the trading system node... Let's see what it may teach us!", + "translations": [ + { + "language": "ES", + "text": "Expande el nodo del Trading System ... ¡Veamos qué nos puede enseñar!", + "updated": 1629590784815 + } + ] }, { "style": "Note", - "text": "I told you! You may have as many strategies as you wish under the same trading system! Well... there your are!" + "text": "I told you! You may have as many strategies as you wish under the same trading system! Well... there your are!", + "translations": [ + { + "language": "ES", + "text": "¡Te dije! ¡Puedes tener tantas estrategias como desees bajo el mismo Trading System! Bueno ... ¡ahí estás!", + "updated": 1629590821468 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-009-tutorial-step-at-the-count-of-three.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-009-tutorial-step-at-the-count-of-three.json index 0fbead1e4..5371b3f48 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-009-tutorial-step-at-the-count-of-three.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-009-tutorial-step-at-the-count-of-three.json @@ -7,21 +7,49 @@ "project": "Foundations", "name": "condition" }, - "text": "BB Top Bounce features an interesting approach: it defines the trading idea with three simple conditions." + "text": "BB Top Bounce features an interesting approach: it defines the trading idea with three simple conditions.", + "translations": [ + { + "language": "ES", + "text": "BB Top Bounce presenta un enfoque interesante: define la idea comercial con tres condiciones simples.", + "updated": 1629591593112 + } + ] }, "paragraphs": [ { "style": "Text", - "text": "You are looking at the Trigger On Event of the first strategy. Notice the first three conditions defined..." + "text": "You are looking at the Trigger On Event of the first strategy. Notice the first three conditions defined...", + "translations": [ + { + "language": "ES", + "text": "Estás mirando el Trigger On Event de la primera estrategia. Observa las tres primeras condiciones definidas...", + "updated": 1629591638723 + } + ] }, { "style": "Callout", - "text": "Now go and look at the trigger on event of any of the other strategies... What do you see?" + "text": "Now go and look at the trigger on event of any of the other strategies... What do you see?", + "translations": [ + { + "language": "ES", + "text": "Ahora ve y mira el desencadenante de cualquiera de las otras estrategias ... ¿Qué ves?", + "updated": 1629591679346 + } + ] }, { "style": "Text", "text": "Exactly! All strategies feature the same first three conditions on the trigger on event. This shows that all strategies are based on the same trading idea. Now... how are they different?", - "updated": 1610466052450 + "updated": 1610466052450, + "translations": [ + { + "language": "ES", + "text": "¡Exactamente! Todas las estrategias presentan las mismas tres primeras condiciones en el desencadenante del evento. Esto muestra que todas las estrategias se basan en la misma idea de trading. Ahora... ¿en qué se diferencian?", + "updated": 1629591763135 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-010-tutorial-step-time-frame-analysys.json b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-010-tutorial-step-time-frame-analysys.json index 37687c109..ad3f733ba 100644 --- a/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-010-tutorial-step-time-frame-analysys.json +++ b/Projects/Foundations/Schemas/Docs-Tutorials/I/Intro/Intro-to-Trading-Systems/intro-to-trading-systems-010-tutorial-step-time-frame-analysys.json @@ -4,23 +4,51 @@ "type": "Tutorial Step - Time Frame Analysys", "definition": { "icon": { - "project": "Foundations", - "name": "time-frame" + "name": "Time\\time-frame", + "project": "Foundations" }, - "text": "Each strategy specializes in specific market conditions by analyzing the state of the market on different time frames!" + "text": "Each strategy specializes in specific market conditions by analyzing the state of the market on different time frames!", + "translations": [ + { + "language": "ES", + "text": "¡Cada estrategia se especializa en condiciones específicas del mercado analizando el estado del mercado en diferentes marcos de tiempo!", + "updated": 1629598321603 + } + ] }, "paragraphs": [ { "style": "Callout", - "text": "Take a look at the name of each strategy... 3H Down, 2H Down, 4H Up..." + "text": "Take a look at the name of each strategy... 3H Down, 2H Down, 4H Up...", + "translations": [ + { + "language": "ES", + "text": "Echa un vistazo al nombre de cada estrategia... 3H Down, 2H Down, 4H Up...", + "updated": 1629598582815 + } + ] }, { "style": "Text", - "text": "If you study the conditions that define the trigger on event, you will notice that 3H Down referes to the fact that the particular strategy is triggered when the 3-hour time frame is in a downtrend." + "text": "If you study the conditions that define the trigger on event, you will notice that 3H Down referes to the fact that the particular strategy is triggered when the 3-hour time frame is in a downtrend.", + "translations": [ + { + "language": "ES", + "text": "Si estudias las condiciones que definen el desencadenante del evento, notarás que 3H Down se refiere al hecho de que la estrategia particular se desencadena cuando el marco de tiempo de 3 horas está en una tendencia bajista.", + "updated": 1629598574248 + } + ] }, { "style": "Note", - "text": "Each of the strategies speciallizes on a certain time frame and trend!" + "text": "Each of the strategies speciallizes on a certain time frame and trend!", + "translations": [ + { + "language": "ES", + "text": "¡Cada una de las estrategias se especializa en un cierto marco de tiempo y tendencia!", + "updated": 1629598547193 + } + ] } ] } \ No newline at end of file diff --git a/Projects/Foundations/UI/Function-Libraries/UiObjectsFromNodes.js b/Projects/Foundations/UI/Function-Libraries/UiObjectsFromNodes.js index 91bdfb9bd..1661ad87e 100644 --- a/Projects/Foundations/UI/Function-Libraries/UiObjectsFromNodes.js +++ b/Projects/Foundations/UI/Function-Libraries/UiObjectsFromNodes.js @@ -329,15 +329,22 @@ function newFoundationsFunctionLibraryUiObjectsFromNodes() { pathName = rawPath[i][0] pathType = rawPath[i][1] pathNode = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByCodeNameAndNodeType( pathName, pathType ) + // If reference parent is workspace node grab node if (pathType === "Workspace") { pathNode = UI.projects.foundations.spaces.designSpace.workspace.workspaceNode + } + // If Hierarchy Head is not located within the workspace abort reconnection + if (pathNode === undefined) { + console.log("[WARN] Abort reconnection saved path head node not found in current workspace", node) + return } continue } else { // Walk through children nodes and find the next node from saved path pathName = rawPath[i][0] pathType = rawPath[i][1] pathNode = getNextNodeFromPath(pathNode, pathName, pathType) + } } if (pathNode !== undefined ) { @@ -347,6 +354,7 @@ function newFoundationsFunctionLibraryUiObjectsFromNodes() { } function getNextNodeFromPath(node, pathName, pathType) { + console.log("pathNode", node) let schemaDocument = getSchemaDocument(node) let nextNode = undefined for (let i = 0; i < schemaDocument.childrenNodesProperties.length; i++) { diff --git a/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js b/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js index 907ab42cd..d3fda57e7 100644 --- a/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js +++ b/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js @@ -157,7 +157,10 @@ function newWorkspace() { let workspace = UI.projects.foundations.spaces.designSpace.workspace.workspaceNode /* Validation if it is too early to save. */ - if (thisObject.isInitialized === false) { return } + if (thisObject.isInitialized === false) { + console.log('Workspace not saved because it has not been initialized. =') + return + } /* Validation of 2 sessions opened at the same time. */ let savedSessionTimestamp = window.localStorage.getItem('Session Timestamp') diff --git a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js index 121b59176..f49dcd25b 100644 --- a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js +++ b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js @@ -73,6 +73,7 @@ function newCircularMenu() { menuItem.visible = menuItemInitialValue.visible menuItem.iconPathOn = menuItemInitialValue.iconPathOn menuItem.iconPathOff = menuItemInitialValue.iconPathOff + menuItem.iconProject = menuItemInitialValue.iconProject menuItem.rawRadius = menuItemInitialValue.rawRadius menuItem.targetRadius = menuItemInitialValue.label menuItem.currentRadius = menuItemInitialValue.currentRadius diff --git a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenuItem.js b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenuItem.js index e0e99082b..29032cbc9 100644 --- a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenuItem.js +++ b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenuItem.js @@ -9,6 +9,7 @@ function newCircularMenuItem() { confirmationLabel: undefined, iconOn: undefined, iconOff: undefined, + iconProject: undefined, icons: undefined, currentIcon: undefined, disableIfPropertyIsDefined: undefined, @@ -94,6 +95,7 @@ function newCircularMenuItem() { thisObject.container = undefined thisObject.iconOn = undefined thisObject.iconOff = undefined + thisObject.iconProject = undefined thisObject.icons = undefined thisObject.currentIcon = undefined thisObject.payload = undefined @@ -261,11 +263,18 @@ function newCircularMenuItem() { thisObject.iconOn = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName('Foundations', thisObject.secondaryIcon) thisObject.iconOff = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName('Foundations', thisObject.secondaryIcon) } else { - if (thisObject.relatedUiObject !== undefined) { + if (thisObject.label === "Add Dependency Product Folder") { console.log ("Test") } + if (thisObject.relatedUiObject !== undefined && thisObject.iconProject !== undefined) { + thisObject.iconOn = UI.projects.foundations.spaces.designSpace.getIconByProjectAndType(thisObject.iconProject, thisObject.relatedUiObject) + thisObject.iconOff = UI.projects.foundations.spaces.designSpace.getIconByProjectAndType(thisObject.iconProject, thisObject.relatedUiObject) + } else if (thisObject.relatedUiObject !== undefined && thisObject.iconProject === undefined) { thisObject.iconOn = UI.projects.foundations.spaces.designSpace.getIconByProjectAndType(thisObject.payload.node.project, thisObject.relatedUiObject) thisObject.iconOff = UI.projects.foundations.spaces.designSpace.getIconByProjectAndType(thisObject.payload.node.project, thisObject.relatedUiObject) } else { - if (thisObject.iconPathOn !== undefined && thisObject.iconPathOff !== undefined) { + if (thisObject.iconPathOn !== undefined && thisObject.iconPathOff !== undefined && thisObject.iconProject !== undefined) { + thisObject.iconOn = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName(thisObject.iconProject, thisObject.iconPathOn) + thisObject.iconOff = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName(thisObject.iconProject, thisObject.iconPathOff) + } else if (thisObject.iconPathOn !== undefined && thisObject.iconPathOff !== undefined && thisObject.iconProject === undefined) { thisObject.iconOn = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName('Foundations', thisObject.iconPathOn) thisObject.iconOff = UI.projects.foundations.spaces.designSpace.getIconByProjectAndName('Foundations', thisObject.iconPathOff) } else { diff --git a/Projects/Governance/Icons-SVG-Sources/airdrop-program.svg b/Projects/Governance/Icons-SVG-Sources/airdrop-program.svg new file mode 100644 index 000000000..7031b2441 --- /dev/null +++ b/Projects/Governance/Icons-SVG-Sources/airdrop-program.svg @@ -0,0 +1 @@ +airdrop-program \ No newline at end of file diff --git a/Projects/Governance/Icons-SVG-Sources/github-program.svg b/Projects/Governance/Icons-SVG-Sources/github-program.svg new file mode 100644 index 000000000..c4a2f907c --- /dev/null +++ b/Projects/Governance/Icons-SVG-Sources/github-program.svg @@ -0,0 +1 @@ +github-program \ No newline at end of file diff --git a/Projects/Governance/Icons-SVG-Sources/influencer-program.svg b/Projects/Governance/Icons-SVG-Sources/influencer-program.svg new file mode 100644 index 000000000..bf8e0a57c --- /dev/null +++ b/Projects/Governance/Icons-SVG-Sources/influencer-program.svg @@ -0,0 +1 @@ +influencer-program \ No newline at end of file diff --git a/Projects/Governance/Icons-SVG-Sources/mentorship-program.svg b/Projects/Governance/Icons-SVG-Sources/mentorship-program.svg new file mode 100644 index 000000000..fa7e0150d --- /dev/null +++ b/Projects/Governance/Icons-SVG-Sources/mentorship-program.svg @@ -0,0 +1 @@ +mentorship-program \ No newline at end of file diff --git a/Projects/Governance/Icons-SVG-Sources/referral-program.svg b/Projects/Governance/Icons-SVG-Sources/referral-program.svg new file mode 100644 index 000000000..84790b42a --- /dev/null +++ b/Projects/Governance/Icons-SVG-Sources/referral-program.svg @@ -0,0 +1 @@ +referral-program \ No newline at end of file diff --git a/Projects/Governance/Icons-SVG-Sources/staking-program.svg b/Projects/Governance/Icons-SVG-Sources/staking-program.svg new file mode 100644 index 000000000..5c073cc1f --- /dev/null +++ b/Projects/Governance/Icons-SVG-Sources/staking-program.svg @@ -0,0 +1 @@ +staking-program \ No newline at end of file diff --git a/Projects/Governance/Icons-SVG-Sources/tokens-awarded.svg b/Projects/Governance/Icons-SVG-Sources/tokens-awarded.svg new file mode 100644 index 000000000..c3551f48b --- /dev/null +++ b/Projects/Governance/Icons-SVG-Sources/tokens-awarded.svg @@ -0,0 +1 @@ +tokens-awarded \ No newline at end of file diff --git a/Projects/Governance/Icons-SVG-Sources/tokens-bonus.svg b/Projects/Governance/Icons-SVG-Sources/tokens-bonus.svg new file mode 100644 index 000000000..e52f4cb86 --- /dev/null +++ b/Projects/Governance/Icons-SVG-Sources/tokens-bonus.svg @@ -0,0 +1 @@ +tokens-bonus \ No newline at end of file diff --git a/Projects/Governance/Icons-SVG-Sources/tokens-mined.svg b/Projects/Governance/Icons-SVG-Sources/tokens-mined.svg new file mode 100644 index 000000000..f06bad001 --- /dev/null +++ b/Projects/Governance/Icons-SVG-Sources/tokens-mined.svg @@ -0,0 +1 @@ +tokens-mined \ No newline at end of file diff --git a/Projects/Governance/Icons/Programs/airdrop-program.png b/Projects/Governance/Icons/Programs/airdrop-program.png index 932293250..02803cde7 100644 Binary files a/Projects/Governance/Icons/Programs/airdrop-program.png and b/Projects/Governance/Icons/Programs/airdrop-program.png differ diff --git a/Projects/Governance/Icons/Programs/github-program.png b/Projects/Governance/Icons/Programs/github-program.png index ef69b801e..214b0c725 100644 Binary files a/Projects/Governance/Icons/Programs/github-program.png and b/Projects/Governance/Icons/Programs/github-program.png differ diff --git a/Projects/Governance/Icons/Programs/influencer-program.png b/Projects/Governance/Icons/Programs/influencer-program.png index 49a0eedb9..73963af4a 100644 Binary files a/Projects/Governance/Icons/Programs/influencer-program.png and b/Projects/Governance/Icons/Programs/influencer-program.png differ diff --git a/Projects/Governance/Icons/Programs/mentorship-program.png b/Projects/Governance/Icons/Programs/mentorship-program.png index b6f5da755..f7587a534 100644 Binary files a/Projects/Governance/Icons/Programs/mentorship-program.png and b/Projects/Governance/Icons/Programs/mentorship-program.png differ diff --git a/Projects/Governance/Icons/Programs/referral-program.png b/Projects/Governance/Icons/Programs/referral-program.png index b9d3765cf..f3229706a 100644 Binary files a/Projects/Governance/Icons/Programs/referral-program.png and b/Projects/Governance/Icons/Programs/referral-program.png differ diff --git a/Projects/Governance/Icons/Programs/staking-program.png b/Projects/Governance/Icons/Programs/staking-program.png index 9ab9dadd6..d751965aa 100644 Binary files a/Projects/Governance/Icons/Programs/staking-program.png and b/Projects/Governance/Icons/Programs/staking-program.png differ diff --git a/Projects/Governance/Icons/tokens-awarded.png b/Projects/Governance/Icons/tokens-awarded.png index 650a239d6..62515f881 100644 Binary files a/Projects/Governance/Icons/tokens-awarded.png and b/Projects/Governance/Icons/tokens-awarded.png differ diff --git a/Projects/Governance/Icons/tokens-bonus.png b/Projects/Governance/Icons/tokens-bonus.png index 41d647283..433b1eca3 100644 Binary files a/Projects/Governance/Icons/tokens-bonus.png and b/Projects/Governance/Icons/tokens-bonus.png differ diff --git a/Projects/Governance/Icons/tokens-mined.png b/Projects/Governance/Icons/tokens-mined.png index 5bd381b2b..5fc9e5581 100644 Binary files a/Projects/Governance/Icons/tokens-mined.png and b/Projects/Governance/Icons/tokens-mined.png differ diff --git a/Projects/Governance/PNGs/Docs/token-task-force/lbank-btc-usdt-1m-chart.PNG b/Projects/Governance/PNGs/Docs/token-task-force/lbank-btc-usdt-1m-chart.PNG new file mode 100644 index 000000000..1d4052d1e Binary files /dev/null and b/Projects/Governance/PNGs/Docs/token-task-force/lbank-btc-usdt-1m-chart.PNG differ diff --git a/Projects/Governance/PNGs/Docs/token-task-force/probit-btc-usdt-1m-chart.PNG b/Projects/Governance/PNGs/Docs/token-task-force/probit-btc-usdt-1m-chart.PNG new file mode 100644 index 000000000..e478b982d Binary files /dev/null and b/Projects/Governance/PNGs/Docs/token-task-force/probit-btc-usdt-1m-chart.PNG differ diff --git a/Projects/Governance/PNGs/Docs/token-task-force/probit-listing-plans.png b/Projects/Governance/PNGs/Docs/token-task-force/probit-listing-plans.png new file mode 100644 index 000000000..c37f76686 Binary files /dev/null and b/Projects/Governance/PNGs/Docs/token-task-force/probit-listing-plans.png differ diff --git a/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json b/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json index 245c7569a..13e4c12ea 100644 --- a/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json +++ b/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json @@ -81,12 +81,12 @@ "id": "bda21833-11b8-49d3-8c79-ff8e1c667dcc", "savedPayload": { "position": { - "x": 31000.07168984726, - "y": 23974.264068711924 + "x": 30936.297332942388, + "y": 24042.62315256192 }, "targetPosition": { - "x": 30787.939655491296, - "y": 23762.13203435596 + "x": 30747.501215627435, + "y": 23809.47936412483 }, "floatingObject": { "isPinned": false, @@ -114,7 +114,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 3, "distanceToParent": 3, "arrangementStyle": 0 @@ -13714,7 +13714,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 diff --git a/Projects/Governance/Plugins/User-Profiles/Raplh2502.json b/Projects/Governance/Plugins/User-Profiles/Raplh2502.json new file mode 100644 index 000000000..e8ff6a5de --- /dev/null +++ b/Projects/Governance/Plugins/User-Profiles/Raplh2502.json @@ -0,0 +1,643 @@ +{ + "type": "User Profile", + "name": "Raplh2502", + "config": "{\n \"signature\": {\n \"message\": \"Raplh2502\",\n \"messageHash\": \"0x002241abadf010338ef270d56138327b257a020ba556107b978f7e4a4f78e10f\",\n \"v\": \"0x1b\",\n \"r\": \"0xa45e37a0d602e45300e319a1ee714dcee22fdd44774b638a6086fe66fd5d25b1\",\n \"s\": \"0x36c0c11cbc382a559ae30d7d53940586b60b5a28e39a3240af33a58129accc25\",\n \"signature\": \"0xa45e37a0d602e45300e319a1ee714dcee22fdd44774b638a6086fe66fd5d25b136c0c11cbc382a559ae30d7d53940586b60b5a28e39a3240af33a58129accc251b\"\n },\n \"codeName\": \"Raplh2502\"\n}", + "project": "Governance", + "tokenPowerSwitch": { + "type": "Token Power Switch", + "name": "New Token Power Switch", + "config": "{}", + "project": "Governance", + "tokenPowerSwitch": [], + "communityBuildingPrograms": { + "type": "Community Building Programs", + "name": "New Community Building Programs", + "config": "{}", + "project": "Governance", + "supportProgram": { + "type": "Support Program", + "name": "New Support Program", + "config": "{}", + "project": "Governance", + "userSupporters": [ + { + "type": "User Supporter", + "name": "Julian-Molina", + "config": "{}", + "project": "Governance", + "id": "8654e417-6ac3-44da-89de-b348fba4aed4", + "savedPayload": { + "position": { + "x": 35941.4493554574, + "y": 23003.65789426258 + }, + "targetPosition": { + "x": 36241.4493554574, + "y": 23003.65789426258 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "User Profile", + "name": "Julian-Molina", + "id": "1fd95e41-4b22-48d5-be3a-904c37afcb11" + }, + "referenceParentCombinedNodePath": [ + [ + "Julian-Molina", + "User Profile" + ] + ] + } + }, + { + "type": "User Supporter", + "name": "harrellbm", + "config": "{}", + "project": "Governance", + "id": "47ec59fb-4a1e-4e8d-a2df-5796ad4f8a7d", + "savedPayload": { + "position": { + "x": 36091.4493554574, + "y": 22743.850273127246 + }, + "targetPosition": { + "x": 36241.4493554574, + "y": 23003.65789426258 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "User Profile", + "name": "harrellbm", + "id": "107d3e44-1685-4540-8316-3bc6591298e9" + }, + "referenceParentCombinedNodePath": [ + [ + "harrellbm", + "User Profile" + ] + ] + } + }, + { + "type": "User Supporter", + "name": "Luis-Fernando-Molina", + "config": "{}", + "project": "Governance", + "id": "9d61971c-d916-454a-97a0-9d7a68747175", + "savedPayload": { + "position": { + "x": 36391.4493554574, + "y": 22743.850273127246 + }, + "targetPosition": { + "x": 36241.4493554574, + "y": 23003.65789426258 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "User Profile", + "name": "Luis-Fernando-Molina", + "id": "148911b3-b2f3-44fb-8cb4-017991789132" + }, + "referenceParentCombinedNodePath": [ + [ + "Luis-Fernando-Molina", + "User Profile" + ] + ] + } + } + ], + "tokensAwarded": { + "type": "Tokens Awarded", + "name": "New Tokens Awarded", + "project": "Governance", + "id": "8ac68836-fdb6-4549-83bb-4d9d253cec6e", + "savedPayload": { + "position": { + "x": 36541.4493554574, + "y": 23003.65789426258 + }, + "targetPosition": { + "x": 36241.4493554574, + "y": 23003.65789426258 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "tokensBonus": { + "type": "Tokens Bonus", + "name": "New Tokens Bonus", + "project": "Governance", + "id": "de5c95e6-ff42-41a9-a253-7cd0115234ac", + "savedPayload": { + "position": { + "x": 36391.4493554574, + "y": 23263.46551539791 + }, + "targetPosition": { + "x": 36241.4493554574, + "y": 23003.65789426258 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "6b249e23-8de3-48e9-9f11-14f8c57dd8d5", + "savedPayload": { + "position": { + "x": 36241.4493554574, + "y": 23003.65789426258 + }, + "targetPosition": { + "x": 36091.4493554574, + "y": 23263.46551539791 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "61dfffc2-6a9a-450a-abe6-78c19ef34f73", + "savedPayload": { + "position": { + "x": 36091.4493554574, + "y": 23263.46551539791 + }, + "targetPosition": { + "x": 35941.4493554574, + "y": 23523.273136533244 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "votesAndClaimsPrograms": { + "type": "Votes And Claims Programs", + "name": "New Votes And Claims Programs", + "config": "{}", + "project": "Governance", + "claimsProgram": { + "type": "Claims Program", + "name": "New Claims Program", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [], + "featureClaimsFolders": [ + { + "type": "Feature Claims Folder", + "name": "New Feature Claims Folder", + "config": "{}", + "project": "Governance", + "featureClaimsFolders": [], + "featureContributionClaims": [ + { + "type": "Feature Contribution Claim", + "name": "", + "config": "{}", + "project": "Governance", + "id": "2dd37827-1cc1-40aa-b89a-917ccfe24d9b", + "savedPayload": { + "position": { + "x": 36501.25697659273, + "y": 23592.88837880391 + }, + "targetPosition": { + "x": 36501.25697659273, + "y": 23892.88837880391 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Feature", + "name": "Data Mining", + "id": "afa546fa-799b-4c50-baa3-65c8409aaab9" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos", + "Features" + ], + [ + "Project Features", + "Feature Class" + ], + [ + "Superalgos Platform", + "Feature Class" + ], + [ + "Existing Features", + "Feature Class" + ], + [ + "Data Mining", + "Feature" + ] + ] + } + }, + { + "type": "Feature Contribution Claim", + "name": "User Defined Variables and Code New Features", + "config": "{}", + "project": "Governance", + "id": "67e36fdc-9a1d-42c7-a62a-e99c605c5d33", + "savedPayload": { + "position": { + "x": 36761.064597728066, + "y": 24042.88837880391 + }, + "targetPosition": { + "x": 36501.25697659273, + "y": 23892.88837880391 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Feature", + "name": "User Defined Variables and Code", + "id": "55e7b969-383c-4ae8-95c0-2dc18473404f" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos", + "Features" + ], + [ + "Project Features", + "Feature Class" + ], + [ + "Superalgos Platform", + "Feature Class" + ], + [ + "New Features", + "Feature Class" + ], + [ + "User Defined Variables and Code", + "Feature" + ] + ] + } + } + ], + "id": "a0af8811-9dc2-4a9a-a28f-358738a6994f", + "savedPayload": { + "position": { + "x": 36501.25697659273, + "y": 23892.88837880391 + }, + "targetPosition": { + "x": 36241.4493554574, + "y": 24042.88837880391 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "positionClaimsFolders": [ + { + "type": "Position Claims Folder", + "name": "New Position Claims Folder", + "config": "{}", + "project": "Governance", + "positionClaimsFolders": [], + "positionContributionClaims": [ + { + "type": "Position Contribution Claim", + "name": "Moderator Community Management", + "config": "{}", + "project": "Governance", + "id": "74cbbf75-2a2c-4081-9415-ba423848f2db", + "savedPayload": { + "position": { + "x": 36541.4493554574, + "y": 24562.503621074575 + }, + "targetPosition": { + "x": 36391.4493554574, + "y": 24302.695999939242 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Position", + "name": "Moderator", + "id": "6e141ab6-cc79-44b6-a58a-60b6480f706e" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos", + "Positions" + ], + [ + "Rewarded Positions", + "Position Class" + ], + [ + "Community Management", + "Position Class" + ], + [ + "Moderator", + "Position" + ] + ] + } + } + ], + "id": "e880f8a6-8e53-43dd-8b11-4210ca18c9ab", + "savedPayload": { + "position": { + "x": 36391.4493554574, + "y": 24302.695999939242 + }, + "targetPosition": { + "x": 36241.4493554574, + "y": 24042.88837880391 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Position Class", + "name": "Community Management", + "id": "35b790f0-c567-498c-83fd-ac0aacd8720b" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos", + "Positions" + ], + [ + "Rewarded Positions", + "Position Class" + ], + [ + "Community Management", + "Position Class" + ] + ] + } + } + ], + "tokensAwarded": { + "type": "Tokens Awarded", + "name": "New Tokens Awarded", + "project": "Governance", + "id": "f7c63ab2-c803-4886-b043-6c6297981f85", + "savedPayload": { + "position": { + "x": 35981.64173432207, + "y": 24192.88837880391 + }, + "targetPosition": { + "x": 36241.4493554574, + "y": 24042.88837880391 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "bd26adac-cf78-4aec-888f-a8718a657469", + "savedPayload": { + "position": { + "x": 36241.4493554574, + "y": 24042.88837880391 + }, + "targetPosition": { + "x": 36091.4493554574, + "y": 23783.080757668577 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "22eacf7e-c02b-4853-a529-7789aeadb64e", + "savedPayload": { + "position": { + "x": 36091.4493554574, + "y": 23783.080757668577 + }, + "targetPosition": { + "x": 35941.4493554574, + "y": 23523.273136533244 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "13f0fedf-2d0a-4b80-a191-05236a8138a6", + "savedPayload": { + "position": { + "x": 35941.4493554574, + "y": 23523.273136533244 + }, + "targetPosition": { + "x": 35641.4493554574, + "y": 23523.273136533244 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "tokensMined": { + "type": "Tokens Mined", + "name": "New Tokens Mined", + "project": "Governance", + "id": "b4c844ba-f1c1-44e8-96f6-96fbd6a8cbfd", + "savedPayload": { + "position": { + "x": 35341.4493554574, + "y": 23523.273136533244 + }, + "targetPosition": { + "x": 35641.4493554574, + "y": 23523.273136533244 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "59a87d1a-0457-4a49-a11b-216716e5c889", + "savedPayload": { + "position": { + "x": 35641.4493554574, + "y": 23523.273136533244 + }, + "targetPosition": { + "x": 35641.4493554574, + "y": 23523.273136533244 + }, + "floatingObject": { + "isPinned": true, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } +} \ No newline at end of file diff --git a/Projects/Governance/Plugins/User-Profiles/harrellbm.json b/Projects/Governance/Plugins/User-Profiles/harrellbm.json index b0b65e424..73e271335 100644 --- a/Projects/Governance/Plugins/User-Profiles/harrellbm.json +++ b/Projects/Governance/Plugins/User-Profiles/harrellbm.json @@ -8,515 +8,32 @@ "name": "New Token Power Switch", "config": "{}", "project": "Governance", - "tokenPowerSwitch": [ - { - "type": "Token Power Switch", - "name": "Features and Controbutions", + "tokenPowerSwitch": [], + "communityBuildingPrograms": { + "type": "Community Building Programs", + "name": "New Community Building Programs", + "config": "{}", + "project": "Governance", + "mentorshipProgram": { + "type": "Mentorship Program", + "name": "New Mentorship Program", "config": "{}", "project": "Governance", - "tokenPowerSwitch": [], - "claimsProgram": { - "type": "Claims Program", - "name": "New Claims Program", - "config": "{}", - "project": "Governance", - "assetClaimsFolders": [ - { - "type": "Asset Claims Folder", - "name": "Launch-Scripts Asset Class", - "config": "{}", - "project": "Governance", - "assetClaimsFolders": [ - { - "type": "Asset Claims Folder", - "name": "Superalgos Asset Class", - "config": "{}", - "project": "Governance", - "assetClaimsFolders": [ - { - "type": "Asset Claims Folder", - "name": "Launch-Scripts Asset Class", - "config": "{}", - "project": "Governance", - "assetClaimsFolders": [], - "assetContributionClaims": [ - { - "type": "Asset Contribution Claim", - "name": "Superalgos Launch-Scripts create-shortcut.js", - "config": "{\n \"description\": \"\"\n}", - "project": "Governance", - "id": "ea9a39f8-1149-4bda-aec7-58e5ac07e0c5", - "savedPayload": { - "position": { - "x": 14535.725312229182, - "y": 22181.902722406394 - }, - "targetPosition": { - "x": 14778.430410541667, - "y": 22358.238298094137 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset", - "name": "create-shortcut.js", - "id": "7998312a-e903-491a-b2cb-943f38e782ae" - } - } - }, - { - "type": "Asset Contribution Claim", - "name": "Superalgos Launch-Scripts launch-linux-mac.sh", - "config": "{\n \"description\": \"\"\n}", - "project": "Governance", - "id": "819052d7-d3ef-432f-a27d-66507b83f591", - "savedPayload": { - "position": { - "x": 14685.725312229182, - "y": 22072.92134320559 - }, - "targetPosition": { - "x": 14778.430410541667, - "y": 22358.238298094137 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset", - "name": "launch-linux-mac.sh", - "id": "e96a3ea1-8580-4cd1-8032-5ff8c19f2312" - } - } - }, - { - "type": "Asset Contribution Claim", - "name": "Superalgos Launch-Scripts launch-windows.bat", - "config": "{\n \"description\": \"\"\n}", - "project": "Governance", - "id": "0e11d32b-7023-4bec-b351-76d2f8e3587c", - "savedPayload": { - "position": { - "x": 14871.135508854151, - "y": 22072.92134320559 - }, - "targetPosition": { - "x": 14778.430410541667, - "y": 22358.238298094137 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset", - "name": "launch-windows.bat", - "id": "58c7a50e-ae5e-4430-89bc-23d2631a5642" - } - } - }, - { - "type": "Asset Contribution Claim", - "name": "Superalgos Launch-Scripts superalgos.ico", - "config": "{\n \"description\": \"\"\n}", - "project": "Governance", - "id": "7f3a30a5-3f31-4d1e-bfe4-83cdb7b22efe", - "savedPayload": { - "position": { - "x": 15021.135508854151, - "y": 22181.902722406394 - }, - "targetPosition": { - "x": 14778.430410541667, - "y": 22358.238298094137 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset", - "name": "superalgos.ico", - "id": "24df883e-ebf1-41ed-b2a5-69a3707e65cc" - } - } - } - ], - "id": "b431ca85-d9e6-4f2e-8fd2-cacd7a6e63da", - "savedPayload": { - "position": { - "x": 14778.430410541667, - "y": 22358.238298094137 - }, - "targetPosition": { - "x": 14778.430410541667, - "y": 22658.238298094137 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset Class", - "name": "Launch-Scripts", - "id": "37811a42-dc4f-4140-9f24-9d4c793441cb" - } - } - } - ], - "assetContributionClaims": [], - "id": "95db1d06-3c18-426c-aba7-2a23b5b15c31", - "savedPayload": { - "position": { - "x": 14778.430410541667, - "y": 22658.238298094137 - }, - "targetPosition": { - "x": 14778.430410541667, - "y": 22958.238298094137 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset Class", - "name": "Superalgos", - "id": "8bbcd3f2-5e68-475d-9b5f-53ceb890e189" - } - } - } - ], - "assetContributionClaims": [], - "id": "e178f2a9-0929-46b9-8e5f-61c976bce347", - "savedPayload": { - "position": { - "x": 14778.430410541667, - "y": 22958.238298094137 - }, - "targetPosition": { - "x": 14778.430410541667, - "y": 23258.238298094137 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset Class", - "name": "Launch-Scripts", - "id": "fcf025b5-12cc-4de9-8f6c-ef972746d94c" - } - } - }, - { - "type": "Asset Claims Folder", - "name": "Root Asset Class", - "config": "{}", - "project": "Governance", - "assetClaimsFolders": [ - { - "type": "Asset Claims Folder", - "name": "Superalgos Asset Class", - "config": "{}", - "project": "Governance", - "assetClaimsFolders": [ - { - "type": "Asset Claims Folder", - "name": "Root Asset Class", - "config": "{}", - "project": "Governance", - "assetClaimsFolders": [], - "assetContributionClaims": [ - { - "type": "Asset Contribution Claim", - "name": "Superalgos Root README.md", - "config": "{\n \"description\": \"\"\n}", - "project": "Governance", - "id": "49c7731e-d725-4331-971a-2c501b701424", - "savedPayload": { - "position": { - "x": 15367.896174097488, - "y": 22325.535692847705 - }, - "targetPosition": { - "x": 15414.826513609558, - "y": 22621.842195026245 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset", - "name": "README.md", - "id": "a5ee087a-9889-41fc-b0c5-13a0e40cb7e8" - } - } - }, - { - "type": "Asset Contribution Claim", - "name": "Superalgos Root run.js", - "config": "{\n \"description\": \"\"\n}", - "project": "Governance", - "id": "5429cb15-568b-4555-8b2f-bcd7eb56b9c5", - "savedPayload": { - "position": { - "x": 15551.023663531421, - "y": 22354.540237769736 - }, - "targetPosition": { - "x": 15414.826513609558, - "y": 22621.842195026245 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset", - "name": "run.js", - "id": "2ec5a110-3ecc-45ad-b410-9333ebc1840e" - } - } - }, - { - "type": "Asset Contribution Claim", - "name": "Superalgos Root setup.js", - "config": "{\n \"description\": \"\"\n}", - "project": "Governance", - "id": "2d42fb71-dbe7-4c68-8468-2ffa0eb1917c", - "savedPayload": { - "position": { - "x": 15682.128470866068, - "y": 22485.645045104382 - }, - "targetPosition": { - "x": 15414.826513609558, - "y": 22621.842195026245 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset", - "name": "setup.js", - "id": "9c99e3f4-4e00-403b-9ead-8bdee7aa6566" - } - } - }, - { - "type": "Asset Contribution Claim", - "name": "Superalgos Root uninstall.js", - "config": "{\n \"description\": \"\"\n}", - "project": "Governance", - "id": "1b1b7f42-c4d0-4a83-a72b-884928d58869", - "savedPayload": { - "position": { - "x": 15711.133015788098, - "y": 22668.772534538315 - }, - "targetPosition": { - "x": 15414.826513609558, - "y": 22621.842195026245 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset", - "name": "uninstall.js", - "id": "bce89a4d-9098-4b36-aafc-33b7ff58e030" - } - } - } - ], - "id": "7b51e89d-d513-4519-9d2b-5052dea1a177", - "savedPayload": { - "position": { - "x": 15414.826513609558, - "y": 22621.842195026245 - }, - "targetPosition": { - "x": 15202.694479253594, - "y": 22833.97422938221 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset Class", - "name": "Root", - "id": "1e82e5c7-9420-4205-a2c4-aab3f0f96565" - } - } - } - ], - "assetContributionClaims": [], - "id": "49919de2-3a7e-44a9-aeca-c206d3409c0b", - "savedPayload": { - "position": { - "x": 15202.694479253594, - "y": 22833.97422938221 - }, - "targetPosition": { - "x": 14990.56244489763, - "y": 23046.106263738173 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset Class", - "name": "Superalgos", - "id": "2201a417-cf22-47f4-b8df-8a16c63deb25" - } - } - } - ], - "assetContributionClaims": [], - "id": "894d3393-3ffd-4815-8eb2-316329686936", - "savedPayload": { - "position": { - "x": 14990.56244489763, - "y": 23046.106263738173 - }, - "targetPosition": { - "x": 14778.430410541667, - "y": 23258.238298094137 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "Asset Class", - "name": "Root", - "id": "b1ec362d-bfb5-4210-8edd-6ceb9ba52014" - } - } - } - ], - "featureClaimsFolders": [], - "positionClaimsFolders": [], - "tokensAwarded": { - "type": "Tokens Awarded", - "name": "New Tokens Awarded", + "userMentors": [ + { + "type": "User Mentor", + "name": "Julian-Molina", + "config": "{\n \"percentage\": 55\n}", "project": "Governance", - "id": "e4f73892-845d-4cbd-bb01-41c64f9eb45c", + "id": "5309bf7c-f30d-4252-a78d-9793a6ef70dc", "savedPayload": { "position": { - "x": 15078.430410541667, - "y": 23258.238298094137 + "x": 35777.75789403297, + "y": 11600.148851578582 }, "targetPosition": { - "x": 14778.430410541667, - "y": 23258.238298094137 + "x": 35481.451391854425, + "y": 11647.079191090652 }, "floatingObject": { "isPinned": false, @@ -528,107 +45,77 @@ }, "uiObject": { "isRunning": false - } + }, + "referenceParent": { + "type": "User Profile", + "name": "Julian-Molina", + "id": "1fd95e41-4b22-48d5-be3a-904c37afcb11" + }, + "referenceParentCombinedNodePath": [ + [ + "Julian-Molina", + "User Profile", + "Governance", + "1fd95e41-4b22-48d5-be3a-904c37afcb11" + ] + ] } }, - "id": "c2ad753c-49b6-4675-9fdd-02b6967aaab2", - "savedPayload": { - "position": { - "x": 14844.076124072424, - "y": 23593.280114692785 - }, - "targetPosition": { - "x": 14554.298376185703, - "y": 23515.634401162028 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false + { + "type": "User Mentor", + "name": "Luis-Fernando-Molina", + "config": "{}", + "project": "Governance", + "id": "bfdb49b0-f882-4602-abf2-16b00e53f888", + "savedPayload": { + "position": { + "x": 35748.753349110935, + "y": 11783.276341012515 + }, + "targetPosition": { + "x": 35481.451391854425, + "y": 11647.079191090652 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "User Profile", + "name": "Luis-Fernando-Molina", + "id": "148911b3-b2f3-44fb-8cb4-017991789132" + }, + "referenceParentCombinedNodePath": [ + [ + "Luis-Fernando-Molina", + "User Profile", + "Governance", + "148911b3-b2f3-44fb-8cb4-017991789132" + ] + ] } } - }, - "votingProgram": { - "type": "Voting Program", - "name": "New Voting Program", - "config": "{}", + ], + "tokensAwarded": { + "type": "Tokens Awarded", + "name": "New Tokens Awarded", "project": "Governance", - "votesSwitch": [ - { - "type": "Votes Switch", - "name": "New Votes Switch", - "config": "{}", - "project": "Governance", - "votesSwitch": [], - "claimVotesSwitch": [], - "weightVotesSwitch": [], - "userProfileVotesSwitch": [], - "id": "578d894c-20a7-4a79-b90e-ba383740d29d", - "savedPayload": { - "position": { - "x": 14844.076124072422, - "y": 24017.544183404712 - }, - "targetPosition": { - "x": 14631.944089716459, - "y": 23805.41214904875 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "tokensBonus": { - "type": "Tokens Bonus", - "name": "New Tokens Bonus", - "project": "Governance", - "id": "0cfaa435-6615-4df8-9d31-1fe5f21e0e61", - "savedPayload": { - "position": { - "x": 14554.298376185703, - "y": 24095.18989693547 - }, - "targetPosition": { - "x": 14631.944089716459, - "y": 23805.41214904875 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "4ac11744-6d87-413d-813e-f0963b156d8c", + "id": "53979029-3528-4266-bcaf-fd61784fda1e", "savedPayload": { "position": { - "x": 14631.944089716459, - "y": 23805.41214904875 + "x": 35617.64854177629, + "y": 11914.381148347162 }, "targetPosition": { - "x": 14554.298376185703, - "y": 23515.634401162028 + "x": 35481.451391854425, + "y": 11647.079191090652 }, "floatingObject": { "isPinned": false, @@ -643,176 +130,24 @@ } } }, - "id": "fcceb17d-2c2a-4e24-ab5d-e2a8a2798f90", - "savedPayload": { - "position": { - "x": 14554.298376185703, - "y": 23515.634401162028 - }, - "targetPosition": { - "x": 14342.16634182974, - "y": 23303.502366806064 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Token Power Switch", - "name": "User Relationships", - "config": "{\n \"percentage\": 25\n}", - "project": "Governance", - "tokenPowerSwitch": [], - "mentorshipProgram": { - "type": "Mentorship Program", - "name": "New Mentorship Program", - "config": "{}", + "tokensBonus": { + "type": "Tokens Bonus", + "name": "New Tokens Bonus", "project": "Governance", - "userMentors": [ - { - "type": "User Mentor", - "name": "Julian-Molina", - "config": "{\n \"percentage\": 60\n}", - "project": "Governance", - "id": "ef3f92a6-083d-4255-87d7-2a39fac1c6c0", - "savedPayload": { - "position": { - "x": 15130.501917517482, - "y": 23439.79726849358 - }, - "targetPosition": { - "x": 14954.16634182974, - "y": 23682.502366806064 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "User Profile", - "name": "Julian-Molina", - "id": "1fd95e41-4b22-48d5-be3a-904c37afcb11" - } - } - }, - { - "type": "User Mentor", - "name": "Luis-Fernando-Molina", - "config": "{}", - "project": "Governance", - "id": "58896ed7-e5b8-405c-99e7-45b509f6fe7e", - "savedPayload": { - "position": { - "x": 15239.483296718285, - "y": 23589.79726849358 - }, - "targetPosition": { - "x": 14954.16634182974, - "y": 23682.502366806064 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - }, - "referenceParent": { - "type": "User Profile", - "name": "Luis-Fernando-Molina", - "id": "148911b3-b2f3-44fb-8cb4-017991789132" - } - } - } - ], - "tokensAwarded": { - "type": "Tokens Awarded", - "name": "New Tokens Awarded", - "project": "Governance", - "id": "b711f3c8-3749-49f4-a7d6-accb88999cb8", - "savedPayload": { - "position": { - "x": 15239.483296718285, - "y": 23775.207465118547 - }, - "targetPosition": { - "x": 14954.16634182974, - "y": 23682.502366806064 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "tokensBonus": { - "type": "Tokens Bonus", - "name": "New Tokens Bonus", - "project": "Governance", - "id": "9123a5e4-dd71-4b82-95af-a8a04ac38303", - "savedPayload": { - "position": { - "x": 15130.501917517482, - "y": 23925.207465118547 - }, - "targetPosition": { - "x": 14954.16634182974, - "y": 23682.502366806064 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "055d1919-2b4b-40f2-8793-9cc5eb765a88", + "id": "40dcfe63-bcb3-4a51-a4a8-c8d8491660ad", "savedPayload": { "position": { - "x": 14342.16634182974, - "y": 23903.502366806064 + "x": 35434.52105234236, + "y": 11943.385693269192 }, "targetPosition": { - "x": 14342.16634182974, - "y": 23603.502366806064 + "x": 35481.451391854425, + "y": 11647.079191090652 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 @@ -822,20 +157,20 @@ } } }, - "id": "450eb600-3080-4d37-b8a2-12f71120573c", + "id": "4eacdbe0-c63d-49cb-bb2a-2c6a0a9392db", "savedPayload": { "position": { - "x": 14342.16634182974, - "y": 23603.502366806064 + "x": 35481.451391854425, + "y": 11647.079191090652 }, "targetPosition": { - "x": 14342.16634182974, - "y": 23303.502366806064 + "x": 35269.31935749846, + "y": 11434.947156734688 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 @@ -845,100 +180,2028 @@ } } }, - { - "type": "Token Power Switch", - "name": "Staking", - "config": "{\n \"percentage\": 10\n}", - "project": "Governance", - "tokenPowerSwitch": [], - "stakingProgram": { - "type": "Staking Program", - "name": "New Staking Program", - "config": "{}", - "project": "Governance", - "tokensAwarded": { - "type": "Tokens Awarded", - "name": "New Tokens Awarded", - "project": "Governance", - "id": "2a38bc32-bfa7-4f07-acdc-10eee69385d9", - "savedPayload": { - "position": { - "x": 14990.56244489763, - "y": 24318.898469873955 - }, - "targetPosition": { - "x": 14778.430410541667, - "y": 24106.76643551799 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "02e75b99-0944-44dd-a434-9e307bdc7935", - "savedPayload": { - "position": { - "x": 13917.902273117812, - "y": 23727.76643551799 - }, - "targetPosition": { - "x": 14130.034307473776, - "y": 23515.634401162028 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } + "id": "e9b2fede-f258-4a78-a755-4b5e8be675f9", + "savedPayload": { + "position": { + "x": 35269.31935749846, + "y": 11434.947156734688 }, - "id": "8f44d9ab-8ce6-4336-8b0e-0323d7440e75", - "savedPayload": { - "position": { - "x": 14130.034307473776, - "y": 23515.634401162028 - }, - "targetPosition": { - "x": 14342.16634182974, - "y": 23303.502366806064 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } + "targetPosition": { + "x": 35057.1873231425, + "y": 11222.815122378724 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false } } - ], + }, + "votesAndClaimsPrograms": { + "type": "Votes And Claims Programs", + "name": "New Votes And Claims Programs", + "config": "{}", + "project": "Governance", + "votingProgram": { + "type": "Voting Program", + "name": "New Voting Program", + "config": "{}", + "project": "Governance", + "votesSwitch": [ + { + "type": "Votes Switch", + "name": "New Votes Switch", + "config": "{}", + "project": "Governance", + "votesSwitch": [], + "claimVotesSwitch": [ + { + "type": "Claim Votes Switch", + "name": "New Claim Votes Switch", + "config": "{}", + "project": "Governance", + "claimVotesSwitch": [], + "positionClaimVotes": [], + "assetClaimVotes": [], + "featureClaimVotes": [], + "id": "fd6d6874-6e8d-46f3-83bf-9f0954c37d65", + "savedPayload": { + "position": { + "x": 35766.99494427783, + "y": 11932.622743514055 + }, + "targetPosition": { + "x": 35466.99494427783, + "y": 11932.622743514055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "weightVotesSwitch": [ + { + "type": "Weight Votes Switch", + "name": "New Weight Votes Switch", + "config": "{}", + "project": "Governance", + "weightVotesSwitch": [], + "poolWeightVotes": [], + "assetWeightVotes": [], + "featureWeightVotes": [], + "positionWeightVotes": [], + "id": "ef791b4a-2bcc-42fa-ba52-c15750cf8ed6", + "savedPayload": { + "position": { + "x": 35616.99494427783, + "y": 12192.430364649386 + }, + "targetPosition": { + "x": 35466.99494427783, + "y": 11932.622743514055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "userProfileVotesSwitch": [], + "id": "63cc30a6-1f25-4421-9984-1346bdcf6f6e", + "savedPayload": { + "position": { + "x": 35466.99494427783, + "y": 11932.622743514055 + }, + "targetPosition": { + "x": 35207.1873231425, + "y": 11782.622743514055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "tokensBonus": { + "type": "Tokens Bonus", + "name": "New Tokens Bonus", + "project": "Governance", + "id": "68a1483e-b94a-4f26-9d3b-d95c8da9a655", + "savedPayload": { + "position": { + "x": 35207.1873231425, + "y": 12082.622743514055 + }, + "targetPosition": { + "x": 35207.1873231425, + "y": 11782.622743514055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "6b932309-5e3b-4e49-9ea3-c73fa127b1d9", + "savedPayload": { + "position": { + "x": 35207.1873231425, + "y": 11782.622743514055 + }, + "targetPosition": { + "x": 35057.1873231425, + "y": 11522.815122378724 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "claimsProgram": { + "type": "Claims Program", + "name": "New Claims Program", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [ + { + "type": "Asset Claims Folder", + "name": "New Asset Claims Folder", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [ + { + "type": "Asset Claims Folder", + "name": "Launch-Scripts Asset Class", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [], + "assetContributionClaims": [ + { + "type": "Asset Contribution Claim", + "name": "Superalgos Launch-Scripts create-shortcut.js", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "017aca18-d5c9-4abb-a496-3406b829b01b", + "savedPayload": { + "position": { + "x": 23236.230369266268, + "y": 29912.816858182097 + }, + "targetPosition": { + "x": 22950.913414377723, + "y": 30005.52195649458 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "create-shortcut.js", + "id": "7998312a-e903-491a-b2cb-943f38e782ae" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Launch-Scripts", + "Assets" + ], + [ + "Launch-Scripts", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Launch-Scripts", + "Asset Class" + ], + [ + "create-shortcut.js", + "Asset" + ] + ] + } + }, + { + "type": "Asset Contribution Claim", + "name": "Superalgos Launch-Scripts launch-linux-mac.sh", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "e895abcd-c128-4f6e-8819-2004c7344183", + "savedPayload": { + "position": { + "x": 23236.230369266268, + "y": 30098.227054807063 + }, + "targetPosition": { + "x": 22950.913414377723, + "y": 30005.52195649458 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "launch-linux-mac.sh", + "id": "e96a3ea1-8580-4cd1-8032-5ff8c19f2312" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Launch-Scripts", + "Assets" + ], + [ + "Launch-Scripts", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Launch-Scripts", + "Asset Class" + ], + [ + "launch-linux-mac.sh", + "Asset" + ] + ] + } + }, + { + "type": "Asset Contribution Claim", + "name": "Superalgos Launch-Scripts launch-windows.bat", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "7cf4712d-0ae0-4c28-bcf7-a122d9c5bc57", + "savedPayload": { + "position": { + "x": 23127.248990065465, + "y": 30248.227054807063 + }, + "targetPosition": { + "x": 22950.913414377723, + "y": 30005.52195649458 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "launch-windows.bat", + "id": "58c7a50e-ae5e-4430-89bc-23d2631a5642" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Launch-Scripts", + "Assets" + ], + [ + "Launch-Scripts", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Launch-Scripts", + "Asset Class" + ], + [ + "launch-windows.bat", + "Asset" + ] + ] + } + }, + { + "type": "Asset Contribution Claim", + "name": "Superalgos Launch-Scripts superalgos.ico", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "a8f50d1f-c49a-482a-973a-62ceff1b3f26", + "savedPayload": { + "position": { + "x": 22950.913414377723, + "y": 30305.52195649458 + }, + "targetPosition": { + "x": 22950.913414377723, + "y": 30005.52195649458 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "superalgos.ico", + "id": "24df883e-ebf1-41ed-b2a5-69a3707e65cc" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Launch-Scripts", + "Assets" + ], + [ + "Launch-Scripts", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Launch-Scripts", + "Asset Class" + ], + [ + "superalgos.ico", + "Asset" + ] + ] + } + } + ], + "id": "e7b48c45-ee92-4c8d-b3f7-3dbcf7cab22d", + "savedPayload": { + "position": { + "x": 35322.652596285385, + "y": 12119.059888052163 + }, + "targetPosition": { + "x": 35029.20831606524, + "y": 12056.686380806836 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset Class", + "name": "Launch-Scripts", + "id": "37811a42-dc4f-4140-9f24-9d4c793441cb" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Launch-Scripts", + "Assets" + ], + [ + "Launch-Scripts", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Launch-Scripts", + "Asset Class" + ] + ] + } + }, + { + "type": "Asset Claims Folder", + "name": "Root Asset Class", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [], + "assetContributionClaims": [ + { + "type": "Asset Contribution Claim", + "name": "Superalgos Root .gitignore", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "34bab09e-6e60-4686-84fe-69574391d7d9", + "savedPayload": { + "position": { + "x": 23196.910070435766, + "y": 29968.001611658256 + }, + "targetPosition": { + "x": 22908.9474979729, + "y": 30052.129828450055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": ".gitignore", + "id": "367ce04e-3a6e-4bce-830b-2d35cbd36c1a" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Root", + "Assets" + ], + [ + "Root", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Root", + "Asset Class" + ], + [ + ".gitignore", + "Asset" + ] + ] + } + }, + { + "type": "Asset Contribution Claim", + "name": "Superalgos Root Environment.js", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "064e8250-8af5-472f-b412-db1e15a561eb", + "savedPayload": { + "position": { + "x": 23204.894676149954, + "y": 30101.275201874596 + }, + "targetPosition": { + "x": 22908.9474979729, + "y": 30052.129828450055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "Environment.js", + "id": "edc37ed3-4424-4c5b-bd9d-fb4960cab53d" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Root", + "Assets" + ], + [ + "Root", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Root", + "Asset Class" + ], + [ + "Environment.js", + "Asset" + ] + ] + } + }, + { + "type": "Asset Contribution Claim", + "name": "Superalgos Root README.md", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "543f7676-dc4e-44f9-a3fb-74078bf74b86", + "savedPayload": { + "position": { + "x": 23154.26331367223, + "y": 30224.814948155756 + }, + "targetPosition": { + "x": 22908.9474979729, + "y": 30052.129828450055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "README.md", + "id": "a5ee087a-9889-41fc-b0c5-13a0e40cb7e8" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Root", + "Assets" + ], + [ + "Root", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Root", + "Asset Class" + ], + [ + "README.md", + "Asset" + ] + ] + } + }, + { + "type": "Asset Contribution Claim", + "name": "Superalgos Root run.js", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "28112c52-67b6-462c-8ed4-e0eedc2ff1fc", + "savedPayload": { + "position": { + "x": 23055.044145294207, + "y": 30314.152288635196 + }, + "targetPosition": { + "x": 22908.9474979729, + "y": 30052.129828450055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "run.js", + "id": "2ec5a110-3ecc-45ad-b410-9333ebc1840e" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Root", + "Assets" + ], + [ + "Root", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Root", + "Asset Class" + ], + [ + "run.js", + "Asset" + ] + ] + } + }, + { + "type": "Asset Contribution Claim", + "name": "Superalgos Root setup.js", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "bd26ddd4-4055-4a8f-a9ee-0f466e425a5c", + "savedPayload": { + "position": { + "x": 22926.888744156407, + "y": 30351.592867380376 + }, + "targetPosition": { + "x": 22908.9474979729, + "y": 30052.129828450055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "setup.js", + "id": "9c99e3f4-4e00-403b-9ead-8bdee7aa6566" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Root", + "Assets" + ], + [ + "Root", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Root", + "Asset Class" + ], + [ + "setup.js", + "Asset" + ] + ] + } + }, + { + "type": "Asset Contribution Claim", + "name": "Superalgos Root uninstall.js", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "32c19574-470e-408a-bd25-62f003ddb4fc", + "savedPayload": { + "position": { + "x": 22795.17985917702, + "y": 30329.721118592253 + }, + "targetPosition": { + "x": 22908.9474979729, + "y": 30052.129828450055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "uninstall.js", + "id": "bce89a4d-9098-4b36-aafc-33b7ff58e030" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Root", + "Assets" + ], + [ + "Root", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Root", + "Asset Class" + ], + [ + "uninstall.js", + "Asset" + ] + ] + } + } + ], + "id": "9f0683b6-d36b-498c-b86f-d1536a8f5ed3", + "savedPayload": { + "position": { + "x": 35229.9474979729, + "y": 12279.629828450054 + }, + "targetPosition": { + "x": 35029.20831606524, + "y": 12056.686380806836 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset Class", + "name": "Root", + "id": "1e82e5c7-9420-4205-a2c4-aab3f0f96565" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-Root", + "Assets" + ], + [ + "Root", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Root", + "Asset Class" + ] + ] + } + }, + { + "type": "Asset Claims Folder", + "name": "UI Asset Class", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [], + "assetContributionClaims": [ + { + "type": "Asset Contribution Claim", + "name": "Superalgos UI Utilities.js", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "6f1f8e83-7e40-46d7-88c0-bfd833e623ca", + "savedPayload": { + "position": { + "x": 22770.925394025835, + "y": 30425.8995180278 + }, + "targetPosition": { + "x": 22739.566855045538, + "y": 30127.54294941732 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "Utilities.js", + "id": "ce6f4984-e936-4268-80c6-d0f9e6663174" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-UI", + "Assets" + ], + [ + "User Interface", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "UI", + "Asset Class" + ], + [ + "Utilities.js", + "Asset" + ] + ] + } + } + ], + "id": "641119f8-feb3-4c19-846b-d3483bcb5427", + "savedPayload": { + "position": { + "x": 35060.56685504554, + "y": 12355.042949417317 + }, + "targetPosition": { + "x": 35029.20831606524, + "y": 12056.686380806836 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset Class", + "name": "UI", + "id": "9c087e41-cf3d-4326-90fe-0309450e2577" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-UI", + "Assets" + ], + [ + "User Interface", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "UI", + "Asset Class" + ] + ] + } + }, + { + "type": "Asset Claims Folder", + "name": "Client Asset Class", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [ + { + "type": "Asset Claims Folder", + "name": "WebServer Asset Class", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [ + { + "type": "Asset Claims Folder", + "name": "css Asset Class", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [], + "assetContributionClaims": [ + { + "type": "Asset Contribution Claim", + "name": "WebServer css tutorial.css", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "a8ac27da-57e0-4c62-90ae-584f0d11e4c2", + "savedPayload": { + "position": { + "x": 23165.639505612944, + "y": 30715.728790610436 + }, + "targetPosition": { + "x": 22922.93440730046, + "y": 30539.393214922693 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "tutorial.css", + "id": "457a3df0-42d6-43c4-bb11-c6c21b03f53c" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-CL", + "Assets" + ], + [ + "New Asset Class", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Client", + "Asset Class" + ], + [ + "WebServer", + "Asset Class" + ], + [ + "css", + "Asset Class" + ], + [ + "tutorial.css", + "Asset" + ] + ] + } + } + ], + "id": "a3621372-7816-4000-89c9-629879282abe", + "savedPayload": { + "position": { + "x": 22922.93440730046, + "y": 30539.393214922693 + }, + "targetPosition": { + "x": 22680.22930898798, + "y": 30363.05763923495 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset Class", + "name": "css", + "id": "ef180183-5878-41e3-8a80-acb9323c6bb1" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-CL", + "Assets" + ], + [ + "New Asset Class", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Client", + "Asset Class" + ], + [ + "WebServer", + "Asset Class" + ], + [ + "css", + "Asset Class" + ] + ] + } + }, + { + "type": "Asset Claims Folder", + "name": "Images Asset Class", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [ + { + "type": "Asset Claims Folder", + "name": "Tutorial Asset Class", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [ + { + "type": "Asset Claims Folder", + "name": "Gifs Asset Class", + "config": "{}", + "project": "Governance", + "assetClaimsFolders": [], + "assetContributionClaims": [], + "id": "2fb8dc15-512a-4510-bdc4-f61b9ed62f40", + "savedPayload": { + "position": { + "x": 22586.153692047086, + "y": 31258.127345066394 + }, + "targetPosition": { + "x": 22617.512231027384, + "y": 30959.770776455913 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset Class", + "name": "Gifs", + "id": "e2b5f4d3-ca0b-46ae-b2ce-245cb8640b0c" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-CL", + "Assets" + ], + [ + "New Asset Class", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Client", + "Asset Class" + ], + [ + "WebServer", + "Asset Class" + ], + [ + "Images", + "Asset Class" + ], + [ + "Tutorial", + "Asset Class" + ], + [ + "Gifs", + "Asset Class" + ] + ] + } + } + ], + "assetContributionClaims": [], + "id": "b417d6aa-2b4b-45e1-b186-9064ffd3c2b6", + "savedPayload": { + "position": { + "x": 22617.512231027384, + "y": 30959.770776455913 + }, + "targetPosition": { + "x": 22648.87077000768, + "y": 30661.41420784543 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset Class", + "name": "Tutorial", + "id": "3f6467e6-9cec-45e1-b1b4-3d1a6ebb1b16" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-CL", + "Assets" + ], + [ + "New Asset Class", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Client", + "Asset Class" + ], + [ + "WebServer", + "Asset Class" + ], + [ + "Images", + "Asset Class" + ], + [ + "Tutorial", + "Asset Class" + ] + ] + } + } + ], + "assetContributionClaims": [], + "id": "fe8c28af-b2c9-45ee-ad52-d3fa3dcbe92a", + "savedPayload": { + "position": { + "x": 22648.87077000768, + "y": 30661.41420784543 + }, + "targetPosition": { + "x": 22680.22930898798, + "y": 30363.05763923495 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset Class", + "name": "Images", + "id": "c9f29f3c-9d11-4ea7-ae79-88887a04d417" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-CL", + "Assets" + ], + [ + "New Asset Class", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Client", + "Asset Class" + ], + [ + "WebServer", + "Asset Class" + ], + [ + "Images", + "Asset Class" + ] + ] + } + } + ], + "assetContributionClaims": [], + "id": "b72a56be-8aa2-45ce-9c95-d3772ac6ed85", + "savedPayload": { + "position": { + "x": 22680.22930898798, + "y": 30363.05763923495 + }, + "targetPosition": { + "x": 22558.20831606524, + "y": 30088.99400194217 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset Class", + "name": "WebServer", + "id": "9004e0d8-db5b-4198-9f63-7332261554ef" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-CL", + "Assets" + ], + [ + "New Asset Class", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Client", + "Asset Class" + ], + [ + "WebServer", + "Asset Class" + ] + ] + } + } + ], + "assetContributionClaims": [ + { + "type": "Asset Contribution Claim", + "name": "Superalgos Client client.js", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "3173b56f-82a7-42fd-a54a-049e8e78393d", + "savedPayload": { + "position": { + "x": 22495.834808819913, + "y": 30382.43828216231 + }, + "targetPosition": { + "x": 22558.20831606524, + "y": 30088.99400194217 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "client.js", + "id": "10312c78-63f8-4840-826e-14cf81e4edb7" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-CL", + "Assets" + ], + [ + "New Asset Class", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Client", + "Asset Class" + ], + [ + "client.js", + "Asset" + ] + ] + } + }, + { + "type": "Asset Contribution Claim", + "name": "Superalgos Client package-lock.json", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "cacc36ed-34bc-443f-bc3a-81b67ef72eb9", + "savedPayload": { + "position": { + "x": 22335.264868422022, + "y": 30289.73318384983 + }, + "targetPosition": { + "x": 22558.20831606524, + "y": 30088.99400194217 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "package-lock.json", + "id": "22997708-372d-489f-8732-868b4ae67bee" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-CL", + "Assets" + ], + [ + "New Asset Class", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Client", + "Asset Class" + ], + [ + "package-lock.json", + "Asset" + ] + ] + } + }, + { + "type": "Asset Contribution Claim", + "name": "Superalgos Client package.json", + "config": "{\n \"description\": \"\"\n}", + "project": "Governance", + "id": "bab9262b-b085-43ce-9349-24d38a83394d", + "savedPayload": { + "position": { + "x": 22259.85174745476, + "y": 30120.352540922468 + }, + "targetPosition": { + "x": 22558.20831606524, + "y": 30088.99400194217 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset", + "name": "package.json", + "id": "487ff670-8faa-4efa-8466-0851b102b418" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-CL", + "Assets" + ], + [ + "New Asset Class", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Client", + "Asset Class" + ], + [ + "package.json", + "Asset" + ] + ] + } + } + ], + "id": "7f0b653e-b368-4a77-b7e0-1619e54a9ebe", + "savedPayload": { + "position": { + "x": 34879.20831606524, + "y": 12316.494001942167 + }, + "targetPosition": { + "x": 35029.20831606524, + "y": 12056.686380806836 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Asset Class", + "name": "Client", + "id": "3a149378-35d5-44e8-99c2-33a3b4d8e718" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos-CL", + "Assets" + ], + [ + "New Asset Class", + "Asset Class" + ], + [ + "Superalgos", + "Asset Class" + ], + [ + "Client", + "Asset Class" + ] + ] + } + } + ], + "assetContributionClaims": [], + "id": "ee4d9bd4-4652-4957-abee-e2c1ada381be", + "savedPayload": { + "position": { + "x": 35029.20831606524, + "y": 12056.686380806836 + }, + "targetPosition": { + "x": 34907.1873231425, + "y": 11782.622743514055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "featureClaimsFolders": [ + { + "type": "Feature Claims Folder", + "name": "New Feature Claims Folder", + "config": "{}", + "project": "Governance", + "featureClaimsFolders": [], + "featureContributionClaims": [], + "id": "efbab046-03a6-4093-9551-9fa593731b72", + "savedPayload": { + "position": { + "x": 34844.81381589717, + "y": 12076.067023734196 + }, + "targetPosition": { + "x": 34907.1873231425, + "y": 11782.622743514055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "positionClaimsFolders": [ + { + "type": "Position Claims Folder", + "name": "New Position Claims Folder", + "config": "{}", + "project": "Governance", + "positionClaimsFolders": [ + { + "type": "Position Claims Folder", + "name": "Community Management Position Class", + "config": "{}", + "project": "Governance", + "positionClaimsFolders": [], + "positionContributionClaims": [ + { + "type": "Position Contribution Claim", + "name": "Moderator Community Management", + "config": "{}", + "project": "Governance", + "id": "704fded5-a71b-4b2e-b010-e6231a9d7d5f", + "savedPayload": { + "position": { + "x": 34757.1873231425, + "y": 12642.430364649386 + }, + "targetPosition": { + "x": 34757.1873231425, + "y": 12342.430364649386 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Position", + "name": "Moderator", + "id": "6e141ab6-cc79-44b6-a58a-60b6480f706e" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos", + "Positions" + ], + [ + "Rewarded Positions", + "Position Class" + ], + [ + "Community Management", + "Position Class" + ], + [ + "Moderator", + "Position" + ] + ] + } + } + ], + "id": "6f40923c-dc32-483f-a393-e9822195243d", + "savedPayload": { + "position": { + "x": 34757.1873231425, + "y": 12342.430364649386 + }, + "targetPosition": { + "x": 34757.1873231425, + "y": 12042.430364649386 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Position Class", + "name": "Community Management", + "id": "35b790f0-c567-498c-83fd-ac0aacd8720b" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos", + "Positions" + ], + [ + "Rewarded Positions", + "Position Class" + ], + [ + "Community Management", + "Position Class" + ] + ] + } + }, + { + "type": "Position Claims Folder", + "name": "Core Team Position Class", + "config": "{}", + "project": "Governance", + "positionClaimsFolders": [], + "positionContributionClaims": [ + { + "type": "Position Contribution Claim", + "name": "Member Core Team", + "config": "{}", + "project": "Governance", + "id": "892f1b17-4107-45b8-883f-70343852aa8f", + "savedPayload": { + "position": { + "x": 34237.57208087183, + "y": 12342.430364649386 + }, + "targetPosition": { + "x": 34497.379702007165, + "y": 12192.430364649386 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Position", + "name": "Member", + "id": "63bbf7f7-2d71-4075-8498-f09f754d8c0b" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos", + "Positions" + ], + [ + "Rewarded Positions", + "Position Class" + ], + [ + "Core Team", + "Position Class" + ], + [ + "Member", + "Position" + ] + ] + } + } + ], + "id": "8713d06c-c3c2-4cb2-91b2-1483f8087b57", + "savedPayload": { + "position": { + "x": 34497.379702007165, + "y": 12192.430364649386 + }, + "targetPosition": { + "x": 34757.1873231425, + "y": 12042.430364649386 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Position Class", + "name": "Core Team", + "id": "0dc6759d-459b-45ff-83c5-220b7a323f75" + }, + "referenceParentCombinedNodePath": [ + [ + "Superalgos", + "Positions" + ], + [ + "Rewarded Positions", + "Position Class" + ], + [ + "Core Team", + "Position Class" + ] + ] + } + } + ], + "positionContributionClaims": [], + "id": "0945e16c-9222-4593-b53b-29720bf0c6b9", + "savedPayload": { + "position": { + "x": 34684.243875499276, + "y": 11983.361925421714 + }, + "targetPosition": { + "x": 34907.1873231425, + "y": 11782.622743514055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "tokensAwarded": { + "type": "Tokens Awarded", + "name": "New Tokens Awarded", + "project": "Governance", + "id": "ab59ba29-688b-4ff7-a136-01a95fdfd1fe", + "savedPayload": { + "position": { + "x": 34608.83075453201, + "y": 11813.981282494351 + }, + "targetPosition": { + "x": 34907.1873231425, + "y": 11782.622743514055 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "2adac02b-9f76-4c78-8adf-47d3ad8d0f45", + "savedPayload": { + "position": { + "x": 34907.1873231425, + "y": 11782.622743514055 + }, + "targetPosition": { + "x": 35057.1873231425, + "y": 11522.815122378724 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "7241ec8c-6b20-4128-bf1a-cf77e38b5591", + "savedPayload": { + "position": { + "x": 35057.1873231425, + "y": 11522.815122378724 + }, + "targetPosition": { + "x": 35057.1873231425, + "y": 11222.815122378724 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "financialPrograms": { + "type": "Financial Programs", + "name": "New Financial Programs", + "config": "{\n \"percentage\": 10\n}", + "project": "Governance", + "delegationProgram": { + "type": "Delegation Program", + "name": "New Delegation Program", + "config": "{}", + "project": "Governance", + "delegatePowerSwitch": [], + "tokensBonus": { + "type": "Tokens Bonus", + "name": "New Tokens Bonus", + "project": "Governance", + "id": "bc5ed26e-9007-453a-aed5-6ff085a58d8c", + "savedPayload": { + "position": { + "x": 34420.79122007461, + "y": 11859.211225446616 + }, + "targetPosition": { + "x": 34632.92325443057, + "y": 11647.079191090652 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "5b2bb54d-9de2-4234-9507-5c50f54617fb", + "savedPayload": { + "position": { + "x": 34632.92325443057, + "y": 11647.079191090652 + }, + "targetPosition": { + "x": 34845.055288786534, + "y": 11434.947156734688 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + "id": "8a9806a8-eb5f-4337-8e73-db0c132cc62b", + "savedPayload": { + "position": { + "x": 34845.055288786534, + "y": 11434.947156734688 + }, + "targetPosition": { + "x": 35057.1873231425, + "y": 11222.815122378724 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, "id": "d5ad1e6a-c6ea-465e-ae14-99fb54534baa", "savedPayload": { "position": { - "x": 14342.16634182974, - "y": 23303.502366806064 + "x": 35057.1873231425, + "y": 11222.815122378724 }, "targetPosition": { - "x": 14342.16634182974, - "y": 23003.502366806064 + "x": 35057.1873231425, + "y": 10922.815122378724 }, "floatingObject": { "isPinned": false, @@ -960,12 +2223,12 @@ "id": "9f832420-03f7-4e4b-8973-c3520bd6f263", "savedPayload": { "position": { - "x": 14042.16634182974, - "y": 23003.502366806064 + "x": 34757.1873231425, + "y": 10922.815122378724 }, "targetPosition": { - "x": 14342.16634182974, - "y": 23003.502366806064 + "x": 35057.1873231425, + "y": 10922.815122378724 }, "floatingObject": { "isPinned": false, @@ -983,12 +2246,12 @@ "id": "107d3e44-1685-4540-8316-3bc6591298e9", "savedPayload": { "position": { - "x": 14342.16634182974, - "y": 23003.502366806064 + "x": 35057.1873231425, + "y": 10922.815122378724 }, "targetPosition": { - "x": 14342.16634182974, - "y": 23003.502366806064 + "x": 35057.1873231425, + "y": 10922.815122378724 }, "floatingObject": { "isPinned": false, diff --git a/Projects/Governance/Plugins/Workspaces/Token-Distribution-Superalgos.json b/Projects/Governance/Plugins/Workspaces/Token-Distribution-Superalgos.json index 95d42504d..e8135d40b 100644 --- a/Projects/Governance/Plugins/Workspaces/Token-Distribution-Superalgos.json +++ b/Projects/Governance/Plugins/Workspaces/Token-Distribution-Superalgos.json @@ -154,7 +154,7 @@ "spaceSettings": { "type": "Space Settings", "name": "New Space Settings", - "config": "{\n \"indexContent\": false\n}", + "config": "{\n \"indexContent\": true\n}", "project": "Foundations", "id": "4124c674-c5fe-41d9-94b9-d669753188b7", "savedPayload": { @@ -749,61 +749,6 @@ "config": "{\n \"project\": \"Governance\",\n \"fileName\": \"Luis-Fernando-Molina\",\n \"folderName\": \"User-Profiles\",\n \"nodeType\": \"User Profile\",\n \"saveWithWorkspace\": false\n}", "project": "Foundations", "id": "cccfce2d-3497-419b-8c32-4cd62fb1b33f", - "savedPayload": { - "position": { - "x": 35497.804212864474, - "y": 10958.847264482405 - }, - "targetPosition": { - "x": 35605.314597728066, - "y": 10678.773136533244 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Plugin File", - "name": "harrellbm", - "config": "{\n \"project\": \"Governance\",\n \"fileName\": \"harrellbm\",\n \"folderName\": \"User-Profiles\",\n \"nodeType\": \"User Profile\",\n \"saveWithWorkspace\": false\n}", - "project": "Foundations", - "pluginFilePosition": { - "type": "Plugin File Position", - "name": "harrellbm", - "project": "Foundations", - "id": "fef02d09-0042-4986-8223-c96245210e11", - "savedPayload": { - "position": { - "x": 35057.1873231425, - "y": 10922.815122378724 - }, - "targetPosition": { - "x": 35331.25096043528, - "y": 10800.794129455984 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "1e91a36b-9f7c-44d7-9414-bcc094770eb4", "savedPayload": { "position": { "x": 35331.25096043528, @@ -825,61 +770,6 @@ "isRunning": false } } - }, - { - "type": "Plugin File", - "name": "Julian-Molina", - "config": "{\n \"project\": \"Governance\",\n \"fileName\": \"Julian-Molina\",\n \"folderName\": \"User-Profiles\",\n \"nodeType\": \"User Profile\",\n \"saveWithWorkspace\": false\n}", - "project": "Foundations", - "pluginFilePosition": { - "type": "Plugin File Position", - "name": "Julian-Molina", - "project": "Foundations", - "id": "b4782021-ae5e-4354-8188-00d4d828fc16", - "savedPayload": { - "position": { - "x": 35045.16634182974, - "y": 10463.752366806064 - }, - "targetPosition": { - "x": 35325.2404697789, - "y": 10571.262751669654 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "fe69667f-8465-4afd-8cef-cb81ceab7747", - "savedPayload": { - "position": { - "x": 35325.2404697789, - "y": 10571.262751669654 - }, - "targetPosition": { - "x": 35605.314597728066, - "y": 10678.773136533244 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } } ], "id": "2c899fe9-1335-4e9f-b2d0-45a83e478fd0", @@ -895,7 +785,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 @@ -975,8 +865,8 @@ "id": "92ef88cd-4921-4a11-ab45-3ae57c6c903c", "savedPayload": { "position": { - "x": 35380.88108740214, - "y": 10537.166137337546 + "x": 35393.96803839588, + "y": 10556.752143610503 }, "targetPosition": { "x": 35636.67313670836, @@ -1003,8 +893,8 @@ "id": "68637b02-e75b-4249-93a5-fc49f5a178db", "savedPayload": { "position": { - "x": 35340.36663452982, - "y": 10427.34690743483 + "x": 35351.356181819814, + "y": 10473.121666235245 }, "targetPosition": { "x": 35636.67313670836, @@ -1031,8 +921,8 @@ "id": "fbca16fe-9d01-42dd-8e3a-4c844cd5b7e2", "savedPayload": { "position": { - "x": 35344.96216058906, - "y": 10310.38295876599 + "x": 35336.67313670836, + "y": 10380.41656792276 }, "targetPosition": { "x": 35636.67313670836, @@ -1059,8 +949,8 @@ "id": "5cb51a14-6b94-400e-a421-494a8cdc0a96", "savedPayload": { "position": { - "x": 35393.96803839588, - "y": 10204.080992235018 + "x": 35351.356181819814, + "y": 10287.711469610276 }, "targetPosition": { "x": 35636.67313670836, @@ -1087,8 +977,8 @@ "id": "273c0c81-8d96-485e-a482-7b146d068d05", "savedPayload": { "position": { - "x": 35479.923567293576, - "y": 10124.624518616532 + "x": 35393.96803839588, + "y": 10204.080992235018 }, "targetPosition": { "x": 35636.67313670836, @@ -1115,8 +1005,8 @@ "id": "febde55b-0351-4d8a-933b-082ed2cdb385", "savedPayload": { "position": { - "x": 35589.7427971963, - "y": 10084.11006574422 + "x": 35460.33756102062, + "y": 10137.711469610276 }, "targetPosition": { "x": 35636.67313670836, @@ -1143,8 +1033,64 @@ "id": "99887440-5fb5-46ed-88d6-d73d76e02c24", "savedPayload": { "position": { - "x": 35706.706745865136, - "y": 10088.705591803458 + "x": 35543.96803839588, + "y": 10095.099613034216 + }, + "targetPosition": { + "x": 35636.67313670836, + "y": 10380.41656792276 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Plugin File", + "name": "Superalgos-Marketing", + "config": "{\n \"project\": \"Governance\",\n \"fileName\": \"Superalgos-Marketing\",\n \"folderName\": \"Assets\",\n \"nodeType\": \"Assets\",\n \"saveWithWorkspace\": false\n}", + "project": "Foundations", + "id": "0a312222-3970-4274-804a-ccf0292a992d", + "savedPayload": { + "position": { + "x": 35636.67313670836, + "y": 10080.41656792276 + }, + "targetPosition": { + "x": 35636.67313670836, + "y": 10380.41656792276 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Plugin File", + "name": "Superalgos-Exchanges", + "config": "{\n \"project\": \"Governance\",\n \"fileName\": \"Superalgos-Exchanges\",\n \"folderName\": \"Assets\",\n \"nodeType\": \"Assets\",\n \"saveWithWorkspace\": false\n}", + "project": "Foundations", + "id": "2bf1c821-e0bf-4f23-81c3-ba298b465a3c", + "savedPayload": { + "position": { + "x": 35729.37823502085, + "y": 10095.099613034216 }, "targetPosition": { "x": 35636.67313670836, @@ -1234,7 +1180,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 @@ -1257,8 +1203,36 @@ "id": "d63c0780-7da9-43ec-ac21-f09715514b86", "savedPayload": { "position": { - "x": 35942.095312981444, - "y": 9960.039006389541 + "x": 35788.715781078405, + "y": 9984.331937707242 + }, + "targetPosition": { + "x": 35910.73677400115, + "y": 10258.395575000022 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Plugin File", + "name": "Superalgos-Marketing", + "config": "{\n \"project\": \"Governance\",\n \"fileName\": \"Superalgos-Marketing\",\n \"folderName\": \"Positions\",\n \"nodeType\": \"Positions\",\n \"saveWithWorkspace\": false\n}", + "project": "Foundations", + "id": "0d4c7172-6e98-4254-a1a1-06acc6d038ef", + "savedPayload": { + "position": { + "x": 36087.07234968889, + "y": 10015.690476687538 }, "targetPosition": { "x": 35910.73677400115, @@ -1291,7 +1265,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 @@ -1314,7 +1288,7 @@ "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, + "isCollapsed": true, "angleToParent": 1, "distanceToParent": 3, "arrangementStyle": 0 @@ -1377,331 +1351,80 @@ } }, { - "type": "APIs", - "name": "New APIs", - "project": "Foundations", - "githubAPI": { - "type": "Github API", - "name": "New Github API", - "config": "{\n \"username\": \"Luis-Fernando-Molina\",\n \"token\": \"\"\n}", - "project": "Foundations", - "id": "90d121ab-9f19-4437-a051-1222287085fc", - "savedPayload": { - "position": { - "x": 30499.125000000004, - "y": 10694.399380804953 - }, - "targetPosition": { - "x": 30199.125000000004, - "y": 10694.399380804953 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - "id": "23021bb7-9997-4fe6-8199-71ebf70aef76", - "savedPayload": { - "position": { - "x": 30199.125000000004, - "y": 10694.399380804953 - }, - "targetPosition": { - "x": 30199.125000000004, - "y": 10694.399380804953 - }, - "floatingObject": { - "isPinned": true, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Assets", - "name": "Marketing", - "config": "{\"folderPath\":\"\",\"codeName\":\"Superalgos\"}", - "project": "Governance", - "assetClasses": [ + "type": "Tutorial", + "name": "Creating Your User Profile Tutorial", + "config": "{\n \"icon\": {\n \"name\": \"governance\",\n \"project\": \"Governance\"\n },\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Better Together\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "tutorialSteps": [], + "tutorialTopics": [ { - "type": "Asset Class", - "name": "All", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [ + "type": "Tutorial Topic", + "name": "Getting Started", + "config": "{\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [], + "tutorialTopics": [ { - "type": "Asset Class", - "name": "Website", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [ + "type": "Tutorial Topic", + "name": "Before Starting", + "config": "{\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [ { - "type": "Asset Class", - "name": "Website Section", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Web Page", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "a9914aed-6a66-48ae-854b-43e499f801f5", - "savedPayload": { - "position": { - "x": 20415.225746868146, - "y": 37924.391169956136 - }, - "targetPosition": { - "x": 20232.597318165528, - "y": 38162.39717204351 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Web Page", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "657817dc-1b51-4aec-b2ab-92afd618db1e", - "savedPayload": { - "position": { - "x": 20530.03077657767, - "y": 38123.23931437749 - }, - "targetPosition": { - "x": 20232.597318165528, - "y": 38162.39717204351 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Web Page", - "config": "{\n \"description\": \"\",\n \"relativeWeight\": 0\n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "63cf00cf-8167-4be0-8738-5fb1d8840535", - "savedPayload": { - "position": { - "x": 20470.6033202529, - "y": 38345.02560074612 - }, - "targetPosition": { - "x": 20232.597318165528, - "y": 38162.39717204351 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "b7dd8a51-ba13-4e0c-86b2-ae1b952bc69c", + "type": "Tutorial Step", + "name": "Make sure You’re Comfortable", + "config": "{\n \"icon\": {\n \"name\": \"Pool\\\\pools\",\n \"project\": \"Governance\"\n },\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Make sure You’re Comfortable\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n },\n \"positionAtReferenceParent\": true\n}", + "project": "Education", + "id": "7c13abc2-27e4-4fe6-afd8-14cbc0b65c7d", "savedPayload": { "position": { - "x": 20232.597318165528, - "y": 38162.39717204351 + "x": 24309.264068711927, + "y": 24505.735931288073 }, "targetPosition": { - "x": 19935.163859753386, - "y": 38201.555029709525 + "x": 24097.132034355964, + "y": 24717.867965644036 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 }, "uiObject": { "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Website Section", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Web Page", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "24927650-a13f-4ffa-b0c1-d258d278ade3", - "savedPayload": { - "position": { - "x": 20415.225746868146, - "y": 38478.718889462914 - }, - "targetPosition": { - "x": 20117.792288456003, - "y": 38439.5610317969 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } }, - { - "type": "Asset Class", - "name": "Web Page", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "0312a437-1d29-4557-9703-5a640b4ed353", - "savedPayload": { - "position": { - "x": 20300.42071715862, - "y": 38677.56703388427 - }, - "targetPosition": { - "x": 20117.792288456003, - "y": 38439.5610317969 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } + "tutorial": { + "status": "Done" }, - { - "type": "Asset Class", - "name": "Web Page", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "12d8e11c-ecc9-42df-9552-c1cd2e1c9c2a", - "savedPayload": { - "position": { - "x": 20078.63443078999, - "y": 38736.99449020904 - }, - "targetPosition": { - "x": 20117.792288456003, - "y": 38439.5610317969 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "904833ca-457e-41eb-8ebb-a17a41f58bd3", - "savedPayload": { - "position": { - "x": 20117.792288456003, - "y": 38439.5610317969 + "referenceParent": { + "type": "Charting Space", + "name": "New Charting Space", + "id": "21d2ec55-9e56-4652-8e96-c7e451262c36" }, - "targetPosition": { - "x": 19935.163859753386, - "y": 38201.555029709525 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } + "referenceParentCombinedNodePath": [ + [ + "New Charting Space", + "Charting Space", + "Foundations", + "21d2ec55-9e56-4652-8e96-c7e451262c36" + ] + ] } } ], - "assets": [], - "id": "1ef4a5a5-0d5c-466b-b6fd-81ed87e20f12", + "tutorialTopics": [], + "id": "fb31f94d-8c05-4c1a-89b7-92d48946ad9e", "savedPayload": { "position": { - "x": 19935.163859753386, - "y": 38201.555029709525 + "x": 24097.132034355964, + "y": 24717.867965644036 }, "targetPosition": { - "x": 19658, - "y": 38086.75 + "x": 23885, + "y": 24930 }, "floatingObject": { "isPinned": false, @@ -1713,153 +1436,32 @@ }, "uiObject": { "isRunning": false + }, + "tutorial": { + "status": "Done" } } }, { - "type": "Asset Class", - "name": "Blog", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [ + "type": "Tutorial Topic", + "name": "Governance Overview", + "config": "{\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [ { - "type": "Asset Class", - "name": "Existing Blog Posts", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "Blog Post", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "07e80db6-6fdc-4167-b8b8-e48c4093b9bb", - "savedPayload": { - "position": { - "x": 20449.687530129406, - "y": 38298.882034355964 - }, - "targetPosition": { - "x": 20159.909782242685, - "y": 38376.52774788672 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset", - "name": "Blog Post", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "3eb27da8-c745-40bd-b432-4150be8ba86b", - "savedPayload": { - "position": { - "x": 20372.04181659865, - "y": 38588.659782242685 - }, - "targetPosition": { - "x": 20159.909782242685, - "y": 38376.52774788672 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "7f33b544-9bae-4a1f-b7a4-4f720a7620cb", + "type": "Tutorial Step", + "name": "One Token to Rule Them All", + "config": "{\n \"icon\": {\n \"name\": \"Programs\\\\staking-program\",\n \"project\": \"Governance\"\n },\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - One Token to Rule Them All\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n },\n \"positionAtReferenceParent\": true\n}", + "project": "Education", + "id": "33321959-1eb0-494c-8df3-94b1e47efdb3", "savedPayload": { "position": { - "x": 20159.909782242685, - "y": 38376.52774788672 + "x": 24361.335575687743, + "y": 24687.294901687517 }, "targetPosition": { - "x": 19870.132034355964, - "y": 38298.882034355964 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Post Rewards", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "How to install Superalgos and configure your Profile to get SA Tokens", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "1803145d-fb3c-4de9-8894-7e128072c5d5", - "savedPayload": { - "position": { - "x": 20025.42346141748, - "y": 38878.437530129406 - }, - "targetPosition": { - "x": 19947.77774788672, - "y": 38588.659782242685 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "8532e9fa-074e-49f7-b780-3ba750bf83da", - "savedPayload": { - "position": { - "x": 19947.77774788672, - "y": 38588.659782242685 - }, - "targetPosition": { - "x": 19870.132034355964, - "y": 38298.882034355964 + "x": 24185, + "y": 24930 }, "floatingObject": { "isPinned": false, @@ -1871,20 +1473,183 @@ }, "uiObject": { "isRunning": false + }, + "tutorial": { + "status": "Done" + }, + "referenceParent": { + "type": "Workspace", + "name": "Custom Charts Tutorials", + "id": "7f5b5bd1-ed0d-4fc9-a4e9-42e69e57f351" } } + }, + { + "type": "Tutorial Step", + "name": "With Tokens Comes Responsibility", + "config": "{\n \"icon\": {\n \"name\": \"governance\",\n \"project\": \"Governance\"\n },\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - With Tokens Comes Responsibility\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "a13ac48c-5743-4794-85bd-bf0794d9e1a2", + "savedPayload": { + "position": { + "x": 24470.316954888545, + "y": 24837.294901687517 + }, + "targetPosition": { + "x": 24185, + "y": 24930 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "tutorial": { + "status": "Done" + } + } + }, + { + "type": "Tutorial Step", + "name": "A Mighty Meritocracy", + "config": "{\n \"icon\": {\n \"name\": \"Position\\\\positions\",\n \"project\": \"Governance\"\n },\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"toggleMapView\": {\n \"view\": \"Off\"\n },\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - A Mighty Meritocracy\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n },\n \"positionAtReferenceParent\": true\n}", + "project": "Education", + "id": "d9b824fd-a201-40b8-8a60-d0c516d9634b", + "savedPayload": { + "position": { + "x": 24470.316954888545, + "y": 25022.705098312483 + }, + "targetPosition": { + "x": 24185, + "y": 24930 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "tutorial": { + "status": "Done" + }, + "referenceParent": { + "type": "Crypto Exchange", + "name": "Binance", + "id": "61ef0b8d-de6e-4e76-bdd5-996836760a4b" + }, + "referenceParentCombinedNodePath": [ + [ + "My Crypto Ecosystem", + "Crypto Ecosystem", + "Foundations", + "7217b56c-e854-4c06-8b8a-d5d3c05a153d" + ], + [ + "Tested", + "Crypto Exchanges", + "Foundations", + "e3879d63-6f8f-41a3-8ac3-0349c4361722" + ], + [ + "Binance", + "Crypto Exchange", + "Foundations", + "61ef0b8d-de6e-4e76-bdd5-996836760a4b" + ] + ] + } + }, + { + "type": "Tutorial Step", + "name": "A Worthy Contribution", + "config": "{\n \"icon\": {\n \"name\": \"Programs\\\\referral-program\",\n \"project\": \"Governance\"\n },\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - A Worthy Contribution\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n },\n \"positionAtReferenceParent\": true\n}", + "project": "Education", + "id": "a0d50140-b862-4b7e-9bc6-ed055b34a0bd", + "savedPayload": { + "position": { + "x": 24361.335575687743, + "y": 25172.705098312483 + }, + "targetPosition": { + "x": 24185, + "y": 24930 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "tutorial": { + "status": "Done" + }, + "referenceParent": { + "type": "Market", + "name": "BTC/USDT", + "id": "9a867bf0-a71d-445c-b99a-75b60bbdce09" + }, + "referenceParentCombinedNodePath": [ + [ + "My Crypto Ecosystem", + "Crypto Ecosystem", + "Foundations", + "7217b56c-e854-4c06-8b8a-d5d3c05a153d" + ], + [ + "Tested", + "Crypto Exchanges", + "Foundations", + "e3879d63-6f8f-41a3-8ac3-0349c4361722" + ], + [ + "Binance", + "Crypto Exchange", + "Foundations", + "61ef0b8d-de6e-4e76-bdd5-996836760a4b" + ], + [ + "New Exchange Markets", + "Exchange Markets", + "Foundations", + "2fd80894-900e-44ac-a1a7-56c14124f7a1" + ], + [ + "BTC/USDT", + "Market", + "Foundations", + "9a867bf0-a71d-445c-b99a-75b60bbdce09" + ] + ] + } } ], - "assets": [], - "id": "f90f32f6-8074-41e1-82fc-9aa9d038bd90", + "tutorialTopics": [], + "id": "eca95394-e23c-4464-a0a2-955e45fd9ca5", "savedPayload": { "position": { - "x": 19870.132034355964, - "y": 38298.882034355964 + "x": 24185, + "y": 24930 }, "targetPosition": { - "x": 19658, - "y": 38086.75 + "x": 23885, + "y": 24930 }, "floatingObject": { "isPinned": false, @@ -1896,270 +1661,102 @@ }, "uiObject": { "isRunning": false + }, + "tutorial": { + "status": "Done" } } }, { - "type": "Asset Class", - "name": "Videos", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [ + "type": "Tutorial Topic", + "name": "User Profile", + "config": "{\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [ { - "type": "Asset Class", - "name": "Youtube", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Superalgos Channel", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Existing Videos", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "Youtube Video", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "dc865943-b5b4-406d-ad41-7e27ce1f99a2", - "savedPayload": { - "position": { - "x": 20712.65920528029, - "y": 38993.888751303675 - }, - "targetPosition": { - "x": 20415.22574686815, - "y": 38954.73089363766 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset", - "name": "Youtube Video", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "c0c789a0-2c30-4ab5-a53d-5f05883a22cc", - "savedPayload": { - "position": { - "x": 20653.23174895552, - "y": 39137.35932234027 - }, - "targetPosition": { - "x": 20415.22574686815, - "y": 38954.73089363766 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "9da9772c-661b-455f-8735-704e21c092cb", - "savedPayload": { - "position": { - "x": 20415.22574686815, - "y": 38954.73089363766 - }, - "targetPosition": { - "x": 20138.061887114764, - "y": 38839.92586392813 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Videos Rewards", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "How to install Superalgos and configure your Profile to get SA Tokens", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "b3ad11a6-fd1f-4c78-b41e-acf22fdbf82d", - "savedPayload": { - "position": { - "x": 20367.67194653382, - "y": 39394.25358343491 - }, - "targetPosition": { - "x": 20252.866916824292, - "y": 39117.08972368152 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "54b204d1-3dee-4fbd-987c-89857320b44b", - "savedPayload": { - "position": { - "x": 20252.866916824292, - "y": 39117.08972368152 - }, - "targetPosition": { - "x": 20138.061887114764, - "y": 38839.92586392813 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "9d8d9ef1-3534-4fd6-9a90-f8fc1a8db7cc", - "savedPayload": { - "position": { - "x": 20138.061887114764, - "y": 38839.92586392813 - }, - "targetPosition": { - "x": 19955.433458412146, - "y": 38601.91986184076 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "c5a8db55-68f9-4ce0-87bd-1ef6324bf7e1", + "type": "Tutorial Step", + "name": "What’s in a Profile?", + "config": "{\n \"icon\": {\n \"name\": \"User\\\\user-profile\",\n \"project\": \"Governance\"\n },\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - What’s in a Profile?\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n },\n \"positionAtReferenceParent\": true\n}", + "project": "Education", + "id": "df575afd-af40-4725-a9a0-d0e3bdd64572", "savedPayload": { "position": { - "x": 19955.433458412146, - "y": 38601.91986184076 + "x": 24386.909782242685, + "y": 25219.77774788672 }, "targetPosition": { - "x": 19772.80502970953, - "y": 38363.91385975339 + "x": 24097.132034355964, + "y": 25142.132034355964 }, "floatingObject": { "isPinned": false, "isFrozen": false, "isCollapsed": false, - "angleToParent": 3, + "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 }, "uiObject": { "isRunning": false - } + }, + "tutorial": {}, + "referenceParent": { + "type": "Charting Space", + "name": "New Charting Space", + "id": "21d2ec55-9e56-4652-8e96-c7e451262c36" + }, + "referenceParentCombinedNodePath": [ + [ + "New Charting Space", + "Charting Space", + "Foundations", + "21d2ec55-9e56-4652-8e96-c7e451262c36" + ] + ] } }, { - "type": "Asset Class", - "name": "Vimeo", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "4c8ac872-6575-4e9d-aba3-4eb82ac69acb", + "type": "Tutorial Step", + "name": "Program Participation", + "config": "{\n \"icon\": {\n \"name\": \"User\\\\user-referrer\",\n \"project\": \"Governance\"\n },\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Program Participation\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "1a414df9-32fa-4055-b0db-7a932e4b59e1", "savedPayload": { "position": { - "x": 19811.962887375543, - "y": 38661.347318165535 + "x": 24174.77774788672, + "y": 25431.909782242685 }, "targetPosition": { - "x": 19772.80502970953, - "y": 38363.91385975339 + "x": 24097.132034355964, + "y": 25142.132034355964 }, "floatingObject": { "isPinned": false, "isFrozen": false, "isCollapsed": false, - "angleToParent": 3, + "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 }, "uiObject": { "isRunning": false + }, + "tutorial": { + "status": "Done" } } } ], - "assets": [], - "id": "16295c53-241e-4147-979c-fbd3b5cd3039", + "tutorialTopics": [], + "id": "47f47947-70a9-48a6-88d0-bd3dae2be578", "savedPayload": { "position": { - "x": 19772.80502970953, - "y": 38363.91385975339 + "x": 24097.132034355964, + "y": 25142.132034355964 }, "targetPosition": { - "x": 19658, - "y": 38086.75 + "x": 23885, + "y": 24930 }, "floatingObject": { "isPinned": false, @@ -2171,1153 +1768,194 @@ }, "uiObject": { "isRunning": false + }, + "tutorial": { + "status": "Done" } } + } + ], + "id": "24298d4b-70ad-4eef-a728-9759c452c1ee", + "savedPayload": { + "position": { + "x": 23885, + "y": 24930 }, + "targetPosition": { + "x": 23585, + "y": 24930 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "tutorial": { + "status": "Done" + } + } + }, + { + "type": "Tutorial Topic", + "name": "Setting Up the Constructor", + "config": "{\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [ { - "type": "Asset Class", - "name": "Articles", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Personal Blog Post", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "0ed4830d-ac02-4f62-a41c-8f061605da1e", - "savedPayload": { - "position": { - "x": 19870.132034355964, - "y": 38598.882034355964 - }, - "targetPosition": { - "x": 19658, - "y": 38386.75 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Crypto Media", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Coindesk", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "First Article", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "81890945-2a81-4607-8aaa-181ff57dc3da", - "savedPayload": { - "position": { - "x": 20046.00600208737, - "y": 39129.18604983795 - }, - "targetPosition": { - "x": 19808, - "y": 38946.55762113533 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset", - "name": "Second Article", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "8a2e0ed2-8b51-489b-99fa-b69ffff4610c", - "savedPayload": { - "position": { - "x": 19958, - "y": 39206.365242270665 - }, - "targetPosition": { - "x": 19808, - "y": 38946.55762113533 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset", - "name": "Third Article", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "1eb1a547-1839-4e80-b69f-2f74341bf35e", - "savedPayload": { - "position": { - "x": 19847.157857666014, - "y": 39243.99107954748 - }, - "targetPosition": { - "x": 19808, - "y": 38946.55762113533 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "7b4ed833-94a1-4b96-8425-7a6c03e422b1", - "savedPayload": { - "position": { - "x": 19808, - "y": 38946.55762113533 - }, - "targetPosition": { - "x": 19658, - "y": 38686.75 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Coin Telegraph", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "First Article", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "b471bb15-9ad5-4117-b82a-69281ee7e986", - "savedPayload": { - "position": { - "x": 19468.842142333986, - "y": 39243.99107954748 - }, - "targetPosition": { - "x": 19508, - "y": 38946.55762113533 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset", - "name": "Second Article", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "e2d9a195-4385-45e1-aa71-8e1e3a7f3d61", - "savedPayload": { - "position": { - "x": 19358, - "y": 39206.365242270665 - }, - "targetPosition": { - "x": 19508, - "y": 38946.55762113533 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset", - "name": "Third Article", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "409363f4-29a2-4c9d-8a60-aa7012d11207", - "savedPayload": { - "position": { - "x": 19269.99399791263, - "y": 39129.18604983795 - }, - "targetPosition": { - "x": 19508, - "y": 38946.55762113533 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "6dcc7051-247d-4a8b-aad1-ee8b81d5561b", - "savedPayload": { - "position": { - "x": 19508, - "y": 38946.55762113533 - }, - "targetPosition": { - "x": 19658, - "y": 38686.75 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "616ac08c-37f1-427a-b8ed-f8597c1b06c4", - "savedPayload": { - "position": { - "x": 19658, - "y": 38686.75 - }, - "targetPosition": { - "x": 19658, - "y": 38386.75 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Mainstream Media", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Forbes", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "First Article", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "ca222495-ec61-4b3d-af4d-4430a96bf0bf", - "savedPayload": { - "position": { - "x": 19118.930901578547, - "y": 39088.17792846532 - }, - "targetPosition": { - "x": 19233.735931288073, - "y": 38811.01406871193 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset", - "name": "Second Article", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "1ae70ec2-eec8-406f-b4da-2da7b0b8af7a", - "savedPayload": { - "position": { - "x": 19021.60389693211, - "y": 39023.14610306789 - }, - "targetPosition": { - "x": 19233.735931288073, - "y": 38811.01406871193 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset", - "name": "Third Article", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "3e930328-26df-4f68-a664-7240a99e76c7", - "savedPayload": { - "position": { - "x": 18956.572071534687, - "y": 38925.81909842145 - }, - "targetPosition": { - "x": 19233.735931288073, - "y": 38811.01406871193 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 3, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "b4d49788-f9d6-4b80-b730-cf4252edf8f2", - "savedPayload": { - "position": { - "x": 19233.735931288073, - "y": 38811.01406871193 - }, - "targetPosition": { - "x": 19445.867965644036, - "y": 38598.882034355964 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "900018c7-7537-4d83-86a0-79452f21b673", - "savedPayload": { - "position": { - "x": 19445.867965644036, - "y": 38598.882034355964 - }, - "targetPosition": { - "x": 19658, - "y": 38386.75 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "317428e7-1427-47d2-bc9a-543188f05daf", + "type": "Tutorial Step", + "name": "Where is all Begins", + "config": "{\n \"icon\": {\n \"name\": \"governance\",\n \"project\": \"Governance\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Where is all Begins\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n },\n \"positionAtReferenceParent\": true\n}", + "project": "Education", + "id": "9aec749c-46c8-45d0-99f4-f99ecd50ec44", "savedPayload": { "position": { - "x": 19658, - "y": 38386.75 + "x": 23963.022053201028, + "y": 25308.022053201028 }, "targetPosition": { - "x": 19658, - "y": 38086.75 + "x": 23677.705098312483, + "y": 25215.316954888545 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 }, "uiObject": { "isRunning": false - } + }, + "tutorial": { + "status": "Done" + }, + "referenceParent": { + "type": "Governance Project", + "name": "New Governance Project", + "id": "db380c52-cf90-475b-87df-c005dd51cdf6" + }, + "referenceParentCombinedNodePath": [ + [ + "New Governance Project", + "Governance Project" + ] + ] } }, { - "type": "Asset Class", - "name": "Referrers", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Referrer to Website", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "2b4d1dcb-d31a-49c2-a111-5a8d4f65c063", - "savedPayload": { - "position": { - "x": 19504.542402273375, - "y": 38619.41310770839 - }, - "targetPosition": { - "x": 19470.95305944238, - "y": 38321.29944474041 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Referrer to Github", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "545cfba6-6014-42a5-8a8a-b3de0bc5847f", - "savedPayload": { - "position": { - "x": 19283.906118884763, - "y": 38555.848889480825 - }, - "targetPosition": { - "x": 19470.95305944238, - "y": 38321.29944474041 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Referrer to Youtube", - "config": "{\n \"description\": \"\", \"relativeWeight\": 0 \n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "1bba7d55-5fc9-41e0-b9a0-aaf53b151f7c", - "savedPayload": { - "position": { - "x": 19172.83939647441, - "y": 38354.888787571406 - }, - "targetPosition": { - "x": 19470.95305944238, - "y": 38321.29944474041 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "02bb5354-f803-45df-a9c0-4e4cae827108", + "type": "Tutorial Step", + "name": "Profile in a Heartbeat", + "config": "{\n \"icon\": {\n \"name\": \"profile-constructor\",\n \"project\": \"Governance\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Profile in a Heartbeat\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\",\n \"closeTutorialEditor\": true,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "cdfada38-c5e0-4c0c-aaf5-4fa24b416131", "savedPayload": { "position": { - "x": 19543.194970290475, - "y": 38363.91385975339 + "x": 23854.040674000225, + "y": 25458.022053201028 }, "targetPosition": { - "x": 19658, - "y": 38086.75 + "x": 23677.705098312483, + "y": 25215.316954888545 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 }, "uiObject": { "isRunning": false + }, + "tutorial": { + "status": "Done" } } }, { - "type": "Asset Class", - "name": "Public Relations", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Crypto Media PR Campaign", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "6 Month PR Campaign", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "fc282918-1aed-4971-a96b-2989b3f189d2", - "savedPayload": { - "position": { - "x": 19290.57653858252, - "y": 38878.437530129406 - }, - "targetPosition": { - "x": 19368.22225211328, - "y": 38588.659782242685 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "8316568f-3267-4025-be66-3660c98a55bb", - "savedPayload": { - "position": { - "x": 19368.22225211328, - "y": 38588.659782242685 - }, - "targetPosition": { - "x": 19445.867965644036, - "y": 38298.882034355964 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Trading Media PR Campaign", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "6 Month PR Campaign", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "b12606ee-e874-47bb-8ff2-ff801e417120", - "savedPayload": { - "position": { - "x": 18866.312469870594, - "y": 38454.17346141748 - }, - "targetPosition": { - "x": 19156.090217757315, - "y": 38376.52774788672 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "93ede00a-cbad-48af-9b4b-e9b9c983890d", - "savedPayload": { - "position": { - "x": 19156.090217757315, - "y": 38376.52774788672 - }, - "targetPosition": { - "x": 19445.867965644036, - "y": 38298.882034355964 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "03246cc7-0e6b-4790-91a5-06f98453294c", + "type": "Tutorial Step", + "name": "Pump that Heartbeat!", + "config": "{\n \"icon\": {\n \"name\": \"configuration\",\n \"project\": \"Governance\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Pump that Heartbeat!\"\n },\n \"controlDocs\": {\n \"panel\": \"Close\",\n \"closeTutorialEditor\": true\n },\n \"positionAtReferenceParent\": true\n}", + "project": "Education", + "id": "651e15ce-bdda-4cca-9c2d-e16a2d900e45", "savedPayload": { "position": { - "x": 19445.867965644036, - "y": 38298.882034355964 + "x": 23677.705098312483, + "y": 25515.316954888545 }, "targetPosition": { - "x": 19658, - "y": 38086.75 + "x": 23677.705098312483, + "y": 25215.316954888545 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": true, + "isCollapsed": false, "angleToParent": 2, "distanceToParent": 3, "arrangementStyle": 0 }, "uiObject": { "isRunning": false - } + }, + "tutorial": { + "status": "Done" + }, + "referenceParent": { + "type": "Time Machine", + "name": "Lightning Strike Backtesting Session My Computer Binanceus BTC/USDT", + "id": "72a1f250-0d0e-4354-8fdf-741866b9c16c" + }, + "referenceParentCombinedNodePath": [ + [ + "New Charting Space", + "Charting Space", + "Foundations", + "21d2ec55-9e56-4652-8e96-c7e451262c36" + ], + [ + "Foundations", + "Project Dashboards", + "Foundations", + "2f92dce8-f804-40b6-9f4d-e605f4b4a55e" + ], + [ + "Testing Trading Tasks My Computer", + "Dashboard", + "Foundations", + "b10709c9-2150-4055-a06e-1b9b8db2af55" + ], + [ + "Lightning Strike Backtesting Session My Computer Binanceus BTC/USDT", + "Time Machine", + "Foundations", + "72a1f250-0d0e-4354-8fdf-741866b9c16c" + ] + ] } }, { - "type": "Asset Class", - "name": "Conferences & Meetups", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Conferences", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Crypto or Trading Conferences", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Securing a Spot", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "Labitconf", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "660e4c2f-c69a-4ba4-a8b5-d702d0572b76", - "savedPayload": { - "position": { - "x": 19388.65991329704, - "y": 39291.32220971582 - }, - "targetPosition": { - "x": 19273.85488358751, - "y": 39014.15834996243 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "b2ece56b-5001-4371-9b74-713712a7e3e2", - "savedPayload": { - "position": { - "x": 19273.85488358751, - "y": 39014.15834996243 - }, - "targetPosition": { - "x": 19159.049853877983, - "y": 38736.99449020904 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Speaking at Conference", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "Labitconf", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "37027d36-c4aa-43d4-abd4-4cf27dad1244", - "savedPayload": { - "position": { - "x": 18793.79299647275, - "y": 39213.006494383786 - }, - "targetPosition": { - "x": 18976.421425175366, - "y": 38975.000492296414 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "9d6400a1-b476-46ea-bdda-f6d7850c6f5f", - "savedPayload": { - "position": { - "x": 18976.421425175366, - "y": 38975.000492296414 - }, - "targetPosition": { - "x": 19159.049853877983, - "y": 38736.99449020904 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "33fe09af-869a-40ae-ba9e-5aae5d811049", - "savedPayload": { - "position": { - "x": 19159.049853877983, - "y": 38736.99449020904 - }, - "targetPosition": { - "x": 19198.207711543997, - "y": 38439.5610317969 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Unrelated Conferences", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "Securing a Spot", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "Monaco Streamming Conference 2021", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "6f296569-ca8d-4ac7-b4ba-b10bc1e0299d", - "savedPayload": { - "position": { - "x": 18555.786994385377, - "y": 39030.378065681165 - }, - "targetPosition": { - "x": 18738.415423087994, - "y": 38792.37206359379 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "a316a673-7a60-433b-9544-97c67613a354", - "savedPayload": { - "position": { - "x": 18738.415423087994, - "y": 38792.37206359379 - }, - "targetPosition": { - "x": 18921.04385179061, - "y": 38554.36606150642 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Speaking at Conference", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "Monaco Streamming Conference 2021", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "bd2cedf5-df53-4381-88e6-d1df04cbd1ee", - "savedPayload": { - "position": { - "x": 18326.176934966326, - "y": 38476.05034617439 - }, - "targetPosition": { - "x": 18623.61039337847, - "y": 38515.208203840404 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "e428e3ef-81e7-48f6-bec2-1bea44f1b918", - "savedPayload": { - "position": { - "x": 18623.61039337847, - "y": 38515.208203840404 - }, - "targetPosition": { - "x": 18921.04385179061, - "y": 38554.36606150642 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "26f4afb5-6746-44dc-81e6-ae9edb5cba97", - "savedPayload": { - "position": { - "x": 18921.04385179061, - "y": 38554.36606150642 - }, - "targetPosition": { - "x": 19198.207711543997, - "y": 38439.5610317969 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "57be50e8-d521-4cae-a951-25f6c161ceba", - "savedPayload": { - "position": { - "x": 19198.207711543997, - "y": 38439.5610317969 - }, - "targetPosition": { - "x": 19380.836140246614, - "y": 38201.555029709525 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "Meetups", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "a5ae1b0e-f1f9-4155-bcfc-5d65799651d1", - "savedPayload": { - "position": { - "x": 19083.402681834472, - "y": 38162.39717204351 - }, - "targetPosition": { - "x": 19380.836140246614, - "y": 38201.555029709525 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "a9e91549-44fb-435e-99d0-1803c3b6c2e1", + "type": "Tutorial Step", + "name": "New Tutorial Step", + "config": "{\n \"icon\": {\n \"name\": \"\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Left\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "a7929f0d-8dee-488c-b517-7ac95d2cb071", "savedPayload": { "position": { - "x": 19380.836140246614, - "y": 38201.555029709525 + "x": 23501.36952262474, + "y": 25458.022053201028 }, "targetPosition": { - "x": 19658, - "y": 38086.75 + "x": 23677.705098312483, + "y": 25215.316954888545 }, "floatingObject": { "isPinned": false, @@ -3333,83 +1971,86 @@ } } ], - "assets": [], - "id": "72f56cca-745a-4554-bf7f-4a2267700b1d", + "tutorialTopics": [], + "id": "1b7b5af2-bb52-4090-965e-cd457b2e229c", "savedPayload": { "position": { - "x": 19658, - "y": 38086.75 + "x": 23677.705098312483, + "y": 25215.316954888545 }, "targetPosition": { - "x": 19658, - "y": 37786.75 + "x": 23585, + "y": 24930 }, "floatingObject": { "isPinned": false, "isFrozen": false, "isCollapsed": false, - "angleToParent": 2, + "angleToParent": 1, "distanceToParent": 3, "arrangementStyle": 0 }, "uiObject": { "isRunning": false + }, + "tutorial": { + "status": "Done" } } - } - ], - "assets": [], - "id": "eeeed37c-a0e5-4d6c-a57f-01fdd8622f0f", - "savedPayload": { - "position": { - "x": 19658, - "y": 37786.75 }, - "targetPosition": { - "x": 19658, - "y": 37786.75 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Positions", - "name": "Marketing", - "config": "{\"codeName\":\"Superalgos\"}", - "project": "Governance", - "positionClasss": [ { - "type": "Position Class", - "name": "Rewarded Positions", - "config": "{}", - "project": "Governance", - "positions": [ + "type": "Tutorial Topic", + "name": "Link to Data Mine Products", + "config": "{\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [ { - "type": "Position", - "name": "Marketing Lead", - "config": "{}", - "project": "Governance", - "positions": [], - "positionClasss": [], - "id": "0759bf5b-d439-4c62-b0d9-74330b151331", + "type": "Tutorial Step", + "name": "Link Chart to Data Products", + "config": "{\n \"icon\": {\n \"name\": \"Data/data-mine-products\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Link Chart to Data Products\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "7b7a165b-cd6a-467f-95a3-36eb3c4e379e", "savedPayload": { "position": { - "x": 15018.000000000004, - "y": 38336.30762113533 + "x": 24280, + "y": 25281.807621135333 }, "targetPosition": { - "x": 14868.000000000004, - "y": 38076.5 + "x": 24430, + "y": 25022 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Time Machine", + "name": "Lighting Strike Backtesting Session", + "id": "499eac86-6c40-4362-a36a-5f2002081866" + } + } + }, + { + "type": "Tutorial Step", + "name": "Make the Connection", + "config": "{\n \"icon\": {\n \"name\": \"delink-node\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Make the Connection\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "c794e2fd-ebda-4f63-99bc-88a9afc64233", + "savedPayload": { + "position": { + "x": 24170.192378864667, + "y": 25172 + }, + "targetPosition": { + "x": 24430, + "y": 25022 }, "floatingObject": { "isPinned": false, @@ -3425,21 +2066,724 @@ } }, { - "type": "Position", - "name": "Advisor", - "config": "{}", - "project": "Governance", - "positions": [], - "positionClasss": [], - "id": "1870446d-a572-4568-9956-c3e9bb941657", + "type": "Tutorial Step", + "name": "Add the Layers", + "config": "{\n \"icon\": {\n \"name\": \"Layer/layer\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Add the Layers\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "05060d29-390d-4176-9e12-28fcf139a7f4", "savedPayload": { "position": { - "x": 14718.000000000004, - "y": 38336.30762113533 + "x": 24130, + "y": 25022 }, "targetPosition": { - "x": 14868.000000000004, - "y": 38076.5 + "x": 24430, + "y": 25022 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Tutorial", + "name": "Creating Your User Profile Tutorial", + "id": "57e388d1-f479-4a16-af85-aee12be285a0" + }, + "referenceParentCombinedNodePath": [ + [ + "Creating Your User Profile Tutorial", + "Tutorial", + "Education", + "57e388d1-f479-4a16-af85-aee12be285a0" + ] + ] + } + }, + { + "type": "Tutorial Step", + "name": "Verify the Layers", + "config": "{\n \"icon\": {\n \"name\": \"Layer/layer\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Verify the Layers\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "5f80c66d-49cd-44b3-9970-1aeffe0d5de5", + "savedPayload": { + "position": { + "x": 24170.192378864667, + "y": 24872 + }, + "targetPosition": { + "x": 24430, + "y": 25022 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Tutorial", + "name": "Creating Your User Profile Tutorial", + "id": "57e388d1-f479-4a16-af85-aee12be285a0" + }, + "referenceParentCombinedNodePath": [ + [ + "Creating Your User Profile Tutorial", + "Tutorial", + "Education", + "57e388d1-f479-4a16-af85-aee12be285a0" + ] + ] + } + }, + { + "type": "Tutorial Step", + "name": "It's Alive!", + "config": "{\n \"icon\": {\n \"name\": \"Trading/trading-system\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"repositionAtTimeMachineNoZoomReferenceParent\": true,\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - It’s Alive!\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "06dd6909-cf9c-47a2-aa47-649cecffa070", + "savedPayload": { + "position": { + "x": 24280, + "y": 24762.192378864667 + }, + "targetPosition": { + "x": 24430, + "y": 25022 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Time Machine", + "name": "Lighting Strike Backtesting Session", + "id": "499eac86-6c40-4362-a36a-5f2002081866" + } + } + } + ], + "tutorialTopics": [], + "id": "9c4ab2ae-dc3c-420b-9ac3-11422e25b623", + "savedPayload": { + "position": { + "x": 23342.294901687517, + "y": 25106.335575687743 + }, + "targetPosition": { + "x": 23585, + "y": 24930 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Tutorial Topic", + "name": "Link to Trading Mine Products", + "config": "{\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [], + "tutorialTopics": [ + { + "type": "Tutorial Topic", + "name": "Connection One", + "config": "{\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [ + { + "type": "Tutorial Step", + "name": "Link Chart to a Trading System", + "config": "{\n \"icon\": {\n \"name\": \"Charting-Space/chart-points\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Link Chart to Trading System\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "c54fc87c-73ff-4979-9f57-c77e58c65124", + "savedPayload": { + "position": { + "x": 24000.444504226558, + "y": 24762.192378864667 + }, + "targetPosition": { + "x": 24290.22225211328, + "y": 24684.54666533391 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Tutorial", + "name": "Creating Your User Profile Tutorial", + "id": "57e388d1-f479-4a16-af85-aee12be285a0" + }, + "referenceParentCombinedNodePath": [ + [ + "Creating Your User Profile Tutorial", + "Tutorial", + "Education", + "57e388d1-f479-4a16-af85-aee12be285a0" + ] + ] + } + }, + { + "type": "Tutorial Step", + "name": "Connection One", + "config": "{\n \"icon\": {\n \"name\": \"delink-node\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Connection One\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n },\n \"positionAtReferenceParent\": true\n}", + "project": "Education", + "id": "474fb22c-d20f-45d6-9a82-f772049c4d61", + "savedPayload": { + "position": { + "x": 24078.090217757315, + "y": 24472.414630977946 + }, + "targetPosition": { + "x": 24290.22225211328, + "y": 24684.54666533391 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Backtesting Session", + "name": "Lightning Strike", + "id": "a401c496-1afc-4ca9-ae2c-af41a520bfb6" + }, + "referenceParentCombinedNodePath": [ + [ + "My Network", + "Network", + "Foundations", + "3c165071-7558-4708-9999-8ffe71d346b1" + ], + [ + "My Computer", + "Network Node", + "Foundations", + "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" + ], + [ + "New Testing Trading Tasks", + "Testing Trading Tasks", + "Foundations", + "8117db0a-e418-4f56-8fe4-fda2ddac1cbb" + ], + [ + "Foundations", + "Project Trading Tasks", + "Foundations", + "37a5ebef-7da4-470c-96bf-e328d0a90f15" + ], + [ + "Binance", + "Exchange Trading Tasks", + "Foundations", + "f19b5916-d287-45ef-a121-816775f05e56" + ], + [ + " BTC/USDT", + "Market Trading Tasks", + "Foundations", + "5e1e64a3-b6de-4f8c-96f2-b46a395999c4" + ], + [ + "Masters", + "Trading Mine Tasks", + "Foundations", + "10a877fc-cfb1-4e6e-893b-c68c965497b2" + ], + [ + "Masters", + "Task Manager", + "Foundations", + "ce4c6293-6465-4c31-b7c0-ab5ab7549b13" + ], + [ + "Lightning Strike", + "Task", + "Foundations", + "8b6a1391-1852-49d9-ad07-1083dbf2571b" + ], + [ + "Low Frequency", + "Trading Bot Instance", + "Foundations", + "0a3dc505-087d-4e4f-b3b6-4b6a16548a98" + ], + [ + "Low Frequency Trading", + "Trading Process Instance", + "Foundations", + "9141d86d-1136-4060-b583-abe07808104b" + ], + [ + "Lightning Strike", + "Backtesting Session", + "Foundations", + "a401c496-1afc-4ca9-ae2c-af41a520bfb6" + ] + ] + } + } + ], + "tutorialTopics": [], + "id": "ad746f03-a874-484a-b475-6948665203e2", + "savedPayload": { + "position": { + "x": 24290.22225211328, + "y": 24684.54666533391 + }, + "targetPosition": { + "x": 24580, + "y": 24762.192378864667 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Tutorial Topic", + "name": "Connection Two", + "config": "{\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [ + { + "type": "Tutorial Step", + "name": "Back to Data Storage", + "config": "{\n \"icon\": {\n \"name\": \"Trading/trading-mines-data\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Back to Data Storage\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n },\n \"positionAtReferenceParent\": true\n}", + "project": "Education", + "id": "a18b732e-a1d7-4f80-b131-47d7343769de", + "savedPayload": { + "position": { + "x": 24131.64343138952, + "y": 24471.026218749037 + }, + "targetPosition": { + "x": 24430, + "y": 24502.384757729335 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Trading Mines Data", + "name": "New Trading Mines Data", + "id": "e4e268f3-a677-4f90-90a1-d87244e647e5" + }, + "referenceParentCombinedNodePath": [ + [ + "My Network", + "Network", + "Foundations", + "3c165071-7558-4708-9999-8ffe71d346b1" + ], + [ + "My Computer", + "Network Node", + "Foundations", + "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" + ], + [ + "New Data Storage", + "Data Storage", + "Foundations", + "e2697759-6038-4943-b90c-5a68651ff9a8" + ], + [ + "New Trading Mines Data", + "Trading Mines Data", + "Foundations", + "e4e268f3-a677-4f90-90a1-d87244e647e5" + ] + ] + } + }, + { + "type": "Tutorial Step", + "name": "Another Timeline Chart", + "config": "{\n \"icon\": {\n \"name\": \"Time/timeline-chart\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Another Timeline Chart\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "57d9e78e-2f13-4b29-9fcb-97b8e15b94f4", + "savedPayload": { + "position": { + "x": 24207.056552356782, + "y": 24301.645575821676 + }, + "targetPosition": { + "x": 24430, + "y": 24502.384757729335 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Tutorial Step", + "name": "Connection Two", + "config": "{\n \"icon\": {\n \"name\": \"delink-node\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Connection Two\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n },\n \"positionAtReferenceParent\": true\n}", + "project": "Education", + "id": "677ca42a-4874-4bc4-930c-250fd0ca3fda", + "savedPayload": { + "position": { + "x": 24367.626492754673, + "y": 24208.94047750919 + }, + "targetPosition": { + "x": 24430, + "y": 24502.384757729335 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Trading Session Reference", + "name": "Lightning Strike Backtesting Session", + "id": "16b13a2d-3f4c-4c22-b03e-218beeef4bf3" + }, + "referenceParentCombinedNodePath": [ + [ + "My Network", + "Network", + "Foundations", + "3c165071-7558-4708-9999-8ffe71d346b1" + ], + [ + "My Computer", + "Network Node", + "Foundations", + "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" + ], + [ + "New Data Storage", + "Data Storage", + "Foundations", + "e2697759-6038-4943-b90c-5a68651ff9a8" + ], + [ + "New Trading Mines Data", + "Trading Mines Data", + "Foundations", + "e4e268f3-a677-4f90-90a1-d87244e647e5" + ], + [ + "Foundations", + "Project Trading Products", + "Foundations", + "61700ea3-1a25-4abe-98eb-3fd5ca57b82c" + ], + [ + "Binance", + "Exchange Trading Products", + "Foundations", + "f3e5e7d3-fa8d-451a-b86f-87ab5c852263" + ], + [ + " BTC/USDT", + "Market Trading Products", + "Foundations", + "459723e4-ac62-4275-87d5-70761c2e9a6a" + ], + [ + "Lightning Strike Backtesting Session", + "Trading Session Reference", + "Foundations", + "16b13a2d-3f4c-4c22-b03e-218beeef4bf3" + ] + ] + } + }, + { + "type": "Tutorial Step", + "name": "Don't Forget the Layers!", + "config": "{\n \"icon\": {\n \"name\": \"Layer/layer\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Don’t Forget the Layers!\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "70c4b4fa-c12c-48a9-80e3-b8b99cfd4e25", + "savedPayload": { + "position": { + "x": 24552.020992922742, + "y": 24228.32112043655 + }, + "targetPosition": { + "x": 24430, + "y": 24502.384757729335 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "tutorialTopics": [], + "id": "bef2e874-7eca-4d87-b409-2482c8f33fb5", + "savedPayload": { + "position": { + "x": 24430, + "y": 24502.384757729335 + }, + "targetPosition": { + "x": 24580, + "y": 24762.192378864667 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Tutorial Topic", + "name": "Check the Chart", + "config": "{\n \"position\": \"Right\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [ + { + "type": "Tutorial Step", + "name": "Check the Chart", + "config": "{\n \"icon\": {\n \"name\": \"Charting-Space/chart-points\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"repositionAtTimeMachineNoZoomReferenceParent\": true,\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Check the Chart\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "bab09c4d-bf15-412e-8cfa-13a6ef1596d8", + "savedPayload": { + "position": { + "x": 24580, + "y": 24182.636883091225 + }, + "targetPosition": { + "x": 24657.645713530757, + "y": 24472.414630977946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + }, + "referenceParent": { + "type": "Time Machine", + "name": "Lighting Strike Backtesting Session", + "id": "499eac86-6c40-4362-a36a-5f2002081866" + } + } + }, + { + "type": "Tutorial Step", + "name": "Not Seeing Anything?", + "config": "{\n \"icon\": {\n \"name\": \"bot-data-dependencies\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Right\",\n \"slider\": \"toBottom\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Not Seeing Anything?\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "5d481e14-4320-423a-b3aa-6ebf3577cc69", + "savedPayload": { + "position": { + "x": 24869.77774788672, + "y": 24260.282596621983 + }, + "targetPosition": { + "x": 24657.645713530757, + "y": 24472.414630977946 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "tutorialTopics": [], + "id": "ce8f024f-333a-41fd-8133-0520cb0643de", + "savedPayload": { + "position": { + "x": 24657.645713530757, + "y": 24472.414630977946 + }, + "targetPosition": { + "x": 24580, + "y": 24762.192378864667 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + } + ], + "id": "7a3b03c7-8061-4b25-906a-8e22916aa9a7", + "savedPayload": { + "position": { + "x": 23342.294901687517, + "y": 24753.664424312257 + }, + "targetPosition": { + "x": 23585, + "y": 24930 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": true, + "angleToParent": 1, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Tutorial Topic", + "name": "Before I Go", + "config": "{\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"pressButton\": \"Next\"\n}", + "project": "Education", + "tutorialSteps": [ + { + "type": "Tutorial Step", + "name": "Easy as 1,2,3", + "config": "{\n \"icon\": {\n \"name\": \"Charting-Space/charting-space\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Easy as 1, 2, 3\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "3df32c0e-ba29-4d8b-bbfe-5a6cba21a72a", + "savedPayload": { + "position": { + "x": 24880, + "y": 24462.192378864667 + }, + "targetPosition": { + "x": 24880, + "y": 24762.192378864667 + }, + "floatingObject": { + "isPinned": false, + "isFrozen": false, + "isCollapsed": false, + "angleToParent": 2, + "distanceToParent": 3, + "arrangementStyle": 0 + }, + "uiObject": { + "isRunning": false + } + } + }, + { + "type": "Tutorial Step", + "name": "Before I Go", + "config": "{\n \"icon\": {\n \"name\": \"Charting-Space/charting-space\",\n \"project\": \"Foundations\"\n },\n \"position\": \"Center\",\n \"slider\": \"toTop\",\n \"pressButton\": \"\",\n \"docs\": {\n \"project\": \"Foundations\",\n \"category\": \"Tutorial\",\n \"type\": \"Tutorial Step - Before I Go\"\n },\n \"controlDocs\": {\n \"panel\": \"\",\n \"closeTutorialEditor\": false,\n \"page\": {\n \"project\": \"Foundations\",\n \"category\": \"\",\n \"type\": \"\"\n }\n }\n}", + "project": "Education", + "id": "13562ed4-66d1-4c87-8a8f-eeef9ee998f3", + "savedPayload": { + "position": { + "x": 25139.807621135333, + "y": 24612.192378864667 + }, + "targetPosition": { + "x": 24880, + "y": 24762.192378864667 }, "floatingObject": { "isPinned": false, @@ -3455,22 +2799,22 @@ } } ], - "positionClasss": [], - "id": "3e191217-1e2f-4d90-a86d-0d425f8844b6", + "tutorialTopics": [], + "id": "c1c298ee-7e66-4277-9a55-5869d9f5e23a", "savedPayload": { "position": { - "x": 14868.000000000004, - "y": 38076.5 + "x": 23677.705098312483, + "y": 24644.683045111455 }, "targetPosition": { - "x": 14868.000000000004, - "y": 37776.5 + "x": 23585, + "y": 24930 }, "floatingObject": { "isPinned": false, "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, + "isCollapsed": true, + "angleToParent": 1, "distanceToParent": 3, "arrangementStyle": 0 }, @@ -3480,261 +2824,15 @@ } } ], - "positions": [], - "id": "19a3f688-75d8-4b27-a9b4-6ec9ceb3bcbf", + "id": "57e388d1-f479-4a16-af85-aee12be285a0", "savedPayload": { "position": { - "x": 14868.000000000004, - "y": 37776.5 + "x": 23585, + "y": 24930 }, "targetPosition": { - "x": 14868.000000000004, - "y": 37776.5 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": true, - "angleToParent": 1, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Assets", - "name": "Exchanges", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "SA Token Listings Rewards", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [ - { - "type": "Asset Class", - "name": "CMC Top 10", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "First Listing", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "548dd163-9991-4de3-9e68-9e8a9a051a2f", - "savedPayload": { - "position": { - "x": 10018.264068711927, - "y": 38520.76406871193 - }, - "targetPosition": { - "x": 9806.132034355964, - "y": 38308.632034355964 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "7793964e-794b-4d76-b5fd-4ee67c3f3aab", - "savedPayload": { - "position": { - "x": 9806.132034355964, - "y": 38308.632034355964 - }, - "targetPosition": { - "x": 9594, - "y": 38096.5 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "CMC Top 50", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "Second Listing", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "e4e7addb-a840-4ce9-9e01-74c7e57c24ad", - "savedPayload": { - "position": { - "x": 9594, - "y": 38696.5 - }, - "targetPosition": { - "x": 9594, - "y": 38396.5 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "ffec9d04-21ef-48eb-a29f-51d1e1c5cb59", - "savedPayload": { - "position": { - "x": 9594, - "y": 38396.5 - }, - "targetPosition": { - "x": 9594, - "y": 38096.5 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - }, - { - "type": "Asset Class", - "name": "CMC Top 100", - "config": "{\n\"folderPath\": \"\"\n}", - "project": "Governance", - "assetClasses": [], - "assets": [ - { - "type": "Asset", - "name": "Third Listing", - "config": "{}", - "project": "Governance", - "assetClasses": [], - "assets": [], - "id": "73c64b92-467f-4e27-8c3b-a624f00bbf53", - "savedPayload": { - "position": { - "x": 9169.735931288073, - "y": 38520.76406871193 - }, - "targetPosition": { - "x": 9381.867965644036, - "y": 38308.632034355964 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "id": "6d69d279-c79d-4565-b8a2-5a612ef8b7b3", - "savedPayload": { - "position": { - "x": 9381.867965644036, - "y": 38308.632034355964 - }, - "targetPosition": { - "x": 9594, - "y": 38096.5 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "492669d5-223f-426d-845a-f26dd1ae251e", - "savedPayload": { - "position": { - "x": 9594, - "y": 38096.5 - }, - "targetPosition": { - "x": 9594, - "y": 37796.5 - }, - "floatingObject": { - "isPinned": false, - "isFrozen": false, - "isCollapsed": false, - "angleToParent": 2, - "distanceToParent": 3, - "arrangementStyle": 0 - }, - "uiObject": { - "isRunning": false - } - } - } - ], - "assets": [], - "id": "2cefeb95-9fde-418b-a35b-6178a97cac9d", - "savedPayload": { - "position": { - "x": 9594, - "y": 37796.5 - }, - "targetPosition": { - "x": 9594, - "y": 37796.5 + "x": 23585, + "y": 24930 }, "floatingObject": { "isPinned": false, @@ -3742,10 +2840,14 @@ "isCollapsed": false, "angleToParent": 1, "distanceToParent": 3, - "arrangementStyle": 0 + "arrangementStyle": 1 }, "uiObject": { + "isPlaying": false, "isRunning": false + }, + "tutorial": { + "status": "Done" } } } diff --git a/Projects/Governance/Schemas/App-Schema/governance-project.json b/Projects/Governance/Schemas/App-Schema/governance-project.json index 4849e91c3..03e9198ec 100644 --- a/Projects/Governance/Schemas/App-Schema/governance-project.json +++ b/Projects/Governance/Schemas/App-Schema/governance-project.json @@ -29,13 +29,6 @@ "relatedUiObject": "Positions", "actionFunction": "payload.executeAction" }, - { - "action": "Add UI Object", - "actionProject": "Foundations", - "label": "Add User Profile", - "relatedUiObject": "User Profile", - "actionFunction": "payload.executeAction" - }, { "action": "Add UI Object", "actionProject": "Foundations", diff --git a/Projects/Governance/Schemas/App-Schema/profile-constructor.json b/Projects/Governance/Schemas/App-Schema/profile-constructor.json index 9d23130f9..5c4180bd3 100644 --- a/Projects/Governance/Schemas/App-Schema/profile-constructor.json +++ b/Projects/Governance/Schemas/App-Schema/profile-constructor.json @@ -34,7 +34,7 @@ "config": true }, "initialValues": { - "config": "{ \"githubUsername\": \"\"}" + "config": "{ \"githubUsername\": \"\", \"mnemonic\": \"\"}" }, "addLeftIcons": true, "level": 2, diff --git a/Projects/Foundations/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-001-listing-requirements-research-task.json b/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-001-listing-requirements-research-task.json similarity index 92% rename from Projects/Foundations/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-001-listing-requirements-research-task.json rename to Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-001-listing-requirements-research-task.json index 22c1d4abd..e7115066c 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-001-listing-requirements-research-task.json +++ b/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-001-listing-requirements-research-task.json @@ -40,6 +40,14 @@ "text": "Search the exchange's website for information describing the listing process and requirements. Study the information carefully.", "updated": 1618562031958 }, + { + "style": "List", + "text": "If not enough information is available publicly, feel free to contact their support or listing teams for more information." + }, + { + "style": "List", + "text": "You may also want to start filling a dummy listing requirement form to find out what kind of information the exchange requires." + }, { "style": "List", "text": "Report on your findings using the Research Requirements bullet list below.", @@ -66,7 +74,8 @@ }, { "style": "Text", - "text": "If you're not familiar with the process of editing pages in the Docs and contributing the pages you create or edit, please go to the Getting Started Plugin Workspace and do the Beyond the Basics Tutorial." + "text": "If you're not familiar with the process of editing pages in the Docs and contributing the pages you create or edit, please go to the Getting Started Tutorials Plugin Workspace and do the Beyond the Basics Tutorial.", + "updated": 1628509381517 }, { "style": "Subtitle", @@ -85,8 +94,8 @@ }, { "style": "Json", - "text": "docs.add Topic to Superalgos: Exchange Listing Requirements Research->Exchange Name Listing Requirements->N", - "updated": 1618486204475 + "text": "docs.add Topic to Governance: Exchange Listing Requirements Research->Exchange Name Listing Requirements->N", + "updated": 1628532030221 }, { "style": "List", @@ -139,7 +148,8 @@ }, { "style": "List", - "text": "Exchange Name->exchangeURL.com" + "text": "Exchange URL->exchangeURL.com", + "updated": 1628513074678 }, { "style": "List", @@ -161,6 +171,10 @@ "text": "Listing request form->pageURL.com", "updated": 1618498025893 }, + { + "style": "List", + "text": "Can list BEP 20 BSC tokens: Some exchanges may not be able to list tokens in the Binance Smart Chain. Make sure you find out if listing the token is technically possible." + }, { "style": "List", "text": "Listing fee: Exchanges usually charge for listing new coins. Enter the fee and include any comments, exceptions, or details that may be relevant to our particular case.", diff --git a/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-002-probit-global-listing-requirements.json b/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-002-probit-global-listing-requirements.json new file mode 100644 index 000000000..c31771016 --- /dev/null +++ b/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-002-probit-global-listing-requirements.json @@ -0,0 +1,318 @@ +{ + "topic": "Exchange Listing Requirements Research", + "pageNumber": "2", + "type": "Probit Global Listing Requirements", + "definition": { + "text": "The exchange is ready to list Superalgos. Listing fee is $25k, plus 1 BTC in project tokens.", + "updated": 1628512539086 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Listing Requirements", + "updated": 1628515442342 + }, + { + "style": "List", + "text": "Exchange name: Probit Global" + }, + { + "style": "List", + "text": "CMC ranking: 27", + "updated": 1628510522467 + }, + { + "style": "List", + "text": "Exchange home page: ", + "updated": 1628510560296 + }, + { + "style": "Link", + "text": "Exchange URL->www.probit.com", + "updated": 1628519777927 + }, + { + "style": "List", + "text": "Listing requirements page: ", + "updated": 1628510662586 + }, + { + "style": "Link", + "text": "Listing requirements->www.probit.com/en-us/listing", + "updated": 1628510672736 + }, + { + "style": "List", + "text": "Listing request form page: ", + "updated": 1628510689962 + }, + { + "style": "Link", + "text": "Listing request form->docs.google.com/forms/d/e/1FAIpQLSf4b5e25olgKVVY623XBe7Pw1LxFZcCVAGaBXLgJ0sw7KwvkA/viewform", + "updated": 1628510737641 + }, + { + "style": "List", + "text": "Can list BEP 20 tokens in BSC: Yes", + "updated": 1628511590834 + }, + { + "style": "List", + "text": "Listing fee: Bronze $25k, Silver $50k, Gold $80k -- plus 1 BTC in project tokens.", + "updated": 1628512487779 + }, + { + "style": "List", + "text": "Security deposit: No", + "updated": 1628510838412 + }, + { + "style": "List", + "text": "Volume requirements: No", + "updated": 1628510856025 + }, + { + "style": "List", + "text": "Market-making requirements: Included for 1 month in all plans; not required afterwards.", + "updated": 1628510894252 + }, + { + "style": "List", + "text": "Exchange users requirement: No", + "updated": 1628510904049 + }, + { + "style": "List", + "text": "Pairs available for first listing: USDT, BTC, ETH", + "updated": 1628510967084 + }, + { + "style": "List", + "text": "Waiting period: 2 weeks.", + "updated": 1628510983346 + }, + { + "style": "List", + "text": "Legal entity: A corporation is usually required.", + "updated": 1628511032973 + }, + { + "style": "List", + "text": "Legal opinion: Usually required.", + "updated": 1628511045422 + }, + { + "style": "List", + "text": "Selection process: N/A.", + "updated": 1628511087443 + }, + { + "style": "List", + "text": "Researcher's comments: I have an open channel with the listing team and have clarified some issues, as explained under the Negotiation title below.", + "updated": 1628512314800 + }, + { + "style": "Png", + "text": "PNGs/Governance/Docs/token-task-force/probit-listing-plans.png", + "updated": 1628516831766 + }, + { + "style": "List", + "text": "Researcher's Github.com Username: julian-molina", + "updated": 1628511321864 + }, + { + "style": "List", + "text": "Researcher's Telegram Username: @julianmolina", + "updated": 1628511330617 + }, + { + "style": "List", + "text": "Date of last revision: August 9th, 2021.", + "updated": 1628585744548 + }, + { + "style": "Title", + "text": "Negotiation" + }, + { + "style": "Text", + "text": "@julianmolina has confirmed that:", + "updated": 1628512180751 + }, + { + "style": "List", + "text": "they accept Superalgos for listing;", + "updated": 1628511554947 + }, + { + "style": "List", + "text": "we can coordinate the listing date to suit PR & Marketing campaigns." + }, + { + "style": "List", + "text": "they can wave the legal opinion requirement if it's clear the token is not a security;", + "updated": 1628533059002 + }, + { + "style": "List", + "text": "they don't need a corporation to sign the listing agreement; a KYCed executive (project leadership) works too;", + "updated": 1628533074328 + }, + { + "style": "List", + "text": "we can propose new or improved language in the listing agreement for a more balanced protection of both parties;", + "updated": 1628511650104 + }, + { + "style": "List", + "text": "we can have additional zero-fee accounts for market making at $5k each;", + "updated": 1628533110459 + }, + { + "style": "List", + "text": "they wouldn't de-list due to low volume for at least 6 months.", + "updated": 1628533123086 + }, + { + "style": "Title", + "text": "Exchange Evaluation" + }, + { + "style": "Subtitle", + "text": "Corporate Information", + "updated": 1628527538347 + }, + { + "style": "List", + "text": "Country of registration: Seychelles (from TOS page and Listing Agreement).", + "updated": 1628527930627 + }, + { + "style": "List", + "text": "Address: Suite 9, Ansuya Estate, Revolution Avenue, Victoria Mahe, Seychelles (from Listing Agreement)." + }, + { + "style": "List", + "text": "Year of registration: Unknown", + "updated": 1628527959834 + }, + { + "style": "List", + "text": "Physical offices: Unknown", + "updated": 1628527967290 + }, + { + "style": "List", + "text": "Licenses: Unknown", + "updated": 1628527972228 + }, + { + "style": "Subtitle", + "text": "Corporate Transparency on Website" + }, + { + "style": "List", + "text": "Footer info: Probit Global Service Limited | Company Registration Number: 207189 | representative: Ronald Chan. In process of registration: Probit Exchange OÜ | Company Registration Number: 14894573 | Representative: Ronald Chan.", + "updated": 1628527446408 + }, + { + "style": "List", + "text": "About page info: N/A.", + "updated": 1628527467687 + }, + { + "style": "List", + "text": "Leadership page info: N/A" + }, + { + "style": "List", + "text": "Observations: Poor. There is little clarity on the website as of where and how the company operates.", + "updated": 1628530441154 + }, + { + "style": "Subtitle", + "text": "Website Traction", + "updated": 1628528688773 + }, + { + "style": "List", + "text": "Alexa site rank: 3500", + "updated": 1628517005331 + }, + { + "style": "Link", + "text": "Alexa->www.alexa.com/siteinfo/probit.com" + }, + { + "style": "List", + "text": "Domain authority: 45", + "updated": 1628517390639 + }, + { + "style": "Link", + "text": "DA by Moz->moz.com/domain-analysis?site=probit.com", + "updated": 1628538393505 + }, + { + "style": "List", + "text": "CMC ranking: 27", + "updated": 1628517194530 + }, + { + "style": "List", + "text": "CoinGecko ranking: 63" + }, + { + "style": "List", + "text": "Top 100 Google SERP? [*]: No", + "updated": 1628527176017 + }, + { + "style": "List", + "text": "Top 200 Google SERP? [*]: No" + }, + { + "style": "Text", + "text": "(*) We search Google (UK region, no personalization) for the keyphrase \"crypto exchange\". The domain is either listed within the top X SERP or not.", + "updated": 1628527204901 + }, + { + "style": "Subtitle", + "text": "Community", + "updated": 1628528888597 + }, + { + "style": "List", + "text": "Telegram: 29k", + "updated": 1628528925197 + }, + { + "style": "Link", + "text": "Telegram English Community->t.me/ProbitEnglish" + }, + { + "style": "List", + "text": "Observations: A quick glance on August 9th, 2021. Users complain about deposits not clearing and other issues. There is some response from admins announcing an issue with wallet upgrades. Conversation seems reasonable.", + "updated": 1628532175405 + }, + { + "style": "Subtitle", + "text": "Liquidity & Volume" + }, + { + "style": "List", + "text": "1m BTC-USDT Chart" + }, + { + "style": "Png", + "text": "PNGs/Governance/Docs/token-task-force/probit-btc-usdt-1m-chart.PNG", + "updated": 1628530005285 + }, + { + "style": "Link", + "text": "BTC - USDT Chart->www.probit.com/app/exchange/BTC-USDT", + "updated": 1628530307201 + } + ] +} \ No newline at end of file diff --git a/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-003-lbank-listing-requirements.json b/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-003-lbank-listing-requirements.json new file mode 100644 index 000000000..3981d010a --- /dev/null +++ b/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-003-lbank-listing-requirements.json @@ -0,0 +1,261 @@ +{ + "topic": "Exchange Listing Requirements Research", + "pageNumber": "3", + "type": "LBank Listing Requirements", + "definition": { + "text": "Pending listing requirements and revision.", + "updated": 1628538709584 + }, + "paragraphs": [ + { + "style": "Title", + "text": "Listing Requirements", + "updated": 1628515469804 + }, + { + "style": "List", + "text": "Exchange name: LBank", + "updated": 1628512837877 + }, + { + "style": "List", + "text": "CMC ranking: The position of the exchange in the ranking as of the day of the research." + }, + { + "style": "List", + "text": "Exchange home page: Edit the string below with the name of the exchange and the URL (without the protocol). ", + "updated": 1628512823690 + }, + { + "style": "Link", + "text": "Exchange URL->exchangeURL.com", + "updated": 1628512847099 + }, + { + "style": "List", + "text": "Listing requirements page: Edit the string below with the URL (without the protocol) of the page where you got the core of the information in this report. ", + "updated": 1628512803920 + }, + { + "style": "Link", + "text": "Listing requirements->pageURL.com" + }, + { + "style": "List", + "text": "Listing request form page: Edit the string below with the URL (without the protocol) of the page (or online form) the project should use to request the listing of the token. ", + "updated": 1628512810149 + }, + { + "style": "Link", + "text": "Listing request form->pageURL.com" + }, + { + "style": "List", + "text": "Can list BEP 20 BSC tokens: Some exchanges may not be able to list tokens in the Binance Smart Chain. Make sure you find out if listing the token is technically possible." + }, + { + "style": "List", + "text": "Listing fee: Exchanges usually charge for listing new coins. Enter the fee and include any comments, exceptions, or details that may be relevant to our particular case." + }, + { + "style": "List", + "text": "Security deposit: Some exchanges require a security deposit to be returned to the project after the listing is completed. Describe the details of such requirements if they exist." + }, + { + "style": "List", + "text": "Volume requirements: Exchanges are in the business of charging transaction fees, so they usually expect to list tokens that have traction, in the understanding that such tokens will generate a certain level of trading volume. Some exchanges have a specific requirement about the expected volume. If the exchange requires a precise volume, enter it in numbers. Otherwise, describe what is expected in words." + }, + { + "style": "List", + "text": "Market-making requirements: Many times exchanges expect projects to guarantee liquidity for the token on both sides of the order book. They sometimes require projects to hire specific market-makers or ask the project how they will deal with the issue. Explain what the exchange expects in this regard." + }, + { + "style": "List", + "text": "Exchange users requirement: Some exchanges require the project to drive a certain number of users to the exchange. Describe any requirements that may exist in this regard." + }, + { + "style": "List", + "text": "Pairs available for first listing: Some exchanges limit the number of pairs or even the precise quote assets that may be used for first listings. Describe whatever the exchange requires or offers in this regard." + }, + { + "style": "List", + "text": "Waiting period: Most exchanges have a queue of listing requests and they may be able to estimate how long it takes to process. If there is information in this regard, include it here. The exchange may not announce what the estimate is, but you may deduce it or find out in community chats, forums, etc. Do your research." + }, + { + "style": "List", + "text": "Legal entity: Some exchanges may require the project to be represented by a legal entity (a foundation, corporation, etc). If that is the case, enter \"Yes\", and describe what the requirement is. If there is no such requirement, enter \"No\"." + }, + { + "style": "List", + "text": "Legal opinion: Some exchanges may require the project to get legal advice in the form of a \"legal opinion letter\" or some instrument of the sort, most times about the nature of the token, in particular, to determine if the token is a security or not. If that is the case, enter \"Yes\", and describe what the requirement is. If there is no such requirement, enter \"No\"." + }, + { + "style": "List", + "text": "Selection process: Some exchanges describe the nature of the decision-making process to select which tokens shall be listed. Some involve the participation of their community, a voting process, or things of the sort. Describe what the process is like if there is any information about it." + }, + { + "style": "List", + "text": "Researcher's comments: If you notice any information of importance to the listing process that is not covered in this list, include it here." + }, + { + "style": "List", + "text": "Researcher's Github.com Username: This helps track the author of each research contribution." + }, + { + "style": "List", + "text": "Researcher's Telegram Username: Same as above." + }, + { + "style": "List", + "text": "Date of last revision: This report may be updated every once in a while. Use this field to note the last time the report was updated." + }, + { + "style": "Title", + "text": "Negotiation" + }, + { + "style": "List", + "text": "List what progress has been made in the ongoing negotiation." + }, + { + "style": "Title", + "text": "Exchange Evaluation" + }, + { + "style": "Subtitle", + "text": "Corporate Information" + }, + { + "style": "List", + "text": "Country of registration: ", + "updated": 1628536538914 + }, + { + "style": "List", + "text": "Address: ", + "updated": 1628536544461 + }, + { + "style": "List", + "text": "Year of registration: ", + "updated": 1628536550106 + }, + { + "style": "List", + "text": "Physical offices: ", + "updated": 1628536554948 + }, + { + "style": "List", + "text": "Licenses: ", + "updated": 1628536559754 + }, + { + "style": "Subtitle", + "text": "Corporate Transparency on Website" + }, + { + "style": "List", + "text": "Footer info: None.", + "updated": 1628539579292 + }, + { + "style": "List", + "text": "About page info: None.", + "updated": 1628539586129 + }, + { + "style": "List", + "text": "Leadership page info: None.", + "updated": 1628539591833 + }, + { + "style": "List", + "text": "Observations: Obscure. Zero info provided as of where or how the company operates.", + "updated": 1628539616801 + }, + { + "style": "Subtitle", + "text": "Website Traction" + }, + { + "style": "List", + "text": "Alexa site rank: 1100", + "updated": 1628537403629 + }, + { + "style": "Link", + "text": "Alexa->www.alexa.com/siteinfo/lbank.info", + "updated": 1628537437035 + }, + { + "style": "List", + "text": "Domain authority: 44", + "updated": 1628538376155 + }, + { + "style": "Link", + "text": "DA by Moz->moz.com/domain-analysis?site=lbank.info", + "updated": 1628538362561 + }, + { + "style": "List", + "text": "CMC ranking: 52", + "updated": 1628536646750 + }, + { + "style": "List", + "text": "CoinGecko ranking: 32", + "updated": 1628536624836 + }, + { + "style": "List", + "text": "Top 100 Google SERP? [*]: No" + }, + { + "style": "List", + "text": "Top 200 Google SERP? [*]: No" + }, + { + "style": "List", + "text": "(*) We search Google (UK region, no personalization) for the keyphrase \"crypto exchange\". The domain is either listed within the top X SERP or not." + }, + { + "style": "Subtitle", + "text": "Community" + }, + { + "style": "List", + "text": "Telegram: 42k", + "updated": 1628538502945 + }, + { + "style": "Link", + "text": "Telegram English Community->t.me/LBank_en", + "updated": 1628538533078 + }, + { + "style": "List", + "text": "Observations: A quick look on August 9th, 2021. Light and decent conversation. Some shilling of coins. Some support requests from users redirected to the website's chat by admins. Many admins present. ", + "updated": 1628539131853 + }, + { + "style": "Subtitle", + "text": "Liquidity & Volume" + }, + { + "style": "List", + "text": "1m BTC-USDT Chart" + }, + { + "style": "Png", + "text": "PNGs/Governance/Docs/token-task-force/lbank-btc-usdt-1m-chart.PNG", + "updated": 1628538612321 + }, + { + "style": "Link", + "text": "BTC - USDT Chart->www.lbank.info/exchange/btc/usdt", + "updated": 1628538654684 + } + ] +} \ No newline at end of file diff --git a/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-004-bittrex-global-listing-requirements.json b/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-004-bittrex-global-listing-requirements.json new file mode 100644 index 000000000..8f1e7686c --- /dev/null +++ b/Projects/Governance/Schemas/Docs-Topics/E/Exchange/Exchange-Listing-Requirements-Research/exchange-listing-requirements-research-004-bittrex-global-listing-requirements.json @@ -0,0 +1,118 @@ +{ + "topic": "Exchange Listing Requirements Research", + "pageNumber": "4", + "type": "Bittrex Global Listing Requirements", + "definition": { + "text": "Write a summary for this topic page." + }, + "paragraphs": [ + { + "style": "Title", + "text": "Listing Requirements", + "updated": 1628515483720 + }, + { + "style": "List", + "text": "Exchange name: Use the official, most common name of the exchange; the same you used in the name of the page." + }, + { + "style": "List", + "text": "CMC ranking: The position of the exchange in the ranking as of the day of the research." + }, + { + "style": "List", + "text": "Exchange home page: Edit the string below with the name of the exchange and the URL (without the protocol). Test the link and make sure it works.", + "updated": 1628513218161 + }, + { + "style": "Link", + "text": "Exchange URL->exchangeURL.com" + }, + { + "style": "List", + "text": "Listing requirements page: Edit the string below with the URL (without the protocol) of the page where you got the core of the information in this report. Test the link and make sure it works.", + "updated": 1628513207300 + }, + { + "style": "Link", + "text": "Listing requirements->pageURL.com" + }, + { + "style": "List", + "text": "Listing request form page: Edit the string below with the URL (without the protocol) of the page (or online form) the project should use to request the listing of the token. Test the link and make sure it works.", + "updated": 1628513198400 + }, + { + "style": "Link", + "text": "Listing request form->pageURL.com" + }, + { + "style": "List", + "text": "Can list BEP 20 BSC tokens: Some exchanges may not be able to list tokens in the Binance Smart Chain. Make sure you find out if listing the token is technically possible." + }, + { + "style": "List", + "text": "Listing fee: Exchanges usually charge for listing new coins. Enter the fee and include any comments, exceptions, or details that may be relevant to our particular case." + }, + { + "style": "List", + "text": "Security deposit: Some exchanges require a security deposit to be returned to the project after the listing is completed. Describe the details of such requirements if they exist." + }, + { + "style": "List", + "text": "Volume requirements: Exchanges are in the business of charging transaction fees, so they usually expect to list tokens that have traction, in the understanding that such tokens will generate a certain level of trading volume. Some exchanges have a specific requirement about the expected volume. If the exchange requires a precise volume, enter it in numbers. Otherwise, describe what is expected in words." + }, + { + "style": "List", + "text": "Market-making requirements: Many times exchanges expect projects to guarantee liquidity for the token on both sides of the order book. They sometimes require projects to hire specific market-makers or ask the project how they will deal with the issue. Explain what the exchange expects in this regard." + }, + { + "style": "List", + "text": "Exchange users requirement: Some exchanges require the project to drive a certain number of users to the exchange. Describe any requirements that may exist in this regard." + }, + { + "style": "List", + "text": "Pairs available for first listing: Some exchanges limit the number of pairs or even the precise quote assets that may be used for first listings. Describe whatever the exchange requires or offers in this regard." + }, + { + "style": "List", + "text": "Waiting period: Most exchanges have a queue of listing requests and they may be able to estimate how long it takes to process. If there is information in this regard, include it here. The exchange may not announce what the estimate is, but you may deduce it or find out in community chats, forums, etc. Do your research." + }, + { + "style": "List", + "text": "Legal entity: Some exchanges may require the project to be represented by a legal entity (a foundation, corporation, etc). If that is the case, enter \"Yes\", and describe what the requirement is. If there is no such requirement, enter \"No\"." + }, + { + "style": "List", + "text": "Legal opinion: Some exchanges may require the project to get legal advice in the form of a \"legal opinion letter\" or some instrument of the sort, most times about the nature of the token, in particular, to determine if the token is a security or not. If that is the case, enter \"Yes\", and describe what the requirement is. If there is no such requirement, enter \"No\"." + }, + { + "style": "List", + "text": "Selection process: Some exchanges describe the nature of the decision-making process to select which tokens shall be listed. Some involve the participation of their community, a voting process, or things of the sort. Describe what the process is like if there is any information about it." + }, + { + "style": "List", + "text": "Researcher's comments: If you notice any information of importance to the listing process that is not covered in this list, include it here." + }, + { + "style": "List", + "text": "Researcher's Github.com Username: This helps track the author of each research contribution." + }, + { + "style": "List", + "text": "Researcher's Telegram Username: Same as above." + }, + { + "style": "List", + "text": "Date of last revision: This report may be updated every once in a while. Use this field to note the last time the report was updated." + }, + { + "style": "Title", + "text": "Negotiation" + }, + { + "style": "Text", + "text": "List what progress has been made in the ongoing negotiation." + } + ] +} \ No newline at end of file diff --git a/Projects/Governance/Schemas/Docs-Topics/I/Introduction/Introduction-to-Governance/introduction-to-governance-003-referral-program-overview.json b/Projects/Governance/Schemas/Docs-Topics/I/Introduction/Introduction-to-Governance/introduction-to-governance-003-referral-program-overview.json index ca66e04f4..695d360a6 100644 --- a/Projects/Governance/Schemas/Docs-Topics/I/Introduction/Introduction-to-Governance/introduction-to-governance-003-referral-program-overview.json +++ b/Projects/Governance/Schemas/Docs-Topics/I/Introduction/Introduction-to-Governance/introduction-to-governance-003-referral-program-overview.json @@ -3,8 +3,8 @@ "pageNumber": "3", "type": "Referral Program Overview", "definition": { - "text": "Before they may contribute, people need to find out about Superalgos in the first place! The referral program built-in the Governance Project is designed to incentivize the promotion of the project, either by word-of-mouth or “en masse” through articles, social media posts, videos, and other forms of influencer marketing.", - "updated": 1624698267400 + "text": "The referral program built-in the Governance Project is designed to incentivize the promotion of the project, either by word-of-mouth or “en masse” through articles, social media posts, videos, and other forms of influencer marketing.", + "updated": 1628099865032 }, "paragraphs": [ { diff --git a/Projects/Governance/UI/Function-Libraries/ProfileConstructor.js b/Projects/Governance/UI/Function-Libraries/ProfileConstructor.js index 0cb3f4a2f..be4360699 100644 --- a/Projects/Governance/UI/Function-Libraries/ProfileConstructor.js +++ b/Projects/Governance/UI/Function-Libraries/ProfileConstructor.js @@ -12,26 +12,36 @@ function newGovernanceFunctionLibraryProfileConstructor() { /* Some validations first... */ - if (node.payload.referenceParent === undefined) { - node.payload.uiObject.setErrorMessage("You need to reference the node that contains the data to be signed.") - return - } - let data = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'githubUsername') + let githubUsername = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'githubUsername') + let mnemonic = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'mnemonic') - if (data === undefined || data === "") { - node.payload.referenceParent.payload.uiObject.setErrorMessage("githubUsername config property missing.") + if (githubUsername === undefined || githubUsername === "") { + node.payload.uiObject.setErrorMessage("githubUsername config property missing.") return } - createNewAccount() + createWallet() - function createNewAccount() { - let params = { - method: 'createWalletAccount', - entropy: node.id + (new Date()).valueOf() + function createWallet() { + let params + + /* + If the user provides a mnemonic then we will get the private key and address from it, + otherwise, we will create a new private key and address. + */ + if (mnemonic === undefined || mnemonic === "") { + params = { + method: 'createWalletAccount', + entropy: node.id + (new Date()).valueOf() + } + } else { + params = { + method: 'mnemonicToPrivateKey', + mnemonic: mnemonic + } } - let url = 'WEB3' // we don't need to ask this to any specific superalgos node. + let url = 'WEB3' // We will access the default Client WEB3 endpoint. httpRequest(JSON.stringify(params), url, onResponse) @@ -39,7 +49,6 @@ function newGovernanceFunctionLibraryProfileConstructor() { /* Lets check the result of the call through the http interface */ if (err.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { node.payload.uiObject.setErrorMessage('Call via HTTP Interface failed.') - walletAccountNode.payload.uiObject.menu.internalClick('Delete UI Object') return } @@ -47,8 +56,16 @@ function newGovernanceFunctionLibraryProfileConstructor() { /* Lets check the result of the method call */ if (response.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { - node.payload.uiObject.setErrorMessage('Call to WEB3 Server failed. ' + response.error) - return + + if (mnemonic === undefined || mnemonic === "") { + node.payload.uiObject.setErrorMessage('Call to WEB3 Server failed. ' + response.error) + console.log('Call to WEB3 Server failed. ' + response.error) + return + } else { + node.payload.uiObject.setErrorMessage('Call to WEB3 Server failed. Most likely the Mnemonic provided is not correct.' + response.error) + console.log('Call to WEB3 Server failed. Most likely the Mnemonic provided is not correct.' + response.error) + return + } } signUserProfileData(response.address, response.privateKey) @@ -62,7 +79,7 @@ function newGovernanceFunctionLibraryProfileConstructor() { params: { method: "signData", privateKey: privateKey, - data: data + data: githubUsername } } @@ -83,11 +100,34 @@ function newGovernanceFunctionLibraryProfileConstructor() { console.log('Call to WEB3 Server failed. ' + response.error) return } - UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload.referenceParent.payload, 'signature', response.signature) + let userProfile = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject( + node, + 'User Profile', + UI.projects.foundations.spaces.designSpace.workspace.workspaceNode.rootNodes + ) + /* + We store at the User Profile the Signed githubUsername + */ + UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(userProfile.payload, 'signature', response.signature) UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload, 'address', address) UI.projects.foundations.utilities.nodeConfig.saveConfigProperty(node.payload, 'privateKey', privateKey) - - node.payload.uiObject.setInfoMessage("Profile Account has been successfully created.") + /* + We set the name of the User Profile as the githubUsername + */ + userProfile.name = githubUsername + /* + We also Install the User Profile as a Plugin, which in turns saves it. + */ + userProfile.payload.uiObject.menu.internalClick('Install as Plugin') + userProfile.payload.uiObject.menu.internalClick('Install as Plugin') + /* + Show nice message. + */ + if (mnemonic === undefined || mnemonic === "") { + node.payload.uiObject.setInfoMessage("Profile Private Key has been successfully created. User Profile installed as a plugin and saved. Use the Private Key at a crypto wallet and delete this node once done.", 10000) + } else { + node.payload.uiObject.setInfoMessage("Mnemonic successfully imported. User Profile installed as a plugin and saved. Your external wallet was sucessfully linked to your profile.", 10000) + } } } } diff --git a/Projects/Governance/UI/Spaces/Reports-Space/CommandInterface.js b/Projects/Governance/UI/Spaces/Reports-Space/CommandInterface.js index fbde90f88..d9d5ad775 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/CommandInterface.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/CommandInterface.js @@ -41,6 +41,10 @@ function newGovernanceReportsCommmandInterface() { message = 'Automated PR merging process.' } + /* Closing the Governance Tab */ + UI.projects.governance.spaces.reportsSpace.sidePanelTab.close() + UI.projects.education.spaces.docsSpace.sidePanelTab.open() + /* Find the Username and Password */ let apisNode = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadByNodeType('APIs') if (apisNode === undefined) { @@ -62,36 +66,53 @@ function newGovernanceReportsCommmandInterface() { return } + UI.projects.education.spaces.docsSpace.navigateTo('Governance', 'Topic', 'Gov Message - Processing Pull Requests') + message = message.replaceAll('#', '_HASHTAG_') message = message.replaceAll('/', '_SLASH_') - httpRequest( - undefined, - 'Gov/PRs/' + - message + '/' + - config.username + '/' + - config.token + '/' + - UI.projects.education.spaces.docsSpace.currentBranch + '/' + - UI.projects.education.spaces.docsSpace.contributionsBranch - , onResponse) + /* Lets execute this command against the Client */ - UI.projects.education.spaces.docsSpace.navigateTo('Governance', 'Topic', 'Gov Message - Processing Pull Requests') + let params = { + method: 'mergePullRequests', + commitMessage: message, + username: config.username, + token: config.token + } - return + let url = 'GOV' // We will access the default Client GOV endpoint. + + httpRequest(JSON.stringify(params), url, onResponse) function onResponse(err, data) { + /* Lets check the result of the call through the http interface */ - data = JSON.parse(data) - if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result && data.result === GLOBAL.DEFAULT_OK_RESPONSE.result) { + if (err.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + console.log('[ERROR] Call via HTTP Interface failed.' + err.stack) + console.log('[ERROR] Params = ' + JSON.stringify(params)) + return + } + + let response = JSON.parse(data) + + /* Lets check the result of the method call */ + if (response.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + console.log('[ERROR] Call to Client Github Server failed.' + err.stack) + console.log('[ERROR] Params = ' + JSON.stringify(params)) + } + + /* Successful Call */ + + if (response.result === GLOBAL.DEFAULT_OK_RESPONSE.result) { UI.projects.education.spaces.docsSpace.navigateTo('Governance', 'Topic', 'Gov Message - Pull Requests Processed') } else { UI.projects.education.spaces.docsSpace.navigateTo( - data.docs.project, - data.docs.category, - data.docs.type, - data.docs.anchor, + response.docs.project, + response.docs.category, + response.docs.type, + response.docs.anchor, undefined, - data.docs.placeholder + response.docs.placeholder ) } } diff --git a/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js b/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js index 5790330d2..3487a3c57 100644 --- a/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js +++ b/Projects/Governance/UI/Spaces/Reports-Space/ReportsSpace.js @@ -231,15 +231,6 @@ function newGobernanceReportsSpace() { 'width: ' + thisObject.container.frame.width + 'px;' + 'height: ' + thisObject.container.frame.height + 'px' } - - /* - Monitor the Docs Space to see if its tab is opened, to close this space tab. - */ - if (UI.projects.education.spaces.docsSpace.sidePanelTab.isOpen === true && - thisObject.sidePanelTab.isOpen === true - ) { - thisObject.sidePanelTab.close() - } } function getContainer(point, purpose) { diff --git a/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js b/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js index 55723d405..0166c361a 100644 --- a/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js +++ b/Projects/Governance/UI/Spaces/User-Profile-Space/UserProfile.js @@ -37,7 +37,7 @@ function newGovernanceUserProfileSpace() { If the workspace is not related to governance, then we exit the Intialize Function */ let resultsArary = UI.projects.foundations.spaces.designSpace.workspace.getHierarchyHeadsByNodeType('User Profile') - if (resultsArary.length === 0 || resultsArary.length === 1) { return } + if (resultsArary.length === 0) { return } /* Find the Username and Password */ @@ -68,69 +68,135 @@ function newGovernanceUserProfileSpace() { requestStars() function requestStars() { - httpRequest( - undefined, - 'Gov/getGithubStars/' + - 'Superalgos' + '/' + - config.username + '/' + - config.token - , onGithubStarsResponse) + + let params = { + method: 'getGithubStars', + repository: 'Superalgos', + username: config.username, + token: config.token + } + + let url = 'GOV' // We will access the default Client GOV endpoint. + + httpRequest(JSON.stringify(params), url, onResponse) + + function onResponse(err, data) { + + /* Lets check the result of the call through the http interface */ + if (err.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + console.log('[ERROR] Call via HTTP Interface failed. err.stack = ' + err.stack) + console.log('[ERROR] params = ' + JSON.stringify(params)) + return + } + + let response = JSON.parse(data) + + /* Lets check the result of the method call */ + if (response.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + console.log('[ERROR] Call to Client Github Server failed. err.stack = ' + err.stack) + console.log('[ERROR] params = ' + JSON.stringify(params)) + console.log('[ERROR] response = ' + JSON.stringify(response)) + return + } + + /* Successful Call */ + + let githubStarsArray = response.githubListArray + + for (let i = 0; i < githubStarsArray.length; i++) { + let githubUsername = githubStarsArray[i] + thisObject.githubStars.set(githubUsername, 1) + } + + requestWatchers() + } } function requestWatchers() { - httpRequest( - undefined, - 'Gov/getGithubWatchers/' + - 'Superalgos' + '/' + - config.username + '/' + - config.token - , onGithubWatchersResponse) + + let params = { + method: 'getGithubWatchers', + repository: 'Superalgos', + username: config.username, + token: config.token + } + + let url = 'GOV' // We will access the default Client GOV endpoint. + + httpRequest(JSON.stringify(params), url, onResponse) + + function onResponse(err, data) { + + /* Lets check the result of the call through the http interface */ + if (err.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + console.log('[ERROR] Call via HTTP Interface failed. err.stack = ' + err.stack) + console.log('[ERROR] params = ' + JSON.stringify(params)) + return + } + + let response = JSON.parse(data) + + /* Lets check the result of the method call */ + if (response.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + console.log('[ERROR] Call to Client Github Server failed. err.stack = ' + err.stack) + console.log('[ERROR] params = ' + JSON.stringify(params)) + console.log('[ERROR] response = ' + JSON.stringify(response)) + return + } + + /* Successful Call */ + + let githubWatchersArray = response.githubListArray + + for (let i = 0; i < githubWatchersArray.length; i++) { + let githubUsername = githubWatchersArray[i] + thisObject.githubWatchers.set(githubUsername, 1) + } + + requestForks() + } } function requestForks() { - httpRequest( - undefined, - 'Gov/getGithubForks/' + - 'Superalgos' + '/' + - config.username + '/' + - config.token - , onGithubForksResponse) - } - function onGithubStarsResponse(err, githubData) { - //console.log(githubData) - /* Lets check the result of the call through the http interface */ - let githubStarsArray = JSON.parse(githubData) - - for (let i = 0; i < githubStarsArray.length; i++) { - let githubUsername = githubStarsArray[i] - thisObject.githubStars.set(githubUsername, 1) + let params = { + method: 'getGithubForks', + repository: 'Superalgos', + username: config.username, + token: config.token } - requestWatchers() - } + let url = 'GOV' // We will access the default Client GOV endpoint. - function onGithubWatchersResponse(err, githubData) { - //console.log(githubData) - /* Lets check the result of the call through the http interface */ - let githubWatchersArray = JSON.parse(githubData) + httpRequest(JSON.stringify(params), url, onResponse) - for (let i = 0; i < githubWatchersArray.length; i++) { - let githubUsername = githubWatchersArray[i] - thisObject.githubWatchers.set(githubUsername, 1) - } + function onResponse(err, data) { - requestForks() - } + /* Lets check the result of the call through the http interface */ + if (err.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + console.log('[ERROR] Call via HTTP Interface failed. err.stack = ' + err.stack) + console.log('[ERROR] params = ' + JSON.stringify(params)) + return + } - function onGithubForksResponse(err, githubData) { - //console.log(githubData) - /* Lets check the result of the call through the http interface */ - let githubForksArray = JSON.parse(githubData) + let response = JSON.parse(data) - for (let i = 0; i < githubForksArray.length; i++) { - let githubUsername = githubForksArray[i] - thisObject.githubForks.set(githubUsername, 1) + /* Lets check the result of the method call */ + if (response.result !== GLOBAL.DEFAULT_OK_RESPONSE.result) { + console.log('[ERROR] Call to Client Github Server failed. err.stack = ' + err.stack) + console.log('[ERROR] params = ' + JSON.stringify(params)) + console.log('[ERROR] response = ' + JSON.stringify(response)) + return + } + + /* Successful Call */ + + let githubForksArray = response.githubListArray + + for (let i = 0; i < githubForksArray.length; i++) { + let githubUsername = githubForksArray[i] + thisObject.githubForks.set(githubUsername, 1) + } } } } diff --git a/Projects/ProjectsSchema.json b/Projects/ProjectsSchema.json index f5b0499ae..69eb196d4 100644 --- a/Projects/ProjectsSchema.json +++ b/Projects/ProjectsSchema.json @@ -871,7 +871,28 @@ } ] }, - "CL": {}, + "CL": { + "utilities": [ + { + "name": "Async Functions", + "propertyName": "asyncFunctions", + "functionName": "newFoundationsUtilitiesAsyncFunctions", + "fileName": "AsyncFunctions.js" + }, + { + "name": "Web Access", + "propertyName": "webAccess", + "functionName": "newFoundationsUtilitiesWebAccess", + "fileName": "WebAccess.js" + }, + { + "name": "Plugins", + "propertyName": "plugins", + "functionName": "newFoundationsUtilitiesPlugins", + "fileName": "Plugins.js" + } + ] + }, "plugins": [ "Data Mines", "Trading Mines", diff --git a/README.md b/README.md index 9be699418..d7471ba2b 100644 --- a/README.md +++ b/README.md @@ -15,94 +15,116 @@ Superalgos is not just another open-source project. We are an open and welcoming Follow the link to [INSTALL.md](https://github.com/Superalgos/Superalgos/blob/develop/INSTALL.md). -# What is Superalgos? +# The Superalgos Project -## Superalgos is a token-incentivized open-source project. +## Superalgos is a token-incentivized open-source project -The project incentivizes users to continuously improve Superalgos. Users contribute to the codebase, to the library of trading intelligence, and to project development in general -- and earn SA tokens for their contributions. Providing free, high-quality, real-time trading-intelligence over the Superalgos peer-to-peer network is a key activity, also incentivized. +The protocol incentivizes users to improve Superalgos. To do that, users contribute to the codebase, add to the library of trading intelligence, and help with project development in general, earning Superalgos (SA) tokens for their contributions. Protocol-incentivized contributions allow the project to distribute free of charge, high-quality trading intelligence over the Superalgos peer-to-peer network, currently in the making. -## Superalgos is an open-network project built on top of the Internet + Bitcoin + Lighting open networks. +## Superalgos is an open-network project built on top of other open networks: Internet + Bitcoin + Lightning -This means that the Superalgos open network target audience is 8 billion people and that payments of products and services offered through the Superalgos Network are done with bitcoin over the Lighting Network. +Because it's an open network, our target audience is, theoretically, 8 billion people. While all products and services provided by the project are free of charge, third-party products and services distributed through the Superalgos Network will be payable in bitcoin over the Lighting Network. -## Superalgos is a free and open trading-intelligence network anyone can plug-in to emit or consume real-time trading signals. +## The Superalgos Network is an open trading intelligence network distributing trading signals -Signals are cryptographically signed by trading intelligence producers and backed by their token holdings and reputation. The Superalgos p2p Network sorts how signals are distributed, prioritizing signals-consumers with the biggest token holdings. +Anyone may plug in to provide or consume trading signals in a permissionless manner. Signals are cryptographically signed by trading intelligence providers with a reputation reflected in their token holdings. The Superalgos p2p Network prioritizes signals distribution according to the token holdings of consumers. -## Superalgos has the ultimate scalable and defensible business model. +## Superalgos has a scalable and defensible business model -* Everything is free and open source for its user base: trading automation tools + mobile apps for consuming real-time trading intelligence. -* The Superalgos algo-traders community members compete with each other to mine SA tokens by producing high quality real-time trading intelligence which is consumed for free by the Superalgos user base to automate their trading. -* Trading Intelligence is distributed via a protocol-incentivized p2p network with no network fees. -* The long term viability is guaranteed since the business model can not be disrupted. +* Everything is open-source and free of charge for all users: trading automation tools to produce trading intelligence, and mobile apps to consume it. -## Superalgos massive adoption is highly likely since all friction has been removed. +* Algo traders compete to mine SA tokens, producing high-quality, ever-evolving trading intelligence paid for by the protocol. -* Users don’t need to pay for the mobile app to consume trading intelligence. -* Users don’t need to pay for high-quality trading intelligence. -* Algo-traders don’t need to pay for the tools to produce trading intelligence. -* Real-time trading Intelligence does not need to be bought or sold. The Superalgos Project buys real-time trading intelligence (via minting new tokens) from the algo-traders community and distributes it for free to all the user base via its p2p network. -* The Superalgos SA token does not need to be spent to be used, avoiding the need to pay blockchain fees. Only it’s balance is relevant to backup the user profile’s reputation and skin on the game, and in the case of real-time trading intelligence consumers give them priority access to signals. +* Trading Intelligence is distributed via a p2p network with zero network fees. -## Holding the SA Token is the open network business model for all participants. +* The long-term viability is guaranteed since the business model is undisruptable. -* Buying pressure will come from users competing to be among the first to receive the trading-signals. -* Buying pressure will also come from algo-traders competing to be at the top of the list of real-time trading intelligence providers. -* Algo trades make money, users make money, the token appreciates, everyone wins. +## With all friction removed, mass adoption is inevitable -## Superalgos will become one of the most powerful consumer brands on the planet because: +* Users do not pay for the mobile app. -* We are building a brand that is inline and incentivized with our users. -* We have the business acumen and profile of a token-incentivized-open source project. -* The project acts as an union, collecting benefits for its user base, like better exchange fees for all. -* We don’t collect or sell user data. -* We don’t sell ads to anyone. -* We don’t collect or sell users trading information that can be used to front run them. -* We know how we are going to make money, and it is on token appreciation. -* Founders and team are just token holders as any other contributors. +* Users do not pay for trading intelligence. -## Superalgos Mobile Apps will have the best user experience possible because: +* Algo traders do not pay for the tools to produce trading intelligence. -* The best user experience means users should be able to consume top quality, free real-time trading intelligence and autonomously execute trades while they are sleeping. -* Users just need to select their exchange, provide an exchange access token, define their base asset, amount of funds to be traded and trading intelligence providers. -* Their mobile phone will become a 24/7 trading bot plugged into the Superalgos Network to receive trading signals and firing trading orders at any exchange. -* Similar to a bitcoin wallet, anyone will be able to develop Superalgos Mobile Apps for consuming trading-signals. This open competition will be a race to the best UX possible. -* Established crypto wallets or any trading app in general, can plugin into the Superalgos Network and consume real-time trading intelligence for free. +* Trading Intelligence does not need to be bought or sold. The project pays for trading intelligence by minting new tokens and distributes intelligence to all users, free of charge. -## Superalgos does not sell it’s tokens to anyone for any reason. +* The Superalgos (SA) token use case does not require spending, avoiding blockchain fees. Only wallet balance is relevant to determining the reputation and skin in the game of intelligence providers. The same is true for consumers. It is their wallet balance that defines the order of distribution of signals. -SA Tokens are distributed after each software release among the contributors of that release. If you want to mine SA tokens you can start contributing yourself or hire / sponsor someone (usually a developer or trader) to do it on your behalf. +## Holding the SA Token is the business model for all participants -Users are free to buy or sell their SA Tokens. No exchange has listed SA Tokens yet. We expect that to happen soon. +* Buying pressure will come from users competing to be among the first to receive trading signals. + +* Algo traders build up their holdings by producing top trading intelligence and compete for the reputation entailed in their holdings. + +* Project developers earn tokens for their contributions. + +## Superalgos will become a powerful consumer brand because it is user-centric: + +* We are building a brand 100% in line with consumer interests. + +* We cherish the values of a decentralized, token-incentivized, open-source project. + +* The project acts as a union, acquiring benefits for users, like better exchange fees for all. + +* We do not collect or sell user data. + +* We do not sell ads. + +* We do not collect or sell user trading information. + +* We know how we are going to make money: token appreciation. + +* Founders and team are just token holders, like every other contributor. + +## Superalgos Mobile Apps will feature a seamless user experience + +* The app will consume top-quality trading intelligence and autonomously execute trades. + +* Users will select an exchange, provide an exchange access token, define their base asset, initial capital, and trading intelligence providers. + +* A mobile phone will become a 24/7 trading bot plugged into the Superalgos Network, receiving trading signals and firing orders on any exchange. + +* Similar to a bitcoin wallet, anyone will be able to develop Superalgos Mobile Apps to consume trading signals. This open competition will be a race to the best UX possible. + +* Crypto wallets and trading apps will plug into the Superalgos Network and consume real-time trading intelligence for free. + +## The Superalgos Project does not sell tokens + +The protocol distributes Superalgos (SA) Tokens after each software release, among contributors of that release. If you wish to mine tokens, you may start contributing anytime. You may also hire/sponsor someone (usually a developer or trader) to do it on your behalf. # Software Architecture -Superalgos features these 3 main components: +Superalgos features three main components: -1. **Superalgos Platform:** An already functional set of tools designed for algo-traders for automating their own trading and producing trading-signals. +1. **Superalgos Platform:** A set of tools designed for algo-traders to design, build, test, and deploy trading bots and produce trading signals. The platform has been trading live since mid-2020 and is virtually ready to go out of beta. +2. **Superalgos Mobile:** An under-development mobile app reference implementation that consumes existing trading intelligence to automate trading. -2. **Superalgos Mobile:** An under-development mobile app reference implementation for cosuming real-time trading intelligence and automate users trading. +3. **Superalgos Network:** An under-development open p2p network for distributing trading intelligence from providers (algo-traders) to consumers (the project's user base). - -3. **Superalgos Network:** An under-development open p2p network for distributing real-time trading intelligence between producers (algo-traders) and consumers (the project's user base). - - -All of the above is / will be hosted in this repository. +All of the above is or will be hosted in this repository. # Superalgos is User-centric * No ads, anywhere. -* No sign up / logins. + +* No sign-up / logins. + * No user/usage data collection of any kind. + * No user trading information collected or sold. + * Runs 100% on uncompiled code anyone can read and audit. # Superalgos Development Pipeline -* **Superalgos P2P Network:** will allow algo-traders to share trading signals with Superalgos users consuming these signals via a mobile app. -* **Real-time Trading Signals:** will allow users to emit trading signals and be rewarded with SA Tokens. +* **Superalgos P2P Network:** Will allow the project to distribute trading intelligence produced by algo-traders. + +* **Trading Signals:** Will allow providers to broadcast trading signals and be rewarded with SA Tokens. + * **Superalgos Mobile:** Will allow users to consume trading signals for free and autonomously execute trades from their mobile phones. + * **Ethereum Integration:** Will allow mining data from an Ethereum network node, and bring it into the Superalgos workflow. # What is the Superalgos Platform? diff --git a/TaskServer/MultiProject.js b/TaskServer/MultiProject.js index 3ab9fd525..cb64d2d0b 100644 --- a/TaskServer/MultiProject.js +++ b/TaskServer/MultiProject.js @@ -31,6 +31,8 @@ exports.newMultiProject = function () { projectInstance.processModules = {} projectInstance.botModules = {} + if (projectDefinition.TS === undefined) { continue } + /* Set up Utilities of this Project */ if (projectDefinition.TS.utilities !== undefined) { for (let j = 0; j < projectDefinition.TS.utilities.length; j++) {