阅读时间 … 分钟

AI 原生的 Saxo Bank 交易策略运行环境

在 Cursor、Claude Code 或任何 AI IDE 中编写 Saxo OpenAPI 策略。从 GitHub 部署至托管云端运行环境,提供深度集成的 MCP 控制、日志查看与区域选择。

由 TradingHost 工程团队撰写

第 01 节 · 一览

一览

经纪商
Saxo Bank
经纪商类型
丹麦银行与多资产经纪商
资产类别
外汇、CFD、股票、ETF、期货、期权、债券、共同基金
支持的产品
超过 70,000 种工具,涵盖现货外汇、外汇期权、股票与 ETF(40 多个交易所)、上市期货与期权、政府与企业债券、共同基金,以及指数、大宗商品、个股和债券的 CFD
运行环境模型
容器化策略运行环境
部署源
GitHub
编程语言
任何可在容器中运行的语言
常用集成
Saxo OpenAPI REST、OpenAPI streaming、FIX 4.4、saxo_openapi Python 包装器、NautilusTrader、自定义连接器
AI 工作流集成
适用于 Cursor、Claude Code、GitHub Copilot 及 CLI 智能体的 MCP 控制面板
TradingHost 角色
运行环境、部署、日志、健康检查、区域选择、MCP 控制
Saxo Bank 角色
银行账户、经纪商账户、API 接入、多资产市场准入、执行场所
监管机构
Saxo Bank A/S(丹麦金融监管局 Danish FSA 银行牌照 licence 1149,1996 年于丹麦颁发);Saxo Capital Markets UK Limited(英国金融行为监管局 FCA 公司编号 551422);Saxo Bank (Switzerland) Ltd(瑞士金融市场监督管理局 FINMA);Saxo Markets Pte. Ltd.(新加坡金融管理局 MAS);Saxo Bank UAE(迪拜金融服务局 DFSA);Saxo Bank Hong Kong(香港证监会 SFC);Saxo Capital Markets Pty Ltd 澳大利亚(澳大利亚证券和投资委员会 ASIC)。
零售杠杆上限
欧盟(Saxo Bank A/S,Danish FSA;Saxo Capital Markets UK,FCA):符合 ESMA 标准,主要外汇 30:1,非主要外汇和黄金 20:1,非黄金大宗商品和非主要指数 10:1,股票 5:1,加密货币 CFD 2:1。瑞士(Saxo Bank Switzerland,FINMA):遵循 FINMA 规定。新加坡(MAS)、澳大利亚(ASIC)、香港(SFC)、阿联酋(DFSA):遵循各司法管辖区上限。作为持有银行牌照的经纪商,Saxo 不运营提供高杠杆的离岸零售实体。
关联关系
TradingHost 保持独立,与 Saxo Bank A/S 或任何 Saxo Group 实体无任何关联

第 02 节 · Saxo Bank 支持概况

Saxo Bank 支持概况

Saxo Bank 通过单一的 OpenAPI 接口提供超过 70,000 种工具,涵盖外汇、股票、期货、期权、债券、共同基金和 CFD。相同的 REST 和 streaming 端点适用于所有资产类别,因此外汇策略和债券策略共享相同的认证、订单和账户模型。SIM(模拟)和 live(生产)是独立的 OAuth 环境。具体的端点行为和完整的工具列表请参阅 Saxo 的官方文档。

市场与策略模式

  • 单一 OpenAPI 接口中的跨资产策略(外汇、股票、期货、债券)
  • 主要外汇货币对及交叉盘/稀有货币策略
  • 覆盖 40 多个交易所的股票与 ETF 策略
  • 通过 OpenAPI 执行的上市期货与期权策略
  • 政府与企业债券策略
  • 在 SIM(模拟)中验证的部署可直接晋级至生产环境
  • 经 OAuth 认证的短期生产环境令牌
  • 用于价格和交易事件的 OpenAPI streaming

API 接口

