Skip to content

wonglaitung/fortune

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,514 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

金融智能分析 金融资产和港股智能分析与交易系统

⭐ 如果您觉得这个项目有用,请先给项目Star再Fork,以支持项目发展!⭐

实践人机混合智能的理念,开发具备变现能力的金融资产智能量化分析助手。系统整合大模型智能决策机器学习预测模型,实时监控加密货币、港股、黄金等金融市场。香港股票方面集成11个数据源,以智能副驾的方式为投资者提供全面的市场分析、交易策略验证和买卖建议。


📄 效果文档


📋 目录


核心理念

🤝 人机混合智能

本项目的核心理念是实践人机混合智能,将大模型的推理能力与机器学习的预测能力相结合,为投资者提供更全面、更可靠的决策支持。

人机协作模式

  • 大模型(人类智能的延伸)

    • 深度分析市场环境、技术指标、基本面数据
    • 生成短期和中期投资建议(具体到股票、操作、价格指引、风险提示)
    • 提供板块分析和龙头股识别
    • 进行策略复盘和AI交易分析
  • 机器学习(数据驱动的预测)

    • CatBoost 20天模型准确率60.88%,预测个股涨跌方向
    • 板块特定模型评估不同行业股票的预测准确度
    • 为大模型建议提供量化支撑
  • 智能副驾角色

    • 不是替代投资者,而是辅助决策
    • 提供数据驱动的分析和建议
    • 帮助投资者识别机会和控制风险
    • 最终决策权在投资者手中

人机协同优势

  • 全面性:大模型提供定性分析,机器学习提供定量预测
  • 可靠性:双重验证,大模型建议和ML预测相互印证
  • 灵活性:适应不同投资风格(保守型、稳健型、进取型)
  • 可解释性:大模型提供解释性建议,机器学习提供概率预测

核心优势

🏆 业界领先的性能

大模型智能决策

  • 多维度分析:综合技术指标、基本面、市场环境、板块轮动等多维度信息
  • 智能投资建议:生成短期(日内/数天)和中期(数周-数月)投资建议,包含推荐理由、操作建议、价格指引、风险提示
  • 动态调整:根据市场环境变化,动态调整投资策略和风险控制措施
  • 人机协同:与机器学习预测结果相互印证,提高决策可靠性

机器学习预测模型

  • CatBoost 20天模型:准确率60.88%,F1分数0.6416,标准差2.06%
  • 板块特定模型:为16个板块训练独立模型,评估不同行业股票的预测准确度
  • 真实预测能力:通过Walk-forward验证,评估模型的真实预测能力和泛化能力

🚀 关键特性

大模型智能决策功能

  • 恒生指数及自选股分析:六层分析框架(风险控制、市场环境、基本面、技术面、信号识别、综合评分)
  • 短期投资分析(日内/数天):关注动量、成交量、突破信号,止损位3-5%
  • 中期投资分析(数周-数月):关注趋势持续性、均线排列、资金流向,止损位8-12%,含筹码分布分析
  • 板块分析和龙头识别:l个板块排名,MVP模型识别龙头股
  • 主力资金追踪:1-6层分析框架,识别建仓和出货信号
  • AI交易分析:复盘AI推荐策略有效性
  • 大模型建议自动保存:保存短期和中期建议到文件,方便综合对比分析

综合分析系统(每日自动执行)

  • ✅ 整合大模型建议和CatBoost预测结果
  • ✅ 生成详细的综合买卖建议
  • ✅ 包含实时技术指标、模拟交易记录、板块分析等14个部分

数据获取与监控

  • ✅ 11个数据源:加密货币、港股、黄金、美股、基本面、股息、IPO等
  • ✅ 实时技术指标:恒生指数及自选股的RSI、MACD、布林带、ATR等
  • ✅ 模拟交易记录:最近48小时模拟交易记录以表格格式展示

市场分析功能

  • 牛熊市分析自动化:每周一自动执行,分析市场环境和股票表现
  • 板块表现分析自动化:每月1号自动执行,按股票类型分析准确度
  • 股票表现TOP 10排名分析:每月1号自动执行,按不同指标排名
  • 月度趋势分析:2024-2026年跨年度回测月度分析,识别季节性规律
  • 筹码分布分析:基于成交量的分箱法,计算筹码集中度和拉升阻力

风险管理功能

  • ✅ VaR(风险价值)和ES(预期损失)计算
  • ✅ 止损止盈计算(基于ATR或百分比)
  • ✅ 最大回撤计算
  • ✅ 风险控制检查(止损/止盈/Trailing Stop)

自动化调度

  • ✅ 11个GitHub Actions工作流全自动运行
  • ✅ 无需服务器,零成本部署
  • ✅ 覆盖全天候市场监控和智能分析

⚠️ 重要提示

  • 机器学习模型仅供参考:CatBoost 20天模型准确率60.88%,仅供参考,不构成投资建议
  • 风险提示:本系统仅供学习和研究使用,不构成投资建议
  • 人机协作:系统是智能副驾,最终决策权在投资者手中
  • 市场波动:市场存在不确定性,预测模型无法保证100%准确

核心功能

数据获取与监控

系统整合11个数据源,为大模型智能决策提供全面的数据支撑:

  • 加密货币监控:比特币、以太坊价格和技术分析(每小时)
  • 港股异常检测:价格和成交量异常检测(每天凌晨2点)
  • 港股IPO信息:最新IPO信息(每天)
  • 黄金市场分析:黄金价格和投资建议(每小时)
  • 恒生指数监控:价格、技术指标、交易信号(交易时段)
  • 美股市场数据:标普500、纳斯达克、VIX、美国国债收益率
  • 基本面数据:财务指标、利润表、资产负债表、现金流量表
  • 股息信息:自动获取股息和除净日信息
  • 股票新闻:批量获取自选股新闻,用于情感分析

港股异常检测

  • 双异常检测:价格 + 成交量异常(基于Z-Score)
  • 深度分析模式:Z-Score + Isolation Forest(多维特征检测)
  • 时间间隔支持:支持每日(--time-interval day)和每小时(--time-interval hour)两种检测模式
  • 自动参数适配:每日模式(window_size=30, period='3mo')、每小时模式(window_size=72, period='1mo')
  • 日期参数支持:支持检测指定日期的异常(--date 参数)
  • 异常原因分析:分析价格、成交量、多维特征异常的具体原因
  • 异常日期数据:使用异常发生日期的技术指标(RSI、布林带、MACD、涨跌幅)
  • 邮件表格增强:显示异常日期、异常原因、技术指标等详细信息
  • 交易时段误报防护:每小时监控只在交易时段执行(09:30-12:00, 13:00-16:00)
  • 每小时深度分析:交易时段每小时执行深度分析(Z-Score + Isolation Forest)

大模型智能决策

恒生指数及自选股分析(hsi_email.py)

六层分析框架

  1. 第一层:风险控制检查(止损/止盈/Trailing Stop)
  2. 第二层:市场环境评估(VIX、成交额、换手率、系统性风险)
  3. 第三层:基本面质量评估(基本面评分、估值水平)
  4. 第四层:技术面分析(多周期趋势、相对强度、技术指标协同)
  5. 第五层:信号识别(建仓/出货信号筛选)
  6. 第六层:综合评分与决策(最终判断)

