Spaces:
Running
Running
| def run_backtest(df, initial_capital, vol_target, lookback): | |
| import numpy as np | |
| import pandas as pd | |
| returns = df.pct_change().dropna() | |
| momentum = df.pct_change(lookback) | |
| weights = (momentum > 0).astype(int) | |
| weights = weights.div(weights.sum(axis=1), axis=0).fillna(0) | |
| strategy_returns = (weights.shift(1) * returns).sum(axis=1) | |
| equity_curve = (1 + strategy_returns).cumprod() * initial_capital | |
| return { | |
| "returns": strategy_returns, | |
| "equity_curve": equity_curve, | |
| } | |