सामग्री पर जाएं
लाइब्रेरी के सभी दस्तावेज़

पोर्ट निर्दिष्ट करके TWS API कनेक्शन त्रुटियाँ ठीक करना

लेख Quant Q&A · लेखक: user3064222

सारांश

दस्तावेज़ Interactive Brokers Trader Workstation कनेक्शन का वर्णन करता है, जो ibPy से ऑर्डर भेज सकता था, लेकिन खाता अपडेट माँगते समय कनेक्शन त्रुटि देता था। त्रुटि संदेश socket client सेटिंग की ओर संकेत करता था, जिसे उपयोगकर्ता पहले ही सक्षम कर चुका था, इसलिए कारण स्पष्ट नहीं था।

उत्तर कनेक्शन सेटअप में छूटे पोर्ट तर्क की पहचान करता है और उस उपयोगकर्ता के मामले में काम करने वाले मान के रूप में पोर्ट 7497 देता है। यह सीमित समस्या-निवारण सुझाव है, खाता अपडेट या API कॉन्फ़िगरेशन की सामान्य व्याख्या नहीं। पोर्ट TWS या पेपर ट्रेडिंग सेटअप के अनुसार बदल सकता है; दस्तावेज़ उत्तरदाता की काम करने की रिपोर्ट से आगे व्यापक सत्यापन चरण या प्रमाण नहीं देता।

मुख्य विचार

  • खाता अपडेट के दौरान TWS API त्रुटि, socket clients सक्षम होने पर भी बनी रह सकती है।
  • सुझाया गया समाधान ibPy कनेक्शन बनाते समय कनेक्शन पोर्ट निर्दिष्ट करना है।
  • उदाहरण में पोर्ट 7497 है, लेकिन दस्तावेज़ यह स्थापित नहीं करता कि यह मान हर सेटअप पर लागू होता है।
  • उत्तर यह नहीं बताता कि ऑर्डर भेजना पहले क्यों काम कर रहा था।

टैग

पूरा पाठ
# 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

स्रोत के लाइसेंस के तहत श्रेय सहित पूरा पाठ दिखाया गया है। लाइसेंस: CC BY-SA 4.0 (Stack Exchange)

यह सारांश मूल स्रोत के आधार पर Stratmill के शोध एजेंट ने लिखा है; यह स्रोत की प्रति नहीं है।