|
|
|
|
@ -1,6 +1,5 @@
|
|
|
|
|
import logging
|
|
|
|
|
from functools import reduce
|
|
|
|
|
from typing import Dict
|
|
|
|
|
|
|
|
|
|
import talib.abstract as ta
|
|
|
|
|
from pandas import DataFrame
|
|
|
|
|
@ -44,7 +43,7 @@ class freqai_test_multimodel_strat(IStrategy):
|
|
|
|
|
max_roi_time_long = IntParameter(0, 800, default=400, space="sell", optimize=False, load=True)
|
|
|
|
|
|
|
|
|
|
def feature_engineering_expand_all(
|
|
|
|
|
self, dataframe: DataFrame, period: int, metadata: Dict, **kwargs
|
|
|
|
|
self, dataframe: DataFrame, period: int, metadata: dict, **kwargs
|
|
|
|
|
):
|
|
|
|
|
dataframe["%-rsi-period"] = ta.RSI(dataframe, timeperiod=period)
|
|
|
|
|
dataframe["%-mfi-period"] = ta.MFI(dataframe, timeperiod=period)
|
|
|
|
|
@ -52,20 +51,20 @@ class freqai_test_multimodel_strat(IStrategy):
|
|
|
|
|
|
|
|
|
|
return dataframe
|
|
|
|
|
|
|
|
|
|
def feature_engineering_expand_basic(self, dataframe: DataFrame, metadata: Dict, **kwargs):
|
|
|
|
|
def feature_engineering_expand_basic(self, dataframe: DataFrame, metadata: dict, **kwargs):
|
|
|
|
|
dataframe["%-pct-change"] = dataframe["close"].pct_change()
|
|
|
|
|
dataframe["%-raw_volume"] = dataframe["volume"]
|
|
|
|
|
dataframe["%-raw_price"] = dataframe["close"]
|
|
|
|
|
|
|
|
|
|
return dataframe
|
|
|
|
|
|
|
|
|
|
def feature_engineering_standard(self, dataframe: DataFrame, metadata: Dict, **kwargs):
|
|
|
|
|
def feature_engineering_standard(self, dataframe: DataFrame, metadata: dict, **kwargs):
|
|
|
|
|
dataframe["%-day_of_week"] = dataframe["date"].dt.dayofweek
|
|
|
|
|
dataframe["%-hour_of_day"] = dataframe["date"].dt.hour
|
|
|
|
|
|
|
|
|
|
return dataframe
|
|
|
|
|
|
|
|
|
|
def set_freqai_targets(self, dataframe: DataFrame, metadata: Dict, **kwargs):
|
|
|
|
|
def set_freqai_targets(self, dataframe: DataFrame, metadata: dict, **kwargs):
|
|
|
|
|
dataframe["&-s_close"] = (
|
|
|
|
|
dataframe["close"]
|
|
|
|
|
.shift(-self.freqai_info["feature_parameters"]["label_period_candles"])
|
|
|
|
|
|