Der normale Kontoauszug bei Interactive Brokers ist zum Lesen gemacht. Sobald eine Software oder eine Tabellenkalkulation ihn verarbeiten soll, fängt das Gefummel an. Die Flex Query löst das: Du legst einmal fest, welche Felder in welcher Reihenfolge herauskommen, und bekommst ab dann immer dieselbe Datei. Der Aufbau dauert zehn Minuten.
Kurz gefasst: Eine Flex Query ist eine gespeicherte Report-Vorlage bei Interactive Brokers, in der du Felder, Reihenfolge, Format und Zeitraum selbst festlegst. Sie liefert bei jedem Lauf dasselbe Schema, liegt serverseitig unter einer Query-ID und lässt sich über den Flex Web Service ohne Login abrufen. Einrichtung etwa zehn Minuten, danach läuft sie.
Stand der Klickwege. Die Menüpfade beziehen sich auf das Client Portal von Interactive Brokers, Stand September 2026. IB baut die Oberfläche regelmäßig um. Wenn ein Punkt nicht mehr da ist, wo er hier steht, findest du ihn meist eine Ebene daneben unter Reporting.
Warum nicht einfach der Kontoauszug
Der Activity Statement als CSV ist eine Datei, in der mehrere Abschnitte untereinander stehen, jeder mit eigenen Kopfzeilen und eigener Spaltenanordnung. Für einen Menschen ist das übersichtlich. Für einen Parser ist es der Ärger, dass sich die Struktur mitten in der Datei ändert. Tabellenkalkulationen stolpern darüber genauso.
Eine Flex Query dreht das um. Du definierst pro Abschnitt selbst, welche Felder erscheinen, und bekommst dafür ein festes Schema. Dieselbe Query nächsten Monat liefert dieselben Spalten in derselben Reihenfolge. Und weil die Query serverseitig unter einer ID gespeichert liegt, kannst du sie später ohne Login abrufen.
Für das Archiv und den Steuerberater bleibt der Activity Statement die richtige Wahl, weil dort die lesbaren Zusammenfassungen drin sind. Zum Füttern von Software nimmst du die Flex Query.
Schritt 1 · Flex Queries öffnen
Melde dich im Client Portal an und geh auf Performance & Reports, dann Flex Queries. Alternativ über das Menü oben links: Reporting, dann Flex Queries. Wenn du mehrere Konten verwaltest, kommt vorher die Kontoauswahl.
Über CapTrader eröffnete Konten laufen im selben Client Portal, der Weg ist also identisch.
Auf der Seite stehen zwei Bereiche: Activity Flex Query und Trade Confirmation Flex Query. Die Activity-Variante zeigt, was im Konto passiert ist, also Trades, Cash-Bewegungen, offene Positionen, Dividenden und Gebühren. Die Trade-Confirmation-Variante gibt die einzelnen Ausführungsbestätigungen aus. Für Auswertung und Buchhaltung nimmst du Activity.
Schritt 2 · Query anlegen und benennen
Klick auf das Pluszeichen rechts oben im Bereich Activity Flex Query und gib der Query einen Namen. Nimm einen, den du in zwei Jahren noch verstehst, etwa Jahresabschluss GmbH oder Trade-Journal monatlich. Du wirst mehr als eine anlegen, sobald du merkst, wie praktisch das ist, und dann helfen dir Query 1 und Query 2 kein Stück weiter.
Schritt 3 · Sections und Felder auswählen
Unter Sections klickst du die Abschnitte an, die im Report auftauchen sollen. Bei jedem Klick öffnet sich ein Fenster mit allen verfügbaren Feldern dieses Abschnitts, und du hakst dort einzeln an, was du brauchst. Die Reihenfolge der Spalten ziehst du am Griff rechts zurecht. Dann speichern.
Für eine Auswertung von Options- und Aktiengeschäften reichen in der Regel diese Abschnitte:
Account Informationmit Account ID, Alias und Währung, damit du bei mehreren Konten weißt, welche Datei wohin gehörtTradesmit Datum, Symbol, Asset Category, Quantity, Proceeds, Commission, Basis, Realized P/L und der Kennzeichnung für AssignmentsCash Transactionsfür Dividenden, Quellensteuer, Zinsen und GebührenOpen Positions, wenn du Stichtagsbestände brauchstCorporate Actions, sobald Splits oder Umtausche in deinem Depot vorkommen
Alles anzuklicken ist verlockend und meistens ein Fehler. Eine Query mit achtzig Spalten ist unübersichtlich, und du merkst erst beim Auswerten, dass die eine Spalte fehlt, die du wirklich gebraucht hättest. Fang schmal an und ergänze gezielt.
Schritt 4 · Format und Zeitraum festlegen
Unter Delivery Configuration stellst du das Ausgabeformat ein. Zur Auswahl stehen XML, CSV, Text mit Pipe-Trennung und Text mit Tab-Trennung. CSV ist die richtige Wahl, wenn die Datei in einer Tabelle oder einem Auswertungstool landet. XML nimmst du, wenn ein Skript sie parst, weil verschachtelte Strukturen dort sauberer ankommen.
Beim Zeitraum hast du unter anderem Last Business Day, Last Business Week, Last Month, Last Quarter, Last 30 Calendar Days, Last 365 Calendar Days, Last N Calendar Days sowie Month to Date, Quarter to Date und Year to Date. Für die Jahresauswertung ist Year to Date der bequemste Weg, weil du die Query dann das ganze Jahr über unverändert laufen lassen kannst.
Nicht vergessen: In der General Configuration steht die Option Include Currency Rates. Steht sie auf Yes, liefert IB die Wechselkurse gleich mit. Wer in EUR bilanziert und in USD handelt, spart sich damit später das Nachschlagen von Tageskursen.
In derselben Maske stehen Datums- und Zeitformat sowie das Feldtrennzeichen. Die lässt man gern unbeachtet, und genau daran scheitert später der Import. Leg dich einmal fest, notiere die Einstellung, und benutz sie in jeder weiteren Query gleich. Ein Datum, das mal als Tag-Monat-Jahr und mal als Jahr-Monat-Tag herauskommt, kostet dich beim Auswerten mehr Zeit als die ganze Einrichtung.
Danach auf Continue, die Übersicht prüfen, dann Create.
Schritt 5 · Query-ID notieren
Zurück auf der Übersicht klickst du auf das Info-Symbol links neben deiner Query. Im Pop-over steht oben die Query ID, eine sechsstellige Zahl. Die brauchst du für jeden automatischen Abruf. Schreib sie zum Namen der Query in deine Notizen.
Ab hier kannst du den Report jederzeit manuell über den Run-Pfeil erzeugen und herunterladen. Für die meisten reicht das schon. Wer monatlich oder wöchentlich auswertet, geht noch einen Schritt weiter.
Schritt 6 · Flex Web Service aktivieren
Der Flex Web Service holt genau diese gespeicherte Query per HTTP-Aufruf ab, ohne dass du dich einloggst. Du findest ihn unter Settings, dort im Bereich zu den Kontoberichten, Eintrag Flex Web Service. Setz den Haken bei Flex Web Service Status und speichere.
Dann generierst du einen Token. Zwei Einstellungen dabei sind wichtig. Unter Should Expire After legst du die Laufzeit fest, voreingestellt sind sechs Stunden, was für eine Automatisierung offensichtlich zu kurz ist. Im Feld Valid For IP Address kannst du den Token auf eine feste IP beschränken. Wenn dein Skript auf einem Server mit fester Adresse läuft, nutz das.
Der Token ist ein Schlüssel. Wer ihn hat, kann deine kompletten Kontodaten abrufen, ohne Passwort und ohne zweiten Faktor. Er gehört in einen Passwortmanager oder eine Umgebungsvariable, nicht in ein Skript, das in einem öffentlichen Repository landet.
Schritt 7 · Report per Skript abholen
Der Abruf läuft in zwei Schritten. Zuerst schickst du Token und Query-ID an SendRequest. IB antwortet mit einem Reference Code und erzeugt im Hintergrund den Report. Nach ein paar Sekunden holst du ihn mit Token und Reference Code über GetStatement ab. Bei großen Zeiträumen dauert die Erzeugung länger, dann brauchst du eine Warteschleife oder einen zweiten Versuch.
Zwei Details, an denen Skripte regelmäßig scheitern: Der Parameter v=3 gehört an beide Aufrufe, sonst antwortet IB in der alten Version 2. Und programmatische Zugriffe brauchen einen gesetzten User-Agent-Header, sonst kommt gar nichts zurück.
Die genauen Endpunkt-URLs hat IB in den letzten Jahren mehrfach umgezogen, weshalb hier bewusst keine steht. Nimm die aus der aktuellen Flex-Web-Service-Dokumentation von IB und prüfe sie, wenn dein Skript plötzlich leere Antworten liefert.
Wenn der Abruf nichts zurückgibt
Der Flex Web Service antwortet im Fehlerfall mit einem XML-Block, in dem Status auf Fail steht, dazu ein Fehlercode. Drei Fälle decken die meisten Abbrüche ab.
Kommt 1012 mit dem Hinweis auf einen abgelaufenen Token, hast du die Laufzeit zu knapp gewählt oder der Token ist schlicht durch. Im Client Portal einen neuen erzeugen und die Laufzeit hochsetzen.
Meldet der Dienst, der Report sei nicht verfügbar, war meist zu wenig Zeit zwischen den beiden Aufrufen. Bau eine Pause von einigen Sekunden ein und wiederhole GetStatement, statt sofort abzubrechen.
Bekommst du HTML statt XML zurück, oft eine Fehlerseite, dann stimmt die Endpunkt-URL nicht mehr. IB hat den Dienst schon umgezogen, und ein Skript, das monatelang lief, kann daran plötzlich scheitern. Vergleich die URL mit der aktuellen Dokumentation.
Die Grenzen, bevor du dich darauf verlässt
Gespeicherte Flex Queries reichen über die vier vorangegangenen Kalenderjahre plus das laufende Jahr. Was davor liegt, holst du dort nicht mehr. Wer eine lückenlose Historie will, exportiert einmal jährlich und legt die Dateien weg.
Die Daten einer Activity Flex Query aktualisiert IB einmal täglich nach Geschäftsschluss. Ein Abruf alle zwei Stunden bringt also nichts außer Last. Einmal am Tag reicht.
Und die Queries hängen am Benutzernamen, mit dem du sie angelegt hast. Meldest du dich mit einem zweiten Login an, sind sie nicht da. Bei Konten mit mehreren Nutzern klärt man am besten vorher, wem die Reports gehören.
Was du danach damit machst
Der Export ist der halbe Weg. Eine CSV mit dreitausend Zeilen beantwortet noch keine einzige Frage, und in Excel baust du dir dieselben Pivot-Tabellen jedes Quartal neu zusammen.
Genau dafür ist Tradility gebaut. Du lädst den Kontoauszug ins Table-Modul, und die Auswertung läuft über Filter und Gruppierungen statt über Formeln: Summen für Realized P/L und Basis, Gruppierung nach Asset Category, damit Optionen, Aktien und Forex sauber getrennt sind, ein Filter auf assignte Zeilen, um die Stillhalterprämien herauszuziehen. Die Währungsumrechnung nach EUR läuft über deine TWS-Verbindung mit, was beim Jahresabschluss den Unterschied zwischen Broker-Zahlen und Buchhaltung ausmacht. Wichtig dabei: Stell die Sprache im Portal auf English, das Modul erwartet die englischen Spaltenbezeichnungen.
Wie das für Options- und Aktiengewinne konkret aussieht, steht Schritt für Schritt in der Anleitung zu den Optionsgewinnen in der GmbH.
Wenn du nicht bei jedem Export von vorn anfangen willst, verbindest du die TWS direkt. Dann synchronisieren sich Trades, Positionen und P&L laufend, als Tabelle, im Chart und im KI-Chat.
Häufige Fragen
Was ist der Unterschied zwischen Flex Query und Kontoauszug?
Der Kontoauszug ist ein Dokument zum Lesen und Archivieren, mit mehreren Abschnitten in einer Datei. Die Flex Query ist eine Vorlage, in der du Felder und Reihenfolge selbst festlegst und die immer dasselbe Schema liefert. Für Software nimmst du die Flex Query.
Activity Flex oder Trade Confirmation Flex?
Activity Flex für Auswertung und Buchhaltung, weil dort Trades, Cash-Bewegungen, Positionen und Gebühren zusammenkommen. Trade Confirmation Flex gibt die einzelnen Ausführungsbestätigungen aus und ist für Abgleiche auf Ausführungsebene gedacht.
CSV oder XML?
CSV, wenn die Datei in einer Tabelle oder einem Auswertungstool landet. XML, wenn ein eigenes Skript sie einliest, weil verschachtelte Abschnitte dort sauberer abgebildet sind.
Wie weit zurück reichen Flex Queries?
Über die vier vorangegangenen Kalenderjahre und das laufende Jahr. Ältere Zeiträume musst du aus eigenen Archivdateien nehmen.
Funktioniert das auch bei CapTrader?
Ja. Über CapTrader eröffnete Konten werden im Client Portal von Interactive Brokers verwaltet, die Menüpfade sind dieselben.
Wie lange ist der Token gültig?
Das legst du beim Erzeugen über die Option Should Expire After fest. Voreingestellt sind sechs Stunden. Läuft der Token ab, meldet der Abruf einen Fehler und du erzeugst im Client Portal einen neuen.
Der Export ist der halbe Weg
Kontoauszug laden, filtern, gruppieren, Summen ziehen. Die Free-Version läuft mit deiner lokalen TWS und kostet nichts.
Kostenlos startenMehr dazu auf tradility.net