fix: use more stable "date to ms" method
This commit is contained in:
@@ -308,7 +308,7 @@ def get_backtest_market_change(filename: Path, include_ts: bool = True) -> pd.Da
|
|||||||
else:
|
else:
|
||||||
df = pd.read_feather(filename)
|
df = pd.read_feather(filename)
|
||||||
if include_ts:
|
if include_ts:
|
||||||
df.loc[:, "__date_ts"] = df.loc[:, "date"].astype(np.int64) // 1000 // 1000
|
df.loc[:, "__date_ts"] = df.loc[:, "date"].dt.as_unit("ms").astype(np.int64)
|
||||||
return df
|
return df
|
||||||
|
|
||||||
|
|
||||||
@@ -326,7 +326,7 @@ def get_backtest_wallet_change(filename: Path, strategy_name: str) -> pd.DataFra
|
|||||||
data = load_file_from_zip(filename, f"{filename.stem}_{strategy_name}_wallet.feather")
|
data = load_file_from_zip(filename, f"{filename.stem}_{strategy_name}_wallet.feather")
|
||||||
df = pd.read_feather(BytesIO(data))
|
df = pd.read_feather(BytesIO(data))
|
||||||
|
|
||||||
df.loc[:, "__date_ts"] = df.loc[:, "date"].astype(np.int64) // 1000 // 1000
|
df.loc[:, "__date_ts"] = df.loc[:, "date"].dt.as_unit("ms").astype(np.int64)
|
||||||
return df
|
return df
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ class JsonDataHandler(IDataHandler):
|
|||||||
filename = self._pair_data_filename(self._datadir, pair, timeframe, candle_type)
|
filename = self._pair_data_filename(self._datadir, pair, timeframe, candle_type)
|
||||||
self.create_dir_if_needed(filename)
|
self.create_dir_if_needed(filename)
|
||||||
_data = data.copy()
|
_data = data.copy()
|
||||||
# Convert date to int
|
# Convert date to int (milliseconds)
|
||||||
_data["date"] = _data["date"].astype(np.int64) // 1000 // 1000
|
_data["date"] = _data["date"].dt.as_unit("ms").astype(np.int64)
|
||||||
|
|
||||||
# Reset index, select only appropriate columns and save as json
|
# Reset index, select only appropriate columns and save as json
|
||||||
_data.reset_index(drop=True).loc[:, self._columns].to_json(
|
_data.reset_index(drop=True).loc[:, self._columns].to_json(
|
||||||
|
|||||||
@@ -794,7 +794,7 @@ class RPC:
|
|||||||
results = read_sql("wallet_history", con=Trade.session.bind, parse_dates=["timestamp"])
|
results = read_sql("wallet_history", con=Trade.session.bind, parse_dates=["timestamp"])
|
||||||
|
|
||||||
results = results.rename({"timestamp": "date"}, axis=1)
|
results = results.rename({"timestamp": "date"}, axis=1)
|
||||||
results.loc[:, "__date_ts"] = results.loc[:, "date"].astype("int64") // 1000 // 1000
|
results.loc[:, "__date_ts"] = results.loc[:, "date"].dt.as_unit("ms").astype("int64")
|
||||||
# Exclude non-bot managed for now
|
# Exclude non-bot managed for now
|
||||||
results_filtered = results.loc[results["bot_managed"]]
|
results_filtered = results.loc[results["bot_managed"]]
|
||||||
|
|
||||||
@@ -1536,7 +1536,7 @@ class RPC:
|
|||||||
df_cols = [col for col in dataframe_columns if col in cols_set]
|
df_cols = [col for col in dataframe_columns if col in cols_set]
|
||||||
dataframe = dataframe.loc[:, df_cols]
|
dataframe = dataframe.loc[:, df_cols]
|
||||||
|
|
||||||
dataframe.loc[:, "__date_ts"] = dataframe.loc[:, "date"].astype(int64) // 1000 // 1000
|
dataframe.loc[:, "__date_ts"] = dataframe.loc[:, "date"].dt.as_unit("ms").astype(int64)
|
||||||
# Move signal close to separate column when signal for easy plotting
|
# Move signal close to separate column when signal for easy plotting
|
||||||
for sig_type in signals.keys():
|
for sig_type in signals.keys():
|
||||||
if sig_type in dataframe.columns:
|
if sig_type in dataframe.columns:
|
||||||
|
|||||||
+1
-1
@@ -207,7 +207,7 @@ def generate_test_data(
|
|||||||
def generate_test_data_raw(timeframe: str, size: int, start: str = "2020-07-05", random_seed=42):
|
def generate_test_data_raw(timeframe: str, size: int, start: str = "2020-07-05", random_seed=42):
|
||||||
"""Generates data in the ohlcv format used by ccxt"""
|
"""Generates data in the ohlcv format used by ccxt"""
|
||||||
df = generate_test_data(timeframe, size, start, random_seed)
|
df = generate_test_data(timeframe, size, start, random_seed)
|
||||||
df["date"] = df.loc[:, "date"].astype(np.int64) // 1000 // 1000
|
df["date"] = df.loc[:, "date"].dt.as_unit("ms").astype(np.int64)
|
||||||
return list(list(x) for x in zip(*(df[x].values.tolist() for x in df.columns), strict=False))
|
return list(list(x) for x in zip(*(df[x].values.tolist() for x in df.columns), strict=False))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user