AWS Builder 文章

为 Amazon 择时与头寸管理构建自定义 Cerebro 代码解读 [第 2 部分]

描述: 专业的 AMZN 风险敞口管理需要市场状态识别、流动性纪律、波动率控制、交易监控、基准比较,以及可解释的模型风险文档。构建一个 AgentCore 和 Strands 研究工作流,将策略想法转化为自定义引擎测试、深色模式绩效图表、账本证据、AWS 治理工件,以及面向机构 FSI 用户的投资委员会叙事。

AMZN 回测文章系列

English 繁体中文 简体中文

描述: 专业的 AMZN 风险敞口管理需要市场状态识别、流动性纪律、波动率控制、交易监控、基准比较,以及可解释的模型风险文档。构建一个 AgentCore 和 Strands 研究工作流,将策略想法转化为自定义引擎测试、深色模式绩效图表、账本证据、AWS 治理工件,以及面向机构 FSI 用户的投资委员会叙事。


免责声明

教育用途:
本文内容仅聚焦于合法的金融规划教育,旨在提升对概念、方法论和分析路径的理解,并不推广任何特定证券、策略或市场参与决策。

不提供个性化建议:
本文不提供任何个性化推荐、招揽或保证;在任何情况下,本教育材料均不明示、暗示或以其他方式表示对未来表现、结果或收益的任何保证。

数据限制:
由于沙盒环境中无法使用实时数据,上传结果依赖确定性的离线数据,因此相关输出应理解为说明性示例,而非实时分析。

仅做多范围:
所有研究表述均限定为仅做多,避免期权、put、卖空或看跌策略,确保讨论总体聚焦于传统资产持有和正向方向性敞口概念。


先解释引擎,再解释图表

AMZN 的 500% 收益很容易让演讲者先从结果讲起。本文则从代码路径开始:价格输入、指标序列、布尔型入场与出场信号、现金处理、佣金、风险退出、权益曲线和交易账本。如果这条路径无法解释清楚,图表就还没有准备好进入委员会讨论。

本系列文章不建议买入、卖出或持有 Amazon。本部分展示如何将自定义引擎机制转化为可审阅的头寸管理语言。


定位

第 2 部分中的交易员视角,是坐在投资团队旁边的代码审阅者。目标不是用语法打动委员会,而是说明市场逻辑在哪里结束、执行仿真从哪里开始,以及风险控制如何把证据写入账本。


值得解决的客户问题

许多研究展示会从指标想法直接跳到绩效表。这会让风险、技术和合规团队只能猜测引擎如何处理缺失信号、未平仓头寸、成本、止损触发、止盈退出以及测试结束时的头寸。本文用通俗的代码解读来弥合这一差距。


此工作流支持的业务结果

该工作流支持更好的代码走查、更清晰的模型风险问题、更容易验证的仅做多行为,以及信号定义与实际交易之间更明确的关联。它为非开发人员提供足够的引擎背景,使其能够质疑结果,而不会把文章变成完整的编程手册。


目录

  • 第 1 部分:机构开场与交易员表达 — 建立机构化交易员表达、AMZN 头寸背景、沟通纪律,以及仅供教育的框架。
  • 第 2 部分:业务问题与头寸纪律 — 定义为什么盈利的多头头寸仍需要基于证据的入场、出场、仓位规模、回撤、基准和审计控制。
  • 第 3 部分:AgentCore 与 Strands 架构 — 解释 agent 角色、受限权限、受控工具、日志化输出,以及可审阅的金融服务工作流设计。
  • 第 4 部分:自定义 Cerebro 代码解读与引擎控制 — 将自定义引擎逻辑、信号/执行分离、成本、账本和代码审阅控制映射为交易员语言。
  • 第 5 部分:动量与市场状态策略记录 — 通过收益、波动率、Sharpe、回撤、交易次数、胜率和可行性审阅动量与市场状态策略记录。
  • 第 6 部分:高管收尾与治理审阅 — 将代码、图表和账本转化为委员会语言,并解释为什么人工判断仍是最终控制。
  • 第 7 部分:引擎控制与治理视角 — 汇总引擎控制细节和治理视角,使政策、演示数据边界、账本纪律、失败模式和问责易于理解。
  • 第 8 部分:AgentCore、Strands 与自定义引擎代码解读 — 将系列重点、agentic 运营模型和自定义引擎代码解释分离到一个实施章节。
  • 第 9 部分:绩效表与动量策略记录 — 将策略结果表和 5 个动量/市场状态策略记录汇总为一个可读的审阅章节。
  • 第 10 部分:交易经验、来源说明与治理收尾 — 以交易经验、来源说明、委员会叙事和最终治理清单收尾。

