AI Guides › Workbench
By Nigel Guy · 8 min read
The usual way people "analyse the market with AI" is to paste a ticker into a chat and ask what the model thinks. You get a fluent paragraph that mixes training-data memories, guesses about recent news and a tone of quiet confidence, and none of it is tied to numbers you can check. It feels like research. It is research theatre.
The rule: Claude only works on data you exported yourself, each prompt does one job, and the output is a watchlist with a stated way to be wrong, never a buy or sell call.
This kit is three prompts run in order (clean, compare, write up) plus the data that feeds them. It looks for days when options trading in a stock was far busier than usual while the share price barely moved. That gap is worth a second look, not a trade.
| Item | What it does | Cost at time of writing | Best for | Catch |
|---|---|---|---|---|
| Claude with code execution | Runs Python on your uploaded CSVs so figures are calculated, not estimated | Free plan includes it; Pro is listed at US$20 a month, billed in local currency (check claude.ai/upgrade for the £ figure) | Doing the arithmetic reliably | Free-plan usage limits run out quickly on large files; 30MB cap per file |
| Daily price history (CSV) | Close prices per ticker per day | Yahoo Finance's CSV download needs a paid Gold subscription; many brokers export history free | The price side of the comparison | Different sources treat splits and dividends differently |
| Daily options volume (CSV/XLS) | Call and put volume per ticker per day | Cboe's historical download form is free | The options side | Cboe's figures cover Cboe exchanges only, not every US options venue |
| Prompts 1–3 | Clean, then flag gaps, then write testable watchlist notes | Free | A weekly routine you can audit | Only as good as the files you give it |
Run this in a fresh chat with both files attached. Fill in your tickers and the date range.
Role: you are a careful data preparer for a personal research notebook. You never interpret or predict.
Context: I have attached two files. One holds daily price history; the other holds daily options volume. Tickers: [TICKER_LIST]. Period: [START_DATE] to [END_DATE].
Goal: produce clean, aligned daily tables I can trust for later analysis.
Steps:
1. Use code execution for every calculation. Do not estimate figures by reading the text.
2. Describe each file's columns and date format first.
3. Join the files on date and ticker. List any dates present in one file but missing from the other.
4. Flag suspicious rows: zero or negative prices, duplicate dates, volumes far outside the ticker's normal range, apparent split jumps.
5. For each ticker, build a table with: date, closing price, daily percentage change, call volume, put volume, total options volume, and the trailing 20-day average of total options volume (leave blank until 20 days exist).
Output: a short "data issues" list first, then one table per ticker, then a downloadable CSV of all tables combined.
Constraints: no commentary on what the numbers mean. If a column I need is missing or ambiguous, stop and ask me which column to use instead of guessing.
Before answering, check: do row counts per ticker match the trading days in the period, and is every percentage change computed from consecutive trading days?
Fill in: [TICKER_LIST], [START_DATE], [END_DATE].
Start a new chat and attach only the combined CSV from Prompt 1. A clean handover file is the whole point of splitting the work.
Role: you are an analyst screening for one pattern in clean daily data. You describe; you do not recommend.
Context: the attached CSV has, per ticker and date, closing price, daily % change, call volume, put volume, total options volume and its 20-day average.
Goal: find days where options activity was unusually heavy while the share price stayed calm.
Steps:
1. Using code execution, flag every row where total options volume is at least [VOLUME_MULTIPLE] times its 20-day average AND the absolute daily price change is below [PRICE_MOVE_PCT]%.
2. For each flag, report: ticker, date, the volume multiple, call share vs put share of the volume, and the price change.
3. Give two or three plain explanations for each flag, and always include mundane ones first: an earnings date or dividend nearby, index rebalancing, options expiry week, hedging by large holders, a single large spread trade.
4. Rank flags from highest volume multiple to lowest.
Output: one ranked table, then the explanations as a numbered list matching the table rows.
Constraints: do not claim to know who traded or why. If I have not told you about upcoming earnings or events, say the explanation is unchecked rather than inventing a date. If no rows meet the thresholds, say so and stop.
Before answering, check: does every flagged row actually meet both thresholds in the data?
Fill in: [VOLUME_MULTIPLE] (3 is a reasonable start) and [PRICE_MOVE_PCT] (1 is a reasonable start).
New chat again, paste in the ranked table from Prompt 2.
Role: you write a weekly research watchlist. You never suggest buying, selling or position sizes, and you never place or simulate trades.
Context: below is a ranked table of days where options volume was heavy and the price moved little: [PASTE_RANKED_TABLE]. Today's date: [TODAY].
Goal: decide which flags show a genuine mismatch between price and options activity, and write a testable note for those only.
Steps:
1. For each flag, state whether the options activity is consistent with the calm price (for example, balanced calls and puts around a known event) or points somewhere the price has not gone. Mark consistent flags "no gap" and stop there for them.
2. For each remaining gap, write a watchlist entry with: what the options mix might suggest, what you would expect to see within [WINDOW_DAYS] trading days if that reading is right, what would show it is wrong, and the single date that matters most.
Output: "no gap" tickers with a one-line reason each, then the watchlist entries (under 80 words each), then one line stating this is personal research, not financial advice.
Constraints: no price targets, no probabilities you cannot calculate from the data, no language like "likely to rally". If the table is empty or unclear, ask me for it rather than filling gaps.
Before answering, check: does every entry include a way to be proved wrong and a dated checkpoint?
Fill in: [PASTE_RANKED_TABLE], [TODAY], [WINDOW_DAYS] (5 is a sensible default).
One long prompt lets the model interpret while it is still cleaning, so a missing day quietly becomes a "pattern". Separate chats force a handover file you can inspect between stages, and shorter chats use less of your plan's allowance.