# VIMaster **Repository Path**: andy-yue/VIMaster ## Basic Information - **Project Name**: VIMaster - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-26 - **Last Updated**: 2026-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 价值投资分析系统 (VIMaster) ## 项目简介 基于 akshare 数据源和价值投资理论设计的多层次股票分析系统。系统采用**应用层、调度层、数据模型层**三层分层架构,通过 **9 个独立 Agent** 进行综合分析,为投资者提供结构化的投资决策支持。 ## 核心架构 ### 三层分层设计 ``` ┌─────────────────────────────────────────┐ │ 应用层 (Application Layer) │ │ CLI接口 / 报告生成 / 用户交互 │ └─────────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────┐ │ 调度层 (Scheduler Layer) │ │ WorkflowScheduler / AnalysisManager │ │ Agent编排 / 依赖管理 / 结果聚合 │ └─────────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────┐ │ 数据模型层 (Data Model Layer) │ │ DataModels / AkshareDataProvider │ │ 股票分析上下文 / 财务数据获取 │ └─────────────────────────────────────────┘ ``` ### 9 个核心 Agent | # | Agent 名称 | 功能描述 | |---|-----------|--------| | 1 | **股权思维 Agent** | 评估企业盈利能力和长期增长潜力 | | 2 | **护城河 Agent** | 分析企业竞争优势(品牌、成本、网络效应等) | | 3 | **财务分析 Agent** | 评估财务指标(ROE、毛利率、现金流、负债率) | | 4 | **估值 Agent** | 计算内在价值(DCF、PE、PB综合估值) | | 5 | **安全边际 Agent** | 分析价格与价值的差异,确保投资安全 | | 6 | **买入点 Agent** | 识别买入时机(悲观、困难、误解) | | 7 | **卖出纪律 Agent** | 识别卖出信号(基本面、高估、机会) | | 8 | **风险管理 Agent** | 评估投资风险(能力圈、杠杆、行业、公司) | | 9 | **心理纪律 Agent** | 生成投资决策和行为纪律建议 | ## 项目结构 ``` VIMaster/ ├── src/ │ ├── __init__.py │ ├── app.py # 应用层 - CLI接口 │ ├── agents/ │ │ ├── __init__.py │ │ ├── base_agent.py # Agent基类 │ │ └── value_investing_agents.py # 9个具体Agent实现 │ ├── models/ │ │ ├── __init__.py │ │ └── data_models.py # 数据模型定义 │ ├── data/ │ │ ├── __init__.py │ │ └── akshare_provider.py # akshare数据提供者 │ └── schedulers/ │ ├── __init__.py │ └── workflow_scheduler.py # 调度层 - 工作流引擎 ├── tests/ │ ├── __init__.py │ ├── conftest.py # pytest配置和fixtures │ ├── unit/ │ │ ├── __init__.py │ │ └── test_models_agents.py # 单元测试 │ └── integration/ │ ├── __init__.py │ └── test_workflow.py # 集成测试 ├── requirements.txt # 项目依赖 ├── pytest.ini # pytest配置 ├── run.py # 主程序入口 └── README.md # 本文件 ``` ## 数据流程 ``` ┌──────────────────┐ │ 输入股票代码 │ └────────┬─────────┘ ▼ ┌──────────────────────────────┐ │ 步骤1: 数据准备 │ │ AkshareDataProvider获取数据 │ └────────┬─────────────────────┘ ▼ ┌──────────────────────────────────────┐ │ 步骤2-3: 基础分析(可并行) │ │ - 股权思维Agent │ │ - 护城河Agent │ │ - 财务分析Agent │ └────────┬───────────────────────────┘ ▼ ┌──────────────────────────────────┐ │ 步骤4-7: 估值与交易分析 │ │ - 估值Agent │ │ - 安全边际Agent │ │ - 买入点Agent │ │ - 卖出点Agent │ └────────┬──────────────────────────┘ ▼ ┌──────────────────────────────────┐ │ 步骤8-9: 风险与决策 │ │ - 风险管理Agent │ │ - 心理纪律Agent │ └────────┬──────────────────────────┘ ▼ ┌──────────────────────────────────┐ │ 最终化: 生成综合报告 │ │ - 综合评分 (0-100) │ │ - 投资信号 │ │ - 分析摘要 │ └──────────────────────────────────┘ ``` ## 安装和运行 ### 1. 环境准备 ```bash # Python 3.8+ python --version # 创建虚拟环境(推荐) python -m venv .venv .venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt ``` ### 2. 使用方式 #### 交互模式(推荐) ```bash python run.py ``` 然后输入命令: ``` analyze 600519 # 分析单只股票(贵州茅台) portfolio 600519 000858 # 分析多只股票 buy 600519 000858 # 查找买入推荐 help # 显示帮助 exit # 退出 ``` #### 命令行模式 ```bash # 分析单只股票 python run.py analyze 600519 # 分析多只股票 python run.py portfolio 600519 000858 000001 # 查找买入推荐 python run.py buy 600519 000858 # 显示帮助 python run.py help ``` ### 3. 运行测试 ```bash # 运行全部测试 pytest # 运行单元测试 pytest tests/unit -v # 运行集成测试 pytest tests/integration -v # 查看测试覆盖率 pytest --cov=src tests/ # 运行特定测试 pytest tests/unit/test_models_agents.py::TestDataModels::test_financial_metrics_creation -v ``` ## 投资信号说明 系统的投资建议包含5个级别: | 信号 | 含义 | 推荐行动 | |------|------|---------| | 🟢🟢 **强烈买入** | 综合评分 ≥80,多项指标优秀 | 适量建仓,较高仓位 | | 🟢 **买入** | 综合评分 ≥70,安全边际充足 | 适量建仓,中等仓位 | | 🟡 **持有** | 综合评分 50-70,中等风险 | 观望,等待更好机会 | | 🔴 **卖出** | 综合评分 <50,或基本面恶化 | 分次卖出,降低风险 | | 🔴🔴 **强烈卖出** | 基本面严重恶化,严重高估 | 快速清仓,规避风险 | ## 关键数据模型 ### StockAnalysisContext(分析上下文) 贯穿整个分析流程的核心数据结构,包含: - `financial_metrics` - 财务指标 - `competitive_moat` - 竞争优势 - `valuation` - 估值分析结果 - `buy_signal` / `sell_signal` - 买卖信号 - `risk_assessment` - 风险评估 - `investment_decision` - 投资决策 - `overall_score` - 综合评分 (0-100) - `final_signal` - 最终投资信号 ### AnalysisReport(分析报告) 多股票分析的汇总报告,包含: - 总分析股票数 - 各信号级别的股票统计 - 详细的股票分析列表 ## 价值投资理论依据 本系统基于 `topic.txt` 中的价值投资哲学,包括: 1. **股权思维** - 将股票视为企业所有权 2. **安全边际** - 仅在价格显著低于内在价值时买入 3. **市场先生** - 利用市场错误报价 4. **能力圈** - 坚守自己深刻理解的行业 5. **护城河** - 寻找具有竞争优势的企业 6. **基本面分析** - 注重企业财务状况 7. **逆向思维** - 在市场极度悲观时买入 8. **风险管理** - 规避无知、避免高价、拒绝杠杆 9. **心理纪律** - 克服人性弱点,遵循投资纪律 ## 扩展性 系统设计支持以下扩展: 1. **新 Agent 增加** - 继承 BaseAgent,实现 analyze() 方法 2. **新数据源** - 扩展 AkshareDataProvider 3. **新估值模型** - 在 ValuationAgent 中增加模型 4. **更复杂的工作流** - 配置 WorkflowScheduler 的执行策略 5. **Web UI** - 在应用层添加 Flask/FastAPI 接口 ## 示例输出 ``` ================================================================================ 价值投资分析报告 - 600519 ================================================================================ 【财务指标】 当前价格: 1000.0 PE比率: 25.0 PB比率: 10.0 ROE: 0.2 毛利率: 0.6 【竞争优势(护城河)】 护城河强度: 9.0/10 品牌强度: 0.8/1.0 成本优势: 0.7/1.0 【估值分析】 内在价值: 1200.00 合理价格: 1200.00 安全边际: 20.00% 【投资决策】 最终建议: buy 信念强度: 0.70 止损价: 900.00 止盈价: 1200.00 【综合评估】 综合评分: 76.50/100 最终信号: buy ================================================================================ ``` ## 常见问题 ### Q: 系统的准确率是多少? A: 系统提供结构化的分析框架,结果仅供参考,投资决策需结合个人判断和风险承受能力。 ### Q: 如何获取最新的股票数据? A: 系统使用 akshare 库,自动从实时数据源获取,需要网络连接。 ### Q: 系统支持哪些股票代码格式? A: 支持标准的 6 位数字代码(如:600519、000858)。 ### Q: 可以自定义分析指标吗? A: 可以,通过继承 BaseAgent 创建自定义 Agent,或修改现有 Agent 的逻辑。 ## 许可证 MIT License ## 联系方式 如有问题或建议,欢迎提交 Issue 或 Pull Request。 --- **项目状态**: ✅ 完成核心功能 | 🔄 持续改进中 **最后更新**: 2026-01-20