氛围编程一个全栈AI交易应用
在过去几个月中,我使用LLM(主要是通过Cursor的Claude)从零开始构建了一个自动化交易系统。
作为一名专业的数据科学家,我在Jupyter笔记本中构建了多年的ML模型。但我想超越研究。我想使用我在支付系统领域作为产品数据科学家的十年经验,部署一个全栈、生产级AI交易系统。
困难所在?我需要用我没有的全栈开发、基础设施和运营知识来补充我的数据科学专业知识。这个项目使我能够将我现有的许多数据科学和技术系统设计综合为一个可工作的产品。这包括在技术设计中管理风险,构建合规系统以确保我不交易我不被允许交易的股票,以及保护系统。
进入AI编码代理。
在过去几个月中,我使用LLM(主要是通过Cursor的Claude)从零开始构建了一个自动化交易系统:FastAPI后端、Celery工作者、Next.js前端、PostgreSQL数据库、AWS基础设施(ECS、SageMaker、EventBridge),以及用于训练和部署模型的完整ML管道。
这个系列记录了我学到的东西。不仅仅是技术胜利,还有昂贵的失败、运营惊喜,以及我希望从第一天就知道的模式。
1、我构建了什么
这是系统架构:

系统自主运行。每天凌晨4点,ML模型分析技术指标,生成50个候选股票的监视列表。在市场时间内,一个强化学习模型(在SageMaker上训练)决定开设哪些头寸、适当调整大小,以及何时退出。如果RL模型不可用,决策树将使用预定义的风险参数接管。
技术栈:
- 后端:FastAPI(Python,异步)+ SQLAlchemy + PostgreSQL(Aurora)
- 工作者:Celery + Redis用于定时任务
- 前端:Next.js(React/TypeScript)仪表板
- ML:SageMaker(训练、超参数优化、推理端点)
- 基础设施:AWS(ECS/Fargate、EventBridge、ALB、ElastiCache)、Terraform
这不是ML模型的投资组合。它是一个具有部署管道、监控、运行手册、错误处理以及您从真实服务中预期的所有运营关注点的生产系统。
2、它真的有效吗?
这是2026年1月20日至24日的一周(纸交易):

这是纸交易,不是真实资金。但它证明了系统端到端有效:ML模型做出决策、头寸开仓和平仓、止损触发,以及基础设施可靠运行。真正的测试将是更长的时间段,最终用真实资金进行真实交易。
3、转变:从编码到上下文、验证和运营
这是令人惊讶的部分:LLM大大加速了编码,但编码并不是瓶颈。
LLM做得好的地方:
- 脚手架:API路由、数据库模型、Celery任务样板、Terraform模块
- 填充代码:将需求转换为实现、编写SQL查询、创建CI/CD工作流
- 文档:生成初始文档、README文件、部署程序
- 调试:为错误建议修复、解释堆栈跟踪、提出替代方法
LLM挣扎的地方:
- 上下文管理:会话结束时代码会忘记。没有结构,它们会重复错误或忽略关键模式。
- 验证:代理会声称功能"已部署且工作正常",而不检查它们在生产环境中是否实际工作。
- 运营:理解"已调度"并不意味着"工作",容器需要重启,指标比代码更重要。
- 集成:确保训练和推理使用相同的功能,测试验证行为而不仅仅是执行,部署实际运行的是新代码。
真正的瓶颈变成了管理LLM上下文、验证部署实际工作、构建运营纪律,以及建立防止重复失败的模式。
4、昂贵的教训
在这个项目的过程中,我遇到了花费数小时、数天的失败,并且在一种情况下,使ML模型在一周内完全无用。我是一名通过训练而不是MLOps工程师的数据科学家 —— 其中许多是我学习基础知识并更好地理解如何将一个伟大的"模型"转换为完全可工作的应用程序的教训。如果您也是一名希望构建功能完整应用程序的数据科学家,这个系列适合您。以下是出现的主题。
4.1 "已调度"并不意味着"工作"
Celery任务可以完美地每2分钟调度一次,每次都失败。止损监控运行了7天而没有平仓单个头寸。积累了83个头寸,30:1的买入/卖出比率。为什么?我检查了调度器日志但没有工作者日志。
课程:检查结果和工作日志,而不仅仅是调度。
4.2 测试谎言
94%的测试覆盖率。所有测试都通过。系统在生产环境中完全损坏。为什么?测试验证执行(任务返回成功)而不是行为(头寸实际平仓)。
课程:集成测试比关键路径的单元测试更好。测试行为,而不仅仅是代码执行。
4.3 ML模型"已上线"6天但从未做出单个决策
RL模型已部署,代理报告"工作正常"。实际上:功能不匹配(训练中有18个功能,推理时有3个),静默回退到启发式方法,6天零真实预测。
课程:训练-推理功能对等是非可协商的。没有静默回退。验证模型实际上被调用。
4.4 已提交的代码不等于运行的代码
我会提交一个修复,推送到GitHub,并假设它正在运行。事实并非如此。Docker容器保持旧代码,直到重启。
课程:始终重启受影响的服务。检查日志。验证新代码路径正在执行。
4.5 上下文是一个产品
没有结构化的文档,LLM代理在会话中重复错误。我构建了CLAUDE.md、AI_AGENT_QUICK_REFERENCE.md和.ai-knowledge-base.yaml来编码模式、反模式和验证步骤。
课程:将代理上下文视为一流的交付物。单一事实来源胜过临时说明。
原文链接: I Built a Full-Stack AI Trading App with LLMs
汇智网翻译整理,转载请标明出处