Stock Analyzer

SkillDev tools

ML-powered single-ticker analysis, Random Forest price-range prediction (5-day horizon) plus emoji-annotated technical insights for the Single Ticker Audit view. Use when Michael wants a price prediction, a read on one ticker's technicals, or to explain the audit view's prediction card and confidence.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Stock Analyzer skill

What this skill tells your AI

The instructions your AI receives, as published by mphinance/alpha-skills in skills/stock-analyzer/SKILL.md and read by ahel’s review.

Random Forest regression over technical indicators to predict a 5-day price range and generate market insights for the Single Ticker Audit view.

Usage

from stock_analyzer import StockAnalyzer, generate_market_analysis

analyzer = StockAnalyzer()
data = analyzer.calculate_technical_indicators(ohlcv_df)
model_info = analyzer.train_prediction_model(data, horizon=5)
prediction = analyzer.predict_price_range(model_info, current_price=150.0)
insights = generate_market_analysis(data, ticker="AAPL")

Requirements

Needs pandas and scikit-learn. Run with the repo-root venv, NOT bare python3:

.venv/bin/python -c "from stock_analyzer import StockAnalyzer, generate_market_analysis"

Verified: ./.venv/bin/python has both. Bare python3 does not, and the resulting ModuleNotFoundError: No module named 'pandas' is the "skill seems broken" symptom, not a code fault.

Indicators

CategoryIndicators
Moving averagesSMA(20), SMA(50), EMA(12), EMA(26)
MomentumRSI(14), MACD + signal + histogram
VolatilityBollinger Bands(20,2), ATR(14)
VolumeVolume SMA(20), Volume Ratio
OscillatorsStochastic %K, %D

ML features: lag (close/volume/returns 1–5d back), rolling mean/std (5/10/20d), price-vs-SMA20/50, 10/20d return volatility. Minimums: 50 bars to train, 30 after split.

Prediction output

{ 'expected': 152.30, 'low': 148.50, 'high': 156.10,
  'expected_change_pct': 1.53, 'confidence': 0.72, 'horizon': 5 }

low/high = ±1 std dev across trees; confidence = inverse of relative uncertainty (0–1).

Insight categories

Price movement · RSI overbought/oversold · MA alignment · Bollinger extremes · MACD direction & crossovers · volume conviction. Returned as an emoji-annotated list, e.g. 💡 RSI at 28.5 suggests oversold — potential buying opportunity.

Integration

main.py → render_audit_view(): fetch ~6mo daily (yfinance) → indicators → train (if enough data) → prediction card (Low/Expected/High) → insights panel.

Source

Full guide: STOCK_ANALYZER_README.md.

Signals

GitHub stars
27
Forks
5
Last commit
Sep 2026
Advanced
Item type
skill
Key
stock-analyzer-mphinance
Source
github.com/mphinance/alpha-skills