Moon phases, eclipses and planets against 55 years of stock returns
We ran 168 tests of celestial and calendar effects and corrected for running so many. Three passed the strictest correction: the Monday effect, which is real, and two long astronomical cycles, which are artefacts of a short sample.
What we tested
We wanted to see how easily market data produces results that look real and aren't. So we took the ideas with the least reason to work: lunar phases, eclipses, geomagnetic storms, sunspots, retrograde planets, planetary aspects. We added seven calendar effects, like the Monday effect and options expiry week, as a control group, since some of those have held up in the literature.
That made 26 hypotheses, each tested against daily returns on the NASDAQ Composite from 1971 to 2026, 14,010 sessions, over the same day, the next five days and the next twenty-one: 168 tests in all. Every one got the same treatment, with no tuning: average return inside the window against outside it, standard errors that allow for autocorrelation, bootstrap intervals, and a correction for having run 168 tests at once.
What we found
| Tests | p under 0.05 | After Benjamini–Hochberg | After Bonferroni | |
|---|---|---|---|---|
| Celestial | 135 | 17 | 2 | 2 |
| Calendar controls | 33 | 9 | 3 | 1 |
| All | 168 | 26 | 5 | 3 |
Without a correction, 26 results look significant. That's the number someone fishing for a story would report. With the strictest correction, three are left. The top of the table:
| Hypothesis | Window | Horizon | Effect | p | Benjamini–Hochberg | Bonferroni |
|---|---|---|---|---|---|---|
| day of week | monday | same day | −14bp | <0.0001 | 0.0001 | 0.0001 |
| metonic cycle | high | next 21 days | +121bp | 0.0001 | 0.0104 | 0.0208 |
| saros cycle | high | next 21 days | +116bp | 0.0002 | 0.0117 | 0.0352 |
| opex week | opex week | next 5 days | −35bp | 0.0004 | 0.0157 | 0.0626 |
| day of week | wednesday | same day | +8bp | 0.0022 | 0.0754 | 0.3771 |
| planetary aspects generic | opposition | next 21 days | −116bp | 0.0057 | 0.1308 | 0.9647 |
The first is the Monday effect: Mondays have been weaker than other days, by about 14 basis points. It's one of the oldest findings in the literature, and finding it here mostly tells us the method works.
Two that should not have passed
The next two are the Metonic cycle, 19 years, and the Saros cycle, about 18. Both say returns were about 1.2% higher over the following month in one third of their cycle, and both clear the strictest correction. Neither means anything.
The sample is 55.6 years long, so it holds about 2.9 Metonic cycles and 3.1 Saros cycles. Cutting a cycle into thirds with that little history doesn't compare phases of a cycle. It compares a few long stretches of market history, and some decades were simply better than others. Fourteen thousand daily returns make the standard errors look tight, but there are only about three independent looks at a 19-year cycle, and no statistical adjustment makes up for that. And because the two cycles are nearly the same length, they divide the sample almost identically, so they are really one result counted twice.
Why we keep it
David Leinweber once searched a United Nations database and found that butter production in Bangladesh explained 75% of the S&P 500's annual returns over a decade. Adding US cheese production took it to 95%, and adding sheep took it to 99%. He published it as "Stupid Data Miner Tricks", a warning about exactly this.
This study is the same warning, run carefully and at scale. Every research note we publish is held to it: count every test you ran, correct for it, and ask whether the sample is long enough to say anything at all.
The pre-registration
The hypotheses, tests and corrections were written down in one document before the testing code existed, and it hasn't changed since it went into version control on 5 September 2026. You can read it in full at /preregistration.md. Its SHA-256 fingerprint is:
a10126e3840e7231278f65925499911d0a8fc2a6e818fc6a9a6d497571806727
Version control for this project started that day, so the record shows the document hasn't changed since then; it can't prove the order things happened in before it. The repository is private, so the date is our word. The fingerprint you can check yourself: if the document is ever edited, it will stop matching. One hypothesis, the Bradley siderograph, was not run, because its published weights could not be found and the pre-registration rules out guessing them.
This note describes what the data showed over the period stated. It isn't a recommendation or a trade idea. We trade on our own research, but we don't publish what we trade.