Instrument Types

This reference documents the instrument concepts used by the Trading Gateway: the AssetClass enum, the provider-native symbol format used on REST and WebSocket messages, and how strategies discover which symbols a given broker supports.

Enums

AssetClass

The asset class categorizes the type of instrument being traded. Used on Capabilities.supported_asset_classes and on responses that carry instrument metadata.

ValueDescription
STOCKEquities and stock instruments (e.g., AAPL, MSFT)
FOREXForeign exchange currency pairs (e.g., EUR/USD, GBP/JPY)
CRYPTOCryptocurrency pairs (e.g., BTC/USD, ETH/USD)
FUTURESFutures contracts

Symbol Format

Symbols on the Gateway are the same strings the underlying broker accepts. The Gateway does not apply a Tektii-internal prefix scheme; it forwards the symbol verbatim to the configured provider. The shapes below are common display conventions — not a Tektii wire format. Send whatever string your provider accepts and the Gateway passes it through unchanged.

Common display conventions by asset class

These are how each asset class is most often displayed; the exact string a given broker accepts can differ. Always send the provider-native form your strategy subscribed with.

Asset ClassCommon display conventionExamples
StocksTicker symbolAAPL, MSFT, GOOGL
ForexBase/QuoteEUR/USD, GBP/JPY, USD/CHF
CryptoBase/QuoteBTC/USD, ETH/USD, SOL/USDT
FuturesContract codeES, NQ, CL

Currency Pairs

When forex and crypto pairs are written with a slash, the display convention is BASE/QUOTE:

  • Base currency: the currency being bought or sold
  • Quote currency: the currency used to price the base

For example, in EUR/USD:

  • EUR is the base currency
  • USD is the quote currency
  • A price of 1.0850 means 1 EUR = 1.0850 USD

Brokers occasionally use other conventions (e.g. EURUSD without the slash, or crypto pairs like BTCUSDT). Always check the provider's own documentation for the exact string format. The Gateway passes whatever you send through to the upstream broker.

Discovering Symbols

The Trading Gateway does not expose a symbol-enumeration endpoint. There is no GET /v1/symbols or equivalent; strategies discover the tradeable universe in two complementary ways.

1. Query GET /v1/capabilities for supported asset classes

Every running Gateway exposes a capabilities endpoint that describes what the currently configured provider supports. Strategies should call this once at startup to learn which AssetClass values are available before attempting to subscribe or place orders.

{
  "supported_asset_classes": ["STOCK", "FOREX"],
  "supported_order_types": ["MARKET", "LIMIT", "STOP", "STOP_LIMIT"],
  "position_mode": "NETTING",
  "features": ["bracket_orders", "trailing_stops"],
  "max_leverage": "4.0",
  "rate_limits": { "requests_per_minute": 200 }
}

See the REST reference → GET /v1/capabilities for the full response schema.

2. Consult the provider's own API for the symbol list

Each broker maintains its own authoritative symbol list with metadata the Gateway does not surface (listing status, lot sizes, tick sizes, contract specifications, margin requirements). When a strategy needs this metadata, fetch it directly from the broker API:

ProviderWhere to find symbol metadata
Alpaca (alpaca-paper, alpaca-live)Alpaca's own Assets API
Binance (binance-spot-testnet, binance-spot-live)Binance public exchangeInfo endpoint
Saxo (saxo-live)Saxo OpenAPI Reference Data
Oanda (oanda-live)Oanda Account Instruments endpoint

The SUBSCRIPTIONS environment variable (configured on the Gateway itself, not the strategy) is where operators declare which specific instruments a particular Gateway instance should stream. See Connection → Event Subscription for the subscription schema.