From 2df3bceb1db304b44f8dd6a5b79109580bcd7f66 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Tue, 18 Feb 2020 10:11:44 +0100 Subject: [PATCH] dragging improved --- CanvasApp/ChartingSpace/EdgeEditor.js | 14 +- CanvasApp/ChartingSpace/TimelineChart.js | 2 +- CanvasApp/PostLoader.js | 12 -- CanvasApp/Scales/RateScale.js | 24 ++- WebServer/Images/Icons/style-01/dashboard.png | Bin 7300 -> 9518 bytes WebServer/Images/Icons/style-01/viewport.png | Bin 11925 -> 14944 bytes docs/_config.yml | 2 +- docs/_data/charting_space.md | 6 +- docs/_data/charting_space.yml | 6 +- docs/_data/concepts.md | 2 +- docs/_data/concepts.yml | 2 +- docs/_data/sidebars/suite_sidebar.yml | 82 ++++++-- ...-------------------------------template.md | 17 +- .../charting_space/charting-space.md | 21 +- docs/_includes/charting_space/dashboard.md | 103 ++++++++++ docs/_includes/charting_space/layer.md | 23 ++- .../charting_space/layers-manager.md | 17 +- docs/_includes/charting_space/rate-scale.md | 90 ++++++--- .../charting_space/time-frame-scale.md | 19 +- docs/_includes/charting_space/time-machine.md | 19 +- docs/_includes/charting_space/time-scale.md | 76 +++++-- .../charting_space/timeline-chart.md | 21 +- docs/_includes/charting_space/viewport.md | 29 ++- docs/_includes/crypto_ecosystem/asset.md | 17 +- .../crypto_ecosystem/crypto-ecosystem.md | 17 +- .../crypto_ecosystem/crypto-exchange.md | 17 +- .../crypto_ecosystem/crypto-exchanges.md | 17 +- .../exchange-account-asset.md | 17 +- .../crypto_ecosystem/exchange-account-key.md | 17 +- .../crypto_ecosystem/exchange-accounts.md | 17 +- .../crypto_ecosystem/exchange-assets.md | 17 +- .../crypto_ecosystem/exchange-markets.md | 17 +- .../crypto_ecosystem/market-base-asset.md | 17 +- .../crypto_ecosystem/market-quoted-asset.md | 17 +- docs/_includes/crypto_ecosystem/market.md | 17 +- .../crypto_ecosystem/user-account.md | 17 +- .../_includes/crypto_ecosystem/user-assets.md | 17 +- docs/_includes/crypto_ecosystem/user-keys.md | 17 +- ...-------------------------------template.md | 17 +- .../data_mine/calculations-procedure.md | 17 +- docs/_includes/data_mine/chart-points.md | 17 +- .../data_mine/data-building-procedure.md | 17 +- docs/_includes/data_mine/data-dependency.md | 17 +- docs/_includes/data_mine/data-formula.md | 17 +- docs/_includes/data_mine/data-mine.md | 17 +- .../_includes/data_mine/dataset-definition.md | 17 +- .../data_mine/execution-finished-event.md | 17 +- .../data_mine/execution-started-event.md | 17 +- docs/_includes/data_mine/formula.md | 17 +- docs/_includes/data_mine/indicator-bot.md | 17 +- docs/_includes/data_mine/javascript-code.md | 19 +- docs/_includes/data_mine/output-dataset.md | 17 +- docs/_includes/data_mine/panel-data.md | 17 +- docs/_includes/data_mine/plotter-module.md | 17 +- docs/_includes/data_mine/plotter-panel.md | 17 +- docs/_includes/data_mine/plotter.md | 17 +- docs/_includes/data_mine/point-formula.md | 17 +- docs/_includes/data_mine/point.md | 17 +- docs/_includes/data_mine/polygon-body.md | 17 +- docs/_includes/data_mine/polygon-border.md | 17 +- docs/_includes/data_mine/polygon-vertex.md | 17 +- docs/_includes/data_mine/polygon.md | 17 +- .../data_mine/procedure-initialization.md | 17 +- docs/_includes/data_mine/procedure-loop.md | 17 +- .../_includes/data_mine/process-definition.md | 17 +- .../data_mine/process-dependencies.md | 17 +- docs/_includes/data_mine/process-output.md | 17 +- .../_includes/data_mine/product-definition.md | 17 +- docs/_includes/data_mine/record-definition.md | 17 +- docs/_includes/data_mine/record-property.md | 17 +- docs/_includes/data_mine/sensor-bot.md | 17 +- docs/_includes/data_mine/shapes.md | 17 +- docs/_includes/data_mine/status-dependency.md | 17 +- docs/_includes/data_mine/status-report.md | 17 +- docs/_includes/data_mine/style-condition.md | 17 +- docs/_includes/data_mine/style.md | 17 +- docs/_includes/data_mine/template.md | 17 +- docs/_includes/data_mine/trading-bot.md | 17 +- ...-------------------------------template.md | 17 +- docs/_includes/network/backtesting-session.md | 17 +- docs/_includes/network/data-mining.md | 17 +- docs/_includes/network/data-product.md | 17 +- docs/_includes/network/data-storage.md | 17 +- .../network/forward-testing-session.md | 17 +- .../network/indicator-bot-instance.md | 17 +- .../network/indicator-process-instance.md | 17 +- docs/_includes/network/key-instance.md | 17 +- .../_includes/network/live-trading-session.md | 17 +- docs/_includes/network/market-reference.md | 17 +- docs/_includes/network/network-node.md | 17 +- docs/_includes/network/network.md | 23 ++- .../network/paper-trading-session.md | 17 +- .../network/production-environment.md | 17 +- docs/_includes/network/sensor-bot-instance.md | 17 +- .../network/sensor-process-instance.md | 17 +- docs/_includes/network/session-based-data.md | 17 +- .../network/session-independent-data.md | 17 +- docs/_includes/network/session-reference.md | 17 +- docs/_includes/network/single-market-data.md | 17 +- docs/_includes/network/task-manager.md | 17 +- docs/_includes/network/task.md | 17 +- docs/_includes/network/testing-environment.md | 17 +- .../_includes/network/trading-bot-instance.md | 17 +- .../network/trading-process-instance.md | 17 +- ...-------------------------------template.md | 17 +- docs/_includes/trading_system/base-asset.md | 17 +- .../trading_system/close-execution.md | 17 +- docs/_includes/trading_system/close-stage.md | 17 +- docs/_includes/trading_system/condition.md | 17 +- .../_includes/trading_system/fee-structure.md | 17 +- docs/_includes/trading_system/formula.md | 17 +- .../trading_system/initial-definition.md | 17 +- docs/_includes/trading_system/initial-stop.md | 17 +- .../trading_system/initial-take-profit.md | 17 +- .../trading_system/javascript-code.md | 19 +- docs/_includes/trading_system/manage-stage.md | 17 +- .../trading_system/next-phase-event.md | 17 +- .../trading_system/open-execution.md | 17 +- docs/_includes/trading_system/open-stage.md | 17 +- docs/_includes/trading_system/parameters.md | 17 +- docs/_includes/trading_system/phase-0.md | 17 +- docs/_includes/trading_system/phase-1.md | 17 +- .../_includes/trading_system/position-rate.md | 17 +- .../_includes/trading_system/position-size.md | 17 +- docs/_includes/trading_system/quoted-asset.md | 17 +- docs/_includes/trading_system/situation.md | 17 +- docs/_includes/trading_system/slippage.md | 17 +- docs/_includes/trading_system/stop.md | 17 +- docs/_includes/trading_system/strategy.md | 17 +- .../trading_system/take-position-event.md | 17 +- docs/_includes/trading_system/take-profit.md | 17 +- docs/_includes/trading_system/time-frame.md | 17 +- docs/_includes/trading_system/time-range.md | 17 +- .../trading_system/trading-system.md | 19 +- .../trading_system/trigger-off-event.md | 17 +- .../trading_system/trigger-on-event.md | 17 +- .../_includes/trading_system/trigger-stage.md | 17 +- docs/css/customstyles.css | 2 +- docs/images/icons/150-dashboard.png | Bin 0 -> 5828 bytes docs/images/icons/150-toggle-panel-off.png | Bin 0 -> 9402 bytes docs/images/icons/150-toggle-panel-on.png | Bin 0 -> 8415 bytes docs/images/icons/150-viewport.png | Bin 7688 -> 9017 bytes docs/images/icons/dashboard.png | Bin 0 -> 1871 bytes docs/images/icons/toggle-panel-off.png | Bin 0 -> 3485 bytes docs/images/icons/toggle-panel-on.png | Bin 0 -> 2662 bytes docs/images/icons/viewport.png | Bin 2775 -> 3050 bytes docs/index.md | 21 +- .../pages/suite/suite-advanced-backtesting.md | 4 +- .../suite/suite-anatomy-of-an-indicator.md | 4 +- docs/pages/suite/suite-arranging-dashboard.md | 18 ++ docs/pages/suite/suite-bots.md | 4 +- docs/pages/suite/suite-build-a-plotter.md | 2 +- docs/pages/suite/suite-build-an-indicator.md | 4 +- .../suite/suite-charting-space-hierarchy.md | 190 ++---------------- docs/pages/suite/suite-charting-space.md | 20 ++ docs/pages/suite/suite-charts-overview.md | 2 +- docs/pages/suite/suite-consulting-logs.md | 2 +- docs/pages/suite/suite-data-mines.md | 2 +- docs/pages/suite/suite-datasets.md | 2 +- docs/pages/suite/suite-dependencies.md | 2 +- .../suite/suite-design-space-interface.md | 6 +- ...ign-space-workspace-and-data-structures.md | 10 +- docs/pages/suite/suite-download-and-set-up.md | 24 +-- .../suite/suite-execution-limitations.md | 2 +- .../suite-getting-ready-to-trade-live.md | 2 +- docs/pages/suite/suite-hierarchies.md | 6 +- docs/pages/suite/suite-how-bots-work.md | 16 +- .../suite/suite-input-to-output-cycle.md | 4 +- docs/pages/suite/suite-internal-variables.md | 2 +- docs/pages/suite/suite-layer-managers.md | 40 ++++ docs/pages/suite/suite-managing-processes.md | 2 +- ...ket-data-indicators-seem-to-be-outdated.md | 2 +- ...rward-testing-and-live-trading-sessions.md | 6 +- docs/pages/suite/suite-my-system-gets-slow.md | 2 +- .../suite/suite-navigating-time-machines.md | 23 +++ docs/pages/suite/suite-quick-overview.md | 8 +- docs/pages/suite/suite-references.md | 8 +- docs/pages/suite/suite-reporting-bugs.md | 6 +- docs/pages/suite/suite-run-the-suite.md | 24 +-- .../suite/suite-run-your-first-backtest.md | 4 +- docs/pages/suite/suite-scale-boxes.md | 28 +++ docs/pages/suite/suite-scales.md | 18 ++ docs/pages/suite/suite-session-parameters.md | 4 +- docs/pages/suite/suite-shares.md | 2 +- docs/pages/suite/suite-sysntax-overview.md | 2 +- docs/pages/suite/suite-system-requirements.md | 40 ++-- .../suite/suite-telegram-announcements.md | 6 +- docs/pages/suite/suite-testing-overview.md | 2 +- docs/pages/suite/suite-timeline-charts.md | 21 ++ ...trade-live-with-an-open-source-strategy.md | 8 +- docs/pages/suite/suite-update-datasets.md | 6 +- ...ite-upgrading-your-existing-instalation.md | 18 +- docs/pages/suite/suite-viewport-interface.md | 14 ++ docs/pages/suite/suite-what-is-next.md | 6 +- docs/pages/suite/suite-what-to-expect.md | 32 +-- .../suite/suite-working-with-strategies.md | 4 +- 196 files changed, 1950 insertions(+), 1274 deletions(-) create mode 100644 docs/_includes/charting_space/dashboard.md create mode 100644 docs/images/icons/150-dashboard.png create mode 100644 docs/images/icons/150-toggle-panel-off.png create mode 100644 docs/images/icons/150-toggle-panel-on.png create mode 100644 docs/images/icons/dashboard.png create mode 100644 docs/images/icons/toggle-panel-off.png create mode 100644 docs/images/icons/toggle-panel-on.png create mode 100644 docs/pages/suite/suite-arranging-dashboard.md create mode 100644 docs/pages/suite/suite-charting-space.md create mode 100644 docs/pages/suite/suite-layer-managers.md create mode 100644 docs/pages/suite/suite-navigating-time-machines.md create mode 100644 docs/pages/suite/suite-scale-boxes.md create mode 100644 docs/pages/suite/suite-scales.md create mode 100644 docs/pages/suite/suite-timeline-charts.md create mode 100644 docs/pages/suite/suite-viewport-interface.md diff --git a/CanvasApp/ChartingSpace/EdgeEditor.js b/CanvasApp/ChartingSpace/EdgeEditor.js index 78f327139..f40dffd2f 100644 --- a/CanvasApp/ChartingSpace/EdgeEditor.js +++ b/CanvasApp/ChartingSpace/EdgeEditor.js @@ -143,14 +143,14 @@ function newEdgeEditor () { switch (whereIsMouseOver) { case 'center': { switch (buttonUsedForDragging) { - case 'left mouse button': { + case 'right mouse button': { /* This is equivalent to drag the whole Time Machine, so we will apply the translation received onto the Time Machine container. */ thisObject.container.parentContainer.frame.position.x = thisObject.container.parentContainer.frame.position.x + dragVector.x thisObject.container.parentContainer.frame.position.y = thisObject.container.parentContainer.frame.position.y + dragVector.y thisObject.container.parentContainer.eventHandler.raiseEvent('onDisplace') break } - case 'right mouse button': { + case 'left mouse button': { let point = { x: -dragVector.x, y: -dragVector.y @@ -163,7 +163,11 @@ function newEdgeEditor () { coordinateSystem.max.x = newMinDate.valueOf() + xDifferenceMaxMin coordinateSystem.min.y = newMaxRate - yDifferenceMaxMin coordinateSystem.max.y = newMaxRate - coordinateSystem.recalculateScale() + let event = { + type: 'center dragged', + dragVector: dragVector + } + coordinateSystem.recalculateScale(event) } } thisObject.container.parentContainer.eventHandler.raiseEvent('onMouseOver', mouse.position) @@ -188,7 +192,7 @@ function newEdgeEditor () { coordinateSystem.max.y = newMaxRate coordinateSystem.maxHeight = thisObject.container.parentContainer.frame.height let event = { - border: 'top', + type: 'top dragged', dragVector: dragVector } coordinateSystem.recalculateScale(event) @@ -221,7 +225,7 @@ function newEdgeEditor () { coordinateSystem.min.y = newMinRate coordinateSystem.maxHeight = thisObject.container.parentContainer.frame.height let event = { - border: 'bottom', + type: 'bottom dragged', dragVector: dragVector } coordinateSystem.recalculateScale(event) diff --git a/CanvasApp/ChartingSpace/TimelineChart.js b/CanvasApp/ChartingSpace/TimelineChart.js index 4444579bb..ce39cf53d 100644 --- a/CanvasApp/ChartingSpace/TimelineChart.js +++ b/CanvasApp/ChartingSpace/TimelineChart.js @@ -233,7 +233,7 @@ function newTimelineChart () { function onScaleChanged (event) { if (thisObject.rateScale !== undefined) { - thisObject.rateScale.onBorderChanged(event) + thisObject.rateScale.onUpstreamScaleChanged(event) } timelineChartCoordinateSystem.min.x = timeMachineCoordinateSystem.min.x timelineChartCoordinateSystem.max.x = timeMachineCoordinateSystem.max.x diff --git a/CanvasApp/PostLoader.js b/CanvasApp/PostLoader.js index 5b33252a4..bb34c97ea 100644 --- a/CanvasApp/PostLoader.js +++ b/CanvasApp/PostLoader.js @@ -45,18 +45,6 @@ function newDashboard () { if (canvas !== undefined) { canvas.finalize() } - /* Here we check where we are executing. In case we are Local we need to create a Local Dummy User and Data Mine. */ - - if (window.canvasApp.executingAt === 'Local') { - window.localStorage.setItem(LOGGED_IN_ACCESS_TOKEN_LOCAL_STORAGE_KEY, 'Local Access Token') // Dummy Access Token - window.localStorage.setItem(LOGGED_IN_USER_LOCAL_STORAGE_KEY, '{"authId":"x|x","alias":"user"}') // Dummy Local User - } - - /* Here we used to have a call to the DataMines Module to get the profile pictures. That was removed but to keep things working, we do this: */ - - window.canvasApp.context.dataMineProfileImages = new Map() - window.canvasApp.context.fbProfileImages = new Map() - setTimeout(delayedStart, DEBUG_START_UP_DELAY) } } catch (err) { diff --git a/CanvasApp/Scales/RateScale.js b/CanvasApp/Scales/RateScale.js index c91043535..07b2396a7 100644 --- a/CanvasApp/Scales/RateScale.js +++ b/CanvasApp/Scales/RateScale.js @@ -10,7 +10,7 @@ function newRateScale () { maxValue: undefined, isVisible: true, layersOn: undefined, - onBorderChanged: onBorderChanged, + onUpstreamScaleChanged: onUpstreamScaleChanged, onMouseOverSomeTimeMachineContainer: onMouseOverSomeTimeMachineContainer, physics: physics, draw: draw, @@ -244,9 +244,25 @@ function newRateScale () { coordinateSystem.recalculateScale() } - function onBorderChanged (event) { + function onUpstreamScaleChanged (event) { if (event === undefined) { return } - if (event.border === 'top') { + if (event.type === 'center dragged') { + let point = { + x: event.dragVector.x, + y: -event.dragVector.y + } + let newMinDate = getDateFromPointAtContainer(point, rateCalculationsContainer, coordinateSystem) + let newMaxRate = getRateFromPointAtContainer(point, rateCalculationsContainer, coordinateSystem) + let xDifferenceMaxMin = coordinateSystem.max.x - coordinateSystem.min.x + let yDifferenceMaxMin = coordinateSystem.max.y - coordinateSystem.min.y + coordinateSystem.min.x = newMinDate.valueOf() + coordinateSystem.max.x = newMinDate.valueOf() + xDifferenceMaxMin + coordinateSystem.min.y = newMaxRate - yDifferenceMaxMin + coordinateSystem.max.y = newMaxRate + + coordinateSystem.recalculateScale() + } + if (event.type === 'top dragged') { let point = { x: event.dragVector.x, y: event.dragVector.y @@ -257,7 +273,7 @@ function newRateScale () { coordinateSystem.maxHeight = rateCalculationsContainer.frame.height coordinateSystem.recalculateScale() } - if (event.border === 'bottom') { + if (event.type === 'bottom dragged') { let point = { x: event.dragVector.x, y: event.dragVector.y + rateCalculationsContainer.frame.height diff --git a/WebServer/Images/Icons/style-01/dashboard.png b/WebServer/Images/Icons/style-01/dashboard.png index 0a6ffaf308dd50c794b26a74426800974e671a7e..9e579ab06c65a9780714d968f0b4e7928b2ad2e4 100644 GIT binary patch literal 9518 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 QUJ0E0V~nI+How5f4d(^` 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 GLH`ZCxYA4j literal 11925 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 M=v^tgY!mXo0F&-3CIA2c diff --git a/docs/_config.yml b/docs/_config.yml index 279c25b6f..5f5844fdb 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -111,7 +111,7 @@ sidebars: - market_sidebar - mine_sidebar -description: "The Superalgos Suite Documentation covers general workings of the Superalgos Platform and of each of the products in the suite." +description: "The Superalgos Suite Documentation covers general workings of Superalgos and of each of the products in the suite." # the description is used in the feed.xml file # needed for sitemap.xml file only diff --git a/docs/_data/charting_space.md b/docs/_data/charting_space.md index 67aebbc0a..7280bc603 100644 --- a/docs/_data/charting_space.md +++ b/docs/_data/charting_space.md @@ -1,6 +1,8 @@ charting_space: "The Charting Space is the hierarchy that governs the configuration of the charts." -viewport: "A viewport represents the bidimensional space on which the charts are drawn." +viewport: "The viewport represents the bidimensional space on which charts are drawn." + +dashboard: "A dashboard is a collection of time machines, each containing any number of charts." time_machine: "A time machine synchronizes multiple timeline charts over the same timeline. Timeline charts within a time machine may have different rate scales or time frame scales, but their time scale will always match." @@ -14,4 +16,4 @@ timeline_chart: "The timeline chart represents a chart within a time machine, wh layers_manager: "The layer manager determines which layers will be visible on the corresponding timeline chart." -layer: "A layer represents a reference to a data product in the data storage node of the Network hierarchy. Conceptually, it means that a certain data product, which exists in a certain location on the network, holds the data to be rendered on the charts." \ No newline at end of file +layer: "A layer represents a reference to a data product in the data storage node of the network hierarchy. Conceptually, it means that a certain data product, which exists in a certain location on the network, holds the data to be rendered on the charts." \ No newline at end of file diff --git a/docs/_data/charting_space.yml b/docs/_data/charting_space.yml index 67aebbc0a..7280bc603 100644 --- a/docs/_data/charting_space.yml +++ b/docs/_data/charting_space.yml @@ -1,6 +1,8 @@ charting_space: "The Charting Space is the hierarchy that governs the configuration of the charts." -viewport: "A viewport represents the bidimensional space on which the charts are drawn." +viewport: "The viewport represents the bidimensional space on which charts are drawn." + +dashboard: "A dashboard is a collection of time machines, each containing any number of charts." time_machine: "A time machine synchronizes multiple timeline charts over the same timeline. Timeline charts within a time machine may have different rate scales or time frame scales, but their time scale will always match." @@ -14,4 +16,4 @@ timeline_chart: "The timeline chart represents a chart within a time machine, wh layers_manager: "The layer manager determines which layers will be visible on the corresponding timeline chart." -layer: "A layer represents a reference to a data product in the data storage node of the Network hierarchy. Conceptually, it means that a certain data product, which exists in a certain location on the network, holds the data to be rendered on the charts." \ No newline at end of file +layer: "A layer represents a reference to a data product in the data storage node of the network hierarchy. Conceptually, it means that a certain data product, which exists in a certain location on the network, holds the data to be rendered on the charts." \ No newline at end of file diff --git a/docs/_data/concepts.md b/docs/_data/concepts.md index 14b95a1b6..277cc6e68 100644 --- a/docs/_data/concepts.md +++ b/docs/_data/concepts.md @@ -4,7 +4,7 @@ workspace: "The workspace refers to the body of information managed by the syste node: "A node is a small data structure containing information which may be related to market information, trading intelligence, the operation of the system or other concepts. They are visually represented by icons on the workspace." -structure_of_nodes: "Nodes may be chained together forming structures of nodes. In every structure of nodes, there is a parent node with offsprings. That is, a structure of nodes is a data structure composed of any node and its offspring." +structure_of_nodes: "Nodes may be chained together forming structures of nodes. In every structure of nodes there is a parent node with offsprings. That is, a structure of nodes is a data structure composed of any node and its offspring." parent-offspring_relationships: "Nodes in structures of nodes are chained to each other by so-called parent-offspring relationships. These relationships are visually represented by orange dotted lines, which may turn yellow or blue depending on certain visualization properties that the user may control. When nodes are chained together they form structures of nodes." diff --git a/docs/_data/concepts.yml b/docs/_data/concepts.yml index 14b95a1b6..277cc6e68 100644 --- a/docs/_data/concepts.yml +++ b/docs/_data/concepts.yml @@ -4,7 +4,7 @@ workspace: "The workspace refers to the body of information managed by the syste node: "A node is a small data structure containing information which may be related to market information, trading intelligence, the operation of the system or other concepts. They are visually represented by icons on the workspace." -structure_of_nodes: "Nodes may be chained together forming structures of nodes. In every structure of nodes, there is a parent node with offsprings. That is, a structure of nodes is a data structure composed of any node and its offspring." +structure_of_nodes: "Nodes may be chained together forming structures of nodes. In every structure of nodes there is a parent node with offsprings. That is, a structure of nodes is a data structure composed of any node and its offspring." parent-offspring_relationships: "Nodes in structures of nodes are chained to each other by so-called parent-offspring relationships. These relationships are visually represented by orange dotted lines, which may turn yellow or blue depending on certain visualization properties that the user may control. When nodes are chained together they form structures of nodes." diff --git a/docs/_data/sidebars/suite_sidebar.yml b/docs/_data/sidebars/suite_sidebar.yml index ac29aedb7..aec03cb4f 100644 --- a/docs/_data/sidebars/suite_sidebar.yml +++ b/docs/_data/sidebars/suite_sidebar.yml @@ -19,22 +19,22 @@ entries: # output: pdf # type: frontmatter -# - title: Before you Begin -# output: web -# folderitems: + - title: Before you begin + output: web + folderitems: -# - title: Welcome! -# url: /index.html -# output: web -# type: homepage + - title: Welcome! + url: /index.html + output: web + type: homepage -# - title: What to expect -# url: /suite-what-to-expect.html -# output: web + - title: What to expect + url: /suite-what-to-expect.html + output: web -# - title: System requirements -# url: /suite-system-requirements.html -# output: web + - title: System requirements + url: /suite-system-requirements.html + output: web # - title: Getting Started # output: web @@ -68,7 +68,6 @@ entries: # url: /suite-what-is-next.html # output: web - # - title: Charts # output: web # folderitems: @@ -77,15 +76,13 @@ entries: # url: /suite-charts-overview.html # output: web -# - title: Interface -# url: /suite-charts-interface.html -# output: web + # - title: Layers panel # url: /suite-layers-panel.html # output: web - - title: General concepts + - title: Design space output: web folderitems: @@ -96,7 +93,6 @@ entries: - title: Interface url: /suite-design-space-interface.html output: web - class: childItem - title: Hierarchies url: /suite-hierarchies.html @@ -106,7 +102,49 @@ entries: url: /suite-references.html output: web - - title: Trading concepts + - title: Charting space + output: web + folderitems: + + - title: Viewport interface + url: /suite-viewport-interface.html + output: web + + - title: Arranging a dashboard + url: /suite-arranging-dashboard.html + output: web + class: childItem + + - title: "Navigating time machines & charts" + url: /suite-navigating-time-machines.html + output: web + class: childItem + + - title: Scale boxes + url: /suite-scale-boxes.html + output: web + class: childItem + + - title: Layer managers + url: /suite-layer-managers.html + output: web + class: childItem + + - title: Charting space + url: /suite-charting-space.html + output: web + + - title: Scales + url: /suite-scales.html + output: web + class: childItem + + - title: Timeline charts + url: /suite-timeline-charts.html + output: web + class: childItem + + - title: Trading system output: web folderitems: @@ -155,7 +193,7 @@ entries: output: web class: childItem - - title: Infrastructure concepts + - title: Infrastructure output: web folderitems: @@ -254,7 +292,7 @@ entries: # url: /suite-multiple-forward-testing-and-live-trading-sessions.html # output: web - - title: Data mining concepts + - title: Data mines output: web folderitems: diff --git a/docs/_includes/charting_space/--------------------------------------------template.md b/docs/_includes/charting_space/--------------------------------------------template.md index 3b9cae37b..12d4804f9 100644 --- a/docs/_includes/charting_space/--------------------------------------------template.md +++ b/docs/_includes/charting_space/--------------------------------------------template.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -66,7 +69,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/charting_space/charting-space.md b/docs/_includes/charting_space/charting-space.md index e29b23fb9..755984a8e 100644 --- a/docs/_includes/charting_space/charting-space.md +++ b/docs/_includes/charting_space/charting-space.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -48,13 +51,15 @@ -There is only one charting space hierarchy, thus all charts are configured here. As is common throughout the system, different concepts and elements of the charts such as the scales, data layers and so on, are represented by nodes in the hierarchy. The system allows great flexibility on how to visualize information over the charts by adding, configuring, and arranging these nodes. +Conceptually, Superalgos places the focus on the visual experience. Not just because it's *nice* to see data in a graphical representation, but because our analysis capabillities expand when we incorporate senses in the mix. Human's capacity to think abstractly may be more or less developed across individuals, but one thing is clear: our thought process benefits from being able to see. + +There is only one charting space hierarchy, thus all charts are configured here. As is common throughout the system, different concepts and elements of the charts such as scales, data layers and so on, are represented by nodes in the hierarchy. The system allows great flexibility on how to visualize information over the charts by adding, configuring, and arranging these nodes. {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/charting_space/dashboard.md b/docs/_includes/charting_space/dashboard.md new file mode 100644 index 000000000..cf65730ae --- /dev/null +++ b/docs/_includes/charting_space/dashboard.md @@ -0,0 +1,103 @@ + + +{% assign title = "Dashboard" %} +{% assign definition = site.data.charting_space.dashboard %} +{% assign preposition = "a" %} +{% assign plural = "s" %} + + + +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} +{{include.heading}} {{title}} +{% endif %} + +{% if include.icon != "no" %} + +{% if include.table == "yes" and include.icon != "no" %} +
+{% endif %} + + + +{% if include.table == "yes" and include.icon != "no" %} + +{% endif %} + +{% endif %} + +{% if include.definition == "bold" %} +{{ definition }} +{% else %} +{% if include.definition != "no" %} +{{ definition }} +{% endif %} +{% endif %} + +{% if include.table == "yes" and include.icon != "no" %} +
+{% endif %} + +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.content != "no" %} + + + +At the moment, the functionality of a dashboard is trivial: grouping time machines. However, in the future, it will offer various features to enhance the user experience while setting up complex and ellaborate dashboards. + + + +{% endif %} + +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.adding != "" %} + +{{include.adding}} Adding {{preposition}} {{title}} Node + + + +To add a dashboard, select *Add Dashboard* on the Charting Space node menu. + + + +{% endif %} + +{% if include.configuring != "" %} + +{{include.configuring}} Configuring the {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.charts != "" %} + +{{include.charts}} Controlling the {{title}} from the Charts + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
+{% endif %} \ No newline at end of file diff --git a/docs/_includes/charting_space/layer.md b/docs/_includes/charting_space/layer.md index 79aed4154..e3f486e0a 100644 --- a/docs/_includes/charting_space/layer.md +++ b/docs/_includes/charting_space/layer.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -60,13 +63,15 @@ To set up a layer, you need to establish a -XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +To turn layers on and off, simply click on the layer in the corresponding products panel. + +To turn on and off a layer panel, click the panel button on the bottom-left corner of the layer. {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -79,6 +84,8 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX To add a layer, select *Add Layer* on the layer manager node menu. +{% include note.html content="After adding a layer node, make sure you establish a reference to the corresponding data product in the data storage node of the network hierarchy." %} + {% endif %} diff --git a/docs/_includes/charting_space/layers-manager.md b/docs/_includes/charting_space/layers-manager.md index 2435185e3..f6b0d30b1 100644 --- a/docs/_includes/charting_space/layers-manager.md +++ b/docs/_includes/charting_space/layers-manager.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -66,7 +69,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/charting_space/rate-scale.md b/docs/_includes/charting_space/rate-scale.md index 1603d464f..81e26f7f6 100644 --- a/docs/_includes/charting_space/rate-scale.md +++ b/docs/_includes/charting_space/rate-scale.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -50,13 +53,31 @@ Rate scales may exist both at the level of a time machine and at the level of a timeline chart, each affecting the corresponding concept. -When set at the level of the time machine, the scale setting affects all charts within the time machine. When set at the level of the timeline chart, the setting overrides the rate scale at the time machine level. This allows having multiple charts on the same time machine, each with a different rate scales. +When set at the level of the time machine, the scale settings affect all charts within the time machine. When set at the level of the timeline chart, the settings override the rate scale at the time machine level. This allows having multiple charts on the same time machine, each with a different rate scale. -* **Scale Value:** When the scale is set to zero, the vertical span of the time machine or the timeline chart is the smallest possible. When the scale is set to 100, it is the largest possible. In other words, the charts are compressed on the vertical axis with low scale numbers and expanded as the scale increases. +{% if include.heading == "more" %}##{% else %}{{include.heading}}{% endif %}### Scale Minimum and Maximum Values -* **Scale Offset:** The offset is a property of the rate scale by which the scale may be shifted upwards or downwards. As a result, charts aligned in the vertical axis—synchronized in datetime by a shared time machine—may be put one above the other. +A rate scale has a minimum and a maximum value. The minimum value is the value at bottom of the chart. The maximum, is the value at the top of the chart. -* **Scale Minimum and Maximum:** The rate scale remains the same at all times unless you change it. This means that—unlike in other platforms—the rate scale does not adjust dynamically depending on the information on the screen. This is a design choice so that rates may be easily comparable along the datetime span of the market. +In technical terms, the minimum and maximum scale values are constantly changing as, whenever you pan across the charts, you are directly affecting the minimum and maximum scale values. That said, the actual scale may change dynamically or not, depending on the scale-automation settings. + +{% if include.heading == "more" %}##{% else %}{{include.heading}}{% endif %}### Automatic Scale + +The system features an automatic adjustment of the scale, which is turned on by default in our shared workspaces. The scale may be automatic in its minimum value, in its maximum value, or both. + +When the scale is automatic in the minimum value, the scale is adjusted so that no piece of information in the span of the chart ever remains below the bottom of the chart. As a result, the lowest data point aligns with the bottom of the chart. + +When the scale is automatic in the maximum value, the scale is adjusted so that no piece of information in the span of the chart ever remains above the top of the chart. As a result, the highest data point aligns with the top of the chart. + +The scale may be automated on either, or both minimum and maximum values at the same time. In the later case, no data point in the span of the chart ever remains out of the visible area of the chart, as the lowest data point aligns with the bottom of the chart and the highest aligns with the top. + +{% if include.heading == "more" %}##{% else %}{{include.heading}}{% endif %}### Manual Scale + +The system also features a manual mode. When in manual mode the scale does not change, even if the minimum and maximum values change while panning across a chart. This design feature allows comparing different periods using the same scale, which may be valuable in many cases. + +{% if include.heading == "more" %}##{% else %}{{include.heading}}{% endif %}### Scale Offset + +The offset is a feature of the rate scale by which the scale may be shifted upwards or downwards. As a result, charts aligned on the vertical axis—synchronized in datetime by a shared time machine—may be put one above the other. In technical terms, what happens is that the scale is shifted upwards or downwards. @@ -68,15 +89,38 @@ When set at the level of the time machine, the scale setting affects all charts -You may set a scale value from within the charts by placing the mouse pointer over the corresponding time machine or timeline chart rate box and scrolling the mouse wheel. Add the Shift key to affect the offset. +{{include.charts}}# Automatic Scale + +**1. To change the automatic scale settings**, place the mouse pointer over the corresponding time machine or timeline chart rate box, press the Shift key and slowly scroll the wheel of the mouse. The action cycles through different possible scale automation settings. Notice a tiny green triangle below and/or above the rate scale icon. + +* A triangle pointing up means that the maximum value of the scale is automatic. + +* A triangle pointing down means that the minimum value of the scale is automatic. + +* Both triangles present at the same time means that both minimum and maximum values are automatic. + +* No triangle means that both minimum and maximum values are in manual mode. + +{{include.charts}}# Manual Scale + +**2. To adjust the scale**, make sure either or both minimum and maximum values are in manual mode. Place the mouse pointer over the corresponding time machine or timeline chart rate box and scroll the wheel of the mouse. The scale will increase or decrease accordingly, depending on which values are set to manual. + +Notice that, while changing the scale, a number is displayed replacing the actual rate. This is a reference value of the scale, that may serve for comparison purposes, with scales in other charts. + +{% include note.html content="This action has no effect when both minimum and maximum values are set to automatic mode." %} + +{{include.charts}}# Scale Offset + +**3. To shift or offset a timeline chart on the vertical axis**, place the mouse pointer on the rate box, left-click and drag upwards or downwards, as desired. The timeline chart will shift in the specified direction while the remaining charts stay in the same position. + +{% include note.html content="Setting an offset in a timeline chart only makes sense in the context of a time machine with multiple charts. That is, if you are browsing a single chart, an offset behaves the same as moving the single chart up or down." %} -{% include tip.html content="Pressing the mouse wheel while scrolling accelerates the process." %} {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -103,22 +147,22 @@ Select *Configure Rate Scale* on the menu to access the configuration. ```json { - "scale":"50", - "offset":0, - "minValue":0, - "maxValue":25000 - } + "minValue": 388.60416666666424, + "maxValue": 9715.104166666664, + "autoMinScale": true, + "autoMaxScale": true +} ``` -* ```minValue``` sets the value for the origin of the y-axis, that is, the rate scale. Usually, this value would be zero, but it doesn't need to be zero, as it is configurable. +* ```minValue``` is a numerical value that represents the value of the scale at the bottom of the chart. -* ```maxValue``` may be set to any positive number. +* ```maxValue``` is a numerical value that represents the value of the scale at the top of the chart. -* ```scale``` is a numerical value between 0 and 100. +* ```autoMinScale``` sets the mode of the scale for the minimum value; ```true``` sets the value to automatic, ```false``` sets the value to manual. -* ```offset``` is a numerical value which may be positive or negative, with no specific minimum or maximum. +* ```autoMaxScale``` sets the mode of the scale for the maximum value; ```true``` sets the value to automatic, ```false``` sets the value to manual. -{% include note.html content="The values for scale and offset may be entered via the design space and the charts. Both input methods are synchronized and the resulting values are stored in the node." %} +{% include note.html content="The ```minValue``` and ```maxValue``` may be entered via the design space and the charts. Both input methods are synchronized and the resulting values are stored in the node." %} diff --git a/docs/_includes/charting_space/time-frame-scale.md b/docs/_includes/charting_space/time-frame-scale.md index 3f86f6280..60b788bb3 100644 --- a/docs/_includes/charting_space/time-frame-scale.md +++ b/docs/_includes/charting_space/time-frame-scale.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -60,13 +63,13 @@ When the time frame scale is set at the level of the time machine, the scale set -You may set a time frame value from within the charts by placing the mouse pointer over the corresponding time machine or timeline chart time frame box and scrolling the mouse wheel. +**1. To set a time frame value**, place the mouse pointer over the corresponding time machine or timeline chart time frame box and scroll the mouse wheel. {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/charting_space/time-machine.md b/docs/_includes/charting_space/time-machine.md index ef86e28bb..43f4c250c 100644 --- a/docs/_includes/charting_space/time-machine.md +++ b/docs/_includes/charting_space/time-machine.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ On the other hand, when you arrange charts on different time machines, they are {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -67,7 +70,7 @@ On the other hand, when you arrange charts on different time machines, they are -To add a time machine, select *Add Time Machine* on the Charting Space node menu. +To add a time machine, select *Add Time Machine* on the Dashboard node menu. diff --git a/docs/_includes/charting_space/time-scale.md b/docs/_includes/charting_space/time-scale.md index 67e5a8da5..f49694c2a 100644 --- a/docs/_includes/charting_space/time-scale.md +++ b/docs/_includes/charting_space/time-scale.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -48,7 +51,27 @@ -The time scale is represented by a numerical value between 0 and 100. When the scale is set to zero, the horizontal span of the time machine and charts within it is the smallest possible. When the scale is set to 100, it is the largest possible. In other words, the charts are compressed on the horizontal axis with low scale numbers and expanded as the scale increases. +{% if include.heading == "more" %}##{% else %}{{include.heading}}{% endif %}### Scale Minimum and Maximum Values + +A time scale has a minimum and a maximum value. The minimum value is the value at the left border of the chart. The maximum, is the value at the right border of the chart. + +In technical terms, the minimum and maximum scale values are constantly changing as, whenever you pan across the charts, you are directly affecting the minimum and maximum scale values. That said, the actual scale doesn't change when panning across a chart. + +{% if include.heading == "more" %}##{% else %}{{include.heading}}{% endif %}### Automatic Scale + +The system features an automatic adjustment of the scale, which is turned on by default in our shared workspaces. The scale may be automatic in its minimum value, in its maximum value, or both. + +When the scale is automatic in the minimum value, the scale is adjusted so that the chart shows all data from the beginning of the market. Panning the charts under such setting has the effect of compressing and decompressing the data against the left border of the chart. + +When the scale is automatic in the maximum value, the scale is adjusted so that the chart shows all data until the end of the market. In such case, panning the charts has the effect of compressing and decompressing the data against the right border of the chart. + +When the scale is automatic in both the minimum and maximum value, the scale is adjusted so that the chart shows the whole market. In such case, when you click and drag to pan the charts, the settings turns back to manual on both ends of the chart. + +{% include note.html content="Having the time scale set to automatic by default helps finding the data as soon as it starts being processed the first time you run the Masters bot instances." %} + +{% if include.heading == "more" %}##{% else %}{{include.heading}}{% endif %}### Manual Scale + +The scale features a manual mode. When in manual mode the scale does not change, even if the minimum and maximum values change while panning through a chart. This is the natural state of the time scale. @@ -60,15 +83,31 @@ The time scale is represented by a numerical value between 0 and 100. When the s -You may set a scale value from within the charts by placing the mouse pointer over the corresponding time machine datetime box and scrolling the mouse wheel. +{{include.charts}}# Automatic Scale -{% include tip.html content="Pressing the mouse wheel while scrolling accelerates the process." %} +**1. To change the automatic scale settings**, place the mouse pointer over the corresponding time box, press the Shift key and slowly scroll the wheel of the mouse. The action cycles through different possible scale automation settings. Notice a tiny green triangle below and/or above the rate scale icon. + +* A triangle pointing right means that the maximum value of the scale is automatic. + +* A triangle pointing left means that the minimum value of the scale is automatic. + +* Both triangles present at the same time means that both minimum and maximum values are automatic. + +* No triangle means that both minimum and maximum values are in manual mode. + +{{include.charts}}# Manual Scale + +**2. To adjust the scale**, make sure either or both minimum and maximum values are in manual mode. Place the mouse pointer over the time box and scroll the wheel of the mouse. The scale will increase or decrease accordingly, depending on which values are set to manual. + +Notice that, while changing the scale, a number is displayed replacing the actual datetime. This is a reference value of the scale, that may serve for comparison purposes, with scales in other charts. + +{% include note.html content="This action has no effect when both minimum and maximum values are set to automatic mode." %} {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -91,17 +130,26 @@ To add a time scale, select *Add Time Scale* on the time machine node menu. -Select *Configure Time Scale* on the menu to access the configuration. +Select *Configure Rate Scale* on the menu to access the configuration. ```json { - "scale":"0" + "fromDate": "2019-05-02T20:07:50.872Z", + "toDate": "2019-05-22T20:28:21.515Z", + "autoMinScale": false, + "autoMaxScale": false } ``` -* ```scale``` is a numerical value between 0 and 100. +* ```minValue``` is a date in the Epoch time format that represents the value of the scale at the left border of the chart. -{% include note.html content="The value may be entered via the design space and the charts. Both input methods are synchronized and the resulting values are stored in the node." %} +* ```maxValue``` is a date in the Epoch time format that represents the value of the scale at the right border of the chart. + +* ```autoMinScale``` sets the mode of the scale for the minimum value; ```true``` sets the value to automatic, ```false``` sets the value to manual. + +* ```autoMaxScale``` sets the mode of the scale for the maximum value; ```true``` sets the value to automatic, ```false``` sets the value to manual. + +{% include note.html content="The ```minValue``` and ```maxValue``` may be entered via the design space and the charts. Both input methods are synchronized and the resulting values are stored in the node." %} diff --git a/docs/_includes/charting_space/timeline-chart.md b/docs/_includes/charting_space/timeline-chart.md index f78f45497..502e81cdc 100644 --- a/docs/_includes/charting_space/timeline-chart.md +++ b/docs/_includes/charting_space/timeline-chart.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -48,9 +51,9 @@ -In other words, a timeline chart is a set of information to be displayed over a timeline. The information may include candles—the main and foremost resource—as well as any other indicator, study or—in general—data product that may be available. +In other words, a timeline chart—often referred simply as *chart*—is a set of information to be displayed over a timeline. The information may include candles—the main and foremost resource—as well as any other indicator, study or—in general—data products that may be available. -You may add as many charts as you wish. Charts within the same time machine are synchronized in the y-axis, that is, at the datetime level. Charts in different time machines are independent of each other concerning the datetime. In either case, you may also add rate scales and time frame scales at the timeline charts level. +You may add as many charts as you wish. Charts within the same time machine are synchronized in the y-axis, that is, in the datetime dimension. Charts in different time machines are independent of each other concerning the datetime. In either case, you may also add rate scales and time frame scales at the timeline charts level. The information that each timeline chart makes available on the screen is given by the layers set up in the corresponding layers manager. @@ -70,7 +73,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/charting_space/viewport.md b/docs/_includes/charting_space/viewport.md index c6509971a..01c9ac2a4 100644 --- a/docs/_includes/charting_space/viewport.md +++ b/docs/_includes/charting_space/viewport.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -48,19 +51,23 @@ -At this point, the system supports one viewport only. When you navigate through the charts, panning, zooming or moving elements around, what you are doing is panning and zooming on the viewport. That is, you are not moving the charts, but the space that contains them. +The viewport offers a visual environment in which you may see, analyze and go over every piece of data involved in the process of trading cryptocurrencies: -Think of the viewport as a huge drawing board. You can have lots of information plotted on different parts of the board, so you move the viewport around and zoom in to focus on specific bits of information. +* Live and historic market data; +* Data crunched in the form of indicators; +* The specific effects of the rules you will program into your strategies, and how strategies behave during testing and live trading sessions. -When you zoom out, you are bringing more information in focus. Because information is handled dynamically, reading data from files, interpreting it, and drawing the corresponding visual elements on the screen in real-time, zooming out or—in general—bringing lots of information in focus may slow your system down. The information that is out of focus, that is, out of the visible screen, is not processed. +At this point, the system supports one viewport only. Think of the viewport as a huge drawing board. You may have lots of information plotted on different parts of the viewport. You may move the viewport around and zoom in to focus on specific charts. -The concept of the viewport allows having multiple charts configured all at once, so that you may consult different exchanges, different markets, or different technical studies on demand, simply by moving around and zooming in or out on the viewport. You may put any of those elements side by side, or even superimpose them to study market flows, search for arbitrage opportunities, or simply keep them in sight when you analyze particular market situations. +The information that is out of focus, that is, out of the visible screen, is not read nor rendered graphically, thus, does not consume resources. + +The concept of the viewport allows having multiple charts configured all at once, so that you may consult different exchanges, different markets, different time frames, or different technical studies on demand, simply by moving around and zooming in or out. You may put charts side by side, or even superimpose them to study market flows, search for arbitrage opportunities, or simply keep them in sight when you analyze particular market situations. {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/asset.md b/docs/_includes/crypto_ecosystem/asset.md index 2309074ee..b14abaf10 100644 --- a/docs/_includes/crypto_ecosystem/asset.md +++ b/docs/_includes/crypto_ecosystem/asset.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/crypto-ecosystem.md b/docs/_includes/crypto_ecosystem/crypto-ecosystem.md index 486d38289..b7498c133 100644 --- a/docs/_includes/crypto_ecosystem/crypto-ecosystem.md +++ b/docs/_includes/crypto_ecosystem/crypto-ecosystem.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ There is only one crypto ecosystem hierarchy. You will use it to define which ex {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/crypto-exchange.md b/docs/_includes/crypto_ecosystem/crypto-exchange.md index b552bbe3e..468d3f830 100644 --- a/docs/_includes/crypto_ecosystem/crypto-exchange.md +++ b/docs/_includes/crypto_ecosystem/crypto-exchange.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/crypto-exchanges.md b/docs/_includes/crypto_ecosystem/crypto-exchanges.md index 2e84f922d..38de5187e 100644 --- a/docs/_includes/crypto_ecosystem/crypto-exchanges.md +++ b/docs/_includes/crypto_ecosystem/crypto-exchanges.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/exchange-account-asset.md b/docs/_includes/crypto_ecosystem/exchange-account-asset.md index f7276c45f..6b7ed0437 100644 --- a/docs/_includes/crypto_ecosystem/exchange-account-asset.md +++ b/docs/_includes/crypto_ecosystem/exchange-account-asset.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ This node is not fully implemented yet. {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/exchange-account-key.md b/docs/_includes/crypto_ecosystem/exchange-account-key.md index ca28a1a22..3846b9bb8 100644 --- a/docs/_includes/crypto_ecosystem/exchange-account-key.md +++ b/docs/_includes/crypto_ecosystem/exchange-account-key.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/exchange-accounts.md b/docs/_includes/crypto_ecosystem/exchange-accounts.md index 3741add5d..4c8d55071 100644 --- a/docs/_includes/crypto_ecosystem/exchange-accounts.md +++ b/docs/_includes/crypto_ecosystem/exchange-accounts.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/exchange-assets.md b/docs/_includes/crypto_ecosystem/exchange-assets.md index 6d3344979..d4e6d33ef 100644 --- a/docs/_includes/crypto_ecosystem/exchange-assets.md +++ b/docs/_includes/crypto_ecosystem/exchange-assets.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/exchange-markets.md b/docs/_includes/crypto_ecosystem/exchange-markets.md index bba1e7f70..24bf58b34 100644 --- a/docs/_includes/crypto_ecosystem/exchange-markets.md +++ b/docs/_includes/crypto_ecosystem/exchange-markets.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/market-base-asset.md b/docs/_includes/crypto_ecosystem/market-base-asset.md index 4a2fd3887..0420c597d 100644 --- a/docs/_includes/crypto_ecosystem/market-base-asset.md +++ b/docs/_includes/crypto_ecosystem/market-base-asset.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A market base asset must reference an asset defined under the exchange assets no {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/market-quoted-asset.md b/docs/_includes/crypto_ecosystem/market-quoted-asset.md index c82772741..357bbe699 100644 --- a/docs/_includes/crypto_ecosystem/market-quoted-asset.md +++ b/docs/_includes/crypto_ecosystem/market-quoted-asset.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A market quoted asset must reference an asset defined under the exchange assets {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/market.md b/docs/_includes/crypto_ecosystem/market.md index 350d1265d..d514a2084 100644 --- a/docs/_includes/crypto_ecosystem/market.md +++ b/docs/_includes/crypto_ecosystem/market.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/user-account.md b/docs/_includes/crypto_ecosystem/user-account.md index 7cb4de90d..ee295acbc 100644 --- a/docs/_includes/crypto_ecosystem/user-account.md +++ b/docs/_includes/crypto_ecosystem/user-account.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/user-assets.md b/docs/_includes/crypto_ecosystem/user-assets.md index 2e2eae8bc..f70f44016 100644 --- a/docs/_includes/crypto_ecosystem/user-assets.md +++ b/docs/_includes/crypto_ecosystem/user-assets.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/crypto_ecosystem/user-keys.md b/docs/_includes/crypto_ecosystem/user-keys.md index 03fdd1dd9..5c0bd1c1f 100644 --- a/docs/_includes/crypto_ecosystem/user-keys.md +++ b/docs/_includes/crypto_ecosystem/user-keys.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/--------------------------------------------template.md b/docs/_includes/data_mine/--------------------------------------------template.md index fc2eb4d97..d77afcbe5 100644 --- a/docs/_includes/data_mine/--------------------------------------------template.md +++ b/docs/_includes/data_mine/--------------------------------------------template.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/calculations-procedure.md b/docs/_includes/data_mine/calculations-procedure.md index 7de982507..86304d7c7 100644 --- a/docs/_includes/data_mine/calculations-procedure.md +++ b/docs/_includes/data_mine/calculations-procedure.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -60,7 +63,7 @@ The calculations procedure calculates the properties that the developer chose no {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/chart-points.md b/docs/_includes/data_mine/chart-points.md index cf0f760c8..ecd7b23dd 100644 --- a/docs/_includes/data_mine/chart-points.md +++ b/docs/_includes/data_mine/chart-points.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ The definition of a point consists of the name of the point and the correspondin {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/data-building-procedure.md b/docs/_includes/data_mine/data-building-procedure.md index 6e39c27c7..00ebaa437 100644 --- a/docs/_includes/data_mine/data-building-procedure.md +++ b/docs/_includes/data_mine/data-building-procedure.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ This procedure holds the core logic of the bot, as it features the code that per {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/data-dependency.md b/docs/_includes/data_mine/data-dependency.md index 7d8126b94..e28dacdae 100644 --- a/docs/_includes/data_mine/data-dependency.md +++ b/docs/_includes/data_mine/data-dependency.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about data dependencies {% endif %} @@ -58,7 +61,7 @@ The image above shows data dependencies in one bot referencing dataset definitio {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about data dependencies {% endif %} diff --git a/docs/_includes/data_mine/data-formula.md b/docs/_includes/data_mine/data-formula.md index 4602ef24b..c225708a4 100644 --- a/docs/_includes/data_mine/data-formula.md +++ b/docs/_includes/data_mine/data-formula.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/data-mine.md b/docs/_includes/data_mine/data-mine.md index aa93a605d..c178ffa8d 100644 --- a/docs/_includes/data_mine/data-mine.md +++ b/docs/_includes/data_mine/data-mine.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ Because the hierarchy provides definitions, it does not intervene in the executi {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/dataset-definition.md b/docs/_includes/data_mine/dataset-definition.md index 22386cf14..f3abfc5d9 100644 --- a/docs/_includes/data_mine/dataset-definition.md +++ b/docs/_includes/data_mine/dataset-definition.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A good part of what makes datasets easy to consume by other bots is the fact tha {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/execution-finished-event.md b/docs/_includes/data_mine/execution-finished-event.md index 4e4a3b2f0..4104315ce 100644 --- a/docs/_includes/data_mine/execution-finished-event.md +++ b/docs/_includes/data_mine/execution-finished-event.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -58,7 +61,7 @@ The image above shows a reference established from the execution started event o {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/execution-started-event.md b/docs/_includes/data_mine/execution-started-event.md index 35eb110d0..5e456a7ce 100644 --- a/docs/_includes/data_mine/execution-started-event.md +++ b/docs/_includes/data_mine/execution-started-event.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ Bots form a sort of multi-branched execution sequence with an indeterminate numb {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/formula.md b/docs/_includes/data_mine/formula.md index 14745c8d1..e794759eb 100644 --- a/docs/_includes/data_mine/formula.md +++ b/docs/_includes/data_mine/formula.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -58,7 +61,7 @@ A formula may act in slightly different ways depending on the ```isCaculated``` {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/indicator-bot.md b/docs/_includes/data_mine/indicator-bot.md index 6570728e7..668d9f8e1 100644 --- a/docs/_includes/data_mine/indicator-bot.md +++ b/docs/_includes/data_mine/indicator-bot.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ The indicator bot node holds all definitions required for an indicator bot to fu {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/javascript-code.md b/docs/_includes/data_mine/javascript-code.md index 30219aa29..1ad8d0ced 100644 --- a/docs/_includes/data_mine/javascript-code.md +++ b/docs/_includes/data_mine/javascript-code.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -48,7 +51,7 @@ -The platform allows developers great flexibility as all valid JavaScript code is allowed. +The system allows developers great flexibility as all valid JavaScript code is allowed. {% include important.html content="Until a robust JavaScript editor is implemented on the UI, it is recommended to write code on an external editor and paste it in the UI code bubble to ensure consistency." %} @@ -56,7 +59,7 @@ The platform allows developers great flexibility as all valid JavaScript code is {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/output-dataset.md b/docs/_includes/data_mine/output-dataset.md index 7b45a6b44..6f51850b3 100644 --- a/docs/_includes/data_mine/output-dataset.md +++ b/docs/_includes/data_mine/output-dataset.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -62,7 +65,7 @@ The image above shows the typical references from output datasets to datasets de {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/panel-data.md b/docs/_includes/data_mine/panel-data.md index 3fb61298c..1285779b1 100644 --- a/docs/_includes/data_mine/panel-data.md +++ b/docs/_includes/data_mine/panel-data.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ The system renders a panel featuring a centered, single-column vertical arrangem {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/plotter-module.md b/docs/_includes/data_mine/plotter-module.md index d2187c4f1..9b03ee20d 100644 --- a/docs/_includes/data_mine/plotter-module.md +++ b/docs/_includes/data_mine/plotter-module.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -60,7 +63,7 @@ A single plotter may have several modules. Different modules may be used to plot {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/plotter-panel.md b/docs/_includes/data_mine/plotter-panel.md index 0775b31b0..42b04829b 100644 --- a/docs/_includes/data_mine/plotter-panel.md +++ b/docs/_includes/data_mine/plotter-panel.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ Beyond the graphic representation of data over the charts, plotters may also fea {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/plotter.md b/docs/_includes/data_mine/plotter.md index cb50bc446..a49330621 100644 --- a/docs/_includes/data_mine/plotter.md +++ b/docs/_includes/data_mine/plotter.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -64,7 +67,7 @@ Those actions are performed recursively for each record, and the graphics are pl {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/point-formula.md b/docs/_includes/data_mine/point-formula.md index 17465c44c..62f511cc1 100644 --- a/docs/_includes/data_mine/point-formula.md +++ b/docs/_includes/data_mine/point-formula.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -122,7 +125,7 @@ The above four points are used to paint the background of the 20 to 30 value ran {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/point.md b/docs/_includes/data_mine/point.md index 730fd64de..607ca7ca5 100644 --- a/docs/_includes/data_mine/point.md +++ b/docs/_includes/data_mine/point.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ These coordinate points are used to define polygons. Values for ```[x,y]```coord {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/polygon-body.md b/docs/_includes/data_mine/polygon-body.md index 94f751c55..15fa9fa65 100644 --- a/docs/_includes/data_mine/polygon-body.md +++ b/docs/_includes/data_mine/polygon-body.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about polygon bodies {% endif %} @@ -54,7 +57,7 @@ A polygon body needs at least three vertices to be defined. A body serves to cre {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about polygon bodies {% endif %} diff --git a/docs/_includes/data_mine/polygon-border.md b/docs/_includes/data_mine/polygon-border.md index 127771e2a..cef5596fc 100644 --- a/docs/_includes/data_mine/polygon-border.md +++ b/docs/_includes/data_mine/polygon-border.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A polygon border needs at least two vertices to be defined. A border serves to c {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/polygon-vertex.md b/docs/_includes/data_mine/polygon-vertex.md index 8ad531eeb..902078d1e 100644 --- a/docs/_includes/data_mine/polygon-vertex.md +++ b/docs/_includes/data_mine/polygon-vertex.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -60,7 +63,7 @@ Drawing curves requires two vertices. Painting areas, such as the background of {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/polygon.md b/docs/_includes/data_mine/polygon.md index cdfebacdb..938178eb9 100644 --- a/docs/_includes/data_mine/polygon.md +++ b/docs/_includes/data_mine/polygon.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ Polygons are defined by two or more vertices, which map points in a charts point {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/procedure-initialization.md b/docs/_includes/data_mine/procedure-initialization.md index 38d6a5985..cc3a20834 100644 --- a/docs/_includes/data_mine/procedure-initialization.md +++ b/docs/_includes/data_mine/procedure-initialization.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -59,7 +62,7 @@ variable.last200 = [] {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/procedure-loop.md b/docs/_includes/data_mine/procedure-loop.md index 4e6c85207..5293547fd 100644 --- a/docs/_includes/data_mine/procedure-loop.md +++ b/docs/_includes/data_mine/procedure-loop.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -84,7 +87,7 @@ function calculateSMA(periods) { // Having a function saves us from duplicating {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/process-definition.md b/docs/_includes/data_mine/process-definition.md index deb6b5740..708658474 100644 --- a/docs/_includes/data_mine/process-definition.md +++ b/docs/_includes/data_mine/process-definition.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ As hinted above, most bots, in particular indicators, have two different process {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/process-dependencies.md b/docs/_includes/data_mine/process-dependencies.md index 524cae82a..68d14890b 100644 --- a/docs/_includes/data_mine/process-dependencies.md +++ b/docs/_includes/data_mine/process-dependencies.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ While processes run autonomously, most processes participate in a value-adding c {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/process-output.md b/docs/_includes/data_mine/process-output.md index f9f983934..a0275471b 100644 --- a/docs/_includes/data_mine/process-output.md +++ b/docs/_includes/data_mine/process-output.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/product-definition.md b/docs/_includes/data_mine/product-definition.md index 2faf3193d..f692716ce 100644 --- a/docs/_includes/data_mine/product-definition.md +++ b/docs/_includes/data_mine/product-definition.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ A bot may feature multiple products, thus, there may be multiple product definit {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/record-definition.md b/docs/_includes/data_mine/record-definition.md index a69d11a6e..1dcee3112 100644 --- a/docs/_includes/data_mine/record-definition.md +++ b/docs/_includes/data_mine/record-definition.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -62,7 +65,7 @@ Storing objects with named properties in the JSON format would be inappropriate {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/record-property.md b/docs/_includes/data_mine/record-property.md index c61b85b8b..049773a53 100644 --- a/docs/_includes/data_mine/record-property.md +++ b/docs/_includes/data_mine/record-property.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about record properties {% endif %} @@ -58,7 +61,7 @@ Records may have as many properties as required. {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about record properties {% endif %} diff --git a/docs/_includes/data_mine/sensor-bot.md b/docs/_includes/data_mine/sensor-bot.md index a79990600..d037a12fa 100644 --- a/docs/_includes/data_mine/sensor-bot.md +++ b/docs/_includes/data_mine/sensor-bot.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ The sensor bot node holds all definitions required for a sensor bot to function. {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/shapes.md b/docs/_includes/data_mine/shapes.md index 718ff25b1..ae19b5072 100644 --- a/docs/_includes/data_mine/shapes.md +++ b/docs/_includes/data_mine/shapes.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -63,7 +66,7 @@ In general terms, the process of defining what is going to be rendered on the sc {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/status-dependency.md b/docs/_includes/data_mine/status-dependency.md index c93cf8e9c..6bd821d83 100644 --- a/docs/_includes/data_mine/status-dependency.md +++ b/docs/_includes/data_mine/status-dependency.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about status dependencies {% endif %} @@ -66,7 +69,7 @@ The image above shows a case of a self-reference status dependency as well as a {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about status dependencies {% endif %} diff --git a/docs/_includes/data_mine/status-report.md b/docs/_includes/data_mine/status-report.md index 14677dce5..ec9dbbc2e 100644 --- a/docs/_includes/data_mine/status-report.md +++ b/docs/_includes/data_mine/status-report.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ A status report may be consumed by the same bot producing it, or by other bots. {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/style-condition.md b/docs/_includes/data_mine/style-condition.md index 9f09871e7..a60ff29e8 100644 --- a/docs/_includes/data_mine/style-condition.md +++ b/docs/_includes/data_mine/style-condition.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -60,7 +63,7 @@ Style conditions me be created in a sequence so that the style may continue chan {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/style.md b/docs/_includes/data_mine/style.md index 6ad4fc18a..2ac18126e 100644 --- a/docs/_includes/data_mine/style.md +++ b/docs/_includes/data_mine/style.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A style applied to a polygon body or a polygon border node acts as the default s {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/template.md b/docs/_includes/data_mine/template.md index fc2eb4d97..d77afcbe5 100644 --- a/docs/_includes/data_mine/template.md +++ b/docs/_includes/data_mine/template.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/data_mine/trading-bot.md b/docs/_includes/data_mine/trading-bot.md index 1e11a5f30..6c78e9659 100644 --- a/docs/_includes/data_mine/trading-bot.md +++ b/docs/_includes/data_mine/trading-bot.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ Trading bots are complex pieces of software. The system does not yet encourage t {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/--------------------------------------------template.md b/docs/_includes/network/--------------------------------------------template.md index 5792dad45..9bde985bd 100644 --- a/docs/_includes/network/--------------------------------------------template.md +++ b/docs/_includes/network/--------------------------------------------template.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/backtesting-session.md b/docs/_includes/network/backtesting-session.md index 1f43c7c4d..5f30c55ff 100644 --- a/docs/_includes/network/backtesting-session.md +++ b/docs/_includes/network/backtesting-session.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A backtesting session node must reference a trading system to gain access to the {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/data-mining.md b/docs/_includes/network/data-mining.md index 17031b221..c3a91f9b0 100644 --- a/docs/_includes/network/data-mining.md +++ b/docs/_includes/network/data-mining.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ Having access to quality information is a crucial element of trading. For that r {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/data-product.md b/docs/_includes/network/data-product.md index 1a7fc58e5..89ec2c8bc 100644 --- a/docs/_includes/network/data-product.md +++ b/docs/_includes/network/data-product.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A data product node must reference a product definition in the corresponding dat {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/data-storage.md b/docs/_includes/network/data-storage.md index 272658eca..e06d96284 100644 --- a/docs/_includes/network/data-storage.md +++ b/docs/_includes/network/data-storage.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ Data products generated by the bot instances you run need to be stored somewhere {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/forward-testing-session.md b/docs/_includes/network/forward-testing-session.md index 34217ac80..d5e2d2f1a 100644 --- a/docs/_includes/network/forward-testing-session.md +++ b/docs/_includes/network/forward-testing-session.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A forward testing session node must reference a trading system to gain access to {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/indicator-bot-instance.md b/docs/_includes/network/indicator-bot-instance.md index 68ef4c4c1..0b71f3f11 100644 --- a/docs/_includes/network/indicator-bot-instance.md +++ b/docs/_includes/network/indicator-bot-instance.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ The indicator bot instance holds no definitions as to what the bot does. Instead {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/indicator-process-instance.md b/docs/_includes/network/indicator-process-instance.md index d52d153c0..cb60a1af4 100644 --- a/docs/_includes/network/indicator-process-instance.md +++ b/docs/_includes/network/indicator-process-instance.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ Once the reference is established, the indicator process instance adopts the nam {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/key-instance.md b/docs/_includes/network/key-instance.md index 159d4322b..745f19e89 100644 --- a/docs/_includes/network/key-instance.md +++ b/docs/_includes/network/key-instance.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -60,7 +63,7 @@ In all cases, the key instance node must reference a valid exchange account key {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/live-trading-session.md b/docs/_includes/network/live-trading-session.md index a2a92568d..1f51284c1 100644 --- a/docs/_includes/network/live-trading-session.md +++ b/docs/_includes/network/live-trading-session.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A live trading session node must reference a trading system to gain access to th {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/market-reference.md b/docs/_includes/network/market-reference.md index e6cd5d111..7a3ad37e0 100644 --- a/docs/_includes/network/market-reference.md +++ b/docs/_includes/network/market-reference.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ In other words, a market reference is the piece of information that lets the pro {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/network-node.md b/docs/_includes/network/network-node.md index f8c938c25..4ad5f868e 100644 --- a/docs/_includes/network/network-node.md +++ b/docs/_includes/network/network-node.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ In a more distant future, you will also be able to connect to and consume servic {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/network.md b/docs/_includes/network/network.md index 0f1ea161c..f42cac119 100644 --- a/docs/_includes/network/network.md +++ b/docs/_includes/network/network.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -50,11 +53,11 @@ You will use the network hierarchy for the following purposes: -* To control your data mining, that is, processes running sensor and indicator bots. These keep your data feeds up to date so that you may trade live with quality information. +* To control your data mining, that is, processes running sensor and indicator bots. These keep your data feeds up to date so that you may trade live with quality information. -* To control your testing environment, that is trading sessions including backtesting and paper trading. +* To control your testing environment, that is trading sessions including backtesting and paper trading. -* To control your production environment, that is, forward testing, and live trading sessions running the trading bot. +* To control your production environment, that is, forward testing, and live trading sessions running the trading bot. * To control your data storage, that is, to administer the physical location in which the data products produced by bots reside. @@ -62,7 +65,7 @@ You will use the network hierarchy for the following purposes: {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/paper-trading-session.md b/docs/_includes/network/paper-trading-session.md index c4659bddd..aa25f6bf3 100644 --- a/docs/_includes/network/paper-trading-session.md +++ b/docs/_includes/network/paper-trading-session.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A paper trading session node must reference a trading system to gain access to t {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/production-environment.md b/docs/_includes/network/production-environment.md index b12f5a4fa..a283784b1 100644 --- a/docs/_includes/network/production-environment.md +++ b/docs/_includes/network/production-environment.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ If you work with multiple markets, multiple exchanges, or multiple trading syste {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/sensor-bot-instance.md b/docs/_includes/network/sensor-bot-instance.md index ca9968649..34ca29f90 100644 --- a/docs/_includes/network/sensor-bot-instance.md +++ b/docs/_includes/network/sensor-bot-instance.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ The sensor bot instance holds no definitions as to what the bot does. Instead, i {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/sensor-process-instance.md b/docs/_includes/network/sensor-process-instance.md index e79bb9ca0..0b4d99c38 100644 --- a/docs/_includes/network/sensor-process-instance.md +++ b/docs/_includes/network/sensor-process-instance.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ For example, in the case of an instance of the Masters data mine Charly sensor b {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/session-based-data.md b/docs/_includes/network/session-based-data.md index c6bd2c8e5..83666fc6a 100644 --- a/docs/_includes/network/session-based-data.md +++ b/docs/_includes/network/session-based-data.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/session-independent-data.md b/docs/_includes/network/session-independent-data.md index 23a588ff6..098d3da63 100644 --- a/docs/_includes/network/session-independent-data.md +++ b/docs/_includes/network/session-independent-data.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/session-reference.md b/docs/_includes/network/session-reference.md index 4eefa55f5..bcdfe8b96 100644 --- a/docs/_includes/network/session-reference.md +++ b/docs/_includes/network/session-reference.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ A such, the session reference node must establish a reference with a session. In {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/single-market-data.md b/docs/_includes/network/single-market-data.md index dcc466997..57491d42f 100644 --- a/docs/_includes/network/single-market-data.md +++ b/docs/_includes/network/single-market-data.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ The single market data node must establish a reference with a specific market de {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/task-manager.md b/docs/_includes/network/task-manager.md index 24d2e0c36..2516b88e1 100644 --- a/docs/_includes/network/task-manager.md +++ b/docs/_includes/network/task-manager.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -58,7 +61,7 @@ A task manager facilitates the organization of tasks. For example, you may wish {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/task.md b/docs/_includes/network/task.md index a822fe518..b4e94e400 100644 --- a/docs/_includes/network/task.md +++ b/docs/_includes/network/task.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ Each task controls a single bot. A bot instance running on its own task is indep {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/testing-environment.md b/docs/_includes/network/testing-environment.md index 3d7875f7d..1c69351b3 100644 --- a/docs/_includes/network/testing-environment.md +++ b/docs/_includes/network/testing-environment.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ Depending on how you use the system, how many markets and exchanges you work wit {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/trading-bot-instance.md b/docs/_includes/network/trading-bot-instance.md index 9eaba04cc..ca7b15930 100644 --- a/docs/_includes/network/trading-bot-instance.md +++ b/docs/_includes/network/trading-bot-instance.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ The trading bot instance holds no definitions as to what the bot does. Instead, {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/network/trading-process-instance.md b/docs/_includes/network/trading-process-instance.md index 5ceef5610..726cace60 100644 --- a/docs/_includes/network/trading-process-instance.md +++ b/docs/_includes/network/trading-process-instance.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ The trading process instance must reference the *Multi-Period* process definitio {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/--------------------------------------------template.md b/docs/_includes/trading_system/--------------------------------------------template.md index 5792dad45..9bde985bd 100644 --- a/docs/_includes/trading_system/--------------------------------------------template.md +++ b/docs/_includes/trading_system/--------------------------------------------template.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/base-asset.md b/docs/_includes/trading_system/base-asset.md index 354d8644a..d16385a45 100644 --- a/docs/_includes/trading_system/base-asset.md +++ b/docs/_includes/trading_system/base-asset.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ The basse asset must reference an asset in a specific market of a specific excha {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/close-execution.md b/docs/_includes/trading_system/close-execution.md index 921267da0..33f7c55da 100644 --- a/docs/_includes/trading_system/close-execution.md +++ b/docs/_includes/trading_system/close-execution.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/close-stage.md b/docs/_includes/trading_system/close-stage.md index 342ec3aaf..4f313dcb7 100644 --- a/docs/_includes/trading_system/close-stage.md +++ b/docs/_includes/trading_system/close-stage.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ Also pending development is the keeping of a formal trading log. The current fun {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/condition.md b/docs/_includes/trading_system/condition.md index 1ac3bfa7c..16b5e3de9 100644 --- a/docs/_includes/trading_system/condition.md +++ b/docs/_includes/trading_system/condition.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -66,7 +69,7 @@ In the example above, conditions A and B are comparison statements that may eval {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/fee-structure.md b/docs/_includes/trading_system/fee-structure.md index 57ea6feb9..0e97e0e2c 100644 --- a/docs/_includes/trading_system/fee-structure.md +++ b/docs/_includes/trading_system/fee-structure.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -64,7 +67,7 @@ In the context of forward testing and live trading sessions, the fee structure a {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/formula.md b/docs/_includes/trading_system/formula.md index 86d4d5f1d..f4c041504 100644 --- a/docs/_includes/trading_system/formula.md +++ b/docs/_includes/trading_system/formula.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -62,7 +65,7 @@ Formulas may use [internal variables](suite-internal-variables.html) made availa {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/initial-definition.md b/docs/_includes/trading_system/initial-definition.md index 18571e893..6b00f0572 100644 --- a/docs/_includes/trading_system/initial-definition.md +++ b/docs/_includes/trading_system/initial-definition.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/initial-stop.md b/docs/_includes/trading_system/initial-stop.md index 562bfd4c6..b6ca83934 100644 --- a/docs/_includes/trading_system/initial-stop.md +++ b/docs/_includes/trading_system/initial-stop.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -60,7 +63,7 @@ The initial target is set in phase 0, that is, the departing point for the manag {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/initial-take-profit.md b/docs/_includes/trading_system/initial-take-profit.md index 69aeeef70..c37ae2093 100644 --- a/docs/_includes/trading_system/initial-take-profit.md +++ b/docs/_includes/trading_system/initial-take-profit.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ The initial target is set in phase 0, which may shift to the following phase onc {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/javascript-code.md b/docs/_includes/trading_system/javascript-code.md index 30219aa29..1ad8d0ced 100644 --- a/docs/_includes/trading_system/javascript-code.md +++ b/docs/_includes/trading_system/javascript-code.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -48,7 +51,7 @@ -The platform allows developers great flexibility as all valid JavaScript code is allowed. +The system allows developers great flexibility as all valid JavaScript code is allowed. {% include important.html content="Until a robust JavaScript editor is implemented on the UI, it is recommended to write code on an external editor and paste it in the UI code bubble to ensure consistency." %} @@ -56,7 +59,7 @@ The platform allows developers great flexibility as all valid JavaScript code is {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/manage-stage.md b/docs/_includes/trading_system/manage-stage.md index 9e51da7d4..7533a867c 100644 --- a/docs/_includes/trading_system/manage-stage.md +++ b/docs/_includes/trading_system/manage-stage.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -66,7 +69,7 @@ All of these considerations should feed the dynamic analysis performed as the tr {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/next-phase-event.md b/docs/_includes/trading_system/next-phase-event.md index a3a06b6fa..e2aec0333 100644 --- a/docs/_includes/trading_system/next-phase-event.md +++ b/docs/_includes/trading_system/next-phase-event.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ The management of a trade is performed in sequential phases. Each phase may defi {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/open-execution.md b/docs/_includes/trading_system/open-execution.md index f2d71ca44..5cbc21fe5 100644 --- a/docs/_includes/trading_system/open-execution.md +++ b/docs/_includes/trading_system/open-execution.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/open-stage.md b/docs/_includes/trading_system/open-stage.md index 9dd452681..0f52c0d29 100644 --- a/docs/_includes/trading_system/open-stage.md +++ b/docs/_includes/trading_system/open-stage.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -58,7 +61,7 @@ Ideally, the open stage would also handle the parameters that define the executi {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/parameters.md b/docs/_includes/trading_system/parameters.md index f84ddde73..90e44d107 100644 --- a/docs/_includes/trading_system/parameters.md +++ b/docs/_includes/trading_system/parameters.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ Each testing session has its own set of parameters. This allows you to configure {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/phase-0.md b/docs/_includes/trading_system/phase-0.md index 85a9fe945..39f6d8f8d 100644 --- a/docs/_includes/trading_system/phase-0.md +++ b/docs/_includes/trading_system/phase-0.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/phase-1.md b/docs/_includes/trading_system/phase-1.md index 7d4a1e518..d67f4d11e 100644 --- a/docs/_includes/trading_system/phase-1.md +++ b/docs/_includes/trading_system/phase-1.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ The management of phases happens in a sequence. Phase 1 comes after phase 0, whi {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/position-rate.md b/docs/_includes/trading_system/position-rate.md index 93dbf77d2..aa0fba572 100644 --- a/docs/_includes/trading_system/position-rate.md +++ b/docs/_includes/trading_system/position-rate.md @@ -8,7 +8,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -27,20 +32,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -55,7 +58,7 @@ However, for the time being, the formula is overridden by the system as executio {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/position-size.md b/docs/_includes/trading_system/position-size.md index f199af2ef..c2c42a53e 100644 --- a/docs/_includes/trading_system/position-size.md +++ b/docs/_includes/trading_system/position-size.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/quoted-asset.md b/docs/_includes/trading_system/quoted-asset.md index 91578738f..74aa1002c 100644 --- a/docs/_includes/trading_system/quoted-asset.md +++ b/docs/_includes/trading_system/quoted-asset.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ The quoted asset must reference the second asset in the same market of the same {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/situation.md b/docs/_includes/trading_system/situation.md index 726e6d7df..d39c649dc 100644 --- a/docs/_includes/trading_system/situation.md +++ b/docs/_includes/trading_system/situation.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -58,7 +61,7 @@ An event may have more than one situation attached to it. In such a case, when a {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/slippage.md b/docs/_includes/trading_system/slippage.md index ddcad1654..3dfcff517 100644 --- a/docs/_includes/trading_system/slippage.md +++ b/docs/_includes/trading_system/slippage.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ Slippage is factored both in the session reports and in the graphic representati {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/stop.md b/docs/_includes/trading_system/stop.md index d8413a045..2e95775a7 100644 --- a/docs/_includes/trading_system/stop.md +++ b/docs/_includes/trading_system/stop.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/strategy.md b/docs/_includes/trading_system/strategy.md index e4cb233fc..2db336314 100644 --- a/docs/_includes/trading_system/strategy.md +++ b/docs/_includes/trading_system/strategy.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about strategies {% endif %} @@ -73,7 +76,7 @@ The definition of strategy points to the concept of *a trade*. A trade is a proc {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about strategies {% endif %} diff --git a/docs/_includes/trading_system/take-position-event.md b/docs/_includes/trading_system/take-position-event.md index 9a01f8a78..0abc78d74 100644 --- a/docs/_includes/trading_system/take-position-event.md +++ b/docs/_includes/trading_system/take-position-event.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -58,7 +61,7 @@ Once the take position event is triggered, the decision to take a position has b {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/take-profit.md b/docs/_includes/trading_system/take-profit.md index 48ea4f2e8..399be99c0 100644 --- a/docs/_includes/trading_system/take-profit.md +++ b/docs/_includes/trading_system/take-profit.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/time-frame.md b/docs/_includes/trading_system/time-frame.md index 21c89d2a2..3d2d403b0 100644 --- a/docs/_includes/trading_system/time-frame.md +++ b/docs/_includes/trading_system/time-frame.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ In the context of live sessions, that is, paper trading, forward testing and liv {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/time-range.md b/docs/_includes/trading_system/time-range.md index 5dadb5d00..f1848fc24 100644 --- a/docs/_includes/trading_system/time-range.md +++ b/docs/_includes/trading_system/time-range.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -54,7 +57,7 @@ {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/trading-system.md b/docs/_includes/trading_system/trading-system.md index 1cdf31a0c..293df8de2 100644 --- a/docs/_includes/trading_system/trading-system.md +++ b/docs/_includes/trading_system/trading-system.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -50,7 +53,7 @@ In practical terms, a trading system is a hierarchical arrangement organizing the actionable aspects of your investment plan. The hierarchy contains definitions regarding any number of trading strategies, all sharing the same market, the same base asset, and the same initial capital. -You use a trading system to define strategies following the Superalgos Protocol, splitting strategies into four stages: trigger, open, manage, and close. +You use a trading system to define strategies following the Superalgos Protocol, splitting strategies into four stages: trigger, open, manage, and close. The concept of describing strategies in phases is fundamental to the methodical aspect of the trading system, as it provides a framework to run every strategy with the same logic, which contributes to developing scalable trading systems that may grow to any number of strategies. @@ -58,7 +61,7 @@ The concept of describing strategies in phases is fundamental to the methodical {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/trigger-off-event.md b/docs/_includes/trading_system/trigger-off-event.md index 6a5e15f3e..e904d5040 100644 --- a/docs/_includes/trading_system/trigger-off-event.md +++ b/docs/_includes/trading_system/trigger-off-event.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -58,7 +61,7 @@ In the first scenario, the strategy remains *on* until the trade is closed. As t {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/trigger-on-event.md b/docs/_includes/trading_system/trigger-on-event.md index fa7022f6b..ffbff43eb 100644 --- a/docs/_includes/trading_system/trigger-on-event.md +++ b/docs/_includes/trading_system/trigger-on-event.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -56,7 +59,7 @@ Once a strategy is triggered-on, the system starts evaluating the take position {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/_includes/trading_system/trigger-stage.md b/docs/_includes/trading_system/trigger-stage.md index 65b9ee0bc..2451b3117 100644 --- a/docs/_includes/trading_system/trigger-stage.md +++ b/docs/_includes/trading_system/trigger-stage.md @@ -7,7 +7,12 @@ -{% if include.heading != "" %} +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} {{include.heading}} {{title}} {% endif %} @@ -26,20 +31,18 @@ {% endif %} {% if include.definition == "bold" %} - {{ definition }} - {% else %} - +{% if include.definition != "no" %} {{ definition }} - +{% endif %} {% endif %} {% if include.table == "yes" and include.icon != "no" %} {% endif %} -{% if include.more == "yes" and include.content == "more" %} +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} @@ -62,7 +65,7 @@ As a corollary, if certain strategies are meant to trade under the same market s {% endif %} -{% if include.more == "yes" and include.content != "more" %} +{% if include.more == "yes" and include.content != "more" and include.heading != "more" %}
Click to learn more about {{ title | downcase }}{{plural}} {% endif %} diff --git a/docs/css/customstyles.css b/docs/css/customstyles.css index 2f78d4dfb..dfc086c6e 100644 --- a/docs/css/customstyles.css +++ b/docs/css/customstyles.css @@ -50,7 +50,7 @@ p { .detailsCollapsible { margin-left: 0px; - border-left: 1px solid #f0f0f0; + border-left: 1px solid #bce8f1; padding-left: 30px; } diff --git a/docs/images/icons/150-dashboard.png b/docs/images/icons/150-dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..c4ee619a6d0618e862de10ecec6fca5ebc5d6a55 GIT binary patch literal 5828 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 literal 0 HcmV?d00001 diff --git a/docs/images/icons/150-toggle-panel-off.png b/docs/images/icons/150-toggle-panel-off.png new file mode 100644 index 0000000000000000000000000000000000000000..8b227ae314accc25d8ab10a5c18b8b9c4f3604d7 GIT binary patch literal 9402 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 BG$8;0 literal 0 HcmV?d00001 diff --git a/docs/images/icons/150-viewport.png b/docs/images/icons/150-viewport.png index 82a05195da7ccefd67217fc0ca65f2cd8a47935e..ffb1622b47ddb04d2ddb32878f7c26e88500d532 100644 GIT binary patch delta 8994 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 IM6N<$f;#t>rT_o{ delta 7654 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 JPDHLkV1l~!Haq|T diff --git a/docs/index.md b/docs/index.md index 404f898f0..47da05ea9 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,19 +1,32 @@ --- -title: "Welcome to the Superalgos Documentation" +title: "Welcome to the Superalgos Documentation Site" +summary: "This is the documentation for the Superalgos Project, a crypto-intelligence suite enabling the automation of complex trading strategies and robust market data processing." sidebar: suite_sidebar permalink: index.html --- ## About this Documentation +This is the documentation site for the Superalgos Project, as described [on the website](https://superalgos.org/). + This documentation is currently work in progress and corresponds to an unreleased version of the Superalgos Suite, still in development. The system has experienced a major shift on multiple fronts, and changes are currently being documented. -The hierarchies directory features extensive information about all the data structures handled by the design space, including the new, unreleased ones. +The current pages cover all the basic aspects of the concepts entailed in the system. That is, most concepts native to Superalgos and technical details of the system are covered already. + +Pending work includes: + +* A complete description of the charts interface. The underlying concepts are already covered in the Charting Space pages. + +* A *getting started guide*. + +* Documentation-wide illustrations. + +* *How to* pages and specific *use cases*. ## Beta Stage Notice -This is a pre-release in beta stage. The platform is under heavy development. We appreciate your help in testing the platform and reporting any errors you may experience. We will keep improving user experience with your feedback. +This is a pre-release in beta stage. The system is under heavy development. We appreciate your help in testing the system and reporting any errors you may experience. We will keep improving user experience with your feedback. -{% include important.html content="The Superalgos Platform is at a very early stage of development. As such, errors may occur at any point, including errors that may cause you to lose money. You are responsible for taking all precautions before starting trading live. Make sure you forward-test with small amounts of money, the kind you can afford losing. Trade live at your own risk." %} +{% include important.html content="Superalgos is at a very early stage of development. As such, errors may occur at any point, including errors that may cause you to lose money. You are responsible for taking all precautions before starting trading live. Make sure you forward-test with small amounts of money, the kind you can afford losing. Trade live at your own risk." %} diff --git a/docs/pages/suite/suite-advanced-backtesting.md b/docs/pages/suite/suite-advanced-backtesting.md index fdb9b3c73..ce5c3a615 100644 --- a/docs/pages/suite/suite-advanced-backtesting.md +++ b/docs/pages/suite/suite-advanced-backtesting.md @@ -7,7 +7,7 @@ permalink: suite-advanced-backtesting.html ## Adding New Sessions -The platform allows for having multiple testing sessions. You may add and work with multiple sessions in two different ways: +The system allows for having multiple testing sessions. You may add and work with multiple sessions in two different ways: **1. Independent Task** @@ -17,7 +17,7 @@ A process running under its own task may not be affected by errors occurring on For the reasons above, you may choose to run each testing session on separate tasks. -The easiest way to create sessions under this configuration is by cloning an existing task and dropping the cloned file back on the design space. Once the new task is on the design space, you may chain it to your preferred task manager. +The easiest way to create sessions under this configuration is by cloning an existing task and dropping the cloned file back in the design space. Once the new task is in the design space, you may chain it to your preferred task manager. [![Sessions-01-Duplicate](https://user-images.githubusercontent.com/13994516/70354911-23d8c000-1871-11ea-8a6c-552ab6e206ce.gif)](https://user-images.githubusercontent.com/13994516/70354911-23d8c000-1871-11ea-8a6c-552ab6e206ce.gif) diff --git a/docs/pages/suite/suite-anatomy-of-an-indicator.md b/docs/pages/suite/suite-anatomy-of-an-indicator.md index 52fccadd0..0bace39f4 100644 --- a/docs/pages/suite/suite-anatomy-of-an-indicator.md +++ b/docs/pages/suite/suite-anatomy-of-an-indicator.md @@ -7,13 +7,13 @@ permalink: suite-anatomy-of-an-indicator.html The tools available for you to turn an existing dataset into a new, value-added product, are scattered througout the definitions of the indicator itself. -We will dive into Paula and Chris—two of the indicators that ship with the platform—to learn how these bots are structured. +We will dive into Paula and Chris—two of the indicators that ship with the system—to learn how these bots are structured. | Masters Team | Paula | Chris | | :---: | :---: | :---: | | ![team](https://user-images.githubusercontent.com/13994516/70050816-24066080-15d0-11ea-83c4-f16b71007ecb.png) | ![bot-indicator](https://user-images.githubusercontent.com/13994516/67079733-000fcc80-f194-11e9-98d7-3426dd956d65.png) | ![bot-indicator](https://user-images.githubusercontent.com/13994516/67079733-000fcc80-f194-11e9-98d7-3426dd956d65.png) | -It is highly recommended that you follow this exploration directly on the platform, so that you may clearly see the relationship among nodes and play with the hierachy as we advance. +It is highly recommended that you follow this exploration directly on the system, so that you may clearly see the relationship among nodes and play with the hierachy as we advance. Paula and Chris are offspring nodes of the Masters Team hierarchy. diff --git a/docs/pages/suite/suite-arranging-dashboard.md b/docs/pages/suite/suite-arranging-dashboard.md new file mode 100644 index 000000000..8283a2f8c --- /dev/null +++ b/docs/pages/suite/suite-arranging-dashboard.md @@ -0,0 +1,18 @@ +--- +title: Arranging a Dashboard +summary: "Arrange a dashboard by moving and resizing time machines." +sidebar: suite_sidebar +permalink: suite-arranging-dashboard.html +--- + +Each of the charts you see in the viewport is actually a time machine. Time machines are represented by rectangular elements with dark-turquoise boundaries. + +Time machines may feature one or more timeline charts, right inside them. In other words, timeline charts live within time machines. + +**1. To move a time machine around the viewport** hit the Shift key, left-click on the time machine, and move it to your preferred location. + +**2. To adjust the size of a time machine** left-click and drag a border. The operation affects the size of the time machine without affecting the scale. + +**3. To adjust the size of a time machine keeping the same data in view** right-click and drag a border. The operation affects the size of the time machine and, at the same time, adjusts the scale so that the same data remains in view. + +{% include /charting_space/dashboard.md heading="more" icon="150-" adding="####" configuring="" charts="" content="yes" definition="bold" table="yes" more="yes"%} \ No newline at end of file diff --git a/docs/pages/suite/suite-bots.md b/docs/pages/suite/suite-bots.md index 7518b9466..059e6eb42 100644 --- a/docs/pages/suite/suite-bots.md +++ b/docs/pages/suite/suite-bots.md @@ -7,13 +7,13 @@ permalink: suite-bots.html There are three different kinds of bots, sometimes called *algorithms* interchangeably: -* **Sensor Bots:** they extract raw data from external sources (*i.e.: exchanges, Twitter, etc.*) and store it in the platform's standardized format for others to consume; +* **Sensor Bots:** they extract raw data from external sources (*i.e.: exchanges, Twitter, etc.*) and store it in the system's standardized format for others to consume; * **Indicator Bots:** they process available information that other bots may have generated to produce elaborate datasets for others to consume; * **Trading Bot:** based on datasets exposed as products by other bots (counting sensors, indicators and even other trading bots), a trading bot applies the trading logic defined on a trading system to, on one side, generate a complete trading simulation (outputting datasets that include trades, the action of strategies, validation of conditions, etc.), and on the other side, manages the execution of orders when on a forward testing or live trading session. -What these different kinds of bots have in common is that they all create data products that others may consume. To do this, they run processes that produce and store *datasets*. That is, the product a bot creates may result in one or more datasets. +What these different kinds of bots have in common is that they all create data products that others may consume. To do this, they run processes that produce and store *datasets*. That is, the product a bot creates may result in one or more datasets. Each bot may have several processes, and processes don't necessarily have a one-to-one relationship with products. That is, a product can be the result of the work of one or more processes. diff --git a/docs/pages/suite/suite-build-a-plotter.md b/docs/pages/suite/suite-build-a-plotter.md index 48da90011..a64919391 100644 --- a/docs/pages/suite/suite-build-a-plotter.md +++ b/docs/pages/suite/suite-build-a-plotter.md @@ -331,7 +331,7 @@ Beyond the graphic representation of data over the charts, plotters may also fea Once you select *Add Plotter Panel* on the plotter module menu, you may start adding as many data fields as you wish. -The platform will render a panel featuring a centered, single-column vertical arrangement of data. The label of each data field on the panel is given (by default) by the label you set for the *panel data* node. +The system will render a panel featuring a centered, single-column vertical arrangement of data. The label of each data field on the panel is given (by default) by the label you set for the *panel data* node. The configuration of a *panel data* node allows you to determine the number of decimal places for the corresponding data field: diff --git a/docs/pages/suite/suite-build-an-indicator.md b/docs/pages/suite/suite-build-an-indicator.md index 7f008a158..ef0860342 100644 --- a/docs/pages/suite/suite-build-an-indicator.md +++ b/docs/pages/suite/suite-build-an-indicator.md @@ -7,7 +7,7 @@ permalink: suite-build-an-indicator.html ## Introduction -We will go through the process required to set up a new indicator bot from scratch, using the Simple Moving Average (SMA) indicator that ships with the platform as example. +We will go through the process required to set up a new indicator bot from scratch, using the Simple Moving Average (SMA) indicator that ships with the system as example. The indicator's *Popular* product calculates the SMA on 20, 50, 100 and 200 periods, using Olivia's candles as input, storing two datasets of market and daily files. @@ -401,7 +401,7 @@ If everything works well, the bot should start logging the typical progress mess ## Debugging -In case something is not working properly, the console is the first place to look into. The platform will log handled errors just like it does with the rest of the components in the system. +In case something is not working properly, the console is the first place to look into. The system will log handled errors just like it does with the rest of the components in the system. You may also implement additional logging features in the code you use on the *Data Building Procedure*. Notice that the code used for this bot has such kind of code embeded, but commented. diff --git a/docs/pages/suite/suite-charting-space-hierarchy.md b/docs/pages/suite/suite-charting-space-hierarchy.md index 3c397ae2b..611664923 100644 --- a/docs/pages/suite/suite-charting-space-hierarchy.md +++ b/docs/pages/suite/suite-charting-space-hierarchy.md @@ -8,188 +8,26 @@ toc: false {% include note.html content="Hover your mouse over a node for a tooltip definition, and click to get all the details." %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
Charting Space
-
- - -
Viewport
-
- - -
Time Machine
-
- - -
Time Scale
-
- - -
Rate Scale
-
- - -
Time Frame Scale
-
- - -
Timeline Chart
-
- - -
Rate Scale
-
- - -
Time Frame Scale
-
- - -
Layers Manager
-
- - -
Layer
-
- - - - - - - + + + + + + + + + + + +

Charting Space

Viewport

Dashboard

Time Machine

Time Scale

Rate Scale

Time Frame Scale

Timeline Chart

Rate Scale

Time Frame Scale

Layers Manager

Layer
{% include /charting_space/charting-space.md heading="##" icon="150-" adding="" configuring="" charts="" content="yes" definition="bold" table="yes" more="no"%} {% include /charting_space/viewport.md heading="##" icon="150-" adding="" configuring="" charts="" content="yes" definition="bold" table="yes" more="no"%} +{% include /charting_space/dashboard.md heading="##" icon="150-" adding="####" configuring="" charts="" content="yes" definition="bold" table="yes" more="no"%} + {% include /charting_space/time-machine.md heading="##" icon="150-" adding="####" configuring="" charts="" content="yes" definition="bold" table="yes" more="no"%} {% include /charting_space/time-scale.md heading="##" icon="150-" adding="####" configuring="####" charts="####" content="yes" definition="bold" table="yes" more="no"%} diff --git a/docs/pages/suite/suite-charting-space.md b/docs/pages/suite/suite-charting-space.md new file mode 100644 index 000000000..a6a29fded --- /dev/null +++ b/docs/pages/suite/suite-charting-space.md @@ -0,0 +1,20 @@ +--- +title: Charting Space +summary: "The charting space hierarchy organizes the charts on the viewport and controls their behavior." +sidebar: suite_sidebar +permalink: suite-charting-space.html +toc: false +--- + +{% include /charting_space/charting-space.md heading="" icon="150-" adding="" configuring="" charts="" content="yes" definition="bold" table="yes" more="no"%} + + + + +

Charting Space

Viewport

Dashboard

Time Machine
+ +{% include /charting_space/viewport.md heading="##" icon="150-" adding="" configuring="" charts="" content="yes" definition="bold" table="yes" more="no"%} + +{% include /charting_space/dashboard.md heading="##" icon="150-" adding="####" configuring="" charts="" content="yes" definition="bold" table="yes" more="yes"%} + +{% include /charting_space/time-machine.md heading="###" icon="" adding="####" configuring="" charts="" content="yes" definition="yes" table="yes" more="yes"%} diff --git a/docs/pages/suite/suite-charts-overview.md b/docs/pages/suite/suite-charts-overview.md index 4b75174c0..b849c5412 100644 --- a/docs/pages/suite/suite-charts-overview.md +++ b/docs/pages/suite/suite-charts-overview.md @@ -5,7 +5,7 @@ sidebar: suite_sidebar permalink: suite-charts-overview.html --- -Conceptually, the Superalgos Platform places the focus on the visual experience. Not just because it's *nice* to see data in graphical representations, but because humans excel when our senses take part in the analysis. Human's capacity to think abstractly may be more or less developed across individuals, but one thing is clear: our thought process benefits from being able to see. +Conceptually, Superalgos places the focus on the visual experience. Not just because it's *nice* to see data in graphical representations, but because humans excel when our senses take part in the analysis. Human's capacity to think abstractly may be more or less developed across individuals, but one thing is clear: our thought process benefits from being able to see. The Charts offer a visual environment in which you will be able to see, analyze and go over every piece of data involved in the process of trading cryptocurrencies: diff --git a/docs/pages/suite/suite-consulting-logs.md b/docs/pages/suite/suite-consulting-logs.md index dda310ce4..5c3b33fba 100644 --- a/docs/pages/suite/suite-consulting-logs.md +++ b/docs/pages/suite/suite-consulting-logs.md @@ -5,7 +5,7 @@ sidebar: suite_sidebar permalink: suite-consulting-logs.html --- -If you are a technical person, you may be interested in consuting the logs of the different bots that run in the platform. +If you are a technical person, you may be interested in consuting the logs of the different bots that run in the system. Each bot keeps its own set of execution log files, stored under a similar folder structure as bot's Output and Reports. The difference is that the Log-Files folder is at the root level of the release folder, instead of being inside Data-Storage: diff --git a/docs/pages/suite/suite-data-mines.md b/docs/pages/suite/suite-data-mines.md index 1e441f737..1ee532a0b 100644 --- a/docs/pages/suite/suite-data-mines.md +++ b/docs/pages/suite/suite-data-mines.md @@ -16,7 +16,7 @@ Data mines' functionality is highly flexible and works under the same paradigm u The vast majority of the complexity of processing data is handled internally by the bots, and you don't need to deal with it or even understand it. The system isolates complexity and only exposes you to the crucial elements that impact what you wish to accomplish. -This section of the documentation provides you with the technical understanding of how data is handled by the platform. The core of the functionality this section unveils covers—in essence—the following points: +This section of the documentation provides you with the technical understanding of how data is handled by the system. The core of the functionality this section unveils covers—in essence—the following points: * The capacity to define any number of calculation processes that may feed on each other's outputs, resulting in a wealth of *information* that may be consumed by trading strategies. diff --git a/docs/pages/suite/suite-datasets.md b/docs/pages/suite/suite-datasets.md index 37240b33b..a148fa5e9 100644 --- a/docs/pages/suite/suite-datasets.md +++ b/docs/pages/suite/suite-datasets.md @@ -53,7 +53,7 @@ With all this in mind, lets go through the five different types of datasets exis The route for writing bot's output is built as follows: -```Bot Name and version > the version of AACloud (an internal platform component) > the version of the dataset > Output folder``` +```Bot Name and version > the version of AACloud (an internal system component) > the version of the dataset > Output folder``` _e.g.:_ diff --git a/docs/pages/suite/suite-dependencies.md b/docs/pages/suite/suite-dependencies.md index 08de48bff..6c4300ed0 100644 --- a/docs/pages/suite/suite-dependencies.md +++ b/docs/pages/suite/suite-dependencies.md @@ -21,7 +21,7 @@ The declaration of such dependencies is what allows bots to add value over the p As you may figure, the possibilities are endless when you have the power to combine information from different sources, produce an analysis on top of that information, and store the new information separately to be consumed by other bots, including the trading bot, through the trading logic behind strategies. -Let's go through the dependencies existing among the current set of bots shipped with the platform... +Let's go through the dependencies existing among the current set of bots shipped with the system... ## Charly diff --git a/docs/pages/suite/suite-design-space-interface.md b/docs/pages/suite/suite-design-space-interface.md index 4577eb8e1..6aa1a25b7 100644 --- a/docs/pages/suite/suite-design-space-interface.md +++ b/docs/pages/suite/suite-design-space-interface.md @@ -36,7 +36,7 @@ You may define shortcuts for frequently-used nodes with the following procedure: Repeat the same procedure to remove a shortcut. -{% include note.html content="When attempting to assign a shortcut with a keyboard combination that is already in use, the platform will notify of the issue. If you insist by hitting the same keyboard combination two more times, the platform will assign the shortcut as expected." %} +{% include note.html content="When attempting to assign a shortcut with a keyboard combination that is already in use, the system will notify of the issue. If you insist by hitting the same keyboard combination two more times, the system will assign the shortcut as expected." %} ## Node's Menu @@ -58,12 +58,12 @@ However, there will be times in which you will want to override this self-organi | Icon | Freeze / Unfreeze | | --- | --- | -| ![freeze](images/icons/freeze.png) | Clicking the *freeze* option freezes the node's chain connections with its parent and offspring. Connecting lines turn blue. If you freeze the head node of a hierarchy, then the whole hierarchy is frozen. Freezing node structures is effective only when nodes are loose, that is, when they are not affected by angle or distance settings and are unpinned. In such cases, freezing releases CPU resources, as the platform stops calculating node's positions and status. | +| ![freeze](images/icons/freeze.png) | Clicking the *freeze* option freezes the node's chain connections with its parent and offspring. Connecting lines turn blue. If you freeze the head node of a hierarchy, then the whole hierarchy is frozen. Freezing node structures is effective only when nodes are loose, that is, when they are not affected by angle or distance settings and are unpinned. In such cases, freezing releases CPU resources, as the system stops calculating node's positions and status. | | ![unfreeze](images/icons/unfreeze.png) | Clicking the *unfreeze* option unfreezes connections. If you click the option to unfreeze a node and the node does not change its status, it may be because a higher node in the hierarchy is still frozen. | | Icon | Collapse / Expand | | --- | --- | -| ![collapse](images/icons/collapse.png) | Clicking the _minus_ button collapses the structure, hiding offspring nodes. This also has the effect of releasing CPU resources as the platform stops calculating their position and status. In general, it is good practice to keep hierarchies closed when not being actively worked on. | +| ![collapse](images/icons/collapse.png) | Clicking the _minus_ button collapses the structure, hiding offspring nodes. This also has the effect of releasing CPU resources as the system stops calculating their position and status. In general, it is good practice to keep hierarchies closed when not being actively worked on. | | ![expand](images/icons/expand.png) | Clicking the _plus_ button expands the structure of offspring nodes. | | Icon | Angle to Parent — Click to cycle through the different options. | diff --git a/docs/pages/suite/suite-design-space-workspace-and-data-structures.md b/docs/pages/suite/suite-design-space-workspace-and-data-structures.md index 58be58460..3f8c6899a 100644 --- a/docs/pages/suite/suite-design-space-workspace-and-data-structures.md +++ b/docs/pages/suite/suite-design-space-workspace-and-data-structures.md @@ -5,9 +5,9 @@ sidebar: suite_sidebar permalink: suite-design-space-workspace-and-data-structures.html --- -Superalgos handles numerous concepts encompassing fields such as market information, trading strategies, visualization features, workflows, technical resources, and many more. +Superalgos handles numerous concepts encompassing fields such as market information, trading strategies, visualization features, workflows, infrastructure, technical resources, and many more. Superalgos structures these concepts in an attempt to make their use intuitive. -All of these concepts are structured so that users may use them intuitively. Learning the Superalgos conceptual framework is the first step in that direction. +However, each of the above are complex subjects in their own merit. Therefore, it is necessary to acquire a basic level of understanding of the Superalgos paradigm for the desired intuition to emerge. Understanding the following concepts is a first step in that direction. ## Design Space @@ -21,11 +21,11 @@ In practical terms, the design space is the portion of the system you access whe It contains: - * All hierarchies with all of their nodes. +* All hierarchies with all of their nodes. - * Nodes that may be floating around detached from hierarchies. +* Nodes that may be floating around detached from hierarchies. - * Information regarding the physical position and status of all nodes within the design space, even those detached from the hierarchies. +* Information regarding the physical position and status of all nodes within the design space, even those detached from the hierarchies. The workspace is not part of any of the hierarchies; instead, it contains them. diff --git a/docs/pages/suite/suite-download-and-set-up.md b/docs/pages/suite/suite-download-and-set-up.md index 32badbeb3..d0b121d63 100644 --- a/docs/pages/suite/suite-download-and-set-up.md +++ b/docs/pages/suite/suite-download-and-set-up.md @@ -4,7 +4,7 @@ sidebar: suite_sidebar permalink: suite-download-and-set-up.html --- -This *Getting Started Guide* will quickly show you the very basics of the platform so that you can rapidly grasp the platform's potential. It will take you through a sequence of instructions that you need to follow to download and install the platform, run it for the first time, import an existing strategy, run your first backtest, and, if you are up for it, start trading live. +This *Getting Started Guide* will quickly show you the very basics of the system so that you can rapidly grasp the system's potential. It will take you through a sequence of instructions that you need to follow to download and install the system, run it for the first time, import an existing strategy, run your first backtest, and, if you are up for it, start trading live. Please follow the version of the explanation that best suits your profile: @@ -15,15 +15,15 @@ Please follow the version of the explanation that best suits your profile: ### 1. Downloads -Download the software package from the [latest software release](https://github.com/Superalgos/DesktopApp/releases/tag/v.0.0.5-beta) (```Superalgos-Platform.zip```) and extract the file in an accessible route (you will launch the platform from the extracted folders). +Download the software package from the [latest software release](https://github.com/Superalgos/DesktopApp/releases/tag/v.0.0.5-beta) (```Superalgos-Platform.zip```) and extract the file in an accessible route (you will launch the system from the extracted folders). -Download historic market data from the [latest data release](https://github.com/Superalgos/DesktopApp/releases/tag/data.poloniex.btc.usdt.2019.12.06) (```Poloniex.BTC.USDT.Historic.Data.zip```) and extract the file inside the ```Superalgos Platform``` folder generated by the software ZIP package. +Download historic market data from the [latest data release](https://github.com/Superalgos/DesktopApp/releases/tag/data.poloniex.btc.usdt.2019.12.06) (```Poloniex.BTC.USDT.Historic.Data.zip```) and extract the file inside the ```Superalgos``` folder generated by the software ZIP package. You should end up with the following folder structure: ![image](https://user-images.githubusercontent.com/13994516/65512836-56158b00-deda-11e9-8d81-0dcd79efb480.png) -> **NOTE:** Make sure the data ended up as the ```Data-Storage``` folder, right inside the ```Superalgos Platform``` root folder. +> **NOTE:** Make sure the data ended up as the ```Data-Storage``` folder, right inside the ```Superalgos``` root folder. ### 2. Continue with [Running the Platform](Running-the-Platform) @@ -31,15 +31,15 @@ You should end up with the following folder structure: ### 1. Download the Software Package -Go to the [latest Superalgos Platform release](https://github.com/Superalgos/DesktopApp/releases/tag/v.0.0.5-beta) and download ```Superalgos-Platform.zip```. +Go to the [latest Superalgos release](https://github.com/Superalgos/DesktopApp/releases/tag/v.0.0.5-beta) and download ```Superalgos-Platform.zip```. ### 2. Extract the ZIP File How you extract/unpack the files depends on the software you use to handle ZIP files. Double-clicking the ZIP file should work in most scenarios, however, some systems may "open" the file instead of "extracting" or "unpacking" it. Make sure you are "extracting" and not just "opening" the file. You may also right-click the file and check the options available on the pop-up menu. -When you extract the ZIP file, a folder structure will be created with the root folder being ```Superalgos Platform```. +When you extract the ZIP file, a folder structure will be created with the root folder being ```Superalgos```. -You may extract/unpack the files in any location of your drive, however, we recommend unpacking in an accessible route *(i.e.: ```C:\```)*, as you will later need to fit an additional folder inside the ```Superalgos Platform``` folder, and you will also need to access these folders every time you launch the platform. +You may extract/unpack the files in any location of your drive, however, we recommend unpacking in an accessible route *(i.e.: ```C:\```)*, as you will later need to fit an additional folder inside the ```Superalgos``` folder, and you will also need to access these folders every time you launch the system. ### 3. Download the Data Package @@ -47,18 +47,18 @@ For your convenience and [the reasons explained elsewhere](What-to-Expect), we m Go to the [latest Data release](https://github.com/Superalgos/DesktopApp/releases/tag/data.poloniex.btc.usdt.2019.12.06) and download ```Poloniex.BTC.USDT.Historic.Data.zip```. -The ZIP file includes highly-compressed complete historic BTC/USDT Poloniex market data. Expect decompression to take from 30 to 60 minutes, depending on your system. Once you have the historic data, the platform will make sure the data stays up to date. +The ZIP file includes highly-compressed complete historic BTC/USDT Poloniex market data. Expect decompression to take from 30 to 60 minutes, depending on your system. Once you have the historic data, the system will make sure the data stays up to date. ### 4. Extract the ZIP file -You need to extract the file inside the ```Superalgos Platform``` folder generated by the first ZIP file. You can achieve this in two ways: +You need to extract the file inside the ```Superalgos``` folder generated by the first ZIP file. You can achieve this in two ways: -A. Move ```Poloniex.BTC.USDT.Historic.Data.zip``` inside the ```Superalgos Platform``` folder, right-click the ZIP file and select *Extract here* in the pop-up menu. This is the quickest method. +A. Move ```Poloniex.BTC.USDT.Historic.Data.zip``` inside the ```Superalgos``` folder, right-click the ZIP file and select *Extract here* in the pop-up menu. This is the quickest method. -B. Extract the ZIP file anywhere else and then move the resulting ```Data-Storage``` folder inside the ```Superalgos Platform``` folder. This will take more than double the time. +B. Extract the ZIP file anywhere else and then move the resulting ```Data-Storage``` folder inside the ```Superalgos``` folder. This will take more than double the time. You should end up with the following folder structure: ![image](https://user-images.githubusercontent.com/13994516/65512836-56158b00-deda-11e9-8d81-0dcd79efb480.png) -> **NOTE:** Make sure the data ended up as the ```Data-Storage``` folder, right inside the ```Superalgos Platform``` root folder. \ No newline at end of file +> **NOTE:** Make sure the data ended up as the ```Data-Storage``` folder, right inside the ```Superalgos``` root folder. \ No newline at end of file diff --git a/docs/pages/suite/suite-execution-limitations.md b/docs/pages/suite/suite-execution-limitations.md index d728d6e4d..676114285 100644 --- a/docs/pages/suite/suite-execution-limitations.md +++ b/docs/pages/suite/suite-execution-limitations.md @@ -29,4 +29,4 @@ Had there been a stop somewhere in the range of the sudden price drop, chances a An additional limitation is that there currently is no feature to break up orders, therefore, the size of your orders and the likeliness of them getting filled depend on the liquidity of the market/exchange. -> **NOTE: It is important that you fully understand the implications of these limitations if you are considering to trade live with the platform at this stage, as you will need to adapt to the current state of affairs.** +> **NOTE: It is important that you fully understand the implications of these limitations if you are considering to trade live with the system at this stage, as you will need to adapt to the current state of affairs.** diff --git a/docs/pages/suite/suite-getting-ready-to-trade-live.md b/docs/pages/suite/suite-getting-ready-to-trade-live.md index ef2b62c86..e7a5e1db0 100644 --- a/docs/pages/suite/suite-getting-ready-to-trade-live.md +++ b/docs/pages/suite/suite-getting-ready-to-trade-live.md @@ -24,4 +24,4 @@ The difference is that orders will now go to the exchange. This is important even if your strategy operates at a lower frequency, as running the live session at the 01-min time frame guarantees that the trading bot will exit trades as soon as the one-minute candle closes tagging your stop or take profit target. On the contrary, if you run the live trading session at a time frame higher than 01-min, slippage when closing the position may be considerably greater. -> **WARNING:** The Superalgos Platform is at a very early stage of development. As such, errors may occur at any point, including errors that can cause you to lose money. You are responsible for taking all precautions before starting trading live. Make sure you test with small amounts of money, the kind you can afford losing. Also, make sure you understand the [Execution Limitations](Execution-Limitations). Trade live at your own risk. \ No newline at end of file +> **WARNING:** Superalgos is at a very early stage of development. As such, errors may occur at any point, including errors that can cause you to lose money. You are responsible for taking all precautions before starting trading live. Make sure you test with small amounts of money, the kind you can afford losing. Also, make sure you understand the [Execution Limitations](Execution-Limitations). Trade live at your own risk. \ No newline at end of file diff --git a/docs/pages/suite/suite-hierarchies.md b/docs/pages/suite/suite-hierarchies.md index 0cf9a43ce..4bae0c3d0 100644 --- a/docs/pages/suite/suite-hierarchies.md +++ b/docs/pages/suite/suite-hierarchies.md @@ -7,14 +7,14 @@ permalink: suite-hierarchies.html **{{site.data.concepts.hierarchy}}** -{% include note.html content="On the design space, the head or parent node of each hierarchy is represented by the corresponding icon surrounded by an ever-present white ring, so that they are easier to locate within the workspace." %} - -{% include /crypto_ecosystem/crypto-ecosystem.md heading="##" icon="150-" adding="" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} +{% include note.html content="In the design space, the head or parent node of each hierarchy is represented by the corresponding icon surrounded by an ever-present white ring, so that they are easier to locate within the workspace." %} {% include /charting_space/charting-space.md heading="##" icon="150-" adding="" configuring="" charts="" content="yes" definition="bold" table="yes" more="no"%} {% include /trading_system/trading-system.md heading="##" icon="150-" adding="####" configuring="" starting="" content="yes" definition="bold" table="yes" more="yes"%} +{% include /crypto_ecosystem/crypto-ecosystem.md heading="##" icon="150-" adding="" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} + {% include /network/network.md heading="##" icon="150-" adding="" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} {% include /data_mine/data-mine.md heading="##" icon="150-" adding="####" configuring="####" starting="" content="yes" definition="bold" table="yes" more="yes"%} diff --git a/docs/pages/suite/suite-how-bots-work.md b/docs/pages/suite/suite-how-bots-work.md index e72eaa5b1..dd45df029 100644 --- a/docs/pages/suite/suite-how-bots-work.md +++ b/docs/pages/suite/suite-how-bots-work.md @@ -11,25 +11,25 @@ permalink: suite-how-bots-work.html {% include /data_mine/trading-bot.md heading="" icon="" adding="" configuring="" starting="" content="no" definition="yes" table="yes" more="no" %} -Bots are defined in data mines. That is, data mines hold the source code and configuration—the complete set of definitions—of the three existing kinds of bots. +Bots are defined in data mines. That is, data mines hold the source code and configuration—the complete set of definitions—of the three existing kinds of bots. -Using any of these bots entails creating an instance of the bot definition, so that this instance may run the bot's code. This is done from within the network hierarchy. +Using any of these bots entails creating an instance of the bot definition, so that this instance may run the bot's code. This is done from within the network hierarchy. -A bot instance is a reference to a bot as defined in a data mine. The instance of the bot runs the defined processes and generates the defined data products. +A bot instance is a reference to a bot as defined in a data mine. The instance of the bot runs the defined processes and generates the defined data products. -You use task managers and tasks within the network hierarchy to control bot instances, meaning, to start and stop them. Also in the network hierarchy lies the configurations about where the data they generate is to be stored. +You use task managers and tasks within the network hierarchy to control bot instances, meaning, to start and stop them. Also in the network hierarchy lies the configurations about where the data they generate is to be stored. -Upon execution, bot instances run in a branched sequence determined by their status and data dependencies. For instance, if bot Alice depends on the data produced by bot Bob, then Alice will be configured to run as soon as Bob finishes its execution. These configurations are all set up for existing bots in the corresponding data mine, so you only need to worry about this if your create new bots. +Upon execution, bot instances run in a branched sequence determined by their status and data dependencies. For instance, if bot Alice depends on the data produced by bot Bob, then Alice will be configured to run as soon as Bob finishes its execution. These configurations are all set up for existing bots in the corresponding data mine, so you only need to worry about this if your create new bots. What you do need to understand is that, if Alice depends on data Bob produces, then Bob needs to be running for Alice to do her job. If Bob is not running, then Alice can only sit and wait for Bob to do his part first. Each bot runs for as long as it may require to perform its job, usually in the order of a few seconds, and remains asleep until the next cycle is due. That is, bots run for short bursts, in frequent cycles. The reason for this is that bots are prepared to receive virtually live data and process it online. -Bots need to know which market of which
exchange they should work with. Exchanges and markets are defined in the crypto ecosystem hierarchy. Bots obtain that information by establishing references with the appropriate markets in that hierarchy. +Bots need to know which market of which exchange they should work with. Exchanges and markets are defined in the crypto ecosystem hierarchy. Bots obtain that information by establishing references with the appropriate markets in that hierarchy. -In the case of the trading bot, it also needs to know which type of trading session it should run, and what trading system's rules it should follow. For those reasons, trading bots are paired with a specific session, which in turn, references a trading system. +In the case of the trading bot, it also needs to know which type of trading session it should run, and what trading system's rules it should follow. For those reasons, trading bots are paired with a specific session, which in turn, references a trading system. -{% include note.html content="The information covered *en passant* in this page is explained in detail throughout these *infrastructure concepts* pages." %} +{% include note.html content="The information covered *en passant* in this page is explained in detail throughout these * infrastructure* pages." %} diff --git a/docs/pages/suite/suite-input-to-output-cycle.md b/docs/pages/suite/suite-input-to-output-cycle.md index 76cd245bf..97dafcf05 100644 --- a/docs/pages/suite/suite-input-to-output-cycle.md +++ b/docs/pages/suite/suite-input-to-output-cycle.md @@ -21,12 +21,12 @@ For example, a typical record in the Multi-Period-Market Bollinger Bands dataset [1425945600000,1426031999999,253.17351109,15.293043836574176,30.586087673148352] ``` -That is what the platform will encounter at the time of reading a typical dataset. +That is what the system will encounter at the time of reading a typical dataset. ### 2. Conversion to Objects with Named Properties -To make data usable for humans, it maps the content of each record with concepts that describe the data. Put in other words, the platform labels each field so that the user doesn't need to know or remember what each data field represents, and stores the data a JSON objetcs in memory. +To make data usable for humans, it maps the content of each record with concepts that describe the data. Put in other words, the system labels each field so that the user doesn't need to know or remember what each data field represents, and stores the data a JSON objetcs in memory. ### 3. Calculation of Not-Stored Properties diff --git a/docs/pages/suite/suite-internal-variables.md b/docs/pages/suite/suite-internal-variables.md index 76dfe23d2..d5c3c9660 100644 --- a/docs/pages/suite/suite-internal-variables.md +++ b/docs/pages/suite/suite-internal-variables.md @@ -5,7 +5,7 @@ sidebar: suite_sidebar permalink: suite-internal-variables.html --- -These are properties managed internally by the platform that are made available for using within strategies. +These are properties managed internally by the system that are made available for using within strategies. | Variable | Description | |:---|:---| diff --git a/docs/pages/suite/suite-layer-managers.md b/docs/pages/suite/suite-layer-managers.md new file mode 100644 index 000000000..dce11d4a0 --- /dev/null +++ b/docs/pages/suite/suite-layer-managers.md @@ -0,0 +1,40 @@ +--- +title: Layer Managers +summary: "Layer managers organize layers and their panels." +sidebar: suite_sidebar +permalink: suite-layer-managers.html +--- + +When you zoom into a time machine deep enough, one or more layer managers pop up, usually on the top-left corner of the screen. A time machine may have more than one timeline chart embedded and each timeline chart features a layer manager. + +**1. To move a layer manager** to the opposite, top-right corner, left-click on the header and drag it away. Layer managers tend to self-arrange at either of these corners, so you may drop it somewhere next to its destination and let it find its place. + +{% include note.html content="The order in which layer managers self-arrange is given by the order of precedence of the embedded timeline charts around the time machine node in the designer." %} + +**2. To roll a layer manager up or down**, place the mouse pointer on top of the header and turn the wheel. When the layer manager cannot accommodate all layers in its current length, a scrolling bar appears on the right-hand side. To scroll through the layers, place the mouse pointer on top of any of the visible layers and scroll the wheel of the mouse. + +**3. To turn layers *on* and *off***, left-click on the layer. + +* When a layer is *loading*, the layer slot in the layers managers shows the progress with an orange dotted line on top of the layer's name. + +* When a layer is *on*, the dotted line turns green. + +* When a layer is *off*, there is no line. + +* When the layer can't load, the dotted line turns red. + +Certain layers may feature a panel. Those which do, feature a panel button on the bottom-left corner of the layer slot in the manager. + +**4. To turn panels *on* and *off***, left-click on the panel button. + +Panels tend to self organize on any of the four corners of the screen. + +**5. To move a panel** to a different corner, left-click on the panel label, drag it somewhere near the preferred corner, and let it find its way to its destination. + +{% include note.html content="The order in which panels self-arrange is given by the order of precedence of the layer nodes around the layer manager node in the designer." %} + +**6. To minimize a panel** left-click on the small triangle on the right-hand side of the label. To bring it back, left-click the triangle again. + +{% include /charting_space/layers-manager.md heading="more" icon="150-" adding="####" configuring="" charts="" content="yes" definition="bold" table="yes" more="yes"%} + +{% include /charting_space/layer.md heading="more" icon="150-" adding="####" configuring="####" charts="" content="yes" definition="bold" table="yes" more="yes"%} \ No newline at end of file diff --git a/docs/pages/suite/suite-managing-processes.md b/docs/pages/suite/suite-managing-processes.md index 0e88cff3b..d9e22fac0 100644 --- a/docs/pages/suite/suite-managing-processes.md +++ b/docs/pages/suite/suite-managing-processes.md @@ -62,4 +62,4 @@ Hit Ctrl or ⌘ + Alt + T (*L* for *Live tr We keep the forward testing and live trading sessions separate from the backtesting and paper-trading sessions as there is money involved in the former. Keeping live sessions apart may help avoid unpleasant mistakes, turning on or off live sessions inadvertently. -> **PRO TIP:** The Getting Started guide instructed you to start all tasks on the *Masters Datasets* task manager, but only the required task to start a backtesting session on the *Testing Sessions* task manager. Once you become proficient with the platform, you may want to start only individual tasks according to your specific needs. \ No newline at end of file +> **PRO TIP:** The Getting Started guide instructed you to start all tasks on the *Masters Datasets* task manager, but only the required task to start a backtesting session on the *Testing Sessions* task manager. Once you become proficient with the system, you may want to start only individual tasks according to your specific needs. \ No newline at end of file diff --git a/docs/pages/suite/suite-market-data-indicators-seem-to-be-outdated.md b/docs/pages/suite/suite-market-data-indicators-seem-to-be-outdated.md index 27bf35157..47c653ff1 100644 --- a/docs/pages/suite/suite-market-data-indicators-seem-to-be-outdated.md +++ b/docs/pages/suite/suite-market-data-indicators-seem-to-be-outdated.md @@ -5,7 +5,7 @@ sidebar: suite_sidebar permalink: suite-market-data-indicators-seem-to-be-outdated.html --- -If you are running the platform for the first time or you stopped running the platform for some time, data will not be up to date. Every time you start the platform, it will take some time for data to catch up with the present time. +If you are running the system for the first time or you stopped running the system for some time, data will not be up to date. Every time you start the system, it will take some time for data to catch up with the present time. To update your datasets until the present time you need to *Run All Tasks* in your *Masters Datasets* task manager, and allow enough time for the processes to go through the missing data. diff --git a/docs/pages/suite/suite-multiple-forward-testing-and-live-trading-sessions.md b/docs/pages/suite/suite-multiple-forward-testing-and-live-trading-sessions.md index 390c45efa..de63e729c 100644 --- a/docs/pages/suite/suite-multiple-forward-testing-and-live-trading-sessions.md +++ b/docs/pages/suite/suite-multiple-forward-testing-and-live-trading-sessions.md @@ -5,14 +5,14 @@ sidebar: suite_sidebar permalink: suite-multiple-forward-testing-and-live-trading-sessions.html --- -The platform allows running multiple forward testing and live trading sessions at the same time. This enables trading with multiple trading systems, from within the same instance of the platform. +The system allows running multiple forward testing and live trading sessions at the same time. This enables trading with multiple trading systems, from within the same instance of the system. The one thing you need to be aware of is that—due to restrictions on API use imposed by exchanges—you may not use the same exchange API key with different processes. -If you ever need to create a new trading session, you will create a copy of an existing one by cloning the whole task. Once you drop the clone back on the design space, the new task will have all of the nodes required for trading, including an *exchange account key*. +If you ever need to create a new trading session, you will create a copy of an existing one by cloning the whole task. Once you drop the clone back in the design space, the new task will have all of the nodes required for trading, including an *exchange account key*. Just make sure you don't use the same key on more than one session: you need to get a new API key from the exchange and edit the *exchange account key** accordingly. -> **NOTE:** If you don't specify which API Key to use at the session level, the platform's fallback mechanism will look for an API Key at the level of the parameters of the trading system. If more than one forward testing or live trading session ends up using the same API Key, you should expect errors to occur. +> **NOTE:** If you don't specify which API Key to use at the session level, the system's fallback mechanism will look for an API Key at the level of the parameters of the trading system. If more than one forward testing or live trading session ends up using the same API Key, you should expect errors to occur. Also, make sure the new process instance is referencing Jason's Multi-Period process definition, and the actual session is referencing the definition you intend to run the session on. Follow the same procedure as you would for new testing sessions, as described in the [Advanced backtesting](Advanced-Backtesting) page. \ No newline at end of file diff --git a/docs/pages/suite/suite-my-system-gets-slow.md b/docs/pages/suite/suite-my-system-gets-slow.md index 00719e8c2..4b2f7f858 100644 --- a/docs/pages/suite/suite-my-system-gets-slow.md +++ b/docs/pages/suite/suite-my-system-gets-slow.md @@ -5,7 +5,7 @@ sidebar: suite_sidebar permalink: suite-my-system-gets-slow.html --- -Dynamically rendering all the visual features we use on the platform tends to put a significant load on the machine's processor. Depending on your machine's capacity, this may result in the system getting slow and sometimes even unresponsive. +Dynamically rendering all the visual features we use on the system tends to put a significant load on the machine's processor. Depending on your machine's capacity, this may result in the system getting slow and sometimes even unresponsive. If you experience such symptoms, there are several workarounds you may implement to mitigate them: diff --git a/docs/pages/suite/suite-navigating-time-machines.md b/docs/pages/suite/suite-navigating-time-machines.md new file mode 100644 index 000000000..514482dfb --- /dev/null +++ b/docs/pages/suite/suite-navigating-time-machines.md @@ -0,0 +1,23 @@ +--- +title: Navigating Time Machines and Timeline Charts +summary: "While inside a time machine, you may navigate the data by panning with the mouse or teh keyboard." +sidebar: suite_sidebar +permalink: suite-navigating-time-machines.html +--- + +Time machines that are visible are said to be *in focus*. + +**1. To pan the data within a time machine**, left-click within the time machine and drag. You may also use the keyboard as follows: + +1. Shift + ← to pan to the left. +1. Shift + → to pan to the right. +1. Shift + ↑ to pan upwards. +1. Shift + ↓ to pan downwards. + +{% include note.html content="When using the keyboard, every time machine in focus is affected by the commands." %} + +**2. To pan the viewport instead of the data in a time machine**, right-click and drag. This may be useful when zoomed deep into a time machine and you wish to reach one of its borders. + +{% include /charting_space/time-machine.md heading="more" icon="150-" adding="" configuring="" charts="" content="yes" definition="bold" table="yes" more="yes"%} + +{% include /charting_space/timeline-chart.md heading="more" icon="150-" adding="" configuring="" charts="" content="yes" definition="bold" table="yes" more="yes"%} \ No newline at end of file diff --git a/docs/pages/suite/suite-quick-overview.md b/docs/pages/suite/suite-quick-overview.md index 6787d5c7a..df615a9ab 100644 --- a/docs/pages/suite/suite-quick-overview.md +++ b/docs/pages/suite/suite-quick-overview.md @@ -5,9 +5,9 @@ sidebar: suite_sidebar permalink: suite-quick-overview.html --- -> **Start here:** Watch the [Superalgos Platform Quick Getting Started Guide](https://www.youtube.com/watch?v=_apiM49udL0) video for a quick intro. The video is slightly outdated in that the Superalgos Platform (the client version of the Platform) does not require a login and does not feature a menu on top. Otherwise, the content is still valid. +> **Start here:** Watch the [Superalgos Quick Getting Started Guide](https://www.youtube.com/watch?v=_apiM49udL0) video for a quick intro. The video is slightly outdated in that Superalgos (the client version of the Platform) does not require a login and does not feature a menu on top. Otherwise, the content is still valid. -The first time you run the platform, you will see a screen split in half. The top half features the space used by the _Charts_ and the bottom half features the _design space_. +The first time you run the system, you will see a screen split in half. The top half features the space used by the _Charts_ and the bottom half features the _design space_. Use the control in the center of the turquoise bar to pull the bar up and down to make more room for either application. @@ -21,13 +21,13 @@ You may also use your keyboard as follows: > **TIP:** Pulling the bar to the very top of the screen causes the Charts to stop consuming resources in your machine, and gives you an ample view of the design space. -**The design space** is the place where you create. Think of the design space as your toolbox. This is where you will control every aspect of your data, your trading strategies and the overall behavior of the platform in general. +**The design space** is the place where you create. Think of the design space as your toolbox. This is where you will control every aspect of your data, your trading strategies and the overall behavior of the system in general. [![Overview-02-Workspace](https://user-images.githubusercontent.com/13994516/67267449-9d2f7580-f4b2-11e9-9ae8-1eb1355de07d.gif)](https://user-images.githubusercontent.com/13994516/67267449-9d2f7580-f4b2-11e9-9ae8-1eb1355de07d.gif) > **TIP:** Pulling the bar to the very bottom of the screen causes the design space to stop consuming resources from your machine and offers a full-screen view of the Charts. The image above shows what you will see once you import your first *workspace* (you will learn about it in the next step). -**The Charts** show indicators data along with the actions taken by strategies, integrated with market data. This is the section of the platform in which you will see and analyze the result of your work. +**The Charts** show indicators data along with the actions taken by strategies, integrated with market data. This is the section of the system in which you will see and analyze the result of your work. [![Overview-03-Charts](https://user-images.githubusercontent.com/13994516/67267949-a79e3f00-f4b3-11e9-9c0b-0c4aecf2d37d.gif)](https://user-images.githubusercontent.com/13994516/67267949-a79e3f00-f4b3-11e9-9c0b-0c4aecf2d37d.gif) diff --git a/docs/pages/suite/suite-references.md b/docs/pages/suite/suite-references.md index 2b77ae3c1..f3884a449 100644 --- a/docs/pages/suite/suite-references.md +++ b/docs/pages/suite/suite-references.md @@ -11,7 +11,7 @@ permalink: suite-references.html References have a *direction* property relative to each of the nodes involved in the reference: the node establishing the reference sets an *outgoing* reference, while the one accepting the reference sets an *incoming* reference. -For example, a session establishes an outgoing reference with a trading system. This allows the session to access the information within the whole trading system hierarchy, including strategies. At the trading system level, the same reference is viewed as an incoming reference. +For example, a session establishes an outgoing reference with a trading system. This allows the session to access the information within the whole trading system hierarchy, including strategies. At the trading system level, the same reference is viewed as an incoming reference. [![Sessions-03-Link-Session](https://user-images.githubusercontent.com/13994516/70355703-0e649580-1873-11ea-925e-1f0250148d2c.gif)](https://user-images.githubusercontent.com/13994516/70355703-0e649580-1873-11ea-925e-1f0250148d2c.gif) @@ -19,13 +19,13 @@ For example, a plotter module: +Examples of internal references may be found in the data mine and crypto ecosystem hierarchies. For example, let's briefly look into one such case within a plotter module: -The capture below shows the shapes node and several offspring nodes: on one hand, several polygons; on the other hand, the chart points node. +The capture below shows the shapes node and several offspring nodes: on one hand, several polygons; on the other hand, the chart points node. [![Backups-04-Internal-references-intro-shapes](https://user-images.githubusercontent.com/13994516/71106204-316e3e00-21bf-11ea-8ba0-df5fe9d0000e.gif)](https://user-images.githubusercontent.com/13994516/71106204-316e3e00-21bf-11ea-8ba0-df5fe9d0000e.gif) -Notice that vertices under each polygon reference to points under the chart points node. +Notice that vertices under each polygon reference to points under the chart points node. This means that the node *shapes* feature several internal references. diff --git a/docs/pages/suite/suite-reporting-bugs.md b/docs/pages/suite/suite-reporting-bugs.md index 982c921a3..564b8f00d 100644 --- a/docs/pages/suite/suite-reporting-bugs.md +++ b/docs/pages/suite/suite-reporting-bugs.md @@ -15,14 +15,14 @@ We highly appreciate bug reports. This is what you need to do: **Developers will be interested in knowing how to reproduce the issue in their systems, so please describe the process that leads to the issue as clearly as possible. Capturing a GIF video showing the steps that lead to the issue would be of great help!** - [LICEcap](https://www.cockos.com/licecap/) is a lightweight, simple platform that can help you with that. If developers can reproduce the issue, half of the problem is solved already. + [LICEcap](https://www.cockos.com/licecap/) is a lightweight, simple system that can help you with that. If developers can reproduce the issue, half of the problem is solved already. If the issue seems to happen under specific conditions, you might want to share your _Definitions_ with developers. To do this, go to the Definitions node in your workspace and select _Share_ in the menu. A file containing your strategy and other parameters, but NOT your API keys, will download to your browser's download folder. Upload this file to the issue only if you feel comfortable with sharing it openly. If not, then wait for developers to contact you. Please make sure you enable Github notifications when someone responds to the issue, as developers may want to ask questions. - If the issue happens while using the platform at the browser, then please include a screen capture of Chrome's Console. Open DevTools with the F12 key (when the browser is in focus) and click the Console tab, then go back and reproduce the issue. Take a screen capture of the Console and paste it along with your report. + If the issue happens while using the system at the browser, then please include a screen capture of Chrome's Console. Open DevTools with the F12 key (when the browser is in focus) and click the Console tab, then go back and reproduce the issue. Take a screen capture of the Console and paste it along with your report. - Feel free to also include screen captures of the platform itself if there is anything relevant you wish to show to developers. + Feel free to also include screen captures of the system itself if there is anything relevant you wish to show to developers. [![image](https://user-images.githubusercontent.com/13994516/63112941-c18e4380-bf91-11e9-95e2-6fb064d5aead.png)](https://user-images.githubusercontent.com/13994516/63112941-c18e4380-bf91-11e9-95e2-6fb064d5aead.png) \ No newline at end of file diff --git a/docs/pages/suite/suite-run-the-suite.md b/docs/pages/suite/suite-run-the-suite.md index 439ea8b8f..c23c0c8c8 100644 --- a/docs/pages/suite/suite-run-the-suite.md +++ b/docs/pages/suite/suite-run-the-suite.md @@ -6,21 +6,21 @@ permalink: suite-run-the-suite.html ## On Windows Systems -Use the executable file to run the platform: +Use the executable file to run the system: -Go to the ```Superalgos Platform``` folder and double click on ```Superalgos.exe```. Now, skip the *other systems* instructions and go directly to the title [What to Expect After Running the Platform](#what-to-expect-after-running-the-platform). +Go to the ```Superalgos``` folder and double click on ```Superalgos.exe```. Now, skip the *other systems* instructions and go directly to the title [What to Expect After Running the Platform](#what-to-expect-after-running-the-platform). -> **NOTE FOR DEVELOPERS:** Instead of using the executable file to run the platform, you may want to use ```node run``` from within the root ```Superalgos Platform``` folder, to run on your full Node Js installation. +> **NOTE FOR DEVELOPERS:** Instead of using the executable file to run the system, you may want to use ```node run``` from within the root ```Superalgos``` folder, to run on your full Node Js installation. ## On All Systems (Mac OS, Linux, etc., and Windows too) Download and install Node JS: -Node.js is an open-source server environment required for the platform to run. Go to the [Node Js downloads page](https://nodejs.org/en/download/) and download your system's installer (the *LTS Recommended for Most Users* version is enough). Run the installer and go through the process until Node Js is installed. +Node.js is an open-source server environment required for the system to run. Go to the [Node Js downloads page](https://nodejs.org/en/download/) and download your system's installer (the *LTS Recommended for Most Users* version is enough). Run the installer and go through the process until Node Js is installed. -If you are on Mac, use the Finder platform to go to the ```Superalgos Platform``` folder and do a *secondary click* (tap the touchpad with two fingers) to open up the menu. Select *New Terminal Tab at Folder*. Once in the Terminal, type ```node run``` and hit *Enter*. +If you are on Mac, use the Finder system to go to the ```Superalgos``` folder and do a *secondary click* (tap the touchpad with two fingers) to open up the menu. Select *New Terminal Tab at Folder*. Once in the Terminal, type ```node run``` and hit *Enter*. -If you are on Linux, open a Terminal / Console, go to the ```Superalgos Platform``` folder, type ```node run``` and hit *Enter*. +If you are on Linux, open a Terminal / Console, go to the ```Superalgos``` folder, type ```node run``` and hit *Enter*. ## What to Expect After Running the Platform @@ -28,20 +28,20 @@ This is what you should see in your console after running the ```node run``` com ![Console-start-up](https://user-images.githubusercontent.com/13994516/67315449-e6111980-f506-11e9-8988-96e61dc7f497.PNG) -Also, your browser should load the platform and show the following screen: +Also, your browser should load the system and show the following screen: [![Getting-Started-Guide-01-Platform-Launch](https://user-images.githubusercontent.com/13994516/67231207-2907ba00-f43f-11e9-83e8-e36cc844b0eb.gif)](https://user-images.githubusercontent.com/13994516/67231207-2907ba00-f43f-11e9-83e8-e36cc844b0eb.gif) -The platform will load on your default browser. You should either [set Chrome as your default browser](https://support.google.com/chrome/answer/95417?co=GENIE.Platform%3DDesktop&hl=en) before executing the file or simply close the non-Chrome browser, open Chrome and go to http://localhost:9999/. +The system will load on your default browser. You should either [set Chrome as your default browser](https://support.google.com/chrome/answer/95417?co=GENIE.Platform%3DDesktop&hl=en) before executing the file or simply close the non-Chrome browser, open Chrome and go to http://localhost:9999/. -> **NOTE:** We highly recommend you use Chrome to run the platform so that you have a similar environment as developers in case you need help. We are not testing on any other browsers and it is a well-known fact that browsers do behave differently. +> **NOTE:** We highly recommend you use Chrome to run the system so that you have a similar environment as developers in case you need help. We are not testing on any other browsers and it is a well-known fact that browsers do behave differently. -If you ran the *.exe* file on Windows, a Console/Command Line/Terminal window will open. If you ran the platform from within the console, the programs will run on the same console window. +If you ran the *.exe* file on Windows, a Console/Command Line/Terminal window will open. If you ran the system from within the console, the programs will run on the same console window. -The Console must be open for as long as the platform is running. Do not close the window or stop the processes running on it. You may minimize the Console if your Operating System allows you to do so. +The Console must be open for as long as the system is running. Do not close the window or stop the processes running on it. You may minimize the Console if your Operating System allows you to do so. > **NOTE:** Closing the Console/Command Line may cause your market data to become corrupt. The proper way of closing the application is closing your browser first, and allow a minute for processes to stop before closing the Console. That's it! You are up and running! -Now you are ready to learn the basic operation of the platform so that you may run your first backtests or trade live with existing strategies. \ No newline at end of file +Now you are ready to learn the basic operation of the system so that you may run your first backtests or trade live with existing strategies. \ No newline at end of file diff --git a/docs/pages/suite/suite-run-your-first-backtest.md b/docs/pages/suite/suite-run-your-first-backtest.md index 4e8882875..6c415a5d3 100644 --- a/docs/pages/suite/suite-run-your-first-backtest.md +++ b/docs/pages/suite/suite-run-your-first-backtest.md @@ -15,7 +15,7 @@ To run your first backtest you will need a functional strategy. ## Import a Workspace -Go to the ```Superalgos Platform/Quick-Start-Examples``` folder, drag ```Share - Workspace - Combined Bull-run rider and Weak-hands buster.json``` and drop it on the _design space_ to start with a workspace with functioning strategies. +Go to the ```Superalgos/Quick-Start-Examples``` folder, drag ```Share - Workspace - Combined Bull-run rider and Weak-hands buster.json``` and drop it on the _design space_ to start with a workspace with functioning strategies. [![Getting-Started-Guide-02-Drop-Workspace](https://user-images.githubusercontent.com/13994516/67231208-2907ba00-f43f-11e9-82b4-d78c0ace4d0a.gif)](https://user-images.githubusercontent.com/13994516/67231208-2907ba00-f43f-11e9-82b4-d78c0ace4d0a.gif) @@ -25,7 +25,7 @@ Go to the ```Superalgos Platform/Quick-Start-Examples``` folder, drag ```Share - | :---: | :---: | :---: | :---: | :---: | |![task](https://user-images.githubusercontent.com/13994516/66308205-ca9eef80-e906-11e9-8864-f7dba886bc7d.png) | ![timeline](https://user-images.githubusercontent.com/13994516/67079956-73b1d980-f194-11e9-89e0-9c8d1ea2ad1d.png) | ![trading-engine](https://user-images.githubusercontent.com/13994516/69948042-2f358f80-14ef-11ea-9193-f49eeb67b51c.png) | ![process](https://user-images.githubusercontent.com/13994516/67079738-00a86300-f194-11e9-9f59-a4cc4ce6d56c.png) | ![session-backtesting](https://user-images.githubusercontent.com/13994516/66318052-e7452280-e91a-11e9-94a7-90ebe6ee6e62.png) | -Once on the design space, hit Ctrl or ⌘ + Alt + T (*T* for *Testing*). This shortcut will take you to the *Network* hierachy of the design space, where you will start the process to run a backtesting session. More precisely, it takes you to *Testing Sessions*, the *task manager* that controls testing sessions. +Once in the design space, hit Ctrl or ⌘ + Alt + T (*T* for *Testing*). This shortcut will take you to the *Network* hierachy of the design space, where you will start the process to run a backtesting session. More precisely, it takes you to *Testing Sessions*, the *task manager* that controls testing sessions. Look around the task manager by clicking and dragging the black background of the design space. You may also use the following keyboard key combinations to move around: diff --git a/docs/pages/suite/suite-scale-boxes.md b/docs/pages/suite/suite-scale-boxes.md new file mode 100644 index 000000000..26e960757 --- /dev/null +++ b/docs/pages/suite/suite-scale-boxes.md @@ -0,0 +1,28 @@ +--- +title: Scale Boxes +summary: "To adjust the time scale, the rate scale, or the time frame scale, use the controls on each of the scale boxes." +sidebar: suite_sidebar +permalink: suite-scale-boxes.html +--- + +Zoom in closer or into a time machine and notice the three boxes that move relative to the position of the mouse pointer along the top, right, and bottom borders. These are the *scale boxes*. + +* **At the top** is the time scale box displaying the current datetime; this is the date and time at the position of the mouse pointer. + +* **To the right** is the rate scale box displaying the current rate; this is the rate, denominated in the quoted asset, at the position of the mouse pointer. + +* **At the bottom** is the time frame scale box displaying the current time frame, or candle size, if you wish. + +Both the time scale and the rate scale may be set to different automatic modes or manual mode. + +{% include /charting_space/time-scale.md heading="" icon="no" adding="" configuring="" charts="###" content="no" definition="no" table="no" more="no"%} + +{% include /charting_space/time-scale.md heading="more" icon="150-" adding="####" configuring="####" charts="" content="yes" definition="bold" table="yes" more="yes"%} + +{% include /charting_space/rate-scale.md heading="" icon="no" adding="" configuring="" charts="###" content="no" definition="no" table="no" more="no"%} + +{% include /charting_space/rate-scale.md heading="more" icon="150-" adding="####" configuring="####" charts="" content="yes" definition="bold" table="yes" more="yes"%} + +{% include /charting_space/time-frame-scale.md heading="" icon="no" adding="" configuring="" charts="###" content="no" definition="no" table="no" more="no"%} + +{% include /charting_space/time-frame-scale.md heading="more" icon="150-" adding="####" configuring="####" charts="" content="yes" definition="bold" table="yes" more="yes"%} \ No newline at end of file diff --git a/docs/pages/suite/suite-scales.md b/docs/pages/suite/suite-scales.md new file mode 100644 index 000000000..7be1bbe38 --- /dev/null +++ b/docs/pages/suite/suite-scales.md @@ -0,0 +1,18 @@ +--- +title: Scales +summary: "Scales offer total control on how you browse information in the charts." +sidebar: suite_sidebar +permalink: suite-scales.html +toc: false +--- + + + + +

Time Machine

Time Scale

Rate Scale

Time Frame Scale
+ +{% include /charting_space/time-scale.md heading="##" icon="150-" adding="####" configuring="####" charts="####" content="yes" definition="bold" table="yes" more="yes"%} + +{% include /charting_space/rate-scale.md heading="##" icon="150-" adding="####" configuring="####" charts="####" content="yes" definition="bold" table="yes" more="yes"%} + +{% include /charting_space/time-frame-scale.md heading="##" icon="150-" adding="####" configuring="####" charts="####" content="yes" definition="bold" table="yes" more="yes"%} \ No newline at end of file diff --git a/docs/pages/suite/suite-session-parameters.md b/docs/pages/suite/suite-session-parameters.md index 361b5251a..a1598e4d4 100644 --- a/docs/pages/suite/suite-session-parameters.md +++ b/docs/pages/suite/suite-session-parameters.md @@ -13,7 +13,7 @@ permalink: suite-session-parameters.html Each testing session has its own set of parameters. This allows you to configure different trading sessions with different parameters, and go back and forth between them as required. For instance, you may have different backtesting sessions with different date ranges, different exchange fees or different slippage settings. -> **NOTE:** If any of these parameters are missing from the configuration of the testing session, the platform's fallback mechanism will look for the parameters at the trading system level and use those settings instead. +> **NOTE:** If any of these parameters are missing from the configuration of the testing session, the system's fallback mechanism will look for the parameters at the trading system level and use those settings instead. We covered the *Base Asset* parameter when explaining trading systems. Let's now review the rest. @@ -89,7 +89,7 @@ You will set an *initialDatetime* and a *finalDatetime*: } ``` -If you do not set an *initialDatetime* the platform's fallback mechanism will try to get it from the parameters at the level of the trading system. In case there is no *initialDatetime*, the calculation will start at the current position of the charts. +If you do not set an *initialDatetime* the system's fallback mechanism will try to get it from the parameters at the level of the trading system. In case there is no *initialDatetime*, the calculation will start at the current position of the charts. If you don't set a *finalDatetime* at the level of the testing session or the trading system, then calculations will run until the present time. diff --git a/docs/pages/suite/suite-shares.md b/docs/pages/suite/suite-shares.md index 541b61c53..ce41de774 100644 --- a/docs/pages/suite/suite-shares.md +++ b/docs/pages/suite/suite-shares.md @@ -11,6 +11,6 @@ On that note, we will not analyze this feature further, other than reminding the On a different note, it is also critical to bring one more issue to your attention regarding sharing work and—what's more more important— using other people's work. -You may have noticed that the platform accepts JavaScript code in a multitude of input forms such as configurations, conditions, formulas and more. At this point, there is no restriction to the code that may be used. This is a design feature, as we wish advanced users to be able to use their programing skills to make the most out of the platform. +You may have noticed that the system accepts JavaScript code in a multitude of input forms such as configurations, conditions, formulas and more. At this point, there is no restriction to the code that may be used. This is a design feature, as we wish advanced users to be able to use their programing skills to make the most out of the system. However, this also means that using workspaces or any other data structure coming from untrusted sources is not free of risks. On the contrary, it may be a high-risk choice, as it is not overly complex to introduce malicious code that may, for example, attempt to steal people's API keys. \ No newline at end of file diff --git a/docs/pages/suite/suite-sysntax-overview.md b/docs/pages/suite/suite-sysntax-overview.md index 8cdf78e15..d61621919 100644 --- a/docs/pages/suite/suite-sysntax-overview.md +++ b/docs/pages/suite/suite-sysntax-overview.md @@ -7,7 +7,7 @@ permalink: suite-sysntax-overview.html ## Introduction -Different bots running within the platform produce data products that others may consume. These products are available for you to use within your strategies. +Different bots running within the system produce data products that others may consume. These products are available for you to use within your strategies. Datasets are stored as a collection of sequential records and you may access any of the properties (fields) of each record. diff --git a/docs/pages/suite/suite-system-requirements.md b/docs/pages/suite/suite-system-requirements.md index 4e793273e..0e9289794 100644 --- a/docs/pages/suite/suite-system-requirements.md +++ b/docs/pages/suite/suite-system-requirements.md @@ -5,27 +5,43 @@ sidebar: suite_sidebar permalink: suite-system-requirements.html --- -The Superalgos Platform is a web app, therefore, it is cross-platform. The team is testing mostly on Windows systems, but there are users running the platform on Mac OS and Linux systems as well. +## Cross-Platform -The app has very little requirements for active, hands-on use, that is, for creating strategies, running backtests, or interacting with the charts, for instance. We believe any cheap laptop should run the app without a problem. +Superalgos is a web app, therefore, it is cross-platform. The dev team is testing mostly on Windows systems, but users are running the system on Mac OS and Linux systems as well. -Requirements increase significantly when processes that fetch data from exchanges, calculate indicators and run live trading sessions are active. +## Chrome is the Only Tested Browser -The minimum hardware setup recommended for a dedicated machine running all processes to trade live, is 3 GB of RAM and a dual-core processor at 2.4 GHz. +Chrome is highly recommended so that you have a similar environment as the dev team in case you need help. We are not testing on any other browsers, and it is a well-known fact that browsers behave differently. -> **NOTE:** The above is a broad reference to the total RAM and processing power of the machine, not the specific requirements of the platform. +## Processing Power -**Processing power is the key for comfortable operation.** +One of the first and foremost design goals is to develop the most powerful trading automation and data processing system. There is no intention to limit or cut functionality short in an attempt to cope with less powerful hardware. It is a fact that your hardware will set the limits as of what you may or may not do with the system. -The following recommendations may make your life easier using this pre-release in beta stage: +The system's processing capacity is based on running independent, specialized processes. No single process is as intensive as to require any special hardware, and all processes may run on basic—even outdated—laptop computers. That means that, regardless of the limitations of your current hardware, you should be able to use all of the features in the system. -* **We highly recommend you use Chrome to run the platform** so that you have a similar environment as developers in case you need help. We are not testing on any other browsers and it is a well-known fact that browsers do behave differently. +What will vary depending on your hardware is the capacity to run a determinate number of processes simultaneoulsy. That is where you will find the limits of your hardware. In other words, you will find your system starts getting slow when it's doing many things at the same time. How many depends on your hardware. -* **You will benefit from having a decent Console / Command Line application** for similar reasons: we hope you won't need it, but in case you do, it may save you lots of hassle and make a difference troubleshooting and getting help from the community. We recommend [Console Emulator Cmder](https://cmder.net/). +The app has very little requirements for active, hands-on use, that is, for creating strategies, running backtests, or interacting with light-weight charts, for instance. We believe any cheap laptop should cope with such use. -## Deploying a VPS to Trade Live +Processing requirements increase in a roughly linear fashion with every process added to the mix. For instance processes that fetch data from exchanges and calculate indicators. -The minimum hardware setup for a virtual machine (VM) or a virtual private server (VPS) destined to trade live is 3 GB of RAM and a dual-core processor at 2.4 GHz. This is recommended to minimize deployment costs. Under this configuration, the platform becomes slow to react to user input. If such is the case, you should start the live trading session and minimize the browser for lower CPU and memory consumption. +These are a few examples of use cases demanding significant processing power: -You may want to read an article about [Trading Live from a Cheap Linux VM](https://medium.com/superalgos/trading-live-from-a-cheap-linux-vm-3edbe0c7ca42). +* Monitoring multiple markets in multiple exchanges, using multiple indicators on each chart, at the same time. + +* Backtesting multiple strategies in multiple exchanges or multiple periods, at the same time. + +* Running multiple live-trading sessions which depend on multiple indicators, at the same time. + +## RAM Memory + +The system is not RAM-intensive. One dedicated gigabyte should be enough for intensive use, and two gigabytes may be required for extreme charting. Those are ball-park, non-scientific figures. + +## Console/Command Line + +Processes started from the system log their activity on the default console application, or the console used to fire up the app. Windows Command Prompt is particularly bad. It is recommended to install and use a decent application, such as Console Emulator Cmder This will save you time and hassle in the long run. + +## Deploying a Linux VPS to Trade Live + +You may want to read an article about Trading Live from a Cheap Linux VM. diff --git a/docs/pages/suite/suite-telegram-announcements.md b/docs/pages/suite/suite-telegram-announcements.md index dc9450d98..975c32091 100644 --- a/docs/pages/suite/suite-telegram-announcements.md +++ b/docs/pages/suite/suite-telegram-announcements.md @@ -22,7 +22,7 @@ Supported events are: The current implementation is based on broadcasting announcements via Telegram bots. -The platform uses Telegram's bots API to interact with a Telegram bot you will create. The bot will be added as a user in the Telegram group of your choice in which it will deliver the announcements as per the configuration you will set up in the platform. +The system uses Telegram's bots API to interact with a Telegram bot you will create. The bot will be added as a user in the Telegram group of your choice in which it will deliver the announcements as per the configuration you will set up in the system. Announcements may be triggered within any of the running modes available, including backtesting, paper trading, forward-testing, and live trading. @@ -57,7 +57,7 @@ For example: [![Telegram-bot-01-Create-in-platform](https://user-images.githubusercontent.com/13994516/68231138-c09e0880-fffa-11e9-8ed2-b2fdcb76afe9.gif)](https://user-images.githubusercontent.com/13994516/68231138-c09e0880-fffa-11e9-8ed2-b2fdcb76afe9.gif) -The platform now has everything it needs to communicate with your Telegram bot. +The system now has everything it needs to communicate with your Telegram bot. ## Create Your Announcements @@ -113,7 +113,7 @@ For example, a typical announcement formula for the take position event may look ``` Selling BTC at $9703, with stop at $9896 and TP target at $9115 ``` -> **NOTE:** If your formula is valid, the platform will ignore the plain text version you may have set up. If for any reason the formula results in an error, then the plain text version will be used. +> **NOTE:** If your formula is valid, the system will ignore the plain text version you may have set up. If for any reason the formula results in an error, then the plain text version will be used. #### Announcements on Stop and Take Profit Phases diff --git a/docs/pages/suite/suite-testing-overview.md b/docs/pages/suite/suite-testing-overview.md index 542bd2097..87234dc0c 100644 --- a/docs/pages/suite/suite-testing-overview.md +++ b/docs/pages/suite/suite-testing-overview.md @@ -9,7 +9,7 @@ permalink: suite-testing-overview.html | :---: | :---: | | ![session-backtesting](https://user-images.githubusercontent.com/13994516/66930152-7990a900-f034-11e9-8f97-2216e139cf40.png) | ![session-paper-trading](https://user-images.githubusercontent.com/13994516/66930155-7990a900-f034-11e9-9c87-0f5627c6f219.png) | -A simulation is a visual representation over the charts of any of the forms of strategy testing available within the platform: +A simulation is a visual representation over the charts of any of the forms of strategy testing available within the system: * **Backtesting:** testing over historic data; diff --git a/docs/pages/suite/suite-timeline-charts.md b/docs/pages/suite/suite-timeline-charts.md new file mode 100644 index 000000000..8b2e6b421 --- /dev/null +++ b/docs/pages/suite/suite-timeline-charts.md @@ -0,0 +1,21 @@ +--- +title: Timeline Charts +summary: "Timeline charts allow setting up customized charts, fitting specific data products, and potentially their own rate and time frame scales." +sidebar: suite_sidebar +permalink: suite-timeline-charts.html +toc: false +--- + +{% include /charting_space/timeline-chart.md heading="" icon="150-" adding="####" configuring="" charts="" content="yes" definition="bold" table="yes" more="yes"%} + + + + + +

Timeline Chart

Rate Scale

Time Frame Scale

Layers Manager

Layer
+ +{% include note.html content="Timeline charts may have their own rate and time frame scales. To learn about scales, please see the [scales](suite-scales.html) page." %} + +{% include /charting_space/layers-manager.md heading="##" icon="150-" adding="####" configuring="" charts="" content="yes" definition="bold" table="yes" more="yes"%} + +{% include /charting_space/layer.md heading="##" icon="" adding="####" configuring="####" charts="####" content="yes" definition="yes" table="yes" more="yes"%} \ No newline at end of file diff --git a/docs/pages/suite/suite-trade-live-with-an-open-source-strategy.md b/docs/pages/suite/suite-trade-live-with-an-open-source-strategy.md index 8299ba2ea..5636d7b8c 100644 --- a/docs/pages/suite/suite-trade-live-with-an-open-source-strategy.md +++ b/docs/pages/suite/suite-trade-live-with-an-open-source-strategy.md @@ -7,7 +7,7 @@ permalink: suite-trade-live-with-an-open-source-strategy.html Running a strategy as a fully automated bot to trade live is quite simple. Truth be told, your strategy running as a simulation is pretty much a trading bot already—only that orders don't go to the exchange. -If you are a crypto-holder, you are probably looking to trade live with an open-source strategy. If you are a trader, you are probably interested in seeing the platform in action before you spend time learning it to build your own strategies. +If you are a crypto-holder, you are probably looking to trade live with an open-source strategy. If you are a trader, you are probably interested in seeing the system in action before you spend time learning it to build your own strategies. Either way, to start trading live, follow these steps: @@ -78,13 +78,13 @@ Select *Confirgure Key Value* on the menu and replace the value of *name* with ## Check Funds at the Exchange -Simply make sure that you have enough funds at the exchange. The platform will handle the error gracefully if there are no funds, but you will miss the trading opportunity. +Simply make sure that you have enough funds at the exchange. The system will handle the error gracefully if there are no funds, but you will miss the trading opportunity. ## Run the Task and Session Go back to the task controlling the Live Trading Session, select *Run* on the menu. Then go to the *Live Trading* session and do the same. You are now trading live! -> **WARNING:** The Superalgos Platform is at a very early stage of development. As such, errors may occur at any point, including errors that can cause you to lose money. Make sure you test with small amounts of money, the kind you can afford losing. Also, make sure you understand the [Execution Limitations](Execution-Limitations). You are responsible for taking all precautions before starting trading live, but even if you do errors may occur. Trade at your own risk. +> **WARNING:** Superalgos is at a very early stage of development. As such, errors may occur at any point, including errors that can cause you to lose money. Make sure you test with small amounts of money, the kind you can afford losing. Also, make sure you understand the [Execution Limitations](Execution-Limitations). You are responsible for taking all precautions before starting trading live, but even if you do errors may occur. Trade at your own risk. > **DISCLAIMER:** THIS IS NOT FINANCIAL ADVICE. ALTHOUGH THE STRATEGIES DISTRIBUTED WITH THE SUPERALGOS DESKTOP APP MAY BE FULLY FUNCTIONAL, WE DO NOT MAKE ANY EXPRESS OR IMPLIED RECOMMENDATION AS OF HOW YOU SHOULD USE THEM. WE SHARE STRATEGIES FOR EDUCATIONAL PURPOSES ONLY. TRADE AT YOUR OWN RISK. @@ -104,4 +104,4 @@ Once you are set up, run the tasks corresponding to the two live trading session ## Following Live Trading on the Charts -To follow the live trading sessions on the charts, please refer to the [Live trading history layer](Live-Trading-History-Layer) page of this User Manual. We encourage you to keep learning about the platform so that you may get the most out of it. \ No newline at end of file +To follow the live trading sessions on the charts, please refer to the [Live trading history layer](Live-Trading-History-Layer) page of this User Manual. We encourage you to keep learning about the system so that you may get the most out of it. \ No newline at end of file diff --git a/docs/pages/suite/suite-update-datasets.md b/docs/pages/suite/suite-update-datasets.md index ecdf56a7a..cd86a4aec 100644 --- a/docs/pages/suite/suite-update-datasets.md +++ b/docs/pages/suite/suite-update-datasets.md @@ -17,7 +17,7 @@ The bots that keep your datasets up to date are too controlled by a task manager | :---: | :---: | :---: | :---: | :---: | :---: | | ![network](https://user-images.githubusercontent.com/13994516/66855353-59ed7800-ef83-11e9-8de9-db40971faa7b.png) | ![network-node](https://user-images.githubusercontent.com/13994516/66855357-5a860e80-ef83-11e9-917d-95cd8394588b.png) |![task](https://user-images.githubusercontent.com/13994516/66308205-ca9eef80-e906-11e9-8864-f7dba886bc7d.png) | ![timeline](https://user-images.githubusercontent.com/13994516/67079956-73b1d980-f194-11e9-89e0-9c8d1ea2ad1d.png) | ![bot-sensor](https://user-images.githubusercontent.com/13994516/67079734-000fcc80-f194-11e9-911d-2b537e4cb8f2.png) | ![bot-indicator](https://user-images.githubusercontent.com/13994516/67079733-000fcc80-f194-11e9-98d7-3426dd956d65.png) | -Open up the design space section of the platform by dragging the horizontal bar upwards. You may also use Alt + ↑ on your keyboard. This shortcut closes the Charts and opens the design space. +Open up the design space section of the system by dragging the horizontal bar upwards. You may also use Alt + ↑ on your keyboard. This shortcut closes the Charts and opens the design space. Hit Ctrl or ⌘ + Alt + D (*D* for *Datasets*) to go to the *Masters Datasets* task manager that controls the aforementioned bots. Open the menu and click *Run All Tasks*. @@ -41,10 +41,10 @@ In our experience, it may take from 5 to 20 minutes per day's worth of Poloniex * The speed and processing power of your machine will make a difference too. -* The average number of trades per day at the exchange determines the volume of data the platform needs to retrieve and process. +* The average number of trades per day at the exchange determines the volume of data the system needs to retrieve and process. * The number of trades the exchange returns per each request determines the size of the pipeline the exchanges allow API users to use. -These bots will keep running for as long as you keep the browser tab running the platform open. +These bots will keep running for as long as you keep the browser tab running the system open. > **NOTE:** Remember no to close the console before closing the browser and allowing enough time for all processes to finish the current execution. Failing to do so may corrupt your data. \ No newline at end of file diff --git a/docs/pages/suite/suite-upgrading-your-existing-instalation.md b/docs/pages/suite/suite-upgrading-your-existing-instalation.md index edaf41c08..bd8facdd4 100644 --- a/docs/pages/suite/suite-upgrading-your-existing-instalation.md +++ b/docs/pages/suite/suite-upgrading-your-existing-instalation.md @@ -13,19 +13,19 @@ This is what you should do if you wish to upgrade to a new version: Read and understand the announcement explaining the changes and how they may impact your workflow. Find out if the new version requires upgrading your workspace. -Decide which parts of your workspace you wish to backup in order to be able to restore them on the upgraded workspace if there is one (*e.g.: you may want to backup your strategies, trading system or definition, indicators you may have created, and so on*). If there is no need to upgrade the workspace, that means that the new version of the platform should work well with your existing workspace (provided that you are only one version behind). +Decide which parts of your workspace you wish to backup in order to be able to restore them on the upgraded workspace if there is one (*e.g.: you may want to backup your strategies, trading system or definition, indicators you may have created, and so on*). If there is no need to upgrade the workspace, that means that the new version of the system should work well with your existing workspace (provided that you are only one version behind). ## 2. Back Up Your Workspace -Always back up your existing workspace before switching versions. You may always go back to a working version in case something goes wrong with the new one, by installing the previous version of the platform and restoring your old workspace from a backup file. +Always back up your existing workspace before switching versions. You may always go back to a working version in case something goes wrong with the new one, by installing the previous version of the system and restoring your old workspace from a backup file. ## 3. Put the House in Order -Stop the platform by closing your browser. Allow a minute or two until all activity stops before closing the Console/Command Line running the programs. +Stop the system by closing your browser. Allow a minute or two until all activity stops before closing the Console/Command Line running the programs. -Make sure you are not storing any personal files, such as your workspace backups and so on in your ```Superalgos Platform``` folders. Move them to a different location if you are. +Make sure you are not storing any personal files, such as your workspace backups and so on in your ```Superalgos``` folders. Move them to a different location if you are. -You will keep the ```Data-Storage``` folder intact and delete all the remaining folders within the ```Superalgos Platform``` folder. You do not need to get rid of the historic market data every time you upgrade your platform. **Do not delete your ```Data-Storage``` folder**. +You will keep the ```Data-Storage``` folder intact and delete all the remaining folders within the ```Superalgos``` folder. You do not need to get rid of the historic market data every time you upgrade your system. **Do not delete your ```Data-Storage``` folder**. ## 4. Download and Install the New Version @@ -35,18 +35,18 @@ Download the latest patch or latest release from the location advertised on the Extract/unpack the contents of the ZIP file directly into the ```Superalgos Desktop App``` folder. -That's it! You are up and running with the new version. Start the platform the same way you always do unless new instructions become available in this User Manual. +That's it! You are up and running with the new version. Start the system the same way you always do unless new instructions become available in this User Manual. ## 5. Hard Refresh -Once the platform loads in your browser window and before you start working or import a new workspace, hit Ctrl or ⌘ + Shift + R (in Chrome) to perform a *hard reload*. This ensures all scripts are properly updated in your browser's cache. +Once the system loads in your browser window and before you start working or import a new workspace, hit Ctrl or ⌘ + Shift + R (in Chrome) to perform a *hard reload*. This ensures all scripts are properly updated in your browser's cache. ## 6. Final Tunning and Testing -Occasionally, the new version of the platform may introduce changes that may require you to update your existing strategies or some other parts of your workspace. If that is the case, the announcement of the new release should explain how to proceed. +Occasionally, the new version of the system may introduce changes that may require you to update your existing strategies or some other parts of your workspace. If that is the case, the announcement of the new release should explain how to proceed. This is the time to restore any of the work you may have backed up earlier, on the first step. Before going deep back to work, it is always recommeended to test the new version a bit and make sure that your existing work performs as you would expect. -If you run into any issues, feel free to drop us a line in our [Community Telegram](https://t.me/superalgoscommunity). \ No newline at end of file +If you run into any issues, feel free to drop us a line in our Community. \ No newline at end of file diff --git a/docs/pages/suite/suite-viewport-interface.md b/docs/pages/suite/suite-viewport-interface.md new file mode 100644 index 000000000..85b4aadb1 --- /dev/null +++ b/docs/pages/suite/suite-viewport-interface.md @@ -0,0 +1,14 @@ +--- +title: Viewport Interface +summary: "Learn to move around the viewport, zoom in for the details and zoom out for the bigger picture." +sidebar: suite_sidebar +permalink: suite-viewport-interface.html +--- + +When you open the charting space's viewport, you may see several charts, depending on the setup of your current workspace. + +**1. To move around the viewport**, right-click and drag. You may also use the wheel of the mouse to zoom in and out. + +{% include note.html content="Notice how the viewport navigation resembles the navigation in *Google Maps*. You zoom out for the big picture. You zoom in for a closer view of any particular chart to get the details. Keep zooming in and you get the immersive experience... the *street view* of the market." %} + +{% include /charting_space/viewport.md heading="more" icon="150-" adding="" configuring="" charts="" content="yes" definition="bold" table="yes" more="yes"%} \ No newline at end of file diff --git a/docs/pages/suite/suite-what-is-next.md b/docs/pages/suite/suite-what-is-next.md index 3ea3cd90f..1f2c53077 100644 --- a/docs/pages/suite/suite-what-is-next.md +++ b/docs/pages/suite/suite-what-is-next.md @@ -5,7 +5,7 @@ sidebar: suite_sidebar permalink: suite-what-is-next.html --- -The Superalgos Platform is a comprehensive data processing and trading automation system that enables users to control every aspect of the *intelligence* required to be successful at trading. +Superalgos is a comprehensive data processing and trading automation system that enables users to control every aspect of the *intelligence* required to be successful at trading. We don't think of intelligence as the outcome of a good trading strategy. Instead, intelligence is the effective use of every resource available, including but not limited to: @@ -14,9 +14,9 @@ We don't think of intelligence as the outcome of a good trading strategy. Instea * elaborate datasets (indicators, studies, etc.); * infrastructure (trading bot, processes, workflows, etc.). -You've gone through the very basic operation of the platform that allows you to use existing strategies. +You've gone through the very basic operation of the system that allows you to use existing strategies. -The rest of this User Manual covers the power use of the platform, which involves modifying existing strategies and building your own, going through a thorough testing process and trading live. +The rest of this User Manual covers the power use of the system, which involves modifying existing strategies and building your own, going through a thorough testing process and trading live. You will also learn to take control of what happens under the hood, so that you may decide *how* you are going to do your job. diff --git a/docs/pages/suite/suite-what-to-expect.md b/docs/pages/suite/suite-what-to-expect.md index 28ee949ee..2c9c73db9 100644 --- a/docs/pages/suite/suite-what-to-expect.md +++ b/docs/pages/suite/suite-what-to-expect.md @@ -5,35 +5,41 @@ sidebar: suite_sidebar permalink: suite-what-to-expect.html --- -Superalgos is pre-releasing an early beta-stage version of the Superalgos Platform in the hope that early adopters will help us shape the software and evolve it into a robust product. We try our best to make installation and operation easy, but at this point, the platform is directed at tech-savvy individuals with a knack for learning a few PC operator tricks while installing and using the platform. +## Open Beta Stage -If you don't consider yourself an early adopter and usually go to your 10-year-old for advice on using your PC, you may still give it a shot. Developers and users in the [Community](https://t.me/superalgoscommunity) will be happy to give you a hand and help you get up and running. +Superalgos is in an open beta-stage, still under development. The early-stage pre-release intends to gather feedback from early adopters, who may help shape the software and evolve it into a robust product. We try our best to make installation and operation easy, but at this point, the system is directed at tech-savvy individuals with a knack for learning a few PC operator tricks while installing and using the system. -## About the Platform +If you don't consider yourself an early adopter and usually go to your 10-year-old for advice on using your PC, you may still give it a shot. Developers and users in the Community will be happy to give you a hand and help you get up and running. + +## About the System What you will get is a client application that runs entirely on users' machines. This is to fulfill the design principle of a trustless deployment: you don't need to trust any third party with your strategies, exchange API keys, personal information, or funds. -If you haven't seen it yet, there is a thorough description of the platform including introduction videos [on the website](https://superalgos.org/tools-superalgos-platform.shtml). +There is a thorough description of system features and functionality [on the website](https://superalgos.org/). -## A Rather Big Download +## Data in Your Machine -Traders rely on datasets for backtesting. The platform retrieves raw trades data directly from exchanges and processes data to produce candles and a few indicators, which are stored in your local machine. +Traders rely on datasets for backtesting. The system retrieves raw trades data directly from exchanges and processes data to produce candles and indicators, which are stored in your local machine. -The volume of trades data generated at exchanges is massive. Exchanges APIs impose limits on the bandwidth of data you may retrieve from your machine per unit of time. To save you from spending days or weeks running processes to retrieve the data you will need for backtesting, we include historic market data in our releases. +The volume of trades data generated at exchanges is significant. Exchanges APIs impose limits on the bandwidth of data you may retrieve from your machine per unit of time. Different exchanges have different transaction volumes, and imposse different limits. -This has a small non-monetary cost associated: the zip files you will download are a bit heavy and highly compressed. As a result, it may take 30 to 60 minutes for your machine to decompress the files. Also, a second small cost is that this adds a step in the process to fire up the platform the first time. +For those reasons, retrieving historic data takes considerably different times on each exchange. For example, retrieving the USDT-BTC market for the whole of 2019 from Poloniex may take three to four hours. The same period for Bitmex may take double or more. -## Poloniex Only as a Temporary Limitation +A third factor affecting data-retrieval times and initial candles-processing is the computational power of your machine. Check the [system requirements](suite-system-requirements.html) for more details in this regard. -Because the platform is still at an early stage of development, we limit the use of data and trading to a single exchange: Poloniex. Once the core infrastructure is sufficiently developed and stabilized, we plan to implement the [CCXT library](https://github.com/ccxt/ccxt/) to enable access to [a vast list of exchanges](https://github.com/ccxt/ccxt/wiki/Exchange-Markets). We expect this to happen in Q1 2021. +## Supported Exchanges -The choice of Poloniex as the first exchange was purely circumstantial: Poloniex was the number one exchange in the world when the Superalgos Project was born, back in the summer of 2017. +For a list of supported exchanges, please refer to the develop branch README file. + +The system implements the CCXT library, which allows connecting to a vast list of exchanges. + +You are free to try exchanges that haven't been tested by the team. We'd be happy to hear about your tests. ## Feedback We value highly all feedback. We are listening and actively participating in the various Superalgos Telegram groups. -We keep a wish list for new features in the form of [issues in this repository](https://github.com/Superalgos/Platform/issues). If you are missing a key feature, feel free to open an issue using the ```improvement``` label. +We keep a wish list for new features in the form of issues in the Superalgos repository. If you are missing a key feature, feel free to open an issue using the ```improvement``` label. -However, bear in mind that the platform is at an early stage of development and that the current priority is stabilization and delivery of core functionality. +However, bear in mind that the system is at an early stage of development and that the current priority is the stabilization and delivery of core functionality. diff --git a/docs/pages/suite/suite-working-with-strategies.md b/docs/pages/suite/suite-working-with-strategies.md index 465344db0..ea3199802 100644 --- a/docs/pages/suite/suite-working-with-strategies.md +++ b/docs/pages/suite/suite-working-with-strategies.md @@ -54,7 +54,7 @@ Put in other words, events may be triggered in different circumstances, meaning ## Using an Existing Strategy -Thanks to the implementation of the Superalgos Trading Protocol, all strategies built within the Superalgos Platform are portable. This means that people may use strategies built by other people or groups of people. +Thanks to the implementation of the Superalgos Trading Protocol, all strategies built within Superalgos are portable. This means that people may use strategies built by other people or groups of people. You may import any node—formulas, conditions, situations, phases, stages, complete strategies, complete trading systems, and even complete workspaces—simply by dragging and dropping them on the workspace. @@ -66,4 +66,4 @@ When you have more than one strategy under the same trading system, all strategi As a consequence, strategies within a trading system may never be triggered-on at the same time. Under such a setting, when a strategy is triggered on, it blocks the triggering of the rest of the strategies within the trading system until the strategy is triggered off. -If you wish to have multiple strategies that work independently from each other, then you need to place them on different trading systems. The platform supports only one trading system per definition. As a result, if you wish to have multiple independent strategies, then you need to have multiple definitions, each with one trading system. Learn how to do that in the [Working with multiple definitions](Working-with-Multiple-Definitions) section. +If you wish to have multiple strategies that work independently from each other, then you need to place them on different trading systems. The system supports only one trading system per definition. As a result, if you wish to have multiple independent strategies, then you need to have multiple definitions, each with one trading system. Learn how to do that in the [Working with multiple definitions](Working-with-Multiple-Definitions) section.