mirror of
https://github.com/freqtrade/freqtrade.git
synced 2024-11-14 20:23:57 +00:00
68 lines
2.8 KiB
Markdown
68 lines
2.8 KiB
Markdown
|
# Using the `spice_rack`
|
||
|
|
||
|
The `spice_rack` is aimed at users who do not wish to deal with setting up `FreqAI` confgs, but instead prefer to interact with `FreqAI` similar to a `talib` indicator. In this case, the user can instead simply add two keys to their config:
|
||
|
|
||
|
```json
|
||
|
"freqai_spice_rack": true,
|
||
|
"freqai_identifier": "spicey-id",
|
||
|
```
|
||
|
|
||
|
Which tells `FreqAI` to set up a pre-set `FreqAI` instance automatically under the hood with preset parameters. Now the user can access a suite of custom `FreqAI` supercharged indicators inside their strategy:
|
||
|
|
||
|
```python
|
||
|
dataframe['dissimilarity_index'] = self.freqai.spice_rack(
|
||
|
'DI_values', dataframe, metadata, self)
|
||
|
dataframe['extrema'] = self.freqai.spice_rack(
|
||
|
'&s-extrema', dataframe, metadata, self)
|
||
|
self.freqai.close_spice_rack() # user must close the spicerack
|
||
|
```
|
||
|
|
||
|
Users can then use these columns, concert with all their own additional indicators added to `populate_indicators` in their entry/exit criteria and strategy callback methods the same way as any typical indicator (note: `spice_rack` indicators should not be used exclusively for entries and exits, the following example is just a demonstration of syntax. `spice_rack` indicators should **always** be used to support existing strategies). For example:
|
||
|
|
||
|
```python
|
||
|
def populate_entry_trend(self, df: DataFrame, metadata: dict) -> DataFrame:
|
||
|
|
||
|
df.loc[
|
||
|
(
|
||
|
(df['dissimilarity_index'] < 1) &
|
||
|
(df['extrema'] > 0.1)
|
||
|
),
|
||
|
'enter_long'] = 1
|
||
|
|
||
|
df.loc[
|
||
|
(
|
||
|
(df['dissimilarity_index'] < 1) &
|
||
|
(df['extrema'] <> -0.1)
|
||
|
),
|
||
|
'enter_short'] = 1
|
||
|
|
||
|
return df
|
||
|
|
||
|
def populate_exit_trend(self, df: DataFrame, metadata: dict) -> DataFrame:
|
||
|
|
||
|
df.loc[
|
||
|
(
|
||
|
(df['dissimilarity_index'] < 1) &
|
||
|
(df['extrema'] > 0.1)
|
||
|
),
|
||
|
|
||
|
'exit_long'] = 1
|
||
|
|
||
|
df.loc[
|
||
|
(
|
||
|
|
||
|
(df['dissimilarity_index'] < 1) &
|
||
|
(df['extrema'] < -0.1)
|
||
|
),
|
||
|
'exit_short'] = 1
|
||
|
|
||
|
return df
|
||
|
```
|
||
|
|
||
|
|
||
|
## Available indicators
|
||
|
|
||
|
| Parameter | Description |
|
||
|
|------------|-------------|
|
||
|
| `DI_values` | **Required.** <br> The dissimilarity index of the current candle to the recent candles. More information available [here](freqai-feature-engineering.md#identifying-outliers-with-the-dissimilarity-index-di) <br> **Datatype:** Floats.
|
||
|
| `extrema` | **Required.** <br> A continuous prediction from FreqAI which aims to help predict if the current candle is a maxima or a minma. FreqAI aims for 1 to be a maxima and -1 to be a minima - but the values should typically hover between -0.2 and 0.2. <br> **Datatype:** Floats.
|