极点宏观|Financial Cloud Cloud · 挑战
周末生产力挑战:Quant P&L Commander — AWS 上由 AI 驱动的交易生产力门户
已部署应用: https://vertexmacro.com/cloud_club/demo/dashboard/aws_quant_pnl_leaderboard_v3_english.html
GitHub 仓库: https://github.com/dchan-dev/quant_pnl_leaderboard/tree/main
项目类型: 具备 React/TypeScript 生产路径的前端生产力应用。原始 HTML 是前端原型;main.tsx 是生产版本的 React 逻辑层。
主要 AWS 服务: Kiro、Amazon S3、Amazon CloudFront、Amazon Route 53、AWS Certificate Manager、AWS WAF、Amazon MSK、AWS Lambda、Amazon S3 Versioning、Amazon CloudWatch、AWS IAM、AWS KMS 和 Amazon Bedrock。
1. 愿景与应用功能
Quant P&L Commander 是一款由 AI 驱动的个人生产力工具,供交易员、投资组合经理、量化研究员和风险经理使用,帮助他们将嘈杂的交易绩效数据转化为清晰的每日行动。在交易公司中,生产力不只是更快地完成任务;更重要的是在时间压力下做出更好的决策。交易员必须知道哪个策略正在赚钱、哪个策略正在隐藏风险、哪个模型正在恶化、哪个头寸需要关注,以及哪个资本配置决策需要在小额损失变成投资组合问题之前升级处理。
本应用通过将交易员级别的 CSV 数据转化为单一的运营驾驶舱,解决上述工作流问题。从用户角度来看,门户提供深色模式的机构风格排行榜,按照 NAV、每日收益率、夏普比率、盈利因子、胜率和最大回撤为策略排名。它还提供可展开的分析面板,包含权益曲线、回撤水位线、每日收益柱状图,以及 Window Return、Realized Volatility、Calmar、VaR 95、Best Day、Worst Day、Win Rate 和 Max Drawdown 等风险质量指标。
生产力目标很简单:缩短数据到达与决策之间的时间。用户不必手动打开多个 CSV 文件、在电子表格中计算风险指标、向交易员索取截图,再手动撰写收盘备注,而是打开一个门户就能立即回答:
● 哪位交易员按绝对收益领先?
● 哪个策略在风险调整后的表现最好?
● 哪个策略的回撤压力最严重?
● 哪个策略今天正在赚钱或亏钱?
● 绩效是否广泛分布,还是依赖某一天的幸运表现?
● 高胜率策略是否隐藏着负偏度?
● 哪个策略应该加仓、监控、对冲、暂停或升级处理?
当前已部署的应用通过实时排行榜视图、搜索、排序、市场卡片、SVG 火花线图、可展开的高级分析面板和实时风格的更新展示前端功能。生产就绪的设计将此前端扩展为 AWS 原生数据架构:每位交易员将 CSV 文件上传或生成到 Amazon S3,S3 Object Versioning 保留每个历史修订版本,Amazon MSK 流式传输文件事件和指标更新,AWS Lambda 处理并规范化数据,而 React 应用通过 CloudFront 从 S3 读取干净的 CSV 派生数据集。
AI 部分聚焦于专业生产力,而不是娱乐。生产架构使用 Amazon Bedrock 生成交易员简报摘要、异常解释、回撤叙述和遵循 SOP 的决策提示。Kiro 则作为 AI 开发环境,把产品意图转化为规格、实现任务、验收标准、React 组件、Lambda 处理程序、数据契约、测试用例和运维手册。
2. 为什么这是一款生产力应用
本次挑战要求构建个人 AI 生产力工具。Quant P&L Commander 符合这一要求,因为它改善了知识工作者的日常运营生产力。目标知识工作者是交易员或投资组合经理。他们的生产力问题是决策摩擦:数据太多、指标太多、策略太多,而时间太少。
本应用通过五种具体方式改善生产力:
1. 优先级排序:排行榜告诉用户哪个交易员、策略或风险项目最值得优先关注。
2. 摘要:分析面板将原始时间序列 CSV 数据压缩为可操作的风险和绩效指标。
3. 决策支持:AI 生成的简报文字解释交易员为什么上涨或下跌、哪些风险维度发生变化,以及下一步应采取什么行动。
4. 可重复的 SOP 执行:门户直接对应交易 SOP:盘前检查、盘中监控、收盘归因和升级处理。
5. 减少手工工作:Lambda 将原始 CSV 数据转换为规范化的前端数据集,避免手动电子表格计算和手动复制粘贴报告。
从生产力角度看,这类似于复杂的会议准备工具或任务优先级工具,只是领域换成了金融交易运营。它帮助用户准备晨间风险会议、确定盘中问题的优先级,并生成收盘解释。
3. 用户体验流程
典型的用户旅程如下:
1. 交易员通过 Route 53 域名打开由 CloudFront 托管的 React 应用。
2. 顶部栏显示工作区名称、资产工作流标签和实时时间戳。
3. 摘要条显示 Participants、Best Sharpe、Average Win Rate、Best NAV 和 RFQ 状态。
4. 市场卡片提供 ES、CL、GC 和 BTC 的快速跨资产背景视图。
5. 用户将排行榜按 DAILY 排序,识别盘中异常值。
6. 用户搜索 Crypto、Macro、Rates 或交易员姓名,缩小调查范围。
7. 用户点击 ANALYSIS,检查交易员的权益曲线、风险指标、回撤和收益分布。
8. 由生产计划中的 Amazon Bedrock 驱动的 AI 助手面板总结策略状态:
● “Lucia Fernandez 的夏普比率最高,但在增加资本之前应检查回撤。”
● “Carmen Lopez 的 NAV 为正,但每日收益为负;请检查波动率套利敞口和最差单日风险。”
● “Laura Navarro 的 NAV 较低且呈负偏度;在盈利因子改善前继续观察。”
9. 用户导出或复制由相同指标生成的收盘复盘备注。
关键点是:本应用不仅是一个仪表板,也是构建在交易数据之上的生产力层。它支持可重复的决策。
4. 核心门户元素与交易生产力价值
门户 UI 专门围绕专业交易工作流设计。
4.1 顶部栏与实时钟
顶部栏确认用户处于正确的工作区:CME DIRECT STYLE QUANT BOARD,并显示 FUTURES / OPTIONS / BLOCKS / RFQ / P&L ANALYTICS。实时时间戳很重要,因为交易数据很快就会过期。如果时间戳已过时,交易员不应依赖排行榜进行资本配置或风险削减。
4.2 Hero 区域
Hero 横幅说明任务:AWS Quant Trading Masters P&L Leaderboard。FUTURES、OPTIONS、BLOCKS、RFQ 和 LIVE NAV 这些关键词表明应用是按照机构工作流思维构建的。生产力收益在于背景:用户知道这个门户不是普通排行榜,而是交易运营驾驶舱。
4.3 摘要统计
摘要统计条立即提供交易台级别的健康状况:
● Participants:确认比较集合中有多少个策略。
● Best Sharpe:找出风险调整后最强的策略。
● Average Win Rate:表明整体环境是否有利。
● Best NAV:显示绝对收益领先者。
● Workspace RFQ ON:提醒用户较大交易需要执行纪律。
4.4 市场快照卡片
ES、CL、GC 和 BTC 提供跨资产背景。一个加密策略在 BTC 上涨时赚钱,可能是 beta,而不是 alpha。一个宏观策略在股票走弱、黄金走强期间表现良好,可能说明它正确地采取了防御性定位。市场卡片帮助用户避免错误结论。
4.5 搜索与排序
搜索框支持按交易员姓名或策略类型快速调查。按 NAV、Daily、SR、PF、WR 和 Max DD 排序,可以将同一数据集转换成多个运营视图:
● NAV:绝对绩效。
● DAILY:盘中分流。
● SR:风险调整后的质量。
● PF:收益效率。
● WR:信号命中率。
● MAX DD:资本保全和风险压力。
4.6 高级分析
高级面板是生产力价值最强的地方。它解释排名背后的原因。权益曲线显示复利质量。回撤水位线显示资本承受的压力。收益柱状图显示绩效是否稳定,还是由离群值主导。指标网格总结质量、尾部损失和波动率。
5. 嵌入产品的 SOP
应用背后的交易 SOP 是其价值的重要组成部分。门户被用作专业 P&L 控制塔。排行榜指出应该把注意力放在哪里;高级分析解释绩效为什么发生;SOP 将观察结果转化为有纪律的行动。
5.1 盘前 SOP
开始交易前,用户应该:
1. 验证门户时间戳。
2. 查看 Participants、Best Sharpe、Average Win Rate、Best NAV 和 RFQ 状态。
3. 查看 ES、CL、GC 和 BTC 的市场卡片。
4. 按 Max DD 排序,识别脆弱策略。
5. 按夏普比率排序,识别高质量策略。
6. 按 NAV 排序,识别主要贡献者。
7. 对大幅回撤、大幅日内波动、NAV 很高但风险指标较弱,或 NAV 较低但质量改善的策略打开 Analysis。
8. 设定当天的姿态:正常风险、降低风险、需要对冲、策略暂停或需要人工批准。
5.2 盘中 SOP
交易日内,用户应该:
1. 按 Daily 排序。
2. 查看正向和负向变动最大的项目。
3. 将 P&L 与市场卡片比较。
4. 为离群值打开 Analysis。
5. 判断损失是由市场变动、因子冲击、流动性、模型失效还是执行问题造成的。
6. 决定:继续、监控、缩小规模、对冲、停止新订单、平仓或升级处理。
5.3 收盘 SOP
收盘时,用户应该:
1. 确认最终时间戳。
2. 按 NAV、Daily、SR、PF、WR 和 Max DD 排序。
3. 为主要贡献者、最差拖累者、回撤警告和资本增加候选者打开 Analysis。
4. 生成收盘归因。
5. 记录次日观察清单。
AI 助手将此 SOP 作为上下文。它不会生成随机评论,而是生成与交易台工作流一致的结构化运营指导。
5.4 详细 SOP:将门户作为每日生产力系统运行
应用在一致的运行节奏下使用时最有价值。在生产环境中,Quant P&L Commander 并不是只在出现问题时才打开。它的目标是成为交易员、投资组合经理或风险经理开始一天、检查盘中绩效、准备风险会议或撰写收盘备注时首先查看的界面。
SOP 有三个层次:
1. 观察层:不采取行动地阅读门户。确认数据新鲜度、市场背景和排名变化。
2. 诊断层:打开相关的 Analysis 面板,解读 NAV、Daily P&L、夏普比率、盈利因子、胜率、最大回撤、Calmar、VaR、权益曲线、回撤水位线和收益柱状图。
3. 行动层:决定正确的下一步是继续、监控、缩小规模、对冲、暂停、升级处理,还是请求模型/执行复核。
这就是门户改善生产力的原因。它把临时的交易台对话变成具有一致输入、一致诊断规则和一致输出的可重复工作流。
5.5 SOP:数据新鲜度与可信度检查
在使用门户上的任何数字之前,用户执行可信度检查:
1. 确认 LIVE 时间戳是最新的。
2. 确认 Participants 显示预期的交易员数量。
3. 确认处理后的数据集具有今天的 asOf 时间。
4. 确认没有交易员 CSV 上传因结构验证失败。
5. 确认 CloudWatch 没有活动的数据新鲜度告警。
6. 确认 S3 数据对象版本是最新的已批准版本。
7. 如果门户数据已过时,不要将其用于风险决策。
在 AWS 生产架构中,此检查由 S3 对象版本元数据、Lambda 验证输出、MSK 处理事件、CloudWatch 告警和前端 as-of 时间戳支持。如果任何组件表明数据过时或无效,AI 助手必须说:数据不完整或已过时。需要人工复核。
5.6 SOP:正确阅读排行榜
排行榜绝不能被理解成简单的记分板。每个排序控制回答不同的运营问题:
● NAV:谁贡献了最多的绝对收益?
● DAILY:现在谁需要盘中关注?
● SR:谁产生了最佳的波动率调整后收益?
● PF:谁的总盈利与总亏损结构最好?
● WR:谁的命中率最高?
● MAX DD:谁消耗了最多的回撤预算?
专业工作流是在做决定之前轮流查看多个排名:
步骤 1:按 DAILY 排序,识别即时离群值。
步骤 2:按 MAX DD 排序,找出风险压力。
步骤 3:按 SR 排序,识别高质量表现者。
步骤 4:按 PF 排序,检查收益效率。
步骤 5:按 WR 排序,检查命中率的一致性。
步骤 6:只有在检查风险质量之后,才按 NAV 排序。
这可以避免一个常见错误:奖励 NAV 最高的策略,即使这些 P&L 是以过度杠杆、尾部风险或流动性不足换来的。
5.7 SOP:高级分析面板复核
每一项资本配置决策都必须先打开 ANALYSIS 面板。面板复核顺序如下:
1. 读取策略名称,确认预期的收益结构。
2. 查看 Equity Curve / NAV Path。
3. 查看 Risk & Quality Metrics。
4. 查看 Drawdown Waterline。
5. 查看 Daily P&L Distribution。
6. 将结果与市场卡片比较。
7. 选择下一步行动。
解读规则如下:
● 平滑的权益曲线 + 低回撤 + 稳定夏普:可能是增加资本的候选者。
● 高 NAV + 高 Max DD + 弱 Calmar:不要增加资本;调查风险规模。
● 高胜率 + 低盈利因子:隐藏的尾部风险;检查止损和下行偏度。
● 低胜率 + 高盈利因子:可能是凸性策略;只要回撤受到控制,就可以容忍较低的命中率。
● 更大的最差单日 + 恶化的 VaR:检查杠杆、流动性和对冲需求。
● NAV 持平 + 低波动率:可能是配置不足,或处于低机会环境。
● NAV 下跌 + 回撤上升:降低风险或暂停,等待复核。
5.8 SOP:问题解决手册
门户直接支持问题解决。AI 助手使用相同的手册生成结构化建议。
手册 1:策略今天正在亏钱
触发条件:
每日 P&L 超出预期范围并为负,或该行反复闪红。
门户步骤:
1. 按 DAILY 排序。
2. 找出负向变动最大的项目。
3. 为受影响的策略打开 ANALYSIS。
4. 检查权益曲线显示的是正常回调还是结构性断裂。
5. 检查回撤是否接近之前的最大值。
6. 检查每日收益柱状图是否出现离群损失。
7. 将策略与 ES、CL、GC 和 BTC 市场卡片比较。
8. 对问题分类:市场状态、信号、执行、规模、流动性或数据。
行动:
- 如果处于预期范围内:监控。
- 如果异常但可以解释:缩小规模或对冲。
- 如果无法解释:停止新增风险,调查数据/执行。
- 如果突破硬性限制:升级给 PM/风险团队。
手册 2:最高 NAV 好得可疑
触发条件:
某策略按 NAV 排名第一,但风险指标可疑。
门户步骤:
1. 按 NAV 排序。
2. 为排名最高的策略打开 ANALYSIS。
3. 比较 Window Return 与 Best Day。
4. 检查 Max DD、VaR 95、Worst Day 和 Calmar。
5. 检查权益曲线是否依赖一次大幅跳升。
6. 检查偏度和收益柱状图分布。
行动:
- 强 NAV 加强 Calmar:有资格逐步增加资本。
- 强 NAV 加严重回撤:冻结扩容并检查杠杆。
- 强 NAV 来自某个离群日:需要更多观察。
- 强 NAV 伴随负偏度:需要对冲或较低的风险预算。
手册 3:多个策略同时回撤
触发条件:
多个策略同时出现回撤压力。
门户步骤:
1. 按 MAX DD 排序。
2. 为所有高回撤策略打开 ANALYSIS。
3. 比较策略类型。
4. 将每个策略与市场卡片比较。
5. 识别共同因子敞口:股票 beta、加密 beta、利率久期、美元敞口、商品趋势、做空波动率敞口。
6. 检查回撤是孤立的还是系统性的。
行动:
- 如果是系统性的:降低总敞口或增加投资组合对冲。
- 如果是孤立的:复核具体策略负责人和模型。
- 如果由数据问题引起:在数据修正前冻结决策。
手册 4:高胜率但 P&L 较弱
触发条件:
某策略的 WR 排名很高,但 NAV 或 PF 排名很低。
门户步骤:
1. 按 WR 排序。
2. 找出高命中率但低 NAV 或 PF 较差的策略。
3. 打开 ANALYSIS。
4. 检查 Worst Day、回撤和收益柱状图。
5. 判断是否有许多小额盈利被罕见的大额损失抵消。
行动:
- 改进止损逻辑。
- 波动率上升时降低头寸规模。
- 添加状态过滤器。
- 检查策略是否做空波动率或做空流动性。
手册 5:夏普良好但 NAV 较低
触发条件:
某策略的 SR 排名很高,但 NAV 排名很低。
门户步骤:
1. 按 SR 排序。
2. 找出高质量但低收益的策略。
3. 打开 ANALYSIS。
4. 检查波动率、回撤和一致性。
5. 确认执行能力和市场深度。
行动:
- 如果可扩展:考虑逐步增加资本。
- 如果不可扩展:保留配置,但不要强行扩大规模。
- 监控任何增加规模后夏普是否衰减。
5.9 SOP:P&L 改善框架
门户通过帮助用户分类问题类型来改善 P&L。分类规则如下:
NAV 下跌 + SR 下跌 + PF 下跌
= 策略质量恶化。复核模型假设。
NAV 下跌 + SR 稳定
= 可能是暂时的不利状态。修改模型前先监控。
NAV 上升 + Max DD 上升
= 收益可能由过度杠杆或集中度驱动。
WR 高 + PF 低
= 损失规模问题。改进退出、止损或规模。
PF 高 + WR 低
= 凸性结构。检查耐心、流动性和回撤容忍度。
Calmar 下跌 + Realized Vol 上升
= 回撤效率恶化。重新平衡风险。
VaR 变差 + Worst Day 变差
= 尾部风险增加。降低杠杆或增加对冲。
这一框架为 AI 助手提供了确定性的逻辑基础。AI 不必发明建议,而是把测量到的条件映射到 SOP 定义的行动。
5.10 SOP:资本配置决策记录
任何资本配置变更都应该生成决策记录。在生产环境中,这可以由 Lambda 和 Amazon Bedrock 生成,然后在启用 S3 Versioning 的情况下,作为 S3 AI briefing 文件夹中的对象保存。
Capital Allocation Decision Record
Date:
Dataset asOf:
S3 source version:
Trader:
Strategy:
Current NAV:
Daily P&L:
Sharpe Ratio:
Profit Factor:
Win Rate:
Max Drawdown:
Calmar:
VaR 95:
Decision: increase / maintain / reduce / hedge / pause / escalate
Reason:
Risk flags:
Required approval:
Next review time:
Human owner:
这份记录很重要,因为交易生产力不只是决策速度,也包括决策可审计性。
5.11 SOP:按角色的每日使用方式
同一个门户支持多个用户角色。
交易员
● 通过检查自己的策略行开始一天。
● 使用市场卡片和分析面板解释每日 P&L 变化。
● 使用回撤和收益柱状图决定是否继续、缩小规模或暂停新的入场。
● 立即升级无法解释的损失。
投资组合经理
● 首先按 NAV、SR、PF 和 Max DD 查看整个排行榜。
● 比较各策略经过风险调整后的贡献。
● 决定增加资本、减少资本、对冲或暂停。
● 使用 AI 生成的摘要准备 PM 会议备注。
风险经理
● 首先按 Max DD 排序。
● 查看 VaR 95、Worst Day、Realized Vol 和 Calmar。
● 检查回撤是孤立的还是在策略之间相关。
● 执行停止交易或升级处理阈值。
量化研究员
● 查看下降的夏普、下降的 PF 或恶化的偏度。
● 使用收益柱状图识别模型衰减或状态不匹配。
● 将重复的损失模式转化为模型改进任务。
● 使用 Kiro 将发现转化为工程规格和测试。
执行交易员
● 使用市场卡片和 RFQ 标签评估订单规模是否符合市场深度。
● 当 P&L 与预期信号绩效不同时调查滑点。
● 建议屏幕执行、大宗执行、RFQ 工作流或降低参与率。
5.12 SOP:AI 助手输出规则
AI 助手遵循严格的输出规则:
1. 只使用门户指标和经过批准的 CSV 派生数据。
2. 不得编造交易、价格、交易对手或敞口。
3. 不得建议直接执行交易。
4. 只提供运营选项:继续、监控、减少、对冲、暂停、升级、调查。
5. 始终包括置信度。
6. 始终标记过时或不完整的数据。
7. 始终指出问题看起来属于信号、执行、规模、市场状态还是数据质量。
8. 资本变更始终需要人工复核。
AI 输出示例:
{
"status": "review_required",
"summary": "该策略的总 NAV 为正,但今天的 P&L 为负且 Max DD 偏高。在增加资本之前,请复核损失是否与当前市场状态一致。",
"diagnosis": ["daily_loss", "drawdown_pressure", "capital_increase_not_approved"],
"suggested_actions": ["open_analysis", "compare_market_cards", "review_worst_day", "monitor_or_reduce_size"],
"human_review_required": true
}
5.13 SOP:AWS 上的生产控制循环
SOP 通过 AWS 服务之间的生产控制循环实现:
1. 交易员 CSV 到达 Amazon S3。
2. S3 ObjectCreated 事件启动 Lambda 验证。
3. Lambda 验证结构并记录对象版本。
4. Lambda 将处理事件发布到 Amazon MSK。
5. 指标 Lambda 计算 NAV、Daily、SR、PF、WR、Max DD、Calmar、VaR 和回撤序列。
6. 处理后的数据写回 S3。
7. Bedrock 接收结构化指标和 SOP 上下文。
8. Bedrock 返回 AI briefing JSON。
9. React 门户通过 CloudFront 读取处理后的数据。
10. 用户做出有记录的决策。
11. 决策记录写回 S3 以供审计。
这个循环把生产力、AI 和 AWS 运营连接成一个系统。门户不只是可视化层;它是受治理的 AWS 事件处理管道的用户界面。
6. 我是如何构建它的
虽然公开挑战版本刻意保持简单并易于从前端访问,但我仍然以生产应用的方式进行构建。
6.1 使用 Kiro 的开发方法
我使用 Kiro 作为 AI 开发伙伴进行规格驱动开发。我的 Kiro 工作流是:
1. 定义产品意图:构建用于交易员 P&L 优先级排序的 AI 生产力门户。
2. 创建功能规格:排行榜、搜索、排序、指标网格、SVG 图表、数据契约、Lambda 处理和 S3 交付。
3. 生成实现任务:先做 HTML 原型,再做 React main.tsx 逻辑,最后做 AWS 部署架构。
4. 使用验收标准:不含中文文本、响应式布局、每项指标可见、高级面板可展开,并记录 AWS 部署路径。
5. 向生产环境重构:分离 UI 状态、数据模型、图表函数、指标计算和服务集成边界。
6. 创建 SOP 反馈循环:确保 UI 反映实际交易员操作流程。
Kiro 对于把模糊的产品需求转化为具体的工程产物尤其有用。例如,“改善 P&L”变成了可衡量的 UI 行为:按 Max DD 排序、识别下降的盈利因子、检查 Calmar、比较 NAV 与回撤,并生成 AI 评论。
6.2 前端构建
第一个版本是单页 HTML 应用,以便挑战提交内容易访问。生产路径是使用 TypeScript 的 React,其中 main.tsx 负责应用逻辑:
● 交易员数据状态;
● 排序键状态;
● 搜索查询状态;
● 展开分析行的状态;
● 指标计算辅助函数;
● 图表渲染辅助函数;
● 从 S3 托管的 CSV/JSON 文件加载数据;
● AI 摘要渲染;
● 错误/加载状态。
当前 HTML 原型包含浏览器内指标计算和 SVG 图表生成。在生产环境中,较重的规范化工作会移到 AWS Lambda,使前端保持快速、可预测,并且易于通过 CloudFront 缓存。
6.3 关键设计决策
决策 1:静态前端,动态数据。
React 应用作为静态资源部署到 Amazon S3,并通过 CloudFront 分发。数据仍然是动态的,因为 CSV 文件会在 S3 中更新并由 Lambda 转换。
决策 2:CSV 优先的数据契约。
特意使用 CSV,是因为交易团队经常通过 CSV 导出交换 P&L 数据。生产级系统不应该在第一天就迫使用户放弃现有的运营工作流。
决策 3:使用 S3 Object Versioning 实现可审计性。
每位交易员的 CSV 文件都以启用版本控制的方式存储。如果交易员上传修正后的文件,之前的版本仍可用于审计、重放和事故复盘。
决策 4:使用 MSK 处理流式事件。
使用 Amazon MSK 进行事件流处理,使应用能够支持新 P&L 记录、文件到达事件、指标重新计算事件、异常事件和 AI 摘要事件等生产路径的异步处理。
决策 5:使用 Lambda 进行数据处理。
AWS Lambda 规范化 CSV 文件、验证结构、计算派生指标,并将干净的前端数据集写回 S3。
决策 6:在指标计算后生成 AI 解释。
模型不应该编造指标。Lambda 先计算确定性的数值。Amazon Bedrock 接收结构化指标上下文,并生成解释、优先事项备注和符合 SOP 的运营建议。
7. 使用的 AWS 服务/架构概览
7.1 Amazon S3
Amazon S3 以三种方式使用:
1. React 静态托管源:存储由 Vite 或其他前端构建流程编译的 React 资源。
2. 交易员 CSV 落地区:存储每位交易员或策略的原始 CSV 文件。
3. 处理后数据区:存储前端消费的规范化 CSV/JSON 文件。
推荐的存储桶布局:
s3://qplc-frontend-prod/
index.html
assets/
manifest.json
s3://qplc-data-prod/
raw/trader_id=sofia-garcia/nav_2026-07-13.csv
raw/trader_id=lucia-fernandez/nav_2026-07-13.csv
processed/leaderboard/current/leaderboard.csv
processed/leaderboard/current/leaderboard.json
processed/trader/sofia-garcia/metrics.json
processed/trader/lucia-fernandez/metrics.json
ai/briefings/daily/2026-07-13.json
数据存储桶启用了 S3 Object Versioning。这对于专业交易运营非常关键,因为 P&L 数字可能在结算、公司行动、延迟成交、费用调整或模型对账之后被修正。版本控制支持重放和审计。
7.2 Amazon CloudFront
CloudFront 以低延迟在全球分发 React 应用。它还提供缓存行为控制:
● 为带哈希的 JavaScript/CSS 资源设置较长 TTL;
● 为 leaderboard.json 设置较短 TTL 或不缓存策略;
● 使用自定义错误处理,在客户端路由时提供 index.html;
● 使用源访问控制,使用户无法绕过 CloudFront 直接访问 S3 源站。
7.3 Amazon Route 53
Route 53 管理自定义域名。项目链接通过清晰的域名路径提供服务。在生产环境中,Route 53 使用别名记录指向 CloudFront 分配。
7.4 AWS Certificate Manager
AWS Certificate Manager 为 CloudFront 分配提供 TLS 证书,确保应用通过 HTTPS 提供服务。
7.5 AWS WAF
AWS WAF 保护 CloudFront 分配。建议的规则包括:
● AWS Managed Rules Common Rule Set;
● 基于速率的规则;
● IP 信誉列表;
● 如果出现滥用,启用机器人控制或挑战规则;
● 如果门户只供特定区域内部使用,启用地理限制。
7.6 Amazon MSK
Amazon MSK 是流式处理骨干,用于解耦生产者和消费者:
● S3 文件到达事件变为 csv_file_received 消息。
● Lambda 数据处理完成变为 metrics_calculated 消息。
● AI 摘要完成变为 briefing_generated 消息。
● 前端清单更新变为 frontend_dataset_ready 消息。
示例主题设计:
qplc.csv.received.v1
qplc.csv.validation_failed.v1
qplc.metrics.calculated.v1
qplc.ai.briefing_requested.v1
qplc.ai.briefing_generated.v1
qplc.frontend.dataset_ready.v1
MSK 很有用,因为生产交易数据很少通过单个同步请求移动。文件可能在不同时间到达,交易员可能修订文件,风险系统可能需要重放事件。Kafka 风格的主题让方案更具弹性和可扩展性。
7.7 AWS Lambda
Lambda 负责数据处理和事件处理。它负责:
● CSV 解析;
● 结构验证;
● 列规范化;
● 日期解析;
● NAV 计算;
● 每日收益计算;
● 夏普比率计算;
● 盈利因子计算;
● 胜率计算;
● 最大回撤计算;
● 实现波动率计算;
● VaR 95 计算;
● Calmar 计算;
● 生成异常标记;
● 写入处理后的数据集;
● 构建 AI 摘要提示。
简化的 Lambda 管道:
S3 中的原始 CSV
-> S3 事件通知
-> Lambda CSV 接入
-> 向 MSK 发布事件
-> Lambda 指标处理器
-> 将处理后的 JSON/CSV 写入 S3
-> Lambda AI briefing 请求
-> Amazon Bedrock 摘要
-> 将 AI briefing JSON 写入 S3
-> 前端通过 CloudFront 读取最新数据集
7.8 Amazon Bedrock
Amazon Bedrock 用于 AI 生产力功能。模型接收结构化 JSON,而不是未经控制的原始数据。提示包括:
● 当前策略指标;
● 之前的策略指标;
● 最近的回撤行为;
● 每日收益分布;
● SOP 规则;
● 用户角色上下文;
● 允许的输出格式。
AI 输出包括:
● 早间交易台简报;
● 盘中异常解释;
● 收盘归因草稿;
● 资本配置观察清单;
● 风险升级摘要;
● 针对交易员的生产力建议。
7.9 CloudWatch
CloudWatch 收集 Lambda 日志、错误率、持续时间、节流次数和自定义指标。自定义指标示例:
● 已处理 CSV 文件数量;
● 验证失败数量;
● 已更新交易员数据集数量;
● 指标计算延迟;
● AI briefing 生成延迟;
● 数据过时时长;
● 前端数据集版本。
7.10 IAM 和 KMS
IAM 用于在 Lambda、S3、MSK 和 Bedrock 之间实施最小权限。KMS 根据需要加密 S3 对象、Lambda 环境变量和 MSK 数据。
8. 架构图
系统从 Trader / CSV Producer 开始,由其将交易员 CSV 文件上传到 Amazon S3 Raw CSV Bucket。
Amazon S3 Raw CSV Bucket 将 ObjectCreated 事件触发到 AWS Lambda CSV Intake。
AWS Lambda CSV Intake 验证上传的文件,检查文件名、CSV 结构和交易员 ID。
验证后,AWS Lambda CSV Intake 将 csv_file_received 事件发布到 Amazon MSK Topics。
Amazon MSK Topics 将事件发送到 AWS Lambda Metric Processor。
AWS Lambda Metric Processor 从 Amazon S3 Raw CSV Bucket 读取带版本控制的 CSV 对象。
AWS Lambda Metric Processor 规范化 CSV 数据并计算 NAV 和风险指标。
计算出的指标包括排行榜数据、交易员指标、NAV、P&L 和风险分析。
AWS Lambda Metric Processor 将结构化指标发送到 Amazon Bedrock。
Amazon Bedrock 生成基于 SOP 的 AI briefing。
Amazon Bedrock 将摘要和行动建议返回给 AWS Lambda Metric Processor。
AWS Lambda Metric Processor 将处理后的输出文件写入 Amazon S3 Processed Dataset Bucket。
处理后的输出文件是:
● leaderboard.json
● metrics.json
● ai_briefing.json
React P&L 门户通过 Amazon CloudFront 请求前端应用和当前数据集。
Amazon CloudFront 将 React 应用提供给 React P&L 门户。
缓存数据过期时,Amazon CloudFront 从 Amazon S3 Processed Dataset Bucket 获取最新的处理后数据。
Amazon CloudFront 将缓存的 React 资源和处理后的数据返回给 React P&L 门户。
React P&L 门户向用户显示 P&L 排行榜、交易员分析、风险指标和 AI briefing。
9. 数据模型与 CSV 处理
生产 CSV 格式应该足够严格以便验证,同时足够简单,让交易员能够生成。
9.1 原始交易员 CSV 示例
trade_date,trader_id,strategy,nav,daily_pnl,gross_profit,gross_loss,market_value,exposure,notes
2026-07-13,sofia-garcia,Cross-Asset Convex Macro Alpha,118.40,0.42,15400,-7200,250000,0.82,normal session
2026-07-13,lucia-fernandez,Crypto Momentum Rotation,116.90,0.88,18100,-9100,210000,1.05,btc momentum
9.2 Lambda 规范化规则
Lambda 应用以下规则:
● 必需列必须存在;
● trade_date 必须解析为 ISO 日期;
● trader_id 必须匹配已批准的交易员注册表;
● 数值字段必须可解析;
● nav 必须为正数;
● 重复的日期/交易员行会被拒绝或进行版本化;
● 缺失的可选字段使用默认值;
● 记录原始对象版本 ID;
● 处理后的数据集包含血缘元数据。
9.3 React 的输出 JSON
{
"asOf": "2026-07-13T09:30:00+08:00",
"sourceVersion": "3LgH4...",
"participants": 8,
"rows": [
{
"name": "Sofia Garcia",
"strategy": "Cross-Asset Convex Macro Alpha",
"nav": 18.4,
"daily": 0.42,
"sr": 0.73,
"pf": 1.8,
"wr": 58,
"skew": 0.44,
"dd": 18,
"series": [100, 101, 100.7, 102.2, 104, 103.2, 105.7, 106.1, 108, 109.8, 111, 112.4, 114.9, 116.2, 118.4]
}
]
}
10. AI 开发细节
AI 层被有意设计成助手,而不是自主交易员。它通过解释指标、确定复核项目的优先级以及起草结构化摘要来改善人的生产力。
10.1 AI 使用场景
1. 早间简报生成器
生成简洁的盘前备注:最高 NAV、最佳夏普、最差回撤、需要关注的策略和缺失数据。
2. 盘中异常解释器
解释为什么一个每日 P&L 大幅为负的策略需要复核。模型接收市场上下文、策略类型和指标变化。
3. 收盘归因草稿
起草结构化的收盘备注,总结贡献者、拖累者、风险变化和次日观察清单。
4. SOP 引导的决策提示
将门户指标转换为监控、缩小规模、对冲、暂停或升级等行动。
5. 使用 Kiro 提升开发者生产力
Kiro 帮助生成规格、任务、单元测试用例、React 组件、Lambda 处理程序、代码审查清单和部署运维手册。
10.2 提示契约
模型提示应该是确定且有边界的:
你是一名交易生产力助手。只使用所提供的结构化指标。
不得编造交易、价格或敞口。
返回包含以下字段的 JSON:summary、risk_flags、possible_causes、suggested_actions、confidence、required_human_review。
如果数据过时或不完整,请说明。
绝不建议直接执行交易。
10.3 Bedrock 输出示例
{
"summary": "Lucia Fernandez 在夏普比率和每日收益方面领先,但在增加资本之前,应将加密 beta 与真正的 alpha 区分开来。",
"risk_flags": ["加密敏感度高", "需要检查回撤"],
"possible_causes": ["BTC 动能顺风", "动能策略与当前市场状态一致"],
"suggested_actions": ["打开高级分析", "将 NAV 增长与 BTC 市场卡片比较", "在增加资本前检查 Max DD"],
"confidence": "medium",
"required_human_review": true
}
10.4 AI 安全与治理
由于这是一款交易生产力工具,AI 输出必须受到控制:
● AI 不执行交易。
● AI 不创建未经授权的投资建议。
● AI 只总结所提供的指标。
● AI 输出包含置信度和人工复核标记。
● AI 提示和响应会记录以供审计。
● Bedrock 调用由 Lambda 防护措施包装。
● IAM 限制谁可以请求 AI 摘要。
● 在调用模型前可以对敏感数据进行脱敏。
11. 安全性与生产就绪
一个生产就绪的交易应用需要的不仅是漂亮的 UI。
11.1 网络与边缘安全
● CloudFront 是唯一的公共入口。
● S3 源站通过 Origin Access Control 保持私有。
● AWS WAF 保护边缘。
● ACM 强制使用 HTTPS。
● Route 53 控制 DNS。
11.2 数据安全
● S3 存储桶使用 AWS KMS 进行服务器端加密。
● S3 Object Versioning 保留审计历史。
● 除非明确需要公共网站托管,否则启用 S3 Block Public Access;生产环境应优先使用 CloudFront 后面的私有 S3。
● IAM 策略遵循最小权限。
● Lambda 角色只能读取所需的前缀。
11.3 运营可靠性
● Lambda 以幂等方式写入处理后的输出。
● 处理后的数据集包含 asOf 和 sourceVersion。
● CloudFront 缓存策略防止关键数据过时。
● CloudWatch 告警监控数据新鲜度和 Lambda 故障。
● 可以为失败的事件处理添加死信队列。
● MSK 主题允许重放处理事件。
11.4 可审计性
对于交易环境,可审计性是必要条件:
● 原始 CSV 版本 ID;
● 处理后数据集版本;
● 指标计算时间戳;
● Lambda 请求 ID;
● AI 提示版本;
● AI 模型响应 ID;
● 面向用户的数据集版本。
这使得回答以下问题成为可能:“门户显示的 P&L 数字,是由哪个确切的文件版本生成的?”
12. 遇到的挑战及解决方式
挑战 1:让交易仪表板符合生产力挑战
挑战提示强调生产力工具。如果工作流不清晰,P&L 排行榜可能看起来像金融仪表板。我通过让门户以 SOP 驱动来解决这个问题。每个 UI 功能都对应一个生产力动作:排序、摘要、调查、记录或升级处理。
挑战 2:保持前端简单
原始应用是单个 HTML 文件。这使它易于部署和审查,但生产应用需要可维护的逻辑。我将未来的生产方向拆分为 React main.tsx 逻辑、可复用的指标函数和 AWS 托管的数据集。
挑战 3:处理 CSV 而不让浏览器变得沉重
演示版本可以在浏览器中解析 CSV 和计算指标,但生产环境不应该依赖每个用户在本地重新计算指标。解决方案是 Lambda 数据处理。浏览器从 S3 读取已经规范化的 JSON 或 CSV。
挑战 4:AI 必须有用但受到控制
AI 可以生成有用的摘要,但在交易环境中不能幻觉出交易或提供未经授权的指令。生产设计使用结构化提示、确定性的指标输入、防护措施、审计日志和人工复核标记。
挑战 5:数据过时风险
如果数据过时,一个漂亮的仪表板也很危险。生产架构包含 asOf 时间戳、处理后数据集版本控制、CloudWatch 新鲜度告警和前端过时数据警告。
13. 我的收获
这次挑战强化了几个经验。
第一,当 AI 生产力与真实工作流结合时,效果最强。一个理解用户 SOP、数据结构和决策流程的助手,比通用聊天机器人更有价值。
第二,AWS 上的静态前端仍然可以支持严肃的生产工作流。Amazon S3 和 CloudFront 非常适合 React 应用,而 Lambda、MSK 和 S3 数据存储桶在后台提供动态行为。
第三,CSV 仍然重要。许多生产团队仍然通过 CSV 文件交换运营数据。围绕 CSV 构建并不意味着架构不成熟;借助 S3 Versioning、Lambda 验证和 MSK 事件流,CSV 可以成为受治理的数据输入。
第四,Kiro 帮助把产品模糊性转化为工程结构。当项目同时需要产品思维和实现细节时,它特别有用:UI、数据模型、AWS 架构、AI 提示、安全和运营 SOP。
第五,金融生产力工具中的 AI 需要明确的边界。AI 助手的正确角色是总结、排序、解释和建议复核行动。它不应该取代风险审批、投资组合授权或执行控制。