Пока учусь пользоваться IBPY. Кажется, что каждый раз, когда я запускаю свой код в первый раз, все работает нормально, но затем, если я пытаюсь запустить его снова, консоль полностью отключается. Исправление, которое я использую в настоящее время, состоит в том, чтобы просто перезапустить TWS, который работает нормально, но на самом деле не выглядит жизнеспособным долгосрочным решением.
Мои методы запуска и остановки в TestApp, которые реализуют EWrapper и EClient
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