Skip to content
Back to skills

taiwan-stock-analysis-agent

ASecurity

Analyze Taiwan stocks using TWSE OpenAPI, TPEX/MOPS, Yahoo Finance, web search/news, and contrarian sentiment signals to produce structured research reports.

  • 6 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 26, 2026
documentationpythongoreacttestingapidocumentation

Works with

  • api

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add AZNitro/tw-stock-agent --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of taiwan-stock-analysis-agent?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for taiwan-stock-analysis-agent
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aznitro-taiwan-stock-analysis-agent/badge)](https://www.skillsdirectory.com/skills/aznitro-taiwan-stock-analysis-agent)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: taiwan-stock-analysis-agent
description: Analyze Taiwan stocks using TWSE OpenAPI, TPEX/MOPS, Yahoo Finance, web search/news, and contrarian sentiment signals to produce structured research reports.
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
  hermes:
    tags: [Taiwan, stocks, TWSE, Yahoo Finance, analysis, news, sentiment, contrarian, research]
---

# Taiwan Stock Analysis Agent

## Purpose
Use this skill when the user wants analysis of Taiwanese equities, the Taiwan market, a watchlist, a sector, or a single stock.

This skill is designed to combine:
- **TWSE OpenAPI** for official market data
- **TPEX / MOPS** for OTC and financial disclosure data
- **Yahoo Finance** for analyst estimates, targets, peer context, and headlines
- **Web search / news crawling** for fresh catalysts and narrative shifts
- **Contrarian sentiment signals** (e.g. Banini-style reverse-indicator analysis) as an auxiliary risk layer

## Repository Status

This repository is documentation-first. The Python files in `scripts/` are placeholders for future data integrations, so the skill should be written to work even when some sources are unavailable.

## What this skill should produce
Return analysis in a way that is:
- **source-aware**: distinguish official data, analyst estimates, news, and sentiment
- **structured**: give a clear summary, evidence, risks, and conclusion
- **practical**: avoid vague commentary; tie claims to observed data
- **uncertain when appropriate**: if sources conflict, say so explicitly

## Core principles
1. **Official data is the anchor**
   - Prefer TWSE/MOPS/TPEX for facts about price, volume, disclosures, financials, and market structure.
2. **Yahoo Finance is a narrative and expectation layer**
   - Use analyst estimates, price targets, and related news to understand consensus and revision trends.
3. **News is catalyst context, not truth by default**
   - Verify important claims against official filings when possible.
4. **Contrarian sentiment is auxiliary**
   - Reverse-indicator / hype / panic signals can highlight crowded positioning, but must never override hard data.
5. **Separate signal from interpretation**
   - Report what was observed first, then what it may imply.

## Recommended workflow

### 1) Normalize the request
Identify:
- ticker(s)
- market scope: listed / OTC / sector / index
- time horizon: intraday / 1D / weekly / medium-term
- output type: quick take / full report / compare watchlist / event analysis

If the user gives a Taiwan ticker, normalize common formats like:
- `2330`
- `2330.TW`
- `2330.TWO`
- company name aliases

### 2) Collect official data first
Prefer these data types where available:
- price, change, open/high/low/close
- volume vs average volume
- P/E, P/B, dividend yield
- margin trading / short selling
- major announcements / disclosures
- corporate governance / penalty notices
- financial statements and revenue trends

### 3) Mid-session / 11:30 market checks: use official daily proxies when live intraday is limited
For a mid-session Taiwan market note, the best available live signal is often **not** a direct 11:30 tape snapshot. If intraday feeds are unavailable or partial, use TWSE official historical / daily pages as a proxy and state the limitation clearly.

Recommended fallback order:
1. **TWSE Highlights of Daily Trading** (`fmtqik`) to compare today’s total trade value / volume / index vs previous sessions.
2. **TWSE Top 20 by Volume** (`mi-stock20`) to identify where the day’s real liquidity is concentrating.
3. **Yahoo Finance quote pages** for narrative context, valuation, and whether a bellwether like TSMC is near earnings / guidance.
4. **Reuters / fresh web search** to validate whether the headline tape is already saturated with the same bullish/bearish theme.

When doing a mid-session read, explicitly compare:
- today’s trade value vs yesterday
- today’s volume vs yesterday
- whether index is up while liquidity is down
- whether leaders are still expanding or starting to stall

Interpretation rules:
- **Price up + volume down** = rising caution; rally may be losing sponsorship.
- **Strong leaders but ETF-heavy turnover** = sentiment can be hot but fragile.
- **Broad index strength with fading top names** = possible rotation / late-cycle feel.
- **Repeated bullish headlines around the same bellwether** = contrarian risk signal, not confirmation.

### 4) Add market narrative data
From Yahoo Finance, extract:
- current quote context
- analyst estimate tables
- revenue and EPS forecast trends
- target price range
- recent upgrades/downgrades if available
- peer comparison context
- headline/news themes

### 5) Add fresh news and event context
Use web search or crawling to gather:
- company announcements
- earnings / guidance / investor presentation
- macro or sector news
- supply chain / policy / regulatory catalysts
- repeated headlines that indicate a theme

### 6) Add contrarian sentiment
Treat hype/panic/repetition as a **risk modifier**.
Useful signals include:
- extremely bullish language with no new facts
- crowded consensus
- retail FOMO or panic language
- market overreaction relative to fundamentals

If a separate Banini / reverse-indicator skill exists in the workspace, use it as an **optional sentiment adapter** rather than a core dependency. The core agent should still work without it by using general contrarian heuristics from news, search results, and market crowding signals.

### 7) Synthesize into a scorecard
When enough data exists, provide a scorecard with:
- **Trend**: bullish / neutral / bearish
- **Fundamentals**: improving / stable / weakening
- **Valuation**: cheap / fair / rich / unclear
- **Catalysts**: positive / neutral / negative
- **Sentiment**: crowded / balanced / fearful / euphoric
- **Risk**: low / medium / high
- **Confidence**: low / medium / high

If signals conflict, prefer “uncertain” over forced certainty.

## Output Expectations

When answering the user, keep the result compact and evidence-led:
- start with the most important conclusion
- cite the sources used or clearly name them in prose
- separate raw observations from interpretation
- mention missing data explicitly instead of filling gaps with guesses

## Minimal Implementation Guidance

If you later wire this skill into code, keep these boundaries:
- fetch official market data first
- enrich with Yahoo Finance only after the official view is collected
- use news as event context, not as final proof
- treat contrarian signals as a warning layer only

## Output format
Use this default structure unless the user asks otherwise.

### For a single stock
1. **Snapshot**
   - ticker, company name, market, price context
2. **What the market is saying**
   - analyst targets, revisions, consensus, related headlines
3. **What the official data says**
   - price action, volume, valuation, disclosures, financials
4. **Catalysts and risks**
   - upcoming earnings, guidance, news, sector conditions
5. **Contrarian view**
   - possible overheat / panic / crowded trade warning
6. **Conclusion**
   - concise verdict with caveats

### For a watchlist or comparison
Provide a table with:
- ticker
- price trend
- valuation
- earnings momentum
- news intensity
- sentiment score
- risk rating
- final note

### For market / sector analysis
Provide:
- macro context
- sector strength/weakness
- breadth / concentration
- leading names
- key risks
- conclusion

## Suggested language for conclusions
Use cautious, decision-support wording such as:
- “偏多,但估值已偏高,追價風險上升。”
- “基本面支撐仍在,但短線情緒過熱。”
- “消息面偏正向,但需等待財報 / 指引確認。”
- “反指標訊號升溫,應提高風險意識。”

Avoid absolute buy/sell language unless the user explicitly asks for a trading-style opinion.

## Important caveats
- Do not claim real-time certainty unless the underlying data was fetched successfully.
- If Yahoo pages fail or partially render, say so and fall back to whatever visible data was available.
- If news is duplicated across many outlets, mention that it is syndicated rather than treating it as independent confirmation.
- If only partial data is available, clearly label the report as partial.

## Best practices
- Prefer **facts first, interpretation second**.
- Cross-check important claims across at least two sources when possible.
- Treat analyst estimates as expectations, not facts.
- Treat contrarian signals as a warning layer, not a standalone decision rule.
- Keep the report readable: concise bullets plus a short verdict.

## Example use cases
- “分析 2330.TW 今天為什麼漲”
- “幫我看 2317.TW 的基本面、籌碼和新聞”
- “比較 2330.TW 與 2454.TW 哪個更有機會”
- “做一份台股盤前重點摘要”
- “用反指標角度看目前市場是否過熱”

## Maintenance Notes

If the repository grows, keep the following files aligned:
- `README.md` and `README_zh.md`
- `references/data-sources.md`
- `references/output-schema.md`
- `references/scoring-rules.md`

Update them together whenever source priority, schema fields, or scoring labels change.

## If you need to extend this skill later
Future extensions can add:
- a dedicated cache layer
- formal JSON output schema
- sector rotation logic
- backtesting hooks
- alerting / cron support
- a separate OTC or small-cap mode

Files in this skill

  • README_zh.md5.1 KB
  • SKILL.md9.2 KB
  • references/data-sources.md1.5 KB
  • references/output-schema.md1.5 KB
  • references/scoring-rules.md1.5 KB
  • scripts/fetch_news.py490 B
  • scripts/fetch_twse.py637 B
  • scripts/fetch_yahoo.py806 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.