A coding agent for your trading desk
The agent you already use to write code can research markets, propose trades, and execute them — with a human-approval gate at every step.
Claude Code can already refactor a codebase, write tests, and ship a feature — so why not let it research a thesis, draft a trade, and wait for you to approve?
The same loop, a different domain
The core loop of an AI coding agent is: read context, reason, produce a change, wait for approval. Qoc applies the same loop to trading. The agent reads your desk — positions, watchlists, research files, open issues — reasons about what to do, and produces a proposal: a structured diff that describes exactly what order it wants to place and why.
You review the proposal the same way you'd review a pull request. If it looks right, you approve it. If not, you reject it or ask the agent to revise. The order is never placed without your explicit go-ahead.
What the agent actually reads
When you open a Qoc workspace in Claude Code, the agent sees a directory of plain files. It reads desk.toml to understand the desk configuration, entities/ to see your watchlist and holdings, research/ for prior analysis, and the latest UTA snapshot for current buying power.
Everything is text. The agent doesn't need a special API or a custom plugin — it reads files, reasons about them, and writes new files (proposals, research notes, issue updates) back into the workspace. Qoc's runtime picks those up and acts on them.
The propose–approve loop
- 1
Agent reads desk context
On each cycle, the agent reads the current snapshot, open positions, and any issues or schedules that are due. This grounds its reasoning in your actual situation.
- 2
Agent produces a research note
If a trade idea merits investigation, the agent writes a structured note into
research/. You can read these at any time — they're plain Markdown files, not opaque logs. - 3
Agent writes a proposal
A proposal is a file in
orders/pending/describing the instrument, direction, size, rationale, and the guard rules it has already validated against. Think of it as a pull request for a trade. - 4
You review and decide
Qoc surfaces the proposal in your inbox. You read the rationale, check the risk numbers, and either approve or reject. A rejection can include feedback the agent will read on the next cycle.
- 5
Approved proposals execute
On approval, Qoc's runtime routes the order to the correct venue via the configured adapter. The executed trade is committed to history with the full proposal as its record.
The agent never executes without approval
This is the non-negotiable rule in Qoc's design. Proposals can be produced autonomously on a schedule, but they sit in a pending state until a human approves them. There is no mode in which the agent places an order on its own.
If you want to move faster, you can configure auto-approve rules in desk.toml that apply to specific instruments or order sizes below a threshold — but you are always the one who wrote those rules.
Guardrails that travel with the desk
Guards are pre-trade risk rules defined in desk.toml. They run against every proposal before it reaches your inbox, so you never see a proposal that would violate your own rules. Common guards include position size limits (as a fraction of desk equity), sector concentration caps, and instrument-level blocklists.
Because guards are plain configuration, they're version-controlled alongside the rest of your desk. You can review their history, roll them back, and audit exactly which rules were in effect when any given proposal was generated.
A minimal guard configuration
[guards]
max_position_pct = 0.10 # no single position > 10% of desk equity
max_open_proposals = 5 # never more than 5 pending proposals at once
blocked_instruments = [] # add ticker symbols to hard-block themWhy this feels different from trading bots
A traditional trading bot is a black box that executes rules you hard-coded. Qoc's agent is different in two ways: it reasons in natural language over unstructured context (news, your own research notes, price data), and it always stops short of execution to ask for your sign-off.
The result is something closer to a research analyst who drafts order tickets for you to sign than to an automated system running in the background. You stay in control; the agent handles the legwork of surfacing opportunities and structuring the trade correctly.