AI Trading Analyst — a 0.13-second install that returns a stock thesis with entry, stop and targets
A Claude Code skill bundle that runs on your existing subscription with not a single API key. The same command went in three times to measure how far the thesis
AI Trading Analyst — a 0.13-second install that returns a stock thesis with entry, stop and targets from one commandDone when: one command inside Claude Code gets you a stock thesis with an entry price, a stop-loss and targets attached.
| What it does | Type /trade thesis <ticker> inside Claude Code and you get a one-page document for a US stock with the bull and bear case, the catalyst calendar, and an entry price, a stop-loss, 3 tiers of target and a share count. It places no orders |
| Who it fits | Anyone already on Claude Code who wants "the case for buying and the place to cut" as a document, for one ticker at a time |
| Who it doesn't fit | Anyone trading crypto (US stocks only) · anyone expecting orders to go out automatically · anyone who needs live prices |
| What you end up with | One TRADE-THESIS-NVDA.md in your working folder, and the 10-line action summary block inside it |
| What you need · cost | Code = free (MIT) · Model = your Claude Code subscription, no separate key · Market data = free (web search) · weltiq = connects on the free plan |
| Time · difficulty | 0.13 seconds to install (measured) + 4–5 minutes to the first result. Difficulty ★☆☆☆☆ — the easiest thing in this series. One command in a terminal |
| Relationship to weltiq | It connects — but this time it is an integration experiment. The three prices become a rule as they stand, but this tool's horizon is measured in months, which does not sit squarely on a 24-hour slot |
| Test environment · date | 2026-09-22 · macOS 15.6 · Python 3.14.7 · Claude Code 2.1.278 · tool commit c6d7252 |
| Disclosure | weltiq supports my writing of this series. Everything said about the tool is measured, and the fields where weltiq loses are written down as they are |
1. What this is
A Claude Code skill bundle by zubair-trabzada. Not a Python package, not a server — 16 markdown instruction files and one PDF generation script, and that is the whole thing. Claude Code reads those instructions, searches the web, and writes an investment analysis document.
Which is why there is not a single key. The model is the Claude Code you already run, and prices, financials and analyst price targets all come in through web search. That is why this is the shortest install in the series, and it is also the biggest weakness you will see later.
| Repository | github.com/zubair-trabzada/ai-trading-claude |
| License | MIT |
| Size | 660KB (16 skills · 5 agents · 1 Python file) |
| Last commit | 2026-04-07 |
| Market | US stocks |
| Order execution | None. The repository nails it down in its first line: this is not a trading bot |
There are 16 commands, but the one that actually produces price levels is /trade thesis, on its own. /trade quick gives only a signal, /trade compare gives only a winner, and /trade analyze has the problem noted in the table below. The rest are reading material.
2. Installing
One line.
git clone https://github.com/zubair-trabzada/ai-trading-claude.git
cd ai-trading-claude && ./install.sh
To pull it straight from the remote, it is curl -fsSL https://raw.githubusercontent.com/zubair-trabzada/ai-trading-claude/main/install.sh | bash. All it does is copy three sets of files under ~/.claude/, so it is done in 0.13 seconds (measured).
Skills: 16 installed → ~/.claude/skills
Agents: 5 installed → ~/.claude/agents
Scripts: 1 installed → ~/.claude/skills/trade/scripts
The screen after the install finished
This is the entire result of running ./install.sh once. When you can see the bottom three lines — where the 16 skills, 5 agents and 1 script each went — the install is done. The yellow line in the middle is a warning that reportlab is missing, which you can ignore if you are not going to use the PDF. (For the capture I pointed HOME at a temporary folder so as not to touch my real home, which is why the paths read $HOME.)
If you plan to use the PDF reports, run pip3 install reportlab as well. The install script only warns and moves on without it. To remove it, ./uninstall.sh.
Where it gets stuck
| Symptom | Why | What to do |
|---|---|---|
Typing /trade does nothing |
Skills are read when Claude Code starts | Quit Claude Code and open it again. After that /trade appears in the command list |
| You can't tell whether it fired | No big banner appears on screen | Look for one of three traces — ① the single line Launching skill: trade-thesis ② about 16 web searches going out back to back ③ a TRADE-THESIS-<ticker>.md file appearing in your working folder |
You don't want it touching ~/.claude |
The install script writes globally to the home directory | Copying the same files into a project folder's .claude/skills/ and .claude/agents/ works exactly the same |
/trade analyze claims it "launched 5 agents in parallel" |
Those 5 agents are never registered (§6) | Use /trade thesis. Everything you need comes out of it |
| You ask in words and this tool doesn't attach | Depending on your phrasing, a different skill attaches or nothing does (§4) | Type the slash command yourself — /trade thesis NVDA |
3. First result
/trade thesis NVDA
4–5 minutes later, TRADE-THESIS-NVDA.md appears. It is a 10-section document, and you only need to read the last section.
TICKER: NVDA
DIRECTION: LONG
ENTRY: $222.60 (limit order)
STOP LOSS: $211.00 (-5.2%)
TARGET 1: $235.75 (+5.9%) — sell 33%
TARGET 2: $280.00 (+25.8%) — sell 33%
TARGET 3: $315.00 (+41.5%) — sell remaining
RISK/REWARD: 1.1:1 to T1; 4.7:1 blended across T1/T2/T3
POSITION SIZE: 22 shares ($4,897.20) for $50K account — the 10% portfolio cap
is the binding limit, not the 2% risk rule
TIMEFRAME: 3-6 months
NEXT CATALYST: Q3 FY2027 earnings on 2026-11-17
The ten lines /trade thesis NVDA produced
This is the tool at work. The top two lines are the as-of time and the reference price the document settled on (the 2026-09-21 close, $227.38), and the green block is that last section. Note that the $222.60 entry is below the reference price — this is not "buy now", it is "buy if it comes down". That single line becomes a problem in section 5.
This is what it looks like when it works. Direction, entry, stop, three targets, share count, horizon and next catalyst, all in one block. The nine sections above it explain why those ten lines came out the way they did.
There is no dashboard. No web UI, no TUI — the Claude Code terminal output and a markdown file dropped in your working folder are all of it. Do not go looking for an address to open. If you want it as a picture, /trade report-pdf will make a PDF, and that is exactly where section 6 catches it out.
The fields where the tool marks itself down come along too. The run above wrote its confidence as Medium and its asymmetry as 6/10, and said in the body that the entry condition does not currently hold — with an entry of 222.60 below the close at the time, it was an instruction to wait for a pullback.
4. Getting the most out of it — throw the same question at it three times
This tool's output is polished. Polished output hides how much the underlying evidence moves. So I threw the same command at it three times in three separate sessions.
| Direction | Entry | Stop | Target 1 | Shares | Horizon | Confidence | |
|---|---|---|---|---|---|---|---|
| Run 1 | LONG | 222.60 | 211.00 | 235.75 | 22 | 3–6 months | Medium |
| Run 2 | LONG | 217.65 | 204.40 | 233.00 | 22 | 3–6 months | Medium |
| Run 3 | LONG | 217.65 | 208.00 | 233.00 | 22 | 2–4 months | Medium |
The direction matched 3/3, and the targets and share counts are nearly identical. The 22 shares came from the same calculation done independently all three times — "the 10% concentration cap binds before the 2% risk rule".
The field that moves is the stop. 204.40 / 208.00 / 211.00 — a spread of up to 3.2%. The stop is the number that sets the size of the risk, so which of the three you use changes the risk of the same decision. Run it once and use that number as-is, and this spread is invisible to you.
The document tells you why it moves, too. This tool has no market-data API; web search is its source. On the same day, on the same ticker, it split like this.
| What search returned | |
|---|---|
| Current price | $227.38 / $222.27 / (another source) $270.34 |
| RSI(14) | 60.4 / 54.54 / 49.94 / 80.31 |
| Forward P/E | 20.2 / 18.20 / 24.50 / 37.2 / 46 |
| Next earnings date | 2026-11-17 / 2026-11-25 |
The honest part is that none of the three runs hid the conflict. The run 2 document wrote at the very top that "if a different price set is correct, every level in this document is void", and run 3 wrote "one source called it a golden cross, yet that same source's own 50-day average (217.65) sits below its 200-day (220.21). I used the numbers, not the label." The instructions tell it not to invent numbers, and it actually holds to that.
So here is the better way to use it: run it three times; if the direction splits, skip that day, and if the direction agrees, use the most conservative of the three stops (the one furthest from entry). And do not trust the document on the current price — check it once on your own broker's screen. The $222.27 that two of the three runs above used was $5 below the actual close.
And: do not ask in words
Skills attach based on your phrasing. So I threw the same request three ways, three times each.
| How I asked | What attached |
|---|---|
NVDA 를 거래해서 수익을 내 줘. 왜 그렇게 했는지도 설명해 줘 ("trade NVDA and make me a profit. And explain why you did what you did") |
0/3 — nothing attaches. All three times it refuses, saying it cannot place orders, and offers alternatives |
NVDA 투자 논거를 진입가·손절가·목표가와 함께 만들어 줘 ("build me an investment thesis for NVDA with an entry, a stop and a target") |
3/3 — a different finance skill attached. This machine had another investment-analysis skill installed, and it won all three times |
| The same sentence, in a folder where only this tool is installed | 3/3, this tool attaches |
/trade thesis NVDA |
1/1, pinned immediately. No follow-up questions, it just starts |
Two things to take from that. One, "trade it for me" cannot call this tool — it reads as an order request and goes to a refusal. Two, install several finance-related skills and you receive results without knowing which one attached. The answer to both is the same — type the slash command yourself.
On the side: when you want to pick a ticker
I actually ran /trade compare NVDA AMD INTC. The third ticker is discarded — the instructions say to use only the first two and ignore the rest, and INTC was never even searched. You get a winner (NVDA 8.7 vs AMD 6.3) but not one price level.
To choose among three you have to run pairwise comparisons three times to build a bracket, then put /trade thesis on the winner to get an entry and a stop.
5. Moving it into weltiq — an integration experiment
weltiq is execution infrastructure that runs a strategy unattended, 24 hours a day. Since this tool produces three prices, I carried those three over as a rule and put them on a single slot.
weltiq setup (identical in every part)
sign up ({{CTA_URL}}) → My → issue a key under Connections → claude mcp add weltiq ...
The order I did it in — three steps
① write it as a rule entry close ≤ 222.60 → long / stop 211.00 / target 235.75
② write the rationale in my own words "why does this make money / when does the logic break / invalidation as a number"
③ draw the boundary and launch $10,000 capital, stop at $300 cumulative loss, auto-terminate after a set time
You cannot skip ②. Throw it in without a rationale and weltiq refuses, handing you back three questions. And this tool already holds all three of those fields.
| What weltiq asks | The field this tool already writes |
|---|---|
| In one sentence, why does this strategy make money | Executive Summary — 2–3 sentences of thesis |
| Under what condition does the logic break | Entry Invalidation — "a close below 212.00 on above-average volume voids every price in this document" |
| The invalidation condition as a number | The same field, written as a price |
Carrying it over took six operations. The same size as InvestSkill in part 09, and for the same reason — the output is "three prices and the condition under which they are wrong".
What did not carry over
- Targets 2 and 3 (280 / 315) and the 33/33/34% scale-out. weltiq's price-condition exit has only two fields, stop and target. There is nowhere to put a 3-tier take-profit
- The 22 shares. A document uploaded from this account could, at the time, only order 1 share at a time, so I cut it to 1. The size was a weltiq-side constraint, not the tool's judgment. That constraint is gone as of 2026-09-23 — the rule document's
sizing.qtyis now the order cap itself, so 22 shares go through as given. What follows is the record of the day I cut it to 1 - The 3–6 month horizon. This is the real wall in this combination
Result — I could not confirm a fill. The slot came up and the entry condition, stop and target were carried into the summary line exactly. But fills were 0, for two reasons. One is that my test time was after the US close. The other matters more — the entry price this tool produced, 222.60, is below the last close of 227.30. Even with the market open, it does not buy until a pullback arrives. All three runs were like that.
So the honest conclusion about this combination is this. This tool does not say "buy now". It says buy if it comes down to a particular price, over the next few months. Put that decision on a 24-hour unattended slot and most days nothing happening is the correct behavior. To make it fit, you have to pick one of two things — add "somewhere that can fill today" to the command and narrow the horizon, or leave the slot up on a weekly scale and wait for the pullback.
This article did not confirm the second option. The market was closed, and I stopped and deleted the slot right after creating it. That is why this is called an integration experiment.
6. After using it
The good
- A 0.13-second install and 0 keys. If you have Claude Code, that is all. The lowest barrier to entry in this series
- The output is written in order language. Direction, entry, stop, target, shares and horizon sit in one fixed-format block, so it moves anywhere easily
- It writes the invalidation condition as a number. Not many tools make you put "when am I wrong" down as a price
- It writes down what it does not know. All three runs left a "Data unavailable" list and the source conflicts inside the document. It did not invent numbers
The bad
- "5 agents in parallel" is not true. The 5 agents
/trade analyzeclaims to call are never registered, because the files lack the required front matter. What actually happens is that it calls five skills back to back inside the same conversation, and then wrongly says they are "running in the background right now". The 5 agent files the installer puts down are dead files /trade report-pdfproduces a wrong report if you follow the documentation. The key names in the JSON the instructions tell you to build differ from the key names the Python script reads. Build it as instructed and the script fills the values it cannot find with defaults, so a buy analysis of NVDA comes out as AAPL · 0 points · F · AVOID
Page 1 of the PDF produced from a payload built as instructed
I put in an NVDA analysis and the cover says AAPL, the score is 0 and the signal is AVOID. Which means not one of the values I put in was read.
Page 2 of the same PDF — the score dashboard
The five bars (72, 68, 61, 55, 65) are not numbers I supplied — they are sample values hard-coded in the script. Only the total prints as 0, so the two contradict each other.
Rebuild it with the keys the script actually reads (ticker / overall_score / categories / technical / fundamental / thesis / risk) and it comes out correctly.
Page 1 of the PDF rebuilt with the real schema
Same script, same analysis. The only change is key names matched to what the script reads.
- The market data is web search. The entry and the stop are computed on top of sources where the current price splits between $222.27 and $270.34 on the same day. Unusable for an intraday decision
- The last commit is 2026-04-07. Untouched for five and a half months. That looks like the reason the two defects above have gone unfixed
Cost
| Item | Amount |
|---|---|
| Install · code | $0 (MIT) |
| Financial data subscription | $0 — none |
| Model | Your Claude Code subscription. 16–17 web searches and 4–5 minutes per run |
| weltiq | Connects on the free plan |
7. What to do next
Start by running /trade thesis three times on one ticker. If the direction is the same 3/3 and the stops cluster within 1%, that decision is fairly solid; if the stops spread more than 3%, the web was unsettled that day. This tool will not tell you the difference itself, so throwing it three times is the only way to see it.
After that comes the thing this article could not close. This tool's decisions run for months, while unattended execution is set up in days or weeks. The next part's trading-bot-agent is built the other way round, on the premise of running intraday, so you can put the two answers to the same question side by side and see which one sits better on unattended execution.
Carrying on with weltiq
If you want to run the entry, stop and target this tool produced on real prices and real costs, 24 hours a day —
- Sign up → {{CTA_URL}}
- My → Connections → issue a key
claude mcp add weltiq ...to connect it to Claude CodeThe free plan gets you one slot. It is simulated; no live orders go out.
Every number in this article was measured on 2026-09-22. The raw logs, the JSON and even the attempts that failed are all in the test record. This is not a trading opinion.