What it does
Reads a page of a finished run's trade log. Within a page the trades are newest first. offset is counted from the oldest trade and total says how many trades there are, so Claude pages by adding limit to offset until offset reaches total. For the summary it uses get_backtest.
Each row is one trade: the symbol and side, the size, the entry and exit times and prices, gross and net profit and loss, the fees split by component, the return, the worst and best excursion (MAE and MFE), bars held, and the exit reason. The page holds closed trades only, and total counts them. A position still open at the end of the run is not in this log. Its count and profit and loss are the open_trades and open_pnl metrics of get_backtest. Its row, marked at the last close, is on the strategy's Trades tab in Orbital.
A page holds at most 150 rows and the default is 100. Claude asks for the pages it needs rather than the whole log. It needs the read permission, which every connection has. Every project role may call it, a viewer included.
One caveat: when a run's results were released because a later run of the same version completed, the page is empty with total 0 and resultsReleasedAt set. Running the period again brings the trades back.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
run_id | string | yes | The run id, a UUID.Example: 0193c2b4-9e21-7a6c-8f3d-5b7a9c1e2d48 |
offset | integer | no | Rows to skip, counted from the oldest trade. Default 0, at least 0. Page by adding limit until offset reaches total.Example: 0 |
limit | integer | no | Rows per page. Default 100, at least 1 and at most 150. total tells you how many pages there are.Example: 100 |
What comes back
trades: the rows of the page. Each hasseq,symbol,side(longorshort),qty,entryAt,entryDate,entryPrice,exitAt,exitDate,exitPrice,grossPnl,netPnl,returnPct,fees(split by component: commission, slippage and borrow),dividends,maePct,mfePct,barsHeld,entries,exitReasonandsource(the name of the entry rule that opened the trade,entry-and the node id when the rule has no name, orprogramfor a Program strategy).exitReason:signal,stop,target,trailing,time,margin_call,delisted,account_blown,end_of_run,left_universe,unpricedorleft_tape. The last three close a name that left a screened universe, went unpriced for ten sessions, or moved off the tape.total,offsetandlimit: the size of the log and the page that was served.- The page's
source:bundlewhen the page comes from the engine's log,tablefor a run imported before the log was paged. resultsReleasedAt: present when the run's results were released, which is why the page is empty.disclaimer: the backtest disclaimer, word for word.
Try saying
If it fails
No such run in this project.- The id is wrong or the run belongs to another project.Claude takes the run id from run_backtest or from get_strategy.
The backtesting engine is not configured- The run's log lives on the engine and this deployment has none configured.Nothing on your side. Contact Orbital support.
Backtesting is not active in this project — turn it on under Settings → Apps in Orbital, then try again- The Backtesting app is off in the project you connected.In Orbital open Settings, then Apps, and turn Backtesting on for the project you connected.