阅读时间 … 分钟

Charles Schwab 策略的 AI 原生运行环境

在 Cursor、Claude Code 或任何 AI IDE 中编写策略。从 GitHub 部署至托管云端运行环境,享有原生 MCP 控制、日志和区域选择功能。

由 TradingHost 工程团队撰写

第 01 部分 · 一览

一览

经纪商
Charles Schwab & Co., Inc. (The Charles Schwab Corporation, NYSE: SCHW)
经纪商类型
受美国监管的全方位服务经纪商,面向零售和机构客户
资产类别
美股、美国期权、美国期货(通过 Schwab Futures)、债券、ETF、共同基金、外汇
资产覆盖范围
美股(NYSE、NASDAQ、ARCA、BATS、IEX 上市股票)、美国上市期权(OCC 清算的股票和指数期权)、通过 Charles Schwab Futures and Forex LLC 提供的美国期货及期货期权(CME、ICE US、COMEX、NYMEX)、债券(美国国债、美国企业债、市政债)、ETF、共同基金(NTF 和有佣金基金)、外汇。不支持直接加密货币交易;可通过加密货币 ETF 和期货获得加密货币敞口。与 TD Ameritrade 的整合于 2024 年 5 月完成。
运行环境模式
容器化策略运行环境
部署源
GitHub
编程语言
任何可在容器中运行的语言
常用集成
Schwab API (REST + OAuth 2.0)、schwab-py 社区 Python SDK、原生 HTTP 客户端、NautilusTrader(适配器开发中)、自定义连接器
AI 工作流集成
适用于 Cursor、Claude Code、GitHub Copilot 和 CLI 智能体的 MCP 控制面板
TradingHost 角色
运行环境、部署、日志、健康检查、区域选择、MCP 控制
Schwab 角色
经纪商账户、API 访问、市场数据、执行场所、托管、清算、税务申报、保证金管理
监管机构
Charles Schwab & Co., Inc.:SEC 和 FINRA 注册经纪交易商(CRD 5393)。Charles Schwab Futures and Forex LLC:CFTC 和 NFA 注册期货佣金商(NFA 0263130)。SIPC 成员。
美国零售客户
是。提供用于开发的 Sandbox / 模拟环境。
隶属关系
TradingHost 保持独立,与 Charles Schwab & Co., Inc.、The Charles Schwab Corporation 或 TD Ameritrade(于 2020 年 10 月被 Schwab 收购,账户整合于 2024 年 5 月完成)无任何关联。

第 02 部分 · Schwab 提供的服务

Charles Schwab 提供的服务

Schwab API 于 2024 年底推出,旨在取代旧版 TD Ameritrade 开发者端点。它使用统一的凭证和 OAuth 2.0 + PKCE 身份验证,涵盖美股、期权、期货(通过 Charles Schwab Futures and Forex LLC)、债券、ETF 和共同基金。后 TD 时代的迁移于 2024 年 5 月完成了账户级整合,API 迁移于 2025 年初完成。

市场与策略模式

  • 使用单一 Schwab 凭证的多资产美国市场策略
  • 通过 Schwab Trader API 执行美国期权多腿策略
  • 通过 Schwab Futures 交易 CME 期货及期货期权
  • 跨账户投资组合再平衡
  • 在模拟环境中验证并推向实盘的策略
  • 具有 thinkorswim 使用经验的交易者向云端托管自动化的过渡

API 接口

产品接口
Schwab Trader API 用于美股、美国期权和账户状态。Schwab Market Data API 用于报价、期权链和历史数据。期货通过 Charles Schwab Futures and Forex LLC 账户类型进行处理。Schwab API 于 2024 年底推出,以取代 developer.tdameritrade.com 端点;旧版 TD Ameritrade 令牌已于 2025 年初失效。
连接方式
HTTPS REST 用于订单、账户状态、期权链和历史数据。通过独立的类 WebSocket 端点进行流式传输。Sandbox / 模拟环境提供相同格式的模拟数据;生产端点使用 api.schwabapi.com。
身份验证
采用带有 PKCE (Proof Key for Code Exchange) 的 OAuth 2.0。通过 developer.schwab.com 注册应用程序需要拥有 Schwab 经纪账户。refresh token 的有效期为 7 天,这要求在此窗口期内进行交互式重新身份验证或运行自动刷新任务。

