diff --git a/Projects/Superalgos/Schemas/Docs-Topics/data-mining-001-data-mining-introduction.json b/Projects/Superalgos/Schemas/Docs-Topics/data-mining-001-data-mining-introduction.json index b33d68a83..8f005de1d 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/data-mining-001-data-mining-introduction.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/data-mining-001-data-mining-introduction.json @@ -3,14 +3,14 @@ "pageNumber": 1, "type": "Data Mining - Introduction", "definition": { - "text": "Data Mining in Superalgos means extracting data from external sources and procesing that data in order to have it ready for consumption by trading strategies.", - "updated": 1621899758597 + "text": "Data Mining in Superalgos means extracting data from external sources and processing that data in order to have it ready for consumption by trading strategies.", + "updated": 1622200589433 }, "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, feed ML Bot's models and ultimately consume the data within their trading strategies.", - "updated": 1621899827534 + "text": "Superalgos offers an extensive set of Data Mining tools. These tools allow users to fetch data from external sources, process that data into more elaborate datasets, plot the datasets within the Charting Space, feed ML Bot's models, and ultimately consume the data within their trading strategies.", + "updated": 1622200769538 }, { "style": "Title", @@ -19,28 +19,28 @@ }, { "style": "Text", - "text": "All of the data inside the Superalgos system has an origin somewhere outside the system, usually somewhere at the Internet. There are currently 3 ways to bring data into the system:", - "updated": 1621899913780 + "text": "All of the data inside the Superalgos system has an origin somewhere outside the system, usually somewhere on the Internet. There are currently 3 ways to bring data into the system:", + "updated": 1622200785987 }, { "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 + "text": "By coding an Algorithm: with this method, users who have developer skills can extract data from any source imaginable. The way to do it is by implementing a new process within the already existing Sensor Bot. In other words, the sensor bot allows users to write code that extracts data from different places outside of the system. This method is ideal for when it is not possible to use 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": 1622201355726 }, { "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 runtime so that it can fetch data from APIs without needing the user to write a single line of code at all.", - "updated": 1621900116590 + "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 feed to an API Data Fetcher Bot at runtime. From there it can fetch data from APIs without needing the user to write a single line of code.", + "updated": 1622201515378 }, { "style": "List", - "text": "External processing: it is also possible to gather the data and process it outside the system, and put it in the right folder, with the right format, and in this way feed the system with data. This use case is not the most popular, but it is a valid possibility.", - "updated": 1621900136004 + "text": "External processing: it is also possible to gather data and process it outside the system. Once data has been processed in this manner, it can be put in the right folder, with the right format, and the system will pick it up from there. This use case is not the most popular, but it is a valid possibility.", + "updated": 1622201656015 }, { "style": "Text", - "text": "Once the data is in the system, it is then processed for different reasons by Indicator Bots. Some of the processed data might be plotted, some might feed machine learning bots, and some might be consumed by a Trading Strategy.", - "updated": 1622189233205 + "text": "Once data is within the system, it is then processed for different reasons by Indicator Bots. Some of the processed data might be plotted, some might feed machine learning bots, and some might be consumed by a Trading Strategy.", + "updated": 1622201764822 } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/data-mining-002-data-mining-workflows.json b/Projects/Superalgos/Schemas/Docs-Topics/data-mining-002-data-mining-workflows.json index 0acfab036..710043b95 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/data-mining-002-data-mining-workflows.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/data-mining-002-data-mining-workflows.json @@ -3,19 +3,19 @@ "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 + "text": "Superalgos enables users to setup powerful data mining operations. This page will introduce the workflows that are involved in data mining.", + "updated": 1622201830789 }, "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": 1622189344287 + "text": "In general, data flows from the Internet into the Superalgos system. Once inside, it is then processed and reprocessed and finally consumed by trading strategies.", + "updated": 1622201876819 }, { - "style": "Text", - "text": "As more users jump in and create more assets that they share with the community, the data mining capabilities of the system expands.", - "updated": 1622189375502 + "style": "Note", + "text": "As more users jump in to contribute and create more assets that they share with the community, the data mining capabilities of the system will expand.", + "updated": 1622201931367 }, { "style": "Title", @@ -27,18 +27,22 @@ }, { "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 by plotters and trading strategies).", - "updated": 1622189468973 + "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. ", + "updated": 1622202312743 + }, + { + "style": "Success", + "text": "Why? Because the data arrives in a format that is not standardized to be consumed by trading strategies or plotted at the charts just yet (except for Webhooks that record data in the Single-File Dataset type which can be consumed by plotters and trading strategies)." }, { "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 + "text": "API Data Fetcher Bot Workflow: Data arrives into the system through an 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": 1622202181798 }, { "style": "Note", - "text": "The data just arrived from an external source is considered Raw Data. Both of these 2 workflows produce Raw Data that has to be digested by Indicator Bots.", - "updated": 1621900437233 + "text": "The data arriving from an external source is considered Raw Data. Both of these 2 workflows produce Raw Data that has to be digested by Indicator Bots.", + "updated": 1622202291043 }, { "style": "Subtitle", @@ -51,13 +55,13 @@ }, { "style": "List", - "text": "Standardize Datasets: They are used for standardization of raw data extracted from the Internet by a Sensor Bot or an API Data Fetcher Bot. Once data is standardized, it can be run through other Indicator Bots that will extract the juice out of them. Once standardized, data can also be plotted and consumed by Trading Strategies. By standardizing 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-Time-Frame-Daily and Multi-Time-Frame-Market.", - "updated": 1622190462143 + "text": "Standardize Datasets: They are used for standardization of raw data extracted from the Internet by a Sensor Bot or an API Data Fetcher Bot. Once data is standardized, it can be run through other Indicator Bots that will extract the juice out of them. Once standardized, data can also be plotted and consumed by Trading Strategies. By standardizing, we are specifically referring to transforming the data into a Dataset type that can be used for plotting charts, or feeding Learning and Trading Bots. These Dataset types are Multi-Time-Frame-Daily and Multi-Time-Frame-Market.", + "updated": 1622203207179 }, { "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 standard 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 way they wish.", - "updated": 1622190245827 + "text": "Process Data: This means processing the data in any way that makes sense for users. Many users use Indicator Bots to calculate standard indicators, others calculate non-standard stuff, even ideas of what could be useful to extract from a certain dataset can be implemented. The system is open and allows users to do just that, play with the data by transforming it in any way they wish.", + "updated": 1622203469938 }, { "style": "Subtitle", @@ -66,12 +70,12 @@ }, { "style": "Text", - "text": "Plotters are tools for users, not for bots. Plotters will render at the charts informations of a Dataset based on the plotter's definitions. Plotters can only read data from certain Dataset types, you will learn which ones later at this Topic.", - "updated": 1622190504661 + "text": "Plotters are tools for users, not for bots. Plotters will render the information of a Dataset at the charts based on the plotter's definition. This allows users to visually discover patterns in datasets and generate ideas. These ideas can then help the user decide how to process the data further or feed the data to a Learning Bot or a Trading Bot.", + "updated": 1622203827359 }, { - "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": "Important", + "text": "Plotters can only read data from certain Dataset types, you will learn which ones later on in this Topic." }, { "style": "Subtitle", @@ -80,7 +84,8 @@ }, { "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." + "text": "Learning Bots have access to mined data which they use to train their AI Models. Once trained, these AI Models can be used by trading strategies to request predictions and act upon them.", + "updated": 1622204001242 }, { "style": "Subtitle", @@ -89,8 +94,8 @@ }, { "style": "Text", - "text": "Trading bots are the ultimate 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 it is easily accessible for trading strategies.", - "updated": 1622190585840 + "text": "Trading bots are the ultimate consumer of data. They use the data they receive to make trading decisions based on their definitions. The ultimate purpose of the whole Data Mining operation is to digest data so that it is easily accessible for trading strategies.", + "updated": 1622204325508 } ] } \ No newline at end of file diff --git a/Projects/Superalgos/Schemas/Docs-Topics/data-mining-003-data-mining-dataset-types.json b/Projects/Superalgos/Schemas/Docs-Topics/data-mining-003-data-mining-dataset-types.json index e58b9ae9e..f5530d64d 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/data-mining-003-data-mining-dataset-types.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/data-mining-003-data-mining-dataset-types.json @@ -3,8 +3,8 @@ "pageNumber": 3, "type": "Data Mining - Dataset Types", "definition": { - "text": "Superalgos organizes data in datasets. These datasets are standardized across the system in different types.", - "updated": 1622190798240 + "text": "Superalgos organizes data into datasets. These datasets are standardized across the system using different type definitions.", + "updated": 1622204454559 }, "paragraphs": [ { @@ -19,8 +19,13 @@ }, { "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 coming from Webhooks is stored at. It is stored in this way because it is 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 managing the incoming data in another type of Dataset. This Dataset type can be plotted and its data consumed by and within Trading Strategies. The API Data Fetcher Bot also can save Raw Data in this type of dataset, if needed.", - "updated": 1622190927687 + "text": "Single-File: As the name suggests, this Dataset consists of only one file containing all the data. This Dataset type can be plotted and its data consumed by and within Trading Strategies. The API Data Fetcher Bot can also save Raw Data in this type of dataset, if needed.", + "updated": 1622204763019 + }, + { + "style": "Note", + "text": "The Single-File Dataset type is not frequently used. Currently, it is the Dataset type used to store data coming from Webhooks. It is stored in this way because it is assumed that not a lot of data will come through this pipe, only signals produced by external systems. The Webhooks feature is expected to evolve in the future managing the incoming data in another type of Dataset.", + "updated": 1622204852370 }, { "style": "List", @@ -38,7 +43,7 @@ "updated": 1622191087786 }, { - "style": "Note", + "style": "Success", "text": "By far, the most popular Dataset Types are Multi-Time-Frame-Daily and Multi-Time-Frame-Market. " } ] diff --git a/Projects/Superalgos/Schemas/Docs-Topics/data-mining-004-data-mining-datasets-type-conversions.json b/Projects/Superalgos/Schemas/Docs-Topics/data-mining-004-data-mining-datasets-type-conversions.json index 7db981257..f4d947865 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/data-mining-004-data-mining-datasets-type-conversions.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/data-mining-004-data-mining-datasets-type-conversions.json @@ -3,14 +3,14 @@ "pageNumber": 4, "type": "Data Mining - Datasets Type Conversions", "definition": { - "text": "Processes fetching data from the Internet are optimized for accessing 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": 1622191231588 + "text": "Processes fetching data from the Internet are optimized for accessing 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 need to be done.", + "updated": 1622205220555 }, "paragraphs": [ { "style": "Text", - "text": "The type of conversions currently implemented into the system are:", - "updated": 1622191259939 + "text": "The type of conversions currently implemented within the system are:", + "updated": 1622205237120 }, { "style": "List", @@ -24,7 +24,8 @@ }, { "style": "Subtitle", - "text": "How to convert from one Dataset type to another" + "text": "How to Convert from One Dataset Type to Another", + "updated": 1622205287155 }, { "style": "Text", @@ -33,8 +34,8 @@ }, { "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 + "text": "Custom Code: Users can write code to handle the conversion in cases where the standard converter is not available for the type of conversion needed.", + "updated": 1622205316515 }, { "style": "List", @@ -43,8 +44,8 @@ }, { "style": "Subtitle", - "text": "Custom Code Exmaple", - "updated": 1621699475475 + "text": "Custom Code Example", + "updated": 1622205366974 }, { "style": "Text", @@ -53,7 +54,8 @@ }, { "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." + "text": "The reason this was implemented as custom code is because when it was needed there was no standard converter and it has not been migrated to the currently existing one.", + "updated": 1622205482848 }, { "style": "Subtitle", @@ -62,13 +64,13 @@ }, { "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-Time-Frame-Daily and Multi-Time-Frame-Market Dataset types. To use the converter, the bot's Process Definition nodes need to have at their config the framework of this converter.", - "updated": 1621901387602 + "text": "The Asset Metrics Indicator Bot, defined at the Messari Data Mine, uses the Standard Converter from One-Min-Daily Dataset type to Multi-Time-Frame-Daily and Multi-Time-Frame-Market Dataset types. In order to use the converter, the bot's Process Definition nodes needs to have a framework of the converter defined within its config.", + "updated": 1622205718679 }, { "style": "Text", - "text": "To convert to Multi-Time-Frame-Daily, set the framework name like in this example:", - "updated": 1621701835162 + "text": "To convert to Multi-Time-Frame-Daily, set the framework name as follows:", + "updated": 1622205768649 }, { "style": "Json", @@ -77,8 +79,8 @@ }, { "style": "Text", - "text": "To convert to Multi-Time-Frame-Market, set the framework name like in this example:", - "updated": 1621701845744 + "text": "To convert to Multi-Time-Frame-Market, set the framework name like this:", + "updated": 1622205804137 }, { "style": "Json", diff --git a/Projects/Superalgos/Schemas/Docs-Topics/data-mining-005-data-mining-indicator-frameworks.json b/Projects/Superalgos/Schemas/Docs-Topics/data-mining-005-data-mining-indicator-frameworks.json index fa1c0cb23..5c7140805 100644 --- a/Projects/Superalgos/Schemas/Docs-Topics/data-mining-005-data-mining-indicator-frameworks.json +++ b/Projects/Superalgos/Schemas/Docs-Topics/data-mining-005-data-mining-indicator-frameworks.json @@ -7,38 +7,33 @@ "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 manipulation. The trade off is that the user must be a developer.", - "updated": 1621902338195 - }, - { - "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 snippets, most of the time are very simple javascript code.", - "updated": 1622195430462 - }, - { - "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" + "text": "Types of Indicator Implementations", + "updated": 1622211317016 }, { "style": "List", "text": "Custom Code: This means the Indicator Bot will use custom made code to handle all data transformations.", "updated": 1621902418790 }, + { + "style": "Note", + "text": "When running custom code, users have full control of the process and there is no limit on what can be done in terms of data manipulation. The trade off is that the user must be a developer." + }, { "style": "List", - "text": "UI-Defined: This means that the Indictor Bot will base its behaviour on the definitions at the UI including the code snippets provided by the user.", - "updated": 1622195507610 + "text": "UI-Defined: This means that the Indictor Bot will base its behaviour on the definitions at the UI including available frameworks, as well as the code snippets provided by the user.", + "updated": 1622211583849 + }, + { + "style": "Note", + "text": "By running one of the available frameworks, an indicator can do powerful stuff while only leaving the task of writing a very tiny piece of code to do the data transformations. In this case the flexibility is reduced comparing to custom code, but ease of development is greatly increased.", + "updated": 1622211470919 + }, + { + "style": "Success", + "text": "You don't need to be a developer to write these code snippets, most of the time they are very simple javascript code." }, { "style": "Title", @@ -65,13 +60,13 @@ }, { "style": "Subtitle", - "text": "How to Implement them", - "updated": 1621711303350 + "text": "How to Implement Custom Code", + "updated": 1622212152208 }, { "style": "Text", - "text": "The way to implement a Custom Code Indicator tell the Bot 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": 1621902538119 + "text": "The way to implement a Custom Code Indicator is to set up the config for the Bot's Process Definition using the botModule property. This tells the bot that there will be custom code used for this Indicator. This is an example of what it should look like:", + "updated": 1622212134508 }, { "style": "Json", @@ -84,14 +79,14 @@ "updated": 1622195849390 }, { - "style": "Text", + "style": "Success", "text": "Most likely your new Bot will be added to the Superalgos project, so you should find the Project Schema File inside the Projects folder.", "updated": 1622196885148 }, { "style": "Text", - "text": "The definition to be added there should look something like this:", - "updated": 1621902599128 + "text": "The definition you will need to add in the Schema file should look something like this:", + "updated": 1622212304362 }, { "style": "Json", @@ -100,8 +95,8 @@ }, { "style": "Text", - "text": "After that you will need to add to the codebase a new Javascript module with your code.", - "updated": 1621902622372 + "text": "Finally, you will need to add a new Javascript module with your code to the codebase using the same file name you defined in the Schema file.", + "updated": 1622212386180 }, { "style": "Title", @@ -144,12 +139,13 @@ }, { "style": "Subtitle", - "text": "How to use those Frameworks", - "updated": 1621711329707 + "text": "How to Use an Indicator Framework", + "updated": 1622212547671 }, { "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. " + "text": "In order to use a framework at your Indicator Bot, all you need to do is specify the framework name at the Process Definition under the framework property.", + "updated": 1622212711775 }, { "style": "Text", @@ -163,8 +159,8 @@ }, { "style": "Text", - "text": "In this other example, the process will use the Multi-Time-Frame-Market framework.", - "updated": 1622197516426 + "text": "Here is an example using the Multi-Time-Frame-Market framework.", + "updated": 1622212639925 }, { "style": "Json",