风险管理

  • VaR(风险价值)计算:1日VaR(超短线)、5日VaR(波段交易)、20日VaR(中长期)
  • ES(预期损失)计算:尾部风险量化
  • 最大回撤计算
  • 止损止盈计算(基于ATR或百分比)

投资建议类型

  • 短期投资分析(日内/数天):

    • 进取型短期分析(可选)
    • 稳健型短期分析
    • 关注短期动量、成交量变化、突破信号
    • 止损位设置较紧(3-5%),快速止损保护本金
  • 中期投资分析(数周-数月):

    • 稳健型中期分析
    • 保守型中期分析(可选)
    • 关注趋势持续性、均线排列、资金流向
    • 止损位设置较宽(8-12%),允许中期波动
    • 筹码分布分析
      • 上方筹码比例:评估拉升阻力(低/中/高)
      • 筹码集中度:评估主力控盘程度(高/中/低)
      • 阻力等级分类:提供突破难度的直观判断

板块分析

  • 16个板块排名和龙头股识别
  • 业界标准MVP模型(动量+成交量+基本面)
  • 支持小市值板块的龙头股识别

模拟交易

  • 最近48小时模拟交易记录
  • 止损止盈建议
  • 连续信号跟踪

大模型建议自动保存:短期和中期建议保存到 data/llm_recommendations_YYYY-MM-DD.txt

主力资金追踪(hk_smart_money_tracker.py)

1-6层分析框架

  • 第1层:数据准备和基础指标计算
  • 第2层:建仓信号识别
  • 第3层:出货信号识别
  • 第4层:信号强度评估
  • 第5层:风险评估
  • 第6层:综合决策

投资风格支持

  • 进取型:关注动量,快速进出
  • 稳健型:平衡分析,风险可控
  • 保守型:关注基本面,长期持有

筹码分布分析集成

  • 为每只股票计算筹码分布
  • 识别拉升阻力
  • 影响建仓/出货评分

AI交易分析(ai_trading_analyzer.py)

  • 复盘AI推荐策略有效性
  • 分析交易记录和收益率
  • 生成改进建议

恒生指数策略(hsi_llm_strategy.py)

  • 大模型生成恒生指数交易策略
  • 支持多种技术指标
  • 提供进场/出场信号

综合分析系统

每日自动执行,整合大模型建议和CatBoost预测结果,生成实质买卖建议,包含14个部分的内容(详见独立章节)。

模拟交易系统

  • 真实模拟:基于大模型建议的模拟交易系统
  • 风险控制:自动止损机制
  • 详细记录:完整的交易日志和持仓分析
  • 多种策略:支持保守型、平衡型、进取型投资偏好
  • 大模型提示词优化:确保大模型提取所有买卖建议,不受策略建议影响

机器学习预测模型

机器学习预测模型作为大模型智能决策的补充,提供数据驱动的量化预测

模型架构

  • CatBoost 20天模型:主要使用的预测模型(准确率60.88%,F1分数0.6416)
  • 板块特定模型:为16个板块训练独立模型(银行、半导体、科技等)
  • 多周期预测:预测1天、5天、20天后的涨跌
  • 特征工程:892个全量特征(技术指标、基本面、美股市场、情感指标等)
    • 滚动统计特征(偏度、峰度、多周期波动率)
    • 价格形态特征(日内振幅、影线比例、缺口)
    • 量价关系特征(背离、OBV、成交量波动率)
    • 长期趋势特征(MA120/250、长期收益率、长期波动率、长期ATR、长期成交量、长期支撑阻力位、长期RSI)
    • 主题分布特征(LDA主题建模,10个主题概率分布)
    • 主题情感交互特征(10个主题 × 5个情感指标 = 50个交互特征)
    • 预期差距特征(新闻情感相对于市场预期的差距,5个特征)
    • 市场环境自适应特征(8个)
    • 风险管理特征(18个)
    • 事件驱动特征(9个):分红特征(3个)、财报日期特征(3个)、财报超预期特征(3个)
  • 特征选择:使用全量特征(892个),依赖CatBoost的自动特征选择机制

CatBoost 模型优势

  • 自动处理分类特征,无需手动编码
  • 更好的默认参数,减少调参工作量
  • 更快的训练速度(1-2分钟)
  • 更好的泛化能力,减少过拟合
  • 稳定性显著提升(标准差2.06%)

板块特定模型性能(Walk-forward验证)

Walk-forward验证是业界标准的模型验证方法,每个fold重新训练模型,评估真实预测能力

银行股板块(6只股票,12-fold验证):

  • 买入胜率:50.72%(突破50%盈亏线)
  • 平均收益率:2.98%(20天持有期)
  • 年化收益率:35.82%
  • 夏普比率:3.04 ⭐⭐⭐⭐⭐(业界优秀标准,基于Fold收益率计算)
  • 最大回撤:-13.30%
  • 稳定性评级:中(良好)

异常检测与动态策略优化(2026-04-03):

  • 异常检测验证:相关系数0.1843,Granger因果检验显著
  • Walk-forward验证结果:异常期间波动率+79%,胜率52.38%
  • 策略优化建议:高异常55-60%仓位、+0.03阈值调整
  • 业界标准验证:风险平价仓位55.75%,符合Binance/Two Sigma标准

关键发现

  • ✅ 银行股夏普比率3.04是优秀的,远超业界标准(>1.0)
  • ✅ 银行股回撤仅-13.30%,符合防御性资产特性
  • ✅ 半导体股夏普比率0.126较低,需继续优化
  • ✅ 银行股和半导体股表现最佳,推荐继续使用板块模型
  • ✅ 异常期间波动率显著增加,需动态调整仓位和止损

预测概率与实际涨幅相关性

基于6,328条回测交易记录的实证分析,验证了预测概率与实际涨幅的强正相关关系:

  • 相关系数:0.6289(强正相关)
  • R²值:0.3956(概率能解释39.56%的涨幅变化)
  • 关键发现:预测概率越大,实际涨幅也越大;概率>0.70的信号,20天平均涨幅9.25%(年化116.55%),胜率93.9%

深度学习模型对比(实验性)

经过严格测试,CatBoost 远优于深度学习模型

模型 准确率 F1分数 推荐指数
CatBoost 60.88% 0.6416 ⭐⭐⭐⭐⭐
LSTM 51.79% 0.0000
Transformer 51.15% 0.1303

结论:继续使用 CatBoost 单模型作为主要预测模型,深度学习模型仅用于对比研究。

融合模型方法(对比研究)

系统支持5种融合方法,用于对比研究:

融合方法 年化收益率 夏普比率 买入信号胜率
CatBoost 单模型 79.54% 1.20 30.02%
加权平均 3.16% 0.32 22.75%
简单平均 4.01% 0.40 23.63%
投票机制 2.31% 0.36 22.58%
动态市场 2.40% 0.33 22.96%

注意:根据历史回测结果,所有融合方法的表现均不如CatBoost单模型,建议优先使用CatBoost单模型。融合模型仅用于对比研究。


综合分析系统

整合大模型智能决策与机器学习预测模型,生成实质买卖建议

功能说明

综合分析系统每日自动执行,整合大模型建议和CatBoost预测结果,进行综合对比分析,生成实质的买卖建议。

执行流程

  1. 步骤0:训练 CatBoost 20天模型(使用全量特征)
  2. 步骤1:生成 CatBoost 单模型预测
  3. 步骤2:生成大模型建议(短期和中期)
  4. 步骤3:综合对比分析(整合大模型建议和CatBoost预测)
  5. 步骤4:生成详细的综合买卖建议
  6. 步骤5:发送邮件通知(每日自动发送)

CatBoost 预测结果展示

  • 显示全部28只股票的 CatBoost 预测结果
  • 添加"预测方向"栏位(上涨/下跌)
  • 添加"预测概率"栏位
  • 添加"置信度"栏位(高/中/低)
  • 添加"阻力标识"栏位:
    • ✅:低阻力(上方筹码 < 30%),拉升容易
    • ⚠️:中等阻力(30-60%),注意风险
    • 🔴:高阻力(> 60%),拉升困难
    • N/A:无法计算(数据不足)
  • 筹码分布摘要:
    • 低/中/高阻力股票数量统计
    • 高阻力股票列表
    • 阻力标识说明

决策框架

买入策略

  • 强烈买入信号且预测概率>0.60
  • 大模型建议买入且CatBoost预测上涨

持有策略

  • 预测概率>0.50且无卖出信号
  • 大模型建议持有

卖出策略

  • 预测概率≤0.50且大模型建议卖出
  • 止损位被触发

数据流

┌─────────────────────────────────────────────────────────────────┐
│                    数据流(人机混合智能)                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                    多数据源获取                         │   │
│  │  • 港股数据 (yfinance, 腾讯财经, AKShare)              │   │
│  │  • 加密货币数据 (CoinGecko)                             │   │
│  │  • 黄金数据 (yfinance)                                  │   │
│  │  • 美股市场数据 (yfinance)                              │   │
│  │  • 基本面数据 (AKShare)                                │   │
│  │  • 股息信息 (AKShare)                                  │   │
│  │  • IPO信息 (AASTOCKS)                                  │   │
│  │  • 股票新闻 (腾讯财经等)                               │   │
│  └─────────────────────┬───────────────────────────────────┘   │
│                        │                                       │
│                        ▼                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                  数据服务层                            │   │
│  │  ┌─────────────────────────────────────────────────┐   │   │
│  │  │ 技术分析引擎                                   │   │   │
│  │  │ • 80+ 技术指标 (RSI, MACD, 布林带, ATR等)      │   │   │
│  │  │ • 筹码分布分析 (HHI指数, 拉升阻力)             │   │   │
│  │  │ • 趋势识别 (均线排列, 突破信号)                │   │   │
│  │  │ • TAV评分系统 (趋势+动量+成交量)                │   │   │
│  │  └──────────────────┬──────────────────────────────┘   │   │
│  │                     │                                  │   │
│  │  ┌─────────────────────────────────────────────────┐   │   │
│  │  │ 基本面分析                                    │   │   │
│  │  │ • 财务指标 (PE, PB, ROE等)                     │   │   │
│  │  │ • 估值水平                                     │   │   │
│  │  └──────────────────┬──────────────────────────────┘   │   │
│  │                     │                                  │   │
│  │  ┌─────────────────────────────────────────────────┐   │   │
│  │  │ 板块分析                                      │   │   │
│  │  │ • 16个板块排名                                 │   │   │
│  │  │ • 龙头股识别 (MVP模型)                        │   │   │
│  │  └──────────────────┬──────────────────────────────┘   │   │
│  └─────────────────────┼───────────────────────────────────┘   │
│                        │                                       │
│                        ├──────────────────────┐                │
│                        ▼                      ▼                │
│  ┌─────────────────────────┐    ┌─────────────────────────┐  │
│  │   大模型智能决策层      │    │   机器学习预测层         │  │
│  ├─────────────────────────┤    ├─────────────────────────┤  │
│  │ 恒生指数及自选股分析    │    │ CatBoost 20天模型 ⭐    │  │
│  │ • 六层分析框架          │    │ • 500+ 精选特征         │  │
│  │ • 短期/中期投资建议     │    │ • 准确率60.88%          │  │
│  │ • 板块分析和龙头识别    │    │ • F1分数0.6416          │  │
│  ├─────────────────────────┤    ├─────────────────────────┤  │
│  │ 主力资金追踪            │    │ 板块特定模型            │  │
│  │ • 0-5层分析框架         │    │ • 16个板块独立模型      │  │
│  │ • 建仓/出货信号         │    │ • Walk-forward验证      │  │
│  │ • 筹码分布集成          │    │ • 银行股夏普比率3.04    │  │
│  ├─────────────────────────┤    ├─────────────────────────┤  │
│  │ 恒生指数涨跌预测        │    │ 批量回测                │  │
│  │ • 加权评分模型          │    │ • 28只股票回测          │  │
│  │ • 20个关键特征          │    │ • 性能评估和排名        │  │
│  └───────────┬─────────────┘    └───────────┬─────────────┘  │
│              │                              │                  │
│              └──────────────┬───────────────┘                  │
│                             ▼                                  │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │               综合分析系统(每日自动执行)               │   │
│  │  • 整合大模型建议和CatBoost预测结果                     │   │
│  │  • 双重验证(定性分析 + 定量预测)                      │   │
│  │  • 生成实质买卖建议                                     │   │
│  │  • 14个部分信息参考                                     │   │
│  └─────────────────────┬───────────────────────────────────┘   │
│                        │                                       │
│                        ▼                                       │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                   输出层                               │   │
│  │  ┌─────────────────────────────────────────────────┐   │   │
│  │  │ 邮件通知                                       │   │   │
│  │  │ • 综合买卖建议                                 │   │   │
│  │  │ • 实时技术指标                                 │   │   │
│  │  │ • 模拟交易记录                                 │   │   │
│  │  │ • 板块分析和排名                               │   │   │
│  │  └─────────────────────────────────────────────────┘   │   │
│  │  ┌─────────────────────────────────────────────────┐   │   │
│  │  │ 数据保存                                       │   │   │
│  │  │ • 大模型建议 (llm_recommendations_*.txt)        │   │   │
│  │  │ • CatBoost预测 (catboost_predictions_*.csv)     │   │   │
│  │  │ • 综合建议 (comprehensive_recommendations_*.txt)│  │   │
│  │  │ • 预测历史 (prediction_history.json)            │   │   │
│  │  └─────────────────────────────────────────────────┘   │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

核心优势:
  ✅ 人机混合智能:大模型提供定性分析,机器学习提供定量预测
  ✅ 双重验证:大模型建议与ML预测相互印证,提高决策可靠性
  ✅ 全数据源:11个数据源提供全面的市场信息
  ✅ 实时监控:每小时、每日、每周、每月自动化分析
  ✅ 零成本部署:GitHub Actions全自动运行,无需服务器

技术架构