产品接口
超过 70,000 种工具,涵盖现货外汇、外汇期权、个股与 ETF(40 多个交易所)、全球交易场所的上市期货与期权、政府与企业债券、共同基金,以及指数、大宗商品、股票和债券的 CFD。SIM(模拟)和 live(生产)是独立的环境,拥有各自独立的 OpenAPI Explorer 控制台。
连接方式
适用于账户、余额、订单、持仓和参考数据的 Saxo OpenAPI REST,在不同资产类别间保持一致的数据格式。OpenAPI streaming 用于实时价格、交易事件和账户更新。FIX 4.4 会话适用于机构和专业零售资金流。支持原生 saxo_openapi Python 包装器。
身份验证
生产环境应用采用 OAuth 2.0 授权码流程;开发者门户还提供 24 小时个人访问令牌,以便在不进行完整应用管理流程的情况下快速构建原型。令牌的作用域仅限于 SIM(developer.saxo SIM)或 live(实际应用)环境,二者不可混用。生产级部署需要进行刷新令牌(Refresh-token)轮换。

第 03 节 · 使用 AI 构建

借助 AI 构建您的 Saxo 策略

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

  • 原生 Saxo OpenAPI

    直接控制 Saxo 特有的行为、账户状态、OAuth 令牌、OpenAPI streaming 以及完整的跨资产订单模型。

  • saxo_openapi (Python 包装器)

    持续维护的 Saxo OpenAPI Python 包装器,提供用于 OAuth 处理、订单模型和 streaming 订阅的辅助工具。

  • FIX 4.4

    机构与专业零售 FIX 4.4 会话,适用于低延迟执行以及拥有现有 FIX 基础设施的客户。

  • 自定义连接器

    基于 Saxo OpenAPI REST 和 streaming 构建您自己的 Python、Java、.NET 或 Go 集成。

框架对 Saxo 产品的支持情况

Saxo OpenAPI、saxo_openapi 和 FIX 4.4 均覆盖了 Saxo 的完整跨资产范围。在欧盟和新加坡实体中,Saxo 目前的零售业务不包含加密货币 CFD,因此该列如实标记为“否”,而非留空。NautilusTrader 目前未提供已记录文档的 Saxo 适配器;展示该框架是为了与同类经纪商矩阵保持一致,而非作为 Saxo 的推荐路径。

框架外汇指数商品CFD加密货币 CFD
Native Saxo OpenAPI支持支持支持支持未记录支持
saxo_openapi (Python)支持支持支持支持未记录支持
FIX 4.4支持支持支持支持未记录支持
NautilusTrader未记录支持未记录支持未记录支持未记录支持未记录支持

✓ 根据 Saxo OpenAPI 和框架文档确认支持。“否”表示框架不支持或不在 Saxo 当前的零售业务中。工作流链接指向目前正在撰写的 /workflows/ 页面。

TradingHost 不绑定任何框架。它只运行您的项目。

AI 辅助编写

上述框架起步模板可与 AI IDE 完美契合。TradingHost 的 MCP 控制面板实现了闭环:AI 工具可以与您一同检查部署、查看日志并管理运行环境,但绝不会介入交易执行路径。

章节 04 · 在 TradingHost 上运行

在 TradingHost 上运行您的代码

Saxo Bank 提供具有银行牌照的经纪商账户和 OpenAPI 访问权限。TradingHost 则提供运行您 Saxo 关联策略的生产环境。

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

您

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

TradingHost

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

部署流程

  1. 步骤 01

    连接 GitHub

    授权 TradingHost 访问您的 GitHub 账户。

  2. 步骤 02

    关联代码库或从框架起步

    将 TradingHost 指向您现有的策略仓库,或者派生(fork)一个 TradingHost 框架运行环境(saxo_openapi Python 模板或 Saxo OpenAPI REST 模板)作为可运行的基础模板。

  3. 步骤 03

    部署到 TradingHost 容器中

    选择一个区域(EU 适合 Saxo Bank A/S 和 Saxo Capital Markets UK;US-East 适合通过 Saxo 交易的美股和期货),提供策略所需的环境变量(OAuth 客户端 ID 和密钥、refresh token 或 24 小时开发者访问令牌、SIM 或生产环境选择器),然后进行部署。TradingHost 会从代码仓库构建您的容器,并在托管的 Kubernetes 基础设施上运行您的策略。无需在本地安装 Docker。

  4. 步骤 04

    监控日志和健康状况

    从 TradingHost 控制台查看实时日志、健康状况和运行状态。任何 AI IDE 都可以通过 MCP 访问相同的面板,因此 Cursor、Claude Code 或 CLI 代理可以与您一同读取部署状态并管理运行环境。

  5. 步骤 05

    更新与重新部署

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

章节 05 · 运维说明

Saxo Bank 运维说明

在容器化云运行环境中实际运行 Saxo 策略时(而非在 Saxo 的营销页面或第三方教程中)需要注意的实际问题。以下所有说明均转述自 Saxo 开发者门户或相关监管机构;部署侧的指南则源自我们在 TradingHost 上运行这些策略的实际经验。

  1. 01 · OAuth 流程

    OAuth 2.0 授权码流程,以及用于原型设计的 24 小时开发者访问令牌

    Saxo OpenAPI 将 OAuth 2.0 授权码作为标准的生产流程:注册 Saxo 开发者应用,引导用户通过 Saxo 登录,用授权码交换访问令牌,并在令牌过期时进行刷新。为了快速进行原型设计,developer.saxo 会发放一个与您的开发者账户绑定的个人 24 小时访问令牌,从而免去完整的应用管理设置。24 小时令牌适用于 SIM 环境下的实验;生产环境策略则需要一个注册的应用并配合刷新令牌(refresh token)轮换。

  2. 02 · 环境

    SIM(模拟)和 live(生产)是相互独立的环境,使用不同的令牌

    Saxo 的 SIM 环境是使用模拟资金的高保真模拟环境;生产环境则使用真实资金并路由至真实市场。为 SIM 发放的令牌无法在生产环境中进行身份验证,反之亦然。应用必须分别在 SIM 开发者门户和 live 应用管理门户中进行注册。请将 SIM 和生产环境视为两个独立的 TradingHost 部署,并配置两个独立的 Secrets 条目,切勿将其视为可以一键晋升的单一交付物。

  3. 03 · 跨资产模型

    单一账户,单一 OpenAPI 接口,涵盖所有资产类别

    Saxo 的独特之处在于,单个客户账户即可将外汇、股票、期货、期权、债券和 CFD 整合在同一个余额和同一组 OpenAPI 端点下。/port/v1/positions/me 会返回跨资产类别的持仓;/port/v1/balances/me 则返回一个合并后的余额。最安全的模式是让策略通过 Uic(Saxo 的通用代码)加上 AssetType 来过滤持仓;在 Saxo 上假设每个账户仅有一种资产类型是错误的。

  4. 04 · 流式传输

    OpenAPI streaming 使用持久连接,而非原始 WebSocket 协议

    Saxo 的流式传输接口是一个持久连接,用于接收价格、账户事件和订单更新的 JSON 消息。订阅是通过 REST 创建的(先通过 POST /streamingws/connect 建立连接,然后针对每个订阅发送 REST POST 请求),流式连接会根据这些订阅推送更新。连接中断时需要重新创建订阅,而不仅仅是重新连接;请务必将此恢复逻辑构建到运行时的客户端中。

  5. 05 · 银行牌照

    Saxo Bank A/S 持有 Danish FSA 银行牌照 licence 1149;客户资金享有银行存款保护

    Saxo Bank A/S 是一家受 Finanstilsynet (Danish FSA) 监管的丹麦银行,牌照编号为 licence 1149(1996 年颁发)。Saxo 的客户现金存放在丹麦银行存款保障计划下,而非采用非银行经纪商所使用的隔离客户账户模式。这是其区别于非银行零售外汇机构的信誉优势,特别是对于在 Saxo Bank A/S 实体下开户的客户而言。其他实体(Saxo Capital Markets UK、Saxo Bank (Switzerland) Ltd、Saxo Markets Pte. Ltd.)拥有各自的监管体系;请勿假设银行存款保障适用于每一个 Saxo 实体。

  6. 06 · 交易报告

    EMIR、MiFID II 和 Dodd-Frank 报告由 Saxo 负责

    Saxo Bank A/S 和 Saxo Capital Markets UK 作为获授权的投资公司,根据 EMIR 和 MiFID II 进行报告。Saxo Markets Pte. Ltd. 根据 MAS 规则进行报告。Saxo Capital Markets Pty Ltd 根据 ASIC 衍生品交易报告规则进行报告。TradingHost 不会代表您进行监管交易报告,也不是报告服务商。您在 TradingHost 上运行的策略代码属于您自己的算法活动;报告责任归属于持有该账户的 Saxo 实体。

第 06 节 · 适用对象

适用对象

TradingHost Saxo Bank 运行环境最适合:

  • 在 AI IDE(如 Cursor、Claude Code)中构建策略的开发者
  • 跨资产系统化交易员(外汇、股票、期货、债券)
  • 量化外汇策略开发者
  • saxo_openapi Python 用户
  • 从 MetaTrader 和 VPS 托管转向容器化部署的团队

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

第 08 节 · 常见问题

常见问题

不是。TradingHost 是独立的,不隶属于 Saxo Bank A/S 或任何 Saxo 集团实体。

不是。TradingHost 既不是银行,也不是经纪商,更不是注册投资公司。TradingHost 是一个运行您策略代码的云运行环境。银行关系、账户、杠杆、执行以及监管保护均由 Saxo Bank 提供。您需要直接向适合您所在司法管辖区的 Saxo 实体申请开户。

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

不提供。Saxo OpenAPI 访问权限由 Saxo Bank 通过 developer.saxo 提供。您需要自行注册 Saxo 开发者应用,并对您的 Saxo 账户、OAuth 令牌轮换以及遵守 Saxo 的条款负责。

可以。社区 Python 封装库 saxo_openapi 使用符合 Python 习惯的写法和 OAuth 处理助手封装了 Saxo OpenAPI REST 和流式传输。或者,您也可以使用任何 HTTP 客户端直接调用 Saxo OpenAPI。

可以。TradingHost 支持任何可在容器内运行的语言。Saxo OpenAPI 基于 HTTP,因此任何拥有 HTTP 客户端的语言都可以调用它。

可以。Saxo 的 OpenAPI 接口是跨资产的:单个客户账户即可将外汇、股票、期货、期权、债券和 CFD 整合在同一个余额和同一组端点下。TradingHost 策略可以从相同的代码路径跨资产类别下达订单。请注意持仓过滤:应根据 /port/v1/positions/me 返回的 AssetType 字段进行分支处理,而不是假设每个账户只有一种资产类型。

可以,只要您的项目是这样设计的。您可以在一个运行环境中运行多个策略进程或服务,也可以将它们拆分到不同的运行环境中,以实现隔离和运行条理清晰。

在 developer.saxo 开立 Saxo 开发者账户,针对 SIM 环境注册一个应用,并获取一个 24 小时令牌进行原型设计。Fork 一个基于 saxo_openapi 构建的 TradingHost 框架运行环境,或者连接您自己的 GitHub 策略仓库。关联 GitHub 仓库和创建策略是免费的;运行环境方案已在定价页面列出。

可以。杠杆由持有您账户的 Saxo 实体决定,而非由 TradingHost 决定。Saxo Bank A/S (Danish FSA)、Saxo Capital Markets UK (FCA) 以及其他符合 ESMA 标准的实体对主要外汇的杠杆上限设为 30:1,非主要外汇和黄金为 20:1,其他商品和次要指数为 10:1,股票为 5:1,加密货币 CFD 为 2:1。Saxo Bank (Switzerland) Ltd 在 FINMA 规则下运营。新加坡 (MAS)、澳大利亚 (ASIC)、香港 (SFC)、阿联酋 (DFSA) 拥有各自司法管辖区的上限。作为拥有银行牌照的集团,Saxo 不运营提供高杠杆的离岸零售实体。

存放在您通过 GitHub 控制的 secrets 工作流中。TradingHost 在运行时通过 GitHub 仓库 secrets、环境 secrets 或您自己认可的密钥管理流程读取 OAuth 客户端 ID、客户端密钥(client secret)和刷新令牌(refresh token)。访问令牌是短期有效的,存在于进程内存中;刷新令牌是长期有效的,必须根据 Saxo 的应用配置进行轮换。

可以。TradingHost 支持针对 AI IDE(包括 Cursor、Claude Code、GitHub Copilot 和基于 CLI 的 AI 智能体)的基于 MCP 的控制。AI 工具可以检查部署、查看日志、重启策略并管理运行时工作流。MCP 是一个控制和可观测性接口,而非交易执行路径。

不。EMIR 和 MiFID II 的交易报告由经纪商负责。Saxo Bank A/S 和 Saxo Capital Markets UK 作为获授权的投资机构,依据 EMIR 和 MiFID II 进行报告。Saxo Markets Pte. Ltd. 依据 MAS 规则进行报告。Saxo Capital Markets Pty Ltd 依据 ASIC 衍生品交易报告规则进行报告。TradingHost 负责运行您的代码,而监管报告则由持有您账户的 Saxo 实体处理。

不。TradingHost 专注于生产环境的运行与部署。回测应在您的研究系统、框架或 AlgoBuilder 中进行。