TL;DR
LLM research frameworks built on equity's 09:30–16:00 ET clock break at three boundaries. Earnings land at 16:05 ET and the reaction happens in thin after-hours. Crypto trades 24/7, so "prior-day close" has no fixed meaning. European and Asian sessions move the tape before the US opens, so the 09:30 print is already stale. A single decision rule governs the response: re-run research or wait, depending on position liquidity, thesis fragility, and time to the next liquid session. Liquid positions exit and re-enter at the next open; illiquid positions wait; theses that explicitly hedged the event need no re-run. Crypto research should switch from daily to continuous cadence with event-driven triggers.
Three asymmetries a 09:30–16:00 clock cannot describe
Research harnesses that anchor on "the close" were designed for a single venue, a single session, and a single snapshot. Three market structures violate that anchor.
After-hours US equities
The extended session runs 16:00–20:00 ET with volumes that typically fall to 3–5% of regular-session flow. Earnings are released in clusters at 16:05 ET1 because issuers prefer to avoid disclosing into active trading. A 1–3% move on 5% of normal volume is routine; a 10% gap on an earnings surprise is not rare.
The problem for LLM research is not that after-hours exists. The problem is that a research run timed at 15:00 ET, ninety minutes before a scheduled release, sees a market state that will be obsolete by 16:10.
Crypto 24/7
A CME Bitcoin futures contract and a Coinbase spot pair both trade on Saturday at 03:00 UTC. Price discovery at that hour is real. Liquidity is thinner than a Tuesday noon ET window, but it is not zero and it is not noise. A research framework that computes "Friday close" and holds it until Monday open systematically misses two full trading days of information.
"Prior day close" is not a market artifact for crypto; it is a choice the researcher makes. Picking 00:00 UTC, 15:00 ET, or the 16:00 ET equity close produces three different snapshots, three different return series, and three different volatility estimates.
Pre-market European and Asian action
US large caps trade in Frankfurt and London hours before the New York opening bell. An overnight move in DAX futures, a Bank of Japan statement at 03:00 ET, a copper print out of Shanghai — by 09:30 ET, the tape has already adjusted. The 09:30 print is a price-discovery event after an asynchronous global update, not a clean reset.
| Boundary | Window (ET) | Typical volume share | Typical price impact |
|---|---|---|---|
| Regular US session | 09:30–16:00 | 100% baseline | Baseline |
| After-hours equities | 16:00–20:00 | 3–5% | 1–3% on news, up to 15% on earnings |
| Overnight / pre-market | 20:00–09:30 | 1–2% | Overnight news reflected at open |
| Crypto weekend | Sat 00:00 – Mon 00:00 UTC | 40–60% of weekday | Occasional 5–10% weekend moves |
Why LLM research goes stale after a boundary event
A weekly thesis generated at 15:00 ET on Tuesday reads pre-earnings filings, pre-earnings guidance, pre-earnings price action. At 16:05 ET the issuer reports a miss. The research context the LLM built — cash flow trajectory, consensus estimates, recent 8-K filings — still describes the issuer, but no longer describes the market's view of the issuer.
Treating "pre-earnings" and "post-earnings" as a single regime is the most common category error. The two regimes have different volatility, different option skew, different consensus positioning, and different event risk. A research run that does not partition on the release event produces decisions that mix two incompatible worlds.
The same pattern applies to pre-market. A thesis written at 07:00 ET that does not incorporate the DAX's 2% overnight move against the US equity beta is reading a map of a landscape that no longer exists. See the structural parallel in Real-Time vs End-of-Day Systems.
Decision rule: re-run research or wait for the next liquid session
Three inputs determine the response to a boundary event: position liquidity, thesis fragility, and time to the next liquid session.
Case 1: Position is liquid enough to exit during thin hours. Exit. Re-run research with the post-event market state. Re-enter on the next liquid session if the refreshed thesis still holds. The cost of the round trip is typically 2–5× normal spread plus the additional LLM research tokens; on a thesis that has been materially invalidated, that cost is almost always lower than carrying a broken position overnight.
Case 2: Position is illiquid. Small caps after-hours, out-of-the-money options, thin ETFs. The spread makes exit prohibitively expensive. Wait. Review at the next liquid open. The thesis must be explicit about what conditions at the open would force closure.
Case 3: Thesis was explicitly event-hedged. The thesis recorded at writing time that it expected the event and priced it in — a post-earnings mean-reversion setup, a known FOMC statement, a scheduled options expiry. The event was not new information. No re-run is needed; the thesis plays as written.
| Scenario | Liquid position | Illiquid position | Event-hedged thesis |
|---|---|---|---|
| Earnings surprise 16:05 ET | Exit, re-run, re-enter 09:30 | Wait, review 09:30 | Hold |
| Overnight macro headline | Re-run at 08:00 ET | Review at open | Hold |
| Crypto weekend flash move | Continuous cadence triggers re-run | N/A (crypto typically liquid) | Hold |
A checklist lives at 5 Failure Modes of LLM Trading Agents; stale context after a boundary event is the most commonly observed failure in practitioner post-mortems.
Pattern: earnings-sensitive thesis template
Record the validity window explicitly when the thesis is written. The LLM agent that reviews an open position reads this field first; if the current time falls outside the window, the agent treats the thesis as expired and routes to re-research.
thesis_id: synthetic_a_2026_04_23_1500
synthetic_ticker: SYNTHETIC_A
author: llm_research_v3
written_at: 2026-04-23T15:00:00-04:00
thesis_validity_window:
start: 2026-04-23T09:30:00-04:00
end: 2026-04-29T16:00:00-04:00
hours_only: regular_session
invalidated_by:
- earnings_release
- guidance_revision
- ma_announcement
core_claim: post-filing cash-flow revision not yet in consensus
confidence: 0.62
next_event:
type: earnings_release
scheduled: 2026-04-29T16:05:00-04:00
action_on_event: exit_and_rerun
The runtime check is a few lines:
from datetime import datetime, timezone
from zoneinfo import ZoneInfo
import yaml
def thesis_still_valid(thesis_path: str, now: datetime | None = None) -> tuple[bool, str]:
with open(thesis_path) as f:
t = yaml.safe_load(f)
now = now or datetime.now(timezone.utc)
et = now.astimezone(ZoneInfo("America/New_York"))
window = t["thesis_validity_window"]
start = datetime.fromisoformat(window["start"])
end = datetime.fromisoformat(window["end"])
if et < start:
return False, "before_window"
if et > end:
return False, "expired"
if window.get("hours_only") == "regular_session":
if not (9 <= et.hour < 16 or (et.hour == 9 and et.minute >= 30)):
return False, "outside_regular_hours"
next_event = t.get("next_event", {})
if next_event.get("scheduled"):
event_time = datetime.fromisoformat(next_event["scheduled"])
if et >= event_time:
return False, "post_event_rerun_required"
return True, "valid"
A monitor runs this check on every open thesis every fifteen minutes. Any thesis that returns False with reason post_event_rerun_required is routed to the research queue. The pattern composes with the observability design in Observability for LLM Trading Agents.
Crypto-specific framing
Three structural shifts from the equity mental model.
"Prior day close" is a decision, not a datum. Common anchors: 00:00 UTC (native crypto convention), 15:00 ET (end of most retail crypto flow), 20:00 UTC (CME Bitcoin futures settlement proxy). Pick one, document it in the research config, and hold it across backtests and live runs. Switching anchors silently produces incomparable return series.
"Overnight move" stops meaning "8pm to 4am". It becomes "the last N hours" for whatever N the research cadence uses. A daily-cadence framework for crypto should define its "day" explicitly: a Monday 09:00 UTC to Tuesday 09:00 UTC window is internally consistent; a mix of "00:00 UTC close for returns but 16:00 ET for signals" is not.
Research cadence should be continuous, not daily. A 24/7 market that is episodically liquid but never closed does not fit a daily research loop. The pattern in practice is a scheduled cadence (every 4–8 hours) plus event-driven triggers: a move exceeding K standard deviations since last run, a funding-rate swing, a scheduled macro release. This mirrors the ingestion design in Rate-Limited, Resumable Market-Data Ingestion.
Pre-market design pattern for equities
Three components.
-
European/Asian session moves as a signal, not a passive data point. A research run at 08:00 ET should incorporate the last twelve hours of DAX, FTSE, Hang Seng, and Nikkei returns against the US equity beta. The 09:30 open price is a consequence of those moves, not an independent observation.
-
Pre-market thesis refresh at 08:00 ET. Re-run the weekly thesis against the overnight data context. Flag any open position whose refreshed thesis score changed by more than a pre-specified threshold (a 15% relative change in confidence is a typical trigger).
-
Treat the 09:30 open as a price-discovery event. The first five minutes are dominated by overnight order reconciliation and market-on-open imbalances. Execution that assumes clean liquidity in that window consistently underperforms execution that waits until 09:35–09:45. The Execution Simulator models this via a configurable session-opening spread multiplier.
Cost and latency implications
Continuous-cadence research on a 24/7 market costs meaningfully more than daily-cadence research on a single-session market. For a framework spending $40 per full LLM research pass, a daily equity cadence runs roughly $1,200/month; a 6-hour crypto cadence is $4,800/month; a 4-hour cadence is $7,200/month.
The escape hatch is event-driven triggering. A lightweight regime-detection layer runs continuously and only invokes the full research pass when a trigger fires: a K-sigma move, a scheduled macro release, a significant funding shift, a news headline passing a relevance filter. A framework with 2–3 triggered runs per day plus one scheduled run approximates continuous coverage at roughly 30% of continuous cost. Cost accounting lives in Token Cost Reality for LLM Trading Research.
| Cadence model | Runs per day | Monthly cost at $40/run | Boundary-event coverage |
|---|---|---|---|
| Daily equity | 1 | $1,200 | Misses after-hours |
| 8-hour crypto | 3 | $3,600 | Weekend coverage, no event granularity |
| 4-hour crypto | 6 | $7,200 | Full coverage, high cost |
| Daily + 3 triggered | 4 avg | $4,800 | Event-targeted, moderate cost |
| Scheduled + triggered (crypto) | 4–6 avg | $5,000–6,000 | Full coverage, cost-controlled |
Anti-patterns
A short list of specific mistakes seen in practitioner post-mortems.
- Single "daily close" assumption across assets with different trading hours. A portfolio blending equities and crypto that computes both returns off "yesterday's 16:00 ET close" systematically mis-times the crypto leg by 12–24 hours. Correlations computed on this series are biased; risk budgets set against those correlations are wrong.
- Running research on pre-market tape and treating it as regular-session data. Pre-market quotes are wide, volumes are thin, and quote revisions are frequent. Research that computes a "pre-market VWAP" as if it were a regular-session VWAP reads a different statistical object.
- Ignoring overnight markets for US equities. A system that scans only at 16:15 ET or 09:15 ET and never reads the European session produces a systematic late-arrival bias. The 09:30 print reflects information the research never saw.
- Pretending crypto weekends are "lower signal". Weekend volatility is frequently elevated, not suppressed; a non-trivial share of annual 10-sigma crypto moves occur on weekends precisely because liquidity is thinner. Down-weighting weekend data in a research framework is backwards.
Connects to
- The 2026 Engineer's Guide to AI in Markets — pillar entry; where boundary-event handling fits in the full research stack.
- Observability for LLM Trading Agents — the thesis-validity monitor as an observability primitive.
- Multi-Timeframe Signal Integration with LLMs — sibling methodology; how different session clocks compose across timeframes.
- News Feed Integration for Finance Agents — event-driven triggers as the bridge from headline to re-run.
- Real-Time vs End-of-Day Systems — the cadence question generalised beyond just the boundary events.
- Rate-Limited, Resumable Market-Data Ingestion — continuous ingestion design for 24/7 feeds.
- Execution Simulator — session-opening spread model for testing the 09:35–09:45 entry rule.
- Token Cost Optimizer — cost envelope for continuous-cadence research.
- Returns Distribution Analyzer — diagnose whether the chosen crypto "close" anchor produces stable return moments.
References
- Nasdaq Stock Market. (2026). "Nasdaq Trading Hours and Extended Session Rules." Nasdaq regulatory documentation.
- CME Group. (2026). "Bitcoin and Ether Futures Contract Specifications." Near-24/7 electronic trading schedule with Friday 17:00 ET – Sunday 17:00 ET maintenance pause.
- Chan, K., Fong, W.-M., Kho, B.-C., & Stulz, R. M. (1996). "Information, Trading, and Stock Returns: Lessons from Dually-Listed Securities." Journal of Banking & Finance 20(7), pp. 1161–1187. Overnight information arrival and open-price adjustment.
- Ranaldo, A. (2009). "Segmentation and Time-of-Day Patterns in Foreign Exchange Markets." Journal of Banking & Finance 33(12), pp. 2199–2206. Session-boundary effects in a 24/5 market, applicable as a reference frame for 24/7 crypto analysis.
- Barclay, M. J., & Hendershott, T. (2003). "Price Discovery and Trading After Hours." Review of Financial Studies 16(4), pp. 1041–1073. Quantifies information share of extended-session trading relative to regular session.
Footnotes
-
NYSE. (2026). "Hours and Holidays," New York Stock Exchange regulatory guide. Regular session 09:30–16:00 ET; pre-market 04:00–09:30 ET; after-hours 16:00–20:00 ET. Issuer disclosure guidance clusters 8-K earnings releases at 16:05 ET. ↩