金融信息监控与智能交易系统
│
├── 数据获取层
│   ├── 加密货币数据 (CoinGecko)
│   ├── 港股数据 (yfinance, 腾讯财经, AKShare)
│   ├── 黄金数据 (yfinance)
│   ├── 基本面数据 (AKShare)
│   └── 美股市场数据 (yfinance)
│
├── 数据服务层
│   ├── 技术分析 (RSI、MACD、布林带、ATR等)
│   │   └── 筹码分布分析(HHI指数、拉升阻力分析)
│   ├── 基本面分析
│   ├── 板块分析
│   └── 新闻过滤
│
├── 分析层(大模型智能决策)
│   ├── 恒生指数及自选股分析(六层分析框架)
│   ├── 主力资金追踪(0-5层分析框架)
│   ├── AI交易分析
│   ├── 恒生指数策略
│   └── 综合分析(每日自动执行)
│
├── 机器学习层(预测模型)
│   ├── CatBoost 单模型(主要使用)⭐
│   ├── LightGBM 模型
│   ├── GBDT 模型
│   ├── LSTM 模型(对比实验,不推荐)
│   ├── Transformer 模型(对比实验,不推荐)
│   ├── 融合模型(5种方法)
│   ├── 板块特定模型
│   ├── Walk-forward验证
│   └── 批量回测(28只股票)
│
├── 交易层
│   └── 模拟交易系统
│
├── 工具脚本层
│   ├── 数据诊断工具
│   ├── 特征评估工具
│   └── 训练工具
│
└── 服务层
    ├── 大模型服务(Qwen API)
    └── 邮件服务

项目结构

fortune/
├── 核心脚本
│   ├── ai_trading_analyzer.py          # AI交易分析器
│   ├── detect_stock_anomalies.py       # 港股异常检测器(支持每日/每小时,交易时段检测)
│   ├── crypto_email.py                 # 加密货币监控器
│   ├── gold_analyzer.py                # 黄金市场分析器
│   ├── hk_ipo_aastocks.py              # IPO信息获取器
│   ├── hk_smart_money_tracker.py       # 主力资金追踪器
│   ├── hsi_email.py                    # 恒生指数监控器
│   ├── hsi_prediction.py               # 恒生指数涨跌预测器
│   ├── simulation_trader.py            # 模拟交易系统
│   ├── comprehensive_analysis.py       # 综合分析脚本(每日自动执行)
│   └── ...
│
├── 数据服务模块 (data_services/)
│   ├── technical_analysis.py           # 通用技术分析工具
│   │   └── get_chip_distribution()     # 筹码分布分析
│   ├── fundamental_data.py             # 基本面数据获取器
│   ├── hk_sector_analysis.py           # 板块分析器
│   └── ...
│
├── 机器学习模块 (ml_services/)
│   ├── ml_trading_model.py             # 机器学习交易模型
│   │   ├── LightGBMModel               # LightGBM模型
│   │   ├── GBDTModel                   # GBDT模型
│   │   ├── CatBoostModel               # CatBoost模型 ⭐
│   │   ├── EnsembleModel               # 融合模型
│   │   ├── LSTMModel                   # LSTM模型(不推荐)
│   │   └── TransformerModel            # Transformer模型(不推荐)
│   ├── batch_backtest.py               # 批量回测脚本
│   ├── backtest_evaluator.py           # 回测评估模块
│   ├── backtest_monthly_analysis.py    # 月度趋势分析脚本
│   ├── stock_monthly_trend_analysis.py # 股票月度趋势对比脚本
│   ├── walk_forward_by_sector.py       # 板块Walk-forward验证 ⭐
│   ├── train_sector_model.py           # 板块模型训练
│   ├── evaluate_sector_model.py        # 板块模型评估
│   ├── us_market_data.py               # 美股市场数据
│   ├── feature_selection.py            # 特征选择模块
│   ├── topic_modeling.py               # LDA主题建模模块
│   ├── lstm_experiment.py              # LSTM对比实验脚本
│   ├── transformer_experiment.py       # Transformer对比实验脚本
│   ├── sector_performance_analysis.py  # 板块表现分析脚本
│   ├── ranking_analysis.py             # 股票表现排名分析脚本
│   ├── performance_monitor.py          # 预测性能监控脚本
│   ├── BACKTEST_GUIDE.md               # 回测功能使用指南
│   └── ...
│
├── 大模型服务 (llm_services/)
│   ├── qwen_engine.py                  # Qwen大模型接口
│   └── sentiment_analyzer.py           # 情感分析模块
│
├── 自动化脚本 (scripts/)
│   ├── run_comprehensive_analysis.sh   # 综合分析自动化脚本
│   ├── run_model_comparison.sh         # 模型对比自动化脚本
│   ├── run_bull_bear_analysis.sh      # 牛熊市分析自动化脚本
│   ├── run_sector_analysis.sh         # 板块表现分析自动化脚本
│   ├── run_ranking_analysis.sh        # 股票表现排名分析自动化脚本
│   ├── train_and_predict_all.sh       # 训练和预测自动化脚本
│   ├── data_diagnostic.py             # 数据诊断工具
│   ├── feature_evaluation.py          # 特征评估工具
│   └── train_with_feature_selection.py # 训练工具
│
├── 配置文件
│   ├── config.py                       # 全局配置
│   ├── requirements.txt                # 项目依赖
│   ├── set_key.sh                      # 环境变量配置(已加入.gitignore)
│   ├── set_key.sh.sample               # 环境变量配置模板
│   ├── update_data.sh                  # 数据更新工具
│   ├── send_alert.sh                   # 定时任务发送工具
│   └── .github/workflows/              # GitHub Actions工作流配置
│
├── 文档目录 (docs/)
│   ├── CATBOOST_SIGNAL_QUALITY_ANALYSIS.md  # CatBoost信号质量分析
│   ├── model_importance_std_analysis.md     # 模型重要性标准差分析
│   ├── feature_selection_methods_comparison.md # 特征选择方法对比
│   ├── feature_selection_summary.md         # 特征选择总结
│   ├── backtest_results_report.md           # 回测结果报告
│   ├── backtest_horizon_explanation.md      # 回测周期说明
│   ├── DEEP_LEARNING_COMPARISON_README.md   # 深度学习模型对比实验指南
│   ├── TIME_SERIES_LEAKAGE_ANALYSIS.md      # 时间序列泄漏分析
│   ├── BULL_BEAR_ANALYSIS_GUIDE.md          # 牛熊市分析使用指南
│   ├── 不同股票类型分析框架对比.md
│   └── IMPROVEMENT_POINTS_FROM_DAILY_STOCK_ANALYSIS.md # 从daily_stock_analysis项目学到的提升点
│
├── 输出文件 (output/)
│   ├── batch_backtest_*.json           # 批量回测详细数据
│   ├── batch_backtest_summary_*.txt    # 批量回测汇总报告
│   ├── model_comparison_report_*.txt   # 模型对比汇总报告
│   ├── lstm_experiment_*.json          # LSTM对比实验详细数据
│   ├── transformer_experiment_*.json   # Transformer对比实验详细数据
│   ├── sector_performance_analysis_*.csv   # 板块表现分析CSV数据
│   ├── sector_performance_analysis_*.json  # 板块表现分析JSON数据
│   ├── sector_performance_analysis_*.md     # 板块表现分析Markdown报告
│   ├── ranking_analysis_*.csv              # 股票表现排名分析CSV数据
│   ├── ranking_analysis_*.json             # 股票表现排名分析JSON数据
│   ├── ranking_analysis_*.md                # 股票表现排名分析Markdown报告
│   ├── performance_report_*.md              # 预测性能月度报告
│   └── ...
│
└── 数据文件 (data/)
    ├── actual_porfolio.csv             # 实际持仓数据
    ├── prediction_history.json         # 预测历史记录
    ├── llm_recommendations_*.txt       # 大模型建议文件
    ├── ml_trading_model_catboost_predictions_20d.csv  # CatBoost预测结果
    ├── comprehensive_recommendations_*.txt  # 综合买卖建议文件
    ├── model_accuracy.json             # 模型准确率信息
    └── ...

