AI assistants and the API · Section 3 of 4
Agent Playbook
Worked examples of what to ask an assistant connected to dotQuant, and which workflow, commands and queries it uses for each.
Follow a New Symbol
Workflow: add-symbol-to-watchlist
You say: "Follow ASML on its Amsterdam listing."
The agent does:
You get: the symbol on your watchlist with history backfilling, analysis triggering, and news collection starting.
A ticker alone is ambiguous —
The agent does:
symbol-search to resolve the exact ticker, exchange, and currency → then sends two commands: subscribe-price-feed (starts the platform collecting data for EURONEXT-ASML) and follow-symbol (puts it on your watchlist). Both are needed and both are idempotent — re-following is harmless.You get: the symbol on your watchlist with history backfilling, analysis triggering, and news collection starting.
A ticker alone is ambiguous —
MSFT and TSLA exist on several venues — so agents always resolve through search first and use the EXCHANGE-TICKER feed id everywhere after.Research a Symbol
Workflow: research-a-symbol
You say: "Give me a full read-out on NVDA."
The agent does (read-only):
You get: a grounded brief built from the same data the symbol view renders — current situation, trend, valuation, sentiment, and persona-by-persona reasoning.
The agent does (read-only):
get-symbol-situation (latest price + freshness) → get-price-variations (1D to 5Y moves) → get-analysis-metrics (the objective Key Metrics) → get-news-sentiment (tone of recent coverage) → get-analysis (every AI analyst's verdict, confidence, and written reasoning). If the analysis looks stale it can trigger analyze-symbol — idempotent — and re-read.You get: a grounded brief built from the same data the symbol view renders — current situation, trend, valuation, sentiment, and persona-by-persona reasoning.
Organize Your Watchlist
Workflow: organize-watchlist-panels
You say: "Group my chip stocks into a Semiconductors panel."
The agent does:
You get: the reorganised watchlist, live on every device. Panels are pure organisation — membership never affects data collection, and the default panel always exists as the home of unassigned symbols.
The agent does:
list-watchlist-panels to see the current layout → configure-panel to create (or rename) the panel → assign-symbol per feed to move it in.You get: the reorganised watchlist, live on every device. Panels are pure organisation — membership never affects data collection, and the default panel always exists as the home of unassigned symbols.
Create a Strategy
Workflow: create-a-strategy
You say: "Make me a strategy for MSFT: buy when the 20-day average crosses above the 50-day, sell on the cross back down, 5% stop."
The agent does: sends your prose to
You get: a named, inspectable strategy — the same artifact the UI's Review button produces — ready to backtest or run.
The agent does: sends your prose to
compile-thesis — the compiler itself classifies the idea and produces the deterministic spec (the agent never hand-writes spec JSON). Compilation is asynchronous: the outcome appears in list-theses, where the compiled spec is readable and reusable.You get: a named, inspectable strategy — the same artifact the UI's Review button produces — ready to backtest or run.
Backtest a Strategy
Workflow: backtest-a-strategy
You say: "Backtest it on MSFT over the last two years."
The agent does: calls the
You get: realized/unrealized P/L, costs, win rate, max drawdown, and the benchmark comparison — honest numbers an agent can reason over before recommending anything.
The agent does: calls the
run-backtest query with the compiled strategy and the feed — it is synchronous, the full result returns in the response. Same engine as the UI: next-bar-open fills, per-side costs, marked-to-market drawdown, buy-and-hold benchmark.You get: realized/unrealized P/L, costs, win rate, max drawdown, and the benchmark comparison — honest numbers an agent can reason over before recommending anything.
Run a Strategy Live
Workflow: run-a-strategy-live
You say: "Run it live on MSFT and tell me when it signals."
The agent does:
You get: a strategy working the market for you, signal-only — nothing trades until a route exists and you enable it. The chart legend shows it running with the same play/pause controls.
The agent does:
configure-algorithm (binds the compiled strategy to the feed) → run-algorithm to start it. The platform evaluates every closing bar; decisions land in list-algorithm-signals, which the agent can check on demand. pause-algorithm and remove-algorithm complete the lifecycle.You get: a strategy working the market for you, signal-only — nothing trades until a route exists and you enable it. The chart legend shows it running with the same play/pause controls.
Fan Out Signals
Commands: configure-signal-route · enable-signal-route (high-impact)
You say: "Send that strategy's signals to my paper account, one share per entry — and to my journaling webhook."
The agent does:
You get: every future signal fanned out per route — orders on the broker (exits capped by the real position, never a short), HMAC-signed deliveries to the webhook — with per-route execution outcomes recorded on each signal in
The agent does:
list-brokers / list-webhooks to name the destinations → configure-signal-route per destination (broker route with entry quantity, or webhook route) → asks for your explicit go-ahead, then enable-signal-route — a high-impact command; broker routes place real orders.You get: every future signal fanned out per route — orders on the broker (exits capped by the real position, never a short), HMAC-signed deliveries to the webhook — with per-route execution outcomes recorded on each signal in
list-algorithm-signals.Design a Portfolio
Workflow: design-a-portfolio
You say: "I want to beat a global index fund over years, adding money monthly — structure it for my ISA."
The agent does: follows the workflow's elements — confirms the long-term frame, reads your broker connection for the buyable universe and account currency, sizes the contribution against your real free cash (
You get: a fully structured portfolio waiting for your decision. The agent structures and computes; it does not pick for you, and enabling is yours. Cross-currency holdings are fine — FX is a cost fact the platform handles, not a constraint.
The agent does: follows the workflow's elements — confirms the long-term frame, reads your broker connection for the buyable universe and account currency, sizes the contribution against your real free cash (
get-broker-cash), surfaces per-venue currency and cost facts, and assembles holdings you pick into weights totalling 100% with a benchmark — then configure-portfolio, saved disabled.You get: a fully structured portfolio waiting for your decision. The agent structures and computes; it does not pick for you, and enabling is yours. Cross-currency holdings are fine — FX is a cost fact the platform handles, not a constraint.
Manage a Portfolio
Workflow: manage-a-portfolio
You say: "Enable my portfolio, and each month show me the proposal before anything happens."
The agent does:
You get: the monthly discipline executed without emotion — planned from fresh broker facts, approved by you, measured from your own fills.
The agent does:
set-portfolio-enabled to start the cadence → reads each round's quote via list-portfolio-proposals (resolved orders, banked slices, FX facts) → presents it and, only with your explicit approval, sends approve-portfolio-proposal — high-impact, once per period. Steering rides the same lane: request-portfolio-review (ad-hoc, optional one-off amount), cancel-portfolio-review, decline-portfolio-proposal to skip a month, retry-portfolio-execution for a broker-rejected slice. portfolio-performance and portfolio-performance-history close the loop.You get: the monthly discipline executed without emotion — planned from fresh broker facts, approved by you, measured from your own fills.
Place a Manual Order
Workflow: place-manual-order
You say: "Buy 2 STMPA on my IBKR live account."
The agent does:
You get: the order at your broker exactly as specified, and its full life visible in the Activity tab — origin-stamped manual.
The agent does:
list-brokers to name the exact connection → sanity-checks with get-broker-cash (buys) or get-broker-position (sells) → asks for your confirmation, then submit-order — high-impact, pass-through, never resized or retried by the platform. The verdict is asynchronous: acceptance, rejection (with the broker's verbatim reason), and fills arrive on the order's record — list-orders / get-broker-order to follow it, cancel-order while it is still working.You get: the order at your broker exactly as specified, and its full life visible in the Activity tab — origin-stamped manual.