重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
npx skills add https://github.com/zuoa/aj-skills --skill aj-stock-analysis基于价值投资理论的中国A股分析工具,面向低频交易的普通投资者。
当用户请求以下操作时调用此skill:
所有脚本命令都应在项目虚拟环境中运行。
python3 -m venv .venv
source .venv/bin/activate
安装依赖:
pip install tushare pandas numpy
在运行任何脚本前,先在当前项目目录执行:
cd <skill项目目录>
if [ ! -d ".venv" ]; then
python3 -m venv .venv
fi
source .venv/bin/activate
python3 -m pip install -U pip
python3 -m pip install tushare pandas numpy
说明:
.venv 必须位于 skill 项目根目录下(不是全局目录)广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
import tushare 失败,必须先执行上述 bootstrap,再继续后续分析流程TUSHARE_TOKEN / BRAVE_API_KEY 建议保存在 ~/.aj-skills/.env,并在执行前先加载到当前 shell:
set -a
source ~/.aj-skills/.env
set +a
说明:
~/.aj-skills/.env--token "${TUSHARE_TOKEN}"、--brave-api-key "${BRAVE_API_KEY}"执行前参数预检(使用 test 命令):
test -n "${TUSHARE_TOKEN}" || { echo "缺少 TUSHARE_TOKEN"; exit 1; }
# 仅当使用 Brave 新闻源时检查
test -n "${BRAVE_API_KEY}" || { echo "缺少 BRAVE_API_KEY(news-provider=brave 时必填)"; exit 1; }
在执行任何分析前,先检查tushare是否已安装:
python3 -c "import tushare; print(tushare.__version__)"
筛选符合条件的股票
个股深度财务分析
同行业横向对比分析
内在价值测算与安全边际计算
抓取近期社会面新闻并生成舆情风险评估
用户请求筛选股票时使用。
向用户询问筛选条件。提供以下选项供用户选择或自定义:
估值指标:
盈利能力:
成长性:
股息:
财务安全:
筛选范围:
python scripts/stock_screener.py \
--scope "hs300" \
--token "${TUSHARE_TOKEN}" \
--pe-max 15 \
--roe-min 15 \
--debt-ratio-max 60 \
--dividend-min 2 \
--output screening_result.json
参数说明:
--scope: 筛选范围 (all/hs300/zz500/cyb/kcb/custom:600519,000858,...)--pe-max/--pe-min: PE范围--pb-max/--pb-min: PB范围--roe-min: 最低ROE--growth-min: 最低增长率--debt-ratio-max: 最大资产负债率--dividend-min: 最低股息率--token: tushare token(必填)--format: 输出格式 (json/table)--quiet: 静默模式--output: 输出文件路径读取 screening_result.json 并以表格形式呈现给用户:
| 代码 | 名称 | PE | PB | ROE | 股息率 | 评分 |
|---|---|---|---|---|---|---|
| 600519 | 贵州茅台 | 25.3 | 8.5 | 30.2% | 2.1% | 85 |
用户请求分析某只股票时使用。
询问用户:
单只股票分析时,skill 需要自动创建输出目录,命名规则:
${股票名称}_${股票代码}示例:
stock_dir="贵州茅台_600519"
mkdir -p "${stock_dir}"
推荐使用“分模块抓取 + 聚合”流程(CLI解耦):
mkdir -p "${stock_dir}/data"
# 1) 基础信息
python scripts/fetch_basic.py \
--code "600519" \
--token "${TUSHARE_TOKEN}" \
--output "${stock_dir}/data/basic.json"
# 2) 财务数据
python scripts/fetch_financial.py \
--code "600519" \
--token "${TUSHARE_TOKEN}" \
--years 5 \
--output "${stock_dir}/data/financial.json"
# 3) 估值与行情
python scripts/fetch_valuation.py \
--code "600519" \
--token "${TUSHARE_TOKEN}" \
--output "${stock_dir}/data/valuation.json"
python scripts/fetch_price.py \
--code "600519" \
--token "${TUSHARE_TOKEN}" \
--days 180 \
--output "${stock_dir}/data/price.json"
# 4) 新闻舆情
python scripts/fetch_news_data.py \
--code "600519" \
--name "贵州茅台" \
--days 7 \
--limit 20 \
--provider brave \
--brave-api-key "${BRAVE_API_KEY}" \
--output "${stock_dir}/data/news.json"
# 5) 实时与事件窗口
python scripts/fetch_realtime.py \
--code "600519" \
--token "${TUSHARE_TOKEN}" \
--benchmark hs300 \
--window 60 \
--output "${stock_dir}/data/realtime.json"
python scripts/fetch_event_window.py \
--code "600519" \
--token "${TUSHARE_TOKEN}" \
--name "贵州茅台" \
--benchmark hs300 \
--pre-days 1 \
--post-days 1,3,5 \
--provider brave \
--brave-api-key "${BRAVE_API_KEY}" \
--output "${stock_dir}/data/event_window.json"
# 6) 聚合为分析输入
python scripts/assemble_data.py \
--input-dir "${stock_dir}/data" \
--output "${stock_dir}/stock_data.json"
兼容模式(单命令抓取)保留如下:
python scripts/data_fetcher.py \
--code "600519" \
--token "${TUSHARE_TOKEN}" \
--data-type all \
--with-news \
--news-provider brave \
--brave-api-key "${BRAVE_API_KEY}" \
--with-realtime \
--with-event-window \
--benchmark hs300 \
--realtime-window 60 \
--event-window-pre 1 \
--event-window-post 1,3,5 \
--news-days 7 \
--news-limit 20 \
--years 5 \
--output "${stock_dir}/stock_data.json"
参数说明:
--code: 股票代码--data-type: 数据类型 (basic/financial/valuation/holder/news/all)--years: 获取多少年的历史数据--token: tushare token(必填)--with-news: 附加新闻与舆情--news-days: 新闻窗口天数--news-limit: 新闻最大条数--news-sources: 新闻来源过滤(逗号分隔)--news-provider: 新闻源 (auto/brave/tushare/rss)--brave-api-key: Brave Search API Key(news-provider=brave 时必填)--with-realtime: 附加实时指标(趋势/确认/风险/筹码)--with-event-window: 附加事件窗口分析(事件后1/3/5日反应)--benchmark: 相对强弱基准指数 (hs300/zz500/zz1000/cyb/kcb)--realtime-window: 实时指标计算窗口(日)--event-window-pre: 事件窗口前置天数--event-window-post: 事件窗口后验天数(逗号分隔)--cache-ttl-min: 缓存有效期(分钟)--format: 输出格式 (json/table)--quiet: 静默模式--output: 输出文件python scripts/news_fetcher.py --code 600519 --name 贵州茅台 --token "${TUSHARE_TOKEN}" --days 7 --limit 20 --provider brave --brave-api-key "${BRAVE_API_KEY}" --output "${stock_dir}/news.json"
python scripts/sentiment_analyzer.py --input "${stock_dir}/news.json" --output "${stock_dir}/sentiment.json"
python scripts/financial_analyzer.py \
--input "${stock_dir}/stock_data.json" \
--level standard \
--output "${stock_dir}/analysis_result.json"
或直接读取分模块目录(自动聚合):
python scripts/financial_analyzer.py \
--input-dir "${stock_dir}/data" \
--level standard \
--output "${stock_dir}/analysis_result.json"
参数说明:
--input: 输入的股票数据文件--input-dir: 分模块目录(自动读取并聚合为分析输入)--level: 分析深度 (summary/standard/deep)--output: 输出文件python scripts/valuation_calculator.py \
--input "${stock_dir}/stock_data.json" \
--methods dcf,ddm,relative \
--discount-rate 10 \
--growth-rate 8 \
--output "${stock_dir}/valuation_result.json"
参数说明:
--input: 股票数据文件--methods: 估值方法 (dcf/ddm/relative/all)--discount-rate: 折现率(%)--terminal-growth: 永续增长率(%)--growth-rate: 永续增长率兼容别名(%)--margin-of-safety: 安全边际(%)--format: 输出格式 (json/table)--quiet: 静默模式--output: 输出文件读取分析结果,参考 templates/analysis_report.md 模板生成中文分析报告。
报告生成必检项(必须全部满足): 0. 最终报告必须落盘为 Markdown 文件(.md)
stock_data.json 中的 news_sentiment/news_items 填充对应字段news_sentiment.error)summary_title 与“业绩与审计信号”章节stock_data.json 包含 realtime_metrics,报告必须包含“实时指标看板”章节(趋势/确认/风险/筹码)stock_data.json 包含 event_window,报告必须包含“事件窗口反应”内容(事件数、后1/3/5日收益、后1/3/5日超额收益)realtime_metrics 存在,综合评分必须采用 财务40% + 实时60% (实时优先)报告结构(标准级):
报告标题规范:
summary_title 使用格式:股票名称(股票代码):总结性结论贵州茅台(600519):财务稳健,估值与风险匹配度较好输出文件:
${stock_dir}/final_report.md
读取 ${stock_dir}/final_report.md,并调用 humanizer-zh skill 进行润色和优化。
输出文件:
${stock_dir}/final_report_humanized.md
# 1) 获取板块数据
python scripts/sector_fetcher.py \
--sector-name "算力板块" \
--token "${TUSHARE_TOKEN}" \
--sector-file config/sector_computing_default.json \
--output "${stock_dir}/sector_data.json"
# 2) 生成板块分析结果 + Markdown报告
python scripts/sector_analyze.py \
--input "${stock_dir}/sector_data.json" \
--output "${stock_dir}/sector_analysis.json"
询问用户:
python scripts/data_fetcher.py \
--codes "600519,000858,002304" \
--token "${TUSHARE_TOKEN}" \
--data-type comparison \
--output industry_data.json
或按行业获取:
python scripts/data_fetcher.py \
--industry "白酒" \
--token "${TUSHARE_TOKEN}" \
--top 10 \
--output industry_data.json
python scripts/financial_analyzer.py \
--input industry_data.json \
--mode comparison \
--output comparison_result.json
| 指标 | 贵州茅台 | 五粮液 | 洋河股份 | 行业均值 |
|---|---|---|---|---|
| PE | 25.3 | 18.2 | 15.6 | 22.4 |
| ROE | 30.2% | 22.5% | 20.1% | 18.5% |
| 毛利率 | 91.5% | 75.2% | 72.3% | 65.4% |
| 评分 | 85 | 78 | 75 | - |
询问用户估值参数(或使用默认值):
DCF模型参数:
DDM模型参数:
相对估值参数:
python scripts/valuation_calculator.py \
--code "600519" \
--methods all \
--discount-rate 10 \
--terminal-growth 3 \
--forecast-years 5 \
--margin-of-safety 30 \
--output valuation.json
| 估值方法 | 内在价值 | 当前价格 | 安全边际价格 | 结论 |
|---|---|---|---|---|
| DCF | ¥2,150 | ¥1,680 | ¥1,505 | 低估 |
| DDM | ¥1,980 | ¥1,680 | ¥1,386 | 低估 |
| 相对估值 | ¥1,850 | ¥1,680 | ¥1,295 | 合理 |
在分析过程中自动检测以下异常信号:
应收账款异常
现金流背离
存货异常
毛利率异常
关联交易
股东减持
根据行业分类提供政策相关提示:
json--format table 用于终端快速查看--quiet 可关闭过程日志所有脚本输出JSON格式,便于后续处理:
{
"code": "600519",
"name": "贵州茅台",
"analysis_date": "2025-01-25",
"level": "standard",
"summary": {
"score": 85,
"conclusion": "低估",
"recommendation": "建议关注"
},
"financials": { ... },
"valuation": { ... },
"risks": [ ... ]
}
生成结构化的中文Markdown报告,参考 templates/analysis_report.md。
核心数据结构由 scripts/data_contract.py 约束。分析脚本会在运行前校验:
code/fetch_time/data_type/basic_infofinancial_data/financial_indicators/valuation/price/holder/dividendnews_items/news_sentimentperformance_data(含 forecast/express/audit/main_business)financial_data.balance_sheet 必须是数组financial_data.income_statement 必须是数组financial_data.cash_flow 必须是数组| 兼容语义 | 当前字段(推荐) | 兼容别名/来源 |
|---|---|---|
| PE(TTM) | valuation.latest.pe_ttm | valuation.latest.pe |
| PB | valuation.latest.pb | - |
| 净利润 | financial_data.income_statement[].净利润 | n_income |
| 经营现金流净额 | financial_data.cash_flow[].经营活动产生的现金流量净额 | n_cashflow_act |
| 资本开支现金 | financial_data.cash_flow[].购建固定资产、无形资产和其他长期资产支付的现金 | c_pay_acq_const_fiolta |
| ROE | financial_indicators[].净资产收益率 | roe |
| 资产负债率 | financial_indicators[].资产负债率 | debt_to_assets |
如果tushare数据获取失败,提示用户:
提示用户检查股票代码是否正确,提供可能的匹配建议。
对于新上市股票或财务数据不完整的情况,说明数据限制并基于可用数据进行分析。
--with-realtime / --with-event-window 时补充趋势与事件冲击的动态指标财务40% + 实时60%;实时缺失时退化为财务分Weekly Installs
59
Repository
First Seen
Feb 13, 2026
Security Audits
Installed on
gemini-cli58
github-copilot58
amp58
codex58
kimi-cli58
opencode58
前端代码审计工具 - 自动化检测可访问性、性能、响应式设计、主题化与反模式
57,700 周安装