山西证券 Tushare 综合分析技能

基于山西证券 Tushare 数据平台,提供多维度、结构化的投资标的综合分析报告。

¿Qué es 山西证券 Tushare 综合分析技能?

此技能(Skill)在 `shanxi-securities-tushare` 数据技能的基础上,增加了一个多维度的交叉分析层,将零散的金融指标整合为结构化的分析报告。它支持股票、基金(场内外ETF)、指数和期货(主力连续合约)四类标的,无需使用者手动调用原始数据接口。技能封装了统一的 Runner,通过 `stock_report`、`fund_report`、`index_report` 和 `fut_report` 等入口,即可自动完成环境校验、标的识别、维度加载、并行取数、量化计算和 HTML 报告生成。核心工作流遵循“标的识别 → 维度加载 → 取数 → 计算 → 解读 → 报告”的流程。每个分析维度都包含描述句、数据表和明确的投资参考含义评价。该技能尤其强调了数据处理的严谨性,如股票的复权计算、基金的净值序列复权、ETF 的特殊复权处理、以及期货连续合约的换月跳空,确保技术指标和收益率计算的准确性。同时,它内置了丰富的量化分析方法,包括纵向对比(时间序列)、横向对比(多标的归一化)、技术指标(MACD、RSI、KDJ、布林带)、风险建模(VaR、CVaR)和统计检验,旨在提供深度、专业且可操作的金融分析。报告强制以 HTML 文件保存,其中时间序列图表内联在各维度章节内,方便直接查看。

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add TrueHOOHA/shanxi-securities-tushare-skill

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace 山西证券 Tushare 综合分析技能?

本 skill 配合 shanxi-securities-tushare 数据 skill 使用,在后者提供的数据接口之上增加多维度交叉分析层,将分散的指标整合为结构化分析报告。

工作原理

把"帮我分析 XX"转化为可执行的标的识别 → 维度加载 → 取数 → 计算 → 解读 → 报告流程。

重要:本 skill 不封装取数逻辑。取数时引用 shanxi-securities-tushare/SKILL.md 的流程规范:

  1. 先运行 python shanxi-securities-tushare/scripts/check_env.py 校验环境,token 缺失时停下,先提示用户配置。
  2. 调用接口前必须查 shanxi-securities-tushare/references/API接口对应表.md,禁止凭记忆写接口。
  3. 取数参考 shanxi-securities-tushare/scripts/ 下 demo 模板,按环境校验结果选择 SDK 或 HTTP 方式。

快速入口(默认调用)

本 skill 已封装统一 Runner,Agent 识别标的类型后直接调用对应入口,无需再从原始接口逐条取数:

标的类型模块默认入口示例
股票analysis_runner.pystock_report(ts_code, end_date=None, dimensions=None)stock_report("600519.SH")
基金(场外 .OF / 场内 ETF .SH/.SZ)fund_analysis_runner.pyfund_report(ts_code, end_date=None, dimensions=None)fund_report("110011.OF")
指数index_analysis_runner.pyindex_report(ts_code, end_date=None, dimensions=None)index_report("000300.SH")
期货(主力连续合约)fut_analysis_runner.pyfut_report(ts_code, end_date=None, dimensions=None)fut_report("SR.ZCE")
  • dimensions 为可选维度白名单,默认使用 Runner 内置维度;用户明确"只看估值/技术面"时再传入裁剪。
  • *_report() 返回 HTML 字符串(含 ECharts 图表,内联在对应维度章节),Agent 将其写入 <ts_code>_report.html 落盘;浏览器直接打开。
  • 旧入口 stock_analyzer.py 仍保留为兼容包装,新代码优先使用 analysis_runner.stock_report。
  • 各 Runner 内部已实现维度级并行取数,无需 Agent 手动并发。

核心工作流

