大家好!
我是一名金融数据分析方向的大学生,平时主要用 Python 做量化投资和金融数据分析。
说起来,用 TRAE 把这个 Demo 做出来的过程,比我预想的要顺畅太多。一开始我脑子里只有一个大概的想法——做一个量化交易平台,把策略回测和实盘交易放在一起。我试着把这个想法完整地讲给 TRAE 听,它会先把整个架构拆成后端(BeeQuant)、前端(HiveQ)、API 网关三层,然后用 Plan 模式一步步列出来要做什么。
让我觉得"原来这么简单"的那一刻,是做交易工作台的实时行情。我原本以为 WebSocket 数据推送、K 线图渲染、下单表单这些要搞很久,结果我用 Plan 模式描述完需求后,TRAE 通过子代理并行开发,后端 WebSocket 端点和前端交易组件同时就位了。
还有一个我以为搞不定的坎——统一认证系统。JWT 双令牌、交易所凭证加密、邀请码注册,这些安全模块我之前没怎么接触过。结果 TRAE 的 brainstorming skill 先帮我理清了"一次登录自动连接交易所"的核心需求,然后 Plan 模式把数据库表设计、API 端点、前端 Auth Store 全部规划好,我只需要确认方案就行。整个过程像是有个技术搭档在帮你把模糊的想法变成可执行的步骤。
1.Demo 简介
是什么:一个基于 Web 的加密货币量化交易平台(B/S 架构),支持策略回测、实盘交易、AI 投研助手和交易机器人自动化执行。
面向谁:量化投资爱好者、加密货币交易者、金融工程方向的学生。
核心功能:
策略回测引擎
自定义策略编写,基于历史 K 线数据回测
可视化结果:收益曲线、K 线图叠加买卖信号标记、盈亏柱状图
风险指标:VaR(95%/99%)、CVaR、最大连续亏损次数
支持 1m~1w 多周期和不同交易品种切换
截图:
实盘交易工作台
对接 Gate.io 交易所,WebSocket 实时行情推送
三栏式交易界面:合约列表 + K 线图 + 下单表单
实时持仓监控、订单管理、一键平仓
30 秒 K 线自动刷新,实时 ticker 推送
截图:交易工作台 — 实盘 K 线交易界面 (左侧合约列表、中间 K 线图 + 买卖信号、右侧下单表单和持仓)
技术栈:FastAPI + SQLite + React 18 + TypeScript + Vite + ECharts + Zustand + Tailwind CSS
2.Demo 创作思路
灵感来源
在学习量化投资时,我发现市面上的工具两极分化严重:VN.Py 这类专业框架学习曲线陡峭,对学生不友好;交易所自带的网格交易又太简单,无法验证自定义策略。我想要一个既能学习策略编写、又能直接实盘验证的平台。
想解决的问题
策略学习与实盘脱节:写完策略代码后很难快速验证效果,更难直接投入实盘
交易工具分散:行情分析、策略回测、实盘交易、风险管理散落在不同平台,来回切换成本高
多用户管理缺失:开源量化框架大多单用户,无法作为教学平台部署
AI 辅助研究空白:现有量化平台缺少 AI 能力,无法通过自然语言做投研
为什么做这个方向
选"学习工作"赛道,是因为 BeeQuant 天然横跨学习和工作两个场景:
学习侧:策略回测引擎 + AI 投研助手帮助理解量化策略逻辑
工作侧:实盘交易 + 机器人自动化执行真实交易策略
统一认证 + 管理后台让它可以部署为教学平台,老师管理学生账号,学生各自独立交易
3. Demo 体验地址
在线体验:http://47.108.61.98
测试账户admin
测试密码admin123!
邀请码:HC8F2A7SQ6T9TF4M
需要用户体验评论验证码我会及时发送给您
测试账号:
普通用户:可通过注册页面使用邀请码注册(管理员可在后台生成邀请码)
体验流程:
打开首页,查看实时 K 线行情和市场总览
登录后进入交易工作台,体验实时行情和交易界面
访问回测中心,选择策略运行回测,查看可视化结果
进入设置页面绑定 Gate.io 交易所 API(支持模拟盘)
管理员登录后可访问独立管理后台(/admin)
4. TRAE 实践过程
整个项目使用 TRAE IDE 完成——从前端 UI 到后端 API,从数据库设计到 Docker 部署,全部在 TRAE 中进行。
开发流程
第一阶段:项目架构搭建(7月5-7日)
使用 TRAE 规划整体架构:BeeQuant(后端)+ HiveQ(前端)
用 WebFetch 分析 Gate.io 等参考网站,提取 UI 设计规格
用 codebase 探索理解项目结构,生成开发路线图
实现 Gate.io 风格落地页,含实时行情展示
关键 Session ID:6a4ce1267624524945776703
在这个 Session 里,我让 TRAE 通过 WebFetch 分析参考网站的页面结构,生成完整 UI 规格文档,然后通过子代理并行开发落地页各组件(HeroSection、MarketTable、FeatureCards),大幅缩短前端开发时间。
第二阶段:核心交易功能(7月8-11日)
回测引擎:K 线数据两级缓存(L1 线程安全内存 + L2 Redis)
交易工作台:WebSocket 实时行情、K 线图、下单表单、持仓监控
交易机器人 7 个 Tab 模块(资金管理/批量下单/持仓监控/风险控制等)
AI Agent 投研助手(SSE 流式 + 工具调用 + 多 Agent 协作)
关键 Session ID:6a4e2c195243881d6764a7d6
用 Plan 模式把回测引擎拆成数据缓存层、策略执行层、结果可视化层三个子任务,子代理并行处理后端 API、前端组件、数据缓存。TRAE 的 Memory 机制确保各模块接口约定跨 Session 保持一致。
- 第三阶段:统一认证与管理后台(7月12-14日)
统一登录:JWT 双令牌 + 交易所凭证 Fernet AES-256-CBC 加密绑定
邀请码注册:secrets.choice() 安全生成,管理员可批量/手动添加
独立管理后台:AdminLayout 组件,与主站完全隔离
安全:bcrypt 密码加密(rounds=12)、登录锁定、审计日志
部署:Docker 容器化 + Nginx 反向代理 + 阿里云
关键 Session ID:6a51e5cdd330f337b55235ad
先用 brainstorming skill 探索需求,明确了"一次登录自动连接交易所"的核心用户流程。然后 Plan 模式制定方案:数据库表(vbt_users、vbt_invitation_codes、vbt_login_logs)、10+ API 端点、前端 unifiedAuth.ts。最后子代理并行开发后端加密模块和前端 Auth Store。
关键开发步骤截图
截图 1:
截图 2:
踩坑复盘
坑 1:WebSocket 数据流断裂 — 实时行情不更新
交易工作台的 K 线和 ticker 始终为空,但 WebSocket 连接正常。
用 TRAE 的 Explore 子代理审计前端数据流,发现 useTradingWebSocket() hook 返回了 data(含 ticker/balance/positions/orders),但 Trading.tsx 只解构了 sendSubscribe,把 data 丢弃了。解构 data: wsData 并添加 5 个 useEffect 同步到 Zustand store 后解决。
坑 2:WebSocketDisconnect 未导入导致崩溃
/ws/notifications 在客户端断开时崩溃,NameError: name ‘WebSocketDisconnect’ is not defined。
用 TRAE 的 Grep 搜索 WebSocketDisconnect,发现 except 语句用了它但 FastAPI import 行漏了。加上导入即可。
坑 3:SPA 深链路由 404 — 管理后台页面空白
直接访问 /admin/invitations 返回 401 JSON 而非 index.html,页面空白。
用 TRAE 搜索发现 _SPA_HTML_EXACT_PATHS 集合遗漏了该路由。添加进去后解决。
坑 4:JWT 过期后无自动刷新 — 用户被踢出
access_token 30 分钟过期后,前端报"请先配置 API 密钥"并强制登出——错误地把 JWT 过期当成了 API Key 缺失。
用 Explore 子代理审计认证流程,在 request() 中添加 401 自动刷新逻辑:用 refresh_token 换新 access_token 并重试请求,_isRetry 标志防无限循环。同时区分两种 401 场景给出不同错误提示。
TRAE 使用心得
Plan 模式是复杂功能的利器:统一登录系统涉及数据库、后端、前端三层,先用 Plan 制定详细方案(表结构、API 端点、组件修改),实施时不遗漏细节
子代理并行开发大幅提效:前端 api.ts 和后端 api_server.py 可以同时开发,一个 Session 内启动多个 Task 子代理,各处理独立模块
Explore 子代理擅长诊断:遇到 bug 时启动 Explore 审计相关代码流,比手动翻文件快得多。帮我发现了 WebSocket 数据流断裂、mock 数据残留等隐蔽问题
Memory 机制保证跨会话一致性:项目记忆记录了所有硬约束(如"gate.io 默认源"、“JWT 双令牌”),确保新功能与已有架构兼容
Brainstorming Skill 适合需求探索:需求不明确时用头脑风暴探索方案,比直接编码高效。帮我明确了"一次登录自动连接交易所"的核心流程



