Expand model tag support: add GLM-5.1, simplify Anthropic IDs, scan tags anywhere in message

- Flink update_bars debouncing
- update_bars subscription idempotency bugfix
- Price decimal correction bugfix of previous commit
- Add GLM-5.1 model tag alongside renamed GLM-5
- Use short Anthropic model IDs (sonnet/haiku/opus) instead of full version strings
- Allow @tags anywhere in message content, not just at start
- Return hasOtherContent flag instead of trimmed rest string
- Only trigger greeting stream when tag has no other content
- Update workspace knowledge base references to platform/workspace and platform/shapes
- Hierarchical knowledge base catalog
- 151 Trading Strategies knowledge base articles
- Shapes knowledge base article
- MutateShapes tool instead of workspace patch
This commit is contained in:
2026-04-28 15:05:15 -04:00
parent d41fcd0499
commit 47471b7700
184 changed files with 9044 additions and 170 deletions

View File

@@ -0,0 +1,46 @@
---
description: "Rotates into sector ETFs with the highest Jensen's alpha estimated from a Fama-French factor regression, replacing raw cumulative return momentum with factor-adjusted alpha as the ranking signal."
tags: [etfs, alpha, momentum, fama-french, rotation]
---
# Alpha Rotation
**Section**: 4.2 | **Asset Class**: ETFs | **Type**: Momentum / Factor-Adjusted Rotation
## Overview
Alpha rotation is structurally the same as the sector momentum rotation strategy (Section 4.1), but replaces cumulative ETF returns `R_i^cum` with ETF alphas `alpha_i`. These alphas are the Jensen's alpha regression coefficients from a serial regression of each ETF's returns on the Fama-French factors, representing the ETF's return unexplained by common risk factors.
## Construction / Signal
Run a serial regression of ETF returns `R_i(t)` on the 3 Fama-French factors (MKT, SMB, HML):
```
R_i(t) = alpha_i + beta_{1,i} MKT(t) + beta_{2,i} SMB(t) + beta_{3,i} HML(t) + epsilon_i(t) (364)
```
The regression coefficient `alpha_i` (Jensen's alpha) corresponds to the intercept and measures the ETF's risk-adjusted excess return relative to the Fama-French model. This alpha replaces `R_i^cum` as the ranking criterion.
ETFs are ranked by `alpha_i` (descending). Buy top-decile ETFs (highest alpha) and optionally short bottom-decile ETFs (lowest/most-negative alpha).
## Entry / Exit Rules
- **Entry**: At rebalance, estimate alpha for each ETF over the estimation period; rank and enter positions in top-decile (long) and optionally bottom-decile (short).
- **Exit**: Hold for the standard holding period; rebalance at next scheduled interval.
- **Estimation period**: Typically 1 year; returns `R_i(t)` are daily or weekly.
## Key Parameters
- **Factor model**: 3 Fama-French factors (MKT, SMB, HML); note alpha here is Jensen's alpha for ETF returns, not mutual fund alpha
- **Estimation period**: Typically 1 year
- **Return frequency for regression**: Daily or weekly `R_i(t)`
- **Holding period**: Same as sector momentum rotation (13 months)
- **Ranking criterion**: `alpha_i` (intercept of Fama-French regression)
## Variations
- **4-factor model**: Add Carhart momentum factor MOM(t) to regression for a 4-factor alpha
- **R-squared augmentation**: Combine alpha ranking with R-squared selectivity measure (see Section 4.3)
- **Long-only**: Buy only top-decile ETFs by alpha
## Notes
- Estimation period is typically 1 year with daily or weekly return data.
- Jensen's alpha here is defined for ETF returns (not mutual fund returns as in Jensen, 1968).
- Alpha rotation is analytically cleaner than raw momentum rotation as it removes systematic factor exposures from the ranking signal.
- The MA filter and dual-momentum variations from Section 4.1.1 and 4.1.2 can also be applied here.
- Can be combined with R-squared (Section 4.3) to further refine ETF selection.