Skip to content

Commit 24c2ad1

Browse files
committed
Add number_of_trades_closed to BacktestSummaryMetrics
1 parent 3b765af commit 24c2ad1

File tree

2 files changed

+7
-15
lines changed

2 files changed

+7
-15
lines changed

investing_algorithm_framework/domain/backtesting/backtest_summary_metrics.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ class BacktestSummaryMetrics:
8383
win_rate: float = None
8484
win_loss_ratio: float = None
8585
number_of_trades: int = None
86+
number_of_trades_closed: int = None
8687
cumulative_exposure: float = None
8788
exposure_ratio: float = None
8889

@@ -124,6 +125,7 @@ def to_dict(self) -> dict:
124125
"win_rate": self.win_rate,
125126
"win_loss_ratio": self.win_loss_ratio,
126127
"number_of_trades": self.number_of_trades,
128+
"number_of_trades_closed": self.number_of_trades_closed,
127129
"cumulative_exposure": self.cumulative_exposure,
128130
"exposure_ratio": self.exposure_ratio,
129131
}

investing_algorithm_framework/domain/backtesting/combine_backtests.py

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,10 @@ def generate_backtest_summary_metrics(
192192
b.number_of_trades for b in backtest_metrics
193193
if b.number_of_trades is not None
194194
)
195+
number_of_trades_closed = sum(
196+
b.number_of_trades_closed for b in backtest_metrics
197+
if b.number_of_trades_closed is not None
198+
)
195199
cumulative_exposure = safe_weighted_mean(
196200
[b.cumulative_exposure for b in backtest_metrics],
197201
[b.total_number_of_days for b in backtest_metrics]
@@ -249,6 +253,7 @@ def generate_backtest_summary_metrics(
249253
win_rate=win_rate,
250254
win_loss_ratio=win_loss_ratio,
251255
number_of_trades=number_of_trades,
256+
number_of_trades_closed=number_of_trades_closed,
252257
cumulative_exposure=cumulative_exposure,
253258
exposure_ratio=exposure_ratio,
254259
average_trade_return=average_trade_return,
@@ -258,18 +263,3 @@ def generate_backtest_summary_metrics(
258263
average_trade_gain=average_trade_gain,
259264
average_trade_gain_percentage=average_trade_gain_percentage
260265
)
261-
262-
263-
def create_backtest_summary_metrics(
264-
backtest_metrics: List[BacktestMetrics]
265-
) -> BacktestSummaryMetrics:
266-
"""
267-
Create a combined BacktestSummaryMetrics from multiple backtests.
268-
269-
Args:
270-
backtest_metrics (List[BacktestMetrics]): List of BacktestMetrics
271-
instances.
272-
273-
Returns:
274-
BacktestSummaryMetrics: Combined summary metrics.
275-
"""

0 commit comments

Comments
 (0)