Skip to content

Commit 896ec19

Browse files
Lot 252-300: 49 new teardowns — bench reaches 301 studies
Fills the 252-300 gap (301-triple-rsi already existed), so the bench is now a continuous 1..301. Theme: sentiment/alt-data, positioning & flows, macro folk indices, collectibles, weather & cosmos, new calendar/holidays, new crypto, and cultural/sport event studies. Verdicts for the lot: 2 Real (287 Easter-Effect = pre-holiday effect, the lot's only Fragile; 291 Doge-Tweets, Mirage), 15 Weak, 32 None — all but one Mirage on tradability. Bench score now 36 Real / 118 Weak / 146 None and 3 Investable / 62 Fragile / 235 Mirage across 300 stamped (study 14 pre-reg). Each study ships the two executed notebooks, offline/deterministic module + tests, docs/references + results. README table, tests.yml, docs/bench.md families & score, and docs/bench.json + bench_map.png all synced to 301. Gate: 301 complete, 0 failures.
1 parent 87a8c18 commit 896ec19

699 files changed

Lines changed: 137819 additions & 27 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/tests.yml

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -789,6 +789,153 @@ jobs:
789789
- name: Study 251 — Crypto-Reversal test-suite
790790
run: pytest -q studies/251-crypto-reversal/tests
791791

792+
- name: Study 252 — Search-Trends test-suite
793+
run: pytest -q studies/252-google-trends/tests
794+
795+
- name: Study 253 — Wiki-Views test-suite
796+
run: pytest -q studies/253-wikipedia-views/tests
797+
798+
- name: Study 254 — WSB-Mentions test-suite
799+
run: pytest -q studies/254-wsb-mentions/tests
800+
801+
- name: Study 255 — Fear-Greed test-suite
802+
run: pytest -q studies/255-fear-greed-index/tests
803+
804+
- name: Study 256 — Twitter-Mood test-suite
805+
run: pytest -q studies/256-twitter-mood/tests
806+
807+
- name: Study 257 — AAII-Sentiment test-suite
808+
run: pytest -q studies/257-aaii-sentiment/tests
809+
810+
- name: Study 258 — Baker-Wurgler test-suite
811+
run: pytest -q studies/258-baker-wurgler/tests
812+
813+
- name: Study 259 — News-Tone test-suite
814+
run: pytest -q studies/259-news-tone/tests
815+
816+
- name: Study 260 — Margin-Debt test-suite
817+
run: pytest -q studies/260-margin-debt/tests
818+
819+
- name: Study 261 — Put-Call-Ratio test-suite
820+
run: pytest -q studies/261-put-call-ratio/tests
821+
822+
- name: Study 262 — Short-Interest test-suite
823+
run: pytest -q studies/262-short-interest/tests
824+
825+
- name: Study 263 — Insider-Buying test-suite
826+
run: pytest -q studies/263-insider-buying/tests
827+
828+
- name: Study 264 — Buffett-Indicator test-suite
829+
run: pytest -q studies/264-buffett-indicator/tests
830+
831+
- name: Study 265 — IPO-Volume test-suite
832+
run: pytest -q studies/265-ipo-volume/tests
833+
834+
- name: Study 266 — Misery-Index test-suite
835+
run: pytest -q studies/266-misery-index/tests
836+
837+
- name: Study 267 — M2-Growth test-suite
838+
run: pytest -q studies/267-m2-growth/tests
839+
840+
- name: Study 268 — Sahm-Rule test-suite
841+
run: pytest -q studies/268-sahm-rule/tests
842+
843+
- name: Study 269 — Baltic-Dry test-suite
844+
run: pytest -q studies/269-baltic-dry/tests
845+
846+
- name: Study 270 — Underwear-Index test-suite
847+
run: pytest -q studies/270-underwear-index/tests
848+
849+
- name: Study 271 — Cardboard-Box test-suite
850+
run: pytest -q studies/271-cardboard-box/tests
851+
852+
- name: Study 272 — Champagne-Index test-suite
853+
run: pytest -q studies/272-champagne-index/tests
854+
855+
- name: Study 273 — Lego-Returns test-suite
856+
run: pytest -q studies/273-lego-returns/tests
857+
858+
- name: Study 274 — Fine-Wine test-suite
859+
run: pytest -q studies/274-fine-wine/tests
860+
861+
- name: Study 275 — Whisky-Cask test-suite
862+
run: pytest -q studies/275-whisky-cask/tests
863+
864+
- name: Study 276 — Sneaker-Resale test-suite
865+
run: pytest -q studies/276-sneaker-resale/tests
866+
867+
- name: Study 277 — Trading-Cards test-suite
868+
run: pytest -q studies/277-trading-cards/tests
869+
870+
- name: Study 278 — Sunshine-Effect test-suite
871+
run: pytest -q studies/278-sunshine-effect/tests
872+
873+
- name: Study 279 — Geomagnetic-Storms test-suite
874+
run: pytest -q studies/279-geomagnetic-storms/tests
875+
876+
- name: Study 280 — Solar-Eclipse test-suite
877+
run: pytest -q studies/280-solar-eclipse/tests
878+
879+
- name: Study 281 — El-Nino test-suite
880+
run: pytest -q studies/281-el-nino/tests
881+
882+
- name: Study 282 — NYC-Temperature test-suite
883+
run: pytest -q studies/282-nyc-temperature/tests
884+
885+
- name: Study 283 — Hurricane-Season test-suite
886+
run: pytest -q studies/283-hurricane-season/tests
887+
888+
- name: Study 284 — Equinox-Effect test-suite
889+
run: pytest -q studies/284-equinox-effect/tests
890+
891+
- name: Study 285 — St-Patricks-Day test-suite
892+
run: pytest -q studies/285-st-patricks-day/tests
893+
894+
- name: Study 286 — Valentines-Day test-suite
895+
run: pytest -q studies/286-valentines-day/tests
896+
897+
- name: Study 287 — Easter-Effect test-suite
898+
run: pytest -q studies/287-easter-effect/tests
899+
900+
- name: Study 288 — Ramadan-Effect test-suite
901+
run: pytest -q studies/288-ramadan-effect/tests
902+
903+
- name: Study 289 — Diwali-Muhurat test-suite
904+
run: pytest -q studies/289-diwali-muhurat/tests
905+
906+
- name: Study 290 — September-Effect test-suite
907+
run: pytest -q studies/290-september-effect/tests
908+
909+
- name: Study 291 — Doge-Tweets test-suite
910+
run: pytest -q studies/291-doge-tweets/tests
911+
912+
- name: Study 292 — Bitcoin-Hashrate test-suite
913+
run: pytest -q studies/292-bitcoin-hashrate/tests
914+
915+
- name: Study 293 — MVRV-Ratio test-suite
916+
run: pytest -q studies/293-mvrv-ratio/tests
917+
918+
- name: Study 294 — Coinbase-Rank test-suite
919+
run: pytest -q studies/294-coinbase-rank/tests
920+
921+
- name: Study 295 — Stablecoin-Supply test-suite
922+
run: pytest -q studies/295-stablecoin-supply/tests
923+
924+
- name: Study 296 — Oscars-Effect test-suite
925+
run: pytest -q studies/296-oscars-effect/tests
926+
927+
- name: Study 297 — March-Madness test-suite
928+
run: pytest -q studies/297-march-madness/tests
929+
930+
- name: Study 298 — Swiftonomics test-suite
931+
run: pytest -q studies/298-swiftonomics/tests
932+
933+
- name: Study 299 — Keynote-Drift test-suite
934+
run: pytest -q studies/299-keynote-drift/tests
935+
936+
- name: Study 300 — Sports-Sentiment test-suite
937+
run: pytest -q studies/300-sports-sentiment/tests
938+
792939
- name: Study 301 — Triple-RSI test-suite
793940
run: pytest -q studies/301-triple-rsi/tests
794941

README.md

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ Almost everything ends up bottom-right; three chips are green — and none of th
4949
> (The static image above never gets less readable; the interactive page is where it scales.)
5050
5151
The counts, the mortality by family of idea, and the five lessons the bench keeps
52-
teaching are in **[What 252 teardowns taught us](docs/bench.md)**.
52+
teaching are in **[What 301 teardowns taught us](docs/bench.md)**.
5353

5454
---
5555

@@ -325,6 +325,55 @@ single source of truth (it's what the map and the live page are built from) —
325325
| **[249](studies/249-index-inclusion/)** | **Index-Inclusion** | Is there still a free pop when a stock joins the S&P 500? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
326326
| **[250](studies/250-reverse-split/)** | **Reverse-Split** | Is a reverse split the kiss of death it's reputed to be? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
327327
| **[251](studies/251-crypto-reversal/)** | **Crypto-Reversal** | Is the crypto reversal premium real, or just momentum? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
328+
| **[252](studies/252-google-trends/)** | **Search-Trends** | Do spikes in Google searches for stock names front-run their returns? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
329+
| **[253](studies/253-wikipedia-views/)** | **Wiki-Views** | Do surging Wikipedia page-views on tickers predict the next move? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
330+
| **[254](studies/254-wsb-mentions/)** | **WSB-Mentions** | Does the r/WallStreetBets mention count call the meme move? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
331+
| **[255](studies/255-fear-greed-index/)** | **Fear-Greed** | Can CNN's Fear & Greed Index time the market? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
332+
| **[256](studies/256-twitter-mood/)** | **Twitter-Mood** | Does aggregate Twitter mood predict tomorrow's market? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
333+
| **[257](studies/257-aaii-sentiment/)** | **AAII-Sentiment** | Is the AAII bull-bear survey a contrarian timing tool? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
334+
| **[258](studies/258-baker-wurgler/)** | **Baker-Wurgler** | Does the Baker-Wurgler sentiment index forecast returns? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
335+
| **[259](studies/259-news-tone/)** | **News-Tone** | Does aggregate news tone move the next day's tape? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
336+
| **[260](studies/260-margin-debt/)** | **Margin-Debt** | Is record NYSE margin debt a contrarian sell signal? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
337+
| **[261](studies/261-put-call-ratio/)** | **Put-Call-Ratio** | Does the CBOE put/call ratio time market bottoms? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
338+
| **[262](studies/262-short-interest/)** | **Short-Interest** | Do heavily shorted stocks bounce or bleed? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
339+
| **[263](studies/263-insider-buying/)** | **Insider-Buying** | Does aggregate insider buying (Form 4) forecast returns? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
340+
| **[264](studies/264-buffett-indicator/)** | **Buffett-Indicator** | Does market-cap-to-GDP tell you when to leave the party? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
341+
| **[265](studies/265-ipo-volume/)** | **IPO-Volume** | Is a flood of IPOs the bell at the top? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
342+
| **[266](studies/266-misery-index/)** | **Misery-Index** | Does the misery index (inflation+unemployment) call equity returns? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
343+
| **[267](studies/267-m2-growth/)** | **M2-Growth** | Does money-supply (M2) growth drive the stock market? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
344+
| **[268](studies/268-sahm-rule/)** | **Sahm-Rule** | Is the Sahm recession trigger a usable sell button? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
345+
| **[269](studies/269-baltic-dry/)** | **Baltic-Dry** | Does the Baltic Dry shipping index lead the stock market? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
346+
| **[270](studies/270-underwear-index/)** | **Underwear-Index** | Does men's-underwear sales (Greenspan) signal the economy? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
347+
| **[271](studies/271-cardboard-box/)** | **Cardboard-Box** | Does cardboard-box / rail-freight output forecast the cycle? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
348+
| **[272](studies/272-champagne-index/)** | **Champagne-Index** | Does champagne consumption mark the top? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
349+
| **[273](studies/273-lego-returns/)** | **Lego-Returns** | Do retired Lego sets beat the stock market? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
350+
| **[274](studies/274-fine-wine/)** | **Fine-Wine** | Does fine wine (Liv-ex 100) diversify or just lag? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
351+
| **[275](studies/275-whisky-cask/)** | **Whisky-Cask** | Are whisky casks the alternative asset they're sold as? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
352+
| **[276](studies/276-sneaker-resale/)** | **Sneaker-Resale** | Does the sneaker resale market (StockX) beat stocks? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
353+
| **[277](studies/277-trading-cards/)** | **Trading-Cards** | Are Pokemon/sports cards an investable asset class? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
354+
| **[278](studies/278-sunshine-effect/)** | **Sunshine-Effect** | Does NYC sunshine lift the NYSE? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
355+
| **[279](studies/279-geomagnetic-storms/)** | **Geomagnetic-Storms** | Do geomagnetic storms depress returns? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
356+
| **[280](studies/280-solar-eclipse/)** | **Solar-Eclipse** | Do solar eclipses spook the market? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
357+
| **[281](studies/281-el-nino/)** | **El-Nino** | Does El Nino / La Nina move equities or commodities? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
358+
| **[282](studies/282-nyc-temperature/)** | **NYC-Temperature** | Does the temperature on Wall Street move the tape? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
359+
| **[283](studies/283-hurricane-season/)** | **Hurricane-Season** | Does Atlantic hurricane season sink stocks? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
360+
| **[284](studies/284-equinox-effect/)** | **Equinox-Effect** | Do equinoxes and solstices mark turning points? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
361+
| **[285](studies/285-st-patricks-day/)** | **St-Patricks-Day** | Is there a St. Patrick's Day bump? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
362+
| **[286](studies/286-valentines-day/)** | **Valentines-Day** | Does the market love Valentine's Day? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
363+
| **[287](studies/287-easter-effect/)** | **Easter-Effect** | Is there a Good-Friday / Easter seasonal? | ![Real](https://img.shields.io/badge/Real-2ea44f?style=flat-square) | ![Fragile](https://img.shields.io/badge/Fragile-dab617?style=flat-square) |
364+
| **[288](studies/288-ramadan-effect/)** | **Ramadan-Effect** | Does Ramadan lift MENA (or global) equities? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
365+
| **[289](studies/289-diwali-muhurat/)** | **Diwali-Muhurat** | Does Diwali Muhurat trading really pay in India? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
366+
| **[290](studies/290-september-effect/)** | **September-Effect** | Is September really the market's worst month? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
367+
| **[291](studies/291-doge-tweets/)** | **Doge-Tweets** | Did Elon's tweets really move Dogecoin? | ![Real](https://img.shields.io/badge/Real-2ea44f?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
368+
| **[292](studies/292-bitcoin-hashrate/)** | **Bitcoin-Hashrate** | Does Bitcoin's hash rate predict its price? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
369+
| **[293](studies/293-mvrv-ratio/)** | **MVRV-Ratio** | Does on-chain MVRV time Bitcoin tops and bottoms? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
370+
| **[294](studies/294-coinbase-rank/)** | **Coinbase-Rank** | Is the Coinbase App-Store rank a top signal? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
371+
| **[295](studies/295-stablecoin-supply/)** | **Stablecoin-Supply** | Does stablecoin supply growth fuel the next leg? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
372+
| **[296](studies/296-oscars-effect/)** | **Oscars-Effect** | Does the market care who wins Best Picture? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
373+
| **[297](studies/297-march-madness/)** | **March-Madness** | Does March Madness distract the market lower? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
374+
| **[298](studies/298-swiftonomics/)** | **Swiftonomics** | Did the Eras Tour move Live Nation (LYV) or the tape? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
375+
| **[299](studies/299-keynote-drift/)** | **Keynote-Drift** | Buy the rumor, sell the Apple keynote? | ![None](https://img.shields.io/badge/None-c0392b?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
376+
| **[300](studies/300-sports-sentiment/)** | **Sports-Sentiment** | Does a national-team loss sink the market next day? | ![Weak](https://img.shields.io/badge/Weak-dab617?style=flat-square) | ![Mirage](https://img.shields.io/badge/Mirage-c0392b?style=flat-square) |
328377
| **[301](studies/301-triple-rsi/)** | **Triple-RSI** | A viral "90% win rate" RSI(5) bounce — real edge, or the oldest illusion in the book? | ![Real](https://img.shields.io/badge/Real-2ea44f?style=flat-square) | ![Fragile](https://img.shields.io/badge/Fragile-dab617?style=flat-square) |
329378

330379
</details>

0 commit comments

Comments
 (0)