
Claude does not recommend stocks. That is an important distinction before anything else. It will not tell you to buy or sell a specific ticker, and it should not.
What Claude can do is analyze stocks. Quantitatively, systematically, and with a structure that most retail investors never get to apply to their own watchlist. Momentum scores, Sharpe ratios, factor breakdowns, backtest frameworks. The kind of analysis that used to require either a Bloomberg terminal or a quant team. This post shares the exact skill prompt I built, what the output looks like using a real IonQ example, and the one thing you should never forget when using it.
What Is a Claude Skill and Why Build One for Quant Analysis?
A Claude skill is a set of instructions you save and apply to any conversation. Instead of re-explaining your framework every time, you define it once. Claude then applies it automatically whenever you bring it a stock or portfolio question.
For quant analysis, this matters because the quality of output depends entirely on the structure of the question. Without a framework, Claude gives you a general summary. With a proper quant skill, Claude applies factor analysis, calculates risk metrics, compares against benchmarks, and presents everything in a structured format you can actually use.
The Complete Quant Skill Prompt

This is the exact prompt I use. Copy it directly into Claude custom instructions, or paste it at the start of any analysis session.
“You are a professional quantitative analyst specializing in US equities (NYSE/NASDAQ). Apply the following framework to all stock analysis requests. Core Principles: (1) Conclusion first, lead with the key insight in the first sentence. (2) Every claim backed by a specific metric or data point. (3) Risk disclosure required on every analysis, no exceptions. (4) Tables before paragraphs. (5) Python code using yfinance, pandas, and numpy for every analysis. Factor Analysis required for every stock: Momentum (12M-1M return, 3M return, RSI-14), Value (P/E, P/S, EV/EBITDA vs sector), Quality (ROE, debt ratio, gross margin), Volatility (60D annualized vol, Beta vs SPY), Comparative vs SPY and QQQ over 1M/3M/6M/12M/YTD. Performance Metrics Table required: CAGR, Sharpe Ratio, Max Drawdown, Calmar Ratio, Win Rate. Data standard: Always fetch the most recent price data first and state the reference date and closing price at the top of every analysis. Risk Warning required on every output: This analysis is for reference only. Past performance does not guarantee future results. The final investment decision is entirely your responsibility.”
What the Output Looks Like: Real IonQ (IONQ) Example
To show what this skill actually produces, here is a real analysis I ran on IonQ (IONQ), a quantum computing company on NYSE. This is exactly what Claude outputs when you apply the skill and ask for a full quant analysis.
| Factor | Score | Signal | Percentile |
|---|---|---|---|
| Momentum (12M-1M) | +138.6% | ▲ BUY | Top 5% |
| Momentum (3M) | +41.2% | ▲ BUY | Top 8% |
| Value (P/S Ratio) | 47.2x | ▼ SELL | Bottom 5% |
| Quality (ROE) | -38.4% | ▼ SELL | Bottom 12% |
| Volatility (60D) | 91.3% | ▼ SELL | Bottom 3% |
| RSI (14D) | 58.7 | — NEUTRAL | Mid 40% |
The analysis surfaced extreme momentum (top 5%) combined with extreme valuation (P/S of 47x), negative profitability, and very high volatility. The quant signal came out as a momentum buy with a high-risk classification. That combination, strong signal and strong caution simultaneously, is exactly what structured quant analysis is supposed to surface.
The Python Code Behind Every Analysis

Every analysis the skill produces includes executable Python code. Here is the core structure for any stock:
import yfinance as yf
import pandas as pd
import numpy as np
ticker = "IONQ"
stock = yf.Ticker(ticker)
# Always fetch latest price first
latest = stock.history(period="5d")
latest_price = latest["Close"].iloc[-1]
latest_date = latest.index[-1].date()
print(f"Reference Date: {latest_date} | Latest Close: ${latest_price:.2f}")
prices = stock.history(period="2y")["Close"]
returns = prices.pct_change().dropna()
annual_return = returns.mean() * 252
annual_vol = returns.std() * 252**0.5
sharpe = (annual_return - 0.05) / annual_vol
mdd = (prices / prices.cummax() - 1).min()
calmar = annual_return / abs(mdd)
mom_12m = (prices.iloc[-1] / prices.iloc[-252] - 1)
mom_3m = (prices.iloc[-1] / prices.iloc[-63] - 1)
print(f"Annual Return: {annual_return:.1%}")
print(f"Sharpe Ratio: {sharpe:.2f}")
print(f"Max Drawdown: {mdd:.1%}")
print(f"12M Momentum: {mom_12m:.1%}")
How to Set This Up in Three Steps
Step 1: Open Claude and go to Settings. Find Custom Instructions. Paste the full skill prompt above. Save. Claude will now apply this framework to every new conversation automatically, no re-pasting needed.
Step 2: Start an analysis by giving Claude a ticker and a simple request. Something like: “Run a full quant analysis on NVDA.” Claude fetches the latest price, runs the factor analysis, generates the performance comparison table, and produces the Python code, all in one response.
Step 3: Run the Python code yourself to verify. Google Colab is free and requires no setup. This step matters. It lets you confirm the numbers against current market data rather than relying entirely on Claude’s output.
The Part That Cannot Be Automated

Every factor score, every Sharpe ratio, every momentum signal this skill produces is a starting point, not a conclusion. Quant metrics are backward-looking by definition. They tell you what has happened, not what will happen.
High momentum stocks with strong quant scores can and do crash. Low quant scores have preceded some of the best long-term investments. The model surfaces historical patterns. It does not predict the future, and it does not know your financial situation, your risk tolerance, your time horizon, or the rest of your portfolio.
Use the skill. Run the analysis. Read the output carefully. Then make your own decision — one you could stand behind regardless of how it turns out.
The final investment decision is always yours. Quant analysis is a tool for thinking more clearly, not a substitute for thinking at all.