LiquidMind / Blog
Build in public.
Lose in public.
Trade post-mortems, engineering notes on AI systems, and opinionated takes on systematic trading — all from one founder building the tool he couldn't find.
Transparency
Engineering
Thesis
Build in Public: The same price can be premium and discount at once
Premium and discount sound binary until one price sits above a local 1H range, below a broken 4H leg, and inside 1D discount at the same time. We built a mandatory multi-timeframe price-location tool for our entry and position-management agents — then made sure its output could never become an automatic trade filter.
Tool search solves a problem our trading agent doesn't have — we measured it
A well-argued post making the rounds says tool bloat is killing agents: typical multi-MCP setups burn 50-70k tokens on tool definitions before the agent does anything, and models degrade past 30-50 similar tools. The prescription is tool search — index your tools, load them on demand. All of that is correct for horizontal agents. We measured our vertical one and got a different picture: 2,213 tokens of tool definitions, never more than 10 tools in context, and a context budget dominated by market data. Here's the measurement, and the one idea from that post we're stealing outright.
Build in Public: A 0.16% fill exposed a 100% assumption
One limit order planned 143,342 units. Only 226 filled. The resulting trade was profitable and its recorded RR was mathematically defensible — but letting the position manager and the learning system treat it like a completed trade exposed a much deeper modeling error. This is how we separated trade intent, live execution state, and statistical evidence.
Build in Public: The entry agent now remembers — RAG over every setup it has ever judged
An entry agent that evaluates every setup from scratch is doomed to re-learn the same lessons forever. Here's the RAG memory that fixes that: a normalizer that turns raw agent reasoning into price-free narrative documents, an embedding that carries only the story of the setup, deterministic metadata doing the filtering and boosting that vectors are bad at, and trade outcomes kept strictly outside the vector so history informs retrieval without contaminating it.
Build in Public: Every session has a high and a low — and both get hunted
PDH/PDL gave the engine two liquidity magnets a day. But institutional desks don't just hunt yesterday's high — they hunt Asia's low before London commits, and London's high before New York reverses it. Here's how six new POI types, a shared invalidation core, and a full SMC/ICT context block got wired into the pipeline — and the naming mistake I made twice before shipping it. Update: shipping the radar UI surfaced a timezone bug and a default-allow config bug, and finished the move to full DST-aware sessions across the whole feature — level sizing and sweep-timing alike.
Build in Public: Not every signal comes from the market
Every trigger the position management engine had so far was something the market did — a POI appeared, a bias flipped, a session opened. None of them fired because a trader looked at their own chart and saw something the engine couldn't. Here's the pair of triggers that closes that gap, and why they share one pipeline down to the cooldown key.
Build in Public: The market has a clock — so should the bot
The bot was reviewing open positions when candles closed, when structure broke, when news hit, when BTC flipped. But it had no concept of market rhythm — sessions opening, liquidity rotating, institutional desks clocking in and out. Here's how we wired five session boundary events into the Triad pipeline, and why getting the times right turned out to be less obvious than it looks.
Build in Public: The vault, not the whiteboard
A losing trade with a screenshot showing the drawn zone is a different lesson than a losing trade with none. The screenshot usually existed — it just lived in a phone gallery, disconnected from the decision it was evidence for. Here's the vault we built to fix that, why it isn't a journaling feature, and the security bug our own browser found on day one.
Build in Public: When the market changes its mind mid-trade
The daily bias said bearish. Two hours later the engine was short. The next morning the bias flipped bullish — and the short was still open. What should happen? Here's the trigger we built, and why its execution follows the same autonomy rules as every other event.
140 trades in the open: LiquidMind's first public ledger
Every trade LiquidMind's engine has taken since inception — Feb 16 to Jun 30, 2026 — audited in full. +49.8% ROI, a -22% drawdown, a 12-trade losing streak, and what the numbers actually say about the edge.
Build in Public: The POI state machine — why 7 states beat a boolean
The POI tracker started with one boolean: is_active. At 200 zones across multiple timeframes, it imploded. Here's how I replaced it with a 7-state machine where every transition has an explicit trigger — and where BLOCKED is a first-class concept, not a collision bug.
Stay Liquid
New posts on transparency, engineering, and the LiquidMind thesis — no noise.