Merge pull request #320 from Luis-Fernando-Molina/in-app-documentation

In app documentation Revert Fixed
This commit is contained in:
Luis Fernando Molina authored and GitHub committed 2021-01-06 12:05:50 +01:00
commit 601cd715ef
29 files changed
+234 -516

No files matched your search

+45 -13
View File
@@ -526,23 +526,55 @@ exports.newHttpInterface = function newHttpInterface(WEB_SERVER, DATA_FILE_SERVE
switch (requestParameters[2]) { // switch by command
case 'Contribute': {
try {
const simpleGit = require('simple-git');
const options = {
baseDir: process.cwd(),
binary: 'git',
maxConcurrentProcesses: 6,
}
const git = simpleGit(options)
const commitMessage = unescape(requestParameters[3])
contribute()
git
.add('./*')
.commit(commitMessage)
.push('origin', 'in-app-documentation')
async function contribute() {
await doGit()
await doGithub()
respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse)
}
async function doGit() {
const simpleGit = require('simple-git');
const options = {
baseDir: process.cwd(),
binary: 'git',
maxConcurrentProcesses: 6,
}
const git = simpleGit(options)
await git.add('./*')
await git.commit(commitMessage)
await git.push('origin', 'in-app-documentation')
}
async function doGithub() {
const token = ""
const { Octokit } = require("@octokit/rest")
const octokit = new Octokit({
auth: token,
userAgent: 'Superalgos Beta 8'
})
const repo = 'Superalgos'
const owner = 'Superalgos'
const head = 'Luis-Fernando-Molina:in-app-documentation'
const base = 'in-app-documentation'
const title = 'Contribution to Superalgos'
await octokit.pulls.create({
owner,
repo,
title,
head,
base,
});
}
respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), httpResponse)
} catch (err) {
console.log('[ERROR] httpInterface -> App -> Contribute -> Method call produced an error.')
console.log('[ERROR] httpInterface -> App -> Contribute -> err.stack = ' + err.stack)
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

@@ -22,23 +22,13 @@
},
{
"style": "Title",
"text": "Configuring Data Mine"
"text": "Data Mine Configuration",
"updated": 1609789108763
},
{
"style": "Text",
"text": "Select Configure Data Mine on the menu to access the configuration."
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": "\"codeName\": \"Supermine\""
},
{
"style": "Text",
"text": "}"
"style": "Subtitle",
"text": "Properties",
"updated": 1609789116514
},
{
"style": "List",
@@ -18,123 +18,13 @@
},
{
"style": "Title",
"text": "Configuring Dataset Definition"
"text": "Dataset Definition Configuration",
"updated": 1609788319432
},
{
"style": "Text",
"text": "Select Configure Definition on the menu to access the configuration."
},
{
"style": "Text",
"text": "Multi-Period-Market:"
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": " \"codeName\": \"Multi-Period-Market\","
},
{
"style": "Text",
"text": " \"type\": \"Market Files\","
},
{
"style": "Text",
"text": " \"validTimeFrames\": [ \"24-hs\", \"12-hs\", \"08-hs\", \"06-hs\", \"04-hs\", \"03-hs\", \"02-hs\", \"01-hs\" ],"
},
{
"style": "Text",
"text": " \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period\","
},
{
"style": "Text",
"text": " \"fileName\": \"Data.json\","
},
{
"style": "Text",
"text": " \"timeFrames\": {"
},
{
"style": "Text",
"text": " \"filePath\": \"\","
},
{
"style": "Text",
"text": " \"fileName\": \"\""
},
{
"style": "Text",
"text": " }"
},
{
"style": "Text",
"text": "}"
},
{
"style": "Text",
"text": "Multi-Period-Daily:"
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": " \"codeName\": \"Multi-Period-Daily\","
},
{
"style": "Text",
"text": " \"type\": \"Daily Files\","
},
{
"style": "Text",
"text": " \"validTimeFrames\": [ \"45-min\", \"40-min\", \"30-min\", \"20-min\", \"15-min\", \"10-min\", \"05-min\", \"04-min\", \"03-min\", \"02-min\", \"01-min\" ],"
},
{
"style": "Text",
"text": " \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset/@Period/@Year/@Month/@Day\","
},
{
"style": "Text",
"text": " \"fileName\": \"Data.json\","
},
{
"style": "Text",
"text": " \"dataRange\": {"
},
{
"style": "Text",
"text": " \"filePath\": \"@Exchange/@BaseAsset-@QuotedAsset/@DataMine/@Bot/Output/@Product/@Dataset\","
},
{
"style": "Text",
"text": " \"fileName\": \"Data.Range.json\""
},
{
"style": "Text",
"text": " },"
},
{
"style": "Text",
"text": " \"timeFrames\": {"
},
{
"style": "Text",
"text": " \"filePath\": \"\","
},
{
"style": "Text",
"text": " \"fileName\": \"\""
},
{
"style": "Text",
"text": " }"
},
{
"style": "Text",
"text": "}"
"style": "Subtitle",
"text": "Properties",
"updated": 1609788325479
},
{
"style": "List",
@@ -142,7 +32,8 @@
},
{
"style": "List",
"text": "type refers to the type of dataset; possible values are Market Files and Daily Files."
"text": "type refers to the type of dataset; possible values are market files and daily files.",
"updated": 1609788409763
},
{
"style": "List",
@@ -11,14 +11,6 @@
{
"style": "Text",
"text": "The execution finished event is responsible for triggering the execution of every process that depends on the data a bot produces. If bot Alice depends on bot Bob, Alice listens to the execution finished event of Bob so that it may start a new execution cycle as soon as Bob finishes its cycle. Alice listens to Bob's execution finished event by establishing a reference from its execution started event."
},
{
"style": "Gif",
"text": "GIFs/Superalgos/Docs/inner-foder/indicators-process-execution-started-finished-events-01.gif"
},
{
"style": "Text",
"text": "The image above shows a reference established from the execution started event of a process to the execution finished event of another process."
}
]
}
@@ -22,23 +22,13 @@
},
{
"style": "Title",
"text": "Configuring Indicator Bot"
"text": "Indicator Bot Configuration",
"updated": 1609789150912
},
{
"style": "Text",
"text": "Select Configure Bot on the menu to access the configuration."
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": "\"codeName\": \"Superbot\""
},
{
"style": "Text",
"text": "}"
"text": "Properties",
"updated": 1609789156452
},
{
"style": "List",
@@ -16,14 +16,6 @@
"style": "Text",
"text": "An example of other entities that may be listening to such events is that of plotters. Plotters read datasets and create graphical representations of this data over the charts. Charts are constantly updating the information in the form of candles and indicators in realtime, synchronized with the data being extracted from the exchange by the sensor bot. That kind of automatism is possible thanks to the events that processes trigger every time an execution cycle is finished, signaling to everyone listening that new data is available on each of the impacted datasets."
},
{
"style": "Gif",
"text": "GIFs/Superalgos/Docs/inner-foder/indicators-process-output-01.gif"
},
{
"style": "Text",
"text": "The image above shows the typical references from output datasets to datasets definitions."
},
{
"style": "Note",
"text": "An output dataset must reference a dataset definition."
@@ -12,49 +12,24 @@
"style": "Text",
"text": "A single plotter may have several modules. Different modules may be used to plot each product of the bot, or as best suits the expected use-pattern."
},
{
"style": "Gif",
"text": "GIFs/Superalgos/Docs/inner-foder/plotter-module-01.gif"
},
{
"style": "Important",
"text": "For a bot to use a plotter, the corresponding product definition must establish a reference with the plotter module built to interpret the dataset."
},
{
"style": "Gif",
"text": "GIFs/Superalgos/Docs/inner-foder/plotter-module-02-product-link.gif"
"text": "For a bot to use a plotter, the corresponding Product Definition must establish a reference with the plotter module built to interpret the dataset.",
"updated": 1609790272500
},
{
"style": "Block",
"text": "Configuring"
"text": "Configuring",
"updated": 1609790308422
},
{
"style": "Title",
"text": "Configuring Plotter Module"
"text": "Plotter Module Configuration"
},
{
"style": "Text",
"text": "Select Configure Plotter Module on the menu to access the configuration."
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": " \"codeName\": \"Module Name\","
},
{
"style": "Text",
"text": " \"isLegacy\": true,"
},
{
"style": "Text",
"text": " \"icon\": \"histogram\""
},
{
"style": "Text",
"text": "}"
"style": "Subtitle",
"text": "Properties",
"updated": 1609790324389
},
{
"style": "List",
@@ -65,36 +40,14 @@
"text": "isLegacy is true for plotters modules developed entirely in JavaScript, and is false or doesn't show in the configuration for plotters built with the tools featured in the data mine hierarchy."
},
{
"style": "Text",
"text": "| Value | Image|"
"style": "List",
"text": "icon is the name of the image that illustrates the corresponding layer in the Layers Panel. In case the icon is not specified, the default idon is used. Possible values are...",
"updated": 1609852182210
},
{
"style": "Text",
"text": "| :---: | :---: |"
},
{
"style": "Png",
"text": "| default | PNGs/Superalgos/Docs/inner-foder/default-banner.png |"
},
{
"style": "Png",
"text": "| histogram | PNGs/Superalgos/Docs/inner-foder/histogram-banner.png |"
},
{
"style": "Png",
"text": "| band | PNGs/Superalgos/Docs/inner-foder/bands-banner.png |"
},
{
"style": "Png",
"text": "| moving-average | PNGs/Superalgos/Docs/inner-foder/moving-average-banner.png |"
},
{
"style": "Png",
"text": "| oscillator | PNGs/Superalgos/Docs/inner-foder/oscillator-banner.png |"
},
{
"style": "Png",
"text": "| trend | PNGs/Superalgos/Docs/inner-foder/trends-banner.png |"
"style": "Javascript",
"text": "layer-moving-averages\nlayer-bands\nlayer-candles\nlayer-histogram\nlayer-oscilator\nlayer-resistance\nlayer-support\nlayer-trends\nlayer-volume",
"updated": 1609852285167
},
{
"style": "Text",
@@ -102,15 +55,18 @@
},
{
"style": "Text",
"text": "1. name the image in the following format: image-name.png;"
"text": "1. Name the image in the following format: image-name.png;",
"updated": 1609852305205
},
{
"style": "Text",
"text": "1. place images in the WebServer\\Images\\Icons folder;"
"text": "2. Place images in the WebServer\\Images\\Icons folder;",
"updated": 1609852315978
},
{
"style": "Text",
"text": "1. in the configuration of the module, use the name as is (e.g.: \"icon\": \"image-name\")"
"text": "3. In the configuration of the module, use the name as is (e.g.: \"icon\": \"image-name\")",
"updated": 1609852322876
}
]
}
@@ -34,23 +34,13 @@
},
{
"style": "Title",
"text": "Configuring Plotter"
"text": "Plotter Configuration",
"updated": 1609790186907
},
{
"style": "Text",
"text": "Select Configure Plotter on the menu to access the configuration."
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": " \"codeName\": \"Plotter-Name\""
},
{
"style": "Text",
"text": "}"
"style": "Subtitle",
"text": "Properties",
"updated": 1609790191953
},
{
"style": "List",
@@ -13,20 +13,18 @@
"text": "To represent some form of variation of the price or a price derivative over time, a typical point formula consists of the following two coordinates: x = datetime and y = rate."
},
{
"style": "Text",
"text": "For example:"
"style": "Title",
"text": "For example",
"updated": 1609852495437
},
{
"style": "Text",
"style": "Subtitle",
"text": "Point SMA 20 Begin "
},
{
"style": "Text",
"text": "x = record.begin"
},
{
"style": "Text",
"text": "y = record.previous.sma20"
"style": "Javascript",
"text": "x = record.begin\ny = record.previous.sma20",
"updated": 1609852623919
},
{
"style": "Text",
@@ -41,16 +39,13 @@
"text": "To complete the line segment corresponding to a single period, the closing datetime of the period and the closing rate for the 20-periods SMA are required:"
},
{
"style": "Text",
"style": "Subtitle",
"text": "Point SMA 20 End "
},
{
"style": "Text",
"text": "x = record.end"
},
{
"style": "Text",
"text": "y = record.sma20"
"style": "Javascript",
"text": "x = record.end\ny = record.sma20",
"updated": 1609852823376
},
{
"style": "Text",
@@ -65,80 +60,62 @@
"text": "Anyway, the points definition is just as straight forward, for example:"
},
{
"style": "Text",
"style": "Subtitle",
"text": "Point RSI Begin "
},
{
"style": "Text",
"text": "x = record.begin"
"style": "Javascript",
"text": "x = record.begin\ny = record.previous.value",
"updated": 1609852852377
},
{
"style": "Text",
"text": "y = record.previous.value"
},
{
"style": "Text",
"style": "Subtitle",
"text": "Point RSI End "
},
{
"style": "Text",
"text": "x = record.end"
},
{
"style": "Text",
"text": "y = record.value"
"style": "Javascript",
"text": "x = record.end\ny = record.value\n",
"updated": 1609853081776
},
{
"style": "Text",
"text": "Points do not necessarily need to refer to values on the dataset produced by the corresponding data product. For example, absolute values for the y-axis may be used to describe fixed graphical elements, for instance, a horizontal line, or a box."
},
{
"style": "Text",
"style": "Subtitle",
"text": "Point Begin 20 "
},
{
"style": "Text",
"text": "x = record.begin"
"style": "Javascript",
"text": "x = record.begin\ny = 20",
"updated": 1609852867401
},
{
"style": "Text",
"text": "y = 20"
},
{
"style": "Text",
"style": "Subtitle",
"text": "Point End 20 "
},
{
"style": "Text",
"text": "x = record.end"
"style": "Javascript",
"text": "x = record.end\ny = 20",
"updated": 1609852965567
},
{
"style": "Text",
"text": "y = 20"
},
{
"style": "Text",
"style": "Subtitle",
"text": "Point Begin 30 "
},
{
"style": "Text",
"text": "x = record.begin"
"style": "Javascript",
"text": "x = record.begin\ny = 30\n",
"updated": 1609853018216
},
{
"style": "Text",
"text": "y = 30"
},
{
"style": "Text",
"style": "Subtitle",
"text": "Point End 30 "
},
{
"style": "Text",
"text": "x = record.end"
},
{
"style": "Text",
"text": "y = 30"
"style": "Javascript",
"text": "x = record.end\ny = 30\n",
"updated": 1609853034626
},
{
"style": "Text",
@@ -13,8 +13,9 @@
"text": "These coordinate points are used to define polygons. Values for [x,y]coordinates are entered with a point formula."
},
{
"style": "Text",
"text": "{% include tip.html content=\"Each point should be given a significant name so that it is easier to identify them at the time of establishing references with polygon vertices.\" %}"
"style": "Success",
"text": "Give points a significant name so that it is easier to identify them at the time of establishing references with polygon vertices.",
"updated": 1609852471920
}
]
}
@@ -18,15 +18,13 @@
},
{
"style": "Title",
"text": "Configuring Polygon Condition"
"text": "Polygon Condition Configuration",
"updated": 1609853769074
},
{
"style": "Text",
"text": "Select Edit Condition on the menu to access the configuration."
},
{
"style": "Text",
"text": "Polygon conditions work pretty much like conditions used on trading systems. The main difference is that the variables available are solely those provided by the bot product definition that reference the corresponding plotter module."
"text": "Polygon Conditions work pretty much like conditions used on trading systems. The main difference is that the variables available are solely those provided by the bot product definition that reference the corresponding plotter module.",
"updated": 1609853810664
}
]
}
@@ -12,10 +12,6 @@
"style": "Text",
"text": "Vertices are the main element defining polygons. Once created, each vertex must establish a reference to the corresponding point in the charts point."
},
{
"style": "Gif",
"text": "GIFs/Superalgos/Docs/inner-foder/vertex-01-add-and-link.gif"
},
{
"style": "Text",
"text": "Drawing curves requires two vertices. Painting areas, such as the background of a chart, likely requires four vertices. Note that vertices are not capable of featuring a style. Instead, styles are applied to polygon borders and polygon bodies."
@@ -13,12 +13,9 @@
"text": "This is an example of a procedure loop code snippet, in particular, the code that initializes the array used in the calculation of the Popular SMAs product of the Simple Moving Average (SMA) indicator."
},
{
"style": "Text",
"text": "/ Initialization Code. /"
},
{
"style": "Text",
"text": "variable.last200 = []"
"style": "Javascript",
"text": "/ Initialization Code. /\nvariable.last200 = []",
"updated": 1609789338326
}
]
}
@@ -0,0 +1,19 @@
{
"type": "Procedure Javascript Code",
"definition": {
"text": "The Procedure JavaScript code node may hold any snippet of valid JavaScript.",
"updated": 1609789511058
},
"paragraphs": [
{
"style": "Text",
"text": "The system allows developers great flexibility as all valid JavaScript code is allowed.",
"updated": 1609789473533
},
{
"style": "Important",
"text": "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.",
"updated": 1609789526505
}
]
}
@@ -7,10 +7,6 @@
{
"style": "Block",
"text": "Content"
},
{
"style": "Note",
"text": "Please refer to the coding references page to learn how to code the indicator's logic."
}
]
}
@@ -30,83 +30,13 @@
},
{
"style": "Title",
"text": "Configuring Process Definition"
"text": "Process Definition Configuration",
"updated": 1609786986097
},
{
"style": "Text",
"text": "Select Configure Process on the menu to access the configuration."
},
{
"style": "Text",
"text": "Multi-Period-Market:"
},
{
"style": "Text",
"text": " {"
},
{
"style": "Text",
"text": " \"codeName\": \"Multi-Period-Market\","
},
{
"style": "Text",
"text": " \"normalWaitTime\": 0,"
},
{
"style": "Text",
"text": " \"retryWaitTime\": 10000,"
},
{
"style": "Text",
"text": " \"framework\": {"
},
{
"style": "Text",
"text": " \"name\": \"Multi-Period-Market\""
},
{
"style": "Text",
"text": " }"
},
{
"style": "Text",
"text": " }"
},
{
"style": "Text",
"text": "Multi-Period-Daily:"
},
{
"style": "Text",
"text": " {"
},
{
"style": "Text",
"text": " \"codeName\": \"Multi-Period-Daily\","
},
{
"style": "Text",
"text": " \"normalWaitTime\": 0,"
},
{
"style": "Text",
"text": " \"retryWaitTime\": 10000,"
},
{
"style": "Text",
"text": " \"framework\": {"
},
{
"style": "Text",
"text": " \"name\": \"Multi-Period-Daily\""
},
{
"style": "Text",
"text": " }"
},
{
"style": "Text",
"text": " }"
"style": "Subtitle",
"text": "Properties",
"updated": 1609787034890
},
{
"style": "List",
@@ -3,5 +3,10 @@
"definition": {
"text": "The process output groups the definitions of which datasets are impacted by the process, that is, which datasets the process builds or takes a part in building."
},
"paragraphs": []
"paragraphs": [
{
"style": "Text",
"text": "Left click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode."
}
]
}
@@ -22,31 +22,13 @@
},
{
"style": "Title",
"text": "Configuring Product Definition"
"text": "Product Definition Configuration",
"updated": 1609788267834
},
{
"style": "Text",
"text": "Select Configure Product on the menu to access the configuration."
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": " \"codeName\": \"Product-Name\","
},
{
"style": "Text",
"text": " \"singularVariableName\": \"productName\","
},
{
"style": "Text",
"text": " \"pluralVariableName\": \"productNames\""
},
{
"style": "Text",
"text": "}"
"style": "Subtitle",
"text": "Properties",
"updated": 1609788279998
},
{
"style": "List",
@@ -12,10 +12,6 @@
"style": "Text",
"text": "Bots store data in the form of arrays of records, in a minimized plain text file and the standard JSON format, although not as objects with named properties, but as arrays."
},
{
"style": "Text",
"text": "{% include image-ext.html file='https://user-images.githubusercontent.com/13994516/68998023-303eae00-08ad-11ea-9baa-ddea801c7d6d.png' url='yes' max-width='100' caption='Typical dataset file showing records as arrays.' %}"
},
{
"style": "Text",
"text": "The choice of plain text for storage of large volumes of information has benefits in terms of not requiring any sophisticated technology to store and serve the data (i.e.: no database is required)."
@@ -0,0 +1,28 @@
{
"type": "Record Formula",
"definition": {
"text": "In the context of a record definition, formulas are used to assign a value to the property, usually in the form of a variable declared in the calculation or data building procedures.",
"updated": 1609788711861
},
"paragraphs": [
{
"style": "Text",
"text": "Formulas may use both the record and the variable objects made available by the calculations procedure and the data building procedure (see procedure loop).",
"updated": 1609788725463
},
{
"style": "Text",
"text": "A formula may act in slightly different ways depending on the isCaculated attribute in the record property configuration:"
},
{
"style": "List",
"text": "When a property is calculated, the formula assigns to the property a value that is calculated in the Calculations Procedure. Even if the property is not stored in the dataset, it is made available as a calculated property to other bots that may have the dataset as input.",
"updated": 1609788822393
},
{
"style": "List",
"text": "When a property is not calculated or the attribute is not defined in the configuration, the formula is applied in the Data Building Procedure.",
"updated": 1609788849508
}
]
}
@@ -17,8 +17,9 @@
"text": "The order in which record properties are defined around the parent record definition node is the order in which they are stored in the actual record."
},
{
"style": "Text",
"text": "{% include tip.html content=\"The first two records are usually the begin and end records, featuring the corresponding datetimes that indicate when the record starts and ends.\" %}"
"style": "Success",
"text": "The first two records are usually the begin and end records, featuring the corresponding datetimes that indicate when the record starts and ends.",
"updated": 1609788556871
},
{
"style": "Block",
@@ -26,47 +27,25 @@
},
{
"style": "Title",
"text": "Configuring Record Property"
"text": "Record Property Configuration",
"updated": 1609788569963
},
{
"style": "Text",
"text": "Select Configure Property on the menu to access the configuration."
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": " \"codeName\": \"record-name\","
},
{
"style": "Text",
"text": " \"isString\": false,"
},
{
"style": "Text",
"text": " \"isCalculated\": true"
},
{
"style": "Text",
"text": "}"
"style": "Subtitle",
"text": "Properties",
"updated": 1609788577195
},
{
"style": "List",
"text": "codeName is the name of the record as it is used in the bot's code."
},
{
"style": "Text",
"style": "List",
"text": "isString determines if the field is a text string or if, in turn, is a numeric field. Dates are stored in the epoch format, which is numeric. The reason why this configuration is important is that fields that are strings need to be stored between “double quotes”."
},
{
"style": "List",
"text": " isCalculated determines if the field is stored in the dataset or if, instead, is calculated at a later stage. A value true* means that the record is not stored. In the case isCaculated is not defined in the configuration, it is assumed to be false."
},
{
"style": "Gif",
"text": "GIFs/Superalgos/Docs/inner-foder/indicators-record-definitions-01.gif"
},
{
"style": "Text",
"text": "The image above shows a record definition with four record properties."
}
]
}
@@ -18,27 +18,13 @@
},
{
"style": "Title",
"text": "Configuring Sensor Bot"
"text": "Sensor Bot Configuration",
"updated": 1609790137912
},
{
"style": "Text",
"text": "Select Configure Bot on the menu to access the configuration."
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": "\"codeName\": \"Super\","
},
{
"style": "Text",
"text": "\"repo\": \"Super-Sensor-Bot\""
},
{
"style": "Text",
"text": "}"
"style": "Subtitle",
"text": "Properties",
"updated": 1609790143486
},
{
"style": "List",
@@ -12,10 +12,6 @@
"style": "Text",
"text": "A plotter recursively renders graphics for each period or candle. This means that a definition of what shapes need to be drawn for a single period is required. The plotter does the same thing for every period or candle that is visible on the screen at any point in time, for any time frame, as long as the corresponding data is available."
},
{
"style": "Gif",
"text": "GIFs/Superalgos/Docs/inner-foder/shapes-01-show-off.gif"
},
{
"style": "Text",
"text": "In general terms, the process of defining what is going to be rendered on the screen consist of the following four steps:"
@@ -14,7 +14,8 @@
},
{
"style": "Text",
"text": "The status report referenced may belong to the same process— which is called a self-reference. In such a case, the process is learning what it did the last time it ran. Also, the status report referenced may belong to another process—another bot. In that case, the dependency may be of the Market Starting Point or Market Ending Point types."
"text": "The status report referenced may belong to the same process— which is called a self-reference. In such a case, the process is learning what it did the last time it ran. Also, the status report referenced may belong to another process—another bot. In that case, the dependency may be of the Market Starting Point or Market Ending Point types. ",
"updated": 1609787389239
},
{
"style": "List",
@@ -22,11 +23,13 @@
},
{
"style": "List",
"text": "Market Starting Point is a status dependency existing on Multi-Period-Daily processes so that the process establishing the reference learns the datetime of the start of the market. Usually, the reference is established with the sensor's Historic-OHLCVs process status report. Multi-Period-Market processes do not have this type of status dependency as the date of the start of the market is implied in their dataset (a single file with all market data)."
"text": "The market starting point is a status dependency existing on Multi-Period-Daily processes so that the process establishing the reference learns the datetime of the start of the market. Usually, the reference is established with the sensor's Historic-OHLCVs process status report. Multi-Period-Market processes do not have this type of status dependency as the date of the start of the market is implied in their dataset (a single file with all market data).",
"updated": 1609787724948
},
{
"style": "List",
"text": "Market Ending Point is a status dependency existing both in Multi-Period-Market and Multi-Period-Daily processes so that the process establishing the reference knows the datetime of the end of the market."
"text": "The market ending point is a status dependency existing both in Multi-Period-Market and Multi-Period-Daily processes so that the process establishing the reference knows the datetime of the end of the market.",
"updated": 1609787745299
},
{
"style": "Text",
@@ -38,27 +41,18 @@
},
{
"style": "Title",
"text": "Configuring Status Dependency"
"text": "Status Dependency Configuration",
"updated": 1609787775907
},
{
"style": "Text",
"text": "Select Configure Status Dependency on the menu to access the configuration."
},
{
"style": "Text",
"text": "{"
},
{
"style": "Text",
"text": "\"mainUtility\": \"Self Reference|Market Starting Point|Market Ending Point\""
},
{
"style": "Text",
"text": "}"
"style": "Subtitle",
"text": "Properties",
"updated": 1609787781306
},
{
"style": "List",
"text": "mainUtility determines the type of status dependency, with possible values being Self Reference, Market Starting Point, or Market Ending Point."
"text": "mainUtility determines the type of status dependency, with possible values being Self Reference, MMarket Starting Point, or MMarket Ending Point.",
"updated": 1609787859239
}
]
}
@@ -1,7 +1,8 @@
{
"type": "Status Report",
"definition": {
"text": "Status reports serve as temporal annotations that bots read every time they run to know what was done in the previous cycle and what the state of affairs is at present. Status reports are dynamic, and they change constantly, with updates after every cycle of the associated process."
"text": "\nA status report serves as a temporal annotation that bots read every time they run to know what was done in the previous cycle and what the state of affairs is at present. They are dynamic and change constantly, with updates after every cycle of the associated process.",
"updated": 1609788111201
},
"paragraphs": [
{
@@ -68,8 +68,8 @@
},
{
"style": "Table",
"text": "| Variable Value | RGB Value | Color Sample |\n| DARK | 48, 48, 54 | RGB(48, 48, 54) |\n| LIGHT | 234, 226, 222 | RGB(234, 226, 222) |\n| GREY | 150, 150, 150 | RGB(150, 150, 150) |\n| LIGHT_GREY | 247, 247, 247 | RGB(247, 247, 247) |\n| WHITE | 255, 255, 255 | RGB(255, 255, 255) |\n| BLACK | 0, 0, 0 | RGB(0, 0, 0) |\n| GOLDEN_ORANGE | 240, 162, 2 | RGB(240, 162, 2) |\n| RUSTED_RED | 204, 88, 53 | RGB(204, 88, 53) |\n| GREEN | 188, 214, 67 | RGB(188, 214, 67) |\n| RED | 223, 70, 60 | RGB(223, 70, 60) |\n| PATINATED_TURQUOISE | 27, 153, 139 | RGB(27, 153, 139) |\n| TITANIUM_YELLOW | 244, 228, 9 | RGB(244, 228, 9) |\n| MANGANESE_PURPLE | 91,80, 122 | RGB(91,80, 122) |\n| TURQUOISE | 74, 207, 217 | RGB(74, 207, 217) |\n| DARK_TURQUOISE | 2, 149, 170 | RGB(2, 149, 170) | </table>",
"updated": 1609862819457
"text": "| Variable Value | RGB Value | Color Sample |\n| DARK | 48, 48, 54 | RGB(48, 48, 54) |\n| LIGHT | 234, 226, 222 | RGB(234, 226, 222) |\n| GREY | 150, 150, 150 | RGB(150, 150, 150) |\n| LIGHT_GREY | 247, 247, 247 | RGB(247, 247, 247) |\n| WHITE | 255, 255, 255 | RGB(255, 255, 255) |\n| BLACK | 0, 0, 0 | RGB(0, 0, 0) |\n| GOLDEN_ORANGE | 240, 162, 2 | RGB(240, 162, 2) |\n| RUSTED_RED | 204, 88, 53 | RGB(204, 88, 53) |\n| GREEN | 188, 214, 67 | RGB(188, 214, 67) |\n| RED | 223, 70, 60 | RGB(223, 70, 60) |\n| PATINATED_TURQUOISE | 27, 153, 139 | RGB(27, 153, 139) |\n| TITANIUM_YELLOW | 244, 228, 9 | RGB(244, 228, 9) |\n| MANGANESE_PURPLE | 91,80, 122 | RGB(91,80, 122) |\n| TURQUOISE | 74, 207, 217 | RGB(74, 207, 217) |\n| DARK_TURQUOISE | 2, 149, 170 | RGB(2, 149, 170) |",
"updated": 1609854356242
},
{
"style": "List",
@@ -80,4 +80,4 @@
"text": "lineDash is used to turn the border into a dashed-line; the first value corresponds to the length of the dash while the second value defines the length of the space."
}
]
}
}
@@ -27,6 +27,10 @@
{
"style": "Note",
"text": "The information that is out of focus, that is, out of the viewport, is not read nor rendered graphically, thus, does not consume resources."
},
{
"style": "Title",
"text": "Viewport Configuration"
}
]
}