第 1 部分:机构开场与交易员表达

相关摘要: 建立机构化交易员表达、AMZN 头寸背景和沟通纪律。本文定位为教育与规划支持,不构成投资建议、推荐、招揽或对未来收益的承诺。

开场不应在解释控制问题之前先庆祝头寸表现。强劲的 AMZN 收益可能带来信心,但信心不能替代入场纪律、出场纪律、仓位规模逻辑、回撤承受能力和相对基准审阅。

有用的实践提示在这里被吸收为表达纪律:使用证据语言,说明数据模式,列出假设,并避免承诺确定性。文章应读起来像机构研究,而不是宣传文案。


第 2 部分:业务问题与头寸纪律

相关摘要: 定义为什么盈利的多头头寸仍需要基于证据的入场、出场、仓位规模、回撤和基准控制。它将投资组合管理、风险监督、技术治理和审计要求连接成一个可审阅的工作流。

业务问题在于证据碎片化。投资组合团队需要速度,风险团队需要可追溯性,技术团队需要安全编排,合规团队需要恰当措辞。该工作流通过创建可重复的研究路径来协调这些需求。

头寸纪律意味着每个策略都应回答同样的问题:为什么入场、为什么出场、多少敞口、什么成本假设、怎样的回撤路径,以及什么基准背景。这些问题现在是正文的一部分,而不是末尾的附注。


第 3 部分:AgentCore 与 Strands 架构

相关摘要: 通过分离编排器、数据 agent、策略 agent、回测工具、风险审阅者和治理检查器来解释 agentic 架构。每个组件都有受限权限、受控工具和日志化输出,供金融服务审阅使用。

该架构分离代码职责。Quant Orchestrator 界定请求,Strategy Agent 生成入场和出场序列,自定义引擎仿真现金和股票数量,Risk Review Agent 读取指标和账本行,Governance Agent 检查解释是否与实际订单路径一致。

Agent 治理意味着权限受限。agent 可以准备证据,但不能决定适当性、保证收益或替代投资委员会。日志和工件使工作流可以被质疑和审查。


第 4 部分:自定义 Cerebro 代码解读与引擎控制

相关摘要: 解释本文特定的引擎路径、代码解读、策略逻辑和审阅控制。本节将实施细节转化为交易员语言,便于风险、技术和治理相关方质疑和审阅。

代码路径应作为控制图来解释。输入进入指标,指标生成入场和出场信号,引擎仿真订单,应用成本,写入账本,指标总结路径。这一顺序用业务可读的逻辑取代逐行复述。

信号逻辑和执行逻辑应保持分离。信号可能表示条件有利,但引擎仍必须检查现金、头寸状态、佣金、风险退出和账本更新。这种分离能提高审阅质量。

本文聚焦于自定义引擎逻辑、代码解读、动量叠加市场状态的策略记录,以及可审阅的仿真控制。读者应评估代码路径是否让这些控制足够可见,使委员会、风险审阅者或技术负责人能够提出质疑。


第 5 部分:动量与市场状态策略记录

相关摘要: 通过收益、波动率、Sharpe、回撤、交易次数、胜率、账本质量和运营可行性审阅策略记录与经验教训。本节将演示结果视为工作流证据,而非真实市场建议。

策略记录不应被解读为推荐。它们是用于比较规则行为、交易频率、回撤特征和可解释性的证据。当数据模式为确定性的离线演示数据时,这些数字尤其受限。

经验教训应具体明确。高收益策略可能伴随令人不适的回撤。低换手策略可能更容易治理。高交易次数策略可能带来决策疲劳、滑点敞口和运营负担。


第 6 部分:高管收尾与治理审阅

相关摘要: 将代码、图表和账本转化为委员会语言:测试了什么、改进了什么、失败了什么、仍有哪些不确定性,以及为什么在任何生产或配置决策之前,人工判断仍是最终控制。

