Data Mining Topic Documentation expanded.
This commit is contained in:
1 parent
1d5138753a
commit
e6061da09a
29 files changed
+855
-47
No files matched your search
@@ -27,27 +27,32 @@
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "V->Superalgos->Topic->Trading Systems->Trading systems are a robust implementation of a professional trading framework. They are flexible enough to support virtually any kind of trading logic, and still, they are structured enough to allow building strategies without coding. That said, if you can code, you are King.",
|
||||
"text": "V->Superalgos->Topic->Data Mining->Data Mines deal with bots that process data and feature a visual scripting framework that solves most all of the infrastructure intricacies of building indicators and plotters.",
|
||||
"updated": 1617708198397
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "VI->Superalgos->Topic->Trading Systems->Trading systems are a robust implementation of a professional trading framework. They are flexible enough to support virtually any kind of trading logic, and still, they are structured enough to allow building strategies without coding. That said, if you can code, you are King.",
|
||||
"updated": 1610310549419
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "VI->Superalgos->Topic->Trading Logic->While the framework proposed by trading systems and trading strategies carry a fair bit of trading logic in and of themselves, it is how you define market situations along with the instructions passed to the Trading Bot that determine how strategies work.",
|
||||
"text": "VII->Superalgos->Topic->Trading Logic->While the framework proposed by trading systems and trading strategies carry a fair bit of trading logic in and of themselves, it is how you define market situations along with the instructions passed to the Trading Bot that determine how strategies work.",
|
||||
"updated": 1610310832197
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "VII->Superalgos->Topic->Low-Frequency Trading Bot->In Superalgos, the Trading Bot plays no part in the definition of the trading logic. Instead, it is the program that executes the trading logic, interacts with the exchange, and keeps track of orders.",
|
||||
"text": "VIII->Superalgos->Topic->Low-Frequency Trading Bot->In Superalgos, the Trading Bot plays no part in the definition of the trading logic. Instead, it is the program that executes the trading logic, interacts with the exchange, and keeps track of orders.",
|
||||
"updated": 1611236020198
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "VIII->Superalgos->Topic->LF Trading Bot Available Data Structures->This chapter describes the three main data structures made available by the Trading Bot.",
|
||||
"text": "IX->Superalgos->Topic->LF Trading Bot Available Data Structures->This chapter describes the three main data structures made available by the Trading Bot.",
|
||||
"updated": 1617708146321
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "IX->Superalgos->Topic->Order Management->One of the crucial aspects of trading automation is the management of orders. The system operates with assumptions that must be verified and synchronized with the exchange. Learning how the Low-Frequency Trading Bot manages orders will help you understand the life cycle of orders and how your definitions in the Open Stage and the Close Stage affect the results.",
|
||||
"text": "X->Superalgos->Topic->Order Management->One of the crucial aspects of trading automation is the management of orders. The system operates with assumptions that must be verified and synchronized with the exchange. Learning how the Low-Frequency Trading Bot manages orders will help you understand the life cycle of orders and how your definitions in the Open Stage and the Close Stage affect the results.",
|
||||
"updated": 1617708175194
|
||||
},
|
||||
{
|
||||
@@ -56,7 +61,7 @@
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "X->Superalgos->Topic->Trading Engine->The trading engine is about making the data processed by the Trading Bot accessible. Use it while debugging strategies to visually track every piece of information processed by the trading bot at any point in time. Use it from within trading systems to feed strategies with the details of what happens at runtime.",
|
||||
"text": "XI->Superalgos->Topic->Trading Engine->The trading engine is about making the data processed by the Trading Bot accessible. Use it while debugging strategies to visually track every piece of information processed by the trading bot at any point in time. Use it from within trading systems to feed strategies with the details of what happens at runtime.",
|
||||
"updated": 1617708180990
|
||||
},
|
||||
{
|
||||
@@ -65,19 +70,14 @@
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "XI->Superalgos->Topic->Trading Farms->Superalgos may coordinate Data Tasks and Trading Tasks across different machines on a network. Trading farms provide a robust environment for smart and scalable deployments.",
|
||||
"text": "XII->Superalgos->Topic->Trading Farms->Superalgos may coordinate Data Tasks and Trading Tasks across different machines on a network. Trading farms provide a robust environment for smart and scalable deployments.",
|
||||
"updated": 1617708186995
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "XII->Superalgos->Topic->Crypto Ecosystem->The crypto ecosystem manages the interactions with parties external to Superalgos, primarily exchanges.",
|
||||
"text": "XIII->Superalgos->Topic->Crypto Ecosystem->The crypto ecosystem manages the interactions with parties external to Superalgos, primarily exchanges.",
|
||||
"updated": 1617708192899
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "XIII->Superalgos->Topic->Data Mines->Data Mines deal with bots that process data and feature a visual scripting framework that solves most all of the infrastructure intricacies of building indicators and plotters.",
|
||||
"updated": 1617708198397
|
||||
},
|
||||
{
|
||||
"style": "Chapter",
|
||||
"text": "XIV->Superalgos->Topic->Integrations->Superalgos integrates with Telegram Bots to broadcast announcements emerging from trading sessions. On the other hand, Superalgos supports receiving webhook messages, enabling automated actions originating from messages sent from third-party services, like TradingView.",
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"type": "CCXT",
|
||||
"definition": {
|
||||
"text": "CCXT is a popular open source library that aims to standarize crypto exchanges APIs so as to make it easier for trading bots developers to access crypto exchanges. ",
|
||||
"updated": 1621694347383
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Superalgos uses this library to fetch one minute candles from exchanges as the raw piece of information with witch it later builds the rest of the indicators. It also use it to place orders from the LF Trading Bot.",
|
||||
"updated": 1621694429513
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"type": "Dataset",
|
||||
"definition": {
|
||||
"text": "In Superalgos, a Dataset is a colection of JSON / text files organized in a certain way. ",
|
||||
"updated": 1621695840891
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Right click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use docs.save to save your changes and app.contribute to send it to the main repository."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"type": "Data Mine",
|
||||
"definition": {
|
||||
"text": "A data mine is a hierarchy that contains definitions of sensor and indicators bots, and their plotters. These definitions make up the actual programs of such bots—the source code."
|
||||
"text": "A data mine is a hierarchy that contains definitions of sensor and indicators bots, and their plotters. These definitions are consumed from the actual code of such bots.",
|
||||
"updated": 1621708641767
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"type": "Sensor Bot",
|
||||
"definition": {
|
||||
"text": "A sensor bot is an algorithm that extracts raw data from external sources (i.e.: exchanges, Twitter, etc.) and stores it in a dataset that other bots may consume."
|
||||
"text": "A sensor bot extracts raw data from external sources where a certain specific extracting algorithm needs to be coded, and stores it in a dataset that other bots may consume.",
|
||||
"updated": 1621691864710
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
@@ -10,7 +11,29 @@
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The sensor bot node holds all definitions required for a sensor bot to function. Definitions are split between the definition of processes and products. A sensor's processes is an algorithm that obtains data from a third pary and produces an output for other bots to consume. Part of that output is the data products the bot creates."
|
||||
"text": "When there is no need for a special algorithm to be coded, Superalgos users run an API Data Fetcher Bot, which uses an API Map to describe the API itself and the bot allows fetching data without the need to code an algorithm at all.",
|
||||
"updated": 1621692364436
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Current Implementation"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "There are only two processes coded for the Sensor Bot so far:",
|
||||
"updated": 1621692240145
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Historic-OHLCVs: It can specifically fetch 1 minute candles from exchanges supported by the CCXT open source library."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Check Webhooks: It checks for information that arrived at the client comming from webhook calls from external systems."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "More processes might be coded in the future as the system grows. "
|
||||
},
|
||||
{
|
||||
"style": "Block",
|
||||
@@ -28,7 +51,8 @@
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "codeName is the name of the bot as used within the code of the system."
|
||||
"text": "codeName is the name of the bot as used within the code of the system. This will also be used as the folder name at the Data-Storage folder structure.",
|
||||
"updated": 1621692071539
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "1",
|
||||
"type": "Data Mining - Introduction",
|
||||
"definition": {
|
||||
"text": "Data Mining in Superalgos means extracting data from external sources, procesing that data in order to have it ready for consumption by trading strategies.",
|
||||
"updated": 1621694013759
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Superalgos offers a set of Data Mining tools. With those, users can fetch data from external sources, process them into more elaborate datasets, plot them at the charts and ultimately consume the data within their trading strategies.",
|
||||
"updated": 1621694036120
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "The Bit Picture"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "All of the data inside the Superalgos system has an origin somewhere at the Internet, outisde of the system. There are currently to ways to bring data into the system:",
|
||||
"updated": 1621705240818
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "By coding an Algorithm: with this method dev users can extract data from any source at all. The way to do it is to implement a new process into the already existing Sensor Bot. This ype of bot is just for that, to allow users to write code to extract data from different places outside of the system when they can not do it by the second method listed below. An example of such algorithms is the Historic-OHLCVs which uses the CCXT open source library to extract one minute candles from any exchange supported by that library.",
|
||||
"updated": 1621705279013
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Without coding an Algorithm: (available since Beta 10) via the API Data Fetcher Bot, this method involves designing an API Map which is later feeded to an API Data Fetcher Bot at run time so that it can fetch data from APIs without needing the user to write a single line of code at all.",
|
||||
"updated": 1621705316432
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Once the data is in the system, it is then processed for different reasons by Indicator Bot s. Some of the processed data might be plotted, and some might be consumed from a Trading Strategy.",
|
||||
"updated": 1621691628626
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "2",
|
||||
"type": "Data Mining - Workflows",
|
||||
"definition": {
|
||||
"text": "Superalgos enable users to setup powerful data mining operations. At this page we will learn the workflows involved.",
|
||||
"updated": 1621694789923
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In general data flows from the Internet into the Superalgos system. Inside of it it is processed and reprocessed and finally consumed by trading strategies.",
|
||||
"updated": 1621705419979
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "As more users jump in and create more assets that they share with the community, the data mining capabilites of the system expands."
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Two Main Data Workflows"
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Sensor Bot Workflow: Data arrives into the system through a Sensor Bot. In this main workflow, the resulting dataset serves as an input for an Indicator Bot that will further process it. Why? Because the data arrives in a format that is not standarized to be consumed from trading strategies or plotted at the charts just yet (except for Webhooks that records data in Single-File Dataset type and can be consumed from plotters and trading strategies).",
|
||||
"updated": 1621711571390
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "API Data Fetcher Bot Workflow: Data arrives into the system through a API Data Fetcher Bot. In this main workflow, the resulting dataset serves as an input for an Indicator Bot that will further process it.",
|
||||
"updated": 1621695610873
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "Both of these 2 workflows start by producing Raw Data that has to be digested by Indicator Bots.",
|
||||
"updated": 1621698358246
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Raw Data -> Indicator Bots",
|
||||
"updated": 1621698286836
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Indicator bots have two different purposes. "
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Standarize Datasets: They are used for standarization of raw data extracted from the internet by Sensor Bot s or API Data Fetcher Bot s. Once data is standarized, it can be run through other Indicator Bot s that will extract the juice out of them. Once standarized data can also be plotted and consumed from trading strategies. By standarizing we are specifically referring to transforming the data into a Dataset type that can be used for Plotting, to feed Learning Bots and Trading Bots. These Dataset types are Multi-Period-Daily and Milti-Period-Market. ",
|
||||
"updated": 1621705567513
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Process Data: This means processing the data in any way which make sense for users. Many of this processing end up calculating standar indicators, others calculate non-standard stuff, maybe just user's ideas of what could be useful to extract from a certain dataset. The system is open and allows users to do just that, play with the data transforming it in any whay they wish.",
|
||||
"updated": 1621695572285
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Indicators -> Plotters (for users)",
|
||||
"updated": 1621698262190
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Plotters are intended for users, not for bots. Plotters will render at the charts information of a Dataset based on the plotter's definition. Plotters can only read data from certain Dataset types, you will learn which ones later at this Topic.",
|
||||
"updated": 1621697151527
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Plotters are used by users to visually discover patterns in datasets and generate ideas, which can be on the side of how to process the data further or how to consume the data from a Learning Bot or a Trading Bot."
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Indicators -> Learning Bots (under development)",
|
||||
"updated": 1621698378105
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Learning Bots have access to data mined, and they use it to train their AI Models. Those AI Models once trained, can be used by trading strategies to request predictions and act upon them."
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Indicators -> Trading Bots",
|
||||
"updated": 1621698387166
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Trading bots are the final consumer of data, which they use to take trading decisions based on their definitions. The ultimate purpose of the whole Data Mining operation is to digest data so that is is easily accesible for trading strategies.",
|
||||
"updated": 1621696940017
|
||||
}
|
||||
]
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "3",
|
||||
"type": "Data Mining - Dataset Types",
|
||||
"definition": {
|
||||
"text": "Superalgos organizes data in datasets. These datasets are standarized across the system in different types.",
|
||||
"updated": 1621695716288
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "This is the complete list of Dataset types currently suported by the system:",
|
||||
"updated": 1621711476824
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Single File: As the name suggest, this Dataset contains only one file with all the data in there. It is not frequently used. So far is the Dataset type where data comming from Webhooks is stored at. It is stored in this way because it assumed that not a lot of data will come through this pipe, only signals produced by external systems. Webhooks feature is expected to evolve in the future maniging the incoming data in another type of Dataset. This Dataset type can be plotted and it's data consumed from withing trading strategies.",
|
||||
"updated": 1621696354757
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "One-Min Daily: This Dataset type organizes data in one file per day, and as the name suggest, expects the data itself to belong to time periods of one minute. This type of Dataset can not be plotted or it's data consumed from trading strategies.",
|
||||
"updated": 1621696328584
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Multi Period Daily: This Dataset type organizes data in one file per day for each Time Frame ranging from 1 minute to 45 minuntes. The data of this type of Dataset can be plotted and can be consumed by trading strategies.",
|
||||
"updated": 1621696475925
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Multi Period Market: This Dataset type organizes data in only one file each Time Frame ranging from 1 hour to 24 hours. That means that the whole market history will be stored in one single file for each time frame. For example candles of 1 hour for a certain market, will be stored in a single file. The data of this type of Dataset can be plotted and can be consumed by trading strategies.",
|
||||
"updated": 1621696582451
|
||||
}
|
||||
]
|
||||
}
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "4",
|
||||
"type": "Data Mining - Datasets Type Conversions",
|
||||
"definition": {
|
||||
"text": "Processes fetching data from the Internet are optimized for accesing a wide range of APIs available out there. The Dataset Type they use to store raw data is usually not the best one for data consumption within the system. For that reason Dataset Type conversions needs to be done.",
|
||||
"updated": 1621701280910
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The type of conversion currently implemented into the system are: ",
|
||||
"updated": 1621698757715
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "From One-Min-Daily Dataset to Multi-Period-Daily.",
|
||||
"updated": 1621701316752
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "From One-Min-Daily Dataset to Multi-Period-Market.",
|
||||
"updated": 1621701322738
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "How to convert from one Dataset type to another"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "There are two ways to convert from one Dataset type to another. ",
|
||||
"updated": 1621699409527
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Custom Code: Users can write code to handle the conversion in cases the standard converter is not available for the type of conversion needed.",
|
||||
"updated": 1621711355058
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Standard Converter: Use a standard converter to do the job. Currently there is only one Standard Converter and it works converting from One-Min-Daily Dataset type to Multi-Period-Daily and Multi-Period-Market Dataset types. ",
|
||||
"updated": 1621711423050
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Custom Code Exmaple",
|
||||
"updated": 1621699475475
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The Candles-Volumes indicator at the Master Data Mine converts One-Min candles and volumes into candles and volumes of 2 min, 3 min, 4 up to 24hs. To do this it runs a custom made algorithm that aggregates that information provided by the Exchange Raw Data Sensor Bot.",
|
||||
"updated": 1621699141131
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "The reason this was implemented as custom code is because when it was needed there was no standard converter implemented and still this was not migrated to the currently existing one."
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Standard Converter Example",
|
||||
"updated": 1621701438440
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The Asset Metrics Indicator Bot, defined at the Messari Data Mine uses a Standard Converter from One-Min-Daily Dataset type to Multi-Period-Daily and Multi-Period-Market Dataset types. To use the conferter, the bot's Process Definition nodes need to have at their config the framework of this converter.",
|
||||
"updated": 1621711379111
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "To convert to Multi-Period-Daily, set the framework name like in this example:",
|
||||
"updated": 1621701835162
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"From-One-Min-To-Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"From-One-Min-To-Multi-Period-Daily\"\n }\n}",
|
||||
"updated": 1621701781838
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "To convert to Multi-Period-Market, set the framework name like in this example:",
|
||||
"updated": 1621701845744
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"From-One-Min-To-Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"From-One-Min-To-Multi-Period-Market\"\n }\n}",
|
||||
"updated": 1621701757557
|
||||
}
|
||||
]
|
||||
}
|
||||
+166
@@ -0,0 +1,166 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "5",
|
||||
"type": "Data Mining - Indicator Frameworks",
|
||||
"definition": {
|
||||
"text": "Indicator Bots are ready to run custom code, or run code provided by a framework in order to do their job.",
|
||||
"updated": 1621705750736
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "When running custom code, users have full control of the process and there is no limit on what it can be done in terms of data manipulations. The trade off is that the user must be a developer.",
|
||||
"updated": 1621702329009
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "On the other hand, by running one of the available frameworks, an indicator can do powerful stuff leaving to the user the task to write only a very tiny piece of code to do the data transformations. In this case the flexibility is reduced comparing to custom code.",
|
||||
"updated": 1621705829052
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "You don't need to be a developer to write these code snipets, most of the time are very simple javascript code."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Here we will see examples of each use case and list all the currently available indicator frameworks users can use."
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Types of Indicators Implementations"
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Custom Code: This means the Indicator will use custom made code to handle all data transformations. "
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "UI-Defined: This means that the indictor will base it's behaviour on the definitioins defined at the UI including the code snippets provided by the user."
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Custom Code Indicators",
|
||||
"updated": 1621703361583
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Examples"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "These two indicators are currently implemented with custom code."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Candles-Volumes: Located at the Master Data Mine."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Bollinger-Bands: Also localted at the Master Data Mine."
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "How to Implement them",
|
||||
"updated": 1621711303350
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The way to implement a Custom Code Indicator is to set up at the config of the Process Definition that there is custom code for this process. Specifically, you need to add the botModule property to the config. This is how it looks like.",
|
||||
"updated": 1621703510791
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"Multi-Period-Market\",\n \"description\": \"Produces different files with multi-period candles and volumes for entire markets.\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Candles Volumes Multi Period Market\"\n}",
|
||||
"updated": 1621703524616
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Then you will need to locate the Project Schema file for the project your bot belongs to. Inside of that file you will need to add some definitions in order for the system to be able to laod your new module at runtime and later execute it once users run your bot implemented in this way.",
|
||||
"updated": 1621703616902
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Most likely your new Bot will be added to the Superalgos project, so you shold find the Projects Schema file inside the Projects/Superalgos folder."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The definition to be added there should be something like this:"
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "\"botModules\": [\n {\n \"name\": \"Candles Volumes Multi Period Market\",\n \"propertyName\": \"candlesVolumesMultiPeriodMarket\",\n \"functionName\": \"newSuperalgosBotModulesCandlesVolumesMultiPeriodMarket\",\n \"fileName\": \"CandlesVolumesMultiPeriodMarket.js\",\n \"folderName\": \"Indicator-Bot/Candles-Volumes\"\n },",
|
||||
"updated": 1621703869144
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "After that you will need to add a new Javascript module with your code. ",
|
||||
"updated": 1621704019288
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "UI-Defined Indicators",
|
||||
"updated": 1621704044375
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In this case the list is long, as almost all other indicators in existence were build using a framework and defined at the UI with the minimun amount of code written by the users who created them."
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "Indicator Frameworks",
|
||||
"updated": 1621702926075
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "This is the complete list of available Indicator Frameworks",
|
||||
"updated": 1621702917486
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "From-One-Min-To-Multi-Period-Daily: It is used to convert one Dataset from type One-Min-Daily to Multi-Period-Daily.",
|
||||
"updated": 1621703039301
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "From-One-Min-To-Multi-Period-Market: It is used to convert one Dataset from type One-Min-Daily to Multi-Period-Market.",
|
||||
"updated": 1621703053342
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Multi-Period-Daily: It is used to process data currently available at a Dataset of type Multi-Period-Daily and produce an output of a Dataset of the same type. How the data is going to be transformed is up to the user, since at the UI users can provide code snippets to handle the data transformation at the Data Building Procedure node.",
|
||||
"updated": 1621703225204
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Multi-Period-Market: It is used to process data currently available at a Dataset of type Multi-Period-Market and produce an output of a Dataset of the same type. How the data is going to be transformed is up to the user, since at the UI users can provide code snippets to handle the data transformation at the Data Building Procedure node.",
|
||||
"updated": 1621703273921
|
||||
},
|
||||
{
|
||||
"style": "Subtitle",
|
||||
"text": "How to use those Frameworks",
|
||||
"updated": 1621711329707
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In all cases, to use an Indicator Framework at your Indicator Bot all you need to do is to specify the framework name at the Process Definition. "
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In this example, the process will use the From-One-Min-To-Multi-Period-Daily framwork."
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"From-One-Min-To-Multi-Period-Daily\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"From-One-Min-To-Multi-Period-Daily\"\n }\n}",
|
||||
"updated": 1621704295681
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In this other example, the process will use the Multi-Period-Market framwork."
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n}",
|
||||
"updated": 1621704273628
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "6",
|
||||
"type": "Data Mining - Data Mines",
|
||||
"definition": {
|
||||
"text": "Data Mines are user created packages of definitions. These definitions usually include Sensor Bot, Indicator Bot and Plotter definitions. The Data Mines shipped with Superalgos are packages contributed by users of the software.",
|
||||
"updated": 1621708561783
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "It is important to undestand that a Data Mine is a package of definitions. When users run a Bot, they do it inside a Task and they need to reference a Process Definition exisiting at one Data Mine. When the bot is launched inside the Task, it receives at that moment all the information regarding the Task that is being used to launch the bot, but at the same time it receives all the information regarding the the Bot's definitions at the Data Mine.",
|
||||
"updated": 1621709219036
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "With all that information the Bot is able to do it's job."
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Who creates them?"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Data Mines are created by power users and contributed to the project (the ones shipping with the software). Users might create Data Mines for their personal use and never share them. If they share them, they received SA tokens for that, and also for mantaining them to adapt them to every new release, if necesary."
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Supported Bots"
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "There are three types of bots that can hold their definitions at a Data Mine."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Sensor Bots: used to fetch data from some source at the Internet by coding a specialized algorithm for that."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "API Data Fetcher Bots: used to fetch data from an Internet API without needing to code."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Indicator Bots: used to process data."
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Interdependency of Data Mines",
|
||||
"updated": 1621709799491
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Data Mines might depend of other Data Mines if any of their bots depend on bots belonging to other Data Mines. You will learn further down this Topic how a bot can depend on other bots in detail. In a nutshell, they can depend in two ways:"
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Data Dependency: This means that a Bot uses as an input the data produced by another bot."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Status Dependency: This means that a Bot uses the status of another Bot as parameters for it's own process. The most common use case is when a Bot needs for instance the date where a market starts or ends. This information is automatically fetched from the Status Report of the bot that produces the raw data and knows which data is the oldest and the newest all the time."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Execution Dependency: This means that a Bot depends on other Bot execution to finish in order for it to start it's own execution.",
|
||||
"updated": 1621709849717
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "When a Data Mine depends on another Data Mine, both need to be present at the Workspace where the Task involving the execution of the Bot is.",
|
||||
"updated": 1621709928655
|
||||
}
|
||||
]
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "7",
|
||||
"type": "Data Mining - Managing Execution",
|
||||
"definition": {
|
||||
"text": "Bots can execute at their own pace or they could wait for other bots to finish executing in order to start. ",
|
||||
"updated": 1621710031525
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Usually when a bot produces raw data, it executes itself based on the configuration of it's Process Definition node. These bots are usually the root of an execution tree formed by all the bots that will process and reprocess the raw data into more and more elaborate datasets.",
|
||||
"updated": 1621710144112
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "There are two types of execution managment."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Standalone Bots: These bots are the root of the Bot Execution Tree. They don't depend on any other bot to run. They usually run on a pre-defined schedulle, in most cases every one minute.",
|
||||
"updated": 1621710324631
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Execution Dependent Bots: These bots are the branches of the Bot Execution Tree and they need to wait for another Bot to finish it's execution in order for it to start.",
|
||||
"updated": 1621710352983
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "This is an example of how to configure a bot to be a Standalone Bot from the execution point of view. As you can see in the example below, the normalWaitTime property has a non zero value, in this case 60 seconds.",
|
||||
"updated": 1621710692139
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"Historic-OHLCVs\",\n \"description\": \"Retrieves and saves historical maket data\",\n \"deadWaitTime\": 0,\n \"normalWaitTime\": 60000,\n \"retryWaitTime\": 10000,\n \"botModule\": \"Exchange Raw Data Historic OHLCVs\"\n}",
|
||||
"updated": 1621710641664
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "This is how to configure the Process Definition of a Bot that it's execution depends on other Bot. Here the normalWaitTime has a value of zero, which will force the boot to inmediatelly run the next loop, but since there is an Execution Started Event defined, that will make it wait until the referenced Bot finishes.",
|
||||
"updated": 1621710760133
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n \"codeName\": \"Multi-Period-Market\",\n \"normalWaitTime\": 0,\n \"retryWaitTime\": 10000,\n \"framework\": {\n \"name\": \"Multi-Period-Market\"\n }\n}",
|
||||
"updated": 1621710596317
|
||||
},
|
||||
{
|
||||
"style": "Success",
|
||||
"text": "In this case users must also define which bot to wait for. To do this they stablish a reference from the Execution Started Event node of the Bot that needs to wait, to the Execution Finished Event of the Bot they are waiting for to finish.",
|
||||
"updated": 1621710539966
|
||||
}
|
||||
]
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "8",
|
||||
"type": "Data Mining - Data Dependencies",
|
||||
"definition": {
|
||||
"text": "Indicator Bots have data dependencies. That means that they have as their input a Dataset created by other Bot. ",
|
||||
"updated": 1621715782447
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "You can also think about data dependencies as a type of relationship between bots. Bots producing raw data (Sensor Bot and API Data Fetcher Bot) don't have them, since their job is to extract data from an external source. At the same time they are the root of a tree or graph of data dependencies relationships.",
|
||||
"updated": 1621715986533
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The data dependencias are in fact at the Process Definition level. Each process might have their own set of data dependencies. "
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "It is possible for a single Bot's process to have more than one Data Dependency, from the same Bot or from different Bot's. That is particulary usefull to aggregate data from many datasets into another one. The dependent datasets could belong to Bots at the same Data Mine or at bots at other Data Mines. From the deployment point of view, the dependant datasets could be physically located at the same machine, or at multiple different machines."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The first declared dependency is called the Main Dependency and has a special meaning. The process of the Bot is going to iterate the Dataset of the Main Dependency to produce the output Dataset. All other data dependencies will be used to extract data from."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "When a Bot has a Data Dependency of a dataset produced by a Bot defined in a different Data Mine, then both Data Mines must be present at the Workspace where the Bot is going to be lauched at."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The Masters Data Mine is the most referenced Data Mine because is the one that defines the Candles-Volumes Indicator Bot, that produces the most used information for trading systems: Candles."
|
||||
}
|
||||
]
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "9",
|
||||
"type": "Data Mining - Status Reports",
|
||||
"definition": {
|
||||
"text": "Status Reports are files produced by each Bot's processes with some key information that the Bot needs to save in order to remember the next time is run.",
|
||||
"updated": 1621716668465
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Most Bots in superalgos are run by the Task Server and they implement a Main Loop. At each loop execution, bots do their job and at the end they go to sleep. How much time they sleep and other details are configured at the Bot's process. ",
|
||||
"updated": 1621717056723
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Before going to sleep all the memory is flushed from all information related to the bot, so that machine resources are freed for other bots in the same machine to use. There is some info Bot's need to remember between every execution of the Main Loop, and between executions of the Task itself. That info is stored in a JSON / text file called the Status Report."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The name Status was used since the information stored is often the status of the Bot's process. Here is an example of a simple Status Report file."
|
||||
},
|
||||
{
|
||||
"style": "Json",
|
||||
"text": "{\n\"lastExecution\":\"2021-05-21T22:08:09.278Z\",\n\"lastFile\":\"2021-05-21T00:00:00.000Z\",\n\"beginingOfMarket\":\"Wed, 01 Jan 2020 00:00:00 GMT\"\n}",
|
||||
"updated": 1621717169974
|
||||
},
|
||||
{
|
||||
"style": "Note",
|
||||
"text": "Status Report files also might include a data structure called Inter Execution Memory. Status information is kind of standard for all types of bots. Inter Execution Memory on the other hand depends on each Bot type and what is actually processing."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "10",
|
||||
"type": "Data Mining - Status Dependencies",
|
||||
"definition": {
|
||||
"text": "Status Dependencies is a type of relationship between Bots. Sometimes bots don't depend on the Datasets produced by other bots, but they depend directly on the status of other bots.",
|
||||
"updated": 1621717479906
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "A good way to undestand why Status Dependencies are needed is with an example:",
|
||||
"updated": 1621717585017
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "The Indicator Bot Bollinger-Bands depends on Candles-Volumes Dataset in order to calculate the Bollinger Bands, but it depend's on Exchange Raw Data Sensor Bot in order to know where the market begins, which is the date of the first piece of data. That information is part of the Status information that Exchange Raw Data Sensor Bot keeps at it's Satus Report.",
|
||||
"updated": 1621717669486
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Bots that produce Raw Data usually do not depend on any other Bot's status and they are usually the root of a dependency tree or graph. Any Bot might have zero to many status dependencies. For each Status Dependency, the Bot's process at runtime will load the Status Report file of the dependent Bot and let extract from there the information it needs.",
|
||||
"updated": 1621718085593
|
||||
},
|
||||
{
|
||||
"style": "Title",
|
||||
"text": "Classification by Utility",
|
||||
"updated": 1621718216510
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Status Dependency can be classified by their utility. This make it easier for processes to handle them in code. There are currently three different utilities:"
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Self Reference: this is used to load it's own Status Report to extract data from it or modify it."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market Ending Point: this means that the referenced Status Report is to be used to extract the information of where the market ends, meaning which date the market ends."
|
||||
},
|
||||
{
|
||||
"style": "List",
|
||||
"text": "Market Starting Point: this means that the referenced Status Report is to be used to extract the information of where the market begins.",
|
||||
"updated": 1621718175842
|
||||
},
|
||||
{
|
||||
"style": "Important",
|
||||
"text": "A Bot's process is not allowed to update the Status Report belonging to other Bots."
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "11",
|
||||
"type": "Data Mining - Deployments",
|
||||
"definition": {
|
||||
"text": "Data Minign Bots can be deployed into one or many machines at the same time and they will automatically find the way too coordinate their actions.",
|
||||
"updated": 1621718512909
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Once you are done defining your data mining Bots, you can move the Tasks that execute them to other Network Nodes and some other node structures at the Network hierarchy and the bot's will still run even from different machines on the network.",
|
||||
"updated": 1621719049976
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "On one hand, the definitions at the Data Mine already contain the 3 types of relationships between Bots. Execution, Data Dependency and Status Dependency. On the other hand, the network hierarchy contains all the information needed to guess where the dependent bots are running (looking at the Tasks it can know at which machine in the network) and where the Datasets are in the network (looking at the Data Storage section).",
|
||||
"updated": 1621719258047
|
||||
},
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Everytime a Task is executed, the whole Network hierarchy, together with the bot's definitions at Data Mines are sent to the Task Server which will help the bot to load the datasets defined as Data Depencies, the Status Reports defined as Status Dependencies and wait for the Bot's defined at the Execution Dependencies, no matter where all those resources are within the physical network. "
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "12",
|
||||
"type": "Data Mining - Products",
|
||||
"definition": {
|
||||
"text": "All Datasets of any type of bot within the Superalgos system are considered products of the Bot that produced them. Why products? Because these dataset once the Superalgos Network is implemente wil be able to be sold to other users in the form of subscriptions.",
|
||||
"updated": 1621721546261
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "In the future, users will be able to offer products to the rest of the users of the Superalgos Network / Marketplace. A single bot might produce many as many products as the bot designer wishes. Each product might contain one or more datasets. ",
|
||||
"updated": 1621721677750
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "13",
|
||||
"type": "Data Mining - Plotting",
|
||||
"definition": {
|
||||
"text": "Each product might have one Plotter Module associated with it. This Plotter Module has all the definitions to inteerpret the Product's datasets and render the information at the charts.",
|
||||
"updated": 1621721823675
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Right click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use docs.save to save your changes and app.contribute to send it to the main repository."
|
||||
}
|
||||
]
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "14",
|
||||
"type": "Data Mining - Consuming Data From Strategies",
|
||||
"definition": {
|
||||
"text": "Traing Bots can have as Data Dependencies datasets from any Indicator Bots. This allows Trading Strategies to act upon the data processed by Indicator Bots.",
|
||||
"updated": 1621721963137
|
||||
},
|
||||
"paragraphs": [
|
||||
{
|
||||
"style": "Text",
|
||||
"text": "Right click and Edit to enter edit mode and change this text. ENTER to write new paragraphs. ESC to exit edit mode. Then you can use docs.save to save your changes and app.contribute to send it to the main repository."
|
||||
}
|
||||
]
|
||||
}
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Data Mines",
|
||||
"pageNumber": "1",
|
||||
"type": "Data Mine Hierarchy",
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "15",
|
||||
"type": "Data Mining - Data Mine Hierarchy",
|
||||
"definition": {
|
||||
"text": "Data mines enable the processing of data by consuming datasets others have produced, performing calculations, and outputting a new value-added data product that others may consume.",
|
||||
"updated": 1611407680590
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Data Mines",
|
||||
"pageNumber": "2",
|
||||
"type": "Indicator Bots",
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "16",
|
||||
"type": "Data Mining - Indicator Bots",
|
||||
"definition": {
|
||||
"text": "Indicator bots enable the processing of data by consuming datasets others have produced, performing calculations, and outputting a new value-added data product that others may consume.",
|
||||
"updated": 1611408124910
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Data Mines",
|
||||
"pageNumber": "3",
|
||||
"type": "Indicator Bots - Process Definition",
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "17",
|
||||
"type": "Data Mining - Indicator Bots - Process Definition",
|
||||
"definition": {
|
||||
"text": "The process definition is the compilation of configurations, dependencies, and references that make up a process.",
|
||||
"updated": 1611410324543
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Data Mines",
|
||||
"pageNumber": "4",
|
||||
"type": "Indicator Bots - Product Definition",
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "18",
|
||||
"type": "Data Mining - Indicator Bots - Product Definition",
|
||||
"definition": {
|
||||
"text": "The product definition is the compilation of configurations, references, and JavaScript code that make up the data product.",
|
||||
"updated": 1611425764441
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Data Mines",
|
||||
"pageNumber": "6",
|
||||
"type": "Indicator Bots - Data Mining Workflow",
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "19",
|
||||
"type": "Data Mining - Indicator Bots - Data Mining Workflow",
|
||||
"definition": {
|
||||
"text": "When running on a data mining operation, indicators follow a cycle designed to fulfill their purpose: to process data others have produced and make the result available for others to consume.",
|
||||
"updated": 1611427674749
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Data Mines",
|
||||
"pageNumber": "7",
|
||||
"type": "Indicator Bots - Coding the Indicator's Logic",
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "20",
|
||||
"type": "Data Mining - Indicator Bots - Coding the Indicator's Logic",
|
||||
"definition": {
|
||||
"text": "Learn how to use data dependencies, the variable object, and how to deal with indicators with irregular periods.",
|
||||
"updated": 1611429211176
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Data Mines",
|
||||
"pageNumber": "8",
|
||||
"type": "Plotters",
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "21",
|
||||
"type": "Data Mining - Plotters",
|
||||
"definition": {
|
||||
"text": "Plotters read data products created by bots and map certain coordinate points to use them as vertices for polygons, which are assigned styles to create graphic representations of the underlying data.",
|
||||
"updated": 1611431276108
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Data Mines",
|
||||
"pageNumber": "9",
|
||||
"type": "Plotters - Plotter Panel",
|
||||
"topic": "Data Mining - Data Mines",
|
||||
"pageNumber": "22",
|
||||
"type": "Data Mining - Plotters - Plotter Panel",
|
||||
"definition": {
|
||||
"text": "A plotter panel allows building panels with numerical representations of data.",
|
||||
"updated": 1611432021846
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Data Mines",
|
||||
"pageNumber": "10",
|
||||
"type": "Plotters - Shapes",
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "23",
|
||||
"type": "Data Mining - Plotters - Shapes",
|
||||
"definition": {
|
||||
"text": "Shapes define coordinate points to use as vertex for polygons, which are assigned styles.",
|
||||
"updated": 1611432676884
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"topic": "Data Mines",
|
||||
"pageNumber": "11",
|
||||
"type": "How to Build an Indicator - Video Series",
|
||||
"topic": "Data Mining",
|
||||
"pageNumber": "24",
|
||||
"type": "Data Mining - How to Build an Indicator - Video Series",
|
||||
"definition": {
|
||||
"text": "This video series goes through the entire process of building an indicator, step by step.",
|
||||
"updated": 1611434001380
|
||||
Reference in new issue
Block a user