{"id":"2084201125419598165","url":"https://x.com/nykdotdev/status/2084201125419598165","text":"","author":{"name":"nyk","username":"nykdotdev","avatarUrl":"https://pbs.twimg.com/profile_images/2036527079349428224/DVL_8NyU_200x200.jpg"},"createdAt":"Mon Aug 03 08:54:05 +0000 2026","engagement":{"replies":17,"retweets":23,"likes":159,"views":16590},"article":{"title":"Reason Slow. Execute Fast.","previewText":"One system asks an LLM to read filings. Another waits for an LLM before it submits an order.\nBoth get called AI trading. Only one puts the model where uncertainty is useful.\n \nA 2026 survey audited 77","coverImageUrl":"https://pbs.twimg.com/media/HOyMzCKbIAE24q4.jpg","content":"One system asks an LLM to read filings. Another waits for an LLM before it submits an order.\n\nBoth get called AI trading. Only one puts the model where uncertainty is useful.\n\n![Reason slow. Execute fast. The model produces candidates; only admitted bundles enter deterministic execution.](https://pbs.twimg.com/media/HOyL4K6a4AAjApb.jpg)\n\nA 2026 survey audited 77 studies of LLM trading agents. Only 19 met its minimum boundary for action output and closed-loop evaluation. Inside that primary set, only 1 of 19 reported an explicit transaction-cost model. None reached the survey's highest reproducibility level.\n\nThe architecture is moving faster than the evidence.\n\nBroker integrations now let customers connect third-party agents to dedicated accounts. Real-money AI trading builds have become a YouTube format. Connecting a model to a broker is no longer the difficult part.\n\nThe difficult part is deciding which work belongs to the model and which work must stay deterministic.\n\nMy operating model has two clocks:\n\n- Slow clock: research, hypothesis, code, evaluation, and review\n\n- Fast clock: current state, risk, execution, and reconciliation\n\nA promotion gate sits between them. It requires evidence before an idea can touch capital.\n\nThis is systems architecture, not trading advice.\n\n![Two clocks, one gate: the LLM researches on the slow clock while deterministic systems execute on the fast clock.](https://pbs.twimg.com/media/HOyL8lsaMAAcox9.jpg)\n\n## One stack cannot safely run on both clocks\n\nLanguage models are useful when the input is messy and the output can be reviewed. Earnings calls, news, filings, strategy ideas, code, and incident reports fit that description.\n\nA live order is different. The system has to consume current state, enforce limits, choose whether to act, submit once, and learn what the venue accepted. Delay and ambiguity become part of the position.\n\nPutting both jobs inside one agent loop hides that boundary.\n\nThe slow clock may run for minutes, hours, or days. The fast clock runs at the speed required by the market and venue.\n\nHFT makes the mismatch obvious. If the market changes while a model is still generating an explanation, that explanation cannot safely sit between the event and the order. The same separation helps slower systems because it keeps open-ended reasoning away from irreversible actions.\n\n## Four failures a single-clock agent hides\n\nThe two-clock split becomes clearer when you trace what fails.\n\n1. The thesis is current, but the order state is stale.\n\nThe model can be right about direction and wrong about the executable trade. The quote moved, the available size disappeared, the account changed, or another process already used the risk budget. A generated instruction does not freeze the market around it.\n\nThe fix is not a better explanation. The fast clock has to rebuild the decision from the current state and reject any intent that no longer fits.\n\n2. A timeout becomes a duplicate.\n\nThe agent submits an order, fails to receive a response, and tries again. The venue accepted the first request. Local memory says nothing happened. Without stable submission identity and reconciliation, a network problem becomes a second position.\n\nThe fast clock needs idempotency, bounded retry behavior, and a query against external truth before it creates another intent.\n\n3. A partial fill is treated as a complete story.\n\nThe strategy intended one position. The venue filled part of it, rejected the rest, and charged a fee. A language summary written from the original intent can sound coherent while the account now holds something else.\n\nReconciliation has to convert fills, fees, open orders, and balances into the actual state before any later decision.\n\n4. A model update changes live behavior without a release boundary.\n\nThe provider changes a model alias or the team edits a system instruction. Research output shifts, but the live strategy still appears to have the same name. When performance changes, nobody can tell whether the market moved or the reasoning system did.\n\nThe slow clock needs pinned model and prompt versions. The promotion gate needs a fresh receipt for every material change.\n\n![Four state bugs hidden by a single-clock agent: stale snapshots, duplicate orders, partial fills, and finality drift.](https://pbs.twimg.com/media/HOyMBFlbUAAwb34.jpg)\n\n## The research evidence is weaker than the demos\n\nThe May 2026 survey *Agentic Trading: When LLM Agents Meet Financial Markets* reviewed 77 studies and retained 19 as its primary closed-loop set.\n\nIts coding found:\n\n- 2 of 19 reported extractable time-consistent split protocols\n\n- 1 of 19 reported an explicit transaction-cost model\n\n- 1 of 19 documented universe or survivorship handling\n\n- none reached the survey's R3 reproducibility level\n\nSource: [https://arxiv.org/abs/2605.19337v1](https://arxiv.org/abs/2605.19337v1)\n\n![Source receipt from arXiv:2605.19337v1, page 1, showing the survey's protocol and reproducibility findings.](https://pbs.twimg.com/media/HOyMFeNawAAn-VX.jpg)\n\nThese figures do not prove that LLMs cannot help. They show how easily a convincing strategy can survive inside a weak evaluation.\n\nTwo newer studies make that problem easier to see.\n\n*The Alpha Illusion* proposes six tests for reported agent alpha: temporal integrity, market frictions, robustness, calibration, numerical execution, and multi-agent disaggregation. It is an evaluation framework, not proof that every agent fails. Its value is the standard it sets before a result becomes deployment evidence: [https://arxiv.org/abs/2605.16895v1](https://arxiv.org/abs/2605.16895v1)\n\n![Source receipt from arXiv:2605.16895v1, page 7, showing six minimum-evidence protocols for LLM trading deployment claims.](https://pbs.twimg.com/media/HOyMJ2ja8AA-ZFF.jpg)\n\nKTD-Fin tested ten frontier LLM agents on the CSI300 over a 2024 to 2026 window. It masked identifiers and separated market, style, and stock-selection effects. In that study, returns were largely explained by passive exposures, with limited evidence of persistent stock-selection alpha: [https://arxiv.org/abs/2605.28359v1](https://arxiv.org/abs/2605.28359v1)\n\n![Source receipt from arXiv:2605.28359v1, page 1, describing market, style, and stock-selection return attribution.](https://pbs.twimg.com/media/HOyMOR9a4AEcqHM.jpg)\n\nA longer-horizon study using two decades and more than 100 symbols found that previously reported advantages deteriorated under the broader test. The agents were too conservative in bull markets and too aggressive in bear markets. That result is study-specific, but the failure mode is general: a clean backtest can reward the wrong behavior: [https://arxiv.org/abs/2505.07078v6](https://arxiv.org/abs/2505.07078v6)\n\n## The slow clock turns model output into a candidate\n\nThe slow clock is where an LLM earns its place.\n\nGive it point-in-time source material and ask for a versioned evidence packet:\n\n1. the claim being tested\n\n1. the data available at that moment\n\n1. the proposed signal and expected failure modes\n\n1. the code or configuration change\n\n1. the tests that would disprove the idea\n\nThe output is a candidate, not a live instruction.\n\nAgents can compare filings, classify news, generate alternative hypotheses, inspect logs, write test cases, and explain a drawdown after the facts are reconciled. None of those jobs needs to block an order.\n\nSome slower information tasks have research support. Work on financial headlines found that GPT-based classification could map news to immediate market reactions and some post-announcement drift. The tradable drift signal was weaker and sensitive to transaction costs. The useful part is structured interpretation upstream, not a promise of free alpha: [https://arxiv.org/abs/2304.07619v6](https://arxiv.org/abs/2304.07619v6)\n\nEvery output needs provenance. Store the source timestamp, model, instruction version, data window, code revision, and evaluation result. Those fields let you separate a market change from a model change, data leak, or broken test.\n\n## The promotion gate is a compile step for capital\n\nA strategy should not go live because someone changed paper=false.\n\nPromotion needs a dated record that another person or independent process can inspect.\n\nCosts deserve their own gate. One 2026 BTC-USDT study tested about 70,000 hourly observations with a 27-fold walk-forward protocol. Naive sign-based strategies failed after a 10 basis point cost assumption. A cost-aware filter that skipped weak forecasts restored profitability only in selected configurations: [https://arxiv.org/abs/2606.00060v1](https://arxiv.org/abs/2606.00060v1)\n\n![Source receipt from arXiv:2606.00060v1, page 15, showing naive strategy performance before and after 10 basis point transaction costs.](https://pbs.twimg.com/media/HOyMSq0a4AARQvG.jpg)\n\nPrediction and execution are separate products. A positive forecast that should not be traded is still useful information. A system that converts every forecast into an order destroys that distinction.\n\nThe gate should also challenge model memory. A historical period inside a model's training window can reward recall instead of transferable reasoning. Use post-cutoff data where possible. Mask identifiers. Attribute returns. Treat a clean historical curve as a claim that needs an adversarial test.\n\n![Promotion turns an open-ended strategy idea into an immutable, versioned deployment bundle.](https://pbs.twimg.com/media/HOyMXDBbwAEzatT.jpg)\n\n## The fast clock needs a small contract\n\nOnce a strategy is promoted, open-ended model prose should disappear from the decision path.\n\nThe fast clock has six jobs:\n\n1. Stream current state. Prefer pushed updates to repeated polling when the venue supports them.\n\n1. Normalize once. Convert each feed into one internal event shape.\n\n1. Compute deterministic features. The same input and version should produce the same result.\n\n1. Enforce pre-trade risk. Position, loss, exposure, and order-rate limits sit outside strategy code.\n\n1. Execute with identity. Every intent has an idempotency key or client order ID.\n\n1. Reconcile against venue truth. Local memory is a cache. The external state decides what happened.\n\n![The hot path has six bounded jobs: read, validate, decide, route, reconcile, and log.](https://pbs.twimg.com/media/HOyMbdFbgAAI9wy.jpg)\n\nThis does not ban machine learning from execution. A trained model can run as a fixed, versioned function if its latency and outputs are bounded.\n\nThe boundary is narrower: open-ended language-model reasoning should not decide every latency-sensitive order.\n\nA hot-path component needs known inputs, a known output schema, measured latency, explicit failure behavior, and a rollback target. If it cannot meet that contract, move it upstream.\n\n## Roll it out in four bounded stages\n\nThe architecture is easier to trust when each stage proves one property.\n\nStage 1: deterministic replay\n\nFreeze a historical event stream. Run the fast clock twice with the same version and inputs. The resulting intents, limits, and state transitions should match. If they do not, the system is not ready for a live feed.\n\nThis stage tests reproducibility, not profitability.\n\nStage 2: live shadow mode\n\nConsume the real stream and generate intents without submitting them. Record the decision timestamp, the state used, the blocked reason when no action was allowed, and the hypothetical result after costs.\n\nShadow mode exposes stale features, burst handling, queue buildup, and hidden assumptions in the cost model. It also creates the receipts needed to compare research expectations with live conditions.\n\nStage 3: capped live operation\n\nEnable submission with hard external ceilings on capital, position size, daily loss, order frequency, and strategy lifetime. The strategy cannot raise its own limits. The model cannot approve exceptions.\n\nEvery stop condition must work without calling an LLM. Test the kill switch before the first live session, not after the first incident.\n\nStage 4: controlled expansion\n\nIncrease scope only after the system has enough reconciled live receipts to show what changed between expected and actual execution. Expand one dimension at a time: capital, instruments, venue, or operating hours.\n\nChanging all four at once destroys the comparison. A staged rollout makes deployment another experiment instead of a ceremony.\n\n![Four rollout stages: replay, shadow, capped live operation, and controlled expansion.](https://pbs.twimg.com/media/HOyMf2TaIAAfYNK.jpg)\n\n## Solana makes the boundary visible\n\nSolana exposes each part of the fast clock in protocol terms.\n\nYellowstone gRPC streams account and transaction updates from validators. Solana's indexing documentation describes pushed updates instead of polling and notes that the raw Protocol Buffer data still needs decoding: [https://solana.com/docs/payments/accept-payments/indexing](https://solana.com/docs/payments/accept-payments/indexing)\n\nThe newest observed state is not final truth. Solana commitment levels distinguish processed, confirmed, and finalized. A fast system may react to provisional state, but it still needs a later reconciliation path.\n\nExecution also depends on fees and compute budgets. Solana's prioritization fee depends on the compute-unit price and requested compute-unit limit. Asking for speed is partly a queueing and fee decision, not a language task: [https://solana.com/docs/core/fees](https://solana.com/docs/core/fees)\n\nBefore broadcast, simulateTransaction can return logs, units consumed, fee information, and errors without changing chain state. After submission, the system still has to confirm what landed and reconcile the result: [https://solana.com/docs/rpc/http/simulatetransaction](https://solana.com/docs/rpc/http/simulatetransaction)\n\nI work on @rpcedge, so this is disclosed product adjacency rather than an independent provider comparison. Its public Solana HFT reference architecture uses the same separation: streamed ingest, decode and normalization, strategy evaluation, execution, then reconciliation and observability: [https://rpcedge.com/blog/building-an-hft-data-pipeline-on-solana](https://rpcedge.com/blog/building-an-hft-data-pipeline-on-solana)\n\nInfrastructure does not create alpha. An automated Solana strategy still needs fresh state, an execution path, and evidence of the final result. A faster bad decision is still bad. A good decision on stale state can be equally useless.\n\n## The model can supervise without controlling\n\nKeeping the LLM out of the order path does not mean turning it off.\n\nGive a separate supervisory lane read-only access to receipts and reconciled telemetry. It can summarize anomalies after deterministic alerts fire, group repeated execution errors, compare current behavior with the promoted version, and draft an incident timeline.\n\nIt may also propose a configuration change for human approval. It should not silently rewrite limits, alter strategy code, or approve its own proposal.\n\nModel confidence is not a risk control. The safer sequence is proposal, independent check, approval, versioned change, and observed result.\n\nRobinhood's announced Agentic Trading design points in this direction. It uses a dedicated account, limits the agent to funds deposited there, exposes activity and P&L, and lets the customer disconnect the agent. Those are product controls, not independent safety validation, but they matter more than the chat interface: [https://robinhood.com/us/en/newsroom/robinhood-is-now-open-to-agents/](https://robinhood.com/us/en/newsroom/robinhood-is-now-open-to-agents/)\n\n## Use this two-clock trading contract\n\nBefore you connect another agent to a trading system, fill this out:\n\nIf the same agent owns all four sections, the architecture has no independent gate. \n\nSplit authority before tuning the prompt.\n\nLet the LLM work where language and review are useful. Keep the live path deterministic. Promote with evidence. Reconcile every action against the venue.\n\nA model can help write the strategy.\n\nIt should not be the market clock.  \n\n## Get the next field note\n\nWhat shipped. What broke. The system behind it.\n\nGet the next one free: [https://nyk.dev/#newsletter](https://nyk.dev/#newsletter)\n\nPrivate alpha channel: [https://t.me/+GJ-FEpzcZrtmMTky](https://t.me/+GJ-FEpzcZrtmMTky)\n\nFollow @nykdotdev for the daily build in public.\n\n![](https://pbs.twimg.com/media/HOyMkVzaEAE1JNO.jpg)"}}