收尾应把研究转化为治理语言。委员会需要知道测试了什么、生成了哪些证据、哪些假设重要、什么失败了,以及哪些事项仍需人工决策。

负责任的收尾应避免胜利式表述。它应说明 agents 可以帮助记录假设、运行可重复测试、比较行为并准备更好的审阅,但人工判断仍是最终控制。


第 7 部分:引擎控制与治理视角

相关摘要: 汇总引擎控制细节和治理视角,使政策、演示数据边界、账本纪律、失败模式和问责易于理解。

正文整合细节 1: 引擎控制面

引擎构造函数就是控制面:价格序列、初始资金、配置比例、佣金、止损和止盈。每个参数都应在策略运行开始前可见。

正文整合细节 2: 信号与执行

信号生成和订单仿真应保持分离。Strategy Agent 生成入场和出场布尔值,而引擎处理现金、股票数量、成本、风险退出、权益和账本记录。

正文整合细节 3: 代码解读纪律

好的代码解读遵循运营路径:输入、指标、信号、订单仿真、成本、账本创建、指标和图表。这种语言让高管无需阅读每一行代码,也能理解控制图。

正文整合细节 4: 离线演示框架

上传结果是确定性的离线演示记录。它们可以用于讲解工作流和审阅结构,但不应被呈现为真实的 AMZN 市场表现证据。

治理审阅视角 1: 证据先于观点

研究叙事应首先识别数据模式、规则逻辑、假设、成本、回撤和账本可用性。观点应在证据之后,而不是之前。

治理审阅视角 2: 演示数据边界

当结果来自离线确定性演示数据时,文章应在正文中说明。演示记录适用于工作流教育和审阅设计,不适用于做出真实配置决策。

治理审阅视角 3: 账本作为交易台记忆

交易账本是交易台的记忆系统。它显示头寸何时打开、何时关闭、使用了多大规模、触发了哪个信号,以及流程是否遵守风险规则。

治理审阅视角 4: 失败模式审阅

专业读者应在结论之前看到失败模式。趋势规则可能出现反复拉锯,修复规则可能错过持续疲弱,活跃信号可能造成换手率,而这种换手率在 notebook 中看起来比在交易台上更干净。

治理审阅视角 5: 人工问责

Agentic 工具可以收集、运行、总结和组织信息,但投资组合负责人仍需对授权匹配、适当性、风险承受能力和最终判断负责。


第 8 部分:AgentCore、Strands 与自定义引擎代码解读

相关摘要: 将系列重点、agentic 运营模型和自定义引擎代码解释分离到一个实施章节。

系列重点

本文是 4 篇中的第 2 篇,聚焦代码解读、自定义引擎逻辑,以及动量叠加市场状态策略记录。它使用 Bedrock AgentCore 和 Strands Agents 作为 agentic 运营模型,使用上传的自定义 Cerebro-style 引擎作为代码基础,并将策略摘要记录作为绩效审阅证据。本文讨论仅供教育,不构成推荐。


Bedrock AgentCore 与 Strands Agents 运营模型

生产设计分离 5 类职责。Quant Orchestrator 接收研究请求,并将其分解为数据、策略、执行、风险和治理任务。Market Data Agent 获取或验证 AMZN 与基准数据。Strategy Agent 生成入场和出场信号。Backtest Engine Tool 运行自定义 Cerebro-style 仿真。Risk Review Agent 读取交易账本、绩效指标和图表。Governance Agent 检查披露、仅做多政策、数据来源和适当性语言。

AgentCore Runtime 是 agents 和工具的安全托管层,而 Strands Agents 提供用于工具调用、编排和 agent 行为的编程模型。在受监管的 FSI 环境中,agent 不应直接批准交易。它应创建证据、突出不确定性,并将输出路由给人工审阅。

对于这篇代码解读文章,AWS 层很重要,因为它让实施证据与结果保持邻近。审阅者应能够同时检索引擎版本、参数面、生成的信号、交易账本和图表工件,然后确认文章的通俗解释与已存储的运行结果一致。


代码解读:自定义 Cerebro-Style 引擎逻辑

自定义引擎刻意保持小型化。构造函数存储价格序列、初始资金、配置百分比、佣金、止损百分比和止盈百分比。这些参数构成 Risk Agent 和 Governance Agent 在策略运行前可检查的控制面。

