Write the rules first
Before looking at results, the question, the data, the test and the pass mark were written down and frozen, so the answer could not be bent after the fact.
Every study, from first work to final result. Select a row to jump to its report.
Before looking at results, the question, the data, the test and the pass mark were written down and frozen, so the answer could not be bent after the fact.
The most recent slice of data was sealed off. Research only used the older data. The sealed slice was opened once, at the end, to see if the idea still worked on data it had never seen.
Each study set a minimum gain (the "floor") that would cover trading costs with room to spare. Beating zero was not enough.
Where possible, the same test was run on random ordinary days. If the placebo also "worked", the result was noise.
An idea that passed would trade with simulated money first, and only after that with a small amount of real money. None reached real money.
Kalshi is a US exchange where people trade yes/no contracts that pay $1 if something happens, such as "Bitcoin closes above $85,000 at 5 pm". These studies asked whether a computer model could price those contracts better than the market.
The questionCan a model trained on past crypto prices estimate the chance that Bitcoin or Ether ends inside a Kalshi price band better than the market's own price does, well enough to profit after fees?
What we foundThe model only looked good on the calm period it was trained on. On live markets it was confidently wrong, and it lost money within two days. No real money was ever used.
The promised line climbs to about +$75k while real results slide to about -$7.4k
WhyAn early study found spot crypto prices move before Kalshi's contract prices, suggesting the market might be slow and beatable by a model.
DataKalshi hourly Bitcoin/Ether contracts (KXBTC, KXBTCD, KXETH, KXETHD) with 1-minute price history plus spot crypto prices (from FMP); pinned research dataset spanning roughly 2026-05-10 to 2026-07-08.
MethodAn AI agent repeatedly edited a single model file and was scored by a frozen, tamper-proof scorer (a Sharpe-style score across 5 data slices). A final 'sealed' test set was held back. Before spending it, the winning model was run as a zero-money paper trader on live markets to see if its claimed edge showed up.
Cost$0 real money; about 2 days of paper trading to falsify
The questionWith a stricter, more honest scorer that only trains on the past, can a model still beat Kalshi's crypto contract prices?
What we foundThe model scored well on history but lost money when paper trading live, so the final exam was deliberately left unused. It was kept only as a measuring stick.
Most gains came early; the search levelled off near 1.44
WhyThe v1 post-mortem blamed a scorer that let the model peek at future data and a single-regime dataset. v2 fixed both, so a model that scored well here should be more trustworthy.
DataKalshi hourly Bitcoin/Ether contracts on the full archive (about March to July 2026, roughly 2.2 times v1's history), with spot prices; about 41,000 simulated trades in the winning model's research score.
MethodWalk-forward testing: each test period is scored only with a model trained on earlier data. The model also had to be better calibrated than the market on the exact trades it would take. An AI agent ran 572 trials. The sealed final test would only be spent if a live paper trader confirmed the edge over about two weeks.
Cost$0 real money
The questionWhen Bitcoin or Ether moves on the spot market, how long does it take Kalshi's contract prices to follow?
What we foundKalshi crypto prices do trail the spot market, but only by about 20 seconds. A bot deciding every 5 minutes cannot use this.
Peak at +20 seconds, nothing before zero, gone by +60 seconds
WhyIf Kalshi lags spot, a fast trader could act in the gap. It could also explain why the 5-minute paper trader underperformed.
DataOur 10-second quote recordings (spot quotes from FMP plus Kalshi best bid/ask), 2026-07-16 to 07-20, 5 days; for example 600 KXBTCD markets.
MethodCorrelated each spot move with Kalshi price changes at delays from -60 to +300 seconds. A clean result shows nothing at negative delays (Kalshi never leads) and a peak at some positive delay.
CostNo direct cost recorded.
The questionWhen the v2 model trades live Kalshi crypto markets with pretend money, does it earn what it predicts it will earn per trade?
What we foundAcross 222,631 pretend trades the model expected to make about 3.6 cents a trade and instead lost about 2.6 cents. The shortfall never closed.
The two lines split from day one and keep diverging at a steady rate
Expected stays near +3.6 cents; realized sits below zero almost every day
WhyPaper trading is the cheapest honest check before risking money. The gap between predicted and realized profit also measures how much a trader loses to better-informed counterparties (adverse selection).
DataOur own paper-trading ledger (prediction/paper/ledger.jsonl): 222,631 settled one-contract v2 trades on Kalshi crypto contracts, 2026-07-17 to 2026-09-23.
MethodEvery 5 minutes the model picked contracts it thought were mispriced and logged a pretend order, filled at the next real quote. At settlement each trade's result was compared with the model's expected profit at the time of the decision. A side study checked whether stale data explained the losses.
Cost$0 real money; ran 2026-07-17 to 2026-09-23
The questionIf a bot only posts resting orders (which pay no fee on these series) and reacts within seconds to spot moves, can it make money after accounting for which orders actually get filled?
What we foundPosting resting orders did not escape the problem. The orders that get filled are mostly the ones the market wanted to fill, so the bot loses.
WhyTaking liquidity lost about 6 cents a trade. Spot leads Kalshi by about 20 s, maker fees are $0, and H7 shows when not to post, so a fast maker bot was the remaining candidate.
Data1,110,146 event-driven decision moments from our 5-second quote recordings, 2026-07-21 to 08-26 (28 research days, 1 embargo day, 8 sealed days), with a frozen fill simulator that only counts an order filled if the price trades strictly through it.
MethodPre-registered design on 07-21, before the data existed. The scorer requires positive skill and better calibration than the market on filled trades in each of six time slices; the starting score is 0 by design. An AI agent then ran about 340 experiments in one 12-hour window.
Cost$0 money; one 12-hour run on the local LLM
The questionNear expiry, do cheap 'longshot' and expensive 'favourite' Kalshi crypto contracts win more or less often than their prices imply?
What we foundThere was a pattern in older data, but it flipped on fresh data and kept shrinking. It was not used.
The original tilt (cheap too cheap, dear too dear) mostly disappears on fresh data
The 30-minute cheap-contract gap shrinks week by week
WhyBetting markets often overprice longshots (the favourite-longshot bias). If Kalshi crypto shows a stable pattern, a model could correct prices toward reality.
DataSettled Kalshi crypto markets with 1-minute price history: about 35,000 liquid markets 2026-01-01 to 07-25, then a fresh strip after 07-25; weekly cumulative readings to 09-20 (about 93,000 market readings per horizon).
MethodGrouped contracts by price (0-10 cents, 10-20 cents, ...) at 30, 15 and 5 minutes before close, and compared the win rate with the price. The re-test used confidence bands that account for related strikes and checked whether the pattern held on fresh data.
CostNo direct cost recorded.
The questionDoes a measure of how 'choppy' Bitcoin's price is right now help predict whether Ether's volatility will rise over the next 5-60 minutes, beyond what Ether's own data says?
What we foundThe link is real and stable but small. It is useful as one input to a model, not a trading strategy by itself.
The real signal stays near +0.10-0.11; the placebo stays near zero
WhyBitcoin is thought to lead price discovery in crypto. A cross-asset volatility clue could be a cheap feature for a crypto model.
DataSpot Bitcoin and Ether quotes from our seconds-level quote recordings (quotes from FMP): 11 days at first (to 07-26), a fresh 31-day window 07-27 to 08-26, then weekly re-reads to 09-20 (66 days).
MethodMeasured Bitcoin's choppiness with the 'Roll' estimator after removing what Ether's own state explains, then correlated it with Ether's future volatility change. A shuffled-days placebo checks it is not a time-of-day effect. A frozen re-test on fresh data followed.
CostNo direct cost recorded.
The questionIf you post a resting order on Kalshi crypto, do fills during hectic order-book activity lose more than fills during calm periods?
What we foundYes: when the order book is busy, your orders get filled more often and lose more. But even calm-book fills lose money, so this says when not to trade, not how to profit.
Every bucket loses; busier books lose more
WhyThe paper traders were losing about 6 cents a trade to better-informed counterparties. A signal for when not to post orders could reduce that loss for a maker strategy.
DataOur 5-second quote recordings, 2026-07-16 to 07-30 (15 days, 13,429 markets, about 781,000 usable rows); fills simulated from real quote movements.
MethodPre-registered test: a book-activity score was computed for each moment and split into four buckets using cutpoints fixed on early data. On later held-out data we measured how much each simulated fill lost 60 seconds later. Pass required at least 1 cent between calm and hot books plus a randomization test.
CostNo direct cost recorded.
Checks on Kalshi contracts tied to interest rates, oil and currencies. The main finding was that these markets trade too rarely to test or trade.
The questionDo Kalshi's daily 10-year Treasury yield contracts lag the bond market (a Treasury bond fund) by a minute or more?
What we foundThe market was too thin to test. Kalshi's 10-year yield contracts are quoted only about a quarter of the time.
WhyThe same spot-leads-Kalshi pattern had appeared in crypto and stock indexes; testing a rates market checks whether it generalises.
DataKalshi KXUST10AD contracts (series began 2026-07-08) with 1-minute prices, and minute prices of a Treasury bond fund (from FMP), 2026-07-01 to 08-27: 360+ markets, about 45,000 aligned minutes.
MethodPre-registered lead/lag test that needed a complete ladder of strike prices quoted at the same minute for at least 30 minutes in a row on at least 10 days. Eligibility gates were checked before any result was computed.
Cost20 FMP + 240 Kalshi candle calls for the re-collection; $0
The questionDo Kalshi's Brent crude oil contracts reprice about a minute after the oil price moves, and is that delay big enough to trade?
What we foundThe delay is real but worth about a tenth of a cent per contract, far too little to trade.
WhyA third asset class (after crypto and stock indexes) would show whether 'spot leads Kalshi' is a general pattern.
DataKalshi Brent contracts (KXBRENTD, KXBRENTW) with 1-minute prices and Brent spot minute prices (from FMP), 2026-07-01 to 07-30: 29 days, 549 usable markets.
MethodPre-registered test with a randomization null and an economic floor: the lead had to be worth at least the 3-cent cost of posting (2-cent spread plus 1 cent).
CostNo direct cost recorded.
The questionIs there enough Kalshi euro/US-dollar trading to test whether the currency market leads Kalshi's EURUSD contracts?
What we foundOnly one of three currency series still trades, and it has prices in fewer than 1 in 5 minutes. The test was never run.
WhyAnother asset class for the spot-leads-Kalshi pattern, using a currency the forex program already covered.
DataKalshi EURUSD series (daily KXEURUSD, hourly KXEURUSDH, weekly KXEURUSDW) and EURUSD minute prices (from FMP), 2026-07-08 to 08-06; 330 markets kept.
MethodA coverage-only check (no results computed) to see if the pre-registered eligibility rules could be met before running the actual test.
Cost30 FMP + 330 Kalshi candle calls; $0
Politicians and company insiders must publicly report their stock trades. These studies asked whether copying those trades after they become public beats the stock market.
The questionMembers of Congress must publicly report their stock trades. When such a report is published, does the stock rise (or fall) over the following days enough that copying it would make money?
What we foundBy the time a congressional trade is public (about a month after it happened), the stock no longer moves because of it. Copying these trades had no edge on this data.
Every test sits well below the +20 bp floor; the intervals straddle zero. The placebo (ordinary days) came out at -22 bp, which is why that check failed.
WhyCopying politicians' trades is a popular idea, the data was already included in the FMP subscription, and a paper-trading stock account (paper broker) had just become available as a place to test it. The coverage check showed filings arrive a median 27 days after the trade, so the only testable question was whether the filing itself still moves the stock.
DataCongressional trade disclosures from FMP (Senate and House feeds; 39,164 filings found in the coverage probe), limited to March 2023 to August 2026 when both chambers are covered, stocks only, de-duplicated; daily stock and SPY prices from FMP. After filters: 14,745 stock-day events; 11,821 research-window events (5,270 buy events, 6,551 sell events).
MethodAll rules, tests, a cost floor and pass/fail criteria were written down and frozen before any return was computed (pre-registration). The simulated trade buys at the first market open after the filing date and measures return against the S&P 500 fund (SPY) after 1, 5 and 21 trading days. A 'placebo' ran the same measurement on ordinary days for the same stocks, and the most recent six months (March-August 2026) were locked away as an untouched final test to be used only if the main test passed. The analysis was run exactly once.
CostAbout two days of work and ~2,200 FMP data calls; $0 of real money.
The questionWhen a company executive, director or major shareholder buys their own company's stock on the open market, they must file a report (Form 4) within two business days. Does the stock beat the market in the days after that report is published?
What we foundBuying stocks after insiders report their own purchases did not beat the market by anywhere near enough to pay trading costs. The market had already priced the news.
The main 5-day result (+5 bp) is far below the +50 bp floor. The placebo and pre-filing bars show these stocks were already falling, which is why the placebo check failed.
WhyInsider purchases are among the best-documented signals in the academic literature, and unlike congressional filings they become public within two business days. It reused the machinery just built for the congressional study.
DataInsider purchase filings from FMP (open-market purchases only, Form 4, January 2023 to August 2026) and daily prices from FMP. Only 'tradable' stocks were kept (price at least $5 and at least $1M of typical daily trading). 11,752 tradable research-window events; 18,670 untradable events excluded.
MethodSame approach as the congressional study: rules, five tests, a cost floor and a placebo were frozen before any results. The simulated trade buys at the next open after the filing date and compares to SPY over 1, 5 and 21 trading days. The last six months were kept locked as a final test, and the analysis was run exactly once.
CostOne working session across two days and 5,091 FMP data calls; $0 of real money.
Whether sports contracts on Kalshi are mispriced, and how Kalshi compares with Polymarket US, a competing exchange.
The questionFor the same sports games and bitcoin price markets, which venue has tighter prices (smaller gap between buy and sell prices) and more contracts available near the current price: Kalshi or Polymarket US?
What we foundPolymarket US was cheaper and deeper for sports but worse for crypto. The decision was made not to pursue sports or open a Polymarket account for now, so the study was closed and its data kept.
Kalshi vs Polymarket US, medians over matched 5-minute snapshots
Kalshi vs Polymarket US, medians over matched 5-minute snapshots
Kalshi vs Polymarket US, medians over matched 5-minute snapshots
WhyTrading fees on Kalshi were a concern, and Polymarket US (a newly regulated US venue) charged lower taker fees and even paid makers. A second venue would only matter if its order books were actually usable.
DataPublic order-book snapshots from both venues every 5 minutes, 19 clean days (2026-08-08 to 08-26): 521,778 usable records across 245 matched pairs (MLB and NFL game winners plus 4 bitcoin price markets). No accounts were needed.
MethodA collector matched identical markets across the two venues and recorded both order books side by side. The report compared median spreads and the number of contracts available within 1 and 5 cents of the middle price. This was a measurement, not a trading test.
CostAbout three weeks of automatic collection (about 1.7 GB of order-book data kept); $0.
The questionOn Kalshi's 'who wins this game' markets, does a team priced at, say, 30 cents (a 30% implied chance) actually win about 30% of the time? Or are underdogs systematically overpriced and favorites underpriced (the 'favorite-longshot bias')?
What we foundKalshi's game-winner prices are accurate. A team priced at 30% wins about 30% of the time, so there is no systematic mispricing to profit from.
Points hug the diagonal: a team priced at X% wins about X% of the time. Only the two middle bins (near 50/50) sit about 2 cents off.
WhyThe favorite-longshot bias is a well-known betting pattern, the test was free (Kalshi's public archive of settled games), and the same technique had already been used on crypto markets. It was the recommended next program after the filings studies.
DataKalshi's public archive of settled game-winner markets: 29,662 markets / 14,831 games across 7 leagues (MLB, NBA, NHL, WNBA, NFL, college football, college basketball), April 2025 to September 2026. One side (home team) per game, priced 5 hours before the market closed. 12,281 games in the research window.
MethodFirst a check that the data existed without looking at any outcome. Then rules, five tests, a minimum-size floor and a final locked test block (July-September 2026, 1,177 games) were frozen before the analysis. The single run compared each price band with how often those teams actually won.
CostTwo days and ~16,000 free Kalshi API calls; $0.
The questionWhich ways of trading sports prediction markets automatically could realistically make money, and in what order should they be tested?
What we foundThe one free test that could run (H-Sports-5) failed, the Polymarket-based ideas were closed by the decision to avoid Polymarket, and the rest need paid data or new infrastructure. The brief is parked.
WhySports was the area of interest after the crypto results, and Polymarket US had emerged as a possible cheaper second venue for sports.
DataDesk research plus the Kalshi vs Polymarket US depth data; no new experiments ran from the brief itself.
MethodThe brief ranked five ideas (H-Sports-1 to 5) by cost and evidence, gating paid data behind free tests first. H-Sports-5 (price fairness) was run separately as a full pre-registered study.
CostNo direct cost recorded.
Smaller questions: how fast economic numbers arrive in the data feed, whether "buying the dip" helps a long-term investor, and ideas that were surveyed but never run.
The questionWhen the US government publishes weekly jobless-claims numbers at 8:30 a.m. Eastern, how many seconds pass before the number appears in the FMP data feed? And is that fast enough to trade Kalshi's jobless-claims markets before they adjust?
What we foundFMP shows the jobless-claims number one to several minutes after it is released. Anyone reading the government release directly has already moved the market, so this strategy cannot work on FMP data (recorded as NO-GO).
Every week the number arrived at least a minute after release, typically about two minutes, which is too slow to trade.
WhyKalshi lists markets on economic releases, and the FMP subscription carried an economic calendar with actual numbers. A strategy that reads the number and trades within seconds only works if the data arrives within seconds.
DataThe script's own timing measurements: FMP's economic calendar checked every 2 seconds around 11 weekly jobless-claims releases (2026-07-16 to 2026-09-24). Only the delay in seconds is reported here.
MethodA go/no-go measurement before building anything, with the kill condition set in advance: if FMP lags the release by minutes, the strategy dies. After the first reading a weekly Thursday job kept measuring to see if it was representative.
CostNo extra cost beyond the existing FMP subscription; a small weekly job.
The questionBeyond the ideas that were tested, what else could the FMP Premium subscription have been used for?
What we foundThese were ideas, not experiments. None was tested, and with FMP cancelled they are closed unless a new data source is found.
WhyThe subscription was heavily under-used (about 0.06% of its call limit in July), so its data was surveyed for more uses.
DataLive probes of the FMP subscription (July 2026) and a literature sweep.
MethodIdeas were ranked by value and effort. The top three were implemented or measured (fast quote polling, the index lead-lag study, and the economic-release timing test). The rest were deliberately parked.
CostNo direct cost recorded.
The questionIf a bot invests a paycheck into an S&P 500 fund in small hourly amounts and never sells, could a model that chooses when to buy more or less (delaying by up to 2 weeks) end up with more shares than simply buying evenly?
What we foundEven perfect foresight would add under 2% over ten years, and every simple timing rule made things worse. The idea was parked without building a test.
WhyIt is a low-risk idea with a clear score (shares accumulated per dollar), and it would have been the project's first live link to a real brokerage.
Data10.5 years of hourly SPY price bars (2016-2026) from FMP, plus published research on dollar-cost averaging.
MethodBefore building anything, the brief measured the best possible result with perfect hindsight (the ceiling for any model) and tested simple rules such as buy-the-dip against plain even buying.
CostNo direct cost recorded.
Currency trading: buying one currency with another, such as euros with dollars. The research tested five trading ideas on up to 14 years of history, then ran the best one live on paper.
The questionWhen a government statistic (jobs, inflation, etc.) comes out better or worse than forecasters expected, does the US dollar vs Japanese yen (USD/JPY) move in a way a rule can profit from? Forex basics: a currency pair such as EUR/USD is the price of one euro in US dollars; betting it goes up means betting the euro strengthens against the dollar. A pip is the smallest usual price step (0.0001 for most pairs, 0.01 for yen pairs); a basis point (bp) is 0.01% of money. The Sharpe ratio is yearly return divided by yearly ups-and-downs (volatility): 0 = no edge, about 0.5 = a decent professional strategy, negative = lost money.
What we foundThe rule made money in 2021-2024 backtests but lost in every one of the five sealed windows of 2025-2026. Classic overfitting: it learned the past, not a lasting pattern.
WhyCurrencies visibly react to data surprises, and the project had a news/surprise feature pipeline ready; it was the first, most natural idea to test. It was also run across the other USD majors (EUR/USD etc.) before the USD/JPY sealed test.
DataDukascopy 5-minute bid/ask prices for USD/JPY (about 5.4 years, 2021 to mid-2026), plus an economic calendar with forecasts, central-bank rate decisions and market rates (US/Japan 2-year yields, VIX) — calendar and rates from FMP (no raw rows shown here).
MethodAn AI coding agent running on a local model repeatedly edited one strategy file inside a locked 'sandbox' and was scored by a frozen scorer on the research years only, charging real bid/ask spreads on 5-minute bars. Every attempt was counted so the final score could be 'deflated' (penalised for how many tries it took). The last ~year of data (2025-04 to 2026-06) was sealed and opened exactly once, by the owner, at the end; to pass, the deflated sealed score (test_dsr) had to be at least 0.05 and most sealed windows and calendar years had to be positive.
CostAbout $0 in trading (never deployed); one ~8-hour agent run on local hardware.
The questionCan any simple rule trading one liquid dollar pair, over hours to days, beat retail trading costs on data it has never seen? Forex basics: a currency pair such as EUR/USD is the price of one euro in US dollars; betting it goes up means betting the euro strengthens against the dollar. A pip is the smallest usual price step (0.0001 for most pairs, 0.01 for yen pairs); a basis point (bp) is 0.01% of money. The Sharpe ratio is yearly return divided by yearly ups-and-downs (volatility): 0 = no edge, about 0.5 = a decent professional strategy, negative = lost money.
What we foundThis reproduced a famous 1983 finding (Meese-Rogoff): short-horizon currency moves are close to unpredictable. The search reliably found patterns that fitted the past and the future reliably declined to repeat them.
Four Program 1 theses lost money on unseen data; only the Program 2 portfolio came out positive (+0.37) — and it still failed the pass rules.
Scores of 0.5-0.9 during research all fell to about zero once the sealed data was opened; the pass line was 0.05.
WhyTo either find a real edge or prove that the search process is honest — i.e. that it kills ideas that only look good in hindsight.
DataUSD/JPY (and earlier EUR/USD and other majors) 5-minute Dukascopy prices, ~5.4 years, plus calendar, rate and market data.
MethodFour evidence-ranked theses, each searched by an AI agent under a frozen scorer, each given exactly one sealed test opened by the owner. A stopping rule was pre-registered before the last thesis.
CostAbout $0 in trading losses; roughly nine days of machine time (2026-06-26 to 07-04).
The questionAre there hours of the trading day (e.g. around the Tokyo or London open) when USD/JPY tends to rise or fall, strongly enough to profit after trading costs? This is the 'time-of-day seasonality' idea from academic work (Ranaldo).
What we foundIt traded plenty and honestly, but the time-of-day tilt that looked good in 2021-2024 was essentially zero in 2025-2026.
WhyA literature survey ranked intraday time-of-day patterns as the only family with repeated, tradable evidence on the major pairs that could be tested with the 5-minute data already on hand.
DataDukascopy 5-minute bid/ask prices for USD/JPY, about 5.4 years (2021 to mid-2026), with real per-bar spreads.
MethodAn AI coding agent running on a local model repeatedly edited one strategy file inside a locked 'sandbox' and was scored by a frozen scorer on the research years only, charging real bid/ask spreads on 5-minute bars. Every attempt was counted so the final score could be 'deflated' (penalised for how many tries it took). The last ~year of data (2025-04 to 2026-06) was sealed and opened exactly once, by the owner, at the end; to pass, the deflated sealed score (test_dsr) had to be at least 0.05 and most sealed windows and calendar years had to be positive.
CostAbout $0 in trading; one agent run on local hardware.
The question'Carry' means holding the currency that pays the higher interest rate against one that pays less, and earning the gap. This asked: can the changing gap between US and Japanese policy rates tell a rule when to be long or short USD/JPY, day by day?
What we foundThe rule's timing, fitted to the 2021-2024 rate-hiking era, got the 2025-2026 period wrong — even though carry as a whole made money in 2025. The conditioning failed, not necessarily the carry idea.
WhyCarry is the most-replicated pattern in currency research, and 2021-2026 contained every carry regime (zero gap, fastest widening in decades, the August 2024 carry crash, narrowing) — a rich test.
DataDukascopy 5-minute bid/ask prices for USD/JPY (about 5.4 years, 2021 to mid-2026), plus an economic calendar with forecasts, central-bank rate decisions and market rates (US/Japan 2-year yields, VIX) — calendar and rates from FMP (no raw rows shown here). Policy-rate series were derived from central-bank decision events in the calendar.
MethodAn AI coding agent running on a local model repeatedly edited one strategy file inside a locked 'sandbox' and was scored by a frozen scorer on the research years only, charging real bid/ask spreads on 5-minute bars. Every attempt was counted so the final score could be 'deflated' (penalised for how many tries it took). The last ~year of data (2025-04 to 2026-06) was sealed and opened exactly once, by the owner, at the end; to pass, the deflated sealed score (test_dsr) had to be at least 0.05 and most sealed windows and calendar years had to be positive.
CostAbout $0 in trading; one agent run.
The questionSame carry idea, but using what bond markets expect rates to do (US and Japanese 2-year yields, the yield-curve slope, the VIX fear index) to see regime turns coming before central banks act.
What we foundThe best-looking strategy of the program still lost money once it met the future — the same 'regime-boundary death' as the others.
2021-2024 were visible to the search; 2025-2026 were sealed. The flip at the boundary is the whole story of Program 1.
WhyThesis 3 died at a regime turn; market-implied expectations were designed specifically to anticipate such turns. A stopping rule was declared beforehand: if this failed, Program 1 would end.
DataDukascopy 5-minute bid/ask prices for USD/JPY (about 5.4 years, 2021 to mid-2026), plus an economic calendar with forecasts, central-bank rate decisions and market rates (US/Japan 2-year yields, VIX) — calendar and rates from FMP (no raw rows shown here).
MethodAn AI coding agent running on a local model repeatedly edited one strategy file inside a locked 'sandbox' and was scored by a frozen scorer on the research years only, charging real bid/ask spreads on 5-minute bars. Every attempt was counted so the final score could be 'deflated' (penalised for how many tries it took). The last ~year of data (2025-04 to 2026-06) was sealed and opened exactly once, by the owner, at the end; to pass, the deflated sealed score (test_dsr) had to be at least 0.05 and most sealed windows and calendar years had to be positive. A pre-registered stopping rule (declared 2026-07-04 before any result) made this the last single-pair thesis.
CostAbout $0 in trading; one ~6-hour agent run.
The questionInstead of one pair, rank five currencies (euro, yen, pound, Australian and Canadian dollar, each vs the US dollar) each week by 'carry' (interest-rate advantage) and 'momentum' (recent trend — betting recent winners keep winning), buy the top one and sell the bottom one. Does that portfolio make money on unseen years?
What we foundFailed the rules, but it is the one forex idea that was net positive on data it never saw (+0.37 Sharpe). Promising enough to follow on paper, not enough to trust.
Research years (2012-2022) were mixed; the sealed years 2023-2026 were mostly positive — the first time that happened in this project.
WhyProgram 1's diagnosis was too few independent regime bets. Cross-sectional carry/momentum portfolios are where the surviving academic evidence lives, and 14 years of data (2012-2026) covers many more regimes.
DataDukascopy 5-minute prices for EUR/USD, USD/JPY, GBP/USD, AUD/USD, USD/CAD from 2012 to 2026 (14 years), with policy-rate differences from the economic calendar (available from 2015) and VIX. Calendar/VIX from FMP (no raw rows).
MethodSame locked-scorer agent search, now scoring a weekly-rebalanced basket with each pair's real spread. The last ~20% of history (2023-2026, including the August 2024 carry crash) was sealed and opened once by the owner. Program rules pre-registered: at most two iterations before a full human review.
CostAbout $0 in trading; one 6-hour agent run.
The questionGoing forward in real time (no hindsight possible), does the Program 2 winner beat a naive trend-following control? Both were frozen and settled nightly on paper with zero money at risk.
What we foundOver 57 days the research winner was slightly ahead of the simple trend rule, but the gap is well within luck. The test neither confirmed nor refuted the idea, and it has been closed.
Forward days only. The winner ends +0.28% vs -0.04% — the right sign, but a gap this small over 57 days is indistinguishable from luck.
WhyA forward clock cannot be contaminated by the search. It is the cleanest check on whether the +0.37 sealed result was real.
DataNightly Dukascopy price catch-up for the five pairs; our own append-only ledger (forex/paper/ledger.jsonl) of weights and daily net returns, 57 forward trading days (2026-07-07 to 2026-09-24).
MethodTwo strategies were frozen on 2026-07-06. 'trend_basket' (control): each week, for each of the five currencies vs the dollar, hold +20% if it rose over the last 100 days and -20% if it fell. 'xsect_best_16e37f8' (research winner): each week rank the five currencies by a mix of interest-rate advantage (scaled by how jumpy it is) and smoothed recent trend; put 50% long the top one and 50% short the bottom one; go flat if VIX >= 30; trim 20% when markets are unusually volatile. Returns are net of real spreads and slippage. The first read was pre-registered for +90 days (2026-10-04); it was taken early for reasons unrelated to results.
Cost$0 capital at risk; nightly cron job on existing hardware.
The questionCan news text be turned into reliable, point-in-time signals per currency (is this headline good or bad for the yen?), so later strategies could use it?
What we foundThe tools were built and the label quality improved a lot, but the features were never tested for trading value — that step was reserved for a Program 2 second iteration that never happened because research was paused.
WhyProgram 1 concluded text/perception features were one of the few untested directions; the news-sentiment tooling had been built but never fed a real corpus.
Data6,805 full-text forex news articles (2024-06 to 2026-07, from FMP, accruing nightly until retirement) and 11 years of GDELT global media tone (2015-02 to 2026-07, 9,434 day-currency rows, via BigQuery at $0). The NYT feed was retired 2026-09-03.
MethodHeadlines were scored by FinBERT (a finance-tuned language model) with uncertain cases escalated to a local LLM. A 300-headline study compared the two; then 3,261 LLM labels 'anchored' to a specific currency were used to fine-tune FinBERT, tested on 610 later (time-held-out) items. A protocol was written for letting trained models into the locked research harness without leaking future information (models trained only on earlier folds, fitted once for the sealed test).
CostGDELT $0; FMP subscription (since cancelled) shared with other uses; GPU time on the local machine.
Datasets built to support the research. They are finished and kept on disk.
The questionCan we record spot prices and Kalshi's best bid/ask every few seconds, since this data cannot be downloaded later?
What we foundThe recording worked and supplied the data for the lag study, H1, H7 and v3. It was stopped on 09-25 and the data is kept.
WhyKalshi and FMP only provide minute-level history. Measuring second-level effects (the ~20 s lag, which orders get filled) required recording it live.
DataSpot quotes for BTC, ETH, SPY, QQQ and VIX (from FMP) plus Kalshi top-of-book for 6 series; 72 daily files 2026-07-16 to 09-25, about 926 MB.
MethodA small always-on recorder, restarted every minute by cron if it stopped, wrote only changed values. The 5-second rate was chosen to put several samples inside the 10-40 s repricing window.
CostPart of the FMP subscription; no extra cost
The questionWould knowing the current VIX level help decide when a Kalshi model should trade or hold back?
What we foundVIX was recorded and tried as an on/off switch inside v3, but it made results worse. It was never tested on its own.
WhyLeadership between markets can change when volatility is high, so a live VIX reading was a cheap candidate conditioning input.
DataVIX from FMP, added to the daily bar collector and to the 5-second quote recorder from 2026-07-16.
MethodParked as a standalone strategy. It was later tried inside v3's search as a gate (trade only in certain VIX conditions).
CostNo direct cost recorded.
The questionCan a local AI coding agent, left running for hours inside a locked-down test harness, find a trading strategy that still works on data it was never allowed to see?
What we foundThe machinery worked: it searched hard, stayed honest and killed every strategy that did not hold up. No strategy survived, so nothing ever traded real money. The loops are shut down and research is paused.
WhyAn agent can try hundreds of ideas overnight for free on local hardware. If the scoring is honest and the final exam is kept hidden, the machine can do the tedious search while humans keep only the decisions.
DataForex: Dukascopy 5-minute USD/JPY and EUR/USD bars with real spreads (2021-01 to 2026-06, about 406,000 bars), economic-calendar surprises, rates and VIX; the portfolio run used 5 major pairs from 2012. Prediction: Kalshi BTC/ETH price-range contracts on a 5-minute grid (about 67,000 rows for v1, the full archive from March 2026 for v2) and 1.1 million quote-level rows for v3 (2026-07-21 to 08-26).
MethodEach project has sandboxes (one folder per idea). Inside, the agent may edit only one file (strategy.py or train.py). The 'ruler' (prepare.py, score.py, the dataset and its checksum) is frozen: read-only and hash-pinned, so the agent cannot win by moving the goalposts. Every attempt is scored on a validation slice of past data. If the score beats the best so far, the agent keeps it with a git commit. If not, it reverts. That is 'keep/revert'. The newest slice of data is the sealed test. It stays locked until the search ends, and then a human opens it exactly once, with the score discounted for how many ideas were tried. Pre-registration means the pass/fail rules and stopping rules were written down before any result was seen. A supervisor ('outer loop') runs every 30 minutes as a headless Claude session on cron. It checks that the run is alive and intact, fires tripwires on suspicious jumps, can pause a run, and texts the human over WhatsApp. It never opens the sealed test.
Cost$0 in trading losses; local hardware and a Claude subscription for the supervisor
| Run | Dates | Verdict | Key numbers |
|---|---|---|---|
| EUR/USD news-reaction loop (the shakedown run) | 26 Jun – 29 Jun | ✕ Didn't work | 308 up to iteration 318 |
| USD/JPY economic-surprise loop | 29 Jun – 30 Jun | ✕ Didn't work | val_dsr 0.701 test_dsr 0.0000 (pass needs at least 0.05) |
| USD/JPY time-of-day pattern loop | 30 Jun – 2 Jul | ✕ Didn't work | val_dsr 0.881 test_dsr 0.0001 |
| USD/JPY interest-rate-gap (carry) loop | 3 Jul – 3 Jul | ✕ Didn't work | val_dsr 0.672 test_dsr 0.0000 |
| USD/JPY yield-curve expectations loop (last single-pair try) | 4 Jul – 4 Jul | ✕ Didn't work | val_dsr 0.747 test_dsr 0.0000 |
| Five-currency carry + momentum portfolio loop | 5 Jul – 25 Sep | ✕ Didn't work | val_dsr 0.539 test_dsr 0.0104 (pass at least 0.05) |
| Kalshi Bitcoin/Ether contract forecaster, first loop | 9 Jul – 13 Jul | ✕ Didn't work | 0.591 to 0.861 (run 1) to 1.099 (run 2) -$143.93 on 4,163 trades, 17.9% wins |
| Kalshi Bitcoin/Ether forecaster, second loop (walk-forward) | 13 Jul – 23 Sep | ✕ Didn't work | 0.278 to 1.440 +$0.036 vs -$0.022 per trade (37,649 settles) |
| Kalshi S&P 500 / Nasdaq-100 range contracts (never launched) | 16 Jul – 23 Sep | – Not pursued | val_metric 0.0 (fold_mean 0.307, 657 trades) 0 |
| Kalshi crypto market-maker loop (v3), one overnight window | 27 Aug – 31 Aug | ✕ Didn't work | ~340 (337 unique trials), 0 kept 2 of 6 folds passing, fold_mean 0.123 |
The strategies that looked good on past data lost money on the hidden period. The run's real value was exposing loopholes in the scorer, which were then closed.
The score climbed to about 0.79 within one day of edits, the pattern later shown to predict nothing
A classic overfit: profitable in the years it was tuned on, losing in every hidden window.
Run 1 reached 0.97 by avoiding 2021. After the fix, run 2 topped out at 0.70
The time-of-day pattern did not carry into 2025-26.
Scores kept creeping up through threshold tweaks to 0.88. The sealed test gave about 0
A rule fitted to the 2021-24 rate-hiking cycle broke when rates started to converge.
The 0.79 peak was the overfit the supervisor caught; the verified best was 0.672
Even the design built to anticipate regime change died at the regime change. This closed Program 1.
Fast climb from 0.41 to about 0.77 in six hours
Close, but not consistent enough. The live paper test that followed was too short to tell either way.
From a deliberately weak 0.02 seed to 0.54 in one night
The model learned one six-week market mood. When the market changed in July it became confidently wrong.
Steady climb to 1.10. The same model lost money on paper within two days
It looked excellent on past data and lost a few cents on almost every live paper trade, so the one-time exam was never spent on it.
Most of the gain came in the first 50 experiments; the long tail was mostly rejects
Built and waiting for more data; the research pause came first.
The fills the bot would get are exactly the ones the market wants to give it. Being a maker does not escape that at this data speed.
The average fold score rose slightly, but the all-folds rule held the result at 0