fund-screener
npx skills add https://github.com/sososun/mutual-fund-skills --skill fund-screener
Agent 安装分布
Skill 文档
åºéåææè½ (Fund Screener)
éè¿ AkShare è·åä¸å½å ¬ååºé宿¶æ°æ®ï¼åºäºéåææ çéä¼è´¨åºé产åã
åè½
- ååºé深度åæ: 对ååªåºéè¿è¡å ¨æ¹ä½è¯æï¼å æ¬é£é©ææ ãé¶æ®µæ¶çã年度æ¶çãèµäº§é ç½®ãåºéç»çãæä»ä¿¡æ¯
- å ¨å¸åºæ¹éçé: ä»å ¨å¸åºå¼æ¾å¼åºé䏿ºè½çéï¼æ¯æå¤ç§æ¨¡å¼
- ç»æå¯¼åº: èªå¨ä¿å CSV æä»¶
ä½¿ç¨æ¹æ³
è¿è¡æ¤æè½éè¦ Python 3.8+ åä¾èµ: pip install akshare pandas numpy
# ååºéåæ
python fund_screener.py <åºé代ç > [åºéåç§°]
# 纯åºåºéçéï¼ä½é£é©ï¼
python fund_screener.py --bond
# åºæ¶+åºéçé
python fund_screener.py --gushou-plus
# è¡ç¥¨ç±»åºéçé
python fund_screener.py --stock
# Alphaçç¥çéï¼å¡çæ¯çï¼
python fund_screener.py --stock-alpha
# èªå®ä¹åæ°
python fund_screener.py --bond --min-sharpe 1.0 --max-dd 2 --min-return 2.5
python fund_screener.py --gushou-plus --min-sortino 1.5
python fund_screener.py --stock-alpha --min-calmar 0.8 --min-return 10
# æ°éæ§å¶
python fund_screener.py --bond --max 50
ç鿍¡å¼ä¸ææ
| æ¨¡å¼ | åæ° | æ ¸å¿ææ | é»è®¤çéæ å |
|---|---|---|---|
| 纯åºåºé | --bond |
夿®æ¯ç | 夿®>=1.0, 忤<2%, æ¶ç>2.5% |
| åºæ¶+ | --gushou-plus |
ç´¢æè¯ºæ¯ç | 夿®>=0.8, ç´¢æè¯º>=1.2, 忤<5%, æ¶ç>3.5% |
| è¡ç¥¨Alpha | --stock-alpha |
å¡çæ¯ç | å¡ç>=1.2, 忤<30%, æ¶ç>10% |
| é»è®¤/è¡ç¥¨ | æ /--stock |
夿®æ¯ç | 夿®>=0.5, 忤<15%, æ¶ç>3% |
èªå®ä¹åæ°
| åæ° | 说æ |
|---|---|
--min-sharpe <value> |
æå°å¤æ®æ¯ç |
--min-sortino <value> |
æå°ç´¢æè¯ºæ¯ç |
--min-calmar <value> |
æå°å¡çæ¯ç |
--max-dd <value> |
æå¤§åæ¤ç¾åæ¯ï¼æ£æ°ï¼å¦5表示<5%ï¼ |
--min-return <value> |
æå°å¹´åæ¶çç(%) |
--max <value> |
æå¤§åææ°éï¼50-500ï¼ |
ä½ä¸º Python 模å使ç¨
from fund_screener import get_fund_metrics, analyze_single_fund, calculate_sharpe_ratio
# åæååªåºé
metrics = get_fund_metrics('004010', 'åæ³°æçé¼å©æ··åA')
# 深度åæ
analysis = analyze_single_fund('004010')
æ°æ®æ¥æº
- åºéåå¼: 䏿¹è´¢å¯ç½ (via AkShare)
- åºéç»ç/è§æ¨¡: åºéç»çæä»æ°æ®
- èµäº§é ç½®: åºéå£åº¦æä»æ¥å
- æ°æ®éªè¯: ç¾åº¦è¡å¸é (via BrowserMCPï¼å¯éå¢å¼º)
æµè§å¨æ°æ®éªè¯ï¼BrowserMCPï¼
AkShareçé¨åæ°æ®åå¨å·²ç¥åå·®ï¼åºéè§æ¨¡ä¸ºç»çæ»è§æ¨¡èéååªåºéè§æ¨¡ãæä»æ°æ®å¯è½æ»åãæ¶çç计ç®å£å¾å·®å¼ï¼ãå½BrowserMCPå¯ç¨æ¶ï¼åºå¨PythonçéçæCSVåï¼èªå¨éè¿æµè§å¨è®¿é®ç¾åº¦è¡å¸éè¿è¡æ°æ®äº¤åéªè¯åä¿®æ£ã
åç½®æ¡ä»¶
.mcp.jsonä¸å·²é ç½® BrowserMCP
宿´å·¥ä½æµ
Step 1: è¿è¡Pythonçé â çæåå§CSV
Step 2: 读åCSVï¼è¯å«A/C份é¢å¯¹ï¼å»é
Step 3: éåªåºééè¿BrowserMCP访é®ç¾åº¦è¡å¸é
Step 4: éªè¯å¹¶ä¿®æ£ä¸å¤§æ°æ®ï¼è§æ¨¡ãæä»ãæ¶ç
Step 5: æ´æ°CSV + ä¿åéªè¯ç¼åJSON
Step 6: è¾åºä¿®æ£æè¦
Step 2: A/C份é¢å»é
åä¸åºéçA/C份é¢å ±äº«ç¸åçæä»åè§æ¨¡ï¼æ ééå¤éªè¯ãå»éè§åï¼
- 廿åºéåç§°æ«å°¾çA/B/C/E/Håç¼è¿è¡åç»
- æ¯ç»åªéªè¯ä¸ä¸ªä»½é¢ï¼ä»£ç æ°åè¾å°çä¼å ï¼
- éªè¯åçæä»åè§æ¨¡æ°æ®å¤å¶å°åç»ææä»½é¢
- è¿1å¹´æ¶çå è´¹çå·®å¼ä¸åï¼æ¯ä¸ªä»½é¢åç¬åå¼ï¼æä» éªè¯A份é¢ï¼
Step 3: æµè§å¨éªè¯åè®®
对æ¯åªå¯ä¸åºéï¼è®¿é®ä¸¤ä¸ªé¡µé¢ï¼
3a. æä»é¡µ â è·åå5大æä»
URL: https://gushitong.baidu.com/fund/ab-{code}?mainTab=%E6%8C%81%E4%BB%93
ä½¿ç¨ browser_navigate 访é®å browser_snapshot è·åå¿«ç
§ãå¨å¿«ç
§ææ¬ä¸æ¥æ¾ï¼
å大éä»è¡ç¥¨ æ´æ°æ¥æï¼YYYY-MM-DD
è¡ç¥¨Aå X.XX% è¡ç¥¨Bå X.XX% è¡ç¥¨Cå X.XX% ...
æåå5个è¡ç¥¨åç§°ï¼ç¨ , è¿æ¥ä½ä¸º”å5大æä»”ã
å¼å¸¸å¤çï¼
- è¥æ¾ç¤º
å大éä»è¡ç¥¨ ææ æ°æ®â ä¿çCSVåå¼ï¼æ¸¯è¡éåºé常è§ï¼ - è¥é¡µé¢è¶ æ¶ â éè¯1次ï¼ä»å¤±è´¥åè·³è¿
- è¥æ¾ç¤º
æå¡å¼å¸¸â çå¾ 2ç§åéè¯
3b. ç®åµé¡µ â è·åè§æ¨¡åè¿1å¹´æ¶ç
URL: https://gushitong.baidu.com/fund/ab-{code}?mainTab=%E7%AE%80%E5%86%B5
ä½¿ç¨ browser_navigate 访é®å browser_snapshot è·åå¿«ç
§ãå¨å¿«ç
§ææ¬ä¸æ¥æ¾ï¼
- è¿1å¹´æ¶ç: 寻æ¾
è¿ä¸å¹´éè¿çç¾åæ¯æ°å¼ï¼å¦+53.47% è¿ä¸å¹´â æå53.47 - åºéè§æ¨¡: 寻æ¾
è§æ¨¡éè¿çæ°å¼ï¼æ ¼å¼å¦X.XXäº¿â æåX.XX
注æï¼é¨ååºéçè§æ¨¡å¨ç®åµé¡µæªç´æ¥æ¾ç¤ºæ°å¼ï¼å¯å°è¯ä»æä»é¡µçå¿«ç §ä¸æ¥æ¾ã
Step 4: ä¿®æ£CSV
对æ¯åªéªè¯è¿çåºéï¼
- è¥ç¾åº¦ç”å5大æä»”ä¸CSVä¸å â ç¨ç¾åº¦æ°æ®è¦çCSV
- è¥ç¾åº¦ç”åºéè§æ¨¡”ä¸CSVä¸å â ç¨ç¾åº¦æ°æ®è¦çCSV
- è¥ç¾åº¦ç”è¿1å¹´æ¶ç”ä¸CSVä¸å â ç¨ç¾åº¦æ°æ®è¦çCSV
- 对A/C份é¢å¯¹ï¼å°A份é¢çæä»åè§æ¨¡æ°æ®åæ¥å°C份é¢
Step 5: ä¿åéªè¯ç¼å
æ´æ° baidu_fund_data.json æä»¶ï¼Schemaå¦ä¸ï¼
{
"004814": {
"è§æ¨¡": "189.25",
"è¿1å¹´": "53.63",
"å5大æä»": "ç´«éç¿ä¸, å¾å·¥æºæ¢°, æ°åä¿é©, ä¸å½éæ±½, ä¸ä¸éå·¥",
"æä»æ´æ°æ¥æ": "2025-12-31",
"éªè¯æ¶é´": "2026-02-24"
}
}
Step 6: è¾åºä¿®æ£æè¦
éªè¯å®æåæå°æ±æ»è¡¨ï¼
=== æ°æ®éªè¯æè¦ ===
æ»è®¡æ£æ¥: 25 åªï¼å»éåï¼
è§æ¨¡ä¿®æ£: 18 åª
æä»ä¿®æ£: 14 åª
æ¶çä¿®æ£: 4 åª
è·³è¿(ææ æ°æ®): 2 åª
æ§è½ä¼å
- æ¯æ¬¡é¡µé¢å è½½åçå¾ 1-2ç§ï¼é¿å 触ååç¬
- 25åªå¯ä¸åºé约é50次页é¢å è½½ï¼é¢è®¡èæ¶5-8åé
- å¯å©ç¨ç¼åJSONï¼è¥å½å¤©å·²éªè¯è¿ï¼è·³è¿éå¤éªè¯
é£é©æç¤º
åå²ä¸ç»©ä¸ä»£è¡¨æªæ¥è¡¨ç°ãæ¬å·¥å ·ä» ä¾å¦ä¹ ç ç©¶ï¼ä¸æææèµå»ºè®®ã