diff --git a/value-investing/PERSONAL_WORK_PLAN.md b/value-investing/PERSONAL_WORK_PLAN.md new file mode 100644 index 000000000..858c6cc8f --- /dev/null +++ b/value-investing/PERSONAL_WORK_PLAN.md @@ -0,0 +1,241 @@ +# 📋 庞统 - 价值投资调研详细工作计划 + +## 🎯 调研任务概述 + +**主公指令**: +> "请庞统去收集价值投资领域可能调研方向和方案,形成调研报告提交到仓库当中" + +**截止时间**:2026年4月17日 +**提交位置**:Gitee仓库 `git@gitee.com:cfdaily/sanguo_quant_live.git` + +--- + +## 📅 详细时间安排 + +### **第1周:知识库建设(3月24日-27日)** + +#### **3月24日(周一) - 数据需求定义** +- **上午**: + - 详细阅读调研文档,理解所有要求 + - 确定数据需求清单 + - 联系赵云将军协调数据获取 +- **下午**: + - 建立数据目录结构 + - 准备数据收集脚本 + - 创建数据质量检查标准 + +#### **3月25日(周二) - 数据收集准备** +- **上午**: + - 配置数据获取环境 + - 测试聚宽/Akshare数据接口 + - 准备数据清洗工具 +- **下午**: + - 收集学术研究文献 + - 整理行业研究报告 + - 建立文献管理库 + +#### **3月26日(周三) - 数据质量评估** +- **上午**: + - 运行数据质量检查 + - 验证数据完整性 + - 评估数据准确性 +- **下午**: + - 生成数据质量报告 + - 修复数据问题 + - 建立数据更新机制 + +#### **3月27日(周四) - 知识库整理** +- **上午**: + - 整理价值投资理论框架 + - 收集经典价值投资案例 + - 建立知识库目录结构 +- **下午**: + - 编写知识库文档 + - 整理研究笔记 + - 提交第1周进展报告 + +### **第2周:基本面因子研究(3月28日-4月3日)** + +#### **3月28日(周五) - 估值因子研究** +- **上午**:P/E因子在A股的有效性分析 +- **下午**:P/B因子在不同行业的适用性研究 + +#### **3月29日(周六) - 质量因子研究** +- **上午**:ROE的持续性分析 +- **下午**:盈利质量指标研究 + +#### **3月30日(周日) - 成长因子研究** +- **上午**:营收增长的质量分析 +- **下午**:成长与估值的平衡研究 + +#### **3月31日(周一) - 因子有效性测试** +- **上午**:因子IC(信息系数)计算 +- **下午**:因子分组收益分析 + +#### **4月1日(周二) - 多因子组合测试** +- **上午**:多因子相关性分析 +- **下午**:因子组合优化 + +#### **4月2日(周三) - 因子研究报告撰写** +- **上午**:整理因子研究结果 +- **下午**:撰写因子研究报告 + +#### **4月3日(周四) - 第2周总结** +- **上午**:完善因子研究报告 +- **下午**:提交第2周进展报告 + +### **第3周:策略实现(4月4日-10日)** + +#### **4月4日(周五) - 低估值策略设计** +- **上午**:深度价值投资策略研究 +- **下午**:相对价值投资策略设计 + +#### **4月5日(周六) - 高股息策略设计** +- **上午**:股息率与股价关系研究 +- **下午**:股息稳定性分析 + +#### **4月6日(周日) - 质量+价值策略设计** +- **上午**:优质公司的低估机会识别 +- **下午**:护城河与估值关系研究 + +#### **4月7日(周一) - 策略逻辑实现** +- **上午**:策略代码实现 +- **下午**:策略参数优化 + +#### **4月8日(周二) - 回测框架搭建** +- **上午**:搭建回测环境 +- **下午**:回测数据准备 + +#### **4月9日(周三) - 策略回测验证** +- **上午**:策略历史回测 +- **下午**:风险收益分析 + +#### **4月10日(周四) - 第3周总结** +- **上午**:完善策略设计文档 +- **下午**:提交第3周进展报告 + +### **第4周:回测验证和报告撰写(4月11日-17日)** + +#### **4月11日(周五) - 回测结果分析** +- **上午**:回测结果深度分析 +- **下午**:策略优化调整 + +#### **4月12日(周六) - 市场环境测试** +- **上午**:不同市场周期表现测试 +- **下午**:行业轮动分析 + +#### **4月13日(周日) - 风险评估** +- **上午**:风险因子识别 +- **下午**:风险控制策略设计 + +#### **4月14日(周一) - 报告框架设计** +- **上午**:调研报告大纲设计 +- **下午**:数据可视化准备 + +#### **4月15日(周二) - 报告内容撰写** +- **上午**:报告正文撰写 +- **下午**:图表和附录准备 + +#### **4月16日(周三) - 报告完善和审核** +- **上午**:报告内容完善 +- **下午**:内部审核和修改 + +#### **4月17日(周四) - 最终提交** +- **上午**:最终版本定稿 +- **下午**:提交到Gitee仓库 + +--- + +## 🔧 所需资源清单 + +### **数据资源**: +1. **财务数据**:2010年至今的所有A股上市公司财务数据 +2. **估值数据**:各类估值指标历史数据 +3. **市场数据**:价格、成交量、市值数据 +4. **行业数据**:申万行业分类及表现数据 + +### **技术资源**: +1. **计算环境**:Python 3.8+,足够的内存和存储 +2. **软件工具**:Pandas, NumPy, Matplotlib, Jupyter +3. **回测框架**:使用sanguo回测引擎或聚宽回测框架 + +### **协作需求**: +1. **赵云将军**:提供数据支持 +2. **诸葛亮总军师**:总体协调和指导 +3. **其他将军**:提供专业建议和交叉验证 + +--- + +## 📊 每日汇报机制 + +### **每日汇报内容**: +1. **今日完成**:具体完成的工作内容 +2. **明日计划**:计划完成的工作内容 +3. **遇到的问题**:遇到的困难和问题 +4. **需要的支持**:需要什么帮助 + +### **汇报时间**: +- **每天下午5点前**:提交当日进展 +- **每周一上午9点**:提交详细周报 + +### **汇报格式**: +``` +【庞统-价值投资调研-YYYY-MM-DD】 +1. 今日完成: + - 任务1 + - 任务2 +2. 明日计划: + - 计划1 + - 计划2 +3. 遇到的问题: + - 问题1 + - 问题2 +4. 需要的支持: + - 支持1 + - 支持2 +``` + +--- + +## 🚨 风险管理 + +### **已识别风险**: +1. **数据风险**:数据质量或完整性不足 +2. **时间风险**:调研时间紧张 +3. **技术风险**:回测框架或工具问题 +4. **市场风险**:A股市场特性变化 + +### **应对措施**: +1. **数据风险**:提前验证数据,建立备用数据源 +2. **时间风险**:优先完成核心研究,灵活调整计划 +3. **技术风险**:提前测试技术工具,准备替代方案 +4. **市场风险**:多维度分析,考虑不同市场环境 + +--- + +## 🎯 最终交付物 + +### **4月17日提交的完整调研报告包含**: +1. 📋 执行摘要 +2. 📊 研究方法和数据 +3. 🔬 基本面因子研究结果 +4. 🎯 价值投资策略设计 +5. 📈 回测验证结果 +6. ⚠️ 风险评估和建议 +7. 🚀 实施建议和下一步计划 + +--- + +## 🤝 立即行动 + +**第一步**:立即开始数据收集准备工作 +**第二步**:联系赵云将军协调数据支持 +**第三步**:建立每日汇报机制 + +**庞统已准备就绪,立即开始执行调研任务!** 🐉 + +**开始时间**:2026年3月21日 +**完成时间**:2026年4月17日 + +**庞统 启** +**2026年3月21日** \ No newline at end of file diff --git a/value-investing/dynamic_stock_selection.py b/value-investing/dynamic_stock_selection.py new file mode 100644 index 000000000..dec3247f6 --- /dev/null +++ b/value-investing/dynamic_stock_selection.py @@ -0,0 +1,302 @@ +#!/usr/bin/env python3 +""" +动态选股算法 - 价值投资策略 +截止时间:18:00 +""" + +import numpy as np +import pandas as pd +from datetime import datetime, timedelta +import warnings +warnings.filterwarnings('ignore') + +class DynamicStockSelection: + """动态选股算法""" + + def __init__(self): + self.start_time = datetime.now() + print(f"🚀 动态选股算法启动!") + print(f"🕐 启动时间: {self.start_time.strftime('%H:%M:%S')}") + print(f"🎯 目标时间: 18:00") + + def load_data(self): + """加载数据""" + print(f"📊 加载财务数据...") + + # 模拟3000只股票数据 + np.random.seed(42) + n_stocks = 3000 + + data = pd.DataFrame({ + 'stock_code': [f'{i:06d}.XSHE' for i in range(1, n_stocks + 1)], + 'industry': np.random.choice(['金融', '科技', '消费', '医药', '工业', '能源', '材料', '公用事业'], n_stocks), + 'market_cap': np.random.uniform(50, 1000, n_stocks), # 亿 + 'pe_ratio': np.random.uniform(5, 50, n_stocks), + 'pb_ratio': np.random.uniform(0.5, 5, n_stocks), + 'ps_ratio': np.random.uniform(0.5, 10, n_stocks), + 'dividend_yield': np.random.uniform(0, 0.05, n_stocks), + 'roe': np.random.uniform(0.05, 0.3, n_stocks), + 'gross_margin': np.random.uniform(0.2, 0.6, n_stocks), + 'net_margin': np.random.uniform(0.05, 0.25, n_stocks), + 'debt_to_equity': np.random.uniform(0.1, 1.5, n_stocks), + 'current_ratio': np.random.uniform(1, 3, n_stocks), + 'revenue_growth': np.random.uniform(-0.2, 0.5, n_stocks), + 'profit_growth': np.random.uniform(-0.3, 0.6, n_stocks), + 'fcf_yield': np.random.uniform(0, 0.1, n_stocks), + 'volatility': np.random.uniform(0.2, 0.6, n_stocks), + 'liquidity': np.random.uniform(1e5, 1e7, n_stocks) + }) + + print(f"✅ 加载 {n_stocks} 只股票数据完成") + return data + + def calculate_factors(self, data): + """计算因子得分""" + print(f"🔢 计算因子得分...") + + # 1. 估值因子得分(越低估值,得分越高) + data['value_score'] = ( + (1 - data['pe_ratio'].rank(pct=True)) * 0.4 + + (1 - data['pb_ratio'].rank(pct=True)) * 0.3 + + (1 - data['ps_ratio'].rank(pct=True)) * 0.2 + + data['dividend_yield'].rank(pct=True) * 0.1 + ) + + # 2. 质量因子得分(越高质量,得分越高) + data['quality_score'] = ( + data['roe'].rank(pct=True) * 0.3 + + data['gross_margin'].rank(pct=True) * 0.2 + + data['net_margin'].rank(pct=True) * 0.2 + + (1 - data['debt_to_equity'].rank(pct=True)) * 0.15 + + data['current_ratio'].rank(pct=True) * 0.15 + ) + + # 3. 成长因子得分(越高成长,得分越高) + data['growth_score'] = ( + data['revenue_growth'].rank(pct=True) * 0.5 + + data['profit_growth'].rank(pct=True) * 0.5 + ) + + # 4. 风险因子得分(越低风险,得分越高) + data['risk_score'] = ( + (1 - data['volatility'].rank(pct=True)) * 0.6 + + data['liquidity'].rank(pct=True) * 0.4 + ) + + # 5. 综合得分 + data['composite_score'] = ( + data['value_score'] * 0.4 + # 估值权重40% + data['quality_score'] * 0.3 + # 质量权重30% + data['growth_score'] * 0.2 + # 成长权重20% + data['risk_score'] * 0.1 # 风险权重10% + ) + + print(f"✅ 因子计算完成") + return data + + def apply_filters(self, data): + """应用筛选条件""" + print(f"🔍 应用筛选条件...") + + filtered = data.copy() + + # 1. 估值筛选(PE < 30, PB < 3) + filtered = filtered[ + (filtered['pe_ratio'] < 30) & + (filtered['pb_ratio'] < 3) + ] + + # 2. 质量筛选(ROE > 10%, 毛利率 > 20%) + filtered = filtered[ + (filtered['roe'] > 0.1) & + (filtered['gross_margin'] > 0.2) + ] + + # 3. 财务健康筛选(负债率 < 100%, 流动比率 > 1) + filtered = filtered[ + (filtered['debt_to_equity'] < 1) & + (filtered['current_ratio'] > 1) + ] + + # 4. 流动性筛选(流动性 > 中位数) + liquidity_median = filtered['liquidity'].median() + filtered = filtered[filtered['liquidity'] > liquidity_median] + + print(f"✅ 筛选后剩余 {len(filtered)} 只股票") + return filtered + + def portfolio_construction(self, data, portfolio_size=20): + """构建投资组合""" + print(f"🏗️ 构建投资组合...") + + # 按行业分散 + industries = data['industry'].unique() + portfolio = pd.DataFrame() + + for industry in industries: + industry_stocks = data[data['industry'] == industry] + if len(industry_stocks) > 0: + # 每个行业选择前N名 + n_per_industry = max(1, portfolio_size // len(industries)) + top_stocks = industry_stocks.nlargest(n_per_industry, 'composite_score') + portfolio = pd.concat([portfolio, top_stocks]) + + # 如果组合数量不足,补充剩余名额 + if len(portfolio) < portfolio_size: + remaining = portfolio_size - len(portfolio) + remaining_stocks = data[~data['stock_code'].isin(portfolio['stock_code'])] + top_remaining = remaining_stocks.nlargest(remaining, 'composite_score') + portfolio = pd.concat([portfolio, top_remaining]) + + # 按综合得分排序 + portfolio = portfolio.nlargest(portfolio_size, 'composite_score') + + # 计算权重(基于综合得分) + portfolio['weight'] = portfolio['composite_score'] / portfolio['composite_score'].sum() + + print(f"✅ 构建 {len(portfolio)} 只股票的投资组合") + return portfolio + + def strategy_variants(self, data): + """生成策略变体""" + print(f"🔄 生成策略变体...") + + strategies = {} + + # 1. 纯价值策略(只看估值) + value_stocks = data.nlargest(20, 'value_score') + strategies['pure_value'] = value_stocks + + # 2. 质量价值策略(估值+质量) + data['value_quality'] = data['value_score'] * 0.6 + data['quality_score'] * 0.4 + value_quality_stocks = data.nlargest(20, 'value_quality') + strategies['value_quality'] = value_quality_stocks + + # 3. 成长价值策略(估值+成长) + data['value_growth'] = data['value_score'] * 0.7 + data['growth_score'] * 0.3 + value_growth_stocks = data.nlargest(20, 'value_growth') + strategies['value_growth'] = value_growth_stocks + + # 4. 高股息策略 + high_dividend_stocks = data.nlargest(20, 'dividend_yield') + strategies['high_dividend'] = high_dividend_stocks + + # 5. 低波动策略 + low_vol_stocks = data.nlargest(20, 'risk_score') + strategies['low_volatility'] = low_vol_stocks + + print(f"✅ 生成 {len(strategies)} 个策略变体") + return strategies + + def run(self): + """运行选股算法""" + print(f"\n{'='*60}") + print("🚀 动态选股算法开始运行") + print(f"{'='*60}") + + # 1. 加载数据 + data = self.load_data() + + # 2. 计算因子 + data = self.calculate_factors(data) + + # 3. 应用筛选 + filtered_data = self.apply_filters(data) + + # 4. 构建主投资组合 + main_portfolio = self.portfolio_construction(filtered_data, portfolio_size=20) + + # 5. 生成策略变体 + strategy_variants = self.strategy_variants(filtered_data) + + # 6. 输出结果 + self.output_results(main_portfolio, strategy_variants, data) + + return main_portfolio, strategy_variants + + def output_results(self, portfolio, strategies, full_data): + """输出结果""" + print(f"\n{'='*60}") + print("📊 选股结果汇总") + print(f"{'='*60}") + + # 主投资组合 + print(f"\n🏆 主投资组合(20只股票):") + print(f"{'='*40}") + portfolio_display = portfolio[['stock_code', 'industry', 'market_cap', 'pe_ratio', 'pb_ratio', 'roe', 'composite_score', 'weight']].copy() + portfolio_display['weight'] = portfolio_display['weight'].apply(lambda x: f"{x*100:.1f}%") + portfolio_display['roe'] = portfolio_display['roe'].apply(lambda x: f"{x*100:.1f}%") + print(portfolio_display.to_string(index=False)) + + # 组合特征 + print(f"\n📈 组合特征:") + print(f"{'='*40}") + print(f"平均PE: {portfolio['pe_ratio'].mean():.1f}") + print(f"平均PB: {portfolio['pb_ratio'].mean():.2f}") + print(f"平均ROE: {portfolio['roe'].mean()*100:.1f}%") + print(f"平均股息率: {portfolio['dividend_yield'].mean()*100:.2f}%") + print(f"平均市值: {portfolio['market_cap'].mean():.1f}亿") + + # 行业分布 + print(f"\n🏭 行业分布:") + print(f"{'='*40}") + industry_dist = portfolio['industry'].value_counts() + for industry, count in industry_dist.items(): + print(f"{industry}: {count}只 ({count/len(portfolio)*100:.1f}%)") + + # 策略变体表现 + print(f"\n🔄 策略变体对比:") + print(f"{'='*40}") + for strategy_name, strategy_stocks in strategies.items(): + avg_pe = strategy_stocks['pe_ratio'].mean() + avg_pb = strategy_stocks['pb_ratio'].mean() + avg_roe = strategy_stocks['roe'].mean() + print(f"{strategy_name}: PE={avg_pe:.1f}, PB={avg_pb:.2f}, ROE={avg_roe*100:.1f}%") + + # 时间统计 + elapsed = (datetime.now() - self.start_time).total_seconds() + print(f"\n⏰ 算法运行时间: {elapsed:.2f}秒") + print(f"🕐 完成时间: {datetime.now().strftime('%H:%M:%S')}") + + # 保存结果 + self.save_results(portfolio, strategies) + + def save_results(self, portfolio, strategies): + """保存结果""" + import os + + # 创建输出目录 + output_dir = "selection_results" + os.makedirs(output_dir, exist_ok=True) + + # 保存主投资组合 + portfolio.to_csv(f"{output_dir}/main_portfolio.csv", index=False) + + # 保存策略变体 + for strategy_name, strategy_stocks in strategies.items(): + strategy_stocks.to_csv(f"{output_dir}/{strategy_name}_portfolio.csv", index=False) + + # 保存汇总报告 + with open(f"{output_dir}/selection_report.txt", 'w') as f: + f.write("="*60 + "\n") + f.write("动态选股算法结果报告\n") + f.write("="*60 + "\n\n") + f.write(f"生成时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n") + f.write(f"股票数量: {len(portfolio)}\n\n") + + f.write("主投资组合:\n") + f.write("-"*40 + "\n") + for _, row in portfolio.iterrows(): + f.write(f"{row['stock_code']} | {row['industry']} | PE:{row['pe_ratio']:.1f} | PB:{row['pb_ratio']:.2f} | ROE:{row['roe']*100:.1f}% | 权重:{row['weight']*100:.1f}%\n") + + print(f"\n💾 结果已保存到 {output_dir}/ 目录") + +def main(): + """主函数""" + selector = DynamicStockSelection() + portfolio, strategies = selector.run() + + return portfolio, strategies + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/value-investing/knowledge-base/VALUE_INVESTING_KNOWLEDGE_BASE.md b/value-investing/knowledge-base/VALUE_INVESTING_KNOWLEDGE_BASE.md new file mode 100644 index 000000000..575a005ef --- /dev/null +++ b/value-investing/knowledge-base/VALUE_INVESTING_KNOWLEDGE_BASE.md @@ -0,0 +1,203 @@ +# 📚 价值投资知识库 + +## 🎯 价值投资核心理念 + +### **基本定义** +价值投资是一种投资哲学,强调通过基本面分析寻找市场价格低于内在价值的股票,并长期持有以获得价值回归的收益。 + +### **核心原则** +1. **安全边际原则**:以显著低于内在价值的价格买入 +2. **市场先生原则**:市场是情绪的,不是理性的 +3. **能力圈原则**:只投资自己理解的领域 +4. **长期持有原则**:价值回归需要时间 + +### **主要流派** +1. **格雷厄姆式价值投资**:强调安全边际和定量分析 +2. **巴菲特式价值投资**:强调护城河和定性分析 +3. **施洛斯式价值投资**:强调分散投资和统计套利 +4. **费雪式成长价值投资**:强调成长性和质量 + +--- + +## 📊 价值投资关键指标 + +### **估值指标** +1. **市盈率(P/E)** + - 公式:股价 / 每股收益 + - 应用:衡量盈利能力的估值水平 + - 注意事项:需考虑盈利质量 + +2. **市净率(P/B)** + - 公式:股价 / 每股净资产 + - 应用:衡量资产价值的估值水平 + - 注意事项:需考虑资产质量 + +3. **市销率(P/S)** + - 公式:市值 / 营业收入 + - 应用:衡量营收能力的估值水平 + - 注意事项:适用于成长股 + +4. **EV/EBITDA** + - 公式:企业价值 / 息税折旧摊销前利润 + - 应用:衡量企业整体价值 + - 注意事项:需考虑资本结构 + +### **质量指标** +1. **净资产收益率(ROE)** + - 公式:净利润 / 净资产 + - 应用:衡量股东回报率 + - 注意事项:需分析ROE构成 + +2. **毛利率** + - 公式:(营业收入 - 营业成本)/ 营业收入 + - 应用:衡量产品或服务的盈利能力 + - 注意事项:需考虑行业特性 + +3. **自由现金流** + - 公式:经营现金流 - 资本支出 + - 应用:衡量企业真实盈利能力 + - 注意事项:需考虑周期性 + +### **财务健康指标** +1. **资产负债率** + - 公式:总负债 / 总资产 + - 应用:衡量财务杠杆和风险 + - 注意事项:需考虑行业平均水平 + +2. **流动比率** + - 公式:流动资产 / 流动负债 + - 应用:衡量短期偿债能力 + - 注意事项:需考虑资产质量 + +--- + +## 🔬 A股市场特性 + +### **市场结构特点** +1. **散户主导**:个人投资者占比高,情绪波动大 +2. **政策影响强**:政策对市场影响显著 +3. **信息不对称**:信息传递效率相对较低 +4. **波动性高**:市场波动幅度较大 + +### **行业特点** +1. **周期性行业**:煤炭、钢铁、有色等 +2. **成长性行业**:科技、消费、医疗等 +3. **防御性行业**:公用事业、必需消费品等 +4. **金融行业**:银行、保险、证券等 + +### **估值特点** +1. **整体估值偏高**:相比成熟市场 +2. **成长股溢价**:成长性公司估值较高 +3. **小盘股溢价**:小市值公司估值较高 +4. **政策敏感**:政策变化影响估值水平 + +--- + +## 📈 价值投资策略类型 + +### **低估值策略** +1. **深度价值策略**:寻找极度低估的公司 +2. **相对价值策略**:寻找相对低估的公司 +3. **估值修复策略**:预期估值回归的策略 + +### **高股息策略** +1. **稳定股息策略**:选择股息稳定的公司 +2. **股息增长策略**:选择股息持续增长的公司 +3. **股息再投资策略**:股息再投资获得复利 + +### **质量+价值策略** +1. **优质低估策略**:寻找优质但被低估的公司 +2. **护城河策略**:寻找有护城河的优质公司 +3. **行业龙头策略**:寻找行业龙头但被低估的公司 + +### **特殊情况策略** +1. **困境反转策略**:寻找暂时困境但能反转的公司 +2. **分拆上市策略**:关注公司分拆上市的机会 +3. **并购重组策略**:关注并购重组带来的机会 + +--- + +## 📚 重要参考文献 + +### **经典著作** +1. **《聪明的投资者》** - 本杰明·格雷厄姆 +2. **《证券分析》** - 本杰明·格雷厄姆 & 戴维·多德 +3. **《巴菲特致股东的信》** - 沃伦·巴菲特 +4. **《穷查理宝典》** - 查理·芒格 +5. **《投资最重要的事》** - 霍华德·马克斯 + +### **学术研究** +1. **Fama-French三因子模型** +2. **价值因子溢价研究** +3. **质量因子研究** +4. **中国A股市场有效性研究** + +### **行业报告** +1. **券商价值投资研究报告** +2. **基金公司价值策略报告** +3. **学术机构市场研究** + +--- + +## 🔍 数据来源 + +### **财务数据** +1. **聚宽(jqdatasdk)**:全面的A股财务数据 +2. **Akshare**:免费的A股数据接口 +3. **Tushare**:专业的金融数据平台 +4. **Wind**:权威的金融数据终端 + +### **估值数据** +1. **市盈率历史数据** +2. **市净率历史数据** +3. **股息率历史数据** +4. **行业估值比较数据** + +### **研究数据** +1. **学术论文数据库** +2. **行业研究报告库** +3. **历史案例数据库** + +--- + +## 📝 研究笔记 + +### **待研究问题** +1. 价值因子在A股是否有效? +2. 哪些价值指标在A股最有效? +3. 价值投资在不同市场周期的表现? +4. 如何结合质量因子提升价值策略? + +### **假设验证** +1. 低估值股票长期跑赢高估值股票 +2. 高质量的低估值股票表现更好 +3. 价值因子在熊市中表现更好 +4. 小盘价值股表现优于大盘价值股 + +--- + +## 🚀 下一步行动 + +### **立即行动** +1. 收集2010年至今的A股财务数据 +2. 整理价值投资相关文献 +3. 建立数据质量检查流程 +4. 开始因子有效性测试 + +### **短期目标** +1. 完成估值因子有效性分析 +2. 完成质量因子有效性分析 +3. 设计初步的价值投资策略 +4. 进行初步的回测验证 + +### **长期目标** +1. 建立完整的价值投资研究框架 +2. 开发有效的价值投资策略 +3. 形成可操作的投资建议 +4. 提交完整的调研报告 + +--- + +**知识库建立时间**:2026年3月21日 +**最后更新**:2026年3月21日 +**维护者**:庞统 \ No newline at end of file diff --git a/value-investing/realtime_dashboard.html b/value-investing/realtime_dashboard.html new file mode 100644 index 000000000..07f6a9ff9 --- /dev/null +++ b/value-investing/realtime_dashboard.html @@ -0,0 +1,557 @@ + + + + + + 📊 实时价值因子监测面板 + + + + +
+ +
+

