Merge pull request #7512 from freqtrade/add-data-hist-preds
add close price and date to `historic_predictions.pkl`
This commit is contained in:
		| @@ -257,7 +257,7 @@ class FreqaiDataDrawer: | |||||||
|  |  | ||||||
|     def append_model_predictions(self, pair: str, predictions: DataFrame, |     def append_model_predictions(self, pair: str, predictions: DataFrame, | ||||||
|                                  do_preds: NDArray[np.int_], |                                  do_preds: NDArray[np.int_], | ||||||
|                                  dk: FreqaiDataKitchen, len_df: int) -> None: |                                  dk: FreqaiDataKitchen, strat_df: DataFrame) -> None: | ||||||
|         """ |         """ | ||||||
|         Append model predictions to historic predictions dataframe, then set the |         Append model predictions to historic predictions dataframe, then set the | ||||||
|         strategy return dataframe to the tail of the historic predictions. The length of |         strategy return dataframe to the tail of the historic predictions. The length of | ||||||
| @@ -266,6 +266,7 @@ class FreqaiDataDrawer: | |||||||
|         historic predictions. |         historic predictions. | ||||||
|         """ |         """ | ||||||
|  |  | ||||||
|  |         len_df = len(strat_df) | ||||||
|         index = self.historic_predictions[pair].index[-1:] |         index = self.historic_predictions[pair].index[-1:] | ||||||
|         columns = self.historic_predictions[pair].columns |         columns = self.historic_predictions[pair].columns | ||||||
|  |  | ||||||
| @@ -293,6 +294,15 @@ class FreqaiDataDrawer: | |||||||
|             for return_str in rets: |             for return_str in rets: | ||||||
|                 df[return_str].iloc[-1] = rets[return_str] |                 df[return_str].iloc[-1] = rets[return_str] | ||||||
|  |  | ||||||
|  |         # this logic carries users between version without needing to | ||||||
|  |         # change their identifier | ||||||
|  |         if 'close_price' not in df.columns: | ||||||
|  |             df['close_price'] = np.nan | ||||||
|  |             df['date_pred'] = np.nan | ||||||
|  |  | ||||||
|  |         df['close_price'].iloc[-1] = strat_df['close'].iloc[-1] | ||||||
|  |         df['date_pred'].iloc[-1] = strat_df['date'].iloc[-1] | ||||||
|  |  | ||||||
|         self.model_return_values[pair] = df.tail(len_df).reset_index(drop=True) |         self.model_return_values[pair] = df.tail(len_df).reset_index(drop=True) | ||||||
|  |  | ||||||
|     def attach_return_values_to_return_dataframe( |     def attach_return_values_to_return_dataframe( | ||||||
|   | |||||||
| @@ -393,7 +393,7 @@ class IFreqaiModel(ABC): | |||||||
|             # allows FreqUI to show full return values. |             # allows FreqUI to show full return values. | ||||||
|             pred_df, do_preds = self.predict(dataframe, dk) |             pred_df, do_preds = self.predict(dataframe, dk) | ||||||
|             if pair not in self.dd.historic_predictions: |             if pair not in self.dd.historic_predictions: | ||||||
|                 self.set_initial_historic_predictions(pred_df, dk, pair) |                 self.set_initial_historic_predictions(pred_df, dk, pair, dataframe) | ||||||
|             self.dd.set_initial_return_values(pair, pred_df) |             self.dd.set_initial_return_values(pair, pred_df) | ||||||
|  |  | ||||||
|             dk.return_dataframe = self.dd.attach_return_values_to_return_dataframe(pair, dataframe) |             dk.return_dataframe = self.dd.attach_return_values_to_return_dataframe(pair, dataframe) | ||||||
| @@ -414,7 +414,7 @@ class IFreqaiModel(ABC): | |||||||
|  |  | ||||||
|         if self.freqai_info.get('fit_live_predictions_candles', 0) and self.live: |         if self.freqai_info.get('fit_live_predictions_candles', 0) and self.live: | ||||||
|             self.fit_live_predictions(dk, pair) |             self.fit_live_predictions(dk, pair) | ||||||
|         self.dd.append_model_predictions(pair, pred_df, do_preds, dk, len(dataframe)) |         self.dd.append_model_predictions(pair, pred_df, do_preds, dk, dataframe) | ||||||
|         dk.return_dataframe = self.dd.attach_return_values_to_return_dataframe(pair, dataframe) |         dk.return_dataframe = self.dd.attach_return_values_to_return_dataframe(pair, dataframe) | ||||||
|  |  | ||||||
|         return |         return | ||||||
| @@ -583,7 +583,7 @@ class IFreqaiModel(ABC): | |||||||
|             self.dd.purge_old_models() |             self.dd.purge_old_models() | ||||||
|  |  | ||||||
|     def set_initial_historic_predictions( |     def set_initial_historic_predictions( | ||||||
|         self, pred_df: DataFrame, dk: FreqaiDataKitchen, pair: str |         self, pred_df: DataFrame, dk: FreqaiDataKitchen, pair: str, strat_df: DataFrame | ||||||
|     ) -> None: |     ) -> None: | ||||||
|         """ |         """ | ||||||
|         This function is called only if the datadrawer failed to load an |         This function is called only if the datadrawer failed to load an | ||||||
| @@ -626,6 +626,9 @@ class IFreqaiModel(ABC): | |||||||
|         for return_str in dk.data['extra_returns_per_train']: |         for return_str in dk.data['extra_returns_per_train']: | ||||||
|             hist_preds_df[return_str] = 0 |             hist_preds_df[return_str] = 0 | ||||||
|  |  | ||||||
|  |         hist_preds_df['close_price'] = strat_df['close'] | ||||||
|  |         hist_preds_df['date_pred'] = strat_df['date'] | ||||||
|  |  | ||||||
|         # # for keras type models, the conv_window needs to be prepended so |         # # for keras type models, the conv_window needs to be prepended so | ||||||
|         # # viewing is correct in frequi |         # # viewing is correct in frequi | ||||||
|         if self.freqai_info.get('keras', False) or self.ft_params.get('inlier_metric_window', 0): |         if self.freqai_info.get('keras', False) or self.ft_params.get('inlier_metric_window', 0): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user