第 03 部分 · 使用 AI 构建

使用 AI 构建您的 Schwab 策略

选择一种集成方式,Fork 一个起步模板,然后在 AI IDE 中编写您的策略。Cursor、Claude Code、GitHub Copilot 以及基于 CLI 的 AI Agent 均可配合相同的原生 GitHub 部署循环。

  • 原生 Schwab API

    通过 OAuth 2.0 + PKCE 直接对 api.schwabapi.com 发起 HTTPS REST 请求。通过独立端点进行流式传输。在 developer.schwab.com 注册应用程序需要拥有 Schwab 经纪账户。

  • schwab-py

    封装了 Schwab API 的社区 Python SDK。继承自旧版的 tda-api 项目(TD Ameritrade 时代),并针对迁移后的 Schwab API 更新了身份验证和端点格式。

  • 框架适配器

    NautilusTrader 和其他事件驱动框架通过开发中的社区适配器支持 Schwab。在依赖特定功能前,请先核对适配器的最新文档。

  • 自定义连接器

    您自研的内部引擎或专有的 Schwab 集成。REST 接口文档完善,且身份验证流程采用标准的 OAuth 2.0 + PKCE。

Schwab 产品的库与框架支持情况

在 TD 迁移之后,Schwab API 仍处于完善阶段。schwab-py 是最活跃的社区 Python SDK;NautilusTrader 的 Schwab 适配器正在积极开发中。由于 Schwab REST 接口较小,自定义连接器也是一种实用的选择。

库或框架美股美股期权期货共同基金沙盒环境
Native Schwab API支持支持支持支持支持
schwab-py支持支持部分支持部分支持支持
NautilusTrader (in dev)部分支持部分支持部分支持文档未说明支持部分支持
Custom connector支持支持支持支持支持

✓ 表示库或接口文档中确认支持。"check repo" / "in dev" 表示支持情况取决于版本,或仍处于积极开发中。

TradingHost 不强求使用特定库。它直接运行您的项目。

使用 AI 编写

Schwab 的 API 接口较小,且身份验证流程采用标准的 OAuth 2.0 + PKCE,AI IDE 能够很好地处理这两者。TradingHost 的 MCP 控制面板实现了闭环:AI 工具可以与您协同检查部署、查看日志并管理运行环境,但绝不会介入交易执行路径。

Section 04 · 在 TradingHost 上运行

在 TradingHost 上运行您的代码

Charles Schwab 提供经纪账户、API 访问和执行场所。TradingHost 则提供运行连接至 Schwab 的策略的生产环境。

您无需在笔记本电脑、台式机、通用 VPS 或手动配置的服务器上运行策略代码,只需从 GitHub 部署到 TradingHost 托管的容器运行环境中即可。

您

  • 您的代码库包含您的代码。
  • 您的部署定义了其运行方式。
  • 您的策略连接至 Schwab。

TradingHost

  • 保障运行环境持续在线。
  • 呈现日志与健康检查。
  • 提供区域选择。
  • 提供受控的部署面板。

部署流程

  1. 步骤 01

    连接 GitHub

    授权 TradingHost 访问您的 GitHub 账户。

  2. 步骤 02

    关联代码库或从模板开始

    将 TradingHost 指向您现有的 Schwab 策略仓库,或者派生(fork)一个 Schwab API 或 schwab-py 模板项目作为可运行的基础模板。

  3. 步骤 03

    部署到 TradingHost 容器中

    选择一个区域(对于美股、期权和 CME 期货,US-East 是首选),将您的 Schwab OAuth client ID、secret 和 refresh token 配置为环境变量,然后进行部署。TradingHost 会在托管的 Kubernetes 基础设施上运行您的策略。由于 Schwab 的 refresh token 有效期仅为 7 天,请在策略中集成自动刷新机制,或安排定期重新认证。

  4. 步骤 04

    监控日志与健康状况

    通过 TradingHost 控制面板实时查看日志、健康状况和运行状态。您也可以在任何 AI IDE 中通过 MCP 访问相同的面板。交易执行始终保留在策略代码路径中,而非通过 MCP。

  5. 步骤 05

    更新与重新部署

    将更改推送至您的 GitHub 主分支,TradingHost 将自动重新部署。

