As seen on Quantocracy
All research
Open in the lab
QuanterLab · Research

Hidden Markov Model Against the VIX on a Regime-Aware Factor Portfolio Comparison

How this study was run: the companies, the method, the dates
Universe · S&P 500 (point-in-time constituents)
Method · Comparative: Steered by the VIX vs Steered by the model
Manipulated variable ·
The thermometer, and nothing else. Both arms load the same point-in-time S&P 500, compute the same three factor families from the same SEC acceptedDate-gated filings - earnings yield, gross profitability, and 12-1 momentum with the skip - feed them into byte-identical composites whose manual sliders… (full registered statement)The thermometer, and nothing else. Both arms load the same point-in-time S&P 500, compute the same three factor families from the same SEC acceptedDate-gated filings - earnings yield, gross profitability, and 12-1 momentum with the skip - feed them into byte-identical composites whose manual sliders read 34/33/33, and place the SAME Regime Tilt radar over those sliders with the regime signal at 100 percent. Thirty highest-ranked names, equal weight, long only, quarterly re-selection, twenty registered one-year windows, both arms in total returns with ex-date dividends credited and ten basis points
Step size · 1 year per forward window
In-sample · 2 years before each anchor
Out-of-sample span · 2006-01-03 → 2025-12-31
Compiled · August 19, 2026
Search record · none (size unknown, see §2.3)
Abstract

Many investors change their mix of stocks with the market's mood. When the market is calm, they lean on the stocks that have been rising. When it turns choppy or stressed, they move toward profitable, cheaper companies, which they expect to hold up better. Investors call these moods regimes.

The hard part is telling which regime the market is in, and two ways are popular. The first is the VIX, often called Wall Street's fear gauge. It is one number, published every trading day, that rises when investors expect bigger price swings. Anyone can look it up for free. The second is a hidden Markov model, a statistical method that sorts the market's past days into a few hidden groups, from calm to stressed, using only their returns. It has to be fitted with data and code, and quants use it widely.

We wanted to know whether the fitted model tells the regime better than the free number. So we built one portfolio of S&P 500 stocks with fixed rules and ran it twice, once with each signal deciding the regime. Nothing else differed between the two runs. Every quarter, the portfolio scores each stock on how cheap it is, how profitable it is and how much it has risen over the past year. Investors call these value, quality and momentum. The regime sets how much each of the three scores counts. Then the portfolio buys the thirty stocks with the best scores, in equal amounts, and holds them until the next quarter. So the regime never decides how much money is invested. The portfolio is always fully in stocks and never holds cash. The regime only decides which thirty stocks it holds. We ran this one year at a time for twenty years, and each yearly test was written down and locked before it ran.

Next, we compared the two portfolios in three ways. We counted how often the two signals disagreed about the regime. We checked which portfolio did better in the quarters they disagreed. And we measured what each portfolio made over the twenty years, against the equal-weight S&P 500. That index simply holds every stock of the S&P 500 in equal amounts. Our portfolios hold their stocks in equal amounts too, so the comparison shows what the choosing added.

The two signals disagreed almost half of the time, and in those quarters neither portfolio was clearly better. Over the twenty years both portfolios beat the equal-weight S&P 500, and the model's portfolio finished a little ahead of the VIX's. Most of the model's lead came from two of the market's worst years, and a lead of that size can come from luck alone. For an investor who sets weights by the regime, the free VIX did nearly as well as the fitted model.

The equal-weight S&P 500 from January 2006 to December 2025: what $1 became each day, on a log scale. Under it, each signal's regime in each quarter: pale green for calm, amber for choppy, dark red for stressed. The bottom row marks the 39 quarters the two signals disagreed. In the other 41, the two portfolios held the same stocks.
Figure 1. The equal-weight S&P 500 from January 2006 to December 2025: what $1 became each day, on a log scale. Under it, each signal's regime in each quarter: pale green for calm, amber for choppy, dark red for stressed. The bottom row marks the 39 quarters the two signals disagreed. In the other 41, the two portfolios held the same stocks.

The rules, step by step

Both portfolios follow the same five rules. Only rule 2 differs between them.

The regime never decides how much money is invested. Both portfolios are always fully invested in stocks, never in cash, and every stock gets an equal share. The regime only decides which stocks are bought.

Every quarter, on the first trading day of January, April, July and October:

1. Take the stocks. All members of the S&P 500 on that day, as the index stood then, not as it stands today.

2. Decide the market's regime: calm, choppy or stressed. Here the two portfolios differ:

• With the VIX: its latest value below 16 means calm, 25 or above means stressed, and anything in between means choppy. These are the platform's default lines, the same in every study of this series. We never tuned them.

• With the hidden Markov model: take the daily returns of the S&P 500 over the last 1,500 calendar days, about four years. For each day, use its return over 1, 5 and 20 days. Fit a model that sorts those days into three hidden groups. The group with the best return for the least swing is calm, the worst is stressed, and the one in between is choppy. The regime is the group of the most recent day. The model is fitted again every quarter, with only the data up to that day.

3. Score each stock on three things, each ranked against all the other stocks of the S&P 500:

• value: earnings divided by price (cheaper ranks higher);

• quality: gross profit divided by total assets (more profitable ranks higher);

• momentum: the price change over the last twelve months, leaving out the latest month (a bigger rise ranks higher).

4. Combine the three ranks into one score, with the weights that the regime from rule 2 sets:

• calm: momentum 54%, quality 23%, value 23%;

• choppy: momentum 20%, quality 47%, value 33%;

• stressed: momentum 7%, quality 53%, value 40%.

These are the platform's default weights, the same as in the first paper of this series. We never tuned them. In a calm market the portfolio leans on the stocks that have been rising. In a choppy or stressed market it leans on profitable, cheap companies.

5. Buy the 30 stocks with the highest scores, in equal amounts, and hold them until the next quarter. Then start again from rule 1.

Around the rules: every trade pays 0.1%, and dividends are reinvested. We ran twenty one-year tests, 2006 to 2025, and each was written down and locked before it ran. When the two signals agree, the two portfolios hold the same 30 stocks. When they disagree, they hold different ones, and that is the only way the two can differ. Figure 1 shows what each signal said in each quarter, under the path of the equal-weight S&P 500.

What we found, in short

We ran the two portfolios side by side for twenty years, 80 quarters in all, and compared them quarter by quarter and year by year.

The two signals often read the market differently. They disagreed in 39 of the 80 quarters, almost half (Figure 1). Most disagreements were between calm and choppy. In the other 41 quarters they agreed, and the two portfolios held the same stocks.

When the signals disagreed, the model's portfolio did better 19 times and the VIX's 20 times. So in the quarters where the choice of signal mattered, neither signal was clearly better.

Over the twenty years, $1 became $8.26 in the portfolio steered by the model and $7.19 in the one steered by the VIX. The equal-weight S&P 500 turned $1 into $6.56. So both portfolios beat it: the model's by 1.3 points a year, the VIX's by 0.5.

Figure 2 shows that they were not ahead all the time. Both pulled ahead of the equal-weight S&P 500 in 2008. In 2009 both signals still said stressed for the first half, so both portfolios held profitable, cheap companies. The equal-weight S&P 500 rose 44.6% that year, far more than either. Both stayed behind it for most of the 2010s. In 2024 both signals said calm for three quarters, so both portfolios leaned on the stocks that had been rising. Those kept rising: the model's portfolio made 27.7% and the VIX's 24.3%, against 12.8%.

Both portfolios are always fully invested, so the only difference between them is which stocks they hold. Figure 3 shows the gap between them. It moved only while they held different stocks, and a few quarters moved it the most.

In 2008 the model said the market was stressed from April. The VIX said so only from October. For those six months both portfolios leaned on quality and value, but the model's gave momentum 7% of the score, against 20% in the VIX's. Over the year it lost 28.1%, against 31.8% for the VIX's portfolio and 40.1% for the equal-weight S&P 500.

In 2017 the VIX said calm in every quarter. The model said choppy from April, so its portfolio leaned on quality. That year the model's portfolio made 5.9 points more than the VIX's.

In 2022 the model said calm in January and in April, while stocks were falling. Calm meant more momentum, and in early 2022 the stocks with momentum were oil and gas companies, the year's winners. The model's portfolio lost 8.8%, against 13.2% for the VIX's. The model got the market wrong and still won the year.

Leave out 2008 and 2022, and the two portfolios finish a quarter of a point a year apart. Leave out the VIX's two best years, 2013 and 2016, instead, and the model's lead grows to 1.25 points a year. And if a coin had decided each disagreement, a lead as large as the model's would turn up about one time in four.

So the fitted model did not read the market better than the free number. For an investor who sets weights by the regime, the VIX did nearly as well. And both portfolios beat the equal-weight S&P 500, which holds the same kind of stocks without any choosing.

What $1 became each day from January 2006 to December 2025 in the portfolio steered by the model, the portfolio steered by the VIX and the equal-weight S&P 500. The scale is logarithmic, so the same percentage gain looks the same size at any level. Dividends are included and every trade pays 0.1%. The shaded years are 2008 and 2022.
Figure 2. What $1 became each day from January 2006 to December 2025 in the portfolio steered by the model, the portfolio steered by the VIX and the equal-weight S&P 500. The scale is logarithmic, so the same percentage gain looks the same size at any level. Dividends are included and every trade pays 0.1%. The shaded years are 2008 and 2022.
How far the model's portfolio was ahead of the VIX's on each day, in percent. Shaded: the quarters the two signals disagreed, when the two portfolios held different stocks. Outside them the line stays flat, because both held the same stocks. The model's portfolio ended 14.9% ahead.
Figure 3. How far the model's portfolio was ahead of the VIX's on each day, in percent. Shaded: the quarters the two signals disagreed, when the two portfolios held different stocks. Outside them the line stays flat, because both held the same stocks. The model's portfolio ended 14.9% ahead.
1  Methodology, in detail (click to open)

1  Methodology

The stocks. The S&P 500 as its members stood on each day the stocks are chosen. Every member with a price history in our data is included. Value is earnings to price, from fundamentals as first reported; quality is gross profits to total assets; momentum is the return over the last twelve months, leaving out the most recent month. Earnings and gross profit count only from the day the company's filing was accepted by the SEC, so no choice could see a number before it was published. Each family ranks the members against each other, the three ranks are combined into one score with the regime's weights, and the 30 highest scores are bought in equal parts. In 14 of the 160 quarterly choices a portfolio held 29 stocks instead of 30. Every quarter, in January, April, July and October, the portfolio is chosen again from the start.

The regimes. On each of those days both signals read the market with only the data up to that day. The VIX's regime is its latest level against the lines at 16 and 25. The model's regime is the state of the latest day after fitting a three-state Gaussian hidden Markov model on SPY's returns over one, five and twenty days, for the last 1,500 calendar days. The states are named by their average return against their swing. The model is fitted again every quarter, and it also says how sure it is. The record of each yearly test keeps only the first regime of each signal. We computed all 80 again with the same code and the same settings, and all 40 kept first ones match ours.

