According to AlphaMoat, as of 2026-09, akshare-stock-analysis has 2,295 downloads and 0 stars — ranked #4,235 of 5,078 AI skills overall, and #319 of 399 in Data Analysis.
| Platform | Installs | Downloads | Stars | Comments |
|---|---|---|---|---|
| ClawHub ↗ | 53 | 2.0K | - | - |
| SkillHub ↗ | 160 | 2.3K | - | — |
Platforms count differently and update at different times.
It fetches daily data and can include weekly and monthly views, plotting candlesticks with moving averages, Bollinger Bands, MACD, RSI and ATR. Output covers trend, momentum, valuation context, relative strength and event-aware risk. Market ambiguity prompts a choice; HK/US valuation may be unavailable. Data may be delayed or incomplete; this is informational, not investment advice. Requires Python, AkShare, and plotting support such as matplotlib. Stop if daily data is unusable; skip and disclose failed weekly/monthly sections. Macro events can be stale and include hardcoded calendar entries; verify dates and do not copy sample prices or valuation percentiles as live facts.
Profile published 2026-10-27
Generated from the skill’s documentation as examples; not results of actual runs.
The counting method changed in 2026-09: skills with the same name are now counted separately by author, and the full catalog is covered. Dashed lines show months before the change; they are not compared with later months, and no growth is computed across the change.
| Month | Downloads | MoM | Stars |
|---|---|---|---|
| 2026-09 | 2.3K | — | - |
| 2026-08 | 1.8K | +10.4% | - |
| 2026-07 | 1.7K | +19.5% | - |
| 2026-06 | 1.4K | +14.4% | - |
| 2026-05 | 1.2K | — | - |
| 2026-03 | 715 | — | - |
The author’s original file, shown as plain text without edits or review by AlphaMoat. Links are not clickable; check commands before running them. Fetched 2026-10-23.
--- name: stock-kline-analysis description: Given a stock name or code, auto-detect its market, fetch 6-month daily K-line, plot candlestick + MA/Bollinger/MACD/RSI/ATR with multi-timeframe confirmation, and deliver structured analysis with trend, momentum, valuation context, portfolio-relative strength, and event-aware risk notes. --- # Stock K-Line Analysis Skill Use this skill when the user gives a stock name or code and wants K-line output and/or analysis, e.g.: - "Analyze 600519" - "K-line and trend for 贵州茅台"
- "How is AAPL doing?"
- "Compare 000001 and 600036 by relative strength"
## Defaults (baked-in)
| Parameter | Default |
|---|---|
| Market | Auto-detect; only ask if unresolvable or genuinely ambiguous |
| K-line period | Daily (primary) + Weekly & Monthly for multi-timeframe |
| Time range | Last 6 months (today − 182 days) for daily; auto-extend for weekly/monthly |
| Price adjust | `qfq` for A-share; none for HK/US |
| Indicators | MA5/MA20/MA60, Bollinger Bands (20,2), MACD (12/26/9), RSI-14, ATR-14 |
| Language | Bilingual: Chinese label + English explanation |
User overrides these defaults at any time.
## Market Auto-Detection Rules
| Code pattern | Inferred market |
|---|---|
| 6-digit starting with 6 | A-share Shanghai |
| 6-digit starting with 0 or 3 | A-share Shenzhen |
| 5-digit starting with 0 | HK (prefix `0`) |
| 4–5 chars, letters | US (NYSE/NASDAQ) |
| Name only | Search A-share first, then HK; disambiguate if needed |
If detection confidence is low, list top-2 candidates and ask once.
## AkShare API Reference
| Market | AkShare function |
|---|---|
| A-share daily | `ak.stock_zh_a_hist(symbol, period="daily", start_date, end_date, adjust="qfq")` |
| A-share real-time | `ak.stock_zh_a_spot_em()` (network may fail — wrap in try/except) |
| HK daily | `ak.stock_hk_daily(symbol, adjust="qfq")` |
| US daily | `ak.stock_us_daily(symbol, adjust="qfq")` |
| A-share symbol list | `ak.stock_info_a_code_name()` |
| Financial indicators | `ak.stock_financial_analysis_indicator(symbol, start_year)` — EPS, ROE, margins (use this; `stock_a_lg_indicator` does NOT exist) |
| Latest earnings summary | `ak.stock_yjbb_em(date="YYYYMMDD")` — EPS, revenue, net profit YoY, industry |
| Industry PE | `ak.stock_industry_pe_ratio_cninfo(symbol)` |
| Macro calendar | `ak.news_economic_baidu()` — date column is `datetime.date` objects; data may be stale (up to ~2 months behind current date) |
## Scripts
All implementation code lives in `scripts/` next to this file. You can run a full analysis end-to-end with:
```bash
python .github/skills/stock-kline-analysis/scripts/run_analysis.py 000063
python .github/skills/stock-kline-analysis/scripts/run_analysis.py 贵州茅台
python .github/skills/stock-kline-analysis/scripts/run_analysis.py AAPL --out-dir /tmp/reports
```
| Script | Purpose |
|---|---|
| `scripts/run_analysis.py` | CLI orchestrator — runs all steps end-to-end |
| `scripts/fetch_kline.py` | Step 2 — multi-timeframe K-line fetch with retry/fallback |
| `scripts/indicators.py` | Step 3 — compute MA/BB/MACD/RSI/ATR for all timeframes |
| `scripts/chart.py` | Step 4 — 4-panel matplotlib chart (K线+BB \| Vol \| MACD \| RSI-14) |
| `scripts/valuation.py` | Step 5 — fetch EPS/revenue/ratios and compute PE/PB |
| `scripts/events.py` | Step 7 — macro events with hardcoded fallback calendar |
Each script has a `__main__` smoke-test (e.g. `python fetch_kline.py 000063`).
---
## Workflow
### Step 1 — Resolve Identifier
1. Apply market auto-detection rules to the raw input.
2. If code is numeric and 6-digit, run `ak.stock_info_a_code_name()` to confirm name.
3. If name is given, filter symbol list for closest match.
4. If ambiguous (>1 high-confidence match), show max 3 options and ask.
5. If unresolvable, report clearly and stop.
Completion check: one confirmed `{code, name, market}` tuple before fetching any data.
---
### Step 2 — Fetch K-Line Data
See **`scripts/fetch_kline.py`** — `fetch_all_timeframes(code, adjust="qfq")` returns `(df_daily, df_weekly, df_monthly)`, all normalized.
Key implementation notes (do NOT get wrong):
- `stock_zh_a_hist` returns **12 Chinese-named columns** — always use explicit `rename(col_map)`, never positional assignment.
- Windows: daily = last 182 days, weekly = last 365 days, monthly = last 3 years.
```python
from scripts.fetch_kline import fetch_all_timeframes
df_daily, df_weekly, df_monthly = fetch_all_timeframes(code)
```
Fallback logic:
- On network error, retry once.
- If daily fetch is empty: report (suspended / delisted / wrong symbol / holiday) and stop.
- Weekly/monthly failures: skip that timeframe and note it in output.
Completion check: `len(df_daily) > 20` and all OHLCV columns present and non-null.
---
### Step 3 — Compute Indicators
See **`scripts/indicators.py`** — `add_indicators(df)` and `add_tf_indicators(df_weekly, df_monthly)`.
Critical notes:
- `bb_width` = `(upper − lower) / mid * 100` — result is a **percentage** (e.g. 12.7, not 0.127).
- RSI must use a standalone helper; do **not** chain `.diff()` twice on the same series.
- Support/resistance stored in `df.attrs["support"]` / `df.attrs["resistance"]`.
```python
from scripts.indicators import add_indicators, add_tf_indicators
df_daily = add_indicators(df_daily)
df_weekly, df_monthly = add_tf_indicators(df_weekly, df_monthly)
```
If fewer than 60 bars exist on daily, use all available and note the limitation. Bollinger Bands require minimum 20 bars.
---
### Step 4 — Build K-Line Chart
**Primary path — matplotlib** (4-panel: K线+布林带 | 成交量 | MACD | RSI-14):
See **`scripts/chart.py`** — `plot_kline(df, code, name, out_path, market_label, dpi)` returns the saved path.
> `mplfinance` is **NOT installed** in the base environment. `chart.py` calls `matplotlib.use("Agg")` at module level — always import before pyplot.
```python
from scripts.chart import plot_kline
chart_path = plot_kline(df_daily, code=code, name=name, market_label="A股",
out_path=f"{code}_kline.png")
```
Fallback (text table — only if matplotlib is also unavailable), latest 20 bars:
```
date close MA20 BB_up BB_low RSI14 ATR%
2026-02-10 15.38 14.90 16.20 13.60 58.3 1.4%
...
```
---
### Step 5 — Valuation Context
See **`scripts/valuation.py`** — `fetch_valuation(code)` and `compute_pe_pb(result, last_close)`.
> `ak.stock_a_lg_indicator` and `ak.stock_a_indicator_lg` **do not exist** — use `stock_yjbb_em` + `stock_financial_analysis_indicator` instead (both implemented in `valuation.py`).
```python
from scripts.valuation import fetch_valuation, compute_pe_pb
val = fetch_valuation(code)
val = compute_pe_pb(val, last_close=float(df_daily["close"].iloc[-1]))
# val keys: eps, revenue, revenue_yoy, net_profit, net_profit_yoy,
# book_value_per_share, roe, gross_margin, industry,
# report_date, fin_df, pe_ttm, pb
```
For HK/US: skip valuation section or note it as unavailable.
Report:
- Current PE (TTM, computed from EPS), PB.
- ROE and net profit margin.
- Revenue/profit YoY growth from latest report.
- Industry classification.
- Note: historical PE percentile not available without `stock_a_lg_indicator`; skip that sub-bullet and state the reason.
---
### Step 6 — Portfolio / Relative Strength Mode
Activated when user provides multiple symbols (e.g. "compare 600519 and 000858").
1. Fetch 6-month daily data for all symbols (same window as default).
2. Compute normalized 6-month return (base=100 on start date).
3. Compute 20-day rolling volatility and ATR% for each symbol.
4. Rank by: return, Sharpe-proxy (return/vol), RSI, and ATR% (lower = more stable).
5. Produce a comparison table and identify the relative leader.
Single-symbol mode: compare to its own industry index if identifiable.
---
### Step 7 — Event-Aware Risk Overlay
See **`scripts/events.py`** — `fetch_events(lookback_days, lookahead_days, min_importance)` returns a list of formatted strings.
> `news_economic_baidu()` date column is `datetime.date` objects — compare natively. Data **lags 4–8 weeks**; `events.py` always appends a hardcoded China macro calendar (PMI, Two Sessions, earnings windows) regardless of API success.
```python
from scripts.events import fetch_events
event_lines = fetch_events() # returns list[str] ready to print
```
Overlay on analysis:
- Note any major macro event dates near current price levels.
- Flag the applicable earnings season window relative to today.
- Highlight price behavior around large news days visible in the K-line.
If event API is unavailable, note it and manually annotate the known calendar dates above.
---
### Step 8 — Deliver Structured Output
Return in this exact order:
```
[Symbol Summary]
名称/代码: e.g. 贵州茅台 (600519) · A-Share Shanghai
分析区间: 2025-09-12 → 2026-03-12 (daily 6M, qfq-adjusted)
多周期确认: Weekly trend: Uptrend | Monthly trend: Consolidation
[K-Line Snapshot]
最新收盘: ¥1,580.00
1日涨跌: +1.2% (+18.80)
MA5 / MA20 / MA60: ¥1,572 / ¥1,540 / ¥1,490 (排列多头 Bullish stack)
布林带 Bollinger: Upper ¥1,640 | Mid ¥1,540 | Lower ¥1,440 (Width: 12.7%)
ATR-14 (波动幅): ¥22.4 / day (1.4% of price — moderate volatility)
20日区间: ¥1,420 – ¥1,610
成交量 vs 20日均: +35% (放量)
[Technical View — 技术面]
趋势 Trend: Daily Uptrend — MA5 > MA20 > MA60, price above all MAs
Weekly confirm: above weekly MA20 ✓
Monthly confirm: testing monthly MA20 resistance ⚠
动量 Momentum: 5D: +3.1% | 10D: +5.8% | 20D: +8.2% | Ann.Vol: 18%
MACD: MACD line above signal, histogram expanding → bullish momentum
RSI-14: 68 — approaching overbought; momentum still intact
布林挤压 BB Squeeze: Width 12.7% — expanding (breakout in progress, not overextended)
支撑 Support: ¥1,490 (MA60 + BB lower + prior swing low)
阻力 Resistance: ¥1,640 (BB upper) / ¥1,650 (6M high zone)
ATR止损参考: Trailing stop = last close − 1.5×ATR = ¥1,580 − ¥33.6 ≈ ¥1,546
[Valuation — 估值]
PE (TTM): 28x — 3-year 40th percentile (moderate)
PB: 8.2x
行业 PE 中位: 25x (white spirits industry) → slight premium to peers
[Relative Strength] (if multi-symbol mode)
Symbol 6M Return Vol Sharpe RSI ATR% Rank
600519 +22% 18% 1.22 68 1.4% 1st ← Leader
000858 +14% 21% 0.67 55 1.7% 2nd
[Event Overlay — 事件]
- 2026-03-15: NPC economic policy announcement (macro risk)
- 2026-04-30: Q1 earnings release window (re-rating trigger)
- No major gap days observed in 6M K-line window.
[Risk & Watchpoints — 风险]
- 多单失效: If price closes below MA20 (¥1,540) on volume → trend weakening
- 布林下轨破位: Price below BB lower (¥1,440) = volatility expansion to downside
- 超买风险: RSI near 70; daily overbought but weekly RSI 58 = room still exists
- ATR止损: Position sizing reference — 1 ATR = ¥22.4; adjust size accordingly
- 突破条件: Break above BB upper (¥1,640) + volume >+50% avg → momentum continuation
```
## Quality Criteria
- Market mapping is stated and auditable.
- All indicator values are computed from actual fetched data, not estimated.
- Valuation section states data source and percentile basis.
- Event overlay explicitly covers ±30 days around analysis date.
- No language implying guaranteed price direction or investment advice.
- If any section fails (e.g. valuation API times out), skip it with an explicit note.
## Example Prompts
- "Use stock-kline-analysis to analyze 600519."
- "Use stock-kline-analysis for 贵州茅台 — show K-line with Bollinger Bands, MACD, RSI, and ATR stop-loss."
- "Use stock-kline-analysis on AAPL — multi-timeframe trend: are daily/weekly/monthly aligned?"
- "Use stock-kline-analysis to compare 600036 and 601318 by relative strength and ATR-based risk."
- "Use stock-kline-analysis for 000858 — show Bollinger squeeze and flag any upcoming earnings event."
- "Use stock-kline-analysis for TSLA — is price near Bollinger upper band? What does ATR say about position sizing?"
The data layer for AdMapix: turn ad and app queries into API calls that return raw JSON only.
Searches the public web through Tavily and returns structured results with links and snippets.
A data-analysis skill that turns databases, spreadsheets, and raw exports into decision-ready conclusions.
A skill that analyzes stocks and cryptocurrencies on Yahoo Finance data and tracks a portfolio.
Manages a local stock watchlist and summarizes recent quotes for its codes from the Tonghuashun stock pages.
全网招中标数据查询与分析助手。当用户涉及以下任何场景时,必须使用此SKILL:查询招标/中标公告、搜索标讯、查找临期/即将到期项目、商机预测、推荐潜在投标供应商、分析公司主营业务/历史中标、查询公司上下游合作客户与供应商、分析竞争对手/竞对企业、查询Top采购单位/Top中标单位/Top中标品牌、招中标数据统计分析(按月/季/年/省份/品牌等维度)、查询品牌型号历史中标单价/价格趋势、市场分析/行业分析/采购寻源/渠道拓展等采购与投标相关场景。即使用户没有提到「知了标讯」,只要涉及招投标、采购、中标、供应商、竞争对手等关键词,都应使用本SKILL。
Track blog and RSS/Atom feed updates from the command line.
Summarises per-model usage cost for Codex or Claude.
Data month: 2026-09 · Downloads, stars and installs are aggregated monthly from public skill registries (ClawHub, SkillHub). See methodology.