3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化平台中调用 tushare 数据时遇到 ConnectionError: HTTPConnectionPool(host='10.5.42.71', port=7171)... Connection refused 错误,通常是因为策略运行环境无法连接到券商部署的 tushare 内网代理服务。
以下是详细的原因分析及解决方案:
10.5.42.71 是一个局域网(内网)IP。为了安全,ptrade 平台通常是物理隔离的,无法直接访问外网。券商会在内网搭建一个 tushare 的数据镜像或代理服务。如果该服务宕机、重启或正在维护,就会提示 Connection refused(连接被拒绝)。tushare 和 xcsc-tushare。如果调用方式不符合券商的定制规范,也可能导致请求路由失败。由于这是明确的内网服务端拒绝连接错误,作为普通用户无法在代码层面修复网络。建议直接截图该报错信息,发送给您的券商客户经理或 ptrade 技术支持群,询问:“内网的 tushare 数据服务(10.5.42.71:7171)是否宕机或需要特殊权限?”
部分券商要求使用特定的包名来调用内网 tushare,请检查您的代码,尝试将 import tushare as ts 替换为券商定制的包(如果券商有相关文档说明):
# 尝试使用 ptrade 环境内置的定制版 tushare
import xcsc_tushare as ts
在 ptrade 这种封闭的实盘/回测环境中,强烈建议优先使用 ptrade 自带的原生 API。原生 API 直接读取柜台或本地极速行情源,速度更快、稳定性极高,且不会出现第三方服务宕机的问题。
以下是常见 tushare 功能的 ptrade 原生 API 替代方案:
场景 A:获取历史 K 线数据
ts.pro_bar()get_history() 或 get_price()# 获取恒生电子过去5天的日线收盘价
df = get_history(5, '1d', 'close', security_list='600570.SS', fq='pre')
场景 B:获取股票基础信息/列表
pro.stock_basic()get_Ashares() 和 get_stock_info()# 获取当前所有A股代码列表
stock_list = get_Ashares()
# 获取单只股票基础信息(如上市日期)
info = get_stock_info('600570.SS', field=['stock_name', 'listed_date'])
场景 C:获取财务数据
pro.balancesheet(), pro.income() 等get_fundamentals()# 获取资产负债表中的总资产
fund_data = get_fundamentals('600570.SS', 'balance_statement', 'total_assets')
遇到该错误请先向券商报障。为了保证量化策略在实盘中的健壮性,建议逐步将策略中依赖 tushare 的数据获取逻辑,迁移到 ptrade 官方提供的 get_history、get_fundamentals 等原生接口上。