Skip to content

Commit 694f5eb

Browse files
committed
Add metadata support to backtest
1 parent 26eb448 commit 694f5eb

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

investing_algorithm_framework/app/app.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import os
44
import threading
55
from time import sleep
6-
from typing import List, Optional, Any
6+
from typing import List, Optional, Any, Dict
77

88
from flask import Flask
99

@@ -723,7 +723,8 @@ def run_backtest(
723723
snapshot_interval: SnapshotInterval = SnapshotInterval.TRADE_CLOSE,
724724
strategy_directory_path: Optional[str] = None,
725725
backtest_directory_name: Optional[str] = None,
726-
risk_free_rate: Optional[float] = None
726+
risk_free_rate: Optional[float] = None,
727+
metadata: Optional[Dict[str, str]] = None
727728
) -> Backtest:
728729
"""
729730
Run a backtest for an algorithm.
@@ -829,6 +830,7 @@ def run_backtest(
829830
risk_free_rate=risk_free_rate,
830831
strategy_directory_path=strategy_directory_path
831832
)
833+
backtest.metadata = metadata if metadata is not None else {}
832834

833835
if output_directory is None:
834836
output_directory = os.path.join(
@@ -856,7 +858,7 @@ def run_backtests(
856858
backtest_date_ranges: List[BacktestDateRange] = None,
857859
output_directory=None,
858860
checkpoint=False,
859-
save_strategy=False,
861+
860862
) -> List[BacktestReport]:
861863
"""
862864
Run a backtest for a set algorithm. This method should be called when

investing_algorithm_framework/domain/backtesting/backtest.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class Backtest:
3939
backtest_results: BacktestResult = field(default=None)
4040
strategy_related_paths: list[str] = field(default_factory=list)
4141
data_file_paths: list[str] = field(default_factory=list)
42-
meta_data: Dict[str, str] = field(default_factory=dict)
42+
metadata: Dict[str, str] = field(default_factory=dict)
4343
risk_free_rate: float = None
4444

4545
def to_dict(self) -> dict:
@@ -120,10 +120,10 @@ def open(directory_path: Union[str, Path]) -> 'Backtest':
120120
]
121121

122122
# Load metadata if available
123-
meta_file = os.path.join(directory_path, "meta.json")
123+
meta_file = os.path.join(directory_path, "metadata.json")
124124
if os.path.isfile(meta_file):
125125
with open(meta_file, 'r') as f:
126-
meta_data = json.load(f)
126+
metadata = json.load(f)
127127

128128
# Load risk-free rate if available
129129
risk_free_rate_file = os.path.join(
@@ -144,7 +144,7 @@ def open(directory_path: Union[str, Path]) -> 'Backtest':
144144
backtest_results=backtest_results,
145145
strategy_related_paths=strategy_related_paths,
146146
data_file_paths=data_file_paths,
147-
meta_data=meta_data,
147+
metadata=metadata,
148148
risk_free_rate=risk_free_rate
149149
)
150150

@@ -225,9 +225,9 @@ def save(self, directory_path: Union[str, Path]) -> None:
225225

226226
# Save metadata if available
227227
if self.meta_data:
228-
meta_file = os.path.join(directory_path, "meta.json")
228+
meta_file = os.path.join(directory_path, "metadata.json")
229229
with open(meta_file, 'w') as f:
230-
json.dump(self.meta_data, f, indent=4)
230+
json.dump(self.metadata, f, indent=4)
231231

232232
# Save risk-free rate if available
233233
if self.risk_free_rate is not None:

0 commit comments

Comments
 (0)