每次分析按此顺序:

  1. 环境校验 — 运行 python shanxi-securities-tushare/scripts/check_env.py,确认 token 可用,确定 mode(sdk/http)。
  2. 标的识别 — 解析用户表述,确定标的类型 + ts_code。根据代码格式或名称搜索确定。
  3. 维度加载 — 默认加载该标的类型的摘要维度;用户明确指定(如"只看技术面""只看估值")时仅加载指定维度,避免权限/配额不足与超长输出。"全套固定"为默认上限,可裁剪。
  4. 调用 Runner 分析 — 直接调用对应 Runner 的 *_report() / *_analyze() 入口;Runner 内部按默认维度并行取数、计算并生成结构化结果。如需自定义维度,通过 dimensions 参数裁剪。
  5. 综合报告 — 按结构化模板输出 HTML 报告(时间序列图表内联在各维度章节)。

报告必须落盘(强制):每份分析报告必须以 HTML 文件保存到当前项目目录,文件名 <ts_code>_report.html(如 600519.SH_report.html)。CLI 已默认自动保存到当前工作目录并打印保存路径;若通过 Python 接口调用 *_report() 返回 HTML 字符串,则必须由 Agent 将该字符串写入项目目录下的 <ts_code>_report.html 文件。禁止只打印到终端不落盘。报告为独立 HTML(ECharts CDN 渲染,需联网打开),时间序列维度自动生成图表并内联在对应维度章节(如 K线在"行情趋势"、PE/PB 在"估值分析"),其余维度为表格。

标的识别规则

用户表述标的类型说明
600519.SH / 000001.SZ / 920575.BJ股票已标准格式,直接识别。.BJ 为北交所
600519 / 000001股票补全为 .SH/.SZ/.BJ(沪市 600/601/603/605/688,深市 000/001/002/003/300/301,北交所 8 开头)
"茅台"/"贵州茅台"/"平安"股票调 stock_basic 按名称模糊匹配,取上市状态 L 的股票
000300.SH / 399001.SZ指数标准指数代码,后缀 .SH/.SZ/.SI
"沪深300"/"上证50"指数调 index_basic 按名称匹配
000001.OF / 110011.OF基金标准基金代码,后缀 .OF 场外/.SZ 场内
"易方达蓝筹"/"招商白酒"基金调 fund_basic 按名称匹配
RB2501.SHF / CU2403.SHF期货标准期货合约代码
"螺纹钢"/"沪铜"/"原油"期货调 fut_basic 按名称匹配,获取主力合约

多义性消歧:名称匹配返回多个结果时(如"平安"= 平安银行 000001.SZ / 中国平安 601318.SH),优先按市值排序取最大标的,但必须在报告中注明"匹配到 N 个结果,默认分析市值最大的 XX,如需分析其他请指定代码"。

基金名称匹配的宽匹配陷阱(fund_basic 为子串模糊匹配):名称会命中所有含该词的基金,分析单一标的时必须收敛口径,否则误拉一堆同类基金:

用户表述陷阱正确处理
"创业板ETF""创业板" 会命中 87 只主题 ETF/混合基金用精确代码或名称含"创业板ETF"筛选,且仅取场内 ETF(排除 LOF/联接基金)
"科创50"Tushare 全称"上证科创板50成份ETF",名称含"科创50"的可能是其他产品用名称含"科创板50"或直接按代码识别
"黄金ETF"会误匹配"黄金产业股票ETF"等主题产品名称精确含"黄金ETF"
"沪深300"名称含该词的基金几十只(场内 ETF + 场外联接 + 多只跟踪基金)先定目标类型(场内/场外),再按基金类型字段收敛

名称匹配结果 > 1 时:先按基金类型(场内/场外/联接)与上市状态收敛,仍不唯一再按上述"多义性消歧"规则处理,并在报告中注明匹配数与最终口径。

分析维度(默认全套,按需裁剪)

一、股票(默认 11 维)

每个维度均输出:描述句 → 数据表 → 分析评价

