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-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/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++) {