ensure populate_any_indicators is identical for resused identifiers
This commit is contained in:
parent
14f8a1a2b3
commit
6040af513d
@ -430,6 +430,16 @@ class FreqaiDataDrawer:
|
|||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def load_metadata(self, dk: FreqaiDataKitchen) -> None:
|
||||||
|
"""
|
||||||
|
Load only metadata into datakitchen to increase performance during
|
||||||
|
presaved backtesting (prediction file loading).
|
||||||
|
"""
|
||||||
|
with open(dk.data_path / f"{dk.model_filename}_metadata.json", "r") as fp:
|
||||||
|
dk.data = json.load(fp)
|
||||||
|
dk.training_features_list = dk.data["training_features_list"]
|
||||||
|
dk.label_list = dk.data["label_list"]
|
||||||
|
|
||||||
def load_data(self, coin: str, dk: FreqaiDataKitchen) -> Any:
|
def load_data(self, coin: str, dk: FreqaiDataKitchen) -> Any:
|
||||||
"""
|
"""
|
||||||
loads all data required to make a prediction on a sub-train time range
|
loads all data required to make a prediction on a sub-train time range
|
||||||
|
@ -65,7 +65,7 @@ class IFreqaiModel(ABC):
|
|||||||
self.first = True
|
self.first = True
|
||||||
self.set_full_path()
|
self.set_full_path()
|
||||||
self.follow_mode: bool = self.freqai_info.get("follow_mode", False)
|
self.follow_mode: bool = self.freqai_info.get("follow_mode", False)
|
||||||
self.save_backtest_models: bool = self.freqai_info.get("save_backtest_models", False)
|
self.save_backtest_models: bool = self.freqai_info.get("save_backtest_models", True)
|
||||||
if self.save_backtest_models:
|
if self.save_backtest_models:
|
||||||
logger.info('Backtesting module configured to save all models.')
|
logger.info('Backtesting module configured to save all models.')
|
||||||
self.dd = FreqaiDataDrawer(Path(self.full_path), self.config, self.follow_mode)
|
self.dd = FreqaiDataDrawer(Path(self.full_path), self.config, self.follow_mode)
|
||||||
@ -273,6 +273,8 @@ class IFreqaiModel(ABC):
|
|||||||
dk.set_new_model_names(pair, trained_timestamp)
|
dk.set_new_model_names(pair, trained_timestamp)
|
||||||
|
|
||||||
if dk.check_if_backtest_prediction_exists():
|
if dk.check_if_backtest_prediction_exists():
|
||||||
|
self.dd.load_metadata(dk)
|
||||||
|
self.check_if_feature_list_matches_strategy(dataframe_train, dk)
|
||||||
append_df = dk.get_backtesting_prediction()
|
append_df = dk.get_backtesting_prediction()
|
||||||
dk.append_predictions(append_df)
|
dk.append_predictions(append_df)
|
||||||
else:
|
else:
|
||||||
@ -429,14 +431,16 @@ class IFreqaiModel(ABC):
|
|||||||
if "training_features_list_raw" in dk.data:
|
if "training_features_list_raw" in dk.data:
|
||||||
feature_list = dk.data["training_features_list_raw"]
|
feature_list = dk.data["training_features_list_raw"]
|
||||||
else:
|
else:
|
||||||
feature_list = dk.training_features_list
|
feature_list = dk.data['training_features_list']
|
||||||
if dk.training_features_list != feature_list:
|
if dk.training_features_list != feature_list:
|
||||||
raise OperationalException(
|
raise OperationalException(
|
||||||
"Trying to access pretrained model with `identifier` "
|
"Trying to access pretrained model with `identifier` "
|
||||||
"but found different features furnished by current strategy."
|
"but found different features furnished by current strategy."
|
||||||
"Change `identifier` to train from scratch, or ensure the"
|
"Change `identifier` to train from scratch, or ensure the"
|
||||||
"strategy is furnishing the same features as the pretrained"
|
"strategy is furnishing the same features as the pretrained"
|
||||||
"model"
|
"model. In case of --strategy-list, please be aware that FreqAI "
|
||||||
|
"requires all strategies to maintain identical "
|
||||||
|
"populate_any_indicator() functions"
|
||||||
)
|
)
|
||||||
|
|
||||||
def data_cleaning_train(self, dk: FreqaiDataKitchen) -> None:
|
def data_cleaning_train(self, dk: FreqaiDataKitchen) -> None:
|
||||||
|
Loading…
Reference in New Issue
Block a user