diff --git a/Superalgos.exe b/Superalgos.exe deleted file mode 100644 index 183257b13..000000000 Binary files a/Superalgos.exe and /dev/null differ diff --git a/docs/_data/A PENDING LIST.md b/docs/_data/A PENDING LIST.md new file mode 100644 index 000000000..3b9e5f7ef --- /dev/null +++ b/docs/_data/A PENDING LIST.md @@ -0,0 +1,11 @@ +ATOMIZE: + +Hierarchies tables, by segment. + +How to pages, create template. + +* Find each hierarchy. Create hierarchies map. +* Set up and exchange account. +* Set up an exchange account key. +* Set up an exchange account key instance. +* Expand and collapse data structures. \ No newline at end of file diff --git a/docs/_data/concepts.md b/docs/_data/concepts.md index fc701131f..0df3d5553 100644 --- a/docs/_data/concepts.md +++ b/docs/_data/concepts.md @@ -34,5 +34,9 @@ dataset: "A dataset is a collection of plain-text files storing information in t process: "A process is an algorithm defined in the process definition structure of nodes of the corresponding bot and data mine." +masters_data_mine: "Masters is a data mine shipping with the system. It features the main trading bot and sensor bot, along with indicators offering the following data products: Candles, Volumes, Candle Stairs Patterns, Volume Stairs Patterns, Bollinger Bands, Percentage Bandwidth, Bollinger Channels, and Bollinger Sub-Channels." + +sparta_data_mine: "Sparta is a data mine shipping with the system. It features indicators offering the following data products: Relative Strength Index (RSI 14), Simple Moving Average (SMA), Exponential Moving Average (EMA), and Moving Average Convergence/Divergence (MACD)." + pending: "balanceAssetA, balanceAssetB, overfitting, supported assets, supported exchanges, supported markets" diff --git a/docs/_data/concepts.yml b/docs/_data/concepts.yml index fc701131f..0df3d5553 100644 --- a/docs/_data/concepts.yml +++ b/docs/_data/concepts.yml @@ -34,5 +34,9 @@ dataset: "A dataset is a collection of plain-text files storing information in t process: "A process is an algorithm defined in the process definition structure of nodes of the corresponding bot and data mine." +masters_data_mine: "Masters is a data mine shipping with the system. It features the main trading bot and sensor bot, along with indicators offering the following data products: Candles, Volumes, Candle Stairs Patterns, Volume Stairs Patterns, Bollinger Bands, Percentage Bandwidth, Bollinger Channels, and Bollinger Sub-Channels." + +sparta_data_mine: "Sparta is a data mine shipping with the system. It features indicators offering the following data products: Relative Strength Index (RSI 14), Simple Moving Average (SMA), Exponential Moving Average (EMA), and Moving Average Convergence/Divergence (MACD)." + pending: "balanceAssetA, balanceAssetB, overfitting, supported assets, supported exchanges, supported markets" diff --git a/docs/_data/data_mine.md b/docs/_data/data_mine.md index 9bc305991..db0c65757 100644 --- a/docs/_data/data_mine.md +++ b/docs/_data/data_mine.md @@ -1,4 +1,4 @@ -data_mine: "A data mine is a hierarchy that contains definitions regarding bots, including the trading bot, sensors, indicators, and even plotters. These definitions make up the actual programs of such bots—the source code." +data_mine: "A data mine is a hierarchy that contains definitions of bots, including the trading bot, sensors, indicators, and even plotters. These definitions make up the actual programs of such bots—the source code." sensor_bot: "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." diff --git a/docs/_data/data_mine.yml b/docs/_data/data_mine.yml index 9bc305991..db0c65757 100644 --- a/docs/_data/data_mine.yml +++ b/docs/_data/data_mine.yml @@ -1,4 +1,4 @@ -data_mine: "A data mine is a hierarchy that contains definitions regarding bots, including the trading bot, sensors, indicators, and even plotters. These definitions make up the actual programs of such bots—the source code." +data_mine: "A data mine is a hierarchy that contains definitions of bots, including the trading bot, sensors, indicators, and even plotters. These definitions make up the actual programs of such bots—the source code." sensor_bot: "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." diff --git a/docs/_data/network.md b/docs/_data/network.md index d510a51d7..2798b8439 100644 --- a/docs/_data/network.md +++ b/docs/_data/network.md @@ -2,7 +2,7 @@ network: "The network hierarchy contains definitions regarding the physical loca network_node: "A network node represents a machine in the network on which processes run or data is stored." -data_mining: "Data mining is the activity of processing data. You need to process data so that the trading bot may make decisions based on quality information. In the context of the network hierarchy, the data-mining node groups the task managers handling sensor and indicator bots instances." +data_mining: "Data mining is the activity of processing data. You need to process data to feed charts, and so that the trading bot may make decisions based on quality information. In the context of the network hierarchy, the data-mining node groups the task managers handling sensor and indicator bots instances." testing_environment: "The testing environment node organizes trading sessions involving testing of trading systems." diff --git a/docs/_data/network.yml b/docs/_data/network.yml index d510a51d7..2798b8439 100644 --- a/docs/_data/network.yml +++ b/docs/_data/network.yml @@ -2,7 +2,7 @@ network: "The network hierarchy contains definitions regarding the physical loca network_node: "A network node represents a machine in the network on which processes run or data is stored." -data_mining: "Data mining is the activity of processing data. You need to process data so that the trading bot may make decisions based on quality information. In the context of the network hierarchy, the data-mining node groups the task managers handling sensor and indicator bots instances." +data_mining: "Data mining is the activity of processing data. You need to process data to feed charts, and so that the trading bot may make decisions based on quality information. In the context of the network hierarchy, the data-mining node groups the task managers handling sensor and indicator bots instances." testing_environment: "The testing environment node organizes trading sessions involving testing of trading systems." diff --git a/docs/_data/sidebars/suite_sidebar.yml b/docs/_data/sidebars/suite_sidebar.yml index 01fffb908..839bbd20f 100644 --- a/docs/_data/sidebars/suite_sidebar.yml +++ b/docs/_data/sidebars/suite_sidebar.yml @@ -56,14 +56,18 @@ entries: url: /suite-step-3.html output: web - - title: "Step 4: Quick overview" + - title: "Step 4: Import a workspace" url: /suite-step-4.html output: web - - title: "Step 5: Import a workspace" + - title: "Step 5: Quick overview" url: /suite-step-5.html output: web + - title: "Step 6: Pull and process data" + url: /suite-step-6.html + output: web + # - title: Run your first backtest # url: /suite-run-your-first-backtest.html # output: web diff --git a/docs/_includes/how_to/--------------------------------------------template.md b/docs/_includes/how_to/--------------------------------------------template.md new file mode 100644 index 000000000..c6f93a850 --- /dev/null +++ b/docs/_includes/how_to/--------------------------------------------template.md @@ -0,0 +1,77 @@ + + +{% assign title = "XXXXXXXXXXXXXXXX" %} +{% assign definition = site.data.concepts.XXXXXXXXXXXXXXXX %} +{% assign preposition = "XXXXXXXXXXXXXXXX" %} +{% assign plural = "s" %} + + + +{% if include.more == "yes" and include.heading == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.heading != "" and include.heading != "more" %} +{{include.heading}} {{title}} +{% endif %} + +{% if include.icon != "no" %} + +{% if include.table == "yes" and include.icon != "no" %} +
+{% endif %} + + + +{% if include.table == "yes" and include.icon != "no" %} + +{% endif %} + +{% endif %} + +{% if include.definition == "bold" %} +{{ definition }} +{% else %} +{% if include.definition != "no" %} +{{ definition }} +{% endif %} +{% endif %} + +{% if include.table == "yes" and include.icon != "no" %} +
+{% endif %} + +{% if include.more == "yes" and include.content == "more" and include.heading != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.content != "no" %} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" and include.extended == "more" and include.content != "more" and include.heading != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.extended != "no" %} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
+{% endif %} \ No newline at end of file diff --git a/docs/_includes/network/sensor-bot-instance.md b/docs/_includes/network/sensor-bot-instance.md index 34ca29f90..bfd12c6d5 100644 --- a/docs/_includes/network/sensor-bot-instance.md +++ b/docs/_includes/network/sensor-bot-instance.md @@ -90,7 +90,14 @@ Select *Configure Sensor Bot Instance* on the menu to access the configuration. } ``` -* ```startDate``` is the starting date of the data product the sensor bot instance builds. In other words, the sensor bot instance queries its data source for data starting on the configured ```startDate```. In cases when the sensor bot has built a data product starting on a certain date and the ```startDate``` is eventually changed for an earlier one, that is, a date further in the past, then the sensor bot discards the existing data product and starts over from the newly configured date. +* ```startDate``` is the *desired starting date* of the data product the sensor bot instance builds, in the ```YYYY-MM-DD``` format. The sensor bot instance queries its data source for data starting on the configured ```startDate```. + + * The actual date in which the dataset starts depends on external factors: A. The market may start at a later date. B. The exchange may limit how far in the past data may be retrieved. In both cases, the sensor bot automatically discovers the date closest to the *desired starting date* that is possible to start with, and proceeds accordingly. + + * In the case the ```startDate``` is changed after the sensor bot has started building a data product, either for an earlier or later date, the sensor re-evaluates the feasibility of starting at the new date. The actual date may or may not change; regardless, the sensor bot discards the existing data product and starts over from the newly discovered date. In other words, if the ```startDate``` is changed, the sensor bot starts over. + + * Notice that the above starts a chain reaction among all indicator bots that have a data dependency with the sensor bot's output dataset. Also, if the actual date ends up changing, all indicators that determine the starting date of the market by looking at the date discovered by the sensor bot have to discard their existing data products and start over from the new date. + diff --git a/docs/images/icons/12-collapse.png b/docs/images/icons/12-collapse.png new file mode 100644 index 000000000..e8ba7d3aa Binary files /dev/null and b/docs/images/icons/12-collapse.png differ diff --git a/docs/images/icons/12-expand.PNG b/docs/images/icons/12-expand.PNG new file mode 100644 index 000000000..114f1a7fc Binary files /dev/null and b/docs/images/icons/12-expand.PNG differ diff --git a/docs/pages/suite/suite-step-0.md b/docs/pages/suite/suite-step-0.md index 9aa3985bc..ef4fa659f 100644 --- a/docs/pages/suite/suite-step-0.md +++ b/docs/pages/suite/suite-step-0.md @@ -1,6 +1,6 @@ --- title: "Step 0: Get ready" -summary: Before you begin, please install Chrome. If you are on Mac OS or Linux, install Node JS too. +summary: Before you begin, please install Chrome and Node JS . sidebar: suite_sidebar permalink: suite-step-0.html toc: false @@ -8,13 +8,15 @@ toc: false This *Getting Started Guide* will quickly show you the very basics of Superalgos so that you may rapidly grasp the system's potential. The guide will take you through a sequence of instructions to download and install the system, run it for the first time, fetch some data from your preferred exchanges, browse markets on the charts, run a first backtest with an existing strategy, and even try a live trading session, for demonstration purposes. -But, before you begin, it is highly reccommended that you install Chrome and set it up as your default browser. +## Chrome is the Only Tested Browser + +Before you begin, it is highly reccommended that you install Chrome and set it up as your default browser. {% include note.html content="Use Chrome so that you have a similar environment as the dev team in case you need help. We are not testing on any other browsers, and it is a well-known fact that browsers behave differently." %} -## If You Are NOT on Windows +## Node JS is Required -If you are running Mac OS, Linux or other operating systems, you will need to install Node JS, an open-source server environment required to run Superalgos. +Please install Node JS, an open-source server environment required to run Superalgos. **1. Go to the Node JS downloads page**. diff --git a/docs/pages/suite/suite-step-1.md b/docs/pages/suite/suite-step-1.md index e8210d659..09bc6ce37 100644 --- a/docs/pages/suite/suite-step-1.md +++ b/docs/pages/suite/suite-step-1.md @@ -6,6 +6,8 @@ permalink: suite-step-1.html toc: false --- +## Start Here + **1. Go to the Superalgos repository** within the Superalgos organization in GitHub. **2. Click the green *Clone or download* button** on the right-hand side of the page. If you are a developer, feel free to clone the repository, otherwise, click the Download ZIP button. diff --git a/docs/pages/suite/suite-step-2.md b/docs/pages/suite/suite-step-2.md index 0015564f5..05233a76c 100644 --- a/docs/pages/suite/suite-step-2.md +++ b/docs/pages/suite/suite-step-2.md @@ -6,6 +6,8 @@ permalink: suite-step-2.html toc: false --- +## Start Here + **1. Go to the ```Superalgos-master``` folder** you extracted from the ZIP file on the prior step. **2. On Windows systems, double click on ```Superalgos.exe```** and skip points 3 and 4. diff --git a/docs/pages/suite/suite-step-4.md b/docs/pages/suite/suite-step-4.md index 974df5c01..08b97bb68 100644 --- a/docs/pages/suite/suite-step-4.md +++ b/docs/pages/suite/suite-step-4.md @@ -1,25 +1,19 @@ --- -title: Quick Overview -summary: The charting space on top features the charts, and the design space at the bottom features the control room of the system. +title: Import a Workspace +summary: Importing a workspace is a simple drag and drop operation. sidebar: suite_sidebar permalink: suite-step-4.html +toc: false --- -The first time you run the system, you see a screen split in half. The top half features the charting space and the bottom half features the design space. +The workspace is an important concept within Superalgos. It is the entity that holds all the information handled by the system. In practical terms, it is a file that can be backed up, shared, and restored in the system. -Use the control in the center of the turquoise bar to pull the slider up and down to make more room for either space. +For your convenience, the system ships with a default workspace containing a ready-to-use set-up. -You may also use the keyboard as follows: +## Start Here -1. Ctrl or ⌘ + Shift + ↑ to close the charting space and open the design space. -1. Ctrl or ⌘ + Shift + ↓ to close the design space and open the charting space. -1. Ctrl or ⌘ + Shift + → to incrementally lower the slider. -1. Ctrl or ⌘ + Shift + ← to incrementally raise the slider. +**1. Locate the file ```Share - My Workspace.json```** in the root of the ```Superalgos-master``` folder. -{% include tip.html content="Pulling the slider to the top of the screen causes the charting space to stop consuming resources and gives an ample view of the design space." %} +**2. Left-click on the file and drag it over the browser** where the system is running. You will notice the system recognizes your intent and pulls de slider up, showing the design space. -**The design space** is the place where you create. Think of the design space as the control room of the system. This is where you will control every aspect of your data, your trading strategies, your infrastructure, and the overall behavior of the system. - -{% include tip.html content="Pulling the slider to the bottom of the screen causes the design space to stop consuming resources and offers a full-screen view of the charting space." %} - -**The charting space** shows the charts, which feature market data, indicators, and—eventually—the actions of trading strategies. This is the section of the system in which you will monitor markets and analyze the progress and results of your strategies. +**3. Drop the workspace file on the design space** and wait for a few seconds. You should see a ring around the workspace icon, indicating the progress of the import action. Once the ring dissappears, the import operation is over an you are free to start using the system. \ No newline at end of file diff --git a/docs/pages/suite/suite-step-5.md b/docs/pages/suite/suite-step-5.md index 76ac26bb5..d4ea3357f 100644 --- a/docs/pages/suite/suite-step-5.md +++ b/docs/pages/suite/suite-step-5.md @@ -1,16 +1,27 @@ --- -title: Import a workspace -summary: Importing a workspace is a simple drag and drop operation. +title: Quick Overview +summary: The charting space on top features the charts, and the design space at the bottom features the control room of the system. sidebar: suite_sidebar permalink: suite-step-5.html --- -The workspace is a substantial concept within Superalgos. It is the entity that holds all the information handled by the system. In practical terms, it is a file that can be backed up, shared, and restored in the system. +The first time you run the system, you see a screen split in half. The top half features the charting space and the bottom half features the design space. -For your convenience, the system ships with a default workspace containing a ready-to-use set-up. +Use the control in the center of the turquoise bar to pull the slider up and down to make more room for either space. -**1. Locate the file ```Share - Default Workspace.json```** in the root of the ```Superalgos-master``` folder. +You may also use the keyboard as follows: -**2. Left-click on the file and drag it over the browser** where the system is running. You will notice the system recognizes your intent and pulls de slider up, showing the designer. +1. Ctrl or ⌘ + Shift + ↑ to close the charting space and open the design space. +1. Ctrl or ⌘ + Shift + ↓ to close the design space and open the charting space. +1. Ctrl or ⌘ + Shift + → to incrementally lower the slider. +1. Ctrl or ⌘ + Shift + ← to incrementally raise the slider. -**3. Drop the workspace file on the designer** and wait for a few seconds. You should see a ring around the workspace icon, indicating the progress of the import action. Once the ring dissappears, the import operation is over an you are free to start using the system. \ No newline at end of file +{% include important.html content="In the begining, the charting space shows empty charts. This is because you still haven't pulled any data from exchanges. The next steps will take care of that!" %} + +{% include tip.html content="Pulling the slider to the top of the screen causes the charting space to stop consuming resources and gives an ample view of the design space." %} + +**The design space** is the place where you create. Think of the design space as the control room of the system. This is where you will control every aspect of your data, your trading strategies, your infrastructure, and the overall behavior of the system. + +{% include tip.html content="Pulling the slider to the bottom of the screen causes the design space to stop consuming resources and offers a full-screen view of the charting space." %} + +**The charting space** shows the charts, which feature market data, indicators, and—eventually—the actions of trading strategies. This is the section of the system in which you will monitor markets and analyze the progress and results of your strategies. diff --git a/docs/pages/suite/suite-step-6.md b/docs/pages/suite/suite-step-6.md new file mode 100644 index 000000000..3f31d5ec4 --- /dev/null +++ b/docs/pages/suite/suite-step-6.md @@ -0,0 +1,67 @@ +--- +title: Pull Data from Exchanges and Process Indicators +summary: To pull data from exchanges, start the corresponding sensor bot tasks. To process indicators, start the associated indicator bot tasks. +sidebar: suite_sidebar +permalink: suite-step-6.html +toc: false +--- + +Superalgos puts you in control of the market data you will work with. To do that, the system uses a sensor bot to pull raw trades data from exchanges and store it in your machine. As the data starts flowing in, the system uses indicator bots to add value to the raw data by producing more ellaborate datasets in the form of candles, and all sorts of indicators. + +The sensor bot fetches data starting from a configurable date. Once it reaches the present time, it continues connecting to the exchange once per minute, pulling data in a live stream. Indicators process data in a similar fashion, and keep all your data up to date. + +Depending on how you intend to use Superalgos, you may want to pull data from as far back as exchanges are willing to give. Such may be the case if you wish to backtest strategies. + +On the other hand, if your interest lies in monitoring markets starting from the present time, then you most likely do not need historical data stretching that far in the past. + +{% include tip.html content="It is up to you to decide how much historic data you wish to pull, and which exchanges you wish to work with. Downloading a month's worth of market data from high transaction volume exchanges such as Bitmex or Binance may take 2 to 3 hours. The same period worth of data in low transaction volume exchanges such as Bitfinex may take 10 to 20 minutes. What follows are the instructions to configure a date and start pulling data from you preferred exchanges. You may always go back and do things differently." %} + +{% include important.html content="Bear in mind that Binance requires an API key to retrieve data. If your exchange of choice is Binance, then go to the exchange, log in to your account, and generate an API key. Have the public key and secret at hand before you start." %} + +## Start Here + +**1. Open the design space** by pulling the slider to the top of the screen. + +**2. Go to the network hierarchy**. If you are on Windows, the Ctrl + Alt + N key combination should take you there. Otherwise, imitate the actions on the below video until you find it. + +[IMAGE] + +**3. Hover the mouse over the network node**. This action expands the hierarchy.and click the {% include inline_image.html file="icons/12-expand.png" %} button on the menu**. + +**4. Follow the structure of nodes until you find the data mining node**. This is where sensor bot instances and indicator bot instances live and function. + +Notice how the hierarchy continues with several task managers. + +Each task manager has a label that starts with the words Masters or Sparta. Those are two data mines shipping with the system. The label continues with the name of the corresponding exchange and market. + +**5. Expand the task manager of your preferred exchange under the *Masters* label**. To do that, hover the mouse pointer over the select task manager and click the {% include inline_image.html file="icons/12-expand.png" %} button. + +Notice how the hierarchy continues with several tasks. There is one task per bot. The first one in a clock-wise direction corresponds to the sensor bot. + +**6. Select *Configure Bot instance* on the sensor bot menu**. A configuration bubble pops-up with the bot's configuration. + +**7. Enter the date you would like your datasets to start on**. Once the date has been edited, remove the mouse pointer from the bubble so that it closes and saves the configuration. To learn more about the implications of your choice for a starting date, click the link below. + +{% include /network/sensor-bot-instance.md heading="" icon="no" adding="" configuring="######" starting="" content="no" definition="no" table="no" more="yes"%} + +**8. If you chose to pull data from Binance, this is the time to configure your exchange key**. Click the link below to learn how. + +
Click to learn how to configure an exchange key + + +**1. Go to the crypto ecosystem hierarchy** and expand it. If you are on Windows, the Ctrl + Alt + E key combination should take you there. Otherwise, imitate the actions on the below video until you find it. + +[IMAGE] + +**2. Look for the exchange of choice** around the crypto exchanges node and expand it too. + +**3. Find the user keys node** below exchange accounts → user account. + +**4. Configure the exchange account key**. + +{% include /crypto_ecosystem/exchange-account-key.md heading="" icon="no" adding="" configuring="######" starting="" content="no" definition="no" table="no" more="no"%} + +
+ +**9. Go back to the task manager and click *Run All Tasks* on the menu**. This actions puts the sensor bot to run along with all Masters indicators. +