run 方法接收 2 个布尔时间序列:entryexit。Strategy Agent 根据指标构建这些序列。引擎负责执行纪律。它将信号与价格索引对齐,将缺失信号值填充为 False,然后在不前视的情况下沿时间向前推进。

class CustomCerebroEngine:
    def __init__(self, price, initial_cash=100000, allocation=0.95,
                 commission=0.0005, stop_loss=0.12, take_profit=0.35):
        self.price = price.astype(float)
        self.initial_cash = initial_cash
        self.allocation = allocation
        self.commission = commission
        self.stop_loss = stop_loss
        self.take_profit = take_profit

    def run(self, entry, exit):
        entry = entry.reindex(self.price.index).fillna(False)
        exit = exit.reindex(self.price.index).fillna(False)
        cash, shares, entry_price = self.initial_cash, 0, None
        trades, equity, position = [], [], []
        for dt, px in self.price.items():
            if shares > 0:
                stop_hit = px <= entry_price * (1 - self.stop_loss)
                target_hit = px >= entry_price * (1 + self.take_profit)
                if bool(exit.loc[dt]) or stop_hit or target_hit:
                    gross = shares * px
                    cash += gross - gross * self.commission
                    trades[-1].update({"exit_date": dt, "exit_price": px,
                                       "gross_pnl": (px - entry_price) * shares})
                    shares, entry_price = 0, None
            if shares == 0 and bool(entry.loc[dt]):
                invest = cash * self.allocation
                shares = int(invest / px)
                if shares > 0:
                    cash -= shares * px + shares * px * self.commission
                    entry_price = px
                    trades.append({"entry_date": dt, "entry_price": px,
                                   "shares": shares, "entry_reason": "signal"})
            equity.append(cash + shares * px)
            position.append(shares)
        return pd.Series(equity, index=self.price.index), pd.DataFrame(trades), pd.Series(position, index=self.price.index)

当引擎已经持有股票时,它会检查 3 个退出条件:策略出场信号、止损突破或止盈触发。如果其中一个条件为真,引擎会卖出多头头寸,扣除佣金,更新现金,并在交易账本中记录已实现毛利润或毛亏损。


第 9 部分:绩效表与动量策略记录

相关摘要: 将策略结果表和 5 个动量/市场状态策略记录汇总为一个可读的审阅章节。

策略结果与绩效审阅

上传的摘要按总回报、年化回报、波动率、Sharpe、最大回撤、交易次数和胜率对 20 个自定义引擎策略进行排名。上传的 manifest 将引擎标识为 CustomCerebroEngine,显示策略数量为 20、图像数量为 22,并说明规则:仅做多、无期权、无 put、无卖空。

下表是交易员记录,不构成投资建议。由于 manifest 声明数据模式为确定性的离线演示数据,这些数字适用于解释工作流和代码逻辑,而不适用于做出真实配置决策。在生产环境中,同一工作流应基于经过验证的真实 AMZN 和基准数据重新运行。

排名 策略 总回报 年化回报 波动率 Sharpe 最大回撤 交易次数 胜率
1 IchimokuLongStrategy 1430.60% 14.08% 12.33% 1.14 -22.43% 53 47.17%
2 DonchianTrendStrategy 921.18% 11.87% 11.43% 1.04 -24.64% 20 70.00%
3 ADXTrendStrategy 723.63% 10.72% 9.13% 1.17 -16.88% 116 51.72%
4 MultiFactorEnsembleStrategy 604.05% 9.88% 11.23% 0.88 -24.44% 143 33.57%
5 RelativeStrengthNDXStrategy 587.02% 9.75% 11.17% 0.87 -23.23% 135 45.19%
6 Breakout55Strategy 555.52% 9.50% 10.65% 0.89 -24.14% 27 59.26%
7 CCIMomentumStrategy 551.10% 9.47% 9.81% 0.96 -19.07% 115 49.57%
8 ParabolicSARStrategy 497.68% 9.01% 11.78% 0.76 -24.28% 357 25.77%
9 MACDTrendStrategy 430.40% 8.39% 10.69% 0.78 -26.60% 214 41.59%
10 MarketRegimeSPXStrategy 421.61% 8.30% 10.44% 0.79 -23.20% 167 32.34%
11 GoldenCrossStrategy 330.81% 7.31% 9.80% 0.75 -27.62% 10 70.00%
12 DowRiskFilterStrategy 181.18% 5.12% 8.78% 0.58 -19.07% 18 55.56%
13 RateOfChangeStrategy 161.42% 4.75% 9.56% 0.50 -44.62% 213 45.07%
14 EMACrossStrategy 143.43% 4.39% 8.61% 0.51 -17.57% 40 50.00%
15 RSIRecoveryStrategy 50.38% 1.99% 5.50% 0.36 -23.55% 18 72.22%
16 StochasticStrengthStrategy 28.78% 1.23% 8.70% 0.14 -27.95% 741 40.35%
17 KeltnerChannelStrategy 27.40% 1.18% 3.74% 0.31 -10.50% 13 69.23%
18 BollingerReversionStrategy 16.69% 0.75% 4.66% 0.16 -28.36% 46 71.74%
19 VolumeConfirmStrategy 5.95% 0.28% 1.87% 0.15 -12.46% 5 40.00%
20 ATRChannelStrategy 1.52% 0.07% 1.93% 0.04 -7.28% 3 66.67%

