INNER CODE UNIT · Python
equity
shashankvemuri/Finance · src/finance/backtesting/engine.py:211
equity = cash + shares @ close
if equity <= 0:
raise ValueError(f"account insolvent at {timestamp}; performance is undefined")
cash_rows.append(cash)
equity_rows.append(equity)
holding_rows.append(shares.copy())
equity = pd.Series(equity_rows, index=opens.index, name="equity")
cash_curve = pd.Series(cash_rows, index=opens.index, name="cash")
account_returns = equity.pct_change(fill_method=None)
account_returns.iloc[0] = equity.iloc[0] / initial_cash - 1
benchmark = pd.Series(
(initial_cash / opens.shape[1] / open_values[0]) @ close_values.T,
index=opens.index,
name="benchmark",
)
metrics = performance(account_returns, periods)
metrics["commissions"] = fees_total
metrics["borrow_costs"] = borrow_total