自动化调度

模型训练和预测时机

训练时机

  • 最佳时机:周末或完市后(数据完整且不影响交易)
  • 避免时机:开市中(数据不稳定,资源占用)、开市前(数据不足)
  • 训练频率
    • CatBoost 20天模型:每月1次或当市场环境发生重大变化时
    • 板块模型:每季度1次
    • 特征选择:只执行一次,除非特征工程发生重大变化

预测/使用时机

  • 最佳预测时机:完市后(16:00 HKT),使用当日完整数据预测次日
  • 恒生指数预测:开市前(06:00 HKT),预测当日走势
  • 避免预测时机:开市前(数据不足,预测质量低)、开市中(数据不完整)

推荐工作流

操作 时机 说明
模型训练 周末或完市后 数据完整,不影响交易
模型预测 完市后(16:00 HKT) 使用当日完整数据预测次日
恒指预测 开市前(06:00 HKT) 预测当日走势
综合分析 完市后(16:00 HKT) 生成次日买卖建议
避免开市中操作 09:30-16:00 数据不稳定,资源占用

时间线参考

  • 06:00 HKT:查看恒指预测邮件
  • 09:30-16:00:开市中监控(可选)
  • 16:00 HKT:综合分析邮件自动发送,查看次日买卖建议
  • 20:00 HKT:更新交易记录

GitHub Actions 工作流

系统使用 GitHub Actions 进行全自动化调度,无需服务器部署,零硬件成本运行。目前有12个工作流正常运行,覆盖全天候市场监控和智能分析。

工作流 功能 执行时间 说明
  • hourly-crypto-monitor.yml | 每小时加密货币监控 | 每小时 | 监控比特币、以太坊价格和技术分析 | | stock-anomaly-detection.yml | 港股异常检测 | 每天凌晨2点(香港时间) | 港股价格和成交量异常检测,避免交易时段误报 | | hourly-gold-monitor.yml | 每小时黄金监控 | 每小时 | 监控黄金价格和投资建议 | | hsi-prediction.yml | 恒生指数涨跌预测 | 周一到周五 UTC 22:00(香港时间上午6:00) | 预测恒生指数短期走势 | | comprehensive-analysis.yml | 综合分析邮件 | 周一到周五 UTC 08:00(香港时间下午4:00) | 整合大模型建议和CatBoost预测结果 | | batch-stock-news-fetcher.yml | 批量股票新闻获取 | 每天 UTC 22:00 | 批量获取自选股新闻,用于情感分析 | | daily-ipo-monitor.yml | IPO 信息监控 | 每天 UTC 02:00 | 获取最新IPO信息 | | daily-ai-trading-analysis.yml | AI 交易分析日报 | 周一到周五 UTC 08:30 | AI驱动的交易策略分析 | | weekly-comprehensive-analysis.yml | 周综合交易分析 | 每周日 UTC 01:00(香港时间上午9:00) | 全面周度分析 | | bull-bear-analysis.yml | 牛熊市分析自动化 | 每周日 UTC 17:00(香港时间周一上午1:00) | 分析市场环境和股票表现 | | sector-analysis.yml | 板块表现分析自动化 | 每月1号 UTC 19:00(香港时间上午2:00) | 按股票类型分析模型准确度 | | ranking-analysis.yml | 股票表现TOP 10排名分析 | 每月1号 UTC 19:00(香港时间上午3:00) | 按不同指标排名 | | performance-monitor.yml | 预测性能月度报告 | 每月1号 UTC 20:00(香港时间上午4:00) | 评估预测准确率并发送报告 |

配置说明:详细的配置步骤请参考文档末尾的快速开始章节中的"🌟 无服务器部署 - GitHub Actions 自动化"部分。

运行成本

GitHub Actions 免费额度

  • 公开仓库:无限制
  • 私有仓库:每月2000分钟免费
  • 每个工作流运行时间通常在1-5分钟
  • 本项目总运行时间每月约150-300分钟
  • 结论:免费额度充足,完全够用

性能数据

最新模型准确率

CatBoost 20天模型(推荐)

  • 准确率:60.88%
  • F1分数:0.6416
  • 标准差:2.06%
  • 训练时间:1-2分钟
  • 特征数量:500+

其他模型(对比研究)

  • GBDT 20天:准确率57.94%,F1分数0.7007
  • LightGBM 20天:准确率58.93%,F1分数0.7102
  • CatBoost 1天:准确率63.09%(⚠️ 不推荐,存在过拟合风险)

2024-2026年跨年度回测月度分析

总体性能指标

  • 回测时间范围:2024-01-02 至 2026-01-02
  • 总交易机会:13,457
  • 买入信号数:7,554(占比56.15%)
  • 整体准确率:81.53%
  • 平均收益率:3.05%(20天持有期)

季节性规律

  • 上半年平均收益率:3.79%
  • 下半年平均收益率:2.74%
  • 最佳月份:2025-01(收益率16.58%)
  • 最差月份:2025-03(收益率-7.78%)

项目状态

维度 状态 说明
核心功能 ✅ 完整 数据获取、分析、交易、通知全覆盖
恒生指数预测 ✅ 完整 基于特征重要性的加权评分模型
深度学习对比实验 ✅ 完整 LSTM、Transformer与CatBoost对比评估
F1分数指标 ✅ 完整 模型性能评估中加入F1分数指标
模型对比回测 ✅ 完整 支持3个基本模型和5种融合方法的批量回测
月度趋势分析 ✅ 完整 2024-2026年跨年度回测月度分析
股票月度趋势对比 ✅ 完整 相关性分析、波动性分析、异常值检测
牛熊市分析自动化 ✅ 完整 每周一自动执行,分析市场环境和股票表现
板块表现分析自动化 ✅ 完整 每月1号自动执行,按股票类型分析模型准确度
股票表现TOP 10排名分析 ✅ 完整 每月1号自动执行,按不同指标排名
预测性能监控 ✅ 完整 每月1号自动执行,评估预测准确率并发送报告
筹码分布分析 ✅ 完整 基于成交量的简单分箱法,计算筹码集中度和拉升阻力
板块Walk-forward验证 ✅ 完整 业界标准的板块模型验证,评估真实预测能力
市场环境自适应过滤 ✅ 完整 基于ADX+波动率双因子,动态调整过滤条件
数据泄漏修正 ✅ 完整 系统性修正10+个特征,使用.shift(1)确保滞后数据
模块化架构 ✅ 完成 data_services、llm_services、ml_services
ML模型 ✅ 顶尖 CatBoost 20天准确率60.88%,F1分数0.6416
批量回测 ✅ 完整 支持28只股票批量回测
综合分析 ✅ 稳定 每日自动执行,整合大模型建议和CatBoost预测
交易记录展示 ✅ 完整 最近48小时模拟交易记录以表格格式展示
实时指标集成 ✅ 完整 集成 hsi_email.py 的实时技术指标
自动化 ✅ 稳定 12个GitHub Actions工作流正常运行
文档 ✅ 完整 README、AGENTS、BACKTEST_GUIDE齐全
数据验证 ✅ 严格 无数据泄漏,时间序列交叉验证
风险管理 ⚠️ 可优化 可添加VaR、ES、压力测试
Web界面 ❌ 未实现 可考虑添加可视化界面

注意事项

