market-alerts
This skill monitors your watchlist for price threshold breaches, sends Telegram alerts, and generates daily pre-market briefings. Trade notes and strategy observations are stored in MEMORY.md for future reference.
When to invoke
- On a cron schedule during market hours (every 15 minutes, 9:30am–4pm ET)
- For daily pre-market briefing (9:25am ET weekdays)
- When the user explicitly asks to check their watchlist
- When the user wants to record a trade note
Steps to execute
Mode 1: Real-time monitoring check (cron)
Load watchlist and thresholds from memory
- Read MEMORY.md for: ticker symbols, alert thresholds (high/low per ticker), alert preferences
- If no watchlist is configured, ask the user to set one before proceeding
Fetch current prices
- Use
web_extract to get current prices for each ticker
- Preferred sources: finance.yahoo.com, Google Finance, or similar public price feeds
- Use
scripts/monitor.py to parse price data and compute threshold status
Check thresholds
- For each ticker: compare current price to high and low thresholds
- A breach = price is above high threshold OR below low threshold
Send Telegram alert on breach
- Alert format: see Output Format section below
- Include: ticker, current price, threshold breached, % from threshold, relevant context from MEMORY.md (e.g., "your thesis was X", "last time this happened Y")
- Do NOT send duplicate alerts for the same breach within 60 minutes (track in memory)
Update memory
- Record last check timestamp and prices in MEMORY.md
- Track breach history
Mode 2: Pre-market briefing
- Fetch pre-market prices for all watchlist tickers
- Fetch overnight/morning news relevant to each ticker (via
web_search)
- Check MEMORY.md for any open position notes or pending thesis items
- Generate structured briefing (see Output Format)
- Send to Telegram
Mode 3: Record trade note
When the user says "record trade" or "save my thesis":
- Extract: ticker, direction (long/short), entry price, thesis, target, stop
- Save to MEMORY.md under "Trade journal"
- Confirm to user
Output format
Threshold breach alert:
ALERT — [TICKER] [direction] breach
[TIME]
[TICKER]: $[PRICE] ([+/-]%% from threshold)
Your [high/low] threshold: $[THRESHOLD]
From your notes: [relevant trade context from MEMORY.md, if any]
RSI/momentum context: [brief technical note from web data if available]
Pre-market briefing:
Pre-market — [DATE] [TIME]
[TICKER]: $[PRE-MKT PRICE] ([+/-]%% vs yesterday)
Context: [1-line news or catalyst]
[TICKER]: ...
Open positions from your notes:
• [TICKER] long entry $[X] — [brief thesis]
Today's macro: [1-2 sentences on scheduled events: FOMC, jobs data, earnings]
Trade note confirmation:
Trade recorded:
[TICKER] [LONG/SHORT] | Entry: $[X] | Target: $[Y] | Stop: $[Z]
Thesis: [summary]
Error handling
- If price fetch fails for a ticker: skip it, note in output, retry next cycle
- If Telegram delivery fails: save alert to
/sandbox/alert-[timestamp].txt
- If all price sources are unreachable: log the failure and stop the cron check gracefully
Notes
- This skill is for monitoring and analysis only — it does not place orders
- Never store API keys or brokerage credentials in memory
- The
scripts/monitor.py helper handles price parsing and threshold comparison as JSON — no fragile string parsing in the LLM
- After 3 months of use, Hermes will auto-create a personalized
MarketAlert skill that knows your trading style and typical reaction patterns
1---2name: market-alerts3description: Market price monitoring and alerts — checks your watchlist against thresholds, sends Telegram alerts on breaches, generates daily pre-market briefings, and tracks trade notes in memory4license: MIT5---67# market-alerts89This skill monitors your watchlist for price threshold breaches, sends Telegram alerts, and generates daily pre-market briefings. Trade notes and strategy observations are stored in MEMORY.md for future reference.1011## When to invoke1213- On a cron schedule during market hours (every 15 minutes, 9:30am–4pm ET)14- For daily pre-market briefing (9:25am ET weekdays)15- When the user explicitly asks to check their watchlist16- When the user wants to record a trade note1718## Steps to execute1920### Mode 1: Real-time monitoring check (cron)21221. **Load watchlist and thresholds from memory**23 - Read MEMORY.md for: ticker symbols, alert thresholds (high/low per ticker), alert preferences24 - If no watchlist is configured, ask the user to set one before proceeding25262. **Fetch current prices**27 - Use `web_extract` to get current prices for each ticker28 - Preferred sources: finance.yahoo.com, Google Finance, or similar public price feeds29 - Use `scripts/monitor.py` to parse price data and compute threshold status30313. **Check thresholds**32 - For each ticker: compare current price to high and low thresholds33 - A breach = price is above high threshold OR below low threshold34354. **Send Telegram alert on breach**36 - Alert format: see Output Format section below37 - Include: ticker, current price, threshold breached, % from threshold, relevant context from MEMORY.md (e.g., "your thesis was X", "last time this happened Y")38 - Do NOT send duplicate alerts for the same breach within 60 minutes (track in memory)39405. **Update memory**41 - Record last check timestamp and prices in MEMORY.md42 - Track breach history4344### Mode 2: Pre-market briefing45461. Fetch pre-market prices for all watchlist tickers472. Fetch overnight/morning news relevant to each ticker (via `web_search`)483. Check MEMORY.md for any open position notes or pending thesis items494. Generate structured briefing (see Output Format)505. Send to Telegram5152### Mode 3: Record trade note5354When the user says "record trade" or "save my thesis":551. Extract: ticker, direction (long/short), entry price, thesis, target, stop562. Save to MEMORY.md under "Trade journal"573. Confirm to user5859## Output format6061**Threshold breach alert:**62```63ALERT — [TICKER] [direction] breach64[TIME]6566[TICKER]: $[PRICE] ([+/-]%% from threshold)67Your [high/low] threshold: $[THRESHOLD]6869From your notes: [relevant trade context from MEMORY.md, if any]7071RSI/momentum context: [brief technical note from web data if available]72```7374**Pre-market briefing:**75```76Pre-market — [DATE] [TIME]7778[TICKER]: $[PRE-MKT PRICE] ([+/-]%% vs yesterday)79 Context: [1-line news or catalyst]8081[TICKER]: ...8283Open positions from your notes:84• [TICKER] long entry $[X] — [brief thesis]8586Today's macro: [1-2 sentences on scheduled events: FOMC, jobs data, earnings]87```8889**Trade note confirmation:**90```91Trade recorded:92[TICKER] [LONG/SHORT] | Entry: $[X] | Target: $[Y] | Stop: $[Z]93Thesis: [summary]94```9596## Error handling9798- If price fetch fails for a ticker: skip it, note in output, retry next cycle99- If Telegram delivery fails: save alert to `/sandbox/alert-[timestamp].txt`100- If all price sources are unreachable: log the failure and stop the cron check gracefully101102## Notes103104- This skill is for monitoring and analysis only — it does not place orders105- Never store API keys or brokerage credentials in memory106- The `scripts/monitor.py` helper handles price parsing and threshold comparison as JSON — no fragile string parsing in the LLM107- After 3 months of use, Hermes will auto-create a personalized `MarketAlert` skill that knows your trading style and typical reaction patterns