策略记录:Breakout55Strategy

代码解读。 Breakout55Strategy 买入 55 日突破,并在 20 日通道失效时退出。对于 Breakout55Strategy,应将信号定义与执行机制分开审阅,使委员会能够区分市场逻辑与订单仿真、成本处理和账本生成。

交易员绩效审阅。 总回报为 555.52%,年化回报为 9.50%,波动率为 10.65%,Sharpe 为 0.89,最大回撤为 -24.14%,交易次数为 27,胜率为 59.26%。这些数字是上传的自定义引擎离线演示记录,并非真实市场结果。

交易记录与经验教训。 Breakout55Strategy 的经验教训是将记录作为审阅提示:检查可解释性、换手率、回撤承受能力、成本敏感性,以及该规则是否在标题收益之外增加了头寸管理洞察。


策略记录:CCIMomentumStrategy

代码解读。 CCIMomentumStrategy 使用 CCI 高于 100 作为动量入场,并在低于零时退出。对于 CCIMomentumStrategy,应将信号定义与执行机制分开审阅,使委员会能够区分市场逻辑与订单仿真、成本处理和账本生成。

交易员绩效审阅。 总回报为 551.10%,年化回报为 9.47%,波动率为 9.81%,Sharpe 为 0.96,最大回撤为 -19.07%,交易次数为 115,胜率为 49.57%。这些数字是上传的自定义引擎离线演示记录,并非真实市场结果。

交易记录与经验教训。 CCIMomentumStrategy 的经验教训是将记录作为审阅提示:检查可解释性、换手率、回撤承受能力、成本敏感性,以及该规则是否在标题收益之外增加了头寸管理洞察。


策略记录:ParabolicSARStrategy

代码解读。 ParabolicSARStrategy 近似捕捉趋势翻转,并展示非常活跃的信号如何影响记录。对于 ParabolicSARStrategy,应将信号定义与执行机制分开审阅,使委员会能够区分市场逻辑与订单仿真、成本处理和账本生成。

交易员绩效审阅。 总回报为 497.68%,年化回报为 9.01%,波动率为 11.78%,Sharpe 为 0.76,最大回撤为 -24.28%,交易次数为 357,胜率为 25.77%。这些数字是上传的自定义引擎离线演示记录,并非真实市场结果。

交易记录与经验教训。 ParabolicSARStrategy 的经验教训是将记录作为审阅提示:检查可解释性、换手率、回撤承受能力、成本敏感性,以及该规则是否在标题收益之外增加了头寸管理洞察。


策略记录:MACDTrendStrategy

代码解读。 MACDTrendStrategy 在 MACD histogram 转正时入场,并在转负时退出。对于 MACDTrendStrategy,应将信号定义与执行机制分开审阅,使委员会能够区分市场逻辑与订单仿真、成本处理和账本生成。

交易员绩效审阅。 总回报为 430.40%,年化回报为 8.39%,波动率为 10.69%,Sharpe 为 0.78,最大回撤为 -26.60%,交易次数为 214,胜率为 41.59%。这些数字是上传的自定义引擎离线演示记录,并非真实市场结果。

