【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 返回字段名是
f12、f14这种代码,一开始不知道含义,通过 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/ # 用户收藏、利润数据
核心功能演示:
-
多市场行情看板:支持科创板、创业板、港股通、小盘股、自选收藏 5 个板块,可自定义筛选(趋势、布林位、牛熊状态、K 线形态、买卖决策等)
-
数据采集控制台:一键采集东方财富多市场数据,实时进度显示,自动增量更新
-
策略回测系统:支持 5 种策略(3721、KDJ、牛熊、趋势、波浪)回测,输出胜率、盈亏统计
-
邮件预警推送:定时任务每天扫描收藏股票,出现买卖点自动发送邮件通知
-
走势图生成:自动生成港股最近 N 周 K 线走势图
五、效果与总结
提效对比:
| 环节 | 以前 | 现在 | 提效 |
|---|---|---|---|
| 数据采集 | 手动复制粘贴,约 1 小时 | 一键自动采集,2 分钟完成 | 30x |
| 技术分析 | Excel 手动计算,约 2 小时 | 系统自动计算,实时刷新 | 60x |
| 选股筛选 | 肉眼逐个看,约 3 小时 | 多条件一键筛选,秒级响应 | 100x+ |
| 买卖监控 | 需要一直盯盘 | 邮件自动推送,无需盯盘 | 解放双手 |
SOLO 在流程中做了什么:
- 帮我快速搭建 Flask Web 框架,省去了手动写模板、路由的时间
- 将技术指标公式自动翻译成 Python 代码,避免了手动转换的错误
- 提供模块化架构建议,让项目结构清晰、易于维护
- 快速排查各种 bug,缩短了调试周期
可复用的方法:
- 先定义数据流,再写代码:明确输入、处理、输出后再让 SOLO 生成代码
- 模块化拆分:大项目拆成小模块,逐个让 SOLO 完成
- 测试验证:每个模块完成后先单独测试,再集成
- 迭代优化:先跑通核心流程,再逐步增加功能和优化体验
对 AI 编程的思考:
TRAE SOLO 让我深刻体会到,AI 编程工具不是要取代开发者,而是让我们从重复劳动中解放出来,把精力投入到更有价值的地方——比如设计更好的策略、分析更深入的数据。即使是没有太多编程基础的人,只要思路清晰,也能借助 SOLO 搭建出实用的工具。