The test. Twenty one-year tests, January 2006 to December 2025, each written down and locked before it ran. Dividends are reinvested and every trade pays 0.1% of its value. Each yearly test starts in cash and buys its first stocks at its first close, paying 0.1%. Joined end to end, the years would miss each year's first trading day, so we give that day the stocks held at the previous year's last choice, as in our recent papers. Joined this way, both portfolios were fully invested on every day of the twenty years, with an equal share in every stock. The VIX-steered portfolio here is the regime-aware portfolio of our first paper in this series.

The yardstick. The equal-weight S&P 500 holds every stock of the index in equal amounts, as our portfolios hold theirs, but without any choosing. We measure it with RSP, a fund that does this, with dividends reinvested, over the same days: from the first close of 2006 to the last close of 2025.

The quarters. A quarter's return runs from the last close before its first trading day to its own last close; January's includes the year's first purchase. The four quarters of every year multiply to that year's return. In a quarter the two signals agreed, the two portfolios held the same stocks. Their returns still differ a little, at most 1.1 points, because on the quarter's first day each still held its previous stocks, and the two paid different costs to switch.

The chance test. For each quarter the signals disagreed, we took the difference between the two portfolios and flipped its sign at random, as if a coin had decided which signal won. We did this 400,000 times. In 25% of them, the flipped differences added up to at least the model's real lead.

2  Results

Findings

The regimes (Figure 1). The VIX said calm in 31 quarters, choppy in 36 and stressed in 13. The model said calm in 36, choppy in 32 and stressed in 12. Over twenty years they saw about the same market, but not at the same time: they disagreed in 39 quarters, almost half.

Most disagreements were between calm and choppy. The VIX said choppy and the model calm 15 times, and the other way round 11 times. In those quarters one portfolio leans on momentum and the other on quality. The model's portfolio did better in 7 of the first 15 and in 5 of the other 11.

Where the two disagreed, the model's portfolio did better 19 times and the VIX's 20 times, one of them by a hundredth of a point, in July 2007. The model's wins were a little larger. Together the disagreements add 10.4 points over the 39 quarters, about half a point a year. If a coin had decided each disagreement, a lead that large or larger would turn up about one time in four.

The model was rarely in doubt. In 28 of the 39 quarters it disagreed with the VIX, it was at least 95% sure of its regime, and its portfolio did better in 15 of those.

The money (Figure 2). $1 became $8.26 steered by the model, $7.19 steered by the VIX and $6.56 in the equal-weight S&P 500. Both portfolios beat the equal-weight S&P 500 over the twenty years, the model's by 1.3 points a year and the VIX's by 0.5. Year by year, the model's portfolio beat it in 10 years and the VIX's in 9.

Not ahead all the time (Figure 2). Both portfolios were ahead of the equal-weight S&P 500 after 2008 and behind it after 2010. The model's portfolio was ahead again at the end of every year from 2018. The VIX's was behind at the end of every year from 2009 to 2023, and got ahead only in 2024.

The worst fall. For all three, the worst fall from a high came in 2008 and early 2009, and all three hit bottom on 9 March 2009. From its high, the model's portfolio fell 50%. The VIX's portfolio fell 54%, and the equal-weight S&P 500 fell 60%.

The years. The model's portfolio was ahead of the VIX's in 8 years and behind it in 10. In 2014 and 2019 the two signals agreed all year, and the two portfolios ended the year the same. The model's best years against the VIX were 2017 (+5.9 points), 2009 (+4.7) and 2022 (+4.4). The VIX's best were 2013 (+4.8) and 2016 (+3.5).

The two worst years. The model's calls before 2008 were mixed. It said the market was calm in October 2007, the month the market peaked, and its portfolio still did better that quarter. From April 2008 it said the market was stressed; the VIX said so from October. In those two quarters both portfolios leaned on quality and value, but the model's gave momentum 7% of the score, against 20% in the VIX's. Over the year it lost 28.1%, against 31.8% for the VIX's portfolio and 40.1% for the equal-weight S&P 500.

In 2022 the model said the market was calm in January, the month the market peaked, and again in April, as stocks fell. Calm meant more momentum, and in early 2022 momentum meant oil and gas companies, the year's winners. The model's portfolio lost 8.8%, against 13.2% for the VIX's and 11.6% for the equal-weight S&P 500.

The fall of early 2020 does not show in the test. Both signals said calm in January 2020 and stressed in April, after the bottom. So the two portfolios held the same stocks through it.

Without the two worst years. Leave out 2008 and 2022, and the model's portfolio made 15.1% a year and the VIX's made 14.9%, a quarter of a point apart. Leave out the model's two best years against the VIX, 2017 and 2009, and the lead is 0.33 points a year. Leave out the VIX's two best years, 2013 and 2016, and it is 1.25 points. So the size of the lead depends on a few years. The coin test above treats both sides alike. 2017 was one of the calmest years the VIX has ever recorded: the VIX said calm in every quarter, and the model said choppy from April.

Two quarters. The model's two best quarters against the VIX were October 2017 (+6.1 points) and October 2009 (+5.1). Together they added 11.1 points, more than the 10.4 points of all 39 disagreements added together.

2.1  Headline

Steered by the VIX, Sharpe
0.55
day by day, every year the test ran, 2006 to 2025
Steered by the model, Sharpe
0.57
day by day, every year the test ran, 2006 to 2025
RSP, Sharpe
0.54
the same days, stitched across the windows
The result
From 2006 to 2025, the portfolio steered by the model made 11.1% a year and the one steered by the VIX made 10.4%. The equal-weight S&P 500 made 9.9% a year. The two signals disagreed in 39 of 80 quarters. In those quarters the model's portfolio did better 19 times and the VIX's 20 times.

Table 1. Each year from 2006 to 2015: its return, dividends included; every trade pays 0.1%. Each year runs from the last close of the year before, so it includes the year's first trading day; 2006 starts at its first close. Model minus VIX is the difference in percentage points of the year's return, worked out before rounding, so it can differ by a tenth from the two columns.

YearSteered by the modelSteered by the VIXModel minus VIX (points)Equal-weight S&P 500Quarters the two disagreed
20069.9%9.5%+0.413.5%2 of 4
20074.0%0.8%+3.20.9%2 of 4
2008−28.1%−31.8%+3.7−40.1%2 of 4
200929.5%24.8%+4.744.6%2 of 4
20109.2%10.6%−1.421.5%4 of 4
2011−3.3%−0.7%−2.60.2%3 of 4
201216.8%17.1%−0.318.5%2 of 4
201336.5%41.3%−4.836.7%2 of 4
201424.9%24.9%015.1%0 of 4
2015−4.1%−3.5%−0.5−1.7%2 of 4

Table 2. Each year from 2016 to 2025: its return, dividends included; every trade pays 0.1%. Each year runs from the last close of the year before, so it includes the year's first trading day; 2006 starts at its first close. Model minus VIX is the difference in percentage points of the year's return, worked out before rounding, so it can differ by a tenth from the two columns.

YearSteered by the modelSteered by the VIXModel minus VIX (points)Equal-weight S&P 500Quarters the two disagreed
20166.7%10.2%−3.514.5%3 of 4
201725.7%19.8%+5.918.5%3 of 4
2018−1.0%−2.9%+1.9−7.8%2 of 4
201926.5%26.5%028.9%0 of 4
202017.5%17.9%−0.412.7%2 of 4
202124.8%25.2%−0.429.4%2 of 4
2022−8.8%−13.2%+4.4−11.6%3 of 4
202317.0%17.3%−0.313.7%1 of 4
202427.7%24.3%+3.412.8%1 of 4
202514.7%15.5%−0.811.2%1 of 4
A year, 2006 to 202511.1%10.4%+0.89.9%39 of 80
$1 became$8.26$7.19$6.56

Table 3. The two signals' regimes on each day the stocks were chosen, 2006 to 2015, the VIX's first. A star marks a quarter they disagreed.

YearJanuaryAprilJulyOctober
2006calm choppy *calm calmcalm choppy *calm calm
2007calm calmcalm calmchoppy stressed *choppy calm *
2008choppy choppychoppy stressed *choppy stressed *stressed stressed
2009stressed stressedstressed stressedstressed choppy *stressed calm *
2010choppy calm *choppy calm *stressed choppy *choppy calm *
2011choppy calm *choppy calm *calm calmstressed choppy *
2012choppy calm *calm calmchoppy choppychoppy calm *
2013choppy choppycalm calmchoppy stressed *calm choppy *
2014calm calmcalm calmcalm calmchoppy choppy
2015choppy calm *calm choppy *choppy choppychoppy choppy

Table 4. The two signals' regimes on each day the stocks were chosen, 2016 to 2025, the VIX's first. A star marks a quarter they disagreed.

YearJanuaryAprilJulyOctober
2016choppy stressed *calm calmcalm choppy *calm choppy *
2017calm calmcalm choppy *calm choppy *calm choppy *
2018calm choppy *choppy choppychoppy choppycalm choppy *
2019stressed stressedcalm calmcalm calmchoppy choppy
2020calm calmstressed stressedstressed choppy *stressed choppy *
2021choppy calm *choppy calm *calm calmchoppy choppy
2022choppy calm *choppy calm *stressed choppy *stressed stressed
2023choppy choppychoppy calm *calm calmchoppy choppy
2024calm calmcalm calmcalm calmchoppy calm *
2025choppy choppychoppy stressed *choppy choppychoppy choppy

Table 5. Each quarter the two signals disagreed, grouped by what each said.

The VIX saidThe model saidQuartersThe model's portfolio betterThe VIX's portfolio betterAverage, model minus VIX (points)
choppycalm1578+0.2
calmchoppy1156−0.3
choppystressed633+0.7
stressedchoppy633+0.2
stressedcalm110+5.1
All disagreements391920+0.3

Table 6. How much each factor family counts in the score, in each regime.

The regimeMomentumQualityValue
calm54%23%23%
choppy20%47%33%
stressed7%53%40%
Sections 2.2 to 4, the full record: every year, every test, and how each one was run (click to open)

The registration names the two groups compared VIX threshold and Fitted HMM; this paper calls them Steered by the VIX and Steered by the model.

2.2  Per-step results

Table 7. One row per step, raw out-of-sample results. A short window can pair a negative return with a positive annualised Sharpe: at high daily volatility the arithmetic mean of daily returns sits above the compounded window return, and the Sharpe reads the former. Volatility drag, printed rather than smoothed.
#Out-of-sample window Steered by the VIX SR Steered by the model SR
1 2006-01-03 → 2006-12-29 0.60 0.68
2 2007-01-03 → 2007-12-31 0.17 0.33
3 2008-01-02 → 2008-12-31 -0.68 -0.55
4 2009-01-02 → 2009-12-31 0.77 0.90
5 2010-01-04 → 2010-12-31 0.55 0.40
6 2011-01-03 → 2011-12-30 0.09 -0.03
7 2012-01-03 → 2012-12-31 1.10 1.05
8 2013-01-02 → 2013-12-31 2.29 2.05
9 2014-01-02 → 2014-12-31 1.47 1.47
10 2015-01-02 → 2015-12-31 -0.11 -0.18
11 2016-01-04 → 2016-12-30 0.88 0.64
12 2017-01-03 → 2017-12-29 1.45 2.32
13 2018-01-02 → 2018-12-31 -0.08 -0.01
14 2019-01-02 → 2019-12-31 1.83 1.83
15 2020-01-02 → 2020-12-31 0.59 0.58
16 2021-01-04 → 2021-12-31 1.42 1.16
17 2022-01-03 → 2022-12-30 -0.38 -0.17
18 2023-01-03 → 2023-12-29 1.18 1.17
19 2024-01-02 → 2024-12-31 1.33 1.41
20 2025-01-02 → 2025-12-31 0.79 0.76
Out-of-sample equity: normalised growth (1.00x = break even)0.50x0.98x1.46xbars into the window →
Figure 4. Steered by the VIX: every step's out-of-sample curve overlaid, each rebased to 1× at its own start. Read alongside the per-step table: consistent shape across steps is the walk-forward's evidence; a single lucky leg is not.
Out-of-sample equity: normalised growth (1.00x = break even)0.53x1.00x1.46xbars into the window →
Figure 5. Steered by the model: the same windows, the other arm. Compare shape-for-shape with the previous figure: the two arms trade the identical out-of-sample windows.