交易记录与经验教训。 MACDTrendStrategy 的经验教训是将记录作为审阅提示:检查可解释性、换手率、回撤承受能力、成本敏感性,以及该规则是否在标题收益之外增加了头寸管理洞察。


策略记录:MarketRegimeSPXStrategy

代码解读。 MarketRegimeSPXStrategy 要求 S&P 500 市场状态支持叠加 AMZN 趋势支持。对于 MarketRegimeSPXStrategy,应将信号定义与执行机制分开审阅,使委员会能够区分市场逻辑与订单仿真、成本处理和账本生成。

交易员绩效审阅。 总回报为 421.61%,年化回报为 8.30%,波动率为 10.44%,Sharpe 为 0.79,最大回撤为 -23.20%,交易次数为 167,胜率为 32.34%。这些数字是上传的自定义引擎离线演示记录,并非真实市场结果。

交易记录与经验教训。 MarketRegimeSPXStrategy 的经验教训是将记录作为审阅提示:检查可解释性、换手率、回撤承受能力、成本敏感性,以及该规则是否在标题收益之外增加了头寸管理洞察。


第 10 部分:交易经验、来源说明与治理收尾

相关摘要: 以交易经验、来源说明、委员会叙事和最终治理清单收尾。

交易记录与经验教训

交易记录不只是凭证。它是交易台的记忆系统。每个入场日期都在追问交易员是否拥有可重复信号,还是只有一个故事。每个出场日期都在追问流程是否尊重风险,还是等待情绪来协商。每次回撤都在追问仓位规模规则是否诚实面对波动率。

这篇代码解读文章的第一条经验是,信号逻辑和执行机制必须分开审阅。如果引擎对成本、止损或未平仓交易处理不佳,一个干净的指标仍可能产生薄弱证据。

第二条经验是,通俗语言的实施审阅能够改善治理。当委员会能够按顺序跟踪输入、信号、订单、账本行、指标和图表时,就可以质疑结果,而无需依赖对 notebook 的信任。

第三条经验是,活跃信号是代码审阅的压力测试。高交易次数会迫使审阅者检查引擎是否一致地应用佣金、清晰记录出场、避免前视行为,并确保每个账本行都关联到可解释的信号或风险事件。


来源与证据说明

本文使用上传的自定义引擎工件作为绩效讨论来源。manifest 声明引擎为 CustomCerebroEngine,数据模式为确定性的离线演示数据,策略数量为 20,图像数量为 22,规则为仅做多、无期权、无 put、无卖空。策略摘要文件按总回报、年化回报、波动率、Sharpe、最大回撤、交易次数和胜率对全部 20 个策略排名。上传的代码文件提供引擎结构、指标定义、信号映射、指标函数和 Bloomberg 深色模式图表生成方法。

外部架构参考:Amazon Bedrock AgentCore 文档将 AgentCore 描述为用于安全、规模化部署和运行 agents 的托管服务,并将 AgentCore Runtime 描述为支持 Strands、LangGraph 和 CrewAI 等框架的安全 serverless 环境。Strands 文档描述了将 Strands Agents 部署到 AgentCore Runtime,以及为 agent entrypoints 使用 Python 集成模式。Backtrader 文档在概念上用于参考 Cerebro 模式,即汇集数据 feeds、策略、分析器、观察器和绘图设施。


委员会收尾叙事

以下是在展示研究之前需要预演的收尾信息:

我们来到这里不是为了庆祝收益。我们来到这里是为了检查收益背后的流程。Amazon 头寸表现强劲,但强劲表现并不能消除风险纪律的必要性。我们构建了一个自定义引擎,组织了 20 个择时策略,审阅了记录,并将研究证据与推荐语言分离。

正确的结论不是让 agent 替我们交易。正确的结论是,agents 可以帮助我们记录假设、运行可重复测试、比较策略行为、暴露薄弱逻辑,并为与风险、技术和治理团队的对话做更好准备。人工判断仍是最终控制。


最终治理清单

  • 确认工作流是教育与规划支持,不构成投资建议。
  • 确认头寸表述为仅做多,并避免衍生品实施。
  • 确认结果是真实数据回测还是离线演示输出。
  • 确认每个策略都有交易账本、权益曲线、回撤路径和绩效摘要。
  • 确认代码、数据、参数和图表一并版本化。
  • 确认投资委员会在讨论任何配置决策之前理解相关限制。