← ClaudeAtlas

stocktwits-sentimentlisted

Manually refresh retail sentiment for watchlist tickers from StockTwits — per-ticker bull%/bear% from user-tagged messages, message volume, watcher count. Free public API (no auth). Sibling of `reddit-sentiment`; together they form the raw retail-sentiment layer that LLM scoring (in `sentiment-cache`) consumes. Manual by design — no automatic refresh, no cron. Covers US equities + crypto (with `.X` suffix); KLSE returns 404 gracefully and stores as no-coverage.
kensongan-prog/trading-advisor · ★ 1 · AI & Automation · score 62
Install: claude install-skill kensongan-prog/trading-advisor
# StockTwits Sentiment Skill ## When to use Trigger this skill when the user says: - "Refresh StockTwits sentiment" - "What's StockTwits saying about NVDA?" - "Pull retail sentiment from StockTwits" - "Show me the StockTwits cache" Do NOT trigger for: - Reddit (use `reddit-sentiment` — different forum, different signal) - Professional news (use `us-news`, `klse-news`) - KLSE tickers as a primary source — StockTwits has near-zero KLSE coverage; the skill will store a no-coverage marker but you won't get signal ## Why this exists StockTwits is the practical retail-sentiment alternative to FinTwit. The X API ($100/mo basic, $5k+ for real data) was deprioritized during the build; StockTwits provides the same signal class (bull% / bear% / message velocity from retail traders) via a free, unauthenticated public API. Many StockTwits messages carry **user-tagged sentiment** (Bullish / Bearish badge the poster sets when composing). Roughly 40-60% of messages are tagged on liquid US names. Untagged messages will be LLM-scored downstream by the `sentiment-cache` layer (next step). ## Source `https://api.stocktwits.com/api/2/streams/symbol/{TICKER}.json` — returns last 30 messages. No auth required. Public rate limit applies (~200 requests/hour per IP — far above our ~25-name refresh). **Ticker formatting:** - **US equity:** bare symbol (e.g. `NVDA`, `AUPH`) - **Crypto:** symbol + `.X` suffix (e.g. `BTC.X`, `ETH.X`, `HYPE.X`) - **KLSE:** no coverage. The skill stores a `no_cover