2.3  Search accounting

No search record exists for this design. It was not promoted from a recorded evolving search, so the number of alternatives tried before it, on paper, in another tool, or in the author's head, is unknown. Unknown is a different fact from one: a study with no lineage is not a strategy with one trial, it is a strategy with an unrecorded number of them. Accordingly no count of alternatives tried is claimed, and nothing in this paper is corrected for a search that was never recorded; the number that stands is the raw out-of-sample result plus this disclosure. The registered per-step record below (§4) still guarantees each window's hypothesis was hashed and registered before that window was scored.

2.4  The comparison

Both arms trade the same registered windows, so their returns can be PAIRED: inside each window the two return series are inner-joined date by date and the difference rSteered by the VIX − rSteered by the model is the object under test. Because this is ONE pre-declared contrast, frozen at registration before any window was scored, the paired statistic needs no multiple-testing deflation, and the per-arm pooled numbers above are likewise uncorrected, because this design has no recorded search to correct against (§2.3). The paired contrast carries that gap differently from the arm levels: it was declared before each window ran and it is scored on the difference, so no window could be read first and scored after. What the timestamps cannot speak to is how this contrast came to be the declared one, which is the limit §2.3 states.

In the table: Arm A = Steered by the VIX · Arm B = Steered by the model.

Table 8. Window-by-window paired comparison. Δ is the growth gap (Arm A − Arm B) over the window's paired dates.
#WindowPaired bars Arm AArm B ΔLeader
1 2006-01-04 → 2006-12-29 250 +9.6% +10.0% -0.4 pp Arm B
2 2007-01-04 → 2007-12-31 250 +1.5% +4.7% -3.2 pp Arm B
3 2008-01-03 → 2008-12-31 252 -30.3% -26.5% -3.8 pp Arm B
4 2009-01-05 → 2009-12-31 251 +20.6% +25.1% -4.5 pp Arm B
5 2010-01-05 → 2010-12-31 251 +9.7% +7.3% +2.4 pp Arm A
6 2011-01-04 → 2011-12-30 251 -1.3% -4.9% +3.6 pp Arm A
7 2012-01-04 → 2012-12-31 249 +16.6% +16.4% +0.1 pp Arm A
8 2013-01-03 → 2013-12-31 251 +39.1% +33.1% +6.0 pp Arm A
9 2014-01-03 → 2014-12-31 251 +25.6% +25.6% +0.0 pp tie
10 2015-01-05 → 2015-12-31 251 -3.1% -4.1% +1.0 pp Arm A
11 2016-01-05 → 2016-12-30 251 +11.9% +8.1% +3.8 pp Arm A
12 2017-01-04 → 2017-12-29 250 +19.1% +25.2% -6.1 pp Arm B
13 2018-01-03 → 2018-12-31 250 -4.0% -2.1% -1.9 pp Arm B
14 2019-01-03 → 2019-12-31 251 +26.7% +26.7% +0.0 pp tie
15 2020-01-03 → 2020-12-31 252 +16.6% +16.2% +0.4 pp Arm A
16 2021-01-05 → 2021-12-31 251 +26.7% +26.3% +0.4 pp Arm A
17 2022-01-04 → 2022-12-30 250 -12.4% -8.4% -4.0 pp Arm B
18 2023-01-04 → 2023-12-29 249 +19.7% +19.5% +0.3 pp Arm A
19 2024-01-03 → 2024-12-31 251 +27.7% +31.2% -3.5 pp Arm B
20 2025-01-03 → 2025-12-31 249 +15.7% +14.2% +1.5 pp Arm A

Paired Sharpe of the difference track: -0.11 · block bootstrap (2000 paths, block 10, seed 1234): P(Steered by the VIX beats Steered by the model) = 29.9%.

Window win-rate. Steered by the VIX led 10 of 20 windows (50.0%), Steered by the model led 8, and 2 windows were ties, yet the mean window gap runs the other way: -0.39 pp toward Steered by the model. Steered by the VIX wins more often and smaller; Steered by the model wins less often and larger. The count and the mean answer different questions, and neither settles the comparison by itself. Widest single window: 2017 at -6.1 pp.

Table 9. The same comparison split at 2010. Pooling the whole walk into one row hides which side of the split the difference came from.
PeriodWindows Steered by the VIXSteered by the model Mean gapSteered by the VIX led
All windows 20 +11.79% +12.18% -0.39 pp 10/20
Before 2010 4 +0.36% +3.33% -2.97 pp 0/4
2010 onward 16 +14.65% +14.39% +0.26 pp 10/16
All windowsn=20 · VIX threshold led 10 · Fitted HMM led 8 · ties 2+11.8%+12.2%-0.39 ppBefore 2010n=4 · VIX threshold led 0 · Fitted HMM led 4 · ties 0+0.4%+3.3%-2.97 pp2010 onwardn=16 · VIX threshold led 10 · Fitted HMM led 4 · ties 2+14.7%+14.4%+0.26 ppgap
Figure 6. Mean window return per period. Steered by the VIX above, Steered by the model below, with the gap at right. The pooled bar and the post-2010 bar are the same comparison over different periods.

The two eras disagree by 3.23 pp. The pooled figure is therefore not a standing property of either method, it is dominated by the later period. Read the two rows, not the average.

3  The circuit

The strategy is a circuit of platform primitives, frozen when the study is registered. Below is the circuit as wired on the canvas, the objective it encodes and how the search runs through it, followed by the mathematics each primitive actually computes, the same formulas the execution engine runs. The complete parameterisation is preserved in the study ledger (Appendix A).

The hypothesis under test

The sentence below is the registration record, generated when the circuit was registered and printed verbatim; the authored description of the design is Section 1.

A COMPARATIVE study, VIX threshold vs Fitted HMM, walked on the same registered out-of-sample windows. VIX threshold: S&P 500, rebalanced quarterly across the selected basket, conditioned on the wired regime classifier, and run out-of-sample from the anchor, whatever the design estimates from history is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. Fitted HMM: S&P 500, rebalanced quarterly across the selected basket, conditioned on the wired regime classifier, and run out-of-sample from the anchor, whatever the design estimates from history is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. The arms differ in: VIX Regime → HMM (returns), substituted (its parameters change with the swap). The contrast under test: whether VIX threshold generates better risk-adjusted returns than Fitted HMM over the identical out-of-sample windows.

Every block in this study is a card from the platform's catalog: the S&P 500 as it stood on each day, the three factor families, the regime tilt card that weights them by the regime, the VIX card or the hidden Markov model card as the regime signal, a cost of 0.1% on every trade, and a one-year test that chooses the stocks again every quarter with the equal-weight S&P 500 beside it. You can rebuild every test and change any setting.

The frozen circuit, data flows left to rightuniverse: click for detailsuniverseprice loader: click for detailsprice loaderfactor loader: click for detailsfactor loaderfactor value: click for detailsfactor valuefactor quality: click for detailsfactor qualityfactor momentum: click for detailsfactor momentumfactor composite: click for detailsfactor compositefactor top tier: click for detailsfactor top tierportfolio backtest: click for detailsportfolio backtestportfolio forward autopsy: click for detailsportfolio forward autopsyvix regime: click for detailsvix regimefactor regime tilt: click for detailsfactor regime tilttransaction cost: click for detailstransaction costuniverse: click for detailsuniverseprice loader: click for detailsprice loaderfactor loader: click for detailsfactor loaderfactor value: click for detailsfactor valuefactor quality: click for detailsfactor qualityfactor momentum: click for detailsfactor momentumfactor composite: click for detailsfactor compositefactor top tier: click for detailsfactor top tierportfolio backtest: click for detailsportfolio backtestportfolio forward autopsy: click for detailsportfolio forward autopsyhmm returns: click for detailshmm returnsfactor regime tilt: click for detailsfactor regime tilttransaction cost: click for detailstransaction costVIX thresholdFitted HMMshared
Figure 7. The frozen circuit, every node a primitive, every wire a typed data-flow; the two arms are colour-coded (Steered by the VIX green, Steered by the model blue, shared feeds neutral). Each box is one step of the strategy; data flows along the wires left to right, and no box can see data dated later than the box feeding it. The whole diagram was frozen when the hypothesis was registered. Click any node to open what that step ran with and what it produced.

Envelopes show counts, ratios, dates, and the parameters the author chose. Full price and per-name data series are not republished: the underlying market data is licensed to QuanterLab. Point figures quoted in the prose, a named holding's return over a stated span, are summary facts derived from public market prices, not redistributed series.

What each part does
Universe, The starting set of tickers, resolved point-in-time from the index change-log, so names delisted or removed later still compete on the dates they traded.
Price Loader, Bulk OHLCV fetch for the whole universe, point-in-time, no future bars.
Factor Loader, Point-in-time fundamentals, never let the user see a number before the SEC did.
Factor Value, Value, how cheap is the stock, cross-sectionally?
Vix Regime, VIX thresholds, the simplest fear gauge.
Hmm Returns, Hidden Markov model on returns, let the data find the regimes.
Factor Quality, Quality, is this a strong, profitable, well-financed business?
Factor Regime Tilt, The radar, read the market and suggest which factors to lean on.
Factor Momentum, Momentum, recent price strength, no filing required.
Factor Composite, The weighting console, blend Value, Quality, Momentum, Growth into one 0–100 score.
Transaction Cost, Charge for trading, slippage + commission on every turn.
Factor Top Tier, The cut out of the factor lane, keep the top-ranked names.
Portfolio Backtest, Replay the portfolio forward, rebalanced, point-in-time, with costs.
Portfolio Forward Autopsy, The post-mortem, where the forward test’s return actually came from.

The objective and the search

VIX threshold

UniverseS&P 500 index constituents.
Validation & out-of-sampleportfolio forward test (buy-and-hold book) (1y horizon from the anchor, quarterly rebalance); overlays: Transaction Cost.
Regime layermacro regime detected via live VIX threshold.
Other componentsFactor models: Factor Composite, Factor Select, Fundamentals Loader (PIT), Momentum Factor, Quality Factor, Regime Tilt (radar), Value Factor.

Fitted HMM

Regime layermacro regime detected via HMM on multi-window returns.

