AMMDocumentationWebsite ↗
how to · 5 min read

Connect CQG futures and verify account access

Authenticate a CQG WebAPI account, preserve concurrent sessions and use exact futures contracts.

Reviewed 2026-10-24 · Windows & macOS

On this page

Obtain the right credentials#

AMM connects to futures brokers through CQG WebAPI, including CQG-enabled NinjaTrader Brokerage accounts. A NinjaTrader platform login is not a CQG WebAPI username. Ask the broker for WebAPI access and the corresponding credentials, then confirm exchange-data permissions for the contracts you intend to use.

The server must enable CQG. When disabled, Brokers & feeds shows onboarding with the reason; CQG cannot be selected as an active route until the server configuration is enabled. Demo and production are separate endpoints. The evaluation client application ID works on the demo server only; production requires the application's appropriate CQG client ID and provider approval. A successful demo login does not prove production admission.

Open Data › Brokers & feeds › CQG. In Settings, inspect server, username and application identity, enter the required fields and Save. Connect, then inspect the returned brokerage/account rows and current state. The Session and Event log tabs provide connection and error details. The account and market-data permissions remain provider-owned.

Avoid displacing another trading platform#

CQG permits one session per user in this integration's operating model. AMM defaults to refusing a concurrent login rather than dropping another program such as a NinjaTrader desktop connection. If the server reports CONCURRENT_SESSION, identify the existing session and choose which platform should own it. Do not repeatedly reconnect or enable forced session replacement just to clear an error banner.

AMM shares a pooled upstream CQG connection across charts/features. Direct mode owns it in the API, relay mode in Broker Manager. Forced logoff is separately reported and does not automatically trigger endless relogin. Reconnect after understanding the reason and ensuring the intended account is available.

Inspect the contract before trading#

Choose a dated futures contract using the root/month picker. Check exchange, description, expiry, point value and tick. Quantities are whole contracts. A symbol such as CLZ6 is a specific expiry, while CL_CONT is the platform's roll-managed continuous series. Familiar market names are insufficient to determine multiplier or session calendar.

Instrument Manager displays upcoming contract candidates and continuous entries even before data is downloaded. Verify a contract resolves on the connected CQG account before using it. A continuous series must also have a valid active contract and roll table. For physically delivered products, first-notice and expiration constraints matter to the fixed roll rule.

For a continuous historical range reaching expired contracts, CQG's continuation responses can supply underlying segment identities. AMM uses those identities to populate dated-contract data. Inspect actual coverage rather than assuming the oldest requested date was returned.

Historical data and calendars#

Use Data Download with CQG, exact symbols and required range. The direct provider supports minute and daily history, trade-tick acquisition, and second bars built from time-and-sales trades. Minute history is chunked; higher intraday chart periods are consolidated from M1. Daily bars are stamped at the CME session open for the provider's trade date. Weekly/monthly native bars retain their calendar units.

Relay-mode historical download support is narrower: minute/daily paths are supported, and second/tick requests need the supported direct acquisition path. Do not infer every direct capability from a relay connection being healthy. Inspect the accepted resolution and job error if a request is unavailable.

CME trading sessions and DST-aware Chicago boundaries differ from midnight UTC. Holidays and early closes also affect expected coverage. Backtest date range, visible chart date and futures trade date can refer to different boundaries; retain timestamps and timezone when comparing results.

Depth and order-flow features#

CQG supports live trade prints, best bid/ask, L2 depth and entitled detailed DOM/L3. The adapter raises a permission error when the granted level is lower than requested. A delayed-data subscription can be connected and still delayed; inspect its timing. Own orders in detailed DOM are matched through the available exchange order identifier rather than guessed from size.

The platform's generic depth/tape panels use the session's data feed, which can be different from its execution broker. Confirm the route before assuming the displayed book belongs to the broker receiving an order. Current session capabilities are the discovery authority. A remote-worker live session does not expose the local depth pipeline.

Orders, protection and accounting#

CQG accounts are netted per contract. AMM attributes virtual session positions from each session's own executions. The account's open position or P&L is not a per-session statement. FCM commissions/exchange fees settle at account level and are not normalized into netted-session realized P&L; account figures should be reviewed separately.

Server-side brackets/OCO require the venue's explicit protection setting. Child orders are placed after the entry fill and need acknowledgment; AMM waits for the configured protection response period and fails closed if required protection is absent. GoFlat can affect all working orders for the filtered account contract when that path is used. In relay mode, some position-level protection readback remains account-wide rather than direct-client per-algorithm detail. Avoid assuming two same-contract strategies have independent broker-native protection simply because their AMM allocations differ.

Recover from problems#

Separate disabled venue, wrong credential type, concurrent session, unavailable production application access, denied market data and unknown contract errors. Save corrected settings before reconnecting. After reconnect, confirm current quote/depth and history catchup. Read actual orders after any uncertain execution response. See Market depth data and Historical data for acquisition and stream recovery.

For the complete expiry, continuous-price, manual roll and automatic-roll workflow, see Futures contracts and rolls.

Application screenshotOpen original ↗