Section 05 · 运维说明

Charles Schwab 运营注意事项

在容器化云端运行环境中实际运行 Charles Schwab 策略时,有一些潜在的陷阱需要注意。TD Ameritrade 迁移后的现状是当前最核心的运营实际。以下所有内容均引用或改写自 Schwab 的官方文档或主要监管机构的公开信息。

  1. 01 · TD Ameritrade 迁移

    传统 TD 开发者端点已停用;Schwab API 为替代方案

    随着 Schwab 收购 TD Ameritrade,位于 developer.tdameritrade.com 的 TD Ameritrade 开发者端点已于 2025 年初前全部退役。替代方案是位于 developer.schwab.com 的 Schwab API。此前使用 tda-api 或直接对接 TD 端点的策略需要迁移至 schwab-py 或直接对接 Schwab REST。账户整合(将 TD 账户合并至 Schwab 账户)已于 2024 年 5 月完成。

  2. 02 · OAuth 2.0 + PKCE

    refresh token 将在 7 天后过期

    Schwab API 使用带有 PKCE (Proof Key for Code Exchange) 的 OAuth 2.0。注册应用程序需要拥有 Schwab 经纪账户。根据文档,refresh token 的有效期仅为 7 天:运行时间超过该期限的策略需要交互式重新认证,或者在有效期内完成自动刷新的工作流。这是 Schwab API 最常被提及的运营陷阱。

  3. 03 · 沙盒环境

    提供用于开发的模拟环境

    Schwab 提供了一个用于开发和认证的模拟环境。其端点结构与生产环境完全一致,资金余额和订单均为模拟。将策略从模拟环境升级到生产环境只需更换凭据和基础 URL。请将模拟和生产环境的凭据保存在不同的 TradingHost Secrets 条目中。

  4. 04 · 期货账户

    期货交易通过 Charles Schwab Futures and Forex LLC 进行

    Schwab 的期货和外汇业务通过独立的注册实体 Charles Schwab Futures and Forex LLC (NFA 0263130) 运营,需要单独申请并开通账户。Schwab API 按账户展示期货信息;如果用户仅拥有股票账户,即使应用程序注册正确,也无法下达期货订单。

  5. 05 · 期权审批

    期权审批按账户分级进行,并限制下单端点

    在 Schwab 进行期权交易需要获得分级审批。审批级别决定了下单端点接受哪些策略;超出审批级别的订单将被经纪商拒绝。请根据您已获得的审批级别规划策略,或在部署前向 Schwab 申请升级。

  6. 06 · 无直接加密货币交易

    Schwab 不提供直接的加密货币交易;可通过 ETF 和期货获得敞口

    Charles Schwab 不在零售经纪账户中提供直接的加密货币现货交易。Schwab 客户可以通过加密货币 ETF(例如自 2024 年 1 月批准以来的比特币现货 ETF)以及通过 Schwab Futures and Forex 提供的加密货币期货来获取加密货币敞口。需要直接进行加密货币现货交易的策略需要使用其他经纪商;请在 TradingHost 中跳转至加密货币交易所页面。

Section 06 · 适用对象

适用对象

TradingHost 的 Charles Schwab 运行环境最适合:

  • 在 AI IDE(如 Cursor、Claude Code)中构建策略的开发者
  • 正在向 Schwab 迁移的前 TD Ameritrade API 用户
  • 多资产系统化交易员(股票、期权、期货)
  • 正在转向云端托管自动化的 thinkorswim 资深交易员
  • 长周期投资组合再平衡策略的编写者

连接 GitHub 并创建您的首个策略是免费的。

Section 08 · 常见问题

常见问题

