raise OperationalException if latest historical data candle is older than earliest dataprovider candle

This commit is contained in:
robcaulk 2023-02-21 21:23:58 +01:00
parent 3cbe51c3ca
commit 986bc63e54

View File

@ -627,12 +627,12 @@ class FreqaiDataDrawer:
for pair in dk.all_pairs: for pair in dk.all_pairs:
for tf in feat_params.get("include_timeframes"): for tf in feat_params.get("include_timeframes"):
hist_df = history_data[pair][tf]
# check if newest candle is already appended # check if newest candle is already appended
df_dp = strategy.dp.get_pair_dataframe(pair, tf) df_dp = strategy.dp.get_pair_dataframe(pair, tf)
if len(df_dp.index) == 0: if len(df_dp.index) == 0:
continue continue
if str(history_data[pair][tf].iloc[-1]["date"]) == str( if str(hist_df.iloc[-1]["date"]) == str(
df_dp.iloc[-1:]["date"].iloc[-1] df_dp.iloc[-1:]["date"].iloc[-1]
): ):
continue continue
@ -640,28 +640,30 @@ class FreqaiDataDrawer:
try: try:
index = ( index = (
df_dp.loc[ df_dp.loc[
df_dp["date"] == history_data[pair][tf].iloc[-1]["date"] df_dp["date"] == hist_df.iloc[-1]["date"]
].index[0] ].index[0]
+ 1 + 1
) )
except IndexError: except IndexError:
if history_data[pair][tf].iloc[-1]['date'] < df_dp['date'].iloc[0]: if hist_df.iloc[-1]['date'] < df_dp['date'].iloc[0]:
index = 0 raise OperationalException("In memory historical data is older than "
f"oldest DataProvider candle for {pair} on "
f"timeframe {tf}")
else: else:
index = -1 index = -1
logger.warning( logger.warning(
f"No common dates in historical data and dataprovider for {pair}. " f"No common dates in historical data and dataprovider for {pair}. "
f"Appending dataprovider to historical data (full? {not bool(index)})" f"Appending latest dataprovider candle to historical data "
"but please be aware that there is likely a gap in the historical " "but please be aware that there is likely a gap in the historical "
"data. \n" "data. \n"
f"Historical data ends at {history_data[pair][tf].iloc[-1]['date']} " f"Historical data ends at {hist_df.iloc[-1]['date']} "
f"while dataprovider starts at {df_dp['date'].iloc[0]} and" f"while dataprovider starts at {df_dp['date'].iloc[0]} and"
f"ends at {df_dp['date'].iloc[0]}." f"ends at {df_dp['date'].iloc[0]}."
) )
history_data[pair][tf] = pd.concat( hist_df = pd.concat(
[ [
history_data[pair][tf], hist_df,
df_dp.iloc[index:], df_dp.iloc[index:],
], ],
ignore_index=True, ignore_index=True,