QM012 Hands-on Lab

Rolling Holding-Period Analysis

Objective

Construct overlapping rolling holding-period outcomes from one synthetic return path and separate endpoint growth from the path experienced inside a window.

Run

From the QM012 folder:

python labs/python/qm012_rolling_holding_periods.py

What to inspect

The script prints the number of rolling windows and median cumulative growth for 60-, 120-, 180-, and 240-period horizons, plus the maximum drawdown inside the first 60-period window.

  • Longer horizons leave fewer distinct start dates.
  • Adjacent rolling windows overlap heavily and therefore are not independent observations.
  • A favorable endpoint return can coexist with a difficult intra-window drawdown.

Experiment

Change the amplitude of the cyclical component in the synthetic return series or the sample length. Compare how the endpoint distribution and within-window drawdown respond. Do not read the number of overlapping windows as an effective independent sample size.

Interpretation boundary

This lab illustrates rolling-window mechanics only. It does not imply that longer holding periods are safer or that the synthetic horizon distribution describes any market.