整了下股票自动复盘程序(爱上Gemini)

最近10来天都没想起来到博客无病呻吟几句,主要是Gemini玩的略微有点上瘾,让我重新燃起了对python以及对一些新想法创造的热情。第一件事就是重塑了一下我的股票分析程序,经过多天跟它的“斗智斗勇“,上万字对它的“训话”,加上自己的手动调整,总算让这个东西像个样子,具体的内容可以到我右边菜单【股票】里去看,里面是相关的成果,下面是它的运行流程及主要结构,持续优化中:


主要流程:

  1. 数据获取
    1. 初始化数据,通过Tushare接口将近几年的日交易数据存入数据库
    2. 每天/按需更新最新的数据,保证后续的分析使用最新数据计算
    3. 计算额外指标,获取额外数据
      1. 因为接口获取的只有基础指标,至于其他X日日均、连板、强势弱势等都得基于基础指标进行计算,然后写入数据库
      2. 获取概念数据,因为接口权限不够,不能从Tushare获取,因此曲线救国,使用Akshare接口来补充
      3. 获取新闻数据,从财联社接口获取最近48小时新闻
  2. 每日复盘
    1. 大盘当天主要指标:点数、成交量、涨跌幅、上涨下跌数、涨停/跌停数、情绪指标(我自己根据各种经验设计的一个模型,用于计算整体市场情绪,总分100分)
    2. 近10日趋势变化
    3. 最强/最弱板块
    4. 最强/最弱概念
    5. 最强/最弱个股
    6. 热点新闻分析,此处讨了个巧,因为消息这个东西个人解读起来很麻烦且费事,就给Deepseek充了20块钱,用它的接口来帮我归纳整理打分并给出具体影响:利好/利空,对应的股票名称(一次1分钱,等于不要钱)
    7. 做个漂亮点的静态页面进行呈现daily_review.html
  3. 每日选股
    1. 策略编写,目前我从之前自己的10个策略砍到了4个,打算看下这些策略选出来的股票短线表现哪个好,然后再逐步精简
    2. 选出的股票经过模型打分排序(参考了我自己编的一个模型,设置了不同的权重,目前看戏下来还有很大提升空间)
    3. 将选入的股票存入本地数据库
    4. 结果生成静态页面stock_selection.html
  4. 每日策略回测
    1. 根据本地数据库里近期选入的股票后续表现(次日,5日,10日)进行跟踪回测
    2. 分析结果生成静态页面stock_backtest.html
  5. 邮件发送
    1. 目前对于我们核心成员,将每日的复盘结果通过邮件发送到大家的邮箱供大家参考,给大家省点时间,静态网页的好处就是邮件客户端可以直接打开,手机查看也方便
  6. 发布到网站
    1. 将生成的三个页面存入我Hexo本地文件库
    2. 生成/更新导航页
    3. 手动配置,增加菜单
    4. 最后的发布动作还是自己亲自来,比较有仪式感,deploy到github

项目结构:

  • /core
    • data_updater.py 用于更新初始化/增量更新市场数据、定义表结构、计算均线等指标
    • db_engine.py 初始化数据库连接,定义查询方法
    • factor_calculator.py 计算时长情绪、连板、行业、概念等数据
    • strategies.py 选股及回测
  • /report
    • renderer.py 用于渲染报告
    • /templates
      • daily_review.html 模板-每日复盘
      • stock_selection.html 模板-选股
      • back_test.html 模板-选股策略回测结果
  • /services
    • news_service.py 获取新闻
    • mail_dervice.py 发送邮件
    • deploy_hexo.py 文件同步至hexo
  • /utils
    • market_utils.py 市场代码对应表、打印进度条
  • config.py 数据库配置、Tushare配置、表配置、多线程配置、邮件配置、大语言模型配置
  • main.py 主程序,调用各类服务
  • requirements.txt 依赖安装包
  • Readme.md 使用说明