-
-
The news reads the past: sentiment tracks yesterday's move, not tomorrow's.
-
Our 2B model beats FinBERT, even FinBERT fine-tuned on our data.
-
Six pre-registered trading experiments. Zero edge.
-
Home: your list and every stock, tagged by our model.
-
Stock page: price, chart and today's news tone.
-
Confidence bar, Tiger Data sentiment history, Gemini briefing with ElevenLabs Listen.
-
Phone-sized view: home and stock detail.
-
Dark mode.
Inspiration
We tried to beat the market with AI. Six pre-registered experiments later: zero edge. If a regular person can see it, it's already priced in. So we stopped trying to predict prices and built something honest: an app that reads the news for you and tells you fast when it turns bad.
What it does
Knight-Daddy is a bearish-news early warning for every stock you follow. Cash App simple, on web and iPhone.
- 🏷️ Tags every headline Bullish / Bearish / Neutral with our own fine-tuned model
- 📊 Shows a confidence bar and a sentiment history (stored in Tiger Data)
- ✍️ Gemini writes a short briefing per stock, ElevenLabs reads it to you
- 🎙️ Ask questions by voice; Gemini answers from that stock's real headlines
- 🪙 Live crypto prices from Coinbase, with headlines tagged by our model
- 🚫 Never says buy, sell or hold
How we built it
- Qwen3.5-2B + QLoRA, trained on Brown's Oscar GPU cluster
- FastAPI + React on Vercel, Expo for iPhone, Modal for live data storage
- Finnhub news, Coinbase prices, Gemini briefings and voice Q&A, ElevenLabs voice, Tiger Data history
- Live at knight-daddy.us (GoDaddy Registry)
Challenges
- Not fooling ourselves: every trading test was pre-registered, with no tuning after the fact.
- Leakage: 1.6% train/test near-duplicates. Removing them moved accuracy 0.05 points.
- Fair fights: we fine-tuned FinBERT on our exact data instead of beating a strawman.
- Messy crypto labels: 42% of crypto post tags didn't match the text, mostly because a third of posts take no stance at all. We added a Neutral class and rebuilt the test set.
Accomplishments
- 91.9% accuracy, 0.895 macro F1 on 2,388 held-out financial tweets with a 2B model
- +3 points over FinBERT fine-tuned on the same data (p = 5e-6)
- Comparable to FinGPT's 0.903 weighted F1 at 13B (ours: 0.919; protocol not verified)
- Six experiments, six honest "no": sentiment lags price (11/11 ticker-years), small caps 0/28, no minute-scale reaction, weekend Bitcoin priced in by Monday, TSA airline data 0/72, and copying 2023's top ETH wallets lost 78% while ETH gained 5%
- Crypto model: fine-tuning helped on crypto social posts (+20 points) but tied on news headlines, so headlines use our general model (Claude-labeled test sets)
What we learned
- The news describes yesterday. Prices already moved.
- A small, well-tuned model can hang with giants on a narrow task.
- Fine-tuning helps when the language is different (crypto slang), not when it's already financial news. Per-stock fine-tuning trains in under a minute, with no clear accuracy difference vs the general model on a Claude-labeled test set.
What's next
- Human-checked labels for our crypto and stock test sets
- Leading indicators that aren't public yet
- Sector-level fine-tuning
Built With
- brown-oscar-hpc
- coinbase-api
- elevenlabs
- expo.io
- fastapi
- finnhub
- gemini-api
- godaddy-registry
- modal
- peft
- python
- pytorch
- qlora
- qwen3.5
- react
- react-native
- tiger-data
- timescaledb
- vercel
Log in or sign up for Devpost to join the conversation.