f/fundlab/overnight_rescreen.log
Greg Pomerantz 89674c24dd Compute all alphas in excess of the 3-mo T-bill rate (BIL)
Raw-intercept alphas absorbed the T-bill yield on uninvested/levered
portions (582 well-fitted funds >2%/yr off; sum-of-betas polluted by
level-matching). Now fund AND sleeves are netted against BIL daily
total return before every regression; a cash position contributes
exactly zero.

- decompose: rf_series()/excess(); shv+bil dropped from regressors
  (~0 columns in excess space); FULL_WINDOW -> 2007-06-01 (BIL
  inception; mixing raw pre-2007 with excess breaks the fit).
- factors: same excess treatment; shv out of DRIVERS.
- CASH axis redefined: alpha/cash_yield -> net cash position = 1 -
  sum(betas) (label 'cash (net posn)').
- CANDIDATE list 250 -> 11: the old list was mostly under-invested
  funds whose 'alpha' was cash yield, not skill.
- refback.py: per-fund fitted reference (forward-selected sleeves)
  stored as ref_5y/ref_full in search_all.json; app alpha-search
  table gains a 'reference (5y)' column - the answer to 'what is
  alpha computed against' (the fund's OWN fitted sleeve mix, not one
  index).
- App captions updated; raw-alpha-era results backed up as
  *_rawalpha.json (not deleted).
2026-08-30 15:50:15 -04:00

37 lines
1.2 KiB
Plaintext

15:09:56 === stage screen ===
15:09:56 screen: 2384 funds, 2384 to do
15:10:29 screen: 100/2384
15:11:01 screen: 200/2384
15:11:33 screen: 300/2384
15:12:04 screen: 400/2384
15:12:36 screen: 500/2384
15:13:09 screen: 600/2384
15:13:42 screen: 700/2384
15:14:15 screen: 800/2384
15:14:45 screen: 900/2384
15:15:20 screen: 1000/2384
15:15:56 screen: 1100/2384
15:16:31 screen: 1200/2384
15:17:07 screen: 1300/2384
15:17:38 screen: 1400/2384
15:18:14 screen: 1500/2384
15:18:45 screen: 1600/2384
15:19:16 screen: 1700/2384
15:19:47 screen: 1800/2384
15:20:19 screen: 1900/2384
15:20:51 screen: 2000/2384
15:21:23 screen: 2100/2384
15:21:54 screen: 2200/2384
15:22:26 screen: 2300/2384
15:22:53 screen done: 2384 funds
15:22:53 === stage finalize ===
15:22:53 finalize: 2384 funds screened
15:22:53 1339 sleeve mix
15:22:53 1001 weak/unstable alpha
15:22:53 17 no 5y window
15:22:53 11 CANDIDATE
15:22:53 10 alpha, but correlated with current portfolio
15:22:53 6 alpha in 5y window, but not persistent
15:22:53 candidates v1 name-filter would have missed: ['aguax', 'etsix', 'femdx', 'hicox', 'prfrx', 'puls', 'rctix', 'rpifx', 'scfzx']
15:22:53 === overnight run finished in 0.2h ===