§ · Topic schema

Six topic families. One Excel formula.

No add-in object on the worksheet, no VBA glue, no Python runtime. Every value StreamXLS streams is a native =RTD() formula against ProgID Tws.Rtd, addressed by a uniform topic-string tuple. The same grammar covers market data, account values, positions, order monitoring, and order submission — field names are case-insensitive and most accept aliases.

Status
status, <field>
=RTD("Tws.Rtd", , "status", "IsConnected")
→ cell TRUE
Market data
<contract>, <field>
=RTD("Tws.Rtd", , "AAPL", "LAST")
→ cell 187.42
Accounts
account, <acct>, <field>
=RTD("Tws.Rtd", , "account", "U1234567", "NetLiquidation")
→ cell 1,284,902.18
Positions
position, <acct>, <contract>, <field>
=RTD("Tws.Rtd", , "position", "U1234567", "AAPL", "UnrealizedPnL")
→ cell 10,824.00
Order monitoring
orders, <accts>, <listfield>
=RTD("Tws.Rtd", , "orders", "*", "OpenListCsv")
→ cell 43822;43823
Order submission
SendOrder, <key=value>, …
=RTD("Tws.Rtd", , "SendOrder", "sym=AAPL", "side=BUY", "shares=100", "type=LMT", "limit=150.05", "exch=SMART")
→ cell Sent

The contract specification accepts five interchangeable forms — full key=value, compact slash notation (SYM@EXCH/SEC/Expiry/Right/Strike/Currency), conid-only, FX shorthand, and partial-with-defaults (stocks default to STK/SMART/USD). Beyond the families above, the same grammar reaches positions-list topics (positions, <acct>, SymbolsCsv), single orders by permId (order, <permId>, Status), and option-chain enumeration (OptionExpirationsCSV, OptionStrikesCSV).

Order submission stages into the TWS ticket with the engine default transmit=false — the trader releases the order. Minimize the clicks; never zero.