否。TradingHost 是独立的,不隶属于 Charles Schwab & Co., Inc.、The Charles Schwab Corporation,也不隶属于 Schwab 于 2020 年 10 月收购的原 TD Ameritrade 实体。

否。TradingHost 是交易策略代码的运行环境。Charles Schwab & Co., Inc. 是经纪自营商(FINRA CRD 5393)及 SIPC 成员。期货和外汇业务通过 Charles Schwab Futures and Forex LLC (NFA 0263130) 处理。您的账户、资产托管、市场准入、结算和税务申报均由 Schwab 负责。

随着 Schwab 收购 TD Ameritrade,位于 developer.tdameritrade.com 的 TD Ameritrade 开发者端点已于 2025 年初前全部退役。替代方案是位于 developer.schwab.com 的 Schwab API。此前使用 tda-api 的策略需要迁移至 schwab-py 或直接对接 Schwab REST。账户整合(将 TD 账户合并至 Schwab 账户)已于 2024 年 5 月完成。

否。您的策略代码会根据您自己的逻辑、账户权限和集成方式连接到 Schwab 并发送订单指令。TradingHost 仅提供运行该代码的环境。

否。Schwab API 访问权限由 Charles Schwab 提供。您需要自行负责您的 Schwab 账户、在 developer.schwab.com 上的应用程序注册、OAuth 令牌以及遵守 Schwab 的条款。

可以,但须经 Schwab 期货账户审批通过。期货和外汇业务通过独立注册的 Charles Schwab Futures and Forex LLC (NFA 0263130) 处理。

可以,但须经 Schwab 期权审批通过。审批级别决定了经纪商接受哪些策略;TradingHost 无法绕过该审批。

无法直接交易。Schwab 不提供加密货币现货交易。Schwab 客户可以通过加密货币 ETF 和加密货币期货获取加密货币敞口。如需直接进行现货加密货币交易,请使用加密货币交易所(如 Coinbase、Kraken 等),并跳转至加密货币板块。

任何可以在容器中运行的语言。Schwab 的 API 是 HTTPS REST 加上流式传输,因此任何支持 HTTP 和 WebSocket 的客户端都可以与其通信。schwab-py 是目前最活跃的社区 Python SDK。

在 developer.schwab.com 注册一个应用程序(需要 Schwab 经纪账户)。运行一次 OAuth 2.0 + PKCE 授权流程以获取 refresh token。连接您的 GitHub 仓库,将其与 TradingHost 关联,并在 TradingHost Secrets 中配置该 refresh token 进行部署。由于令牌在 7 天后过期,请设置自动刷新任务。

保存在您由 GitHub 控制的 secrets 工作流中。TradingHost 在运行时通过 GitHub 仓库 secrets、环境 secrets 或您自己批准的密钥管理流程读取它们。TradingHost 不需要托管您的客户端 ID、客户端密钥或 refresh token。请参阅平台 secrets。

根据文档,Schwab 的 refresh token 有效期为 7 天。运行时间较长的策略需要交互式重新认证,或者在有效期内完成自动刷新的任务。这是 Schwab API 最常被提及的运营陷阱。

可以。TradingHost 支持针对 AI IDE(包括 Cursor、Claude Code、GitHub Copilot 以及基于 CLI 的 AI agent)的基于 MCP 的控制。MCP 是一个控制和可观测性界面,而不是交易执行路径。

不会。PDT 规则(FINRA Rule 4210)由 Schwab 强制执行,而非 TradingHost。资产低于 $25,000 的融资账户在进行日内交易时将受到 PDT 限制。

不会。您的 1099 表单将在年底由 Schwab 提供,而非 TradingHost。

不是。SIPC 为您的 Schwab 证券账户提供最高 $500,000 的保护(其中包括最高 $250,000 的现金)。TradingHost 的运行环境不受 SIPC 保护,因为 TradingHost 并不是经纪商。

TradingHost 运行于 EU 和 US-East 区域。若通过 Schwab Futures 交易美股、期权和 CME 期货,US-East 是首选区域。详情请参阅区域页面。

不会。TradingHost 专注于生产环境的运行和部署。回测应当在您的研究技术栈、框架或 AlgoBuilder 中进行。