diff --git a/.gitignore b/.gitignore
index 4498e42ac..73a11b47c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -111,5 +111,4 @@ target/
!config_examples/config_ftx.example.json
!config_examples/config_full.example.json
!config_examples/config_kraken.example.json
-!config_examples/config_freqai_futures.example.json
-!config_examples/config_freqai_spot.example.json
+!config_examples/config_freqai.example.json
diff --git a/config_examples/config_freqai_futures.example.json b/config_examples/config_freqai.example.json
similarity index 94%
rename from config_examples/config_freqai_futures.example.json
rename to config_examples/config_freqai.example.json
index 60e1cce82..e9fc50a4a 100644
--- a/config_examples/config_freqai_futures.example.json
+++ b/config_examples/config_freqai.example.json
@@ -57,8 +57,7 @@
"train_period_days": 15,
"backtest_period_days": 7,
"live_retrain_hours": 0,
- "identifier": "uniqe-id6",
- "live_trained_timestamp": 0,
+ "identifier": "uniqe-id",
"feature_parameters": {
"include_timeframes": [
"3m",
@@ -84,8 +83,7 @@
"random_state": 1
},
"model_training_parameters": {
- "n_estimators": 1000,
- "task_type": "CPU"
+ "n_estimators": 1000
}
},
"bot_name": "",
diff --git a/config_examples/config_freqai_spot.example.json b/config_examples/config_freqai_spot.example.json
deleted file mode 100644
index 1ea6ddecb..000000000
--- a/config_examples/config_freqai_spot.example.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "max_open_trades": 1,
- "stake_currency": "USDT",
- "stake_amount": 900,
- "tradable_balance_ratio": 1,
- "fiat_display_currency": "USD",
- "dry_run": true,
- "timeframe": "5m",
- "dry_run_wallet": 4000,
- "dataformat_ohlcv": "json",
- "cancel_open_orders_on_exit": true,
- "unfilledtimeout": {
- "entry": 10,
- "exit": 30
- },
- "exchange": {
- "name": "binance",
- "key": "",
- "secret": "",
- "ccxt_config": {
- "enableRateLimit": true
- },
- "ccxt_async_config": {
- "enableRateLimit": true,
- "rateLimit": 200
- },
- "pair_whitelist": [
- "BTC/USDT",
- "ETH/USDT"
- ],
- "pair_blacklist": []
- },
- "entry_pricing": {
- "price_side": "same",
- "use_order_book": true,
- "order_book_top": 1,
- "price_last_balance": 0.0,
- "check_depth_of_market": {
- "enabled": false,
- "bids_to_ask_delta": 1
- }
- },
- "exit_pricing": {
- "price_side": "other",
- "use_order_book": true,
- "order_book_top": 1
- },
- "pairlists": [
- {
- "method": "StaticPairList"
- }
- ],
- "freqai": {
- "startup_candles": 10000,
-
- "train_period_days": 30,
- "backtest_period_days": 7,
- "live_retrain_hours": 1,
- "identifier": "example",
- "live_trained_timestamp": 0,
- "feature_parameters": {
- "include_timeframes": [
- "5m",
- "15m",
- "4h"
- ],
- "include_corr_pairlist": [
- "BTC/USDT",
- "ETH/USDT"
- ],
- "label_period_candles": 500,
- "include_shifted_candles": 1,
- "DI_threshold": 0,
- "weight_factor": 0.9,
- "principal_component_analysis": false,
- "use_SVM_to_remove_outliers": false,
- "stratify_training_data": 0,
- "indicator_max_period_candles": 50,
- "indicator_periods_candles": [10, 20]
- },
- "data_split_parameters": {
- "test_size": 0.33,
- "random_state": 1
- },
- "model_training_parameters": {
- "n_estimators": 1000,
- "task_type": "CPU"
- }
- },
- "bot_name": "",
- "initial_state": "running",
- "forcebuy_enable": false,
- "internals": {
- "process_throttle_secs": 5
- }
-}
diff --git a/docs/freqai.md b/docs/freqai.md
index bffa12e5d..de321b787 100644
--- a/docs/freqai.md
+++ b/docs/freqai.md
@@ -60,7 +60,7 @@ pip install -r requirements-freqai.txt
An example strategy, an example prediction model, and example config can all be found in
`freqtrade/templates/FreqaiExampleStrategy.py`, `freqtrade/freqai/prediction_models/LightGBMPredictionModel.py`,
-`config_examples/config_freqai_futures.example.json`, respectively.
+`config_examples/config_freqai.example.json`, respectively.
Assuming the user has downloaded the necessary data, Freqai can be executed from these templates with:
@@ -98,7 +98,7 @@ Mandatory parameters are marked as **Required**, which means that they are requi
| `weight_factor` | Used to set weights for training data points according to their recency, see details and a figure of how it works [here](##controlling-the-model-learning-process).
**Datatype:** positive float (typically below 1).
| `principal_component_analysis` | Ask FreqAI to automatically reduce the dimensionality of the data set using PCA.
**Datatype:** boolean.
| `use_SVM_to_remove_outliers` | Ask FreqAI to train a support vector machine to detect and remove outliers from the training data set as well as from incoming data points.
**Datatype:** boolean.
-| `svm_nu` | The `nu` parameter for the support vector machine. *Very* broadly, this is the percentage of data points that should be considered outliers.
**Datatype:** float between 0 and 1.
+| `svm_params` | All parameters available in Sklearn's `SGDOneClassSVM()`. E.g. `nu` *Very* broadly, is the percentage of data points that should be considered outliers. `shuffle` is by default false to maintain reprodicibility. But these and all others can be added/changed in this dictionary.
**Datatype:** dictionary.
| `stratify_training_data` | This value is used to indicate the stratification of the data. e.g. 2 would set every 2nd data point into a separate dataset to be pulled from during training/testing.
**Datatype:** positive integer.
| `indicator_max_period_candles` | The maximum *period* used in `populate_any_indicators()` for indicator creation. FreqAI uses this information in combination with the maximum timeframe to calculate how many data points it should download so that the first data point does not have a NaN
**Datatype:** positive integer.
| `indicator_periods_candles` | A list of integers used to duplicate all indicators according to a set of periods and add them to the feature set.
**Datatype:** list of positive integers.
@@ -111,6 +111,9 @@ Mandatory parameters are marked as **Required**, which means that they are requi
| `n_estimators` | A common parameter among regressors which sets the number of boosted trees to fit
**Datatype:** integer.
| `learning_rate` | A common parameter among regressors which sets the boosting learning rate.
**Datatype:** float.
| `n_jobs`, `thread_count`, `task_type` | Different libraries use different parameter names to control the number of threads used for parallel processing or whether or not it is a `task_type` of `gpu` or `cpu`.
**Datatype:** float.
+| | **Extraneous parameters**
+| `keras` | If your model makes use of keras (typical of Tensorflow based prediction models), activate this flag so that the model save/loading follows keras standards. Default value `false`
**Datatype:** boolean.
+| `conv_width` | The width of a convolutional neural network input tensor. This replaces the need for `shift` by feeding in historical data points as the second dimension of the tensor. Technically, this parameter can also be used for regressors, but it only adds computational overhead and does not change the model training/prediction. Default value, 2
**Datatype:** integer.
### Important FreqAI dataframe key patterns
@@ -349,7 +352,7 @@ and adding this to the `train_period_days`. The units need to be in the base can
The freqai training/backtesting module can be executed with the following command:
```bash
-freqtrade backtesting --strategy FreqaiExampleStrategy --config config_freqai_futures.example.json --freqaimodel LightGBMPredictionModel --timerange 20210501-20210701
+freqtrade backtesting --strategy FreqaiExampleStrategy --config config_freqai.example.json --freqaimodel LightGBMPredictionModel --timerange 20210501-20210701
```
If this command has never been executed with the existing config file, then it will train a new model