Skip to content

glanYang/fundamental-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fundamental Analysis

股票基本面分析工具,用于从 Tushare 获取财务数据、解析公告/调研文档、生成基本面分析报告。

功能特性

  • 财务数据采集:从 Tushare 获取股票基础信息、财务指标、利润表、资产负债表、现金流等
  • 文档解析:支持 PDF 公告、HTML 网页、上证路演调研纪要的解析
  • 事实抽取:使用 LLM 从文档中抽取结构化基本面事实(facts)
  • 基本面分析:融合结构化数据和文档事实,生成基本面分析摘要
  • Token 估算:估算文档抽取的 token 消耗和费用

项目结构

fundamental-analysis/
├── app/
│   ├── core/
│   │   └── settings.py          # 配置管理(从环境变量读取)
│   └── services/
│       ├── diagnose/
│       │   ├── llm_client.py    # LLM 调用封装
│       │   └── market_data.py   # Tushare 数据服务
│       └── strategy/
│           ├── fundamental_context.py      # 基本面上下文采集
│           ├── extract_fundamentals_facts.py # 文档 facts 抽取
│           ├── test_fundamentals.py        # 基本面分析入口
│           ├── estimate_fundamental_tokens.py # Token 费用估算
│           └── pdf_fact_extractor.py       # PDF/HTML 文档解析
├── .env.example                 # 环境变量模板
├── .gitignore
├── README.md
└── requirements.txt

安装

  1. 克隆仓库:
git clone https://github.com/yourusername/fundamental-analysis.git
cd fundamental-analysis
  1. 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
# 或 .venv\Scripts\activate  # Windows
  1. 安装依赖:
pip install -r requirements.txt
  1. 配置环境变量:
cp .env.example .env
# 编辑 .env 文件,填入你的 API Key 和 Tushare Token

使用示例

1. 获取基本面数据

from app.services.diagnose.market_data import get_tushare_service

service = get_tushare_service()
data = service.get_fundamentals_data("601133", "2026-05-20")
print(data)

2. 抽取文档 facts

from app.services.strategy.extract_fundamentals_facts import FundamentalsFactExtractor

extractor = FundamentalsFactExtractor()
result = extractor.extract_recent_document_facts(
    stock_code="601133",
    date_str="2026-05-20",
    stock_name="柏诚股份"
)
print(result)

3. 生成基本面分析

from app.services.strategy.test_fundamentals import FundamentalsTest

test = FundamentalsTest()
result = test.analyze_with_document_facts(
    facts_file="path/to/facts.json",
    stock_code="601133",
    date_str="2026-05-20",
    stock_name="柏诚股份"
)
print(result)

4. 估算 Token 费用

python -m app.services.strategy.estimate_fundamental_tokens --stock 601133

环境变量说明

变量名 说明 默认值
OPENAI_API_KEY OpenAI/通义千问 API Key -
OPENAI_BASE_URL API 基础 URL https://dashscope.aliyuncs.com/compatible-mode/v1
OPENAI_MODEL 模型名称 qwen3.6-plus
TUSHARE_TOKEN Tushare API Token -
TUSHARE_DAILY_LIMIT 每分钟最大 API 调用次数 200
LOG_LEVEL 日志级别 INFO

依赖

  • Python 3.9+
  • tushare
  • openai
  • pandas
  • python-dotenv
  • PyMuPDF 或 pypdf(PDF 解析)

许可证

MIT License

About

股票基本面分析

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages