AI-native runtime for Saxo Bank trading strategies
Author Saxo OpenAPI strategies in Cursor, Claude Code or any AI IDE. Deploy from GitHub into a managed cloud runtime with first-class MCP control, logs and region selection.
Section 01 · At a glance
At a glance
- Broker
- Saxo Bank
- Broker type
- Danish bank and multi-asset broker
- Asset class
- Forex, CFDs, equities, ETFs, futures, options, bonds, mutual funds
- Supported products
- 70,000+ instruments across spot FX, FX options, equities and ETFs (40+ exchanges), listed futures and options, government and corporate bonds, mutual funds, and CFDs on indices, commodities, single shares and bonds
- Runtime model
- Containerised strategy runtime
- Deployment source
- GitHub
- Languages
- Any language that runs in a container
- Common integrations
- Saxo OpenAPI REST, OpenAPI streaming, FIX 4.4, saxo_openapi Python wrapper, NautilusTrader, custom connectors
- AI workflow integration
- MCP control surface for Cursor, Claude Code, GitHub Copilot and CLI agents
- TradingHost role
- Runtime, deployment, logs, health checks, region selection, MCP control
- Saxo Bank role
- Bank account, broker account, API access, multi-asset market access, execution venue
- Regulators
- Saxo Bank A/S (Danish FSA bank licence 1149, issued 1996, Denmark); Saxo Capital Markets UK Limited (FCA firm reference 551422); Saxo Bank (Switzerland) Ltd (FINMA); Saxo Markets Pte. Ltd. (MAS, Singapore); Saxo Bank UAE (DFSA); Saxo Bank Hong Kong (SFC); Saxo Capital Markets Pty Ltd Australia (ASIC).
- Retail leverage caps
- EU (Saxo Bank A/S, Danish FSA; Saxo Capital Markets UK, FCA): ESMA-aligned 30:1 on major FX, 20:1 on non-major FX and gold, 10:1 on non-gold commodities and non-major indices, 5:1 on stocks, 2:1 on crypto CFDs. Switzerland (Saxo Bank Switzerland, FINMA): FINMA rules. Singapore (MAS), Australia (ASIC), Hong Kong (SFC), UAE (DFSA): per-jurisdiction caps. As a bank-licensed broker, Saxo does not operate offshore retail entities with elevated leverage.
- Affiliation
- TradingHost is independent and is not affiliated with Saxo Bank A/S or any Saxo Group entity
Section 02 · What Saxo Bank offers
What Saxo Bank offers
Saxo Bank offers more than 70,000 instruments across forex, equities, futures, options, bonds, mutual funds and CFDs through a single OpenAPI surface. The same REST and streaming endpoints serve every asset class, so an FX strategy and a bond strategy share the same auth, order and account model. SIM (demo) and live (production) are separate OAuth environments. Specific endpoint behaviour and the full instrument list live in Saxo's documentation.
Markets and strategy patterns
- Cross-asset strategies in one OpenAPI surface (FX, equities, futures, bonds)
- FX major-pair and exotic-currency strategies
- Equities and ETF strategies on 40+ exchanges
- Listed futures and options strategies via OpenAPI
- Government and corporate bond strategies
- SIM (demo) validated deployments promoted to production
- OAuth-authenticated short-lived production tokens
- OpenAPI streaming for prices and trade events
API surface
- Product surfaces
- 70,000+ instruments across spot FX, FX options, single-stock and ETF (40+ exchanges), listed futures and options on global venues, government and corporate bonds, mutual funds, and CFDs on indices, commodities, shares and bonds. SIM (simulation, demo) and live (production) are separate environments with separate OpenAPI Explorer consoles.
- Connection methods
- Saxo OpenAPI REST for accounts, balances, orders, positions and reference data, with one consistent shape across asset classes. OpenAPI streaming for real-time prices, trade events and account updates. FIX 4.4 session for institutional and pro retail flows. Native saxo_openapi Python wrapper supported.
- Authentication
- OAuth 2.0 authorisation-code flow for production apps; the developer portal also issues a 24-hour personal access token for quick prototyping without going through the full app-management flow. Tokens are scoped to either the SIM (developer.saxo SIM) or the live (live application) environment and are not interchangeable. Refresh-token rotation is required for production-grade deployments.
For specifics, refer to Saxo Bank
Specific endpoints, OAuth flow details, rate limits, instrument identifiers and the full reference docs live in Saxo's developer portal. Treat these as the source of truth.
- developer.saxoSaxo Bank Developer Portal
- developer.saxo/openapi/learnOpenAPI overview, environments, getting started
- developer.saxo/openapi/learn/core-business-conceptsAccount, client and order model
- developer.saxo/openapi/referencedocsOpenAPI reference documentation
- home.saxo/legal/saxo-bank-licensesSaxo Bank licensing details across entities
Section 03 · Build with AI
Build your Saxo strategy with AI
Pick an integration method, fork a TradingHost framework starter, and author your strategy in an AI IDE. Cursor, Claude Code, GitHub Copilot and CLI-based AI agents all work with the same GitHub-native deployment loop.
Native Saxo OpenAPI
Direct control over Saxo-specific behaviour, account state, OAuth tokens, OpenAPI streaming and the full cross-asset order model.
saxo_openapi (Python wrapper)
Maintained Python wrapper around Saxo OpenAPI with helpers for OAuth handling, the order model and streaming subscriptions.
FIX 4.4
Institutional and pro retail FIX 4.4 session, useful for low-latency execution and for clients with existing FIX infrastructure.
Custom connector
Your own Python, Java, .NET or Go integration on top of Saxo OpenAPI REST and streaming.
Framework support for Saxo products
Saxo OpenAPI, saxo_openapi and FIX 4.4 all span Saxo's full cross-asset surface. Crypto CFDs are not in Saxo's current retail offering across the EU and Singapore entities, so that column is honestly marked "no" rather than left blank. NautilusTrader does not ship a documented Saxo adapter today; the framework is shown for parity with sibling-broker matrices, not as a recommended path for Saxo.
✓ confirmed support per Saxo OpenAPI and framework documentation. "no" indicates not supported by the framework or not in Saxo's current retail offering. Workflow links target /workflows/ pages currently in authoring.
TradingHost does not force a framework. It runs your project.
Author with AI
The framework starters above pair naturally with AI IDEs. The TradingHost MCP control surface closes the loop: AI tools can inspect deployments, review logs and manage the runtime alongside you, never the trade execution path.
Section 04 · Run on TradingHost
Run your code on TradingHost
Saxo Bank provides the bank-licensed broker account and OpenAPI access. TradingHost provides the production environment where your Saxo-connected strategy runs.
Instead of running strategy code on a laptop, desktop machine, generic VPS or manually configured server, you deploy from GitHub into a TradingHost-managed container runtime.
You
- Your repo contains your code.
- Your deployment defines how it runs.
- Your strategy connects to Saxo Bank.
TradingHost
- Keeps the runtime online.
- Surfaces logs and health checks.
- Region selection.
- Controlled deployment surface.
Deployment flow
- STEP 01
Connect GitHub
Authorise TradingHost to access your GitHub account.
- STEP 02
Link a repo or start from a framework
Point TradingHost at your existing strategy repo, or fork a TradingHost framework runtime (the saxo_openapi Python starter or a Saxo OpenAPI REST starter) for a working baseline.
- STEP 03
Deploy into a TradingHost container
Pick a region (EU is the natural fit for Saxo Bank A/S and Saxo Capital Markets UK; US-East for US equities and futures listed via Saxo), supply the environment values your strategy needs (OAuth client ID and secret, refresh token or the 24-hour developer access token, SIM or production environment selector), and deploy. TradingHost builds your container from the repo and runs your strategy on managed Kubernetes infrastructure. No local Docker install required.
- STEP 04
Monitor logs and health
Watch live logs, health and runtime state from the TradingHost dashboard. The same surface is reachable through MCP from any AI IDE, so Cursor, Claude Code or a CLI agent can read deployment state and manage the runtime alongside you.
- STEP 05
Update and redeploy
Push changes to your GitHub main branch and TradingHost redeploys automatically.
Section 05 · Operational notes
Operational notes for Saxo Bank
Things that bite you when you actually run a Saxo strategy in a containerised cloud runtime, not in Saxo's marketing pages, not in third-party tutorials. Every claim below is paraphrased from Saxo's developer portal or the relevant regulator; the deployment-side guidance is from running these strategies on TradingHost.
01 · OAuth flow
OAuth 2.0 authorisation-code flow, plus a 24-hour developer access token for prototyping
Saxo OpenAPI uses OAuth 2.0 authorisation code as the canonical production flow: register a Saxo Developer Application, redirect users through Saxo's login, exchange the auth code for an access token, refresh as the token expires. For quick prototyping, developer.saxo issues a personal 24-hour access token tied to your developer account, which avoids the full app-management setup. The 24-hour token is fine for SIM experimentation; production strategies need a registered application with refresh-token rotation.
02 · Environments
SIM (simulation) and live (production) are separate environments with separate tokens
Saxo's SIM environment is a full-fidelity simulation with paper money; the production environment uses real funds and routes to real markets. Tokens issued for SIM cannot authenticate against production and vice versa. Apps must be registered separately in the SIM developer portal and the live application-management portal. Treat SIM and production as two separate TradingHost deployments with two separate Secrets entries, never as one promotable artifact.
03 · Cross-asset model
One account, one OpenAPI surface, every asset class
Saxo's distinctive shape is that a single client account aggregates FX, equities, futures, options, bonds and CFDs under one balance and one set of OpenAPI endpoints. /port/v1/positions/me returns positions across asset classes; /port/v1/balances/me returns one combined balance. A strategy that filters positions by Uic (Saxo's universal instrument code) plus AssetType is the safest pattern; assuming a single asset type per account is wrong on Saxo.
04 · Streaming
OpenAPI streaming uses persistent connections, not raw WebSocket protocol
Saxo's streaming surface is a persistent connection that receives JSON messages for prices, account events and order updates. Subscriptions are created via REST (POST /streamingws/connect for the connection, then per-subscription REST POSTs) and the streaming connection delivers updates against those subscriptions. Connection drops require re-creating subscriptions, not just reconnecting; build that recovery into the runtime client.
05 · Bank licensing
Saxo Bank A/S holds Danish FSA bank licence 1149; client funds are bank-deposit protected
Saxo Bank A/S is a Danish bank under Finanstilsynet (Danish FSA) supervision, licence number 1149 (issued 1996). Client cash at Saxo is held under Danish bank-deposit-guarantee rules rather than the segregated-client-account model used by non-bank brokers. This is a credibility differentiator from non-bank retail FX shops, particularly for clients onboarding under the Saxo Bank A/S entity. Other entities (Saxo Capital Markets UK, Saxo Switzerland, Saxo Singapore) have their own licensing regimes; do not assume bank-deposit-guarantee protections extend to every Saxo entity.
06 · Trade reporting
EMIR, MiFID II and Dodd-Frank reporting is Saxo's responsibility
Saxo Bank A/S and Saxo Capital Markets UK report under EMIR and MiFID II as authorised investment firms. Saxo Markets Pte. Ltd. reports under MAS rules. Saxo Capital Markets Pty Ltd reports under ASIC derivative trade-reporting rules. TradingHost does not perform regulatory trade reporting on your behalf and is not a reporting service. The strategy code you run on TradingHost is your own algorithmic activity; reporting attaches to the Saxo entity holding the account.
Section 06 · Built for
Built for
TradingHost Saxo Bank runtimes are best suited to:
- Developers building strategies in AI IDEs (Cursor, Claude Code)
- Cross-asset systematic traders (FX, equities, futures, bonds)
- Quant FX strategy developers
- saxo_openapi Python users
- Teams moving from MetaTrader and VPS hosting to containerised deployment
Connecting GitHub and creating your first strategy is free.
Section 08 · FAQ
FAQ
No. TradingHost is independent and is not affiliated with Saxo Bank A/S or any Saxo Group entity.
No. TradingHost is not a bank, not a broker and not a registered investment firm. TradingHost is a cloud runtime that runs your strategy code. The bank relationship, the account, the leverage, the execution and the regulatory protections all live with Saxo Bank. You sign up directly with the Saxo entity appropriate to your jurisdiction.
No. Your strategy code connects to Saxo OpenAPI and sends instructions according to your own logic, account permissions and integration method. TradingHost provides the runtime where that code runs.
No. Saxo OpenAPI access is provided by Saxo Bank through developer.saxo. You register a Saxo Developer Application and you are responsible for your Saxo account, OAuth token rotation and compliance with Saxo's terms.
Yes. The community Python wrapper saxo_openapi wraps Saxo OpenAPI REST and streaming with idiomatic Python and helpers for OAuth handling. Or call Saxo OpenAPI directly with any HTTP client.
Yes. TradingHost supports any language that can run inside a container. Saxo OpenAPI is HTTP, so any language with an HTTP client can call it.
Yes. Saxo's OpenAPI surface is cross-asset: a single client account aggregates FX, equities, futures, options, bonds and CFDs under one balance and one set of endpoints. A TradingHost strategy can place orders across asset classes from the same code path. Be careful with position filtering: branch on the AssetType field returned by /port/v1/positions/me rather than assuming a single asset type per account.
Yes, if your project is designed that way. You can run multiple strategy processes or services inside one runtime, or separate them into different runtimes for isolation and operational clarity.
Open a Saxo developer account at developer.saxo, register an application against the SIM environment and grab a 24-hour token to prototype with. Fork a TradingHost framework runtime built on saxo_openapi, or connect your own GitHub strategy repo. Linking a GitHub repo and creating a strategy is free; runtime plans are listed on the pricing page.
Yes. Leverage is set by the Saxo entity that holds your account, not by TradingHost. Saxo Bank A/S (Danish FSA), Saxo Capital Markets UK (FCA) and other ESMA-aligned entities cap major FX at 30:1, non-major FX and gold at 20:1, other commodities and minor indices at 10:1, stocks at 5:1 and crypto CFDs at 2:1. Saxo Bank (Switzerland) operates under FINMA rules. Singapore (MAS), Australia (ASIC), Hong Kong (SFC), UAE (DFSA) have their own per-jurisdiction caps. As a bank-licensed group, Saxo does not operate offshore retail entities with elevated leverage.
In your GitHub-controlled secrets workflow. TradingHost reads the OAuth client ID, client secret and refresh token at runtime through GitHub repository secrets, environment secrets or your own approved secret-management process. Access tokens are short-lived and live in process memory; refresh tokens are long-lived and must be rotated according to Saxo's app configuration.
Yes. TradingHost supports MCP-based control for AI IDEs including Cursor, Claude Code, GitHub Copilot and CLI-based AI agents. AI tools can inspect deployments, review logs, restart strategies and manage runtime workflows. MCP is a control and observability surface, not the trade execution path.
No. EMIR and MiFID II trade reporting is the broker's responsibility. Saxo Bank A/S and Saxo Capital Markets UK report under EMIR and MiFID II as authorised investment firms. Saxo Markets Pte. Ltd. reports under MAS rules. Saxo Capital Markets Pty Ltd reports under ASIC derivative-trade-reporting rules. TradingHost runs your code; the Saxo entity holding the account handles regulatory reporting.
No. TradingHost is focused on production runtime and deployment. Backtesting belongs in your research stack, framework or AlgoBuilder.