Google Finance Stock Tracker

v1.1.0

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...

0· 418·2 current·2 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the implementation: the included Python script implements fetching/parsing Google Finance pages, computing scores, and persisting a local watchlist. Required binary is python3 (appropriate). No unrelated environment variables, binaries, or platform-level access are requested.
Instruction Scope
SKILL.md instructs running the bundled parse-stock.py and persisting state at ~/.openclaw/workspace/stock-tracker-state.json only. It documents network access to Google Finance and fallback sources (Yahoo, Stooq, Google News) which align with the purpose. Note: the cron examples use the OpenClaw 'openclaw cron add' command and show posting to a channel (e.g., Slack) — scheduling/posting behavior depends on OpenClaw platform configuration and chosen channel IDs; review those options before enabling unattended reports.
Install Mechanism
Instruction-only skill with a bundled Python script; there is no installer that downloads or executes remote archives. This is a low-risk install model (script is included in the package).
Credentials
No environment variables or credentials are required or declared. The script's security manifest and code indicate it does not read environment secrets and only writes/reads the declared local state file. Outbound network calls are limited to the documented public endpoints.
Persistence & Privilege
The skill does not request always:true and will not force inclusion. It persists a small local state file under the user's home (~/.openclaw/workspace/stock-tracker-state.json), which is appropriate for a watchlist. Autonomous invocation is allowed by default (platform normal); cron scheduling is optional and controlled by the user.
Assessment
This skill appears to do what it says: it scrapes Google Finance (with documented fallbacks), computes heuristic buy/hold/sell signals, and stores a local watchlist file at ~/.openclaw/workspace/stock-tracker-state.json. Before installing: (1) inspect the bundled scripts yourself to confirm you accept the scraping behavior and parsing heuristics; (2) be aware that scheduling cron jobs via the provided openclaw cron examples can cause unattended runs and (depending on your OpenClaw configuration) can post results to channels like Slack — verify the target channel and platform permissions first; (3) the script performs scraping (fragile and subject to site rate limits/blocking), so monitor for failures or excessive requests; and (4) set appropriate file permissions on the state file if you are concerned about local access. If you want extra assurance, run the script manually first and review network traffic before enabling automated cron runs.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

📈 Clawdis
OSmacOS · Linux · Windows
Binspython3
latestvk97fbfrjn4f7j7cw60ny6eh7v582f5jw
418downloads
0stars
6versions
Updated 1mo ago
v1.1.0
MIT-0
macOS, Linux, Windows

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: MEDIUM

Key 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 — NVIDIA
  • AAPL:NASDAQ — Apple
  • META:NASDAQ — Meta Platforms
  • GOOGL: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:

  • Price change > ±3% since last check
  • Volume > 2× 30-day average
  • Any headline contains keywords: earnings, merger, acquisition, SEC, lawsuit, recall, CEO, bankruptcy

Setting 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

  • Always show: symbol, price, change %, signal, top 3 headlines
  • If multiple stocks: group by signal (BUY first, then HOLD, then SELL)
  • Use emoji prefix: 🟢 BUY / 🟡 HOLD / 🔴 SELL
  • Append ⚠️ ALERT to any symbol that crossed a threshold
  • End every report with a disclaimer: "This is not financial advice. Data sourced from Google Finance."

Limitations & Notes

  • Google Finance does not provide real-time Level 2 data; prices may be 15 min delayed for some exchanges.
  • This skill cannot execute trades. Recommendations are informational only.
  • For non-US stocks, use the exchange suffix (e.g. 0700.HK, 7203.T, BABA.N). See data-sources.md for the full mapping.
  • If Google Finance blocks the browser session, fall back to Yahoo Finance scraping as described in data-sources.md.

External Endpoints

This skill makes outbound requests to the following public URLs only:

URLPurpose
https://www.google.com/finance/quote/*Stock price & stats

No user data, credentials, or personal information is sent to any external endpoint.


Security & Privacy

  • No credentials required. All data is fetched from public Google Finance pages.
  • Local state only. The watchlist and price snapshots are stored exclusively at ~/.openclaw/workspace/stock-tracker-state.json on your machine. Nothing is sent to remote servers.
  • No browser required. Data is fetched via HTTP requests and parsed from HTML. No JavaScript execution.
  • 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.
  • Buy/sell signals are heuristic only. No financial data or decisions are transmitted anywhere. All analysis runs locally.

Comments

Loading comments...