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,63 @@
---
description: "Overweights ETFs with high selectivity (low R-squared against factor model) and high alpha, and underweights ETFs with low selectivity (high R-squared), using a two-dimensional sort on R-squared and alpha."
tags: [etfs, r-squared, alpha, selectivity, factor-model]
---
# R-Squared
**Section**: 4.3 | **Asset Class**: ETFs | **Type**: Factor-Based / Selectivity
## Overview
Empirical studies suggest that augmenting Jensen's alpha with an indicator based on R-squared from a factor model regression adds predictive value for future ETF returns. R-squared measures how much of an ETF's return variance is explained by common factors; low R-squared (high "selectivity") combined with high alpha predicts strong future performance. High R-squared (low selectivity) combined with low alpha predicts weak future performance.
## Construction / Signal
Run a serial regression of ETF returns `R_i(t)` on 4 factors (Fama-French 3 + Carhart momentum):
```
R_i(t) = alpha_i + beta_{1,i} MKT(t) + beta_{2,i} SMB(t) + beta_{3,i} HML(t) + beta_{4,i} MOM(t) + epsilon_i(t) (365)
```
Compute regression R-squared:
```
R^2 = 1 - SS_res / SS_tot (366)
SS_res = sum_{i=1}^{N} epsilon_i(t)^2 (367)
SS_tot = sum_{i=1}^{N} (R_i(t) - R_bar(t))^2 (368)
R_bar(t) = (1/N) * sum_{i=1}^{N} R_i(t) (369)
```
**Selectivity** = `1 - R^2` [Amihud and Goyenko, 2013]. High selectivity = low R-squared = returns less explained by common factors.
**Two-dimensional sort strategy**:
1. Sort ETFs into quintiles by R-squared (5 groups).
2. Within each R-squared quintile, sort ETFs into sub-quintiles by alpha (5 sub-groups).
3. This creates 25 groups of ETFs.
4. **Buy** ETFs in the group with lowest R-squared quintile and highest alpha sub-quintile.
5. **Sell** ETFs in the group with highest R-squared quintile and lowest alpha sub-quintile.
## Entry / Exit Rules
- **Entry**: At rebalance, run regression, compute R-squared and alpha for each ETF, perform 5×5 sort, enter long/short positions.
- **Exit**: Hold for estimation period or holding period; rebalance periodically.
- **Estimation period**: Same as alpha rotation (typically 1 year); longer estimation periods can be used, especially for monthly returns.
## Key Parameters
- **Factor model**: 4-factor (Fama-French 3 + Carhart MOM); 3-factor also usable
- **Estimation period**: Typically 1 year; can be longer for monthly return data
- **Sort dimensions**: R-squared quintiles × alpha sub-quintiles (5×5 = 25 groups)
- **Holding period**: Similar to alpha rotation strategy (13 months)
- **Selectivity definition**: `1 - R^2`
## Variations
- **3-factor model**: Use Fama-French 3 factors without momentum factor MOM
- **Different quintile splits**: Use deciles instead of quintiles for finer grouping
- **R-squared only**: Sort purely by R-squared without the alpha sub-sort
- **Estimation period alignment**: Use same estimation period as alpha rotation strategy (Section 4.2) for consistency
## Notes
- R-squared as a measure of active management: in Amihud and Goyenko (2013), R-squared is applied to mutual funds; Garyn-Tal (2014a, 2014b) applies it to actively managed ETFs.
- Low R-squared means the ETF has high "active share" — its returns are driven more by the manager's specific bets than by passive factor exposure.
- The estimation period and return frequency for R-squared can be the same as for alpha rotation (see Section 4.2 and fn. 77).
- Longer estimation periods are particularly appropriate if R_i(t) are monthly returns.
- Can be combined with the MA filter (Section 4.1.1) as an additional condition.