模型性能基准

性能等级 准确率范围 说明
随机/平衡基线 ≈50% 随机猜测水平
常见弱信号 ≈51-55% 简单动量/基准模型
有意义的改进 ≈55-60% 可交易边际
非常好/罕见 ≈60-65% 优秀模型
异常高(需怀疑) >65% 可能存在数据泄漏

置信度阈值详细分析

基于12个Fold的Walk-forward验证结果(银行股板块,2024-01-01至2025-12-31):

整体性能对比

指标 阈值 0.55 阈值 0.6 阈值 0.65
年化收益率 37.59% 39.58% 40.15%
买入信号胜率 50.72% 50.40% 50.88%
平均准确率 62.97% 61.30% 63.10%
夏普比率(基于 Fold) 3.04 3.24 3.31
索提诺比率 0.8369 0.9287 0.9391
最大回撤 -13.30% -13.30% -12.97%
总买入信号数 706 695 615

说明

  • 夏普比率基于 Fold 收益率计算(业界标准方法),使用非重叠样本

  • 计算公式:(年化收益率 - 无风险利率 2%) / 年化标准差

  • 所有阈值夏普比率均 > 3.0,属于业界优秀水平(>1.0 即为优秀)

关键发现

  • ✅ 阈值0.6的综合评分最高(78.7分 vs 0.55: 73.9分)
  • ⚠️ 阈值0.65的边际效益递减(仅比0.6提升0.9分)
  • ⚠️ 阈值0.65的信号减少显著(-12.9%)
  • ✅ 阈值0.65在50%的Fold(6/12)表现最佳

12个Fold级别推荐

Fold 市场环境 推荐阈值 理由
1 牛市 0.6/0.65 收益率最高(6.54%)
2 牛市 0.65 胜率最高(54.05%)
3 震荡市 0.6 收益率改善最大(+0.87%)
4 震荡市 0.55 收益率最高(0.26%),胜率最高(71.74%)
5 牛市 0.6 胜率最高(68.00%)
6 牛市 0.55 收益率最高(5.06%),胜率最高(60.29%)
7 牛市 0.6 收益率最高(6.32%)
8 震荡市 0.65 从负转正(0.04%)⭐
9 震荡市 0.65 胜率最高(58.06%)
10 牛市 0.6/0.65 收益率几乎相同
11 牛市 0.65 收益率最高(5.31%),准确率最高(74.00%)
12 牛市 0.55 收益率最高(-0.85%),胜率最高(59.26%)

💡 关键洞察

  1. 市场环境是关键

    • 牛市:三个阈值相似,0.6交易机会更多
    • 震荡市:0.65表现最佳(Fold 3、8改善显著)
  2. 边际效益递减

    • 0.55→0.6:改善显著
    • 0.6→0.65:改善有限
  3. 稳定性改善持续

    • 阈值0.65的胜率标准差最低(9.31%)
  4. 交易机会代价显著

    • 阈值0.65的信号减少12.9%

最终推荐:阈值0.6(综合评分提升显著,代价可接受)

详细分析报告:

  • 12个Fold详细对比:output/walk_forward_12_folds_detailed_analysis_055_vs_060_vs_065.md
  • 综合对比分析:output/threshold_optimization_analysis_060_vs_065_vs_055.md

其他注意事项

  1. 置信度阈值选择

    • 保守型投资者:0.60-0.65(风险控制优先)
    • 平衡型投资者:0.55(收益与风险平衡)⭐ 推荐
    • 进取型投资者:0.50-0.55(追求更高收益)
  2. 数据验证:严格的时间序列交叉验证,无数据泄漏,日期索引保留,按时间顺序排列

  3. 数据源限制:部分数据源可能有访问频率限制

  4. 缓存机制:基本面数据缓存7天,可手动清除

  5. 交易时间:模拟交易系统遵循港股交易时间

  6. 风险提示:本系统仅供学习和研究使用,不构成投资建议

  7. API密钥:请妥善保管API密钥,不要提交到版本控制


依赖项

yfinance        # 金融数据获取
requests        # HTTP请求
pandas          # 数据处理
numpy           # 数值计算
akshare         # 中文财经数据
matplotlib      # 数据可视化
lightgbm        # 机器学习模型(LightGBM)
catboost        # 机器学习模型(CatBoost)主要模型
scikit-learn    # 机器学习工具库
jieba           # 中文分词
nltk            # 自然语言处理
torch           # PyTorch深度学习框架(深度学习模型,需要单独安装,不推荐)

使用指南

本章节提供完整的使用指南,分为快速开始和进阶使用两部分。

快速开始(3分钟上手)

适用场景:已完成安装配置的用户,快速体验核心功能

快速体验核心功能

已完成安装配置的用户,直接使用以下命令快速体验

快速体验核心功能

# 1. 恒生指数及自选股智能分析(最常用)
python hsi_email.py

# 2. 综合分析(整合大模型建议和CatBoost预测)
./scripts/run_comprehensive_analysis.sh

# 3. 主力资金追踪
python hk_smart_money_tracker.py

# 4. 加密货币价格监控
python crypto_email.py

模型训练和预测

# 训练 CatBoost 20天模型(推荐)
python ml_services/ml_trading_model.py --mode train --horizon 20 --model-type catboost 

# 生成预测
python ml_services/ml_trading_model.py --mode predict --horizon 20 --model-type catboost

# 批量回测(28只股票)
python3 ml_services/batch_backtest.py --model-type catboost --horizon 20 --confidence-threshold 0.6

常用分析工具

# 板块Walk-forward验证(业界标准方法)
python3 ml_services/walk_forward_by_sector.py --sector bank --horizon 20

# 2025年全年回测分析
python3 ml_services/backtest_analysis_2025.py

# 月度趋势分析
python3 ml_services/backtest_monthly_analysis.py

进阶使用

适用场景:需要深入了解系统功能、进行高级分析或自定义配置的用户

批量回测

# CatBoost 批量回测(推荐,使用阈值0.6)
python3 ml_services/batch_backtest.py --model-type catboost --horizon 20 --confidence-threshold 0.6

# 其他模型回测
python3 ml_services/batch_backtest.py --model-type lgbm --horizon 20 --confidence-threshold 0.6
python3 ml_services/batch_backtest.py --model-type gbdt --horizon 20 --confidence-threshold 0.6

# 回测结果会保存到:
# - output/batch_backtest_{model_type}_{horizon}d_{timestamp}.json(详细数据)
# - output/batch_backtest_summary_{model_type}_{horizon}d_{timestamp}.txt(汇总报告)

模型对比回测

# 模型对比回测(3个基本模型 + 5个融合方法)
./scripts/run_model_comparison.sh
python3 scripts/run_model_comparison.sh --force-train  # 强制重新训练所有模型

深度学习模型对比实验(不推荐)

# LSTM模型对比实验(实验性,不推荐)
python3 ml_services/lstm_experiment.py --horizon 1  # 1天预测
python3 ml_services/lstm_experiment.py --horizon 5  # 5天预测
python3 ml_services/lstm_experiment.py --horizon 20 --stocks 0700.HK 0939.HK 1347.HK  # 20天预测

# Transformer模型对比实验(实验性,不推荐)
python3 ml_services/transformer_experiment.py --horizon 1  # 1天预测
python3 ml_services/transformer_experiment.py  # 使用特征选择
python3 ml_services/transformer_experiment.py --stocks 0700.HK 0939.HK  # 自定义测试股票

