Zum Inhalt springen
Alle Bibliotheksdokumente

TWS API-Verbindungsfehler durch Portangabe beheben

Artikel Quant Q&A · Autor: user3064222

Zusammenfassung

Das Dokument beschreibt eine Verbindung zur Trader Workstation von Interactive Brokers, die Orders über ibPy übermitteln konnte, beim Anfordern von Kontoinformationen jedoch einen Verbindungsfehler zurückgab. Die Fehlermeldung verwies auf die Socket-Client-Einstellung, die der Nutzer bereits aktiviert hatte, sodass die Ursache unklar blieb.

Die Antwort erkennt das fehlende Portargument beim Verbindungsaufbau als Ursache und nennt Port 7497 als funktionierenden Wert in diesem Fall. Dies ist ein gezielter Hinweis zur Fehlerbehebung, keine allgemeine Erklärung zu Kontoaktualisierungen oder zur API-Konfiguration. Der Port kann von der TWS oder der Paper-Trading-Konfiguration abhängen. Das Dokument bietet keine umfassenderen Prüfschritte oder Belege über den Bericht der antwortenden Person hinaus, dass die Lösung funktionierte.

Kernaussagen

  • Ein TWS API-Fehler bei Kontoaktualisierungen kann auch dann bestehen bleiben, wenn Socket-Clients aktiviert sind.
  • Als Lösung wird vorgeschlagen, beim Erstellen der ibPy-Verbindung den Port anzugeben.
  • Das Beispiel verwendet Port 7497; das Dokument belegt jedoch nicht, dass dieser Wert für jede Konfiguration gilt.
  • Die Antwort erklärt nicht, warum die Orderübermittlung zuvor funktioniert hatte.

Schlagwörter

Volltext
# Trader Workstation on Ubuntu cannot be connected to via the API


# Trader Workstation on Ubuntu cannot be connected to via the API












I am using ibPy to connect to TWS on a fairly fresh ubuntu machine. I have been successful in logging into the paper trading account and submitting buy and sell orders programatically via the ibPy interface.

However, I am now trying to do more than simply submit orders. Namely, I am trying to obtain position updated from TWS. I am interested in successfully running the following code:

```
from time import sleep
from ib.opt import ibConnection, message

def error_handler(msg):
    print(msg)

def acct_update(msg):
    print(msg)

con = ibConnection(clientId=100)
con.register(acct_update,
         message.updateAccountValue,
         message.updateAccountTime,
         message.updatePortfolio)
con.register(error_handler, "Error")
con.connect()
con.reqAccountUpdates(True, 'DU000000')

sleep(1)
con.disconnect()
```

When executed however I obtain the following error:

```
<error id=-1, errorCode=502, errorMsg=Couldn't connect to TWS.  
Confirm that "Enable ActiveX and Socket Clients" is enabled on 
the TWS "Configure->API" menu.>
```

I have ensured that indeed ActiveX and socket clients are enabled in the TWS preferences, so that is not the issue. It surprises me that I would be able to submit orders successfully but not obtain account updates from TWS. Does anyone know why this could be happening?

## Answer by Clebson Derivan (score 0)

https://quant.stackexchange.com/a/27473

you forgot the parameter port:

> con = ibConnection(port=7497, clientId=100)

works for me

Vollständig mit Quellenangabe unter der Lizenz der Quelle angezeigt. Lizenz: CC BY-SA 4.0 (Stack Exchange)

Diese Zusammenfassung wurde vom Research-Agenten von Stratmill anhand des Originals verfasst; sie ist keine Kopie der Quelle.