我正在使用backtrader作为IBpy2的客户端来访问我在Docker上运行的IBC控制的IBGateway。
我面临的问题是我的系统启动并挂在那里,没有错误或打印调试信息。
我调试了我的方式,直到这一行,阅读:
self.m_serverVersion = self.m_reader.readInt()
正在等待通过连接接收服务器版本,该连接永远不会到达。
只有当 IBGateway 通过 docker 运行时,我才会得到这个,我不明白 IBpy 怎么可能建立连接但不能交换数据。
我无法确定问题可能在哪里,它仅在 IBC 在 docker 撰写时发生的事实表明这取决于 Docker 编写,这是我docker-compose.yml
文件
---更新:---
version: '3.7'
services:
trader:
build: ./
image: mytrader
container_name: mytrader
networks:
- trading
depends_on:
- tws
tws:
build: ./ib-docker
image: ibconnect
container_name: ibconnect
ports:
# - "4001:4001"
- "4003:4003"
- "5901:5901"
volumes:
- ./ib-docker/config.ini:/root/ibc/config.ini
# - ./ib-docker/twsstart.sh:/opt/ibc/twsstart.sh
- ./ib-docker/gatewaystart.sh:/opt/ibc/gatewaystart.sh
environment:
- TZ=UTC
# Variables pulled from /root/IBController/IBControllerGatewayStart.sh
- VNC_PASSWORD=password
- IBC_PATH=/opt/ibc
- LOG_PATH=/root/ibc/logs
env_file:
- tws_credentials.env
networks:
- trading
networks:
trading:
driver: bridge
和网络列表
% docker network ls
NETWORK ID NAME DRIVER SCOPE
4ad25f1cf0f4 bridge bridge local
9ca6f0e3f509 giuliotrader_default bridge local
3afbca83e020 giuliotrader_trading bridge local
73c2590a3a11 host host local
34e58c19f5e3 none null local
很乐意根据需要发布任何其他文件或信息。
谢谢
下午好,也许你应该使用从交易者到tws的链接
services:
trader:
links:
- tws
build: ./
image: mytrader
container_name: mytrader