板块Walk-forward验证(推荐)

什么是Walk-forward验证? 业界标准的模型验证方法,每个fold重新训练模型,评估真实预测能力,避免数据泄漏。

# 验证所有板块(16个板块,推荐)
python3 ml_services/walk_forward_by_sector.py --all-sectors --horizon 20 --start-date 2024-01-01 --end-date 2025-12-31 --output-dir output

# 验证单个板块(如银行股)
python3 ml_services/walk_forward_by_sector.py --sector bank --horizon 20 --start-date 2024-01-01 --end-date 2025-12-31 --output-dir output

# 验证多个板块
python3 ml_services/walk_forward_by_sector.py --sectors tech bank consumer --horizon 20 --start-date 2024-01-01 --end-date 2025-12-31 --output-dir output

# 自定义参数(推荐使用阈值0.6)
python3 ml_services/walk_forward_by_sector.py --all-sectors --train-window 12 --test-window 1 --step-window 1 --horizon 20 --confidence-threshold 0.6 --start-date 2024-01-01 --end-date 2025-12-31 --output-dir output

支持板块bank(银行)、semiconductor(半导体)、tech(科技)、ai(人工智能)、exchange(交易所)等16个板块

Walk-forward验证说明

  • 目的:业界标准的验证方法,评估模型的真实预测能力和泛化能力
  • 方法:12个月训练窗口,1个月测试窗口,滚动步长1个月
  • 优势:每个fold重新训练模型,避免数据泄漏,更准确评估泛化能力
  • 输出
    • 每个板块生成:JSON、CSV、Markdown格式报告
    • 汇总报告:output/walk_forward_sectors_summary_{timestamp}.md
    • 包含年化收益率数据(符合业界标准)
  • 预计时间:约4小时(16个板块)

关键指标

  • 夏普比率:风险调整后收益指标(必须使用年化收益率计算)
  • 最大回撤:极端风险指标
  • 稳定性评级:收益率标准差(高<2%,中<5%,低>=5%)
  • 20天收益率:持有20天的收益率
  • 年化收益率:20天收益率 × 12.6(252个交易日/20天)

板块表现分析

# 使用默认参数(上个月之前的一年)
./scripts/run_sector_analysis.sh

# 自定义日期范围
./scripts/run_sector_analysis.sh 2024-01-01 2025-12-31

# 自定义输出格式(csv/json/markdown/all)
./scripts/run_sector_analysis.sh 2024-01-01 2025-12-31 markdown

# 直接运行分析脚本
python3 ml_services/sector_performance_analysis.py
python3 ml_services/sector_performance_analysis.py --start-date 2024-01-01 --end-date 2025-12-31
python3 ml_services/sector_performance_analysis.py --trades-file output/backtest_20d_trades_20260307_002039.csv
python3 ml_services/sector_performance_analysis.py --output-format all

测试结果示例

关键发现:
  🏆 表现最佳板块: 生物医药股 (准确率: 91.15%)
  ⚠️  表现最差板块: 公用事业股 (准确率: 69.47%)
  📊 板块数量: 14个
  💰 平均收益率最高: 半导体股 (7.90%)
  🎯 胜率最高: 银行股 (86.37%)

股票表现TOP 10排名分析

# 使用默认参数(上个月之前的一年)
./scripts/run_ranking_analysis.sh

# 自定义日期范围
./scripts/run_ranking_analysis.sh 2024-01-01 2025-12-31

# 自定义输出格式(csv/json/markdown/all)
./scripts/run_ranking_analysis.sh 2024-01-01 2025-12-31 markdown

# 直接运行分析脚本
python3 ml_services/ranking_analysis.py
python3 ml_services/ranking_analysis.py --start-date 2024-01-01 --end-date 2025-12-31
python3 ml_services/ranking_analysis.py --trades-file output/backtest_20d_trades_20260307_002039.csv
python3 ml_services/ranking_analysis.py --output-format all

测试结果示例

关键发现:
  💰 平均收益率最高: 华虹半导体 (11.91%)
  🎯 胜率最高: 汇丰银行 (75.66%)
  🎯 准确率最高: 汇丰银行 (92.48%)
  🏆 综合优秀股票数量: 7
  📊 分析股票总数: 28只

预测性能监控

# 评估预测准确率
python3 ml_services/performance_monitor.py --mode evaluate --horizon 20

# 生成月度报告
python3 ml_services/performance_monitor.py --mode report --horizon 20

# 评估+报告(推荐)
python3 ml_services/performance_monitor.py --mode all --horizon 20

# 不发送邮件
python3 ml_services/performance_monitor.py --mode all --horizon 20 --no-email

输出文件

  • data/prediction_history.json:预测历史记录
  • output/performance_report_YYYY-MM.md:月度性能报告

安装和部署

📦 完整安装和配置步骤(15分钟)

适用场景:首次使用本项目、重新部署环境、或需要从零开始配置的用户

本指南将带领您完成完整的安装和配置流程,包括环境准备、依赖安装、环境变量配置和功能验证。

环境要求

  • Python:3.10 或更高版本
  • 操作系统:Linux、macOS、Windows(推荐使用WSL2)
  • 包管理器:pip
  • 内存:建议 4GB 以上
  • 磁盘空间:建议 2GB 以上

安装步骤

步骤 1:克隆项目

# 克隆项目到本地
git clone https://github.com/wonglaitung/fortune.git
cd fortune

步骤 2:创建虚拟环境(推荐)

# 创建虚拟环境
python3 -m venv venv

# 激活虚拟环境
# Linux/macOS:
source venv/bin/activate
# Windows:
venv\Scripts\activate

步骤 3:安装依赖

# 安装项目依赖
pip install -r requirements.txt

# (可选)安装PyTorch用于深度学习模型对比实验(不推荐)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

步骤 4:配置环境变量

# 复制配置模板
cp set_key.sh.sample set_key.sh

# 编辑 set_key.sh 文件,填写你的配置信息
# 使用你喜欢的编辑器打开 set_key.sh:
# nano set_key.sh
# vim set_key.sh
# 或使用任何文本编辑器

# 激活配置
source set_key.sh

# 验证配置(可选)
echo $EMAIL_SENDER

步骤 5:验证安装

# 运行恒生指数分析测试
python hsi_email.py --no-email

# 如果成功,你应该看到分析结果输出到控制台

环境变量配置详解

set_key.sh 脚本用于配置系统运行所需的环境变量。

必填变量

变量名 说明 示例值
SMTP_SERVER SMTP服务器地址 smtp.163.com
EMAIL_SENDER 发件人邮箱 your-email@163.com
EMAIL_PASSWORD 邮箱应用密码 从邮箱设置中生成的授权码
RECIPIENT_EMAIL 收件人邮箱列表(逗号分隔) user1@gmail.com,user2@yahoo.com.hk
QWEN_API_KEY 通义千问大模型API密钥 sk-xxxxxxxxxxxxxxxxxxxx

可选变量(大模型配置)

变量名 说明 默认值
QWEN_CHAT_URL 通义千问chat API地址 https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
QWEN_CHAT_MODEL 通义千问chat模型名称 qwen-plus-2025-12-01
MAX_TOKENS 最大token数 32768

