Modeling Rebalancing Frequency in Compounded Multi-Asset Backtests
Summary
A common quick backtest multiplies each day’s asset returns by lagged signals, combines the resulting returns across assets, and compounds the daily portfolio series into net asset value. This construction implicitly resets exposures as portfolio value changes, which amounts to daily rebalancing. That assumption can make a simulated strategy differ from one that trades less often.
For a monthly rebalanced portfolio, the answer recommends first compounding each asset’s returns separately over the month. Then calculate the portfolio’s monthly return as a weighted sum of those asset-level compounded returns, using the portfolio weights at the start of the month. Compound the resulting monthly portfolio returns to form the NAV series. Simply summing daily strategy returns within each month does not represent this procedure, because it does not preserve each asset’s within-period compounding under fixed starting weights. The discussion clarifies the rebalancing assumption, but does not cover transaction costs, changing signals within the month, or other implementation details that can affect real-world results.
Key ideas
- Applying signals to daily returns and compounding the combined series assumes daily portfolio rebalancing.
- To model less frequent trading, compound each asset’s returns separately over the holding period.
- Combine asset-level period returns using portfolio weights from the start of the period.
- Compound the resulting portfolio period returns to build the NAV series.
- Summing daily portfolio returns within a month does not model fixed starting weights with asset-level compounding.
Tags
Full text
# How to compute daily compounded backtest returns closer to real-world results?
# How to compute daily compounded backtest returns closer to real-world results?
I often run quick tests of trading strategies in my analytics suites by:
- multiplying a vector of signal (lagged, {-1,0,1}) with a time series of daily percentage returns
- doing a cumulative product of the resulting time series after adding 1 to each return
This is fairly standard but to be clear:
$$ \text{NAV}_i = \prod_{ j = 1 }^i (1 + r_j) $$
When I have many assets, I do the first step on each return series, then element-wise sum, and then the second step.
Having run such strategies with real money, I know that the implicit assumption that the portfolio will be rebalanced to constant exposure relative to each day's NAV is unrealistic.
What I would like to know is:
- Does anyone have any other issues with this approach for running backtests? Particularly for multi-underlying strategies?
- To "make" the strategy trade on a monthly basis, would it be sufficient to sum daily returns intra-month (so that there is one summed-up return for each month) and then do the cumulative product in step 2 on the series of these summed returns?
## Answer by SRKX (score 3)
https://quant.stackexchange.com/a/15315
If you do step 1 and step 2 every day, then you indeed assume that you rebalance the strategy every day.
If you want to assume differently, for example monthly, you need to first compound the returns for each asset separately during the whole month and then do a weighted sum of the compounded returns using the weights of each asset at the beginning of the period to get the overall period return, without the rebalancing assumption.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.