适用于 OANDA 交易策略的 AI 原生运行时
在 Cursor、Claude Code 或任何 AI IDE 中编写 OANDA v20 策略。从 GitHub 部署到托管云端运行时,享有原生 MCP 控制、日志和区域选择支持。
第 01 节 · 一览
一览
- 经纪商
- OANDA
- 经纪商类型
- 外汇与差价合约(CFD)经纪商
- 资产类别
- 外汇、指数、大宗商品、贵金属、债券
- 支持的产品
- 70+ 现货外汇货币对、主流股指 CFD、黄金和白银(XAU/USD、XAG/USD)、能源(WTI、Brent)以及债券 CFD
- 运行环境模型
- 容器化策略运行时
- 部署源
- GitHub
- 编程语言
- 任何可在容器中运行的语言
- 常用集成
- OANDA v20 REST 与流式传输、FIX 4.4、NautilusTrader、Backtrader、原生 Python 和 Java SDK、自定义连接器
- AI 工作流集成
- 适用于 Cursor、Claude Code、GitHub Copilot 和 CLI 智能体的 MCP 控制面板
- TradingHost 角色
- 运行时、部署、日志、健康检查、区域选择、MCP 控制
- OANDA 角色
- 经纪商账户、API 接入、市场准入、执行场所
- 监管机构
- OANDA Corporation (CFTC RFED, NFA ID 0325821, US), OANDA Australia Pty Limited (ASIC AFSL 412981), OANDA Europe Markets Ltd (CySEC, Malta), OANDA Global Markets Ltd (BVI FSC), OANDA (Canada) Corp (CIRO)
- 零售杠杆上限
- 美国 (OANDA Corporation, NFA Rule 2-43b):主要外汇 50:1,非主要外汇 20:1。澳大利亚 (ASIC) 和欧洲 (CySEC,符合 ESMA 标准):主要外汇 30:1,非主要外汇和黄金 20:1,非黄金大宗商品和非主要股指 10:1,股票 5:1,加密货币 CFD 2:1。离岸实体 (BVI FSC) 可能根据具体的开户实体允许更高的杠杆。
- 关联关系
- TradingHost 保持独立,与 OANDA Corporation 或任何 OANDA 集团实体无任何关联
第 02 节 · OANDA 支持概况
OANDA 支持概况
OANDA 通过 v20 REST API、基于长轮询 HTTP 的 v20 流式传输以及 FIX 4.4 会话,提供 70 多个货币对的现货外汇、股指和商品 CFD、贵金属以及债券 CFD。策略使用每个账户专属的 Bearer 令牌进行身份验证。模拟盘 (fxPractice) 和实盘 (fxTrade) 是相互独立的运行环境,拥有不同的主机地址和令牌。具体的端点细节请参考 OANDA 的官方文档,这些内容可能会随时间发生变化。
市场与策略模式
- 针对 70+ 外汇货币对的 OANDA v20 REST 策略
- EUR/USD 和 USD/JPY 套利交易(Carry Trade)策略
- 主流股指 CFD 突破策略 (SPX500, US30, NAS100, UK100)
- XAU/USD 和 XAG/USD 贵金属策略
- WTI 和 Brent 原油 CFD 策略
- 基于流式报价驱动的动量策略(长轮询 HTTP)
- 在 fxPractice 验证通过后晋升部署至 fxTrade
- 符合美国零售监管 NFA Rule 2-43b FIFO 要求的策略
API 接口
- 产品接口
- 70+ 现货外汇货币对(主要、次要、交叉盘)、主流股指 CFD (SPX500, US30, NAS100, UK100, GER40, JP225)、贵金属 (XAU/USD, XAG/USD)、能源 (WTI, Brent) 以及债券 CFD。fxPractice 环境在模拟交易主机上镜像了完全相同的产品范围,因此策略可以在不投入真实资金的情况下,针对相同的 v20 端点进行验证。
- 连接方式
- OANDA v20 REST 用于下单、账户管理、交易和持仓查询。v20 流式传输通过长轮询分块 HTTP(使用单个保持打开的 TCP 连接,而非 WebSocket)来获取报价和交易信息。FIX 4.4 适用于专业零售和机构资金流。原生 Python 和 Java SDK 对 v20 REST 和流式传输进行了封装。
- 身份验证
- Bearer 令牌:在每个需要身份验证的请求中附加 HTTP "Authorization: Bearer <token>" 请求头。每个 OANDA 账户对应一个令牌,可在用户门户的 Manage API Access 下生成。模拟盘 (fxPractice) 和实盘 (fxTrade) 的令牌仅在其对应环境中有效,不可混用。
具体细节请参考 OANDA
具体的端点、速率限制、货币对列表、交易工具标识符和版本历史记录均可在 OANDA 的官方文档中找到。请以这些官方文档为准。
第 03 节 · 使用 AI 构建
使用 AI 构建您的 OANDA 策略
选择一种集成方式,Fork 一个 TradingHost 框架模板,然后在 AI IDE 中编写您的策略。Cursor、Claude Code、GitHub Copilot 以及基于 CLI 的 AI Agent 均支持相同的 GitHub 原生部署循环。
原生 OANDA v20 API
直接控制 OANDA 特有的行为、账户状态、流式报价和订单执行。
FIX 4.4 或自定义连接器
OANDA FIX 4.4 会话,或者您自己在 v20 REST 和流式传输之上构建的 Python 或 Java 集成。
各框架对 OANDA 产品的支持情况
支持范围与 OANDA 的产品组合保持一致。由于 OANDA 的零售实体不提供股票 CFD 或加密货币 CFD,因此这些列被如实标记为“否”,而非留空。
✓ 表示根据官方框架文档和 OANDA 产品组合确认支持。"no" 表示 OANDA 不提供该产品类别,而非框架本身的限制。工作流链接指向目前正在撰写的 /workflows/ 页面。
TradingHost 不绑定任何框架。它只运行您的项目。
AI 辅助编写
上述框架起步模板可与 AI IDE 完美契合。TradingHost 的 MCP 控制面板实现了闭环:AI 工具可以与您一同检查部署、查看日志并管理运行环境,但绝不会介入交易执行路径。
章节 04 · 在 TradingHost 上运行
在 TradingHost 上运行您的代码
OANDA 提供经纪商账户和 API 访问权限。TradingHost 则提供运行连接到 OANDA 的策略所需的生产环境。
您无需在笔记本电脑、台式机、通用 VPS 或手动配置的服务器上运行策略代码,只需从 GitHub 部署到 TradingHost 托管的容器运行环境中。
您
- 您的代码库包含您的代码。
- 您的部署定义了其运行方式。
- 您的策略连接到 OANDA。
TradingHost
- 保持运行环境在线。
- 呈现日志和健康检查。
- 区域选择。
- 受控的部署面板。
部署流程
- 步骤 01
连接 GitHub
授权 TradingHost 访问您的 GitHub 账户。
- 步骤 02
关联代码库或从框架起步
将 TradingHost 指向您现有的策略仓库,或者派生(fork)一个 TradingHost 框架运行时(例如适用于 OANDA 的 NautilusTrader 或 Backtrader,或者 OANDA v20 起步模板)作为可运行的基础模板。
- 步骤 03
部署到 TradingHost 容器中
选择区域(欧洲 OANDA 实体选择 EU,美国 OANDA Corporation 选择 US-East),提供策略所需的环境变量(v20 bearer token、账户 ID、fxPractice 或 fxTrade 主机地址),然后进行部署。TradingHost 会从代码仓库构建您的容器,并在托管的 Kubernetes 基础设施上运行您的策略。无需在本地安装 Docker。
- 步骤 04
监控日志和健康状况
从 TradingHost 控制台查看实时日志、健康状况和运行状态。任何 AI IDE 都可以通过 MCP 访问相同的面板,因此 Cursor、Claude Code 或 CLI 代理可以与您一同读取部署状态并管理运行环境。
- 步骤 05
更新与重新部署
将更改推送到您的 GitHub 主分支,TradingHost 将自动重新部署。
章节 05 · 运维说明
OANDA 运维说明
在容器化云端运行时中实际运行 OANDA 策略时可能遇到的隐患(这些内容不会出现在 OANDA 的营销页面或框架的 README 中)。以下每条说明均转述自 OANDA 的官方文档或相关监管机构的规则手册;部署层面的指南则源自我们在 TradingHost 上运行 these 策略的实际经验。
01 · 主机分离
fxTrade (实盘) 与 fxPractice (模拟盘) 是独立的主机,使用独立的 Token
实盘 REST 主机为 api-fxtrade.oanda.com,模拟盘 REST 主机为 api-fxpractice.oanda.com。Token 在对应环境的 Manage API Access 下生成,且不可互换:fxTrade Token 无法在 fxPractice 中通过身份验证,反之亦然。不同环境的账户 ID (Account ID) 也有所不同(fxPractice ID 通常以 `101-` 开头)。请将模拟盘和实盘的 Token 保存在独立的 TradingHost Secrets 条目中;切勿跨环境复用 Token,也切勿在跨环境部署的代码路径中硬编码主机字符串。
02 · 身份验证
Authorization 请求头中的 Bearer Token,每个 OANDA 账户对应一个 Token
发往 v20 的每个经过身份验证的请求都带有 `Authorization: Bearer <token>`。该 Token 在 OANDA 用户门户的 Manage API Access 下生成,其作用域仅限于生成该 Token 的用户;账户选择是通过路径 (`/v3/accounts/<accountID>/...`) 进行的,而不是通过单独的请求头。如果 Token 泄露,请立即轮换,并将其存储在您仓库的 GitHub Secrets 中,切勿保存在已提交的代码或环境配置文件中。
03 · 流式传输
价格和交易数据通过长轮询分块 HTTP 进行流式传输,而非 WebSocket
OANDA 的流式传输端点(`/v3/accounts/<accountID>/pricing/stream`、`/v3/accounts/<accountID>/transactions/stream`)保持单个打开的 TCP 连接,并输出以换行符分隔的 JSON 分块。这里没有 WebSocket 帧层。容器的重连逻辑必须显式处理连接中断、不完整的分块和空闲超时。该流会定期发送心跳(heartbeat)对象,以便客户端检测失效连接;请根据缺失的心跳采取行动,而不是等待操作系统级别的超时。
04 · NFA Rule 2-43b
OANDA Corporation (美国) 强制执行 FIFO 订单匹配且单只工具禁止对冲
根据 NFA Rule 2-43b,OANDA Corporation 的美国零售客户无法在同一交易工具上同时持有做多和做空头寸,且必须按照开仓顺序(先进先出,FIFO)平仓相反的头寸。如果在同一货币对上放置对冲订单,策略将看到该订单与现有头寸进行净额结算,而不是开设一个独立的头寸。此规则不适用于 OANDA 的非美国实体(澳大利亚、欧洲、BVI)。对于跨实体部署的策略,相同的代码在美区和非美区账户之间可能会产生不同的盈亏(P&L)归因。
05 · 速率限制
单个 Token 的请求速率上限;请遵守 429 响应中的 retry-after
OANDA 对 v20 上的每个 Token 强制执行请求速率上限。超出限制将返回 HTTP 429,并在响应体中指示触发限流。在市场剧烈波动(开盘、新闻发布)的情况下,如果容器的每次循环迭代都调用账户或价格端点,可能会触发该上限。建议优先使用流式价格端点而非轮询,批量处理相关请求,并在遇到 429 时进行指数退避。具体的每秒请求数上限请参考 OANDA 的官方文档,这些限制可能会随时间变化;请以官方文档为准。
06 · 账户 ID
在大多数 v20 端点中,账户 ID 绑定在请求路径中
交易、持仓、交易历史、价格以及大多数账户端点都采用 `/v3/accounts/<accountID>/<resource>` 的形式。Bearer Token 用于验证用户身份;路径用于选择账户。同时拥有子账户和主账户的用户将拥有两个不同的 accountID,策略必须选择正确的 ID。`/v3/accounts` 端点列出了该 Token 可以访问的所有 accountID,而在策略开始下单之前,`/v3/accounts/<accountID>/summary` 可以确认币种、杠杆实体和余额。
07 · 交易报告
EMIR、MiFID II、Dodd-Frank 报告由 OANDA 负责,而非 TradingHost
OANDA Europe Markets Ltd 根据 EMIR 和 MiFID II 进行报告。OANDA Corporation 作为 CFTC RFED 根据 Dodd-Frank Title VII 掉期数据报告规则进行报告。OANDA Australia 根据 ASIC 衍生品交易报告规则进行报告。TradingHost 不会代表您进行监管交易报告,也不是报告服务机构。您在 TradingHost 上运行的策略代码属于您自己的算法活动;报告责任归属于备案经纪商,即持有该账户的 OANDA 实体。
第 06 节 · 适用对象
适用对象
TradingHost OANDA 运行环境最适合:
- 在 AI IDE (Cursor、Claude Code) 中构建策略的开发者
- 量化外汇策略开发者
- 套利交易和指数动量交易员
- NautilusTrader 和 Backtrader 用户
- 正在从 MetaTrader 和 VPS 托管转向容器化部署的团队
连接 GitHub 并创建您的首个策略是免费的。
第 08 节 · 常见问题
常见问题
没有。TradingHost 是独立的,与 OANDA Corporation 或任何 OANDA 集团实体没有任何隶属关系。
不是。TradingHost 不是经纪商,也不是注册投资公司。TradingHost 是一个运行您策略代码的云运行环境(runtime)。经纪商关系、账户、杠杆、执行以及监管保护均由 OANDA 提供。您需要直接向适用于您所在司法管辖区的 OANDA 实体注册。
不会。您的策略代码会连接到 OANDA,并根据您自己的逻辑、账户权限和集成方式发送指令。TradingHost 仅提供运行该代码的运行环境(runtime)。
不提供。OANDA v20 API 访问权限由 OANDA 提供。您需要自行负责您的 OANDA 账户、API 访问权限、Bearer Token 轮换以及遵守 OANDA 的条款。
可以。TradingHost 支持运行 Python 策略;您可以选择与您的技术栈匹配的框架运行环境(NautilusTrader、Backtrader 或 OANDA v20 模板),或者部署您自己的仓库。支持 OANDA 原生的 v20-python SDK。
可以。TradingHost 支持任何可以在容器内运行的语言。OANDA 的 v20 REST 和流式传输端点均基于 HTTP,因此任何带有 HTTP 客户端的语言都可以调用它们。
可以,只要您的项目是这样设计的。您可以在一个运行环境中运行多个策略进程或服务,也可以将它们拆分到不同的运行环境中,以实现隔离和运行清晰度。有关多策略模型,请参阅 TradingHost 运行环境页面。
TradingHost 运行的是容器化的云工作负载,而不是 MetaTrader 4 或 MetaTrader 5 桌面客户端。如果您的 OANDA 策略是使用 MQL 编译的 MT4 或 MT5 Expert Advisor (EA),该 EA 会在 MetaTrader 客户端内运行,传统上需要 Windows VPS 才能保持在线。若要使用 TradingHost,请将逻辑移植到 v20 REST 或 v20 流式传输客户端;这样才能适配 TradingHost。
最快的方法是 fork 一个 TradingHost 框架运行环境:NautilusTrader 和 Backtrader 都对 OANDA 提供了原生支持。或者连接您自己的 GitHub 策略仓库。关联 GitHub 仓库并创建策略是免费的;运行环境方案已在定价页面列出。
可以。杠杆由持有您账户的 OANDA 实体决定,而不是由 TradingHost 决定。根据 NFA Rule 2-43b,OANDA Corporation (美国) 将主要货币对的零售杠杆限制在 50:1,非主要货币对限制在 20:1。OANDA Australia (ASIC) 和 OANDA Europe Markets (CySEC) 将主要货币对的杠杆限制在 30:1,非主要货币对和黄金限制在 20:1,其他交易工具的限制更低。OANDA Global Markets (BVI) 根据 BVI FSC 规则允许更高的杠杆。杠杆上限遵循您账户所在实体的监管机构规定;API 接口是完全相同的。
存储在您由 GitHub 控制的 secrets 工作流中。TradingHost 在运行时通过 GitHub 仓库 secrets、环境 secrets 或您自己批准的密钥管理流程来读取 Token。TradingHost 不需要托管您的 Token。
不需要。OANDA v20 Token 仅授予交易、账户状态和价格的访问权限,不授予提款或入金权限。入金和提款是通过 OANDA 用户门户进行的,而不是通过 API。请确保具有提款权限的操作完全不暴露在 v20 接口上。
是的。TradingHost 支持针对 AI IDE(包括 Cursor、Claude Code、GitHub Copilot)以及基于命令行(CLI)的 AI Agent 的 MCP 控制。AI 工具可以检查部署、查看日志、重启策略并管理运行时工作流。MCP 仅作为控制和可观测性界面,不参与交易执行路径。
不处理。EMIR 和 MiFID II 交易报告是经纪商的责任。OANDA Europe Markets Ltd 作为受监管的投资公司,根据 EMIR 和 MiFID II 进行报告。OANDA Corporation 作为 CFTC RFED,根据 Dodd-Frank Title VII 掉期数据报告规则进行报告。OANDA Australia 根据 ASIC 衍生品交易报告规则进行报告。TradingHost 负责运行您的代码,监管报告由您的开户经纪商负责。
TradingHost 在 EU 和 US-East 区域运行。EU 区域是 OANDA Europe Markets 和 OANDA Australia 流量的理想选择;US-East 则是 OANDA Corporation (US) 流量的理想选择。
不支持。TradingHost 专注于生产环境的运行和部署。回测应当在您的研究技术栈、框架(如 NautilusTrader 的回测器、Backtrader 的引擎、vectorbt)或 AlgoBuilder 中进行。