Google Finance Stock Tracker
by @mli-cj
Track stock prices and company news from Google Finance on a schedule. Use when user wants to monitor stocks, get buy/sell recommendations, check price chang...
clawhub install google-financeπ About This Skill
name: google-finance description: "Track stock prices and company news from Google Finance on a schedule. Use when user wants to monitor stocks, get buy/sell recommendations, check price changes, follow company news, set up stock alerts, or track portfolio symbols. Triggers: 'track stock', 'watch AAPL', 'stock alert', 'buy or sell', 'stock news', 'Google Finance'. Default watchlist: NVDA, AAPL, META, GOOGL." homepage: https://finance.google.com user-invocable: true metadata: {"clawdbot": {"emoji": "π", "requires": {"bins": ["python3"]}, "os": ["darwin", "linux", "win32"], "files": ["scripts/parse-stock.py"]}}
Stock Tracker
Monitor stocks, generate buy/sell signals, and track your portfolio.
Quick Start
Check all watched stocks (auto-fetches data):
python3 {baseDir}/scripts/parse-stock.py --check --summary
Check single stock:
python3 {baseDir}/scripts/parse-stock.py --check --symbol AAPL
Add/remove stocks:
python3 {baseDir}/scripts/parse-stock.py --add TSLA
python3 {baseDir}/scripts/parse-stock.py --remove TSLA
Show watchlist:
python3 {baseDir}/scripts/parse-stock.py --list
How It Works
The parse-stock.py script handles everything:
1. Fetches data from Google Finance (no API key required!)
2. Calculates scores based on momentum, volume, valuation
3. Generates signals (BUY / HOLD / SELL)
4. Updates state in ~/.openclaw/workspace/stock-tracker-state.json
Analysis Framework
Apply the scoring framework in {baseDir}/references/analysis-framework.md to produce:
Symbol: AAPL
Price: $182.30 (+1.4% today)
Signal: BUY [score: +6/10]
Confidence: MEDIUMKey factors:
β
Price above 50-day SMA (estimated)
β
Volume 1.3Γ above average
β
2 positive news items in past 24h
β οΈ P/E 28.5 β elevated but within sector norm
β Within 3% of 52-week high (limited upside)
Recent headlines:
β’ "Apple reportedly in talks with..." β Reuters (2h ago)
β’ "iPhone sales beat estimates..." β Bloomberg (5h ago)
Recommendation: Consider buying on dips. Set stop-loss at 5% below current price.
4. Persist State
Store watchlist and last-seen prices in ~/.openclaw/workspace/stock-tracker-state.json.
Default watchlist (pre-loaded on first run if state file does not exist):
NVDA:NASDAQ β NVIDIAAAPL:NASDAQ β AppleMETA:NASDAQ β Meta PlatformsGOOGL:NASDAQ β Alphabet (Google)Format:
{
"watchlist": ["NVDA:NASDAQ", "AAPL:NASDAQ", "META:NASDAQ", "GOOGL:NASDAQ"],
"lastChecked": "2026-03-03T09:00:00Z",
"snapshots": {
"NVDA:NASDAQ": { "price": 875.40, "change_pct": 2.1, "ts": "2026-03-03T09:00:00Z" },
"AAPL:NASDAQ": { "price": 182.30, "change_pct": 1.4, "ts": "2026-03-03T09:00:00Z" },
"META:NASDAQ": { "price": 512.60, "change_pct": -0.8, "ts": "2026-03-03T09:00:00Z" },
"GOOGL:NASDAQ": { "price": 175.20, "change_pct": 0.5, "ts": "2026-03-03T09:00:00Z" }
}
}
Load state at the start of every run. Compare new price against snapshots to compute Ξ since last check.
5. Alert on Significant Moves
Emit a highlighted alert if any of the following thresholds are crossed:
earnings, merger, acquisition, SEC, lawsuit, recall, CEO, bankruptcySetting Up a Cron Schedule
Run the following to add a recurring job that checks stocks every weekday at market open (09:30 ET) and close (16:00 ET):
# Market open β 09:30 ET (UTC-4 during EDT)
openclaw cron add \
--name "Stock Open Check" \
--cron "30 13 * * 1-5" \
--tz "America/New_York" \
--session isolated \
--message "Run /stock-tracker check and output a full report with buy/sell signals for all watched stocks." \
--announce \
--channel slack \
--to "channel:REPLACE_WITH_CHANNEL_ID"Market close β 16:00 ET
openclaw cron add \
--name "Stock Close Check" \
--cron "0 20 * * 1-5" \
--tz "America/New_York" \
--session isolated \
--message "Run /stock-tracker check and output end-of-day summary with buy/sell signals for all watched stocks." \
--announce
For a simpler every-4-hours check (including after-hours):
openclaw cron add \
--name "Stock Tracker" \
--every 14400000 \
--session isolated \
--message "Run /stock-tracker check for all watched symbols. Report price changes > 1%, news, and signals."
See {baseDir}/references/data-sources.md for timezone and exchange hours reference.
Output Format Rules
β οΈ ALERT to any symbol that crossed a thresholdLimitations & Notes
0700.HK, 7203.T, BABA.N). See data-sources.md for the full mapping.External Endpoints
This skill makes outbound requests to the following public URLs only:
| URL | Purpose |
|-----|---------|
| https://www.google.com/finance/quote/* | Stock price & stats |
No user data, credentials, or personal information is sent to any external endpoint.
Security & Privacy
~/.openclaw/workspace/stock-tracker-state.json on your machine. Nothing is sent to remote servers.parse-stock.py is sandboxed. It reads/writes only the state file at the path above. It does not access environment variables or other files.π‘ Examples
Check all watched stocks (auto-fetches data):
python3 {baseDir}/scripts/parse-stock.py --check --summary
Check single stock:
python3 {baseDir}/scripts/parse-stock.py --check --symbol AAPL
Add/remove stocks:
python3 {baseDir}/scripts/parse-stock.py --add TSLA
python3 {baseDir}/scripts/parse-stock.py --remove TSLA
Show watchlist:
python3 {baseDir}/scripts/parse-stock.py --list