INNER CODE UNIT · Python
gross
initial-d/ml-quant-trading · src/mlquant/backtest/engine.py:82
gross = (w_lag * returns).sum(axis=1)
# Cost drag from rebalancing day t. The book starts flat, so the
# first row's weights are a full entry trade and are charged too.
delta = np.empty_like(weights)
delta[0] = np.abs(weights[0])
delta[1:] = np.abs(weights[1:] - weights[:-1])
cost = delta.sum(axis=1) * (costs_bps * 1e-4)
net = gross - cost
equity = np.cumprod(1.0 + net)
summary = {
"ann_return": metrics.annualised_return(net),
"ann_vol": metrics.annualised_vol(net),
"sharpe": metrics.sharpe_ratio(net),
"sortino": metrics.sortino_ratio(net),
"calmar": metrics.calmar_ratio(net),
"max_dd": metrics.max_drawdown(net),