Skip to content

Commit e308308

Browse files
committed
Fix last reported price on vector backtest run
1 parent d412a3d commit e308308

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

investing_algorithm_framework/services/backtesting/backtest_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,9 +375,9 @@ def create_vector_backtest(
375375
ohlcv = granular_ohlcv_data_order_by_symbol[
376376
f"{open_trade.target_symbol}/{trading_symbol}"
377377
]
378-
379378
try:
380379
price = ohlcv.loc[:ts, "Close"].iloc[-1]
380+
open_trade.last_reported_price = price
381381
except IndexError:
382382
continue # skip if no price yet
383383

investing_algorithm_framework/services/metrics/trades.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ def get_average_trade_return(trades: List[Trade]) -> Tuple[float, float]:
245245
average_return = total_return / len(closed_trades)
246246

247247
percentage_returns = [
248-
(t.net_gain / t.cost) * 100.0 for t in closed_trades if t.cost > 0
248+
(t.net_gain / t.cost) for t in closed_trades if t.cost > 0
249249
]
250250
average_return_percentage = (
251251
sum(percentage_returns) / len(percentage_returns)
@@ -278,7 +278,7 @@ def get_current_average_trade_return(
278278
average_return = total_return / len(trades)
279279

280280
percentage_returns = [
281-
(t.net_gain / t.cost) * 100.0 for t in trades if t.cost > 0
281+
(t.net_gain / t.cost) for t in trades if t.cost > 0
282282
]
283283
average_return_percentage = (
284284
sum(percentage_returns) / len(percentage_returns)
@@ -374,7 +374,7 @@ def get_average_trade_loss(trades: List[Trade]) -> Tuple[float, float]:
374374
losses = [t.net_gain for t in losing_trades]
375375
average_loss = sum(losses) / len(losses)
376376
percentage_returns = [
377-
(t.net_gain / t.cost) * 100.0 for t in losing_trades if t.cost > 0
377+
(t.net_gain / t.cost) for t in losing_trades if t.cost > 0
378378
]
379379
average_return_percentage = (
380380
sum(percentage_returns) / len(percentage_returns)
@@ -412,7 +412,7 @@ def get_current_average_trade_loss(
412412
losses = [t.net_gain for t in losing_trades]
413413
average_loss = sum(losses) / len(losses)
414414
percentage_returns = [
415-
(t.net_gain / t.cost) * 100.0 for t in losing_trades if t.cost > 0
415+
(t.net_gain / t.cost) for t in losing_trades if t.cost > 0
416416
]
417417
average_return_percentage = (
418418
sum(percentage_returns) / len(percentage_returns)

0 commit comments

Comments
 (0)