add a developers guide

This commit is contained in:
robcaulk 2022-09-11 17:50:50 +02:00
parent 68a900a9b7
commit ede282392f
4 changed files with 30 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 KiB

View File

@ -130,7 +130,7 @@ The FreqAI strategy requires the user to include the following lines of code in
``` ```
Notice how the `populate_any_indicators()` is where the user adds their own features ([more information](freqai-feature_engineering.md#feature-engineering)) and labels ([more information](freqai-running.md#setting-classifier-targets)). See a full example at `templates/FreqaiExampleStrategy.py`. Notice how the `populate_any_indicators()` is where the user adds their own features ([more information](freqai-feature-engineering.md#feature-engineering)) and labels ([more information](freqai-running.md#setting-classifier-targets)). See a full example at `templates/FreqaiExampleStrategy.py`.
Another structure to consider is the location of the labels at the bottom of the example function (below `if set_generalized_indicators:`). This is where the user will add single features and labels to their feature set to avoid duplication of them from various configuration parameters that multiply the feature set, such as `include_timeframes`. Another structure to consider is the location of the labels at the bottom of the example function (below `if set_generalized_indicators:`). This is where the user will add single features and labels to their feature set to avoid duplication of them from various configuration parameters that multiply the feature set, such as `include_timeframes`.

28
docs/freqai-developers.md Normal file
View File

@ -0,0 +1,28 @@
# Development
The class structure and details algorithmic overview is depicted in the following diagram:
![image](assets/freqai_algorithm-diagram.jpg)
As shown, there are three distinct objects comprising `FreqAI`:
* IFreqaiModel
* Singular persistent object containing all the necessary logic to collect data, store data, process data, engineer features, run training, and inference models.
* FreqaiDataKitchen
* A non-persistent object which is created uniquely for each unique asset/model. Beyond metadata, it also contains a variety of data processing tools.
* FreqaiDataDrawer
* Singular persistent object containing all the historical predictions, models, and save/load methods.
There are a variety of built-in prediction models which inherit directly from `IFreqaiModel` including:
* CatboostRegressor
* CatboostRegressorMultiTarget
* CatboostClassifier
* LightGBMRegressor
* LightGBMRegressorMultiTarget
* LightGBMClassifier
* XGBoostRegressor
* XGBoostRegressorMultiTarget
* XGBoostClassifier
Each of these have full access to all methods in `IFreqaiModel`. And can therefore, override any of those functions at will. However, advanced users will likely stick to overriding `fit()`, `train()`, `predict()`, and `data_cleaning_train/predict()`.

View File

@ -29,6 +29,7 @@ nav:
- Feature engineering: freqai-feature-engineering.md - Feature engineering: freqai-feature-engineering.md
- Running: freqai-running.md - Running: freqai-running.md
- Data handling: freqai-data-handling.md - Data handling: freqai-data-handling.md
- Developer guide: freqai-developers.md
- Short / Leverage: leverage.md - Short / Leverage: leverage.md
- Utility Sub-commands: utils.md - Utility Sub-commands: utils.md
- Plotting: plotting.md - Plotting: plotting.md