Every other specification row is identical to VIX threshold's table above.

What differs between the arms, one difference; the comparison is clean:

  • substitutedVIX Regime → HMM (returns), substituted (its parameters change with the swap)

Everything else is held identical, so an out-of-sample gap between the arms is attributable to this one change.

Cost elements are wired into the circuit, the realised drag is reported per step in Appendix B.

Show the mathematics, 14 primitives, formulas and parity notes

3.1  Universe

The starting set of tickers, resolved point-in-time from the index change-log, so names delisted or removed later still compete on the dates they traded.

Before any math, you need a list of stocks. An index preset (S&P 500, Nasdaq-100, Dow 30) is reconstructed as it stood ON your anchor date by replaying the historical add/drop change-log backwards, so a 2018 backtest sees the 2018 membership, not today's winners.

Point-in-time membership

Start from today's constituents and un-apply every membership change after the anchor t:

\mathcal{U}(t) = \mathcal{U}_{\text{now}} \;\ominus\; \{\text{adds after } t\} \;\oplus\; \{\text{drops after } t\}
Constituents resolved from the index change-log; the same point-in-time set the factor + screening modules use.

3.2  Price Loader

Bulk OHLCV fetch for the whole universe, point-in-time, no future bars.

Momentum, volatility, trend, every price-based metric needs history. This loads open/high/low/close/volume for all names in parallel, clipped so nothing after the anchor can leak in. The lookback window is derived automatically from the deepest metric you wired.

The window is derived, not guessed

It loads exactly enough history for the hungriest downstream metric plus a warm-up buffer:

W = \max_k(\text{lookback}_k) + \text{buffer}, \qquad \text{bars} \le \text{anchor } t

3.3  Factor Loader

Point-in-time fundamentals, never let the user see a number before the SEC did.

Loads ~23 fundamental metrics (valuation, quality, growth) per name, but with one inviolable rule: a financial statement becomes visible only on or after its SEC acceptedDate. A 2020 backtest sees only what was actually filed by 2020, no look-ahead, ever.

The PIT gate
\text{visible}(f, t) \iff \text{acceptedDate}(f) \le t
Missing acceptance dates fall back to filingDate, else statement date + 45 days.
Byte-identical to FM101FBKT (shared_libs/factor_core). US indexes only (SEC reliability).

3.4  Factor Value

Value, how cheap is the stock, cross-sectionally?

Blends cheapness metrics, P/E, P/B, P/S, EV/EBITDA (lower is better) plus free-cash-flow and earnings yields (higher is better). Each metric is z-scored across the universe, winsorized against outliers, weighted by the importance you set (Off/Low/Med/High), and averaged.

Cross-sectional z-score per metric
z_{i,k} = \pm\,\frac{x_{i,k} - \bar x_k}{s_k}
Sign encodes direction (cheap = good). Winsorized at 1% / 99%.
Importance-weighted family score
\text{Value}_i = \frac{\sum_k \omega_k\,z_{i,k}}{\sum_k \omega_k}, \quad \omega \in \{0,\,0.5,\,1,\,2\}
Off / Low / Medium / High = 0 / 0.5 / 1 / 2. Binding rank happens in Factor Composite.
Byte-identical to FM101FBKT (shared_libs/factor_core).

3.5  Factor Quality

Quality, is this a strong, profitable, well-financed business?

Blends profitability (ROE, ROA, ROIC, margins) and balance-sheet strength (debt-to-equity inverted, current ratio, interest coverage). Same z-score, winsorize, importance-weight recipe as every factor family.

Family score
\text{Quality}_i = \frac{\sum_k \omega_k\,z_{i,k}}{\sum_k \omega_k}
Debt metrics enter inverted (less leverage = higher quality).
Byte-identical to FM101FBKT (shared_libs/factor_core).

3.6  Factor Momentum

Momentum, recent price strength, no filing required.

Pure price-based: 1/3/6/12-month returns measured at the anchor. Because it needs no financial statement, it is always available, even for names with thin fundamentals.

Multi-horizon return, z-scored
\text{Mom}_i = \frac{\sum_k \omega_k\, z\!\big(R_{i}^{(k)}\big)}{\sum_k \omega_k}, \quad R^{(k)} = \frac{P_{\mathrm{near}}}{P_{t-k}}-1
Horizons k ∈ {1, 3, 6, 12} months, measured point-in-time. The near leg follows the node’s "Most recent month" switch: include (the default) reads the anchor close, P_near = P_t, the classic J–0; skip reads one month back, P_near = P(t−21 bars), the Fama-French J–1, and the 1-month horizon is excluded, since its window is exactly the skipped month.
Byte-identical to FM101FBKT (shared_libs/factor_core) at the default include setting; the skip is a Primitives-side option FM101 does not run.

3.7  Factor Composite

The weighting console, blend Value, Quality, Momentum, Growth into one 0–100 score.

