github-actions
Sync from GitHub
2f1ce99
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,
}