Skip to content
All library documents

Calculating Weekly Strategy Returns with Trading Costs

Article Quant Q&A · Author: J. Johanson

Summary

The document explains how to measure out-of-sample performance for a strategy that refits its parameters weekly using the prior six months of daily data, then holds its positions for the week. It recommends calculating performance from portfolio net asset value (NAV) at the start and end of the holding period rather than summing daily returns as a substitute for the compounded result.

At each rebalance, estimate the model, determine target positions, net the required trades against current holdings, and calculate trading costs as a share of pre-trade NAV. The response says to account for those costs in the capital allocation: scale positions so their combined value and costs fit within available NAV, then execute. Recalculate NAV after the week and repeat. The document offers a process rather than empirical evidence; it does not specify a cost model, asset-price treatment, or details such as financing and dividends. Its central accounting point is that costs affect the capital invested and ending NAV, so they should not simply be subtracted from a separately summed weekly return.

Key ideas

  • Measure the holding-period return using ending NAV divided by starting NAV, minus one.
  • Recalculate target positions at each weekly model update and net them against current holdings to determine trades.
  • Express trading costs relative to pre-trade NAV and include them in the rebalance allocation.
  • Scale positions to fit available NAV after accounting for transaction costs.

Tags

Full text
# Out-of-sample performance


# Out-of-sample performance












I got a problem when calculating the out-of-sample performance of my model. I have the following settings:

- I have daily data.

- I use a rolling window of 1 week.

- I use the previous six months of data to estimate my model parameters.

Thus, the model parameters are estimated every week using the previous 6 month of data. Each time the parameters are estimated the investment control remains fixed for 1 week (I do not rebalance) until the parameters are next updated.

My question is: How do I calculate performance/return including transaction cost? When I have estimated the parameters and make a trade to rebalance at day 1, do I then need to

- Calculate the daily return of the portfolio in the 1 week window and sum it to get the return for the week.

- Compute the new positions from the new estimated parameters.

- Compute the total expected trading cost from step 2).

- Subtract the total expected trading cost from the portfolio return calculated in 1.

## Answer by milkmotel (score 1)

https://quant.stackexchange.com/a/31959

- Holding period return would be more appropriate. Calculate your one week return by using your ending portfolio NAV. The easiest way to do this would to be to store number of shares in each position and multiply by price after one week to obtain your new NAV.

- Yes.

- Yes.

- No, subtract it from your ending portfolio NAV. The process is as follows: Estimate parameters/train model Determine positions through model Calculate trades by netting new portfolio with current portfolio. Determine position sizes in terms of % of pre-trade NAV. Add trading costs as % of pre-trade NAV. The total sum of the pre-trade position sizes will now exceed 100%. Proportionally resize such that the new positions plus trading costs sum to 100%. Execute trades. Recalculate NAV at end of the week and restart.

Total period return minus trading costs is obviously $ \cfrac{{NAV}_{end}}{NAV_{start}}-1$. It's easier to keep everything in terms of NAV until you want to calculate a period return, since your trades will be calculated off of NAV.

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.