尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A systematic equity research project, run as an adversarial process: every idea is
pre-registered, tested against a declared null, and killed when it fails.
312 recorded research steps. Nineteen signal families closed. Zero strategies promoted.
Zero dollars traded.
That last line is the result, not an apology for one. A research process that promotes
nothing from 312 attempts is either broken or working exactly as intended, and the record
below is the evidence for which.
What this project set out to do查看完整 README ↗A systematic equity research project, run as an adversarial process: every idea is pre-registered, tested against a declared null, and killed when it fails.
312 recorded research steps. Nineteen signal families closed. Zero strategies promoted. Zero dollars traded.
That last line is the result, not an apology for one. A research process that promotes nothing from 312 attempts is either broken or working exactly as intended, and the record below is the evidence for which.
Find a systematic equity strategy with a real edge — using only free data, on a laptop, held to the standard a quant firm would apply. The dashboard shows candidate strategies with trailing returns from 100% to 175%. None of them is an edge, and the research explains why.
1. The strategies never had cross-sectional skill. Thirteen dashboard signals and fourteen closed families were measured three beta-neutral ways — rank information coefficient, top-minus-bottom decile spread, and decile monotonicity. None clears Bonferroni. More decisively, none orders its deciles: monotonicity sits within ±0.17 of zero for every signal tested. A signal with genuine content ranks its universe; these rank nothing. (Steps 296, 298, 299, 300)
2. The headline returns were market beta and a few lucky names. Taking the one signal that survived out-of-sample testing and neutralising its market exposure dropped it from 16.65% CAGR to 1.59% — roughly ninety per cent of the return was beta. The top-N books were not winning on selection. (Step 295)
3. Nothing survives a window it was not selected on. Every fundamental panel began in 2023, so no strategy here had ever been tested outside its selection window. Acquiring SEC Financial Statement Data Sets back to 2012 fixed that. Nought of six survive; three of six have the wrong sign. Growth, the flagship, lost 15.4 points a year to its own scored universe. (Steps 287, 289, 290)
4. Breadth is not the binding constraint — skill is.
The project spent roughly fifty steps trying to raise breadth on the theory that
IR = IC × √BR made it the lever. It is a product: an IC indistinguishable from zero yields
an IR indistinguishable from zero at any breadth. Adding a genuinely uncorrelated asset
raised effective bets from 2.00 to 2.88 and bought 0.021 of Sharpe. Every liquid domain
measured collapses — 35 ETFs give 4.16 effective assets, 20 crypto assets give 3.09.
(Steps 246, 277, 279, 285, 296)
5. A one-week date convention invalidated the project's best result. Two artifact families disagreed about whether a return stamped at date D was the week ending or beginning at D, and nothing recorded which. Joining them by date compared week t against week t+1, producing near-zero correlations that looked like diversification. Corrected, the "independent" strategy correlates +0.57 to +0.77 with the others, and a blend that appeared to beat both components beats neither. The finding was withdrawn and the forward clock built on it was superseded before it started. (Steps 291, 292, 294)
6. Market-neutral structure works. There was nothing to put in it. A long-short book removes market beta by construction — realised betas of −0.009 and +0.007, clearing an orthogonality gate that fourteen families had failed. Both signals tested in it had no skill. The machinery is sound and unfuelled. (Steps 293, 295)
Roughly forty signal families across eight categories — momentum is four of them.
| category | families |
|---|---|
| Price / return | short-term reversal, seasonal momentum, opening-range breakout, coskewness, idiosyncratic skewness, trend consistency, sector dispersion, vol-of-vol, downside beta, residual reversal, industry-return-of-big-firms, daily OHLCV zoo, 22-signal literature screen, cross-asset crisis trend, futures trend |
| Fundamental | growth, cash conversion, balance-sheet quality, profitability, shareholder discipline, quality acceleration, earnings yield, FCF yield, sales yield, composite value, quality-at-reasonable-price, low asset growth, accounting-change family |
| Events | PEAD / SUE, 13D & 13G activist filings, Form 4 insider clusters, Form 4 routine-vs-opportunistic |
| Positioning / flow | 13F institutional linkage, FINRA short interest, FINRA daily short-sale volume |
| Text | 10-K language change, earnings-call transcripts |
| Network | supply-chain graph |
| Other markets | 35-ETF multi-asset, 20-asset crypto, futures + roll repair |
| Structure & ML | pairs / statistical arbitrage, long-short market-neutral, risk-budgeted sizing, breadth repair, meta-labeling, triple-barrier labelling, fractional differentiation, MDA/MDI importance, market-state and macro-state classifiers |
The rules are in CLAUDE.md and they are enforced, not aspirational:
2.0/config/ before results exist. A signal declared positive that measures negative is
reported as refuted, never re-interpreted as contrarian.2.0/PROJECT_HISTORY.md is
append-only and includes every error the author made, several of which invalidated earlier
conclusions.Ten measurement defects were found and recorded, most by noticing a number that could not mean what it appeared to mean. Three times in a single session a result cleared a significance bar and dissolved under inspection: an insider signal at p=0.0000 that was a presence test on a 93.3%-zero series; a trend signal at p=0.0017 with a negative decile spread; a text signal at p=0.0030 sitting below its own data's resolution. A process that stopped at the p-value would have reported all three as discoveries.
Five forward clocks began on 2026-09-11: a residual composite, an equal-weight benchmark, a tie-agnostic companion, an earnings-surprise book and a valuation book. Each requires 52 untouched weeks. A missed weekly window cannot be backfilled, and the historical record never advances a clock.
This is the only source of evidence the project has left that has not already been searched.
1.0/ the legacy ETF project this began as -- docs, reports and
source kept as the origin record; its data is superseded by 2.0
2.0/
dashboard/ Next.js research dashboard (the deployed site)
scripts/ acquisition, construction, testing and audit scripts
src/ forward-evidence ledger, return conventions, evaluation
config/ frozen manifests, pre-registrations, forward protocols
docs/ runbooks, protocols, the research queue
evidence/ saved outputs of every experiment
PROJECT_HISTORY.md the full append-only record, 312 steps
CLAUDE.md the operating rules
cd 2.0 && python -m venv .venv && ./.venv/bin/pip install -r requirements.txt
./.venv/bin/python scripts/rebuild_all_data.py --core # panels the dashboard and clocks need
cd dashboard && npm install && npm run dev
Raw acquisition caches are not stored in the repository — they are large and every byte is
re-downloadable from SEC EDGAR, FINRA and public price sources. rebuild_all_data.py
re-acquires them; --core fetches only what the dashboard and the forward clocks read.
Point-in-time vintage snapshots cannot be re-downloaded, because they record what a source said on a given date. Those are preserved in the repository, which is why a clone is around 400MB rather than a few tens of megabytes: the alternative was a repository that cannot reproduce its own point-in-time claims.
scripts/slim_repository.py shows what is safe to remove and what is not, with a restore
command for every path. It defaults to a dry run.
Research only. Nothing in this repository is investment advice, and every configuration
carries live_trading_enabled: false.