#维度数据接口关键分析指标
1概况stock_basic、stock_company公司全称、行业(申万)、上市日期、注册地、员工数、主营业务简介
2行情趋势daily、weekly、monthly、daily_basic、adj_factor、index_daily(沪深300+行业指数)近 20/60/250 日涨跌幅(基于复权价)、MA5/MA20/MA60、MACD/RSI/KDJ/布林带、换手率、振幅、波动率、阶段最高/最低;基准对比:对沪深300及所属行业指数计算相同口径的涨跌幅、年化波动率、最大回撤、夏普比率,与标的并列对比(判断超额收益与相对风险)
3估值分析daily_basic、index_dailybasic(行业)、index_member(行业成分股)PE(TTM)、PB、PS(TTM)、股息率、总市值、流通市值;与行业均值对比(取 index_classify 获取行业指数代码 → index_member 取成分股 → 各取 daily_basic PE/PB,先 winsorize_cross_section 截面去极值再求均值/中位数,避免单只异常股拉偏);PE/PB 双口径分位(valuation_percentiles:近 5 年历史分位 + 当日同行业截面分位,双口径背离时需找原因)
4财务质量fina_indicator、income、balancesheet、cashflow、forecastROE、毛利率、净利率、营收/利润增速(YoY)、资产负债率、经营现金流;业绩预告类型及变动幅度;Piotroski F-Score(9 项量化打分,≥7 强/≤2 弱)
5资金面moneyflow、moneyflow_hsgt、block_trade近 5-20 日主力净流入(注意:net_mf_amount 为全口径净流入,buy_elg_amount - sell_elg_amount 为超大单口径,两者方向可能相反,需按分析目标选择口径)、北向持股变化、大宗交易折溢价/机构买卖方向
6股东/筹码top10_holders、top10_floatholders、stk_holdernumber、stk_holdertrade前十大股东/流通股东集中度、股东户数时间序列分析(筹码集中度指标)、大股东增减持方向与比例

筹码集中度分析(股东户数时间序列)

股东户数的时间序列变化是判断筹码集中/分散的核心指标,比单点数值更有意义:

  • 股东户数减少(与筹码集中方向一致):人均持股数增加。这通常是筹码趋于集中的信号,但户数变化仅为相关性,不能直接断言主力吸筹;需结合成交、股价走势与股东结构交叉验证。
  • 股东户数增加(与筹码分散方向一致):人均持股数减少。通常与筹码趋于分散一致,但同样不能直接断言主力派发;需结合量价验证。
  • 分析要点:
    • 对比近 4 个季度股东户数变化率,判断趋势方向
    • 结合股价走势交叉验证(均为相关性观察,非因果结论):户数持续下降 + 股价上涨 = 可能筹码锁定(健康上涨特征之一);户数持续下降 + 股价下跌 = 可能主力被套(阶段见底信号之一);户数持续上升 + 股价上涨 = 可能散户接盘(警惕见顶)
    • 使用 stk_holdernumber 接口获取历史数据,按 end_date 排序后计算环比变化率 | 7 | 两融/杠杆情绪 | margin_detail | 融资余额及变化率、融券余额、近5日融资余额变化 | | 8 | 市场异动 | limit_list_d、top_list、top_inst | 近期涨停/跌停记录、龙虎榜上榜次数、机构净买卖 | | 9 | 解禁压力 | share_float | 未来 3 个月即将解禁股份数量及占比 | | 10 | 宏观/市场环境 | index_daily(沪深300)、cn_cpi、cn_ppi、shibor_lpr、cn_gdp | 大盘近期走势、CPI/PPI 走势与方向、LPR 利率水平、GDP 同比 | | 11 | 风险提示 | 汇总以上维度 | 综合风险分级:高/中/低,列出具体风险信号 |

二、指数(默认 8 维)

#维度数据接口关键分析指标
1概况index_basic发布方、基期、基点、类别、上市日期
2行情趋势index_daily近 20/60/250 日涨跌幅、MA 排列、年化波动率、最大回撤、夏普比率;基准对比:对沪深300计算相同口径指标并列对比
3估值index_dailybasicPE(TTM)、PB 历史分位数。注意:index_dailybasic 不覆盖科创板指数(如科创50 000688.SH),此类指数估值降级为用成分股 daily_basic 聚合估算(截面中位数 + 历史分位),并标注数据源
4成分权重index_weight前十大权重股及权重占比,补充股票名称(stock_basic 批量查询)
5行业分布index_weight 获取成分股 + stock_basic 查行业成分股按申万行业归类,统计各行业数量及占比(前三行业占比)
6两融/市场杠杆margin(全市场两融汇总)两市融资余额合计、近一年(250 交易日)变化方向、杠杆情绪判断
7对比index_global与同类指数/国际指数近期表现对比。index_global 的 ts_code 无点前缀(如 DJI/SPX/IXIC/N225/HSI,非 .DJI),代码格式需查 references/国际指数.md 文档。注意:index_global 返回数据为降序(最新在前),计算前必须 .sort_values('trade_date'),否则 iloc 索引取到的日期方向相反,导致涨跌幅方向错误
8风险提示汇总以上维度波动偏高/回撤较深/估值偏高等风险信号

三、公募基金(默认 9 维)

#维度数据接口关键分析指标
1概况fund_basic基金类型、成立日期、上市日期、基金简称
2净值走势fund_nav、fund_adj、fund_daily(场内ETF)近 1/3/6 月、近 1/3 年收益率(基于复权净值);场内 ETF 必须用 fund_daily + apply_etf_adj 复权(daily 接口对 ETF 返回空,且不复权价在份额拆分时严重失真)
3业绩指标基于 fund_nav/fund_daily 计算年化波动率、夏普比率、最大回撤
4同类对比fund_basic(筛同类型)、fund_daily/fund_nav(逐只)同类排名(近 20/60/120/250 日分位);ETF 优先选同后缀场内基金对比,按成立日期排序优先选上市早的
5基金经理fund_manager任职起始日、任职年限
6持仓分析fund_portfolio前十大重仓股及占比(stk_mkv_ratio)、补充股票名称;字段为 symbol/mkv/stk_mkv_ratio(非 name/ratio/market_val)
7规模变化fund_share按季度采样(groupby 季度末),近4季份额变化趋势
8分红fund_div累计分红次数、分红金额;字段为 ex_date/div_cash(非 div_date)
9风险提示汇总以上维度回撤较深/波动偏高/份额缩水等风险信号

份额口径声明(规模变化/同类对比维度的评价句必写):fund_share.fd_share 为单只基金份额。同一指数常有场内 ETF + 场外联接 + 多只跟踪基金并存(如名称含"沪深300"的基金几十只),份额/规模数据均为单只口径,不得表述为"该指数全部基金合计"。评价句必须注明是"XX基金单只份额"还是"场内外合计",避免用户误读为指数整体规模。

四、期货(默认 7 维)

#维度数据接口关键分析指标
1概况fut_basic合约标的、交易所、合约乘数、最小变动价位、交易单位、保证金率
2行情趋势fut_daily(主力连续合约如 JM.DCE/RB.SHF,非具体合约)近 20/60 日涨跌幅、结算价走势、日内振幅、波动率
3持仓分析fut_holding持仓量变化、成交量/持仓量比、前 20 会员持仓多空比
4主力合约fut_mapping主力合约代码、换月日期、基差(现货 vs 期货)
5仓单库存fut_wsr注册仓单量变化、库存/消费比
6结算参数fut_settle当日结算价、交割结算价、保证金调整
7风险提示汇总以上维度波动偏高/换月跳空/持仓异常等风险信号

报告结构

每份分析报告输出为独立 HTML 文件(浏览器直接打开,时间序列图表内联在各维度章节内)。内容结构如下,每个维度按 描述句 → 数据表 → 分析评价 的格式,最后附整体分析评价:

# 标的名称 全景研究报告

> 数据日期:YYYY-MM-DD(Tushare 数据为 T-1 日)

## 1. 概况
描述句(如:银行ETF,华宝基金发行,跟踪中证银行指数,规模居同类前列)
- 关键指标汇总表

## 2. 行情趋势
描述句(近20日涨跌幅、波动率、回撤等核心指标概述)
- 涨跌幅对比表(标的 vs 沪深300并列)
- 风控指标对比表(波动率/回撤/夏普 vs 基准)
- 技术指标表(MACD/RSI/KDJ/布林带合并一张表)
- 进阶量化指标(Beta/Alpha/Sortino/滚动Beta/RS/VaR等)
- **分析评价**:对本维度数据的解读,包含明确的投资参考含义

## 3. 估值分析
描述句(PE/PB/历史分位等概述)
- 估值指标表
- 行业截面估值对比表(如适用)
- **分析评价**:(如"PE历史分位23.7%偏低,PB低于行业中位数,估值需结合业绩增速判断")

## N. 风险提示
- 风险信号 1
- 风险信号 2
- 数据缺失说明(如有维度失败)

## N+1. 整体分析评价
**综合判断**:一句话定位标的特征标签(如"低估值、防御型、高股息")
- 分维度要点列表(趋势/估值/财务/资金/筹码/杠杆/宏观各一行)
**风格定位**:标的属于什么风格型资产
**结论**:综合各维度给出投资参考含义和适用场景

---
*本报告由AI基于山西证券Tushare平台数据自动生成,基于 T-1 日历史数据,仅供技术交流与学习参考,不构成任何投资建议或财务指导。*

每维度分析评价必须包含对投资者的明确参考含义(如"估值处于历史低位,但需结合行业景气度判断"),而非罗列数据。

本报告由AI基于山西证券Tushare平台数据自动生成,基于 T-1 日历史数据,仅供技术交流与学习参考,不构成任何投资建议或财务指导。


多列数据示例(列数必须对齐,如份额一栏拆成两列):

| 标的 | 最新份额 | 份额变化 |
|------|---------|---------|
| 沪深300ETF | 248亿份 | -0.1% |

每维度分析评价必须包含对投资者的明确参考含义(如"估值处于历史低位,但需结合行业景气度判断"),而非罗列数据。

**报告表格约束**:每个 markdown 表格的表头行与数据行的列数必须一致。如果一列有多项数据(如"份额 + 变化率"),要么拆成两列分别填入,要么合并到一列中并调整表头,避免出现空列。
**表格合并建议**:同一维度内的数据优先合并为一张表(如涨跌幅 + 风控指标 + 技术指标合并),避免拆成多个独立表格造成视觉割裂。若列数过多导致横向过长,可分组但需紧邻排列。

## 关键默认值

| 模糊中文 | 默认口径 |
|---------|---------|
| "最近"/"近期" | 近 20 个交易日 |
| "最近三个月" | 近 60 个交易日 |
| "今年" | 当年 1 月 1 日至今 |
| "历史"(股票/指数) | 近 3 年 |
| "历史"(基金) | 成立以来 |
| 证券代码 | 标准 `600519.SH` 格式 |
| 基金代码 | 场外 `.OF`,场内 `.SZ`/`.SH` |
| 期货代码 | 标准 `RB2501.SHF` 格式 |
| 行业分类 | 申万 2021 版 |
| 对比基准(股票) | 所属申万一级行业均值 |
| 对比基准(基金) | 同类基金(同类型+同投资方向) |
| 对比基准(指数) | 沪深 300(000300.SH) |

> **数据充分性**:取数时按最大周期(如"近 250 日")再往前多取 30 个交易日,确保有足够数据计算。寒武纪从 20250801 到 20260812 仅 249 个交易日,不足以计算近 250 日涨跌幅,此时应前移起始日期(如 `start_date = '20250601'`)获取更多数据,或降级为"近 120 日"并标注"数据不足"。
> **数据不足时的报告处理**:若某标的上市不足请求周期(如具体期货合约仅 197 日不足 250 日),则:
> 1. **优先改用主力连续合约**(期货场景)或前移 start_date(股票场景)补充数据
> 2. 若仍不足,计算自上市以来的全长收益率,标注为"数据不足(仅 N 日,自上市 X%)"
> 3. 不可直接显示 N/A——用户无法判断是数据问题还是计算结果问题

## 量化分析方法

### 纵向对比(单标的时间序列)

单标的历史走势分析必须消除除权除息(送股/转增/分红/配股)导致的价格跳变,否则区间收益率和技术指标会失真。

- **股票复权**:`daily` 返回的是**未复权**数据(含除权除息跳变),趋势/收益率/技术指标计算前**必须复权**,否则除权日会产生虚假跳空。取 `adj_factor` 自行计算:
  - 后复权价 = 原始价 × 当日复权因子(`apply_adj_factor` 一并复权 open/high/low/close/pre_close,`*_post` 列同 scale,可安全用于 OHLC 类指标如 KDJ/布林带)
  - 前复权价 = 原始价 × 当日复权因子 / 最新复权因子
  - 长期收益率、定投收益、回撤、技术指标均应基于复权价;⚠️ 切勿用 `close_post` 配合未复权的 `high/low`——scale 不一致会令 KDJ 等指标失真
- **基金复权**:`fund_nav` 返回单位净值和累计净值。计算区间收益率时用 `fund_adj` 复权因子构建复权净值序列,消除分红除权影响:
  - 复权净值 = 单位净值 × 当日复权因子 / 最新复权因子
  - 夏普、最大回撤、Calmar 等指标均基于复权净值序列计算
- **ETF 复权**:`fund_daily` 返回的是不复权价,`apply_etf_adj`(`fund_adj` 因子)产出 `close_post`。**ETF 的 `fund_adj` 因子口径与股票 `adj_factor` 不同(实测方向/量级不统一,如 510500 ~0.34、512100 ~0.373、510300 ~1.27),`close_post` 绝对值非后复权价,仅供收益/夏普/回撤等 scale-invariant 计算(全程同列 pct_change 与因子绝对值无关);展示价用未复权 `close`。** 股票 `adj_factor` 则是标准后复权因子(单调递增,`后复权价=原始价×adj_factor`,可展示)。`apply_*_adj` 返回 trade_date/nav_date 索引的 df,可直接喂给 `rebase_series`/`compare_returns`(二者校验日期索引,传整数索引会抛 TypeError)。
  - **函数选型**:`apply_etf_adj` **只复权 close**(产出 close_post,供收益/夏普/回撤);KDJ/布林带等需 high/low/close 同 scale 的 OHLC 类指标,**改用 `apply_adj_factor`**(它复权全部 open/high/low/close/pre_close,`*_post` 列同 scale,fund_daily 同样适用)。误用 `apply_etf_adj` 喂 KDJ 会因 high_post/low_post 不存在而 KeyError。
- **基金规模取数**:`fund_nav.total_netasset` 是季报口径(稀疏,多为 NaN),仅作季度规模快照;需连续日度规模时用 `fund_share.fd_share`(万份)× `fund_nav.unit_nav` 计算:`规模亿元 = fd_share × unit_nav / 1e4`(先按 trade_date 对齐)。`fund_nav` 同 nav_date 可能有重复行,使用前按 nav_date 去重。
- **期货连续合约**:期货存在换月跳空,纵向分析时用 `fut_mapping` 识别主力合约区间,跨主力合约的连续走势需拼接或用 `fut_daily` 按合约分段分析,不得简单拼接。

### 横向对比(多标的归一化)

多标的横向对比时,不同标的价格量纲不同(如茅台 1500 元 vs 农业银行 4 元),直接比较价格序列无意义,必须归一化。

- **序列归一化(rebase)**:将各标的复权价格序列统一缩放到基准日 = 100,公式:`归一化净值 = 当日复权价 / 基准日复权价 × 100`。基准日取对比区间起点,使得所有标的从同一起跑线出发。
- **收益率对比**:计算各标的同期收益率(近 1 月/3 月/6 月/1 年/YTD),放同一张表横向排序。
- **估值分位数对比**:不同标的 PE/PB 不可直接比绝对值(行业属性不同),应转换为各自近 5 年历史分位数,再横排对比。跨标的截面均值/分位计算前,对截面值先 `winsorize_cross_section` 去极值(MAD 3σ)或直接取截面中位数,避免单只异常股拉偏;估值优先给"历史分位 + 同业截面分位"双口径(`valuation_percentiles`)。
- **财务指标对比**:ROE、毛利率等已是比率指标,可直接横排;营收/利润等绝对值指标应转换为增速(YoY/QoQ)或人均值后再对比。
- **波动率/回撤对比**:年化波动率、最大回撤本身量纲统一,可直接横排;但夏普比率等需确认无风险利率口径一致。

### 进阶量化指标

在基础指标之上,以下方法用于提升分析的深度与科学性:

- **技术指标**:MACD(趋势动能/金叉死叉)、RSI(超买>70/超卖<30)、KDJ(随机指标)、布林带(波动区间/触及上下轨)。MA 单独不足以判断买卖时机,技术指标组合可提供更丰富的信号。
- **历史分位数**:当前 PE/PB 等估值指标在近 5 年历史序列中的百分位排名(`percentile_rank`)。85 分位 = 当前估值高于历史 85% 的时间 → 偏高。
- **Sortino 比率**:夏普的改进版,分母仅用下行波动(仅亏损日的波动率),对不对称收益分布更合理。适合评估基金下行风险控制能力。
- **信息比率(IR)**:超额收益年化 / 跟踪误差年化。衡量基金经理主动选股能力,IR > 0.5 为优秀。
- **Piotroski F-Score**:9 项财务健康量化打分——盈利能力(ROA>0、经营现金流>0、ΔROA>0、经营现金流>净利润)、杠杆/流动/融资(Δ资产负债率≤0、Δ流动比率>0、未新增股本)、运营效率(Δ毛利率>0、Δ总资产周转率>0),总分 0-9,≥7 为强,≤2 为弱。按年报(end_date 1231)去重后取最近 2 期同比,数据来自 `fina_indicator`/`income`/`cashflow`/`balancesheet`(可选)。
- **量价分析**:OBV(能量潮,价升量增=趋势健康)、量比(当日量/近 5 日均量,>2 放量/<0.5 缩量)、量价背离(价升量缩=顶部信号/价跌量缩=底部信号)。
- **Beta/Alpha 归因**:CAPM 回归分解,Beta = 个股对市场的敏感度(>1.2 高弹性/<0.8 防御型),Alpha = 扣除市场收益后的超额收益年化。需取个股与沪深 300 同期日收益率对齐回归。

### 风险建模与分布分析

- **VaR/CVaR(在险价值)**:历史法计算 95%/99% 置信水平的最大日亏损。VaR = 损失分位数,CVaR = 超过 VaR 的平均损失(更保守)。是风险管理的国际标准指标。
- **尾部风险(偏度/峰度)**:偏度 < 0 = 左偏(亏损侧尾部更长,崩盘风险大);峰度 > 0(超额)= 厚尾(极端事件概率高于正态假设)。两者结合可判断收益分布是否偏离正态。
- **回撤深度分析**:在最大回撤之外,补充回撤持续期(水下天数)、痛苦指数(平均回撤深度),衡量"被套牢"的实际体感。
- **Amihud 非流动性**:|日收益率| / 日成交额,衡量单位资金引起的价格变动。值大 = 流动性差,大资金进出成本高。

### 滚动分析与动态监控

- **滚动 Beta**:60 日滚动窗口计算 Beta 变化趋势,展示市场敏感度随时间演变(上升 = 波动加大或防御减弱)。
- **滚动夏普**:60 日滚动窗口的风险调整收益趋势,比单点夏普更能反映稳定性。
- **相对强度(RS)**:标的累计收益 / 基准累计收益,RS > 1 跑赢、< 1 跑输,趋势走强 = 相对优势扩大。

### 统计检验方法

- **Z-Score 标准化**:将指标转为与群体均值的标准差倍数。|Z| > 1.96 = 在 5% 显著性水平下显著偏离。用于跨标的估值/财务指标对比。
- **事件研究法**:估计窗口(事件前 30 日)用市场模型回归估算正常收益,事件窗口(后 10 日)计算异常收益 AR 与累计异常收益 CAR。CAR > 2% = 事件正向显著。适用于财报发布、解禁、增减持等事件冲击分析。
- **CAGR(复合年化增长率)**:基于持有天数精确年化,比简单区间收益率更适合跨周期对比。

## 分析原则

1. **结论先行**:每个维度先写结论句,再给数据,不要只列数据让用户自己判断。
2. **交叉验证**:单一维度信号不充分时,结合多个维度交叉判断(如"资金面流入但估值已高")。
3. **数据时效**:Tushare 数据为 T-1 日,报告顶部注明数据

…

[truncated for translation]

Skills relacionados