Community研究與資料分析github.com

TrueHOOHA/shanxi-securities-tushare-skill

山西证券 Tushare 綜合分析技能

shanxi-securities-tushare-skill 是什麼?

此技能是專為山西證券 Tushare 數據平台設計的 AI 代理技能,可將原始金融數據整合為多維度的結構化分析報告。它支援股票、公募基金、指數和期貨等主要資產類別,提供從環境驗證、標的識別、維度加載到最終報告生成的完整自動化流程。技能核心在於其強大的分析維度,例如股票的 11 個維度涵蓋了行情趨勢(含 MACD/RSI/KDJ 等技術指標)、估值分析(歷史與行業分位數)、財務質量(Piotroski F-Score)、資金面、股東籌碼(股東戶數時間序列)以及 VaR/CVaR 等進階量化指標。此外,它強制輸出可視化的 HTML 報告,並內建了嚴謹的復權處理(股票後復權、基金複權淨值、ETF 特殊復權)與多種量化分析方法,包括橫向比較(序列歸一化)、滾動分析(滾動 Beta/夏普)和統計檢驗(Z-Score 標準化、事件研究法),確保分析深度與科學性。此技能主要設計用於 Cursor 等代碼編輯器或 Claude Code 等 AI 代理環境,透過呼叫 Python Runner 模組來執行分析。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add TrueHOOHA/shanxi-securities-tushare-skill

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

山西證券 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 日,報告頂部註明數據

相關技能