Install any skill in seconds. Free to start, no credit card required.
Get Started Free →A股北向资金(沪深港通)分析。当用户说"北向资金"、"外资"、"沪港通"、"深港通"、"陆股通"、"northbound"、"外资在买什么"、"北向今天怎么样"、"外资流向"时触发。分析北向资金整体流向趋势、行业配置偏好、个股增减仓变动,帮助理解外资对A股市场的态度和布局方向。通过 cn-stock-data 获取北向资金流向数据和个股行情,结合 web 搜索获取北向持股明细和行业分布。支持机构资金分析风格(formal)和个人跟踪笔记风格(brief)。
.claude/skills/aifinlab-a-share-northbound/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-20 | ✗→✓ | ▲ Improved | 36% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-05 | ✓→✗ | ▼ Worse | -41% | 0% |
重要提示:自 2024 年 8 月起,沪深港通北向资金每日净流入明细不再实时公开披露(南向数据正常)。cn-stock-data 的 north_flow 命令返回的数据可能全为 0。应以 web 搜索为主要数据来源。
bashSCRIPTS="$SKILLS_ROOT/cn-stock-data/scripts" # 大盘指数行情(对比市场走势) python "$SCRIPTS/cn_stock_data.py" quote --code SH000001,SZ399001,SZ399006 # 个股行情(北向重仓股) python "$SCRIPTS/cn_stock_data.py" quote --code [CODE1],[CODE2],... # 个股资金流向 python "$SCRIPTS/cn_stock_data.py" fund_flow --code [CODE] --days 30 # K线(叠加资金流分析) python "$SCRIPTS/cn_stock_data.py" kline --code [CODE] --freq daily --start [起始日期] # 南向资金(仍可用) python -c "import akshare as ak; df=ak.stock_hsgt_fund_flow_summary_em(); print(df[df['资金方向']=='南向'].to_json(orient='records', force_ascii=False))"
核心数据通过 web 搜索获取:
Step 1: 整体资金流向
Step 2: 资金流与市场联动
Step 3: 行业配置分析 通过 web 搜索获取北向资金行业配置数据:
构建行业偏好表: | 行业 | 持仓市值(亿) | 占比(%) | 近1月变化 | 近3月变化 | 偏好判断 | |------|------------|---------|----------|----------|---------|
Step 4: 个股持仓变动 通过 web 搜索获取:
对关键个股通过 cn-stock-data 补充行情数据: | 代码 | 名称 | 北向持股(亿) | 占流通股(%) | 近1月增减(亿) | PE | 近1月涨跌(%) | |------|------|------------|-----------|-------------|---|-------------|
Step 5: 输出
| 维度 | formal(机构资金分析) | brief(个人跟踪笔记) | |------|---------------------|---------------------| | 篇幅 | 3-5 页 | 1 页 | | 整体流向 | 完整(多时间维度+大盘联动分析) | 一句话总结趋势 | | 行业分析 | 完整行业配置表+变化分析 | Top 3 增仓/减仓行业 | | 个股明细 | Top 20 持仓 + Top 10 增减仓 | Top 5 增仓/减仓股 | | 历史对比 | 与过去重要时点对比 | 无 | | 投资启示 | 客观分析外资偏好 | 可加个人判断 | | 免责声明 | 需要 | 不需要 |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 44,790 | 17,257 | -61% | 1 | 1 | 0% | 6,433 | 1,837 | -71% | 0 | 0 | — |
case-02 | fail→fail | 12,614 | 48,722 | +286% | 1 | 1 | 0% | 2,064 | 9,953 | +382% | 0 | 0 | — |
case-03 | fail→fail | 26,806 | 11,147 | -58% | 1 | 1 | 0% | 3,732 | 1,808 | -52% | 0 | 0 | — |
case-04 | fail→fail | 8,582 | 13,376 | +56% | 1 | 1 | 0% | 1,360 | 1,957 | +44% | 0 | 0 | — |
case-05 | pass→fail | 19,534 | 36,977 | +89% | 1 | 1 | 0% | 2,900 | 1,715 | -41% | 0 | 0 | — |
case-06 | pass→fail | 27,213 | 11,468 | -58% | 1 | 1 | 0% | 4,048 | 2,314 | -43% | 0 | 0 | — |
case-21 | pass→pass | 11,332 | 3,186 | -72% | 1 | 1 | 0% | 1,697 | 1,664 | -2% | 0 | 0 | — |
case-20 | fail→pass | 8,282 | 4,713 | -43% | 1 | 1 | 0% | 1,461 | 1,985 | +36% | 0 | 0 | — |
case-07 | fail→fail | 18,506 | 19,060 | +3% | 1 | 1 | 0% | 2,984 | 3,945 | +32% | 0 | 0 | — |
case-08 | pass→pass | 15,864 | 12,216 | -23% | 1 | 1 | 0% | 2,498 | 3,201 | +28% | 0 | 0 | — |
case-09 | pass→pass | 20,808 | 68,791 | +231% | 1 | 1 | 0% | 3,158 | 4,516 | +43% | 0 | 0 | — |
case-10 | fail→pass | 19,597 | 24,112 | +23% | 1 | 1 | 0% | 2,769 | 4,469 | +61% | 0 | 0 | — |
case-11 | fail→pass | 20,477 | 15,667 | -23% | 1 | 1 | 0% | 2,939 | 3,565 | +21% | 0 | 0 | — |
case-12 | pass→pass | 15,055 | 4,496 | -70% | 1 | 1 | 0% | 2,286 | 1,964 | -14% | 0 | 0 | — |
case-13 | pass→pass | 14,134 | 5,077 | -64% | 1 | 1 | 0% | 2,163 | 2,137 | -1% | 0 | 0 | — |
case-14 | pass→pass | 13,806 | 3,919 | -72% | 1 | 1 | 0% | 2,091 | 1,746 | -16% | 0 | 0 | — |
case-15 | fail→pass | 15,529 | 5,944 | -62% | 1 | 1 | 0% | 2,511 | 2,282 | -9% | 0 | 0 | — |
case-16 | pass→pass | 17,524 | 15,375 | -12% | 1 | 1 | 0% | 2,598 | 3,719 | +43% | 0 | 0 | — |
case-17 | pass→pass | 17,087 | 17,196 | +1% | 1 | 1 | 0% | 2,613 | 4,001 | +53% | 0 | 0 | — |
case-18 | pass→fail | 17,242 | 17,097 | -1% | 1 | 1 | 0% | 2,815 | 4,093 | +45% | 0 | 0 | — |
case-19 | pass→pass | 19,293 | 20,501 | +6% | 1 | 1 | 0% | 2,772 | 4,175 | +51% | 0 | 0 | — |
case-22 | pass→pass | 16,788 | 8,935 | -47% | 1 | 1 | 0% | 2,376 | 2,336 | -2% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 16 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +5 percentage points is the difference between those two pass rates over the 16 comparable cases. 6 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/28/2026 | -26% |
Other measured skills in the registry, with their headline benchmark lift.