Skip to content

Honest ETF control universe (measure real alpha)#10

Merged
yingwang merged 1 commit into
mainfrom
claude/honest-etf-control
Jun 13, 2026
Merged

Honest ETF control universe (measure real alpha)#10
yingwang merged 1 commit into
mainfrom
claude/honest-etf-control

Conversation

@yingwang

Copy link
Copy Markdown
Owner

What

A survivorship-free control group for the momentum strategy. Same engine, honest pool.

  • config_etf.yaml — runs the exact same MultiFactorStrategy (identical signals/portfolio/risk/leverage params) on a clean basket of ~31 category-defined ETFs (sectors, size, international, bonds, commodities). The only change vs config.yaml is the universe.
  • .github/workflows/honest-backtest.yml — manual-dispatch, read-only job (no Alpaca, no secrets, no commits) that runs the ETF backtest and prints strategy-vs-SPY to the job summary.

Why

The stock backtests ride a hand-picked list of 100 of today's winners (it even contains SNOW/CRWD/DDOG, which were not public in 2016). ETFs are defined by category, not future performance, and almost never delist — so this removes the survivorship bias entirely. The gap between Total Return and Benchmark Return here is the honest alpha.

Isolation

Purely additive. Touches no existing strategy, config, state, account, dashboard, or workflow.

To run

GitHub requires workflow_dispatch files to be on the default branch, so this must merge before it can be triggered. After merge: Actions tab → "Honest Backtest (ETF control)" → Run.

🤖 Generated with Claude Code

Adds config_etf.yaml: the exact same multi-factor momentum engine (same
signals/portfolio/risk/leverage params) pointed at a clean, survivorship-free
basket of ~31 category-defined ETFs (sectors, size, intl, bonds, commodities).
Purpose: measure how much real alpha survives once the hand-picked-winners
stock universe is removed.

Plus .github/workflows/honest-backtest.yml: manual-dispatch, read-only
(no Alpaca, no secrets, no commits) job that runs the ETF backtest and prints
strategy-vs-SPY to the job summary.

Fully additive — does not change any existing strategy, config, state, account,
dashboard, or workflow.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@yingwang yingwang merged commit b2c3e8b into main Jun 13, 2026
1 check passed
@yingwang yingwang deleted the claude/honest-etf-control branch June 13, 2026 22:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant