§ Guide

IBKR in Excel: market data is easy, account state is the cliff

Interactive Brokers gives you a free way to stream quotes into Excel. The free path that reaches your account values, positions and live orders is not that one — it is DDE or ActiveX, on older plumbing, and that trade is the whole problem.

If you run Interactive Brokers and keep a spreadsheet open next to Trader Workstation, you have almost certainly hit this wall. Getting a live quote into a cell is a five-minute job. Getting your net liquidation value, your positions with running P&L, or the state of your open orders into the same sheet — live, without freezing Excel — is a different piece of engineering entirely. This page explains exactly where the free tools stop, why, and what desks do about it.

What IBKR’s free Excel tools actually give you

IBKR ships three ways to talk to Excel with the TWS API download — an RTD server, a DDE bridge, and an ActiveX control — each with a sample spreadsheet. The one most people reach for first is RTD, because it is the modern, non-blocking option. And IBKR’s own RTD server is scoped to one thing: market data.

IBKR’s TWS API documentation states it plainly: “At the current stage, only top-level market data is supported via TWS RTD Server API. No trading capability or other data types are supported.” The server registers under ProgID Tws.TwsRtdServerCtrl and streams live or delayed quotes — nothing about your account.

That scoping is deliberate, and IBKR is candid about it. The sample spreadsheets shipped with all three Excel technologies, IBKR writes, “are intended as simple demonstrations of API functionality for third party programmers. They do not have robust error handling functionality and are not intended to be used as production level trading tools.” They are a starting point, not a finished product.

Three technologies, three levels of coverage

The account/positions/orders gap is specific to RTD. IBKR’s own comparison of the three Excel technologies shows where each one lands on full API coverage:

Excel technologyFull API functionality
(account, positions, orders)
Notes
RTD serverNoTop-level market data only, per IBKR’s docs.
DDEYes (as of API v975)The old bridge — full breadth, but the setup and behavior are heavier. Compared here.
ActiveXYesFull breadth, but “more difficult to program… and not as robust,” in IBKR’s words.

So the free tool that behaves best inside modern Excel — RTD — is also the one that stops at market data. The two that carry account and order data — DDE and ActiveX — are the two IBKR flags as harder or older. That trade-off is the gap.

Why the gap bites

A working trading dashboard is not a quote board. It shows quotes and current positions, target positions, account values, and open orders — all at once, all current to the second, with the order ticket a click away from the data that drives it. Take away the account and order half and you have a watchlist, not a dashboard.

The reason the free RTD server stops where it does is visible in its source: the callbacks for everything past market data are present but empty. The EWrapper methods for account values, portfolio positions, and P&L are there as stubs that do nothing. (Our engineering notes walk through this in Beyond Market Data.) Filling those stubs in — correctly, under load, without freezing Excel — is the cliff that free server leaves you standing at the top of.

How desks fill it

None of the free paths is push-button once you want the account and order half, so people reach for one of four things:

  • IBKR’s DDE bridge. It carries the full breadth — market data, accounts, positions, orders. But DDE is a Windows protocol from 1987, and it comes with the constraints of one: IBKR notes that the legacy DDE route runs against a “32 bit version of TWS or IB Gateway” while “By default 64 bit TWS is installed on modern computers”. In our own decade on that path it also competed with Excel’s interface and with other DDE-using software on the machine — the story is in Beyond Market Data. It works, with isolation and care.
  • IBKR’s ActiveX control. Also full-breadth, but IBKR itself calls it harder to program and less robust than the socket-based APIs. You are writing and maintaining COM-bound VBA.
  • Roll-your-own over the socket API. Drop Excel’s built-in bridges and interface with the TWS API directly from Python (ib_async and friends) or C#, then push values into the sheet. Full control, but also the full development and maintenance burden of a middleware layer.
  • Manual export. IBKR’s Activity Statements and Flex Queries download your positions and activity as files on a schedule. Fine for reconciliation; it is a periodic snapshot, not a live feed.

Every one of these is a real answer. They differ in how much you build and maintain, and in whether the result stays correct when the feed speeds up and Excel gets busy — which is exactly when a trading screen has to be trusted.

One commercial answer

StreamXLS is an RTD server that fills the gap IBKR’s free RTD server leaves: account values, positions, and live order state all stream through the same native =RTD("Tws.Rtd", …) grammar as quotes.

See how it works or read the docs.