Skip to content

Commit 627d396

Browse files
committed
Make backtest hashable
1 parent fa7c16d commit 627d396

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

investing_algorithm_framework/domain/backtesting/backtest.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,3 +427,13 @@ def add_permutation_test(
427427
to add.
428428
"""
429429
self.backtest_permutation_tests.append(permutation_test)
430+
431+
def __hash__(self):
432+
start_dates = [run.backtest_start_date for run in self.backtest_runs]
433+
end_dates = [run.backtest_end_date for run in self.backtest_runs]
434+
metadata_items = tuple(sorted(self.metadata.items()))
435+
return hash((
436+
tuple(sorted(start_dates)),
437+
tuple(sorted(end_dates)),
438+
metadata_items
439+
))

investing_algorithm_framework/domain/backtesting/backtest_run.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,10 @@ def save(self, directory_path: Union[str, Path]) -> None:
254254
data["backtest_end_date"] = self.backtest_end_date.strftime(
255255
"%Y-%m-%d %H:%M:%S"
256256
)
257+
258+
if self.created_at.tzinfo is None:
259+
self.created_at = self.created_at.replace(tzinfo=timezone.utc)
260+
257261
data["created_at"] = self.created_at.strftime(
258262
"%Y-%m-%d %H:%M:%S"
259263
)

0 commit comments

Comments
 (0)