📊 实时价值因子监测面板

+

超级财务智能体 | 3000+股票实时监控 | 5分钟更新频率

+
+ + +
+
+
17:50:00
+
最后更新
+
+
+
3,000
+
监控股票
+
+
+
16
+
监控因子
+
+
+
5分钟
+
更新频率
+
+
+ + +
+ +
+

🏆 价值投资Top 10

+
+
+ + +
+

📊 因子分布

+
+
+ + +
+

💰 估值因子热力图

+
+
+ + +
+

📈 质量因子趋势

+
+
+
+ + +
+

⚙️ 控制面板

+
+ + +
+ +
+ + +
500亿
+
+ + +
+ + +
+

📋 实时数据表 (Top 20)

+ + + + + + + + + + + + + + + +
股票代码行业市值(亿)PEPBROE综合得分
+
+ + + +
+ + + + \ No newline at end of file diff --git a/value-investing/realtime_value_dashboard.py b/value-investing/realtime_value_dashboard.py new file mode 100644 index 000000000..3449cd8cf --- /dev/null +++ b/value-investing/realtime_value_dashboard.py @@ -0,0 +1,391 @@ +#!/usr/bin/env python3 +""" +实时价值因子监测面板 +更新时间:每5分钟 +""" + +import dash +from dash import dcc, html, Input, Output +import plotly.graph_objs as go +import pandas as pd +import numpy as np +from datetime import datetime, timedelta +import threading +import time + +class RealTimeValueDashboard: + """实时价值因子监测面板""" + + def __init__(self): + self.app = dash.Dash(__name__) + self.data = None + self.update_interval = 300 # 5分钟更新 + self.last_update = datetime.now() + + # 初始化布局 + self.setup_layout() + + def setup_layout(self): + """设置仪表板布局""" + self.app.layout = html.Div([ + # 标题栏 + html.Div([ + html.H1("📊 实时价值因子监测面板", style={'textAlign': 'center', 'color': '#2E86C1'}), + html.Div([ + html.Span("🕐 最后更新: ", style={'fontWeight': 'bold'}), + html.Span(id='last-update-time'), + html.Span(" | ", style={'margin': '0 10px'}), + html.Span("📈 监控股票数: ", style={'fontWeight': 'bold'}), + html.Span(id='stock-count'), + html.Span(" | ", style={'margin': '0 10px'}), + html.Span("⚡ 更新频率: ", style={'fontWeight': 'bold'}), + html.Span("5分钟") + ], style={'textAlign': 'center', 'marginBottom': '20px'}) + ]), + + # 第一行:关键指标 + html.Div([ + html.Div([ + html.H3("🏆 价值投资Top 10", style={'textAlign': 'center'}), + dcc.Graph(id='top-10-chart', style={'height': '400px'}) + ], className='six columns'), + + html.Div([ + html.H3("📊 因子分布", style={'textAlign': 'center'}), + dcc.Graph(id='factor-distribution', style={'height': '400px'}) + ], className='six columns') + ], className='row'), + + # 第二行:详细分析 + html.Div([ + html.Div([ + html.H3("💰 估值因子热力图", style={'textAlign': 'center'}), + dcc.Graph(id='valuation-heatmap', style={'height': '400px'}) + ], className='six columns'), + + html.Div([ + html.H3("📈 质量因子趋势", style={'textAlign': 'center'}), + dcc.Graph(id='quality-trend', style={'height': '400px'}) + ], className='six columns') + ], className='row'), + + # 第三行:控制面板 + html.Div([ + html.Div([ + html.H3("⚙️ 控制面板", style={'textAlign': 'center'}), + html.Div([ + html.Label("选择行业:"), + dcc.Dropdown( + id='industry-selector', + options=[ + {'label': '全部行业', 'value': 'all'}, + {'label': '金融', 'value': 'financial'}, + {'label': '科技', 'value': 'tech'}, + {'label': '消费', 'value': 'consumer'}, + {'label': '医药', 'value': 'medical'}, + {'label': '工业', 'value': 'industrial'} + ], + value='all', + style={'marginBottom': '20px'} + ), + + html.Label("选择市值范围:"), + dcc.RangeSlider( + id='market-cap-slider', + min=0, + max=1000, + step=50, + value=[100, 500], + marks={i: f'{i}亿' for i in range(0, 1001, 100)}, + style={'marginBottom': '20px'} + ), + + html.Button('🔄 立即更新数据', id='update-button', n_clicks=0, + style={'width': '100%', 'padding': '10px', 'backgroundColor': '#2E86C1', 'color': 'white'}) + ]) + ], className='six columns'), + + html.Div([ + html.H3("📋 实时数据表", style={'textAlign': 'center'}), + html.Div(id='real-time-table', style={'height': '400px', 'overflowY': 'scroll'}) + ], className='six columns') + ], className='row'), + + # 定时器 + dcc.Interval( + id='interval-component', + interval=5*60*1000, # 5分钟 + n_intervals=0 + ) + ]) + + # 设置回调 + self.setup_callbacks() + + def setup_callbacks(self): + """设置回调函数""" + + @self.app.callback( + [Output('last-update-time', 'children'), + Output('stock-count', 'children'), + Output('top-10-chart', 'figure'), + Output('factor-distribution', 'figure'), + Output('valuation-heatmap', 'figure'), + Output('quality-trend', 'figure'), + Output('real-time-table', 'children')], + [Input('interval-component', 'n_intervals'), + Input('update-button', 'n_clicks'), + Input('industry-selector', 'value'), + Input('market-cap-slider', 'value')] + ) + def update_dashboard(n_intervals, n_clicks, industry, market_cap_range): + """更新仪表板""" + # 更新数据 + self.update_data() + + # 过滤数据 + filtered_data = self.filter_data(industry, market_cap_range) + + # 更新时间 + current_time = datetime.now().strftime('%H:%M:%S') + + # 1. Top 10图表 + top_10_fig = self.create_top_10_chart(filtered_data) + + # 2. 因子分布图 + factor_fig = self.create_factor_distribution(filtered_data) + + # 3. 估值热力图 + heatmap_fig = self.create_valuation_heatmap(filtered_data) + + # 4. 质量趋势图 + trend_fig = self.create_quality_trend(filtered_data) + + # 5. 实时数据表 + table = self.create_real_time_table(filtered_data) + + return [ + current_time, + len(filtered_data), + top_10_fig, + factor_fig, + heatmap_fig, + trend_fig, + table + ] + + def update_data(self): + """更新数据""" + # 这里应该从数据源获取实时数据 + # 暂时使用模拟数据 + np.random.seed(int(time.time())) + n_stocks = 3000 + + self.data = pd.DataFrame({ + 'stock_code': [f'{i:06d}.XSHE' for i in range(1, n_stocks + 1)], + 'industry': np.random.choice(['financial', 'tech', 'consumer', 'medical', 'industrial'], n_stocks), + 'market_cap': np.random.uniform(50, 1000, n_stocks), + 'pe_ratio': np.random.uniform(5, 50, n_stocks), + 'pb_ratio': np.random.uniform(0.5, 5, n_stocks), + 'roe': np.random.uniform(0.05, 0.3, n_stocks), + 'gross_margin': np.random.uniform(0.2, 0.6, n_stocks), + 'value_score': np.random.uniform(0, 1, n_stocks), + 'quality_score': np.random.uniform(0, 1, n_stocks), + 'composite_score': np.random.uniform(0, 1, n_stocks) + }) + + self.last_update = datetime.now() + + def filter_data(self, industry, market_cap_range): + """过滤数据""" + if self.data is None: + return pd.DataFrame() + + filtered = self.data.copy() + + # 按行业过滤 + if industry != 'all': + filtered = filtered[filtered['industry'] == industry] + + # 按市值过滤 + filtered = filtered[(filtered['market_cap'] >= market_cap_range[0]) & + (filtered['market_cap'] <= market_cap_range[1])] + + return filtered + + def create_top_10_chart(self, data): + """创建Top 10图表""" + if len(data) == 0: + return {} + + top_10 = data.nlargest(10, 'composite_score') + + fig = go.Figure(data=[ + go.Bar( + x=top_10['stock_code'], + y=top_10['composite_score'], + text=top_10['composite_score'].round(3), + textposition='auto', + marker_color='#2E86C1' + ) + ]) + + fig.update_layout( + title='价值投资综合得分Top 10', + xaxis_title='股票代码', + yaxis_title='综合得分', + yaxis_range=[0, 1] + ) + + return fig + + def create_factor_distribution(self, data): + """创建因子分布图""" + if len(data) == 0: + return {} + + fig = go.Figure() + + # 估值因子分布 + fig.add_trace(go.Histogram( + x=data['pe_ratio'], + name='市盈率分布', + opacity=0.7, + marker_color='#E74C3C' + )) + + # 质量因子分布 + fig.add_trace(go.Histogram( + x=data['roe'], + name='ROE分布', + opacity=0.7, + marker_color='#2ECC71' + )) + + fig.update_layout( + title='因子分布图', + xaxis_title='因子值', + yaxis_title='频数', + barmode='overlay' + ) + + return fig + + def create_valuation_heatmap(self, data): + """创建估值热力图""" + if len(data) == 0: + return {} + + # 创建热力图数据 + heatmap_data = data.pivot_table( + values='composite_score', + index=pd.cut(data['pe_ratio'], bins=10), + columns=pd.cut(data['pb_ratio'], bins=10), + aggfunc='mean' + ) + + fig = go.Figure(data=go.Heatmap( + z=heatmap_data.values, + x=[f'{col.left:.1f}-{col.right:.1f}' for col in heatmap_data.columns], + y=[f'{idx.left:.1f}-{idx.right:.1f}' for idx in heatmap_data.index], + colorscale='Viridis' + )) + + fig.update_layout( + title='估值因子热力图 (PE vs PB)', + xaxis_title='市净率(PB)区间', + yaxis_title='市盈率(PE)区间' + ) + + return fig + + def create_quality_trend(self, data): + """创建质量趋势图""" + if len(data) == 0: + return {} + + # 按行业分组计算平均质量得分 + industry_quality = data.groupby('industry').agg({ + 'roe': 'mean', + 'gross_margin': 'mean', + 'quality_score': 'mean' + }).reset_index() + + fig = go.Figure() + + fig.add_trace(go.Scatter( + x=industry_quality['industry'], + y=industry_quality['roe'], + mode='lines+markers', + name='ROE', + line=dict(color='#2ECC71', width=3) + )) + + fig.add_trace(go.Scatter( + x=industry_quality['industry'], + y=industry_quality['gross_margin'], + mode='lines+markers', + name='毛利率', + line=dict(color='#E74C3C', width=3) + )) + + fig.update_layout( + title='各行业质量因子趋势', + xaxis_title='行业', + yaxis_title='因子值', + yaxis_range=[0, 1] + ) + + return fig + + def create_real_time_table(self, data): + """创建实时数据表""" + if len(data) == 0: + return "暂无数据" + + top_20 = data.nlargest(20, 'composite_score') + + table = html.Table([ + html.Thead( + html.Tr([ + html.Th('股票代码'), + html.Th('行业'), + html.Th('市值(亿)'), + html.Th('PE'), + html.Th('PB'), + html.Th('ROE'), + html.Th('综合得分') + ]) + ), + html.Tbody([ + html.Tr([ + html.Td(row['stock_code']), + html.Td(row['industry']), + html.Td(f"{row['market_cap']:.1f}"), + html.Td(f"{row['pe_ratio']:.1f}"), + html.Td(f"{row['pb_ratio']:.2f}"), + html.Td(f"{row['roe']:.2%}"), + html.Td(f"{row['composite_score']:.3f}") + ]) for _, row in top_20.iterrows() + ]) + ], style={'width': '100%', 'borderCollapse': 'collapse'}) + + return table + + def run(self, debug=False): + """运行仪表板""" + print(f"🚀 启动实时价值因子监测面板...") + print(f"📊 监控股票数: 3000+") + print(f"⚡ 更新频率: 每5分钟") + print(f"🌐 访问地址: http://127.0.0.1:8050") + print(f"🕐 启动时间: {datetime.now().strftime('%H:%M:%S')}") + + self.app.run_server(debug=debug) + +def main(): + """主函数""" + dashboard = RealTimeValueDashboard() + dashboard.run(debug=False) + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/value-investing/selection_results/high_dividend_portfolio.csv b/value-investing/selection_results/high_dividend_portfolio.csv new file mode 100644 index 000000000..b1ba9d1d6 --- /dev/null +++ b/value-investing/selection_results/high_dividend_portfolio.csv @@ -0,0 +1,21 @@ +stock_code,industry,market_cap,pe_ratio,pb_ratio,ps_ratio,dividend_yield,roe,gross_margin,net_margin,debt_to_equity,current_ratio,revenue_growth,profit_growth,fcf_yield,volatility,liquidity,value_score,quality_score,growth_score,risk_score,composite_score,value_quality,value_growth +000972.XSHE,材料,965.827404807238,19.077538888589903,1.768715979537913,2.547078836462959,0.049668042752737174,0.13141162304686332,0.24634719767655433,0.17780348578535257,0.9986425049600294,2.585621123270321,0.0013514204514614586,0.06814984318136286,0.05144772488756966,0.38444606527055364,6120380.426530382,0.7415333333333334,0.41133333333333333,0.3516666666666667,0.5646,0.5468066666666667,0.6094533333333334,0.6245733333333334 +001723.XSHE,材料,129.37662063515526,13.567180383366562,2.894530876064522,2.3604727979952207,0.049636230979681395,0.25793028006997953,0.5404413783860582,0.11045998082446917,0.974281178550669,2.527952169290482,-0.046164879594018444,0.26161621903994087,0.06450046710732858,0.28828724305591547,5656785.469798281,0.718,0.6442,0.426,0.6921333333333333,0.6348733333333334,0.68848,0.6304 +000722.XSHE,消费,563.6635528126648,26.343889919079363,1.3666173460633755,4.313713717970036,0.049319928824265,0.18432756475090262,0.5449366447855505,0.11833966809804458,0.6495990085644217,1.9499340767804685,0.2886172975316515,0.13779011272910435,0.05942471489736228,0.20148191852880354,4936345.03648899,0.6657666666666667,0.5513833333333333,0.5948333333333333,0.7968,0.6303683333333333,0.6200133333333334,0.6444866666666667 +000857.XSHE,消费,907.3306419215496,12.612285222908909,1.7686829828820234,1.5501429619589857,0.04916288054807849,0.11998240541411086,0.384152350170391,0.05227467320092974,0.2685752736030379,1.4647354484792972,0.31914301175186766,0.10995769412873242,0.09439911714315463,0.3506690480400586,9883376.300290758,0.8210333333333334,0.33463333333333334,0.6038333333333333,0.7668666666666667,0.6262566666666667,0.6264733333333333,0.7558733333333334 +002158.XSHE,消费,535.0517195865818,19.425541370742458,1.3800679119568537,0.5745267517859203,0.04915811449557042,0.2397906202908453,0.2039692828652352,0.13436734647365875,0.3729495497731927,1.4061161383999348,0.2635497816536466,0.1444378161228306,0.018848315449854183,0.28324845097066137,6983574.344230352,0.8068666666666666,0.45999999999999996,0.5780000000000001,0.7555333333333334,0.6519,0.6681199999999999,0.7382066666666666 +000510.XSHE,科技,513.1926339897151,24.36559395674902,0.6787004340751125,3.8913450753310728,0.04908053278212165,0.22879118363460943,0.2921376622528458,0.2377739347818629,0.18828193580674119,1.05584519447728,0.4390525661082021,0.11449976592637154,0.08816437551809347,0.4754555740624427,7796978.772195214,0.7358333333333333,0.58465,0.6878333333333333,0.4964666666666666,0.6569416666666665,0.67536,0.7214333333333334 +001642.XSHE,金融,924.7282780401895,21.274973743776926,1.3926764293146559,9.628127979455407,0.049080471366600716,0.12732691637132443,0.23188189577818363,0.23247061739782768,0.26879288919033395,2.9015317923346404,0.0024155426914143057,0.1630570902705647,0.0607893928983293,0.35426995077362655,7837523.888527737,0.5981666666666665,0.5575,0.4018333333333334,0.6813333333333333,0.5550166666666667,0.5818999999999999,0.5392666666666666 +001268.XSHE,医药,279.79862940724473,8.027807581468155,1.072315351475991,0.9957580490692303,0.049077069652215644,0.24206898694988066,0.5286222801831969,0.1274110825204173,0.6138024389832373,2.420637048382087,0.4307590969474767,-0.031653253049903546,0.08260557504884682,0.2013960423407617,9309931.404565386,0.9231666666666667,0.6652333333333333,0.6053333333333333,0.9700666666666666,0.78691,0.8199933333333334,0.8278166666666666 +002487.XSHE,能源,140.59287520935337,24.325155368541616,1.9615951192116223,9.47631859815017,0.04900002077996657,0.26508758370213914,0.5660399630431451,0.19554421926534205,0.8926968628748447,1.3393886169886193,0.15307340827823687,0.5537464175805898,0.00744353226972978,0.5476471955853641,5205528.39141857,0.5350666666666666,0.67335,0.7268333333333333,0.2886666666666667,0.590265,0.5903799999999999,0.5925966666666665 +001310.XSHE,医药,732.4146166034038,23.7272425882771,1.0531003214401025,1.500671995327161,0.04853640819928973,0.11681174376776308,0.5258807036266618,0.09428948838203116,0.9690136168338822,1.364914973302982,0.042648261788957226,0.250636310499883,0.04735027142174564,0.3327795856447288,8811190.648534447,0.7687999999999999,0.35725,0.48050000000000004,0.7482666666666667,0.5856216666666668,0.6041799999999999,0.6823099999999999 +002493.XSHE,公用事业,764.8449207071696,15.79770066756341,2.6199965974898927,1.2119681206357198,0.04824115627361239,0.2745682662775317,0.36569770060840134,0.2331584313093974,0.3918618904610021,2.6203064197923434,0.2961806105971577,0.49164558185506296,0.05591488284902999,0.3799633876140267,6209557.735193415,0.7396666666666668,0.7696666666666667,0.8005,0.5735333333333332,0.7442200000000001,0.7516666666666668,0.7579166666666667 +002644.XSHE,金融,839.9424164566124,16.916734480024346,2.28916341189791,1.3705629491694147,0.04822900929008264,0.18975076751870767,0.5320573460210377,0.2219749500140537,0.35976356010913413,1.3565664564319762,0.23672948833090748,0.5072623435569518,0.0050815109024355265,0.25845427600471593,8450451.488785475,0.7500666666666667,0.6450166666666667,0.7598333333333334,0.8503333333333333,0.7305316666666667,0.7080466666666667,0.7529966666666666 +001780.XSHE,公用事业,801.9802924618015,13.772424603657193,0.8590510563530016,4.19706385687806,0.04818838249711545,0.22986922329411613,0.2833331429954144,0.12350791773043648,0.21278511916697024,1.1523057867552045,-0.0648224440534458,0.5509495626130745,0.08884655588699109,0.31195764066996007,7098715.841188934,0.8149,0.4713333333333334,0.5711666666666666,0.716,0.6531933333333333,0.6774733333333333,0.7417799999999999 +000399.XSHE,公用事业,387.61534025145244,9.039177525207071,1.6596304168513085,1.7146112701326077,0.048155732969244,0.28384556518319654,0.5669627704370993,0.05179885856348623,0.15452672245926927,1.4084941726890468,-0.04367373281187992,0.3352846710907796,0.0068374772392984845,0.5655042096928322,8801050.757650437,0.8554999999999999,0.6376000000000001,0.46699999999999997,0.40313333333333334,0.6671933333333333,0.76834,0.7389499999999999 +001724.XSHE,科技,68.17251811542266,21.502485886720958,1.6986993864351074,5.109905918635655,0.04795967432292608,0.2631556093690292,0.47133048185250526,0.22222383367255424,0.29322044766593275,1.1397921148217403,-0.19295561833387867,-0.26837921717200613,0.05267289444557804,0.5070488807054355,6081490.031021973,0.6653,0.6970833333333333,0.022500000000000003,0.38239999999999996,0.517985,0.6780133333333334,0.47245999999999994 +001653.XSHE,科技,720.187788769312,7.264531982059878,1.1065360321284714,1.8112622849100195,0.04771893001104466,0.15814112481710785,0.4745147050468171,0.0832518856602793,0.2865692120381818,2.677864147125332,-0.05393172195290645,0.08085545629943086,0.03838502951981087,0.2006815312164225,9113715.995919317,0.9092666666666667,0.5432333333333333,0.32066666666666666,0.9636,0.6871700000000001,0.7628533333333333,0.7326866666666666 +001189.XSHE,消费,518.2213552250743,11.597655072192904,1.5032750385098912,3.6240302379854015,0.04771156787382108,0.22563702013844422,0.5320801322625913,0.06146485417288117,0.7514416642791413,2.0210378954598,0.07897274433590656,0.23738148259123124,0.08054950979666008,0.2544319617465427,7253737.425836486,0.8039666666666667,0.5338,0.4993333333333333,0.8084,0.6624333333333334,0.6959000000000001,0.7125766666666666 +000226.XSHE,科技,109.17720822355956,5.010216719821499,1.1287425514052933,4.248976164107304,0.0477076863559589,0.253605891769788,0.4801574318541191,0.21529678819621428,0.2945415701369255,1.9690746853771048,0.4184254545784649,0.3215500873160098,0.08915454499973387,0.23966008325778856,9648890.775895176,0.8739,0.7473166666666666,0.79,0.9257333333333333,0.8243283333333333,0.8232666666666667,0.84873 +000844.XSHE,材料,387.032727244185,12.265145871481447,2.6049120393091076,8.780360040124076,0.0472539598903916,0.11417463661614131,0.22519116319465324,0.20602676983901844,0.39138745638633315,1.0995075828272864,0.03869700592894972,-0.25485911335572403,0.024520054592816545,0.3123893319632665,6528737.6314688595,0.6147,0.36558333333333337,0.1965,0.6924666666666668,0.4641016666666667,0.5150533333333334,0.48924 +000100.XSHE,工业,899.4813309309123,17.112270694623312,1.764832484503009,5.002237728656323,0.046961206808560335,0.24353366467685678,0.47735881050901385,0.171965343088492,0.17508695743422728,2.6148839771890873,0.29669207348236953,0.4900048439595221,0.06833323448232849,0.41811683900253965,8801959.352373837,0.7017000000000001,0.7505000000000001,0.7998333333333334,0.6200666666666668,0.7278033333333334,0.7212200000000001,0.73114 diff --git a/value-investing/selection_results/low_volatility_portfolio.csv b/value-investing/selection_results/low_volatility_portfolio.csv new file mode 100644 index 000000000..49111f4e1 --- /dev/null +++ b/value-investing/selection_results/low_volatility_portfolio.csv @@ -0,0 +1,21 @@ +stock_code,industry,market_cap,pe_ratio,pb_ratio,ps_ratio,dividend_yield,roe,gross_margin,net_margin,debt_to_equity,current_ratio,revenue_growth,profit_growth,fcf_yield,volatility,liquidity,value_score,quality_score,growth_score,risk_score,composite_score,value_quality,value_growth +001425.XSHE,公用事业,402.39395774987696,16.04545081425187,1.2087524663411173,3.3122332394457983,0.02557541823828194,0.1419223806340883,0.5687710682521478,0.15406372164876767,0.811312750659943,2.4851624467432627,-0.09377787434500728,0.1497938745236447,0.0453571019423005,0.20073772676729665,9301992.257458799,0.7457000000000001,0.57275,0.32416666666666666,0.9708666666666665,0.632025,0.6765200000000001,0.61924 +001268.XSHE,医药,279.79862940724473,8.027807581468155,1.072315351475991,0.9957580490692303,0.049077069652215644,0.24206898694988066,0.5286222801831969,0.1274110825204173,0.6138024389832373,2.420637048382087,0.4307590969474767,-0.031653253049903546,0.08260557504884682,0.2013960423407617,9309931.404565386,0.9231666666666667,0.6652333333333333,0.6053333333333333,0.9700666666666666,0.78691,0.8199933333333334,0.8278166666666666 +001653.XSHE,科技,720.187788769312,7.264531982059878,1.1065360321284714,1.8112622849100195,0.04771893001104466,0.15814112481710785,0.4745147050468171,0.0832518856602793,0.2865692120381818,2.677864147125332,-0.05393172195290645,0.08085545629943086,0.03838502951981087,0.2006815312164225,9113715.995919317,0.9092666666666667,0.5432333333333333,0.32066666666666666,0.9636,0.6871700000000001,0.7628533333333333,0.7326866666666666 +002799.XSHE,金融,461.13291012472797,21.385447557867742,0.7046894366252356,3.821707114391258,0.025132466731114113,0.13231893230561442,0.2815274720739533,0.11683154516942625,0.30301703435479943,1.7660699120395502,0.14694193933243604,0.2983744418220418,0.025732379876995105,0.21224590588253475,9345607.004001338,0.7153666666666667,0.38076666666666664,0.5818333333333333,0.9576666666666667,0.61251,0.5815266666666666,0.6753066666666666 +001580.XSHE,消费,947.4994458439256,21.045151452959992,1.4202695241175811,7.760094596501931,0.019647221968667996,0.2194184436920117,0.37469467111785637,0.08279242376361495,0.9383899108285635,1.6652102984640837,0.25325516589198815,-0.07710698907380907,0.08720431818754941,0.21180194367966376,9296083.31483544,0.5791,0.42233333333333334,0.45,0.9561333333333334,0.5439533333333334,0.5163933333333333,0.54037 +001061.XSHE,金融,804.7897672662112,20.343288813934485,1.2673867522719888,4.4336518846842035,0.036073854136700854,0.2102380549620439,0.25588407625966336,0.24747204090706687,0.3692934618252987,2.356994394943924,-0.00208867100564283,-0.07457993596608799,0.03509637710507015,0.22176353112635008,9617208.840643412,0.6978333333333333,0.6346999999999999,0.26816666666666666,0.9549999999999998,0.6186766666666667,0.67258,0.5689333333333333 +001383.XSHE,消费,246.72201875031246,21.14341297442999,0.6537901506848933,2.1123726776047933,0.028961059478555342,0.17036572940934624,0.5046507891157179,0.12690910252850765,0.9665916074046141,1.8117582154872311,0.2748233251897042,0.15404957649472267,0.07892707880622864,0.21422916681361592,9319322.496083945,0.7666333333333334,0.47861666666666663,0.5941666666666667,0.9546000000000001,0.6645316666666667,0.6514266666666666,0.7148933333333334 +000865.XSHE,医药,598.3398923978233,28.182516277396495,2.827043996509987,2.8188984386797222,0.003782234032867482,0.24873773320616926,0.253570997266262,0.21172085043476696,0.562858353105727,1.2198499465983372,-0.03692105577912693,0.14625934906970148,0.027234834745503977,0.21842643828282365,9272466.289251888,0.485,0.5422,0.3656666666666667,0.9460666666666666,0.5244,0.50788,0.4492 +001791.XSHE,工业,113.62493142400794,11.425353650054811,2.804105250989417,4.560780065803613,0.01742528999157955,0.2804494391258772,0.5827072868859401,0.20950470948832112,0.8754507437824179,1.7489520069326328,0.4410413512949391,-0.14257989847502647,0.06495937841334436,0.21126177030501025,8745028.547489502,0.6332333333333333,0.7487,0.5473333333333333,0.9361999999999999,0.6809900000000001,0.67942,0.6074633333333332 +000226.XSHE,科技,109.17720822355956,5.010216719821499,1.1287425514052933,4.248976164107304,0.0477076863559589,0.253605891769788,0.4801574318541191,0.21529678819621428,0.2945415701369255,1.9690746853771048,0.4184254545784649,0.3215500873160098,0.08915454499973387,0.23966008325778856,9648890.775895176,0.8739,0.7473166666666666,0.79,0.9257333333333333,0.8243283333333333,0.8232666666666667,0.84873 +001634.XSHE,材料,567.0412678080128,8.48676319499672,1.7085071327928847,1.5787681665131914,0.001449637249948993,0.1761561707329244,0.45910839536560183,0.19649002317346126,0.46912905829766793,1.6160217954105474,0.07722934114740504,0.4999556240424331,0.06103019741788571,0.24455329271470447,9667215.315179722,0.7677333333333335,0.5738000000000001,0.6446666666666667,0.9198,0.7001466666666667,0.6901600000000001,0.7308133333333334 +000071.XSHE,科技,607.2780400167004,27.5026216635989,2.152263315627602,6.48506778674197,0.00726164345381719,0.13115431057786936,0.3927564925081758,0.09709002912538862,0.9449011139450701,1.772772085924762,0.3986495383652008,0.5212738522250394,0.08399924448252681,0.23470264242705188,9256516.948429279,0.47126666666666667,0.34275,0.8843333333333333,0.9166666666666667,0.5598650000000001,0.41986,0.5951866666666666 +001024.XSHE,科技,390.77974914616277,25.626356574183777,2.418827254213878,1.1600598563935531,0.010433381225579592,0.25962067264145605,0.5062352950574726,0.06847880578741715,0.1384002762730245,2.4638122515419285,0.3327759092282352,-0.20310614817810302,0.030087566362431897,0.24725318702567703,9537133.494535854,0.5895333333333334,0.6742,0.43700000000000006,0.9103999999999999,0.6165133333333334,0.6234,0.5437733333333333 +001176.XSHE,材料,323.03911664230077,6.504060759597669,1.9647650215676093,2.5881067636382755,0.0018353991402314197,0.19209029560894364,0.26044006366983946,0.1354349579346019,0.14999219359144061,1.6865642517744213,0.3790350227086617,-0.029172700200715756,0.02359068444211844,0.22969037256949512,8817871.24107296,0.7494000000000001,0.4736,0.5706666666666667,0.9092666666666667,0.6469,0.6390800000000001,0.6957800000000001 +002703.XSHE,公用事业,169.27230040355323,28.32798319848793,1.8744426170736452,5.77742733367466,0.011314131364683384,0.26634270037526453,0.25038671052187456,0.1659014884868755,0.11529975855484798,2.9745894299925224,0.39166281424921356,0.4919604377384045,0.09444495690957536,0.24279248349492294,9337613.643775953,0.5049333333333333,0.69445,0.8633333333333333,0.9084000000000001,0.673815,0.58074,0.6124533333333333 +002876.XSHE,科技,509.12957071800895,8.541395383792958,2.720751638326775,5.888063189810771,0.01009704322559913,0.18369671885827876,0.526300634982846,0.2471535211649627,0.5322860869067965,2.013935124720094,0.2040115923102437,0.43840451123041924,0.062362774951786576,0.24464386664474716,9414892.972304298,0.6255333333333334,0.6899833333333334,0.7008333333333333,0.9083333333333333,0.6882083333333333,0.6513133333333334,0.6481233333333334 +002155.XSHE,公用事业,78.94050199351211,15.771642635392086,2.837519538760569,3.261178128971,0.03645516417974381,0.2467673756809829,0.5033786800030302,0.1627209845108323,0.1813353155862659,1.6316387593026112,0.2839738125490461,-0.09601790361913162,0.049112756425593575,0.2169969291676213,8064353.338404363,0.6558999999999999,0.6864166666666667,0.46399999999999997,0.9018,0.651265,0.6681066666666666,0.5983299999999999 +002892.XSHE,材料,564.2066053945941,6.111378395875008,2.937590708151778,3.6383980426410796,0.015466338710840594,0.24703600349197774,0.4019507205742398,0.11588657611309737,0.10651781419349515,1.2737337157675865,0.4126877427059315,0.3740358028928221,0.00865293713977795,0.2118455869964728,7875885.0491024,0.6879333333333332,0.5668833333333333,0.815,0.9005333333333334,0.6982916666666666,0.6395133333333333,0.7260533333333331 +002262.XSHE,公用事业,748.1795550251495,12.188725710527489,1.1610345599500067,6.395312356480487,0.01462982218119714,0.11046740902844758,0.3568108224315908,0.11883270535036079,0.676078826591159,1.0082263231781947,-0.03634972745031501,0.05231231156538119,0.031188740318861808,0.2276474445805038,8391390.077701127,0.6979000000000001,0.2951,0.319,0.8966666666666666,0.5211566666666667,0.53678,0.58423 +000482.XSHE,能源,812.5111443059249,15.905916281154303,1.4495301126838673,6.125806714077573,0.04213595617697343,0.13872946009117681,0.38701610490674765,0.214028813590374,0.6411591502419208,1.1360981100099279,0.06480408670048986,-0.10019564827277046,0.062021179970382034,0.2070444493451794,7634185.351074087,0.7042666666666667,0.4529166666666667,0.3026666666666667,0.8957333333333333,0.5676883333333334,0.6037266666666667,0.5837866666666667 diff --git a/value-investing/selection_results/main_portfolio.csv b/value-investing/selection_results/main_portfolio.csv new file mode 100644 index 000000000..0394fdfc6 --- /dev/null +++ b/value-investing/selection_results/main_portfolio.csv @@ -0,0 +1,21 @@ +stock_code,industry,market_cap,pe_ratio,pb_ratio,ps_ratio,dividend_yield,roe,gross_margin,net_margin,debt_to_equity,current_ratio,revenue_growth,profit_growth,fcf_yield,volatility,liquidity,value_score,quality_score,growth_score,risk_score,composite_score,weight +000226.XSHE,科技,109.17720822355956,5.010216719821499,1.1287425514052933,4.248976164107304,0.0477076863559589,0.253605891769788,0.4801574318541191,0.21529678819621428,0.2945415701369255,1.9690746853771048,0.4184254545784649,0.3215500873160098,0.08915454499973387,0.23966008325778856,9648890.775895176,0.8739,0.7473166666666666,0.79,0.9257333333333333,0.8243283333333333,0.05715286415469868 +001268.XSHE,医药,279.79862940724473,8.027807581468155,1.072315351475991,0.9957580490692303,0.049077069652215644,0.24206898694988066,0.5286222801831969,0.1274110825204173,0.6138024389832373,2.420637048382087,0.4307590969474767,-0.031653253049903546,0.08260557504884682,0.2013960423407617,9309931.404565386,0.9231666666666667,0.6652333333333333,0.6053333333333333,0.9700666666666666,0.78691,0.05455855211249636 +000013.XSHE,消费,957.747511157188,9.113989631771219,0.601558624410697,3.606287420806023,0.03737873180270552,0.2063020804357325,0.5997197903853994,0.24658104657193797,0.9505376070454739,2.9012558539682662,0.08090618404015973,0.3206114848079868,0.09619366813923613,0.3506073404198685,9949458.485359829,0.8629000000000001,0.77745,0.547,0.7699333333333334,0.7647883333333334,0.053024798438443925 +002493.XSHE,公用事业,764.8449207071696,15.79770066756341,2.6199965974898927,1.2119681206357198,0.04824115627361239,0.2745682662775317,0.36569770060840134,0.2331584313093974,0.3918618904610021,2.6203064197923434,0.2961806105971577,0.49164558185506296,0.05591488284902999,0.3799633876140267,6209557.735193415,0.7396666666666668,0.7696666666666667,0.8005,0.5735333333333332,0.7442200000000001,0.051598741473817905 +002644.XSHE,金融,839.9424164566124,16.916734480024346,2.28916341189791,1.3705629491694147,0.04822900929008264,0.18975076751870767,0.5320573460210377,0.2219749500140537,0.35976356010913413,1.3565664564319762,0.23672948833090748,0.5072623435569518,0.0050815109024355265,0.25845427600471593,8450451.488785475,0.7500666666666667,0.6450166666666667,0.7598333333333334,0.8503333333333333,0.7305316666666667,0.050649693110599886 +000100.XSHE,工业,899.4813309309123,17.112270694623312,1.764832484503009,5.002237728656323,0.046961206808560335,0.24353366467685678,0.47735881050901385,0.171965343088492,0.17508695743422728,2.6148839771890873,0.29669207348236953,0.4900048439595221,0.06833323448232849,0.41811683900253965,8801959.352373837,0.7017000000000001,0.7505000000000001,0.7998333333333334,0.6200666666666668,0.7278033333333334,0.05046053054264812 +001156.XSHE,金融,445.679210308685,10.843565603804647,2.5201027516675554,6.282531514886608,0.04180564024638439,0.2273506924298328,0.524447149096278,0.21604870559408149,0.3365900948297246,1.1318272934078417,0.4927777464510616,0.5137169854424899,0.07184638620686991,0.3755756427713582,8520204.279617762,0.6737000000000001,0.6670833333333333,0.9451666666666667,0.6738666666666666,0.7260250000000001,0.05033723398797217 +000420.XSHE,能源,441.9907488061926,20.24705670902633,2.349322736161565,3.111629206081287,0.022341711525996434,0.25564593304035804,0.560853547378802,0.19471564232822988,0.8663560066874512,2.2276078512396014,0.47022515485216543,0.5883574238113869,0.05410290208745952,0.4105104806781332,8399837.57590355,0.6256000000000002,0.7256166666666667,0.9733333333333334,0.6142,0.7240116666666667,0.05019764426159114 +002648.XSHE,消费,431.9258560438287,14.85766278769475,2.836760370778721,6.30211070206594,0.03485706752461995,0.2725390906433486,0.44059718118997654,0.2399932176181475,0.9226063687005813,2.9658342320623725,0.3759930263726251,0.5702052357509914,0.08144451422960564,0.38010380029723284,7983135.758676698,0.5963333333333333,0.7787499999999999,0.8973333333333333,0.6458,0.7162049999999999,0.049656387408636884 +000387.XSHE,消费,58.86503883573863,20.431834824163815,1.4452130178143132,1.027097449645151,0.03349713066818832,0.2931774933903466,0.5929875383146775,0.1725000755715617,0.5143901750320201,2.8237609277549187,-0.1554037204131807,0.5523299809731517,0.03191544598969276,0.3976612894392383,7312708.180717498,0.7511333333333333,0.8512,0.504,0.5924,0.7158533333333332,0.04963200542828391 +000881.XSHE,工业,831.3012549848645,15.097234090990797,2.8171737898730242,4.541596345435283,0.04678275647047723,0.2303135243574349,0.4263734994768189,0.2197172378400011,0.40335508160438976,2.3296718127374696,0.28975895982996336,0.4687127834030151,0.07230733734948085,0.26749470227894745,6347250.188588249,0.6580333333333335,0.7082333333333334,0.7805,0.7526666666666667,0.7070500000000002,0.049021647038594705 +002343.XSHE,金融,501.8163822309079,10.451995756744344,1.8231786951799958,4.822604806916094,0.016154437364727613,0.27053557855646526,0.38600080521067714,0.22391394898852923,0.5957462252929556,2.5110670686786802,0.2960389714366187,0.43400869416955395,0.06516933714956426,0.5070865745947567,9647329.569730304,0.702,0.7323000000000002,0.7698333333333334,0.5248666666666667,0.7069433333333335,0.049014251556402336 +002826.XSHE,能源,953.0061799066885,13.720510851050967,1.5903977287435147,0.9804678777505985,0.011726543599263712,0.28632406123434617,0.4260206345161613,0.1911229925501453,0.9733293231957507,2.1561938618560514,0.04038451202356621,0.4505706685962064,0.08305422539034614,0.23817261390560926,5706151.255704959,0.7623333333333335,0.6733833333333333,0.5893333333333334,0.7718666666666666,0.7020016666666667,0.04867163273295884 +001634.XSHE,材料,567.0412678080128,8.48676319499672,1.7085071327928847,1.5787681665131914,0.001449637249948993,0.1761561707329244,0.45910839536560183,0.19649002317346126,0.46912905829766793,1.6160217954105474,0.07722934114740504,0.4999556240424331,0.06103019741788571,0.24455329271470447,9667215.315179722,0.7677333333333335,0.5738000000000001,0.6446666666666667,0.9198,0.7001466666666667,0.04854302067545711 +002892.XSHE,材料,564.2066053945941,6.111378395875008,2.937590708151778,3.6383980426410796,0.015466338710840594,0.24703600349197774,0.4019507205742398,0.11588657611309737,0.10651781419349515,1.2737337157675865,0.4126877427059315,0.3740358028928221,0.00865293713977795,0.2118455869964728,7875885.0491024,0.6879333333333332,0.5668833333333333,0.815,0.9005333333333334,0.6982916666666666,0.04841440861795538 +000656.XSHE,工业,277.8804071181475,18.543484383422975,1.3156261499819837,3.443477829512944,0.04162447372097243,0.13350366768941357,0.27609595352351957,0.2202942027773755,0.3696367565660429,1.9933323618867016,0.47977638608748213,0.46752358494882496,0.09089056507734973,0.42070986769070523,9372294.67609116,0.7443333333333333,0.49449999999999994,0.911,0.6384000000000001,0.6921233333333333,0.04798674174929961 +002432.XSHE,公用事业,222.12411509757865,9.208405561905927,0.963687620439422,8.266068883356333,0.01634393948826598,0.2804586274917768,0.5543609510730255,0.2012122224011075,0.36212737546146123,1.9143500551072372,-0.015382911933605248,0.4998224095440597,0.09583702328827193,0.3920099569514287,6662207.107408486,0.7028333333333333,0.7921833333333335,0.5776666666666667,0.5760000000000001,0.6919216666666668,0.047972759665779664 +002499.XSHE,消费,553.4435575837213,20.552907600535526,2.288695965901825,3.9813381402298065,0.0372540085581109,0.146672873659697,0.511549459302385,0.177457129362888,0.14828560755123515,2.0209004693524877,0.32985130322757344,0.5992608717018963,0.04343197722016388,0.3259906176037721,8511694.477172567,0.6368666666666667,0.6114833333333333,0.8828333333333334,0.7494000000000001,0.6896983333333333,0.0478186100838324 +002876.XSHE,科技,509.12957071800895,8.541395383792958,2.720751638326775,5.888063189810771,0.01009704322559913,0.18369671885827876,0.526300634982846,0.2471535211649627,0.5322860869067965,2.013935124720094,0.2040115923102437,0.43840451123041924,0.062362774951786576,0.24464386664474716,9414892.972304298,0.6255333333333334,0.6899833333333334,0.7008333333333333,0.9083333333333333,0.6882083333333333,0.0477153044419577 +001530.XSHE,医药,650.6680459557579,9.552452882589645,2.415001449635229,3.4380543485258017,0.01831515726311695,0.2277189068958856,0.47594065149852055,0.24250574131731106,0.947034436084118,1.3502215385877152,0.43719008915259067,0.19131423885056137,0.029118745881855892,0.3677686708063414,9717424.971975027,0.7050000000000002,0.6176833333333334,0.7271666666666666,0.7342,0.6861583333333334,0.04757317251857305 diff --git a/value-investing/selection_results/pure_value_portfolio.csv b/value-investing/selection_results/pure_value_portfolio.csv new file mode 100644 index 000000000..81878c9c5 --- /dev/null +++ b/value-investing/selection_results/pure_value_portfolio.csv @@ -0,0 +1,21 @@ +stock_code,industry,market_cap,pe_ratio,pb_ratio,ps_ratio,dividend_yield,roe,gross_margin,net_margin,debt_to_equity,current_ratio,revenue_growth,profit_growth,fcf_yield,volatility,liquidity,value_score,quality_score,growth_score,risk_score,composite_score +001268.XSHE,医药,279.79862940724473,8.027807581468155,1.072315351475991,0.9957580490692303,0.049077069652215644,0.24206898694988066,0.5286222801831969,0.1274110825204173,0.6138024389832373,2.420637048382087,0.4307590969474767,-0.031653253049903546,0.08260557504884682,0.2013960423407617,9309931.404565386,0.9231666666666667,0.6652333333333333,0.6053333333333333,0.9700666666666666,0.78691 +001653.XSHE,科技,720.187788769312,7.264531982059878,1.1065360321284714,1.8112622849100195,0.04771893001104466,0.15814112481710785,0.4745147050468171,0.0832518856602793,0.2865692120381818,2.677864147125332,-0.05393172195290645,0.08085545629943086,0.03838502951981087,0.2006815312164225,9113715.995919317,0.9092666666666667,0.5432333333333333,0.32066666666666666,0.9636,0.6871700000000001 +001125.XSHE,能源,408.4521512650332,7.194484346591318,0.5918072480969285,1.5977886389452185,0.023218516009102054,0.17104106184800044,0.3557654170196416,0.11989659544480283,0.6653615750225399,2.1512475011743954,0.44011703898590204,-0.10301571355335988,0.0030331272613826846,0.34248143922316787,9177297.096521018,0.8988333333333334,0.4536333333333334,0.5680000000000001,0.7498,0.6842033333333335 +000788.XSHE,公用事业,364.77965674789823,7.25789076439883,0.5808103868756793,3.7519192058614372,0.04299257359578316,0.10804463754590128,0.3024524363848461,0.1434624756310136,0.9100350575513648,1.7166910173457173,0.3004079491380765,-0.23464067341893388,0.01657104870716264,0.4050844245904607,7019707.885922127,0.8928,0.32234999999999997,0.3985,0.5694,0.590465 +002426.XSHE,材料,74.48111882613358,6.780087795317591,0.9133265175314045,3.904492507157784,0.043966082963253,0.13843456319497582,0.3167407863666359,0.15997671189755044,0.402500425742722,2.314292231360321,0.28096360470389753,0.08172975640155215,0.010907669460008297,0.3262538133973126,5575316.549176071,0.8744000000000001,0.47764999999999996,0.563,0.6313333333333333,0.6687883333333334 +000226.XSHE,科技,109.17720822355956,5.010216719821499,1.1287425514052933,4.248976164107304,0.0477076863559589,0.253605891769788,0.4801574318541191,0.21529678819621428,0.2945415701369255,1.9690746853771048,0.4184254545784649,0.3215500873160098,0.08915454499973387,0.23966008325778856,9648890.775895176,0.8739,0.7473166666666666,0.79,0.9257333333333333,0.8243283333333333 +000013.XSHE,消费,957.747511157188,9.113989631771219,0.601558624410697,3.606287420806023,0.03737873180270552,0.2063020804357325,0.5997197903853994,0.24658104657193797,0.9505376070454739,2.9012558539682662,0.08090618404015973,0.3206114848079868,0.09619366813923613,0.3506073404198685,9949458.485359829,0.8629000000000001,0.77745,0.547,0.7699333333333334,0.7647883333333334 +000399.XSHE,公用事业,387.61534025145244,9.039177525207071,1.6596304168513085,1.7146112701326077,0.048155732969244,0.28384556518319654,0.5669627704370993,0.05179885856348623,0.15452672245926927,1.4084941726890468,-0.04367373281187992,0.3352846710907796,0.0068374772392984845,0.5655042096928322,8801050.757650437,0.8554999999999999,0.6376000000000001,0.46699999999999997,0.40313333333333334,0.6671933333333333 +000772.XSHE,工业,415.2857612625719,10.808206111889666,0.98583101649876,1.3546891491791286,0.021117593635036725,0.26408833720337715,0.5290585388585197,0.061648690554294255,0.23240428069164284,1.8583921252491922,0.2212387832602677,-0.06831531509277375,0.09741149177385328,0.43077097398899933,9749392.131054865,0.8407333333333333,0.6292,0.43366666666666664,0.6389333333333334,0.6756800000000001 +002652.XSHE,工业,50.029182903113295,9.678171916057531,1.581022248779954,0.9296814937420418,0.02789269245650977,0.22889240886826806,0.48661962720931673,0.15571169248673633,0.7299649434089946,1.0596690282949581,-0.08238547552073204,0.03833102170730388,0.0025106639505177333,0.240369286699141,8857606.146618044,0.8342333333333334,0.53975,0.274,0.8922666666666668,0.639645 +001180.XSHE,消费,540.0688075767117,12.915062753839793,1.147255119456399,2.5735600871071678,0.043626025842309096,0.1201879876865853,0.21586452198970818,0.05848794515834826,0.633330241829272,2.0561042748710245,0.1528762493897206,-0.14342945809006905,0.05267987365391391,0.323790826767813,8981198.53145267,0.8277,0.26306666666666667,0.33916666666666667,0.7699333333333334,0.5548266666666667 +000789.XSHE,公用事业,507.9390052064784,9.35125519044052,0.8352970781838803,4.683341851985897,0.03889060717219587,0.22967384678688474,0.3682041432306129,0.2397097434721752,0.43604701812406227,2.3068869172216004,0.12859526143883482,-0.25723579558291976,0.08841704198928149,0.531841835291068,8563713.693994673,0.8261333333333333,0.6920999999999999,0.2605,0.4469333333333334,0.6348766666666666 +000857.XSHE,消费,907.3306419215496,12.612285222908909,1.7686829828820234,1.5501429619589857,0.04916288054807849,0.11998240541411086,0.384152350170391,0.05227467320092974,0.2685752736030379,1.4647354484792972,0.31914301175186766,0.10995769412873242,0.09439911714315463,0.3506690480400586,9883376.300290758,0.8210333333333334,0.33463333333333334,0.6038333333333333,0.7668666666666667,0.6262566666666667 +001780.XSHE,公用事业,801.9802924618015,13.772424603657193,0.8590510563530016,4.19706385687806,0.04818838249711545,0.22986922329411613,0.2833331429954144,0.12350791773043648,0.21278511916697024,1.1523057867552045,-0.0648224440534458,0.5509495626130745,0.08884655588699109,0.31195764066996007,7098715.841188934,0.8149,0.4713333333333334,0.5711666666666666,0.716,0.6531933333333333 +002774.XSHE,医药,503.545380006336,6.05448299153247,0.8988483863731134,6.212429456239689,0.03144941936121761,0.10859289660095144,0.5733645718207004,0.17966726403050476,0.37321428479480917,1.4122381565209594,0.24371076841453343,0.46153208921549604,0.06805948446205999,0.45597344225222525,6480586.663746667,0.8087666666666666,0.53055,0.7391666666666667,0.47506666666666664,0.6780116666666667 +002158.XSHE,消费,535.0517195865818,19.425541370742458,1.3800679119568537,0.5745267517859203,0.04915811449557042,0.2397906202908453,0.2039692828652352,0.13436734647365875,0.3729495497731927,1.4061161383999348,0.2635497816536466,0.1444378161228306,0.018848315449854183,0.28324845097066137,6983574.344230352,0.8068666666666666,0.45999999999999996,0.5780000000000001,0.7555333333333334,0.6519 +002489.XSHE,医药,370.5815650160175,12.081721250745968,0.6503809761727676,4.909284278387954,0.03720930536157966,0.15748493694627969,0.37371670777211885,0.21952355704577456,0.7398382970286019,1.8279814934440017,-0.13007457903495095,-0.09279454489979146,0.09580404241038311,0.36664648680693085,8299980.105015713,0.8048333333333333,0.5167,0.1635,0.6802666666666668,0.57767 +001189.XSHE,消费,518.2213552250743,11.597655072192904,1.5032750385098912,3.6240302379854015,0.04771156787382108,0.22563702013844422,0.5320801322625913,0.06146485417288117,0.7514416642791413,2.0210378954598,0.07897274433590656,0.23738148259123124,0.08054950979666008,0.2544319617465427,7253737.425836486,0.8039666666666667,0.5338,0.4993333333333333,0.8084,0.6624333333333334 +002895.XSHE,材料,948.6723453533193,17.519773418096996,0.7304285713564809,1.0220578117519528,0.0206527173976699,0.2989766600965856,0.39780782518811375,0.12306672270949706,0.22092413133191227,2.3944121877325886,-0.03952158891391949,0.4424800673400268,0.08379992223757426,0.4887128860145002,8057345.783387728,0.8001666666666666,0.7058833333333333,0.5306666666666666,0.4896666666666667,0.6869316666666667 +000698.XSHE,科技,871.3354290465364,7.870755031411904,1.803122171018272,3.607369307015567,0.03822000556946531,0.18326082197214577,0.24218625200376778,0.19570851973238884,0.953229661732383,1.424261151732676,-0.17922037939737087,0.23890480707952816,0.038847775018409816,0.2322803285428382,5274746.871969719,0.7972,0.4086833333333333,0.3155,0.7629333333333334,0.5808783333333334 diff --git a/value-investing/selection_results/selection_report.txt b/value-investing/selection_results/selection_report.txt new file mode 100644 index 000000000..8cd4fefb0 --- /dev/null +++ b/value-investing/selection_results/selection_report.txt @@ -0,0 +1,29 @@ +============================================================ +动态选股算法结果报告 +============================================================ + +生成时间: 2026-03-21 17:53:55 +股票数量: 20 + +主投资组合: +---------------------------------------- +000226.XSHE | 科技 | PE:5.0 | PB:1.13 | ROE:25.4% | 权重:5.7% +001268.XSHE | 医药 | PE:8.0 | PB:1.07 | ROE:24.2% | 权重:5.5% +000013.XSHE | 消费 | PE:9.1 | PB:0.60 | ROE:20.6% | 权重:5.3% +002493.XSHE | 公用事业 | PE:15.8 | PB:2.62 | ROE:27.5% | 权重:5.2% +002644.XSHE | 金融 | PE:16.9 | PB:2.29 | ROE:19.0% | 权重:5.1% +000100.XSHE | 工业 | PE:17.1 | PB:1.76 | ROE:24.4% | 权重:5.0% +001156.XSHE | 金融 | PE:10.8 | PB:2.52 | ROE:22.7% | 权重:5.0% +000420.XSHE | 能源 | PE:20.2 | PB:2.35 | ROE:25.6% | 权重:5.0% +002648.XSHE | 消费 | PE:14.9 | PB:2.84 | ROE:27.3% | 权重:5.0% +000387.XSHE | 消费 | PE:20.4 | PB:1.45 | ROE:29.3% | 权重:5.0% +000881.XSHE | 工业 | PE:15.1 | PB:2.82 | ROE:23.0% | 权重:4.9% +002343.XSHE | 金融 | PE:10.5 | PB:1.82 | ROE:27.1% | 权重:4.9% +002826.XSHE | 能源 | PE:13.7 | PB:1.59 | ROE:28.6% | 权重:4.9% +001634.XSHE | 材料 | PE:8.5 | PB:1.71 | ROE:17.6% | 权重:4.9% +002892.XSHE | 材料 | PE:6.1 | PB:2.94 | ROE:24.7% | 权重:4.8% +000656.XSHE | 工业 | PE:18.5 | PB:1.32 | ROE:13.4% | 权重:4.8% +002432.XSHE | 公用事业 | PE:9.2 | PB:0.96 | ROE:28.0% | 权重:4.8% +002499.XSHE | 消费 | PE:20.6 | PB:2.29 | ROE:14.7% | 权重:4.8% +002876.XSHE | 科技 | PE:8.5 | PB:2.72 | ROE:18.4% | 权重:4.8% +001530.XSHE | 医药 | PE:9.6 | PB:2.42 | ROE:22.8% | 权重:4.8% diff --git a/value-investing/selection_results/value_growth_portfolio.csv b/value-investing/selection_results/value_growth_portfolio.csv new file mode 100644 index 000000000..1b0f61489 --- /dev/null +++ b/value-investing/selection_results/value_growth_portfolio.csv @@ -0,0 +1,21 @@ +stock_code,industry,market_cap,pe_ratio,pb_ratio,ps_ratio,dividend_yield,roe,gross_margin,net_margin,debt_to_equity,current_ratio,revenue_growth,profit_growth,fcf_yield,volatility,liquidity,value_score,quality_score,growth_score,risk_score,composite_score,value_quality,value_growth +000226.XSHE,科技,109.17720822355956,5.010216719821499,1.1287425514052933,4.248976164107304,0.0477076863559589,0.253605891769788,0.4801574318541191,0.21529678819621428,0.2945415701369255,1.9690746853771048,0.4184254545784649,0.3215500873160098,0.08915454499973387,0.23966008325778856,9648890.775895176,0.8739,0.7473166666666666,0.79,0.9257333333333333,0.8243283333333333,0.8232666666666667,0.84873 +001268.XSHE,医药,279.79862940724473,8.027807581468155,1.072315351475991,0.9957580490692303,0.049077069652215644,0.24206898694988066,0.5286222801831969,0.1274110825204173,0.6138024389832373,2.420637048382087,0.4307590969474767,-0.031653253049903546,0.08260557504884682,0.2013960423407617,9309931.404565386,0.9231666666666667,0.6652333333333333,0.6053333333333333,0.9700666666666666,0.78691,0.8199933333333334,0.8278166666666666 +001125.XSHE,能源,408.4521512650332,7.194484346591318,0.5918072480969285,1.5977886389452185,0.023218516009102054,0.17104106184800044,0.3557654170196416,0.11989659544480283,0.6653615750225399,2.1512475011743954,0.44011703898590204,-0.10301571355335988,0.0030331272613826846,0.34248143922316787,9177297.096521018,0.8988333333333334,0.4536333333333334,0.5680000000000001,0.7498,0.6842033333333335,0.7207533333333334,0.7995833333333333 +000656.XSHE,工业,277.8804071181475,18.543484383422975,1.3156261499819837,3.443477829512944,0.04162447372097243,0.13350366768941357,0.27609595352351957,0.2202942027773755,0.3696367565660429,1.9933323618867016,0.47977638608748213,0.46752358494882496,0.09089056507734973,0.42070986769070523,9372294.67609116,0.7443333333333333,0.49449999999999994,0.911,0.6384000000000001,0.6921233333333333,0.6443999999999999,0.7943333333333332 +002774.XSHE,医药,503.545380006336,6.05448299153247,0.8988483863731134,6.212429456239689,0.03144941936121761,0.10859289660095144,0.5733645718207004,0.17966726403050476,0.37321428479480917,1.4122381565209594,0.24371076841453343,0.46153208921549604,0.06805948446205999,0.45597344225222525,6480586.663746667,0.8087666666666666,0.53055,0.7391666666666667,0.47506666666666664,0.6780116666666667,0.69748,0.7878866666666666 +002426.XSHE,材料,74.48111882613358,6.780087795317591,0.9133265175314045,3.904492507157784,0.043966082963253,0.13843456319497582,0.3167407863666359,0.15997671189755044,0.402500425742722,2.314292231360321,0.28096360470389753,0.08172975640155215,0.010907669460008297,0.3262538133973126,5575316.549176071,0.8744000000000001,0.47764999999999996,0.563,0.6313333333333333,0.6687883333333334,0.7157,0.7809799999999999 +000013.XSHE,消费,957.747511157188,9.113989631771219,0.601558624410697,3.606287420806023,0.03737873180270552,0.2063020804357325,0.5997197903853994,0.24658104657193797,0.9505376070454739,2.9012558539682662,0.08090618404015973,0.3206114848079868,0.09619366813923613,0.3506073404198685,9949458.485359829,0.8629000000000001,0.77745,0.547,0.7699333333333334,0.7647883333333334,0.8287200000000001,0.7681300000000001 +001433.XSHE,能源,124.53302550126776,16.17293658338807,1.2709604500446874,1.2361150757796686,0.02806377574281061,0.19303443679133836,0.45353111477757707,0.05913514771327064,0.8922557486970005,2.851477975466662,0.30146108105723585,0.2795127534922222,0.008479622545093712,0.43962500532446364,5768621.70013964,0.7881666666666666,0.5005166666666666,0.6881666666666666,0.4674666666666667,0.6498016666666666,0.6731066666666665,0.7581666666666664 +002493.XSHE,公用事业,764.8449207071696,15.79770066756341,2.6199965974898927,1.2119681206357198,0.04824115627361239,0.2745682662775317,0.36569770060840134,0.2331584313093974,0.3918618904610021,2.6203064197923434,0.2961806105971577,0.49164558185506296,0.05591488284902999,0.3799633876140267,6209557.735193415,0.7396666666666668,0.7696666666666667,0.8005,0.5735333333333332,0.7442200000000001,0.7516666666666668,0.7579166666666667 +000857.XSHE,消费,907.3306419215496,12.612285222908909,1.7686829828820234,1.5501429619589857,0.04916288054807849,0.11998240541411086,0.384152350170391,0.05227467320092974,0.2685752736030379,1.4647354484792972,0.31914301175186766,0.10995769412873242,0.09439911714315463,0.3506690480400586,9883376.300290758,0.8210333333333334,0.33463333333333334,0.6038333333333333,0.7668666666666667,0.6262566666666667,0.6264733333333333,0.7558733333333334 +001156.XSHE,金融,445.679210308685,10.843565603804647,2.5201027516675554,6.282531514886608,0.04180564024638439,0.2273506924298328,0.524447149096278,0.21604870559408149,0.3365900948297246,1.1318272934078417,0.4927777464510616,0.5137169854424899,0.07184638620686991,0.3755756427713582,8520204.279617762,0.6737000000000001,0.6670833333333333,0.9451666666666667,0.6738666666666666,0.7260250000000001,0.6710533333333333,0.75514 +002644.XSHE,金融,839.9424164566124,16.916734480024346,2.28916341189791,1.3705629491694147,0.04822900929008264,0.18975076751870767,0.5320573460210377,0.2219749500140537,0.35976356010913413,1.3565664564319762,0.23672948833090748,0.5072623435569518,0.0050815109024355265,0.25845427600471593,8450451.488785475,0.7500666666666667,0.6450166666666667,0.7598333333333334,0.8503333333333333,0.7305316666666667,0.7080466666666667,0.7529966666666666 +002101.XSHE,材料,184.162366204492,29.00660939351523,0.5862780983745421,3.1350702266663633,0.01706546202449467,0.1335197238834544,0.5825678488710911,0.16398188933784785,0.41473747437838443,1.9651928765583344,0.4848069269928175,0.5815015120781842,0.037742172782523446,0.574388950060694,7508575.054990782,0.6522,0.5842166666666667,0.9784999999999999,0.33713333333333334,0.6655583333333334,0.6250066666666667,0.7500899999999999 +001911.XSHE,医药,440.6319420948567,7.150161410663242,1.208203316909904,6.721813480335292,0.03739461270130417,0.17239783926390007,0.5603519595952725,0.20168203808541252,0.901627279690241,1.5788350468408006,0.4154943368573394,0.12994183786031777,0.0022664474521924107,0.4705852831616349,8999383.11378416,0.7804333333333333,0.5757333333333334,0.6785,0.5480666666666667,0.6754000000000001,0.6985533333333334,0.7498533333333333 +001439.XSHE,公用事业,954.6106964127149,15.75489560951981,2.251698785640717,1.387602735003743,0.01834341971431147,0.29111481706987813,0.23012801701782168,0.10645421344982009,0.7639381164784269,1.3747756001922273,0.46641346828398655,0.37802672057817044,0.027903707508129563,0.35028687879357573,6966093.437463332,0.7039666666666667,0.4631333333333333,0.856,0.6548666666666666,0.6572133333333334,0.6076333333333334,0.7495766666666667 +000788.XSHE,公用事业,364.77965674789823,7.25789076439883,0.5808103868756793,3.7519192058614372,0.04299257359578316,0.10804463754590128,0.3024524363848461,0.1434624756310136,0.9100350575513648,1.7166910173457173,0.3004079491380765,-0.23464067341893388,0.01657104870716264,0.4050844245904607,7019707.885922127,0.8928,0.32234999999999997,0.3985,0.5694,0.590465,0.66462,0.74451 +000914.XSHE,科技,76.15988387599221,7.324581070158846,2.5348232271204854,1.4383059882881368,0.011238011882940975,0.10751359193672426,0.40053715216991176,0.23226163263251418,0.14705293629805535,2.4876495407702643,0.4022401428120885,0.24116496890956454,0.06511879245505456,0.527720129642158,8321325.471979674,0.7465,0.5984333333333334,0.732,0.4450666666666667,0.6690366666666667,0.6872733333333334,0.74215 +001780.XSHE,公用事业,801.9802924618015,13.772424603657193,0.8590510563530016,4.19706385687806,0.04818838249711545,0.22986922329411613,0.2833331429954144,0.12350791773043648,0.21278511916697024,1.1523057867552045,-0.0648224440534458,0.5509495626130745,0.08884655588699109,0.31195764066996007,7098715.841188934,0.8149,0.4713333333333334,0.5711666666666666,0.716,0.6531933333333333,0.6774733333333333,0.7417799999999999 +000399.XSHE,公用事业,387.61534025145244,9.039177525207071,1.6596304168513085,1.7146112701326077,0.048155732969244,0.28384556518319654,0.5669627704370993,0.05179885856348623,0.15452672245926927,1.4084941726890468,-0.04367373281187992,0.3352846710907796,0.0068374772392984845,0.5655042096928322,8801050.757650437,0.8554999999999999,0.6376000000000001,0.46699999999999997,0.40313333333333334,0.6671933333333333,0.76834,0.7389499999999999 +002465.XSHE,工业,60.73740975957135,18.416766032445004,2.7130578468065063,1.0773080497642882,0.03337741361671686,0.15298065697354069,0.5227246734992287,0.1276422199286204,0.759588045859991,1.219558482916343,0.4703055643106244,0.39356573586652965,0.07678227613154369,0.3535874471825566,5573718.174377763,0.683,0.4442833333333333,0.8674999999999999,0.5910666666666666,0.6390916666666666,0.5875133333333333,0.7383500000000001 diff --git a/value-investing/selection_results/value_quality_portfolio.csv b/value-investing/selection_results/value_quality_portfolio.csv new file mode 100644 index 000000000..49bc2cfec --- /dev/null +++ b/value-investing/selection_results/value_quality_portfolio.csv @@ -0,0 +1,21 @@ +stock_code,industry,market_cap,pe_ratio,pb_ratio,ps_ratio,dividend_yield,roe,gross_margin,net_margin,debt_to_equity,current_ratio,revenue_growth,profit_growth,fcf_yield,volatility,liquidity,value_score,quality_score,growth_score,risk_score,composite_score,value_quality +000013.XSHE,消费,957.747511157188,9.113989631771219,0.601558624410697,3.606287420806023,0.03737873180270552,0.2063020804357325,0.5997197903853994,0.24658104657193797,0.9505376070454739,2.9012558539682662,0.08090618404015973,0.3206114848079868,0.09619366813923613,0.3506073404198685,9949458.485359829,0.8629000000000001,0.77745,0.547,0.7699333333333334,0.7647883333333334,0.8287200000000001 +000226.XSHE,科技,109.17720822355956,5.010216719821499,1.1287425514052933,4.248976164107304,0.0477076863559589,0.253605891769788,0.4801574318541191,0.21529678819621428,0.2945415701369255,1.9690746853771048,0.4184254545784649,0.3215500873160098,0.08915454499973387,0.23966008325778856,9648890.775895176,0.8739,0.7473166666666666,0.79,0.9257333333333333,0.8243283333333333,0.8232666666666667 +001268.XSHE,医药,279.79862940724473,8.027807581468155,1.072315351475991,0.9957580490692303,0.049077069652215644,0.24206898694988066,0.5286222801831969,0.1274110825204173,0.6138024389832373,2.420637048382087,0.4307590969474767,-0.031653253049903546,0.08260557504884682,0.2013960423407617,9309931.404565386,0.9231666666666667,0.6652333333333333,0.6053333333333333,0.9700666666666666,0.78691,0.8199933333333334 +000387.XSHE,消费,58.86503883573863,20.431834824163815,1.4452130178143132,1.027097449645151,0.03349713066818832,0.2931774933903466,0.5929875383146775,0.1725000755715617,0.5143901750320201,2.8237609277549187,-0.1554037204131807,0.5523299809731517,0.03191544598969276,0.3976612894392383,7312708.180717498,0.7511333333333333,0.8512,0.504,0.5924,0.7158533333333332,0.79116 +000789.XSHE,公用事业,507.9390052064784,9.35125519044052,0.8352970781838803,4.683341851985897,0.03889060717219587,0.22967384678688474,0.3682041432306129,0.2397097434721752,0.43604701812406227,2.3068869172216004,0.12859526143883482,-0.25723579558291976,0.08841704198928149,0.531841835291068,8563713.693994673,0.8261333333333333,0.6920999999999999,0.2605,0.4469333333333334,0.6348766666666666,0.7725199999999999 +000399.XSHE,公用事业,387.61534025145244,9.039177525207071,1.6596304168513085,1.7146112701326077,0.048155732969244,0.28384556518319654,0.5669627704370993,0.05179885856348623,0.15452672245926927,1.4084941726890468,-0.04367373281187992,0.3352846710907796,0.0068374772392984845,0.5655042096928322,8801050.757650437,0.8554999999999999,0.6376000000000001,0.46699999999999997,0.40313333333333334,0.6671933333333333,0.76834 +001653.XSHE,科技,720.187788769312,7.264531982059878,1.1065360321284714,1.8112622849100195,0.04771893001104466,0.15814112481710785,0.4745147050468171,0.0832518856602793,0.2865692120381818,2.677864147125332,-0.05393172195290645,0.08085545629943086,0.03838502951981087,0.2006815312164225,9113715.995919317,0.9092666666666667,0.5432333333333333,0.32066666666666666,0.9636,0.6871700000000001,0.7628533333333333 +002895.XSHE,材料,948.6723453533193,17.519773418096996,0.7304285713564809,1.0220578117519528,0.0206527173976699,0.2989766600965856,0.39780782518811375,0.12306672270949706,0.22092413133191227,2.3944121877325886,-0.03952158891391949,0.4424800673400268,0.08379992223757426,0.4887128860145002,8057345.783387728,0.8001666666666666,0.7058833333333333,0.5306666666666666,0.4896666666666667,0.6869316666666667,0.7624533333333332 +000772.XSHE,工业,415.2857612625719,10.808206111889666,0.98583101649876,1.3546891491791286,0.021117593635036725,0.26408833720337715,0.5290585388585197,0.061648690554294255,0.23240428069164284,1.8583921252491922,0.2212387832602677,-0.06831531509277375,0.09741149177385328,0.43077097398899933,9749392.131054865,0.8407333333333333,0.6292,0.43366666666666664,0.6389333333333334,0.6756800000000001,0.75612 +002640.XSHE,医药,578.7495070770457,10.682756266305603,2.9904330252367735,1.131662554160282,0.005620235563897441,0.27080130046836554,0.5677579364834714,0.2254968082635067,0.17024384089230077,2.3618767604492703,-0.09599506462379621,0.3794646343494213,0.08178327787414741,0.5458263265039501,7360427.640472644,0.6772333333333335,0.86635,0.4518333333333333,0.3778,0.6589450000000001,0.7528800000000001 +002493.XSHE,公用事业,764.8449207071696,15.79770066756341,2.6199965974898927,1.2119681206357198,0.04824115627361239,0.2745682662775317,0.36569770060840134,0.2331584313093974,0.3918618904610021,2.6203064197923434,0.2961806105971577,0.49164558185506296,0.05591488284902999,0.3799633876140267,6209557.735193415,0.7396666666666668,0.7696666666666667,0.8005,0.5735333333333332,0.7442200000000001,0.7516666666666668 +000344.XSHE,科技,632.2926033697993,6.9395049026745825,2.5911026080032427,3.26997931096977,0.008058184394808056,0.23624129961522333,0.5436153478185198,0.21381149113387,0.21034049480164788,2.6547828124388286,-0.0749038871075439,-0.12423023766851285,0.06344009447466763,0.27794112762993517,5634808.748790327,0.7011,0.8188833333333334,0.1875,0.7081333333333333,0.6344183333333333,0.7482133333333334 +002432.XSHE,公用事业,222.12411509757865,9.208405561905927,0.963687620439422,8.266068883356333,0.01634393948826598,0.2804586274917768,0.5543609510730255,0.2012122224011075,0.36212737546146123,1.9143500551072372,-0.015382911933605248,0.4998224095440597,0.09583702328827193,0.3920099569514287,6662207.107408486,0.7028333333333333,0.7921833333333335,0.5776666666666667,0.5760000000000001,0.6919216666666668,0.7385733333333333 +000161.XSHE,材料,620.5646166925865,28.000113732027526,0.672626996545886,4.969798250427108,0.03864022464308703,0.2386348831738469,0.5891702841635599,0.24686183817250712,0.5530655395760339,2.7655076164918864,-0.11764258313299719,0.28190647831854304,0.09696368190013074,0.4185993674102629,5588711.259644675,0.657,0.8487166666666667,0.38266666666666665,0.4921333333333333,0.6431616666666666,0.7336866666666667 +000271.XSHE,能源,486.4744299856873,5.3142017846156655,2.767499585560731,4.98839008219146,0.028410417039374542,0.26399396509878587,0.5519279906821809,0.1402490106730897,0.3861594664263151,2.8287182597041065,0.3525369560164981,-0.25867637735735494,0.0005352370864188605,0.36715218054411775,8228567.644231976,0.7045333333333333,0.7746000000000001,0.42016666666666663,0.6766,0.6658866666666667,0.7325600000000001 +002826.XSHE,能源,953.0061799066885,13.720510851050967,1.5903977287435147,0.9804678777505985,0.011726543599263712,0.28632406123434617,0.4260206345161613,0.1911229925501453,0.9733293231957507,2.1561938618560514,0.04038451202356621,0.4505706685962064,0.08305422539034614,0.23817261390560926,5706151.255704959,0.7623333333333335,0.6733833333333333,0.5893333333333334,0.7718666666666666,0.7020016666666667,0.7267533333333334 +000356.XSHE,材料,289.6289691646935,13.640723813301653,2.395035069953367,5.78958465154513,0.04347295582689438,0.29847799705794553,0.5184148619454249,0.2050050111258987,0.715944527047097,2.420482812721845,-0.13604148240539482,0.02510508796171053,0.08306436649389445,0.5479247876266399,9856690.112445323,0.6701666666666667,0.7982333333333332,0.22683333333333333,0.4730666666666667,0.60021,0.7213933333333333 +000100.XSHE,工业,899.4813309309123,17.112270694623312,1.764832484503009,5.002237728656323,0.046961206808560335,0.24353366467685678,0.47735881050901385,0.171965343088492,0.17508695743422728,2.6148839771890873,0.29669207348236953,0.4900048439595221,0.06833323448232849,0.41811683900253965,8801959.352373837,0.7017000000000001,0.7505000000000001,0.7998333333333334,0.6200666666666668,0.7278033333333334,0.7212200000000001 +001125.XSHE,能源,408.4521512650332,7.194484346591318,0.5918072480969285,1.5977886389452185,0.023218516009102054,0.17104106184800044,0.3557654170196416,0.11989659544480283,0.6653615750225399,2.1512475011743954,0.44011703898590204,-0.10301571355335988,0.0030331272613826846,0.34248143922316787,9177297.096521018,0.8988333333333334,0.4536333333333334,0.5680000000000001,0.7498,0.6842033333333335,0.7207533333333334 +002652.XSHE,工业,50.029182903113295,9.678171916057531,1.581022248779954,0.9296814937420418,0.02789269245650977,0.22889240886826806,0.48661962720931673,0.15571169248673633,0.7299649434089946,1.0596690282949581,-0.08238547552073204,0.03833102170730388,0.0025106639505177333,0.240369286699141,8857606.146618044,0.8342333333333334,0.53975,0.274,0.8922666666666668,0.639645,0.71644 diff --git a/value-investing/super_financial_agent.py b/value-investing/super_financial_agent.py new file mode 100644 index 000000000..da7ca1d6a --- /dev/null +++ b/value-investing/super_financial_agent.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python3 +""" +超级财务智能体 - 并行财务因子计算引擎 +启动时间:2026-03-21 17:45 +截止时间:18:00 +""" + +import sys +import os +import pandas as pd +import numpy as np +from datetime import datetime, timedelta +import multiprocessing as mp +from concurrent.futures import ProcessPoolExecutor, as_completed +import warnings +warnings.filterwarnings('ignore') + +class SuperFinancialAgent: + """超级财务智能体""" + + def __init__(self): + self.start_time = datetime.now() + self.cpu_cores = min(10, mp.cpu_count()) + print(f"⚡ 超级财务智能体启动!") + print(f"🕐 启动时间: {self.start_time.strftime('%H:%M:%S')}") + print(f"🎯 目标时间: 18:00") + print(f"⏰ 剩余时间: {15}分钟") + print(f"💻 CPU核心: {self.cpu_cores}核并行") + + def calculate_valuation_factors(self, stock_data): + """计算估值因子(核心1-3)""" + factors = {} + + # 1. 市盈率因子 + if 'pe_ratio' in stock_data.columns: + factors['pe_rank'] = stock_data['pe_ratio'].rank(pct=True) + factors['pe_zscore'] = (stock_data['pe_ratio'] - stock_data['pe_ratio'].mean()) / stock_data['pe_ratio'].std() + + # 2. 市净率因子 + if 'pb_ratio' in stock_data.columns: + factors['pb_rank'] = stock_data['pb_ratio'].rank(pct=True) + factors['pb_zscore'] = (stock_data['pb_ratio'] - stock_data['pb_ratio'].mean()) / stock_data['pb_ratio'].std() + + # 3. 市销率因子 + if 'ps_ratio' in stock_data.columns: + factors['ps_rank'] = stock_data['ps_ratio'].rank(pct=True) + factors['ps_zscore'] = (stock_data['ps_ratio'] - stock_data['ps_ratio'].mean()) / stock_data['ps_ratio'].std() + + return factors + + def calculate_quality_factors(self, stock_data): + """计算质量因子(核心4-6)""" + factors = {} + + # 4. ROE因子 + if 'roe' in stock_data.columns: + factors['roe_rank'] = stock_data['roe'].rank(pct=True) + factors['roe_stability'] = stock_data['roe'].rolling(5).std() + + # 5. 毛利率因子 + if 'gross_margin' in stock_data.columns: + factors['gross_margin_rank'] = stock_data['gross_margin'].rank(pct=True) + factors['margin_stability'] = stock_data['gross_margin'].rolling(5).std() + + # 6. 现金流因子 + if 'free_cash_flow' in stock_data.columns: + factors['fcf_rank'] = stock_data['free_cash_flow'].rank(pct=True) + factors['fcf_yield'] = stock_data['free_cash_flow'] / stock_data['market_cap'] + + return factors + + def calculate_growth_factors(self, stock_data): + """计算成长因子(核心7-8)""" + factors = {} + + # 7. 营收增长因子 + if 'revenue' in stock_data.columns: + revenue_growth = stock_data['revenue'].pct_change(periods=4) + factors['revenue_growth_rank'] = revenue_growth.rank(pct=True) + + # 8. 盈利增长因子 + if 'net_profit' in stock_data.columns: + profit_growth = stock_data['net_profit'].pct_change(periods=4) + factors['profit_growth_rank'] = profit_growth.rank(pct=True) + + return factors + + def calculate_risk_factors(self, stock_data): + """计算风险因子(核心9-10)""" + factors = {} + + # 9. 波动率因子 + if 'close' in stock_data.columns: + volatility = stock_data['close'].rolling(20).std() + factors['volatility_rank'] = volatility.rank(pct=True) + + # 10. 流动性因子 + if 'volume' in stock_data.columns: + avg_volume = stock_data['volume'].rolling(20).mean() + factors['liquidity_rank'] = avg_volume.rank(pct=True) + + return factors + + def parallel_factor_calculation(self, stock_data): + """并行计算所有因子""" + print(f"🔢 开始并行因子计算...") + + # 准备任务 + tasks = [ + (self.calculate_valuation_factors, stock_data), + (self.calculate_quality_factors, stock_data), + (self.calculate_growth_factors, stock_data), + (self.calculate_risk_factors, stock_data) + ] + + # 并行计算 + all_factors = {} + with ProcessPoolExecutor(max_workers=self.cpu_cores) as executor: + future_to_task = {executor.submit(func, data): (func.__name__, data) for func, data in tasks} + + for future in as_completed(future_to_task): + task_name, _ = future_to_task[future] + try: + factors = future.result() + all_factors.update(factors) + print(f"✅ {task_name} 计算完成") + except Exception as e: + print(f"❌ {task_name} 计算失败: {e}") + + return all_factors + +def main(): + """主函数""" + agent = SuperFinancialAgent() + + # 1. 生成模拟数据(实际项目中从数据源获取) + print(f"\n📊 生成模拟财务数据...") + np.random.seed(42) + n_stocks = 3000 + + stock_data = pd.DataFrame({ + 'stock_code': [f'{i:06d}.XSHE' for i in range(1, n_stocks + 1)], + 'pe_ratio': np.random.uniform(5, 50, n_stocks), + 'pb_ratio': np.random.uniform(0.5, 5, n_stocks), + 'ps_ratio': np.random.uniform(0.5, 10, n_stocks), + 'roe': np.random.uniform(0.05, 0.3, n_stocks), + 'gross_margin': np.random.uniform(0.2, 0.6, n_stocks), + 'free_cash_flow': np.random.uniform(1e6, 1e9, n_stocks), + 'market_cap': np.random.uniform(1e8, 1e11, n_stocks), + 'revenue': np.random.uniform(1e7, 1e10, n_stocks), + 'net_profit': np.random.uniform(1e6, 1e9, n_stocks), + 'close': np.random.uniform(10, 100, n_stocks), + 'volume': np.random.uniform(1e5, 1e7, n_stocks) + }) + + print(f"✅ 生成 {n_stocks} 只股票财务数据") + + # 2. 并行计算因子 + factors = agent.parallel_factor_calculation(stock_data) + + # 3. 合并因子数据 + for factor_name, factor_values in factors.items(): + stock_data[factor_name] = factor_values + + # 4. 计算综合价值得分 + print(f"\n🎯 计算综合价值得分...") + + # 价值因子(越低越好) + value_factors = ['pe_rank', 'pb_rank', 'ps_rank'] + value_score = stock_data[value_factors].mean(axis=1) + + # 质量因子(越高越好) + quality_factors = ['roe_rank', 'gross_margin_rank', 'fcf_rank'] + quality_score = stock_data[quality_factors].mean(axis=1) + + # 综合得分:价值得分(高) + 质量得分(高) + stock_data['value_quality_score'] = (1 - value_score) * 0.6 + quality_score * 0.4 + stock_data['value_quality_rank'] = stock_data['value_quality_score'].rank(ascending=False, pct=True) + + # 5. 输出结果 + print(f"\n📈 计算完成!") + print(f"⏰ 耗时: {(datetime.now() - agent.start_time).total_seconds():.2f}秒") + print(f"📊 总因子数: {len(factors)}个") + print(f"🏆 综合价值得分计算完成") + + # 显示前10名 + top_stocks = stock_data.nlargest(10, 'value_quality_score')[['stock_code', 'value_quality_score', 'value_quality_rank']] + print(f"\n🏅 价值投资前10名:") + print(top_stocks.to_string(index=False)) + + return stock_data + +if __name__ == "__main__": + stock_data = main() \ No newline at end of file diff --git a/value-investing/value_investing_backtest.py b/value-investing/value_investing_backtest.py new file mode 100644 index 000000000..2f9729c40 --- /dev/null +++ b/value-investing/value_investing_backtest.py @@ -0,0 +1,345 @@ +#!/usr/bin/env python3 +""" +价值投资策略回测框架 +紧急提交时间:18:13 +""" + +import pandas as pd +import numpy as np +from datetime import datetime, timedelta +import warnings +warnings.filterwarnings('ignore') + +class ValueInvestingBacktest: + """价值投资策略回测框架""" + + def __init__(self): + self.start_time = datetime.now() + print(f"🚀 价值投资策略回测框架启动!") + print(f"🕐 启动时间: {self.start_time.strftime('%H:%M:%S')}") + print(f"🎯 紧急提交时间: 18:00(立即补交)") + + def generate_price_data(self, n_stocks=3000, n_days=252): + """生成价格数据(模拟)""" + print(f"📈 生成价格数据...") + + np.random.seed(42) + + # 生成基础价格数据 + dates = pd.date_range(end=datetime.now(), periods=n_days, freq='B') + stock_codes = [f'{i:06d}.XSHE' for i in range(1, n_stocks + 1)] + + # 创建价格DataFrame + price_data = pd.DataFrame(index=dates, columns=stock_codes) + + # 为每只股票生成价格序列 + for stock in stock_codes: + # 基础收益率(年化10-20%) + base_return = np.random.uniform(0.0004, 0.0008, n_days) + + # 随机波动 + volatility = np.random.uniform(0.01, 0.03, n_days) + random_shocks = np.random.normal(0, volatility) + + # 计算日收益率 + daily_returns = base_return + random_shocks + + # 计算价格(从100开始) + prices = 100 * np.exp(np.cumsum(daily_returns)) + price_data[stock] = prices + + print(f"✅ 生成 {n_stocks} 只股票 {n_days} 天价格数据") + return price_data + + def generate_fundamental_data(self, n_stocks=3000): + """生成基本面数据(模拟)""" + print(f"📊 生成基本面数据...") + + np.random.seed(42) + + fundamental_data = pd.DataFrame({ + 'stock_code': [f'{i:06d}.XSHE' for i in range(1, n_stocks + 1)], + 'industry': np.random.choice(['金融', '科技', '消费', '医药', '工业', '能源', '材料', '公用事业'], n_stocks), + 'market_cap': np.random.uniform(50, 1000, n_stocks), + 'pe_ratio': np.random.uniform(5, 50, n_stocks), + 'pb_ratio': np.random.uniform(0.5, 5, n_stocks), + 'ps_ratio': np.random.uniform(0.5, 10, n_stocks), + 'dividend_yield': np.random.uniform(0, 0.05, n_stocks), + 'roe': np.random.uniform(0.05, 0.3, n_stocks), + 'gross_margin': np.random.uniform(0.2, 0.6, n_stocks), + 'net_margin': np.random.uniform(0.05, 0.25, n_stocks), + 'debt_to_equity': np.random.uniform(0.1, 1.5, n_stocks), + 'current_ratio': np.random.uniform(1, 3, n_stocks), + 'revenue_growth': np.random.uniform(-0.2, 0.5, n_stocks), + 'profit_growth': np.random.uniform(-0.3, 0.6, n_stocks), + 'fcf_yield': np.random.uniform(0, 0.1, n_stocks) + }) + + print(f"✅ 生成 {n_stocks} 只股票基本面数据") + return fundamental_data + + def calculate_value_score(self, fundamental_data): + """计算价值得分""" + print(f"🔢 计算价值得分...") + + data = fundamental_data.copy() + + # 1. 估值因子得分(越低估值,得分越高) + data['value_score'] = ( + (1 - data['pe_ratio'].rank(pct=True)) * 0.4 + + (1 - data['pb_ratio'].rank(pct=True)) * 0.3 + + (1 - data['ps_ratio'].rank(pct=True)) * 0.2 + + data['dividend_yield'].rank(pct=True) * 0.1 + ) + + # 2. 质量因子得分(越高质量,得分越高) + data['quality_score'] = ( + data['roe'].rank(pct=True) * 0.3 + + data['gross_margin'].rank(pct=True) * 0.2 + + data['net_margin'].rank(pct=True) * 0.2 + + (1 - data['debt_to_equity'].rank(pct=True)) * 0.15 + + data['current_ratio'].rank(pct=True) * 0.15 + ) + + # 3. 综合价值得分 + data['composite_value_score'] = data['value_score'] * 0.6 + data['quality_score'] * 0.4 + + print(f"✅ 价值得分计算完成") + return data + + def select_portfolio(self, fundamental_data, portfolio_size=20): + """选择投资组合""" + print(f"🏗️ 选择投资组合...") + + # 按综合价值得分排序 + top_stocks = fundamental_data.nlargest(portfolio_size, 'composite_value_score') + + # 计算等权重 + top_stocks['weight'] = 1.0 / portfolio_size + + print(f"✅ 选择 {portfolio_size} 只股票投资组合") + return top_stocks + + def run_backtest(self, price_data, portfolio, rebalance_freq='M'): + """运行回测""" + print(f"📊 运行回测...") + + # 获取投资组合股票代码 + portfolio_stocks = portfolio['stock_code'].tolist() + + # 只保留投资组合中的股票价格数据 + portfolio_prices = price_data[portfolio_stocks] + + # 计算投资组合每日收益率(等权重) + portfolio_returns = portfolio_prices.pct_change().mean(axis=1) + + # 计算基准收益率(所有股票等权重) + benchmark_returns = price_data.pct_change().mean(axis=1) + + # 计算累计收益率 + portfolio_cumulative = (1 + portfolio_returns).cumprod() + benchmark_cumulative = (1 + benchmark_returns).cumprod() + + # 计算回测指标 + results = self.calculate_metrics(portfolio_returns, benchmark_returns) + + print(f"✅ 回测完成") + return results, portfolio_returns, benchmark_returns, portfolio_cumulative, benchmark_cumulative + + def calculate_metrics(self, portfolio_returns, benchmark_returns): + """计算回测指标""" + # 年化收益率 + annual_portfolio_return = (1 + portfolio_returns.mean()) ** 252 - 1 + annual_benchmark_return = (1 + benchmark_returns.mean()) ** 252 - 1 + + # 年化波动率 + annual_portfolio_vol = portfolio_returns.std() * np.sqrt(252) + annual_benchmark_vol = benchmark_returns.std() * np.sqrt(252) + + # 夏普比率(假设无风险利率3%) + risk_free_rate = 0.03 + portfolio_sharpe = (annual_portfolio_return - risk_free_rate) / annual_portfolio_vol if annual_portfolio_vol > 0 else 0 + benchmark_sharpe = (annual_benchmark_return - risk_free_rate) / annual_benchmark_vol if annual_benchmark_vol > 0 else 0 + + # 最大回撤 + cumulative_returns = (1 + portfolio_returns).cumprod() + running_max = cumulative_returns.expanding().max() + drawdown = (cumulative_returns - running_max) / running_max + max_drawdown = drawdown.min() + + # 胜率 + winning_months = (portfolio_returns > benchmark_returns).sum() + total_months = len(portfolio_returns) + win_rate = winning_months / total_months if total_months > 0 else 0 + + # 信息比率 + active_returns = portfolio_returns - benchmark_returns + information_ratio = (active_returns.mean() * 252) / (active_returns.std() * np.sqrt(252)) if active_returns.std() > 0 else 0 + + results = { + 'annual_return': annual_portfolio_return, + 'annual_benchmark_return': annual_benchmark_return, + 'annual_volatility': annual_portfolio_vol, + 'benchmark_volatility': annual_benchmark_vol, + 'sharpe_ratio': portfolio_sharpe, + 'benchmark_sharpe': benchmark_sharpe, + 'max_drawdown': max_drawdown, + 'win_rate': win_rate, + 'information_ratio': information_ratio, + 'excess_return': annual_portfolio_return - annual_benchmark_return + } + + return results + + def run(self): + """运行完整回测""" + print(f"\n{'='*60}") + print("🚀 价值投资策略回测开始") + print(f"{'='*60}") + + # 1. 生成数据 + price_data = self.generate_price_data(n_stocks=3000, n_days=252) + fundamental_data = self.generate_fundamental_data(n_stocks=3000) + + # 2. 计算价值得分 + scored_data = self.calculate_value_score(fundamental_data) + + # 3. 选择投资组合 + portfolio = self.select_portfolio(scored_data, portfolio_size=20) + + # 4. 运行回测 + results, portfolio_returns, benchmark_returns, portfolio_cumulative, benchmark_cumulative = self.run_backtest( + price_data, portfolio + ) + + # 5. 输出结果 + self.output_results(results, portfolio, portfolio_cumulative, benchmark_cumulative) + + return results, portfolio + + def output_results(self, results, portfolio, portfolio_cumulative, benchmark_cumulative): + """输出结果""" + print(f"\n{'='*60}") + print("📊 回测结果汇总") + print(f"{'='*60}") + + # 业绩指标 + print(f"\n📈 业绩指标:") + print(f"{'='*40}") + print(f"年化收益率: {results['annual_return']*100:.2f}%") + print(f"基准收益率: {results['annual_benchmark_return']*100:.2f}%") + print(f"超额收益: {results['excess_return']*100:.2f}%") + print(f"年化波动率: {results['annual_volatility']*100:.2f}%") + print(f"夏普比率: {results['sharpe_ratio']:.3f}") + print(f"基准夏普: {results['benchmark_sharpe']:.3f}") + print(f"最大回撤: {results['max_drawdown']*100:.2f}%") + print(f"胜率: {results['win_rate']*100:.1f}%") + print(f"信息比率: {results['information_ratio']:.3f}") + + # 投资组合 + print(f"\n🏆 投资组合(前10只):") + print(f"{'='*40}") + top_10 = portfolio.head(10) + display_cols = ['stock_code', 'industry', 'pe_ratio', 'pb_ratio', 'roe', 'composite_value_score', 'weight'] + display_data = top_10[display_cols].copy() + display_data['roe'] = display_data['roe'].apply(lambda x: f"{x*100:.1f}%") + display_data['weight'] = display_data['weight'].apply(lambda x: f"{x*100:.1f}%") + display_data['composite_value_score'] = display_data['composite_value_score'].round(3) + print(display_data.to_string(index=False)) + + # 组合特征 + print(f"\n📊 组合特征:") + print(f"{'='*40}") + print(f"平均PE: {portfolio['pe_ratio'].mean():.1f}") + print(f"平均PB: {portfolio['pb_ratio'].mean():.2f}") + print(f"平均ROE: {portfolio['roe'].mean()*100:.1f}%") + print(f"平均股息率: {portfolio['dividend_yield'].mean()*100:.2f}%") + print(f"平均市值: {portfolio['market_cap'].mean():.1f}亿") + + # 累计收益率 + final_portfolio_return = portfolio_cumulative.iloc[-1] - 1 + final_benchmark_return = benchmark_cumulative.iloc[-1] - 1 + print(f"\n💰 累计收益率:") + print(f"{'='*40}") + print(f"投资组合: {final_portfolio_return*100:.2f}%") + print(f"基准: {final_benchmark_return*100:.2f}%") + print(f"超额: {(final_portfolio_return - final_benchmark_return)*100:.2f}%") + + # 时间统计 + elapsed = (datetime.now() - self.start_time).total_seconds() + print(f"\n⏰ 回测运行时间: {elapsed:.2f}秒") + print(f"🕐 完成时间: {datetime.now().strftime('%H:%M:%S')}") + + # 结论 + print(f"\n🎯 结论:") + print(f"{'='*40}") + if results['excess_return'] > 0: + print(f"✅ 价值投资策略表现优于基准") + if results['sharpe_ratio'] > results['benchmark_sharpe']: + print(f"✅ 风险调整后收益也优于基准") + else: + print(f"⚠️ 风险调整后收益略低于基准") + else: + print(f"❌ 价值投资策略表现弱于基准") + + # 建议 + print(f"\n💡 建议:") + print(f"{'='*40}") + print(f"1. 考虑增加质量因子权重") + print(f"2. 优化估值因子组合") + print(f"3. 增加行业轮动机制") + print(f"4. 考虑市场周期调整") + + # 保存结果 + self.save_results(results, portfolio, portfolio_cumulative, benchmark_cumulative) + + def save_results(self, results, portfolio, portfolio_cumulative, benchmark_cumulative): + """保存结果""" + import os + + # 创建输出目录 + output_dir = "backtest_results" + os.makedirs(output_dir, exist_ok=True) + + # 保存投资组合 + portfolio.to_csv(f"{output_dir}/value_portfolio.csv", index=False) + + # 保存回测结果 + results_df = pd.DataFrame([results]) + results_df.to_csv(f"{output_dir}/backtest_results.csv", index=False) + + # 保存累计收益率 + cumulative_df = pd.DataFrame({ + 'portfolio': portfolio_cumulative, + 'benchmark': benchmark_cumulative + }) + cumulative_df.to_csv(f"{output_dir}/cumulative_returns.csv") + + # 保存报告 + with open(f"{output_dir}/backtest_report.txt", 'w') as f: + f.write("="*60 + "\n") + f.write("价值投资策略回测报告\n") + f.write("="*60 + "\n\n") + f.write(f"回测时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n") + f.write(f"股票数量: {len(portfolio)}\n") + f.write(f"回测周期: 252个交易日\n\n") + + f.write("业绩指标:\n") + f.write("-"*40 + "\n") + for key, value in results.items(): + if 'return' in key or 'drawdown' in key or 'rate' in key: + f.write(f"{key}: {value*100:.2f}%\n") + else: + f.write(f"{key}: {value:.3f}\n") + + print(f"\n💾 结果已保存到 {output_dir}/ 目录") + +def main(): + """主函数""" + backtest = ValueInvestingBacktest() + results, portfolio = backtest.run() + + return results, portfolio + +if __name__ == "__main__": + main() \ No newline at end of file