配置步骤详解

  1. 复制配置模板

    cp set_key.sh.sample set_key.sh
  2. 编辑配置文件: 使用文本编辑器打开 set_key.sh,填写以下信息:

    export SMTP_SERVER="smtp.163.com"           # SMTP服务器
    export EMAIL_SENDER="your-email@163.com"    # 你的邮箱
    export EMAIL_PASSWORD="your-auth-code" # 邮箱授权码(不是登录密码)
    export RECIPIENT_EMAIL="recipient@gmail.com" # 收件人邮箱
    export QWEN_API_KEY="sk-your-api-key"      # 通义千问API密钥
  3. 激活配置

    source set_key.sh
  4. 验证配置

    echo $EMAIL_SENDER
    echo $QWEN_API_KEY

邮箱授权码获取方法

  • 163邮箱

    1. 登录163邮箱
    2. 设置 → POP3/SMTP/IMAP
    3. 开启POP3/SMTP服务
    4. 点击"生成授权码"
    5. 按提示发送短信获取授权码
  • Gmail

    1. 登录Google账户
    2. 账户设置 → 安全性
    3. 启用两步验证
    4. 应用密码 → 生成新密码
    5. 选择"邮件"应用,生成16位应用密码
  • QQ邮箱

    1. 登录QQ邮箱
    2. 设置 → 账户
    3. POP3/IMAP/SMTP服务
    4. 开启服务
    5. 生成授权码

通义千问API密钥获取方法

  1. 访问通义千问官网:https://dashscope.aliyun.com/
  2. 注册/登录账号
  3. 进入API-KEY管理页面
  4. 点击"创建API-KEY"
  5. 复制生成的API Key

注意事项

  • ⚠️ set_key.sh 已添加到 .gitignore不会提交到仓库,请妥善保管
  • ⚠️ 不要set_key.sh 文件分享给他人或上传到公共代码库
  • ⚠️ 未设置可选变量时,系统将使用默认值,不影响基本功能
  • ⚠️ GitHub Actions 需要在 Secrets 中配置相同的环境变量

常见问题排查

问题 1:pip 安装失败

# 升级 pip
pip install --upgrade pip

# 使用国内镜像源
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

问题 2:运行脚本时提示"找不到模块"

# 确保已激活虚拟环境
source venv/bin/activate  # Linux/macOS
#
venv\Scripts\activate     # Windows

# 重新安装依赖
pip install -r requirements.txt

问题 3:邮件发送失败

  • 检查 EMAIL_PASSWORD 是否正确(不是邮箱登录密码)
  • 确认邮箱已开启SMTP服务
  • 检查SMTP服务器地址是否正确

问题 4:大模型API调用失败

  • 检查 QWEN_API_KEY 是否正确
  • 确认API密钥是否已激活
  • 检查网络连接是否正常

🌟 无服务器部署 - GitHub Actions 自动化

适用场景:需要全自动运行、不想维护服务器、或希望零成本部署的用户

⚡ 无需部署服务器,即刻拥有功能完整的金融资产智能量化分析助手

本项目通过 GitHub Actions 实现全自动化运行,无需购买服务器、无需维护运维

核心优势

优势 说明
零成本 GitHub Actions 免费额度充足,每月2000分钟免费运行时间
零运维 无需服务器维护、无需监控、无需备份
自动化 11个工作流自动运行,覆盖全天候市场监控
稳定性 GitHub 提供高可用基础设施,99.9%在线率
可扩展 轻松扩展到更多数据源和分析功能
安全性 GitHub Secrets 加密存储环境变量

使用方法

方式一:Fork项目后启用(推荐)

# 1. Fork本项目到你的GitHub账号
# 2. 进入你Fork的仓库 → Settings → Secrets and variables → Actions
# 3. 添加以下Secrets(必填):
#    - EMAIL_SENDER: 你的邮箱地址
#    - EMAIL_PASSWORD: 邮箱授权码
#    - SMTP_SERVER: SMTP服务器地址
#    - RECIPIENT_EMAIL: 收件人邮箱列表(逗号分隔)
#    - QWEN_API_KEY: 通义千问API密钥
# 4. 可选添加以下Secrets(使用默认值):
#    - QWEN_CHAT_URL: Chat API地址(默认:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions)
#    - QWEN_CHAT_MODEL: Chat模型名称(默认:qwen-plus-2025-12-01)
#    - MAX_TOKENS: 最大token数(默认:32768)
# 5. 启用GitHub Actions工作流
# 6. 完成!系统将自动运行,分析结果会发送到你的邮箱

方式二:克隆到自己的GitHub仓库

# 1. 克隆项目
git clone https://github.com/wonglaitung/fortune.git
cd fortune

# 2. 推送到你的GitHub仓库
git remote set-url origin https://github.com/YOUR_USERNAME/fortune.git
git push -u origin main

# 3. 在GitHub仓库中配置Secrets(同方式一)
# 4. 启用GitHub Actions工作流
# 5. 完成!

详细配置步骤

  1. 配置邮箱服务

    • 163邮箱:设置 → POP3/SMTP/IMAP → 开启POP3/SMTP服务 → 生成授权码
    • Gmail:Google账户设置 → 安全性 → 两步验证 → 应用密码 → 生成新密码
    • QQ邮箱:设置 → 账户 → POP3/IMAP/SMTP服务 → 生成授权码
  2. 配置大模型API

  3. 添加GitHub Secrets

    • 进入仓库 → Settings → Secrets and variables → Actions
    • 点击"New repository secret"
    • 逐个添加以下Secrets:
      • EMAIL_SENDER: 你的发件人邮箱
      • EMAIL_PASSWORD: 邮箱授权码(不是登录密码)
      • SMTP_SERVER: SMTP服务器地址(如smtp.163.com)
      • RECIPIENT_EMAIL: 收件人邮箱列表,多个邮箱用逗号分隔
      • QWEN_API_KEY: 通义千问API Key
  4. 启用工作流

    • 进入仓库 → Actions
    • 确认所有工作流已启用
    • 可以查看工作流运行日志
  5. 手动触发(可选)

    • 进入任一工作流 → Run workflow
    • 选择分支并点击"Run workflow"按钮
    • 等待运行完成,查看结果

工作流状态监控

  • 查看运行日志:进入仓库 → Actions → 选择任一工作流查看运行历史
  • 接收分析结果:所有分析结果会自动发送到 RECIPIENT_EMAIL 配置的邮箱

注意事项

  • GitHub Actions 免费额度:每月2000分钟,对于本项目绰绰有余
  • 时区配置:所有工作流已配置为香港时区,确保运行时间准确
  • 数据保密:使用GitHub Secrets加密存储敏感信息,安全可靠
  • 运行频率:可根据需要调整工作流的触发时间和频率
  • 错误通知:如工作流运行失败,GitHub会自动发送通知

许可证

MIT License


联系方式

如有问题,请提交 Issue 或联系项目维护者。

联系邮件:wonglaitung@gmail.com


Star History

Star History Chart


最后更新: 2026-04-04 - 新增港股异常检测系统(双层检测、异常原因分析、异常日期数据)

About

实践人机混合智能的理念,开发具备变现能力的金融资产智能量化分析助手。系统整合大模型智能决策与机器学习预测模型,实时监控加密货币、港股、黄金等金融市场。香港股票方面集成11个数据源,以智能副驾的方式为投资者提供全面的市场分析、交易策略验证和买卖建议。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors