我正在将backtrader用作IBpy2的客户端,以访问在Docker上运行的由IBC控制的IBGateway。
我面临的问题是我的系统启动并挂在那里,没有错误或打印的调试信息。
我已经调试到this line的位置,阅读:
self.m_serverVersion = self.m_reader.readInt()
正在等待通过连接接收服务器版本,该版本永远不会到达。
仅当IBGateway通过docker运行时,我才明白这一点,我不明白IBpy可能建立连接但无法交换数据的可能性。
我无法查明问题可能出在哪里,只有在IBC位于docker compose时才会发生,这表明这取决于Docker compose,这是我的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
很乐意根据需要发布任何其他文件或信息。
谢谢
答案 0 :(得分:0)
下午好,也许您应该使用交易员到tws的链接
services:
trader:
links:
- tws
build: ./
image: mytrader
container_name: mytrader