Where the four factor families become a single ranking. Each family score is standardized across the universe, blended with your slider weights (or the radar's suggested tilt), and min-max scaled to 0–100. Winsorizing tames outliers; z-score or percentile normalization is your choice.

Cross-sectional standardize + winsorize
z_{i,f} = \frac{x_{i,f} - \bar x_f}{s_f}\quad(\text{clipped at the 1st / 99th percentile})
Weighted blend, scaled to 0–100
C_i = \sum_f W_f\,z_{i,f}, \qquad \text{score}_i = 100\cdot\frac{C_i - \min_j C_j}{\max_j C_j - \min_j C_j}
W = your four slider weights (total 100) OR the Regime Tilt radar's suggestion. Needs ≥ 10 names, ≥ 3 valid metrics each.
Byte-identical to FM101FBKT ranking (shared_libs/factor_core.rank_stocks_at_date).

3.8  Factor Top Tier

The cut out of the factor lane, keep the top-ranked names.

Takes the composite-ranked factor set and keeps the best N, carrying the composite score, the four family scores and the point-in-time market cap for each survivor. Feed 10–20 to a direct portfolio, or 30–100 as an optimizer pool.

Rank cut
\{\, i : \operatorname{rank}(C_i) \le N\,\}, \quad C_i = \text{composite score}
Byte-identical to FM101FBKT ranking (shared_libs/factor_core).

3.9  Portfolio Backtest

Replay the portfolio forward, rebalanced, point-in-time, with costs.

Holds the basket and rebalances on schedule, re-selecting and re-optimizing point-in-time at each rebalance (so it only ever uses information available then), and reports the equity curve, Sharpe, drawdown and trade stats, optionally net of cost and risk overlays.

Compounded equity
E_t = E_{t-1}\big(1 + \mathbf w_{t}^{\top}\mathbf r_t - \text{costs}_t\big)
Drawdown
\text{DD}_t = \frac{E_t}{\max_{\tau\le t}E_\tau} - 1, \qquad \text{MaxDD} = \min_t \text{DD}_t
Financing a levered book
\text{charge}_t \;=\; \text{loan}_t \cdot \frac{\text{spread}}{252}, \qquad \text{loan}_t = \begin{cases}\max(0,\,-\text{cash}_t) & \text{institutional (netted)}\\ \max(0,\,\text{long MV}_t - E_t) & \text{retail (no netting)}\end{cases}
A levered long/short book (the β-neutral Long/Short Select) borrows its excess notional. WHO you are decides the loan: a prime broker nets short-sale proceeds against the margin loan, a fully-netted BAB book carries almost none, while a retail margin account cannot net, so the same book borrows the long leg’s excess over equity. Profiles: institutional = 50 bps spread + 25 bps GC short borrow; retail = 350 bps + 150 bps (the BEST retail tier, so any verdict is conservative); custom = your own knobs, spread on negative cash. Charged daily, reported as financing_drag_pct, never silent.
When the regime only decides the buys
\mathbf w_k = \{\, w_{k,i} : i \in \text{held} \,\}, \qquad \text{cash}_k = 1 - \textstyle\sum_{i \in \text{held}} w_{k,i}
Set "The regime decides" to "Only whether new names are bought": at a rebalance whose regime has an exposure of 0, the new selection keeps only the names already held, each at its weight in the new book; a name that left is sold and its money waits in cash until a rebalance in a regime that buys. Nothing is scaled day to day. Clenow buys only while the S&P 500 is above its 200-day average.

3.10  Portfolio Forward Autopsy

The post-mortem, where the forward test’s return actually came from.

Runs after the Portfolio Forward Test and dissects its realized path: per-rebalance contributions, winners and losers, exposure and cash periods, and how the realized route compares to what the risk cones projected. It computes nothing new about the future, it explains the past the book just lived.

Reading it

Depth I–IV: headline attribution, per-segment breakdown, per-name contributions, and the calibration ledger (projected cone vs realized, segment by segment). In a study, this is the node that fills the appendices.

3.11  Vix Regime

VIX thresholds, the simplest fear gauge.

Reads the VIX (or a wired series) and classifies by two cut-offs: low VIX is calm, high VIX is stressed, in between is choppy. Confidence scales with how far past the boundary you are.

Threshold rule
\text{regime} = \begin{cases}\text{calm} & \text{VIX} < c\\[2pt]\text{stressed} & \text{VIX} \ge s\\[2pt]\text{choppy} & \text{otherwise}\end{cases}
Defaults c = 16, s = 25.

3.12  Factor Regime Tilt

The radar, read the market and suggest which factors to lean on.

Four market signals vote on a recommended Value/Quality/Momentum/Growth weighting: the trend regime (momentum & growth in bull markets, quality & value in bear), the valuation spread, factor momentum, and cross-sectional dispersion. Their importances normalize to 100 and produce a tilt the Composite applies.

Signal-importance blend
\mathbf{w} = 0.30\,\mathbf{R} + 0.25\,\mathbf{V} + 0.25\,\mathbf{M} + 0.20\,\mathbf{D}
R = regime (6-vote benchmark-trend ensemble, one month to one year), V = valuation spread, M = factor momentum, D = dispersion. Importances renormalize to 100.
Optional wired classifier
\text{calm}\to\text{bullish},\ \ \text{choppy}\to\text{sideways},\ \ \text{stressed}\to\text{bearish}
Wire any Regime Classifier to replace the built-in trend ensemble.
Byte-identical to FM099 signal-guided engine (shared_libs/regime_core/factor_signals).

3.13  Transaction Cost

Charge for trading, slippage + commission on every turn.

Real trading isn't free. This deducts a cost proportional to how much you trade (turnover), in basis points, so the backtest reflects net, not gross, performance.

Cost per rebalance
\text{cost}_t = \frac{\text{bps}}{10{,}000}\;\times\;\text{turnover}_t, \qquad \text{turnover}_t = \tfrac12\sum_i \lvert w_{i,t}-w_{i,t^-}\rvert

3.14  Hmm Returns

Hidden Markov model on returns, let the data find the regimes.

A 3-state Gaussian HMM treats the regime as a hidden state that emits returns, learning the states and the transitions between them from multi-horizon returns. States are then labelled calm / choppy / stressed by their mean-vs-volatility profile.

Gaussian emissions + Markov transitions
r_t \mid (z_t=k) \sim \mathcal N(\mu_k,\,\sigma_k^2), \qquad P(z_t=j\mid z_{t-1}=i)=A_{ij}
Diagonal covariance, sticky transitions, 3 restarts. Label by z(μ)−z(σ).
Real hmmlearn fit; graceful stub if the library is absent.

4  Projection calibration, pooled across the walk

Every rebalance carried a Monte Carlo cone and a 95% VaR estimated before the segment it is scored against. Two questions, pooled over the whole study: did realized outcomes land inside the band as often as the band claims, and were VaR breaches as frequent as 5%?

This section is produced by the forward tester itself: every portfolio backtest fits the cone and the VaR estimate at each rebalance and scores them against the segment that followed. It does not require, and this circuit does not contain, a Monte Carlo primitive; that primitive is a separate, standalone analysis.

Arm A71 of 80 inside the 90% band-43%+14%+71%in band20062007200820092010201120122013201420152016201720182019202020212022202320242025Arm B72 of 80 inside the 90% band-43%+14%+71%in band20062007200820092010201120122013201420152016201720182019202020212022202320242025
Figure 8. Projected range versus what occurred, at each of 160 scored rebalance segments, pooled across both arms. The final rebalance of each step has no following segment to score, the ledger marks those rows “no segment follows this rebalance”, which is why this count sits below the raw rebalance totals in the table beneath. Each vertical bar is that rebalance's P5–P95 Monte Carlo cone with the median ticked; the dot is the realized return of the segment that followed. Filled green = the outcome landed inside its own cone; red = it did not. The strip beneath repeats that as one mark per rebalance, so a run of misses in one period is visible as a run. Every cone was fitted only on data prior to the segment it is scored against.
Arm Steps Rebalances In band Coverage Expected VaR days Breach rate Expected
Steered by the VIX 20 95 71 / 80 88.8% ±3.53 90.0% 4951 6.56% ±0.352 5.0%
Steered by the model 20 95 72 / 80 90.0% ±3.35 90.0% 4951 6.5% ±0.35 5.0%

± values are binomial standard errors on the estimate. A coverage figure below the expected band means the projection was over-confident; a breach rate above 5% means the same of the risk model. Both forecasts used only data prior to the segment scored.

5  Discussion

5.1  Interpretation

The two signals disagreed in almost half the quarters, and the disagreements did not show that either reads the market better. You might expect a fitted model to beat a single number. Over 80 quarters it did not: when the two disagreed, each one's portfolio came out ahead about half the time. Most of those were quarters where one said calm and the other choppy, so one portfolio leaned on momentum and the other on quality. The model's portfolio did better in 12 of those 26.

The model's lead comes from a few years, and not always from a good call. In 2008 it said the market was stressed six months early. In 2022 it said calm while stocks fell, and its portfolio did better because momentum meant oil and gas. Its best year against the VIX, 2017, was one the VIX called calm all year. Take away 2008 and 2022, or 2017 and 2022, and the two portfolios finish about a quarter of a point a year apart. Take away the VIX's two best years instead, and the model's lead grows to 1.25 points. A different twenty years could have gone to either signal.

For anyone who sets their weights by the regime, the VIX, which anyone can look up for free, did nearly as well as the fitted model. Whether setting the weights by the regime pays at all was the question of our first paper in this series. There the same portfolio, with the VIX deciding the regime, kept nine tenths of a point a year over fixed weights, and fell behind them in 2007, 2020 and 2022. Here both portfolios were behind the equal-weight S&P 500 for most of the 2010s, and still beat it over the twenty years.

5.2  Limitations

Twenty years and 80 quarters are not many, and the model's lead rests on a few years: 2008, 2017 and 2022 carry most of it. A lead like it turns up about one time in four by chance.

The model's regimes depend on its settings: three states, about four years of returns, and the way the states are named. Other settings would give other regimes. The VIX's lines are the platform's defaults, never tuned; other lines would give other regimes too. The three sets of weights are one choice among many, and with other weights each regime would be worth more or less.

Our price data does not include companies that later left the S&P 500, for example after a bankruptcy. The gap is biggest in the early years. It probably makes both portfolios look a little better than they were against the equal-weight S&P 500, whose record is complete. Both portfolios draw on the same data, so neither is favoured by design, but a missing company could have landed in one portfolio and not the other.

An earlier run of this study, locked on 17 August 2026, used prices without dividends by mistake. We stopped it after its first four years, 2006 to 2009, and threw it away. All twenty tests were then locked again and run with dividends in, on 18 and 19 August 2026, and the record on this page is that second run. Over its four years the first run pointed the same way: the model's portfolio was ahead. The earlier record is kept and marked as replaced.

Try it yourself

Every test in this paper can be run again on quanterlab.com, and you can change any setting. Open it in the lab and try, for example:

• other VIX lines, say calm below 15 and stressed from 30;

• another regime signal, such as the S&P 500 against its 200-day average;

• fixed weights, the same in every regime (our first paper in this series did this with the VIX);

• choosing the stocks every month instead of every quarter.

Or ask the lab assistant to build a version for you, in your own words, and watch it build the test step by step. On Practitioner and Research, a version you like can run as a paper trade, with a note on it every morning.

The run produced the results below. The author chose not to feature them in this paper; they were computed all the same, are part of the frozen record, and are reproducible from the study's frozen circuit.

  • The measurement ladder, 20 windows. The forward tester, per window: the same walk chained price-only, with dividends and net of costs, against the benchmark measured both ways.

References

Author’s references?
  1. QuanterLab (2026). The radar and the sliders: a VIX-steered factor tilt kept nine tenths of a point a year over its fixed twin, and paid for it in 2007, 2020 and 2022. The first paper of this series. https://quanterlab.com/research/a-vix-steered-factor-tilt-kept-nine-tenths-of-a-point-a-year-over-its-fixed-twin
  2. Hamilton, J. D. (1989). A new approach to the economic analysis of nonstationary time series and the business cycle. Econometrica 57(2), 357-384. The regime-switching model the hidden Markov model comes from.
  3. Ang, A. and Bekaert, G. (2002). International asset allocation with regime shifts. Review of Financial Studies 15(4), 1137-1187.
  4. Whaley, R. E. (2000). The investor fear gauge. Journal of Portfolio Management 26(3), 12-17. Where the VIX's nickname comes from.
  5. Moreira, A. and Muir, T. (2017). Volatility-managed portfolios. Journal of Finance 72(4), 1611-1644.
  6. Asness, C. S., Moskowitz, T. J. and Pedersen, L. H. (2013). Value and momentum everywhere. Journal of Finance 68(3), 929-985.
  7. Novy-Marx, R. (2013). The other side of value: The gross profitability premium. Journal of Financial Economics 108(1), 1-28. The quality measure used here, gross profits to assets.

Appendix A  Reproducibility in QuanterLab

Each step is backed by a frozen run report. The study is re-derivable from the ledger below.

#CommitReportAnchorOOS window
1 d72c1599c4f2 1290 2006-01-01 2006-01-03 → 2006-12-29
2 1650db525554 1291 2007-01-01 2007-01-03 → 2007-12-31
3 ea984cf52f86 1292 2008-01-01 2008-01-02 → 2008-12-31
4 ce9ffe022779 1293 2009-01-01 2009-01-02 → 2009-12-31
5 89ccbc871174 1294 2010-01-01 2010-01-04 → 2010-12-31
6 e6a944e77983 1295 2011-01-01 2011-01-03 → 2011-12-30
7 dd439bd4a1c7 1296 2012-01-01 2012-01-03 → 2012-12-31
8 44a4d858efaf 1297 2013-01-01 2013-01-02 → 2013-12-31
9 4cac1d9cf884 1298 2014-01-01 2014-01-02 → 2014-12-31
10 14708a6b45f9 1299 2015-01-01 2015-01-02 → 2015-12-31
11 0ad758cc0815 1300 2016-01-01 2016-01-04 → 2016-12-30
12 cc06599db2ca 1301 2017-01-01 2017-01-03 → 2017-12-29
13 5a9876a8c399 1302 2018-01-01 2018-01-02 → 2018-12-31
14 a5e71c6ef7ba 1303 2019-01-01 2019-01-02 → 2019-12-31
15 cdfb24faa3c5 1304 2020-01-01 2020-01-02 → 2020-12-31
16 4a63aef97037 1305 2021-01-01 2021-01-04 → 2021-12-31
17 a568481c73ae 1306 2022-01-01 2022-01-03 → 2022-12-30
18 57772f1afdde 1307 2023-01-01 2023-01-03 → 2023-12-29
19 f9b42fa6434a 1308 2024-01-01 2024-01-02 → 2024-12-31
20 572ec0a0ee3a 1309 2025-01-01 2025-01-02 → 2025-12-31
QuanterLab reference architecture

The methods the platform implements, for every study made on it, rest on these works.

  1. Gelman, A., & Loken, E. (2013). The garden of forking paths: Why multiple comparisons can be a problem, even when there is no “fishing expedition.” Working paper, Columbia University.
  2. Harvey, C. R., Liu, Y., & Zhu, H. (2016). … and the Cross-Section of Expected Returns. Review of Financial Studies, 29(1), 5–68. doi:10.1093/rfs/hhv059
  3. Lo, A. W. (2002). The Statistics of Sharpe Ratios. Financial Analysts Journal, 58(4), 36–52. doi:10.2469/faj.v58.n4.2453

Appendix A2  Registration record

What this record does and does not establish. Every window in this study is historical: the data existed before the study began, so this is sequential registration on past windows, not pre-registration in the clinical-trial sense, and no procedure could make it so. What the platform does enforce is order, each step's specification was frozen and hashed before that step was scored, and the walk cannot advance past a step that was never run or close one with a result registered for a different window. The two timestamp columns below are the evidence: read them together and each registration precedes its own run, and each run precedes the next registration. A study whose registrations all post-date its runs would show it here. Wall-clock spacing between registrations varies with the author's schedule and queue latency; the ordering, not the tempo, is the claim.

“A COMPARATIVE study, VIX threshold vs Fitted HMM, walked on the same registered out-of-sample windows. VIX threshold: S&P 500, rebalanced quarterly across the selected basket, conditioned on the wired regime classifier, and run out-of-sample from the anchor, whatever the design estimates from history is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. Fitted HMM: S&P 500, rebalanced quarterly across the selected basket, conditioned on the wired regime classifier, and run out-of-sample from the anchor, whatever the design estimates from history is re-estimated at each anchor from pre-anchor data only, and the walk advances through registered out-of-sample windows; its disposition is the realized forward path versus the benchmark. The arms differ in: VIX Regime → HMM (returns), substituted (its parameters change with the swap). The contrast under test: whether VIX threshold generates better risk-adjusted returns than Fitted HMM over the identical out-of-sample windows.”

The same hypothesis was registered independently at every step, hashed before each step's out-of-sample window was scored:

Table 10. Registration audit, one row per registered step, with the time each specification was frozen and the time its window was scored. The hypothesis is identical on every row by design: it was registered once and re-registered unchanged at each anchor. Rows that differ would mean the specification moved mid-walk, which is the thing this record exists to rule out. The timestamps are the separate claim: each registration precedes its own run, and each run precedes the next registration.
#AnchorRegistered at (UTC)Run completed (UTC)
1 2006-01-012026-08-18 19:53:12 2026-08-18 21:52:53
2 2007-01-012026-08-18 21:52:58 2026-08-18 22:12:59
3 2008-01-012026-08-18 22:13:05 2026-08-18 22:30:26
4 2009-01-012026-08-18 22:30:31 2026-08-18 22:52:14
5 2010-01-012026-08-18 22:52:19 2026-08-18 23:14:21
6 2011-01-012026-08-18 23:14:26 2026-08-18 23:37:09
7 2012-01-012026-08-18 23:37:14 2026-08-18 23:56:35
8 2013-01-012026-08-18 23:56:40 2026-08-19 00:20:43
9 2014-01-012026-08-19 00:20:48 2026-08-19 00:44:55
10 2015-01-012026-08-19 00:45:00 2026-08-19 01:09:45
11 2016-01-012026-08-19 01:09:50 2026-08-19 01:31:16
12 2017-01-012026-08-19 01:31:21 2026-08-19 01:57:48
13 2018-01-012026-08-19 01:57:53 2026-08-19 02:24:00
14 2019-01-012026-08-19 02:24:05 2026-08-19 02:50:55
15 2020-01-012026-08-19 02:51:00 2026-08-19 03:13:02
16 2021-01-012026-08-19 03:13:07 2026-08-19 03:40:10
17 2022-01-012026-08-19 03:40:15 2026-08-19 04:07:01
18 2023-01-012026-08-19 04:07:06 2026-08-19 04:33:50
19 2024-01-012026-08-19 04:33:55 2026-08-19 04:56:17
20 2025-01-012026-08-19 04:56:22 2026-08-19 05:23:30

Appendix B  Per-step diagnostics

Realized in the projection tables below is the risk engine scoring its own forecast: the buy-and-hold return of the segment that followed each rebalance, on the same gross basis the cone was projected on. It is deliberately not the charged, calendar-window total return the study’s tables print, so the two will not reconcile line by line; the cone and its outcome share one basis, which is what a calibration test requires. Each row names its segment’s span so a boundary session is visible.

Names held is the union across the window: the count of distinct instruments the book touched between the window’s first and last session, not the number it held at one time. A book that rotates monthly touches more names than it holds.

What each step's run actually did beyond its return: the portfolio book's rebalancing and cost drag. Harvested from the frozen run reports, present where the circuit produced them. Cost drag is the gap between the step's return before and after its trading costs, in percentage points of the step's starting capital, so on a book that trades every session and compounds it can exceed the step's own net return.

Open the full per-step grid (20 steps: every rebalance, per window)

Step 1 · 2006-01-03 → 2006-12-29

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 68 names held · selection: reselect · 0.0% in cash · turnover 3.9× · cost drag 0.39% · 1 name dropped at load (69 selected, 68 held across the window), weights renormalised onto the rest

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 5.67% of 247 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2006-01-01 → 2006-04-01 -3.0357% 10.5158% 27.4784% 9.6752%yes 1.6827% 2 / 61
2006-04-01 → 2006-07-01 -6.7421% 8.7898% 27.0222% -7.3114%no 1.8459% 6 / 62
2006-07-01 → 2006-10-01 -5.7458% 9.8073% 28.0404% -3.178%yes 1.8818% 4 / 62
2006-10-01 → 2007-01-01 -6.1385% 6.7579% 21.5173% 9.6669%yes 1.4809% 2 / 62
2007-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 72 names held · selection: reselect · 0.0% in cash · turnover 4.9× · cost drag 0.49% · 2 names dropped at load (74 selected, 72 held across the window), weights renormalised onto the rest

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 5.26% of 247 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2006-01-01 → 2006-04-01 -3.3443% 7.7546% 21.3289% 5.8754%yes 1.3816% 2 / 61
2006-04-01 → 2006-07-01 -6.7421% 8.7898% 27.0222% -7.3114%no 1.8459% 6 / 62
2006-07-01 → 2006-10-01 -6.2188% 5.1846% 18.0534% 1.5972%yes 1.4182% 3 / 62
2006-10-01 → 2007-01-01 -6.1385% 6.7579% 21.5173% 9.6669%yes 1.4809% 2 / 62
2007-01-01 no segment follows this rebalance, not scored

Step 2 · 2007-01-03 → 2007-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 65 names held · selection: reselect · 0.0% in cash · turnover 3.8× · cost drag 0.38%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 13.36% of 247 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2007-01-01 → 2007-04-01 -5.7292% 7.3203% 20.7357% 5.292%yes 1.5076% 5 / 60
2007-04-01 → 2007-07-01 -5.1155% 6.6799% 20.0234% -0.5082%yes 1.3519% 5 / 62
2007-07-01 → 2007-10-01 -5.5753% 5.2806% 17.4589% -1.9379%yes 1.3042% 13 / 62
2007-10-01 → 2008-01-01 -8.0228% 5.0336% 18.5523% -6.7135%yes 1.4999% 10 / 63
2008-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 78 names held · selection: reselect · 0.0% in cash · turnover 5.1× · cost drag 0.51% · 1 name dropped at load (79 selected, 78 held across the window), weights renormalised onto the rest

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 14.17% of 247 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2007-01-01 → 2007-04-01 -5.7292% 7.3203% 20.7357% 5.292%yes 1.5076% 5 / 60
2007-04-01 → 2007-07-01 -5.1155% 6.6799% 20.0234% -0.5082%yes 1.3519% 5 / 62
2007-07-01 → 2007-10-01 -6.0015% 4.2237% 15.6306% -1.8515%yes 1.2165% 15 / 62
2007-10-01 → 2008-01-01 -6.9762% 10.9544% 30.3067% -2.607%yes 1.9774% 10 / 63
2008-01-01 no segment follows this rebalance, not scored

Step 3 · 2008-01-02 → 2008-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 4 constructions · 46 names held · selection: reselect · 0.0% in cash · turnover 2.7× · cost drag 0.27%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 20.48% of 249 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2008-01-01 → 2008-04-01 -9.5628% 3.4897% 16.9746% -5.0979%yes 1.5472% 13 / 60
2008-04-01 → 2008-07-01 -11.7252% 3.126% 18.8404% -3.7119%yes 1.8271% 7 / 63
2008-07-01 → 2008-10-01 -14.2945% 2.1724% 19.9362% -1.7792%yes 2.0457% 10 / 63
2008-10-01 → window end -18.6644% -0.6598% 19.2163% -22.5073%no 2.3654% 21 / 63

Steered by the model

Portfolio book, rebalanced quarterly · 4 constructions · 46 names held · selection: reselect · 0.0% in cash · turnover 2.6× · cost drag 0.26%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 20.08% of 249 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2008-01-01 → 2008-04-01 -9.5628% 3.4897% 16.9746% -5.0979%yes 1.5472% 13 / 60
2008-04-01 → 2008-07-01 -12.6294% 2.4374% 18.4347% -0.4487%yes 1.8417% 6 / 63
2008-07-01 → 2008-10-01 -14.2571% 1.6869% 18.8014% -1.0084%yes 2.0054% 10 / 63
2008-10-01 → window end -18.6644% -0.6598% 19.2163% -22.5073%no 2.3654% 21 / 63

Step 4 · 2009-01-02 → 2009-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 45 names held · selection: reselect · 0.0% in cash · turnover 2.4× · cost drag 0.24%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 5.24% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2009-01-01 → 2009-04-01 -26.2933% -2.625% 25.408% -11.0473%yes 3.1312% 10 / 60
2009-04-01 → 2009-07-01 -27.4254% -4.119% 26.8772% 13.9453%yes 3.1073% 3 / 62
2009-07-01 → 2009-10-01 -27.9022% -2.3521% 28.7731% 14.5851%yes 3.1152% 0 / 63
2009-10-01 → 2010-01-01 -30.6414% -0.9263% 37.153% 4.6589%yes 4.0066% 0 / 63
2010-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 58 names held · selection: reselect · 0.0% in cash · turnover 3.3× · cost drag 0.33%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 5.24% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2009-01-01 → 2009-04-01 -26.2933% -2.625% 25.408% -11.0473%yes 3.1312% 10 / 60
2009-04-01 → 2009-07-01 -27.4254% -4.119% 26.8772% 13.9453%yes 3.1073% 3 / 62
2009-07-01 → 2009-10-01 -29.2017% -2.2996% 31.0616% 13.4164%yes 3.4162% 0 / 63
2009-10-01 → 2010-01-01 -29.1466% 0.9754% 39.4913% 9.9473%yes 3.8462% 0 / 63
2010-01-01 no segment follows this rebalance, not scored

Step 5 · 2010-01-04 → 2010-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 62 names held · selection: reselect · 0.0% in cash · turnover 3.7× · cost drag 0.37%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 0.81% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2010-01-01 → 2010-04-01 -28.138% 1.8465% 39.8105% 8.2259%yes 3.757% 0 / 60
2010-04-01 → 2010-07-01 -27.0807% 2.3899% 44.055% -17.6148%yes 3.9628% 2 / 62
2010-07-01 → 2010-10-01 -27.6446% 1.8757% 39.1904% 7.4647%yes 3.8% 0 / 63
2010-10-01 → 2011-01-01 -23.7944% 4.3136% 38.9026% 11.8906%yes 3.3158% 0 / 63
2011-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 76 names held · selection: reselect · 0.0% in cash · turnover 4.8× · cost drag 0.48% · 1 name dropped at load (77 selected, 76 held across the window), weights renormalised onto the rest

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 0.0% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2010-01-01 → 2010-04-01 -31.4969% 3.1633% 49.6493% 5.7565%yes 4.8396% 0 / 60
2010-04-01 → 2010-07-01 -35.1886% 2.6366% 62.9724% -18.8748%yes 5.8441% 0 / 62
2010-07-01 → 2010-10-01 -27.6769% 2.6491% 41.2755% 8.7553%yes 3.7939% 0 / 63
2010-10-01 → 2011-01-01 -25.6565% 6.8732% 48.8129% 12.6662%yes 4.1123% 0 / 63
2011-01-01 no segment follows this rebalance, not scored

Step 6 · 2011-01-03 → 2011-12-30

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 71 names held · selection: reselect · 0.0% in cash · turnover 5.0× · cost drag 0.5%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 6.45% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2011-01-01 → 2011-04-01 -14.1345% 8.9027% 41.1581% 6.8767%yes 2.8106% 0 / 61
2011-04-01 → 2011-07-01 -9.5838% 12.7904% 40.8822% 2.0839%yes 2.6002% 0 / 62
2011-07-01 → 2011-10-01 -7.5353% 12.5633% 34.6821% -21.7819%no 2.1093% 13 / 63
2011-10-01 → 2012-01-01 -14.2601% 2.5749% 22.8434% 15.897%yes 2.2833% 3 / 62
2012-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 79 names held · selection: reselect · 0.0% in cash · turnover 4.8× · cost drag 0.48% · 1 name dropped at load (80 selected, 79 held across the window), weights renormalised onto the rest

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 6.45% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2011-01-01 → 2011-04-01 -13.6598% 12.595% 50.4452% 4.2506%yes 3.5688% 0 / 61
2011-04-01 → 2011-07-01 -9.7935% 17.2001% 52.5031% 1.2807%yes 3.0607% 0 / 62
2011-07-01 → 2011-10-01 -7.5353% 12.5633% 34.6821% -21.7819%no 2.1093% 13 / 63
2011-10-01 → 2012-01-01 -12.6816% 4.1287% 24.3025% 15.9476%yes 2.2928% 3 / 62
2012-01-01 no segment follows this rebalance, not scored

Step 7 · 2012-01-03 → 2012-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 4 constructions · 63 names held · selection: reselect · 0.0% in cash · turnover 4.7× · cost drag 0.47% · 1 name dropped at load (64 selected, 63 held across the window), weights renormalised onto the rest

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 2.03% of 246 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2012-01-01 → 2012-04-01 -11.2848% 4.4213% 24.7553% 13.0804%yes 2.1375% 0 / 61
2012-04-01 → 2012-07-01 -7.7251% 9.3425% 29.695% -3.5301%yes 1.9933% 5 / 62
2012-07-01 → 2012-10-01 -12.4177% 3.6459% 22.7759% 1.5097%yes 2.0655% 0 / 62
2012-10-01 → window end -10.6921% 5.6797% 26.9941% 1.1487%yes 2.1812% 0 / 61

Steered by the model

Portfolio book, rebalanced quarterly · 4 constructions · 78 names held · selection: reselect · 0.0% in cash · turnover 5.2× · cost drag 0.52% · 1 name dropped at load (79 selected, 78 held across the window), weights renormalised onto the rest

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 2.03% of 246 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2012-01-01 → 2012-04-01 -9.7625% 7.1213% 29.1759% 12.6279%yes 2.143% 0 / 61
2012-04-01 → 2012-07-01 -7.7251% 9.3425% 29.695% -3.5301%yes 1.9933% 5 / 62
2012-07-01 → 2012-10-01 -12.4177% 3.6459% 22.7759% 1.5097%yes 2.0655% 0 / 62
2012-10-01 → window end -10.2469% 7.6406% 31.2581% 1.9045%yes 2.1185% 0 / 61

Step 8 · 2013-01-02 → 2013-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 78 names held · selection: reselect · 0.0% in cash · turnover 6.0× · cost drag 0.6%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 2.02% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2013-01-01 → 2013-04-01 -11.0583% 5.744% 22.6622% 10.4072%yes 1.8638% 1 / 59
2013-04-01 → 2013-07-01 -11.1743% 9.4839% 32.489% 5.2386%yes 2.3137% 2 / 63
2013-07-01 → 2013-10-01 -13.1901% 5.8302% 26.7908% 5.9745%yes 2.2509% 1 / 63
2013-10-01 → 2014-01-01 -4.1277% 11.6102% 28.2073% 9.715%yes 1.7719% 1 / 63
2014-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 68 names held · selection: reselect · 0.0% in cash · turnover 5.4× · cost drag 0.54%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 2.82% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2013-01-01 → 2013-04-01 -11.0583% 5.744% 22.6622% 10.4072%yes 1.8638% 1 / 59
2013-04-01 → 2013-07-01 -11.1743% 9.4839% 32.489% 5.2386%yes 2.3137% 2 / 63
2013-07-01 → 2013-10-01 -12.9824% 4.7771% 24.1185% 5.5345%yes 2.1627% 1 / 63
2013-10-01 → 2014-01-01 -6.6546% 7.6669% 22.6373% 5.2509%yes 1.5951% 3 / 63
2014-01-01 no segment follows this rebalance, not scored

Step 9 · 2014-01-02 → 2014-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 76 names held · selection: reselect · 0.0% in cash · turnover 4.7× · cost drag 0.47%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 6.85% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2014-01-01 → 2014-04-01 -3.4289% 12.4913% 29.2196% 4.8337%yes 1.7573% 3 / 60
2014-04-01 → 2014-07-01 -1.3729% 14.2764% 32.5221% 3.2082%yes 1.6972% 6 / 62
2014-07-01 → 2014-10-01 -2.8093% 11.8802% 27.2064% -0.6606%yes 1.5827% 4 / 63
2014-10-01 → 2015-01-01 -4.2609% 7.3032% 19.0647% 13.5873%yes 1.2887% 4 / 63
2015-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 76 names held · selection: reselect · 0.0% in cash · turnover 4.7× · cost drag 0.47%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 6.85% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2014-01-01 → 2014-04-01 -3.4289% 12.4913% 29.2196% 4.8337%yes 1.7573% 3 / 60
2014-04-01 → 2014-07-01 -1.3729% 14.2764% 32.5221% 3.2082%yes 1.6972% 6 / 62
2014-07-01 → 2014-10-01 -2.8093% 11.8802% 27.2064% -0.6606%yes 1.5827% 4 / 63
2014-10-01 → 2015-01-01 -4.2609% 7.3032% 19.0647% 13.5873%yes 1.2887% 4 / 63
2015-01-01 no segment follows this rebalance, not scored

Step 10 · 2015-01-02 → 2015-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 58 names held · selection: reselect · 0.0% in cash · turnover 3.7× · cost drag 0.37%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 8.06% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2015-01-01 → 2015-04-01 -5.8054% 5.5232% 16.9926% 1.9782%yes 1.2328% 5 / 60
2015-04-01 → 2015-07-01 -2.0696% 9.5816% 22.6993% -1.3543%yes 1.3653% 3 / 62
2015-07-01 → 2015-10-01 -5.8289% 5.8326% 17.7239% -5.9516%no 1.35% 7 / 63
2015-10-01 → 2016-01-01 -8.7054% 3.1291% 15.2564% 0.7176%yes 1.4411% 5 / 63
2016-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 61 names held · selection: reselect · 0.0% in cash · turnover 3.4× · cost drag 0.34%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 7.26% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2015-01-01 → 2015-04-01 -2.7325% 10.2763% 23.5976% 1.8871%yes 1.4089% 5 / 60
2015-04-01 → 2015-07-01 -4.7693% 6.6065% 19.4195% -2.6332%yes 1.4251% 1 / 62
2015-07-01 → 2015-10-01 -5.8289% 5.8326% 17.7239% -5.9516%no 1.35% 7 / 63
2015-10-01 → 2016-01-01 -8.7054% 3.1291% 15.2564% 0.7176%yes 1.4411% 5 / 63
2016-01-01 no segment follows this rebalance, not scored

Step 11 · 2016-01-04 → 2016-12-30

Steered by the VIX

Portfolio book, rebalanced quarterly · 4 constructions · 78 names held · selection: reselect · 0.0% in cash · turnover 5.1× · cost drag 0.51% · 1 name dropped at load (79 selected, 78 held across the window), weights renormalised onto the rest

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 5.65% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2016-01-01 → 2016-04-01 -8.8288% 2.7181% 14.4719% 5.181%yes 1.3426% 8 / 60
2016-04-01 → 2016-07-01 -6.2578% 6.207% 19.0161% -0.3326%yes 1.401% 2 / 63
2016-07-01 → 2016-10-01 -6.1798% 6.6517% 19.8799% 3.7683%yes 1.4142% 3 / 63
2016-10-01 → window end -7.1637% 5.5383% 20.0676% 1.0677%yes 1.5325% 1 / 62

Steered by the model

Portfolio book, rebalanced quarterly · 4 constructions · 71 names held · selection: reselect · 0.0% in cash · turnover 5.2× · cost drag 0.52%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 4.44% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2016-01-01 → 2016-04-01 -10.1161% 1.1591% 12.6246% 6.2044%yes 1.422% 8 / 60
2016-04-01 → 2016-07-01 -6.2578% 6.207% 19.0161% -0.3326%yes 1.401% 2 / 63
2016-07-01 → 2016-10-01 -8.6634% 3.3552% 15.6914% -0.6155%yes 1.3597% 1 / 63
2016-10-01 → window end -9.7225% 2.3393% 16.0972% 1.4088%yes 1.4836% 0 / 62

Step 12 · 2017-01-03 → 2017-12-29

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 75 names held · selection: reselect · 0.0% in cash · turnover 4.4× · cost drag 0.44%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 2.43% of 247 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2017-01-01 → 2017-04-01 -11.9267% 2.4733% 20.8916% 3.2926%yes 1.9414% 1 / 61
2017-04-01 → 2017-07-01 -10.3173% 6.1343% 25.7267% 3.998%yes 2.1087% 1 / 62
2017-07-01 → 2017-10-01 -10.4212% 5.543% 24.471% 7.532%yes 2.1459% 2 / 62
2017-10-01 → 2018-01-01 -7.3692% 7.6956% 25.3201% 3.4499%yes 1.9092% 2 / 62
2018-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 67 names held · selection: reselect · 0.0% in cash · turnover 4.1× · cost drag 0.41%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 1.62% of 247 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2017-01-01 → 2017-04-01 -11.9267% 2.4733% 20.8916% 3.2926%yes 1.9414% 1 / 61
2017-04-01 → 2017-07-01 -8.8822% 2.7039% 15.8437% 1.3254%yes 1.4512% 1 / 62
2017-07-01 → 2017-10-01 -8.8911% 3.1247% 16.8093% 8.3099%yes 1.4639% 2 / 62
2017-10-01 → 2018-01-01 -8.8945% 3.4593% 17.5751% 8.6972%yes 1.5622% 0 / 62
2018-01-01 no segment follows this rebalance, not scored

Step 13 · 2018-01-02 → 2018-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 69 names held · selection: reselect · 0.0% in cash · turnover 4.2× · cost drag 0.42%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 12.55% of 247 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2018-01-01 → 2018-04-01 -5.7923% 8.0322% 22.3434% 3.931%yes 1.6118% 6 / 60
2018-04-01 → 2018-07-01 -6.392% 6.3477% 19.4736% 8.8275%yes 1.3967% 5 / 63
2018-07-01 → 2018-10-01 -5.7716% 6.3987% 20.2256% 10.3252%yes 1.4485% 1 / 62
2018-10-01 → 2019-01-01 -2.3905% 9.8027% 23.6036% -20.7487%no 1.282% 19 / 62
2019-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 47 names held · selection: reselect · 0.0% in cash · turnover 2.7× · cost drag 0.27%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 11.74% of 247 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2018-01-01 → 2018-04-01 -7.4088% 4.1438% 15.8848% 1.1314%yes 1.376% 6 / 60
2018-04-01 → 2018-07-01 -6.392% 6.3477% 19.4736% 8.8275%yes 1.3967% 5 / 63
2018-07-01 → 2018-10-01 -5.7716% 6.3987% 20.2256% 10.3252%yes 1.4485% 1 / 62
2018-10-01 → 2019-01-01 -4.0534% 7.2845% 20.0401% -17.5165%no 1.2782% 17 / 62
2019-01-01 no segment follows this rebalance, not scored

Step 14 · 2019-01-02 → 2019-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 74 names held · selection: reselect · 0.0% in cash · turnover 5.3× · cost drag 0.53%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 4.84% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2019-01-01 → 2019-04-01 -8.8875% 3.22% 15.6094% 16.5654%no 1.4158% 3 / 60
2019-04-01 → 2019-07-01 -6.2448% 5.7172% 19.2887% -0.9547%yes 1.4329% 4 / 62
2019-07-01 → 2019-10-01 -4.942% 6.1569% 17.4065% -1.2489%yes 1.3031% 5 / 63
2019-10-01 → 2020-01-01 -8.2993% 4.8339% 18.4464% 9.0434%yes 1.6363% 0 / 63
2020-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 74 names held · selection: reselect · 0.0% in cash · turnover 5.3× · cost drag 0.53%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 4.84% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2019-01-01 → 2019-04-01 -8.8875% 3.22% 15.6094% 16.5654%no 1.4158% 3 / 60
2019-04-01 → 2019-07-01 -6.2448% 5.7172% 19.2887% -0.9547%yes 1.4329% 4 / 62
2019-07-01 → 2019-10-01 -4.942% 6.1569% 17.4065% -1.2489%yes 1.3031% 5 / 63
2019-10-01 → 2020-01-01 -8.2993% 4.8339% 18.4464% 9.0434%yes 1.6363% 0 / 63
2020-01-01 no segment follows this rebalance, not scored

Step 15 · 2020-01-02 → 2020-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 4 constructions · 67 names held · selection: reselect · 0.0% in cash · turnover 3.5× · cost drag 0.35%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 50.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 12.05% of 249 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2020-01-01 → 2020-04-01 -7.8417% 6.8416% 25.5518% -21.9946%no 2.0833% 16 / 61
2020-04-01 → 2020-07-01 -21.6003% -2.803% 20.6518% 29.9649%no 2.4671% 11 / 62
2020-07-01 → 2020-10-01 -15.2782% 5.7349% 29.415% 11.9773%yes 2.4724% 1 / 63
2020-10-01 → window end -15.2082% 5.5172% 28.8087% 9.7631%yes 2.4139% 2 / 63

Steered by the model

Portfolio book, rebalanced quarterly · 4 constructions · 70 names held · selection: reselect · 0.0% in cash · turnover 3.6× · cost drag 0.36%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 50.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 12.05% of 249 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2020-01-01 → 2020-04-01 -7.8417% 6.8416% 25.5518% -21.9946%no 2.0833% 16 / 61
2020-04-01 → 2020-07-01 -21.6003% -2.803% 20.6518% 29.9649%no 2.4671% 11 / 62
2020-07-01 → 2020-10-01 -13.7868% 7.0736% 30.4727% 10.773%yes 2.29% 2 / 63
2020-10-01 → window end -15.0649% 6.2328% 30.2835% 9.7322%yes 2.5734% 1 / 63

Step 16 · 2021-01-04 → 2021-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 67 names held · selection: reselect · 0.0% in cash · turnover 4.9× · cost drag 0.49%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 2.02% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2021-01-01 → 2021-04-01 -13.8531% 7.3283% 31.0555% 4.9504%yes 2.4015% 2 / 60
2021-04-01 → 2021-07-01 -13.8245% 8.0636% 35.6895% 9.0672%yes 2.2824% 1 / 62
2021-07-01 → 2021-10-01 -20.5499% 12.9436% 55.6688% -0.8171%yes 3.2486% 1 / 63
2021-10-01 → 2022-01-01 -13.7486% 10.4728% 38.4513% 8.4484%yes 2.2558% 1 / 63
2022-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 75 names held · selection: reselect · 0.0% in cash · turnover 5.0× · cost drag 0.5%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 3.23% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2021-01-01 → 2021-04-01 -14.8589% 11.1457% 41.5981% 5.1252%yes 3.0463% 5 / 60
2021-04-01 → 2021-07-01 -20.6289% 12.3624% 59.3887% 8.7343%yes 3.3985% 1 / 62
2021-07-01 → 2021-10-01 -20.5499% 12.9436% 55.6688% -0.8171%yes 3.2486% 1 / 63
2021-10-01 → 2022-01-01 -13.7486% 10.4728% 38.4513% 8.4484%yes 2.2558% 1 / 63
2022-01-01 no segment follows this rebalance, not scored

Step 17 · 2022-01-03 → 2022-12-30

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 54 names held · selection: reselect · 0.0% in cash · turnover 2.9× · cost drag 0.29%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 75.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 8.1% of 247 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2022-01-01 → 2022-04-01 -11.3417% 9.386% 37.5799% -8.0768%yes 2.1168% 5 / 61
2022-04-01 → 2022-07-01 -15.2498% 8.6648% 42.5334% -16.8232%no 2.5126% 8 / 61
2022-07-01 → 2022-10-01 -10.7683% 8.6867% 30.1082% -4.1251%yes 2.1853% 2 / 63
2022-10-01 → 2023-01-01 -12.2675% 6.4574% 29.3241% 13.9142%yes 2.1015% 5 / 62
2023-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 65 names held · selection: reselect · 0.0% in cash · turnover 3.4× · cost drag 0.34%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 8.1% of 247 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2022-01-01 → 2022-04-01 -13.8555% 11.8569% 48.7578% -7.4225%yes 2.6746% 4 / 61
2022-04-01 → 2022-07-01 -17.1062% 9.5287% 48.4598% -16.1039%yes 2.8356% 8 / 61
2022-07-01 → 2022-10-01 -10.9204% 10.241% 33.8975% -1.5609%yes 2.2404% 3 / 63
2022-10-01 → 2023-01-01 -12.2675% 6.4574% 29.3241% 13.9142%yes 2.1015% 5 / 62
2023-01-01 no segment follows this rebalance, not scored

Step 18 · 2023-01-03 → 2023-12-29

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 67 names held · selection: reselect · 0.0% in cash · turnover 4.6× · cost drag 0.46%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 1.22% of 246 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2023-01-01 → 2023-04-01 -9.6493% 10.6061% 37.9324% 3.4604%yes 2.3292% 2 / 61
2023-04-01 → 2023-07-01 -10.8833% 5.1177% 25.8799% 5.0227%yes 1.918% 1 / 61
2023-07-01 → 2023-10-01 -14.4228% 4.9692% 28.9085% -6.8122%yes 2.4304% 0 / 62
2023-10-01 → 2024-01-01 -15.4278% 1.3471% 21.577% 15.6605%yes 2.0082% 0 / 62
2024-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 79 names held · selection: reselect · 0.0% in cash · turnover 5.4× · cost drag 0.54%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 1.63% of 246 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2023-01-01 → 2023-04-01 -9.6493% 10.6061% 37.9324% 3.4604%yes 2.3292% 2 / 61
2023-04-01 → 2023-07-01 -9.311% 7.0701% 28.3459% 4.6242%yes 1.979% 2 / 61
2023-07-01 → 2023-10-01 -14.4228% 4.9692% 28.9085% -6.8122%yes 2.4304% 0 / 62
2023-10-01 → 2024-01-01 -15.4278% 1.3471% 21.577% 15.6605%yes 2.0082% 0 / 62
2024-01-01 no segment follows this rebalance, not scored

Step 19 · 2024-01-02 → 2024-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 4 constructions · 69 names held · selection: reselect · 0.0% in cash · turnover 5.1× · cost drag 0.51%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 3.63% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2024-01-01 → 2024-04-01 -19.3769% 4.5256% 32.3337% 18.6613%yes 2.8493% 0 / 60
2024-04-01 → 2024-07-01 -13.1452% 9.178% 37.4214% 1.3522%yes 2.6944% 1 / 62
2024-07-01 → 2024-10-01 -7.6291% 11.7601% 32.9736% 5.1315%yes 1.7643% 7 / 63
2024-10-01 → window end -8.7702% 7.1844% 24.1578% 0.4954%yes 1.6517% 1 / 63

Steered by the model

Portfolio book, rebalanced quarterly · 4 constructions · 67 names held · selection: reselect · 0.0% in cash · turnover 4.5× · cost drag 0.45%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 4.03% of 248 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2024-01-01 → 2024-04-01 -19.3769% 4.5256% 32.3337% 18.6613%yes 2.8493% 0 / 60
2024-04-01 → 2024-07-01 -13.1452% 9.178% 37.4214% 1.3522%yes 2.6944% 1 / 62
2024-07-01 → 2024-10-01 -7.6291% 11.7601% 32.9736% 5.1315%yes 1.7643% 7 / 63
2024-10-01 → window end -6.7685% 11.4739% 31.2085% 2.4895%yes 1.7347% 2 / 63

Step 20 · 2025-01-02 → 2025-12-31

Steered by the VIX

Portfolio book, rebalanced quarterly · 5 constructions · 50 names held · selection: reselect · 0.0% in cash · turnover 3.1× · cost drag 0.31%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 7.72% of 246 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2025-01-01 → 2025-04-01 -4.9237% 8.5672% 21.6531% -4.6048%yes 1.4355% 9 / 59
2025-04-01 → 2025-07-01 -6.6561% 4.8521% 19.0389% 9.5707%yes 1.5746% 7 / 61
2025-07-01 → 2025-10-01 -6.9659% 6.4157% 20.2927% 4.5435%yes 1.4167% 1 / 63
2025-10-01 → 2026-01-01 -9.3961% 6.4525% 23.3137% 5.1183%yes 1.643% 2 / 63
2026-01-01 no segment follows this rebalance, not scored

Steered by the model

Portfolio book, rebalanced quarterly · 5 constructions · 51 names held · selection: reselect · 0.0% in cash · turnover 3.2× · cost drag 0.32%

Projection accuracy, realized outcome fell inside the P5–P95 cone in 100.0% of 4 scored rebalances (a well-calibrated 90% band contains ~90.0%) · 95% VaR breached on 8.13% of 246 days (expected ~5.0%)

Rebalance P5 Median P95 Realized In band VaR 95 (1d) Breaches
2025-01-01 → 2025-04-01 -4.9237% 8.5672% 21.6531% -4.6048%yes 1.4355% 9 / 59
2025-04-01 → 2025-07-01 -7.3612% 4.0205% 18.046% 7.9633%yes 1.6344% 8 / 61
2025-07-01 → 2025-10-01 -6.9659% 6.4157% 20.2927% 4.5435%yes 1.4167% 1 / 63
2025-10-01 → 2026-01-01 -9.3961% 6.4525% 23.3137% 5.1183%yes 1.643% 2 / 63
2026-01-01 no segment follows this rebalance, not scored
QuanterLab · Study 562d8404ab28 · compiled August 19, 2026. Point-in-time constituents and hypothesis-registration timestamps are enforced by the platform. This report is generated from the frozen study artifact and is reproducible from the ledger above. Educational research, not investment advice: every result on this page is simulated, and nothing here is a recommendation to buy or sell any security.

Run a study like this one

Everything above was produced inside QuanterLab, the registration, the walk, the statistics and the paper itself. Build the circuit on a canvas, register the hypothesis before you score it, and the platform enforces the rest.

Reading the research needs no account; creating one is free. Follow the research and we'll tell you when the next study publishes.

As seen on Quantocracy

A note on AI. QuanterLab is a quantitative finance research platform, and every number in this study comes from a run on the platform. The hypothesis, the parameter choices, the validation design and the conclusions belong to the author. Runs execute on point-in-time data with walk-forward validation, and each study ships with its methodology and logs, so a reader can reconstruct the result instead of trusting it. I use AI to edit and structure the prose; it does not generate results, produce numbers, or decide what a study concludes.