【Code With SOLO】用 SOLO 搭建全栈股票分析平台:从数据采集到策略回测一站式搞定

Code With SOLO】用 SOLO 搭建全栈股票分析平台:从数据采集到策略回测一站式搞定


一、摘要

用 TRAE SOLO 从零搭建了一个基于 Flask 的股票分析 Web 应用,实现了东方财富多市场行情采集、技术指标分析、策略回测、邮件预警推送等功能。原本需要手动查数据、写脚本、算指标的繁琐流程,现在通过一个 Web 界面就能全部搞定,选股效率提升 10 倍 以上。


二、背景

我是一名股票投资爱好者和 Python 学习者,日常需要:

  • 从东方财富采集 A 股(科创板、创业板)、港股通的市场数据
  • 分析股票的技术指标(3721、KDJ、布林线、波浪理论、牛熊状态等)
  • 回测不同的交易策略,验证其有效性
  • 监控收藏的股票,在出现买点/卖点时及时收到通知

痛点:以前需要手动打开多个网页查数据,用 Excel 算指标,写零散的脚本做分析,整个过程耗时耗力且容易出错。我希望用 TRAE SOLO 将这些流程整合成一个自动化、可视化的平台。


三、实践过程

1. 任务拆解

我把整个项目拆解为以下几个核心模块:

FlaskWeb 股票分析平台
├── 数据采集模块(东方财富 API 自动化抓取)
├── 技术分析引擎(多种技术指标计算)
├── 策略回测系统(5 种策略历史验证)
├── Web 可视化界面(行情看板、筛选、排序)
├── 邮件预警系统(买卖点自动推送)
└── 用户管理系统(注册登录、权限控制)

2. 使用 SOLO 的能力

  • 代码生成:让 SOLO 生成 Flask 路由、前端模板、数据采集爬虫
  • 模块化设计:按照 SOLO 建议的三层架构(接口层→业务逻辑层→数据存储层)组织代码
  • 技术翻译:将通达信等炒股软件的技术指标公式转换为 Python 代码
  • 调试排错:SOLO 帮我修复了数据格式解析、CSV 增量更新、线程安全等问题

3. 关键 Prompt 示例

Prompt 1:数据采集
"用 Python requests 库调用东方财富 push2 API,实现分页获取科创板/创业板/港股通股票列表,包含代码、名称等字段,保存为 CSV 文件,需要有重试机制和频率控制"

Prompt 2:技术指标
"把以下通达信公式转换成 Python 函数,输入是包含日期、开盘、收盘、最高、最低、成交量的 DataFrame,输出是包含指标值的 DataFrame"

Prompt 3:策略回测
"写一个回测框架,输入历史数据和交易策略,输出不同止盈目标下的胜率、盈亏比、最大回撤等统计指标"

Prompt 4:邮件预警
"用 Python 写一个定时任务,每天收盘后扫描收藏的股票,如果出现买点或卖点信号,就发送邮件通知用户"

4. 踩过的坑

  • API 字段映射:东方财富的 API 返回字段名是 f12f14 这种代码,一开始不知道含义,通过 SOLO 帮忙查找文档才搞清楚
  • CSV 增量更新:最开始每次采集都全量覆盖,后来改成对比去重的增量更新模式,避免数据丢失
  • 中文编码问题:CSV 文件用 utf-8-sig 编码才能在 Excel 中正常显示中文
  • 线程安全:定时任务和 Web 请求共享数据时出现过竞争条件,后来用文件锁和状态标记解决

四、成果展示

项目结构

FlaskWeb/
├── app.py                          # Flask 主应用(20+ 路由)
├── stock_filter_enhanced.py        # 技术分析引擎
├── eastmoney_collector/            # 数据采集模块
│   ├── fetcher.py                  # HTTP 请求与分页
│   ├── processor.py                # 数据处理与增量更新
│   └── config.py                   # 市场配置
├── templates/                      # 9 个前端页面
│   ├── index.html                  # 股票查询
│   ├── market.html                 # 行情看板(科创板/创业板/港股通/小盘股/收藏)
│   ├── profit.html                 # 利润数据分析
│   ├── strategy_backtest.html      # 策略回测
│   ├── data_collector.html         # 数据采集控制台
│   └── ...
├── market/                         # 市场缓存数据
└── subscribers/                    # 用户收藏、利润数据

核心功能演示

  1. 多市场行情看板:支持科创板、创业板、港股通、小盘股、自选收藏 5 个板块,可自定义筛选(趋势、布林位、牛熊状态、K 线形态、买卖决策等)

  2. 数据采集控制台:一键采集东方财富多市场数据,实时进度显示,自动增量更新

  3. 策略回测系统:支持 5 种策略(3721、KDJ、牛熊、趋势、波浪)回测,输出胜率、盈亏统计

  4. 邮件预警推送:定时任务每天扫描收藏股票,出现买卖点自动发送邮件通知

  5. 走势图生成:自动生成港股最近 N 周 K 线走势图


五、效果与总结

提效对比

环节 以前 现在 提效
数据采集 手动复制粘贴,约 1 小时 一键自动采集,2 分钟完成 30x
技术分析 Excel 手动计算,约 2 小时 系统自动计算,实时刷新 60x
选股筛选 肉眼逐个看,约 3 小时 多条件一键筛选,秒级响应 100x+
买卖监控 需要一直盯盘 邮件自动推送,无需盯盘 解放双手

SOLO 在流程中做了什么

  • 帮我快速搭建 Flask Web 框架,省去了手动写模板、路由的时间
  • 将技术指标公式自动翻译成 Python 代码,避免了手动转换的错误
  • 提供模块化架构建议,让项目结构清晰、易于维护
  • 快速排查各种 bug,缩短了调试周期

可复用的方法

  1. 先定义数据流,再写代码:明确输入、处理、输出后再让 SOLO 生成代码
  2. 模块化拆分:大项目拆成小模块,逐个让 SOLO 完成
  3. 测试验证:每个模块完成后先单独测试,再集成
  4. 迭代优化:先跑通核心流程,再逐步增加功能和优化体验

对 AI 编程的思考

TRAE SOLO 让我深刻体会到,AI 编程工具不是要取代开发者,而是让我们从重复劳动中解放出来,把精力投入到更有价值的地方——比如设计更好的策略、分析更深入的数据。即使是没有太多编程基础的人,只要思路清晰,也能借助 SOLO 搭建出实用的工具。