Stock Analyzer
A comprehensive skill for financial stock analysis with technical indicators, real-time data fetching, chart generation, sentiment analysis, and multi-market support.
Capabilities
- •Real-Time Data: Fetch current prices and historical data from multiple sources
- •Chart Generation:
- •Visual Analysis: Generates professional candlestick charts with SMAs
- •Output: Returns a path to the chart image (PNG)
- •Technical Analysis: 15+ indicators (RSI, MACD, Bollinger Bands, Moving Averages, etc.)
- •Trading Signals: Automated buy/sell/hold recommendations based on technical indicators
- •Sentiment Analysis:
- •Headlines: Latest news events
- •Scores: Polarity (-1 to 1) and Subjectivity for each headline and an average for the stock
- •Financial Health: Market Cap, PE Ratio, Revenue, Net Income
- •Multi-Market Support: US stocks, Hong Kong stocks (.HK), China A-shares (.SS, .SZ)
- •Data Caching: Automatic caching to reduce API calls and improve response time
Technical Indicators
Trend Indicators:
- •Simple Moving Averages (SMA): 20, 50, 200-day
- •Exponential Moving Averages (EMA): 12, 26-day
- •MACD (Moving Average Convergence Divergence)
- •ADX (Average Directional Index)
Momentum Indicators:
- •RSI (Relative Strength Index)
- •Stochastic Oscillator (%K, %D)
- •CCI (Commodity Channel Index)
- •ROC (Rate of Change)
Volatility Indicators:
- •Bollinger Bands (Upper, Middle, Lower, Bandwidth)
- •ATR (Average True Range)
- •Standard Deviation
Volume Indicators:
- •OBV (On-Balance Volume)
- •VWAP (Volume Weighted Average Price)
Trading Signals
The skill generates the following signals:
- •RSI Signal: Overbought (>70), Oversold (<30), Neutral
- •MACD Signal: Bullish, Bearish, Neutral
- •Bollinger Bands Signal: Overbought, Oversold, Normal
- •Trend Signal: Strong Uptrend, Uptrend, Downtrend, Strong Downtrend, Sideways
- •Stochastic Signal: Overbought, Oversold, Neutral
- •Volume Signal: High, Low, Normal
- •Overall Recommendation: Strong Buy, Buy, Hold, Sell, Strong Sell
Workflow
When a user requests stock analysis, follow this workflow:
1. Identify Analysis Type
Basic price queries:
- •"What's AAPL trading at?" → Run:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker AAPL - •"Show me Tesla's price" → Run:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker TSLA
Technical analysis queries:
- •"Is AAPL overbought?" → Run:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker AAPL --technical - •"Analyze TSLA with technical indicators" → Run:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker TSLA --technical - •"Should I buy MSFT?" → Run:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker MSFT --technical
Chart generation queries:
- •"Show me a chart of AAPL" → Run script with chart option, display the image from
data['chart']field - •"Chart for NVDA" → Generate candlestick chart and embed using

Sentiment analysis queries:
- •"What is the sentiment for Tesla?" → Run script and report
data['news_sentiment']values - •"How is the news for NVDA?" → Analyze sentiment scores and describe market mood
Historical data queries:
- •"Show me AAPL's 6-month trend" → Run:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker AAPL --period 6mo --technical
Multi-market queries:
- •"Analyze Tencent stock" → Run:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker 0700.HK --technical - •"How is Moutai performing?" → Run:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker 600519.SS --technical
2. Parse JSON Output
The script returns structured JSON with the following format:
{
"metadata": {
"ticker": "AAPL",
"market": "us",
"timestamp": "2026-01-07T10:30:00Z",
"currency": "USD",
"cached": false
},
"price": {
"current": 185.23,
"change": 0.73,
"change_pct": 0.40,
"open": 184.50,
"high": 186.00,
"low": 183.75,
"volume": 52341000
},
"technical": {
"indicators": {
"rsi_14": 62.5,
"macd": {"macd": 2.34, "signal": 1.89, "histogram": 0.45},
"bb_upper": 190.50,
"bb_middle": 185.00,
"bb_lower": 179.50,
"sma_20": 183.20,
"sma_50": 182.34,
"sma_200": 175.67
},
"signals": {
"rsi_signal": "neutral",
"macd_signal": "bullish",
"bb_signal": "normal",
"trend": "uptrend",
"recommendation": "buy"
}
},
"chart": "/path/to/chart.png",
"news_sentiment": {
"average_polarity": 0.45,
"average_subjectivity": 0.62,
"headlines": [...]
},
"history": [...]
}
3. Provide Analysis
Based on the data returned:
For price-only queries:
- •State current price, change, and change percentage
- •Mention if data is cached (check metadata.cached)
For technical analysis queries:
- •Interpret key indicators relevant to the question
- •Explain what the signals mean
- •Provide the overall recommendation
- •Support your analysis with specific indicator values
For chart queries:
- •Display the chart: The JSON output includes a
"chart"field with a file path. You must display this image to the user using markdown: - •Describe key visual patterns visible in the chart
For sentiment queries:
- •Use the values in
"news_sentiment"to describe market mood - •Report average polarity and subjectivity
- •Mention key headlines if relevant
Example interpretation:
User: "Is AAPL overbought right now?" [After running the command and getting JSON output] Response: "Apple (AAPL) is currently trading at $185.23, up 0.40% today. Based on technical analysis: - RSI is at 62.5, which is in neutral territory (not overbought). Overbought would be above 70. - The price is near the middle Bollinger Band at $185.00, suggesting normal volatility. - MACD shows a bullish signal with a positive histogram of 0.45. - The stock is in an uptrend, trading above its 50-day SMA of $182.34. Overall recommendation: BUY. The stock shows bullish momentum without being overextended."
4. Multi-Market Support
The skill automatically detects the market from the ticker format:
- •US Stocks: Use standard ticker (AAPL, TSLA, MSFT)
- •Hong Kong Stocks: Use .HK suffix (0700.HK for Tencent, 9988.HK for Alibaba)
- •China A-Shares:
- •Shanghai: .SS suffix (600519.SS for Moutai)
- •Shenzhen: .SZ suffix (000001.SZ for Ping An Bank)
The system automatically adjusts timezone and currency based on the market.
Command Options
# Basic price check python3 main.py --ticker AAPL # Technical analysis python3 main.py --ticker AAPL --technical # Custom time period (1mo, 6mo, 1y, max) python3 main.py --ticker AAPL --period 3mo --technical # Custom interval (1d, 1wk, 1mo) python3 main.py --ticker AAPL --period 6mo --interval 1d # Disable caching (force fresh data) python3 main.py --ticker AAPL --technical --no-cache
Important Notes
- •Always use
${CLAUDE_PLUGIN_ROOT}- This environment variable points to the correct plugin directory - •Check for errors - If the JSON contains an
errorfield, explain the error to the user - •Cache awareness - Mention if data is cached (metadata.cached = true) when relevant
- •Market context - Include market name and currency in your response
- •Be specific - Cite actual indicator values from the JSON, don't make up numbers
- •Explain signals - Don't just state "RSI is 62.5", explain what that means ("RSI at 62.5 indicates neutral momentum, neither overbought nor oversold")
- •Display charts - When chart data is available, always embed the image in your response
- •Report sentiment - Include news sentiment analysis when available in the data
Error Handling
If the command fails or returns an error:
- •Check the error message in the JSON output
- •Common issues:
- •Invalid ticker symbol
- •Market closed (recent data may not be available)
- •API rate limits (try again with --no-cache)
- •Network issues
- •Explain the error clearly to the user
- •Suggest alternatives if possible
Examples
Example 1: Basic Price Check
User: "What's the current price of Apple stock?"
Command: python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker AAPL
Response: "Apple (AAPL) is currently trading at $185.23 USD, up $0.73 (0.40%) today."
Example 2: Technical Analysis
User: "Should I buy Tesla stock?"
Command: python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker TSLA --technical
Response: "Tesla (TSLA) is trading at $235.50. Based on technical analysis:
- RSI: 45.2 (neutral - neither overbought nor oversold)
- MACD: Bullish signal (histogram: +1.23)
- Trend: Uptrend (price above 50-day SMA)
- Bollinger Bands: Trading in normal range
Overall recommendation: BUY. The stock shows bullish momentum with neutral RSI, suggesting room for upside without being overextended."
Example 3: Chart Generation
User: "Show me a chart of AAPL"
Command: python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker AAPL
Response: "Here's the candlestick chart for Apple (AAPL):

The chart shows recent price action with 50-day and 200-day moving averages overlaid."
Example 4: Sentiment Analysis
User: "What is the sentiment for Tesla?"
Command: python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker TSLA
Response: "Tesla (TSLA) news sentiment analysis:
- Average Polarity: 0.45 (Positive)
- Average Subjectivity: 0.62 (Moderately Subjective)
Recent headlines show a generally positive sentiment toward Tesla, indicating favorable market perception."
Example 5: Hong Kong Stock
User: "Analyze Tencent stock"
Command: python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker 0700.HK --technical
Response: "Tencent Holdings (0700.HK) is trading at 385.00 HKD in the Hong Kong market..."
Example 6: Historical Trend
User: "How has Microsoft performed over the last 6 months?"
Command: python3 ${CLAUDE_PLUGIN_ROOT}/skills/stock-analyzer/scripts/main.py --ticker MSFT --period 6mo --technical
Response: "Microsoft (MSFT) is currently at $420.15. Over the past 6 months:
- Strong uptrend: Price well above 200-day SMA ($380.25)
- RSI at 68: Approaching overbought but still in bullish territory
- MACD: Positive and rising
The stock has gained approximately 11% over the 6-month period, showing consistent upward momentum."
Data Sources
- •Primary: yfinance library (Yahoo Finance data)
- •Fallback: Direct Yahoo Finance API
- •Cache: Local file-based cache (15-minute TTL)
Limitations
- •Real-time data has ~15-minute delay for free tier
- •Some indicators require minimum data history (e.g., 200-day SMA needs 200 days)
- •Market-specific data availability varies (US > HK > CN A-shares)
- •Technical analysis is based on historical data and doesn't guarantee future performance