1

现在只是学习使用 IBPY。似乎每次我第一次运行我的代码时一切正常,但是如果我再次尝试运行它,控制台就会完全静默。我目前使用的修复只是重新启动 TWS,它工作正常,但看起来并不是一个可行的长期解决方案。

我在实现 EWrapper 和 EClient 的 TestApp 中的启动和停止方法

def start(self):
    print("start")

def stop(self):
    print("disconnect")
    self.done = True
    self.disconnect()

我的主要方法:

def main():
    app = TestApp()
    app.nextOrderId = 0
    app.connect("127.0.0.1", 7497, 1)

    for stock in app.watchlist:
        contract = USStock(stock[0],stock[1])
        app.reqRealTimeBars(stock[2],contract,5,"TRADES", True, [])


    Timer(10, app.stop).start()
    app.run()

第一次运行代码时输出。

start
Error:  -1   2104   Market data farm connection is OK:usfarm.nj
Error:  -1   2104   Market data farm connection is OK:cashfarm
Error:  -1   2104   Market data farm connection is OK:usfarm
Error:  -1   2106   HMDS data farm connection is OK:ushmds
Error:  -1   2158   Sec-def data farm connection is OK:secdefnj
RealTimeBar. TickerId: 1000 Time: 2020-01-23 11:47:10 open: 571.21 high: 571.21 low:: 571.21 close: 571.21 volume: 1 wap: 571.21 count: 1
RealTimeBar. TickerId: 1001 Time: 2020-01-23 11:47:10 open: 2.0677 high: 2.0677 low:: 2.0677 close: 2.0677 volume: 0 wap: 2.0677 count: 0
RealTimeBar. TickerId: 1002 Time: 2020-01-23 11:47:10 open: 4.55 high: 4.56 low:: 4.55 close: 4.55 volume: 20 wap: 4.55 count: 2
RealTimeBar. TickerId: 1003 Time: 2020-01-23 11:47:10 open: 3.465 high: 3.465 low:: 3.465 close: 3.465 volume: 0 wap: 3.465 count: 0
RealTimeBar. TickerId: 1000 Time: 2020-01-23 11:47:15 open: 571.17 high: 571.17 low:: 571.17 close: 571.17 volume: 1 wap: 571.17 count: 1
RealTimeBar. TickerId: 1003 Time: 2020-01-23 11:47:15 open: 3.465 high: 3.465 low:: 3.465 close: 3.465 volume: 0 wap: 3.465 count: 0
RealTimeBar. TickerId: 1001 Time: 2020-01-23 11:47:15 open: 2.0677 high: 2.0677 low:: 2.0677 close: 2.0677 volume: 0 wap: 2.0677 count: 0
RealTimeBar. TickerId: 1002 Time: 2020-01-23 11:47:15 open: 4.55 high: 4.55 low:: 4.55 close: 4.55 volume: 0 wap: 4.55 count: 0
RealTimeBar. TickerId: 1000 Time: 2020-01-23 11:47:20 open: 571.14 high: 571.39 low:: 571.14 close: 571.39 volume: 25 wap: 571.26 count: 12
RealTimeBar. TickerId: 1002 Time: 2020-01-23 11:47:20 open: 4.56 high: 4.56 low:: 4.55 close: 4.56 volume: 10 wap: 4.56 count: 3
unhandled exception in EReader thread
Traceback (most recent call last):
  File "C:\Users\nlevi\Anaconda3\lib\site-packages\ibapi\reader.py", line 34, in run
    data = self.conn.recvMsg()
  File "C:\Users\nlevi\Anaconda3\lib\site-packages\ibapi\connection.py", line 99, in recvMsg
    buf = self._recvAllMsg()
  File "C:\Users\nlevi\Anaconda3\lib\site-packages\ibapi\connection.py", line 119, in _recvAllMsg
    buf = self.socket.recv(4096)
OSError: [WinError 10038] An operation was attempted on something that is not a socket
RealTimeBar. TickerId: 1003 Time: 2020-01-23 11:47:20 open: 3.465 high: 3.465 low:: 3.465 close: 3.465 volume: 0 wap: 3.465 count: 0
RealTimeBar. TickerId: 1001 Time: 2020-01-23 11:47:20 open: 2.0544 high: 2.06 low:: 2.0544 close: 2.06 volume: 6 wap: 2.0591 count: 2
disconnect
4

0 回答 0