使用tvDatafeed时偶发远程连接丢失及无数据报错求助
tvDatafeed 偶发连接丢失/无数据报错的处理方案
使用tvDatafeed时,脚本合法且多数场景运行正常,但偶尔会出现以下报错,重新运行脚本即可恢复:
ERROR:tvDatafeed.main:与远程主机的连接已丢失。 ERROR:tvDatafeed.main:无数据,请检查交易所和交易对
原因分析
这类偶发问题并非脚本逻辑或参数错误,主要由以下因素导致:
- 本地网络临时波动,导致与TradingView服务器的连接中断
- TradingView服务器临时限流或响应延迟,返回无数据结果
解决方案
- 添加自动重试机制
在脚本中捕获连接异常,自动重试请求,无需手动重启。示例Python代码:
from tvDatafeed import TvDatafeed import time def fetch_tv_data(symbol, exchange, max_retries=3): tv_client = TvDatafeed() for retry in range(max_retries): try: data = tv_client.get_hist(symbol=symbol, exchange=exchange, n_bars=200) if data is not None and not data.empty: return data except Exception as err: print(f"重试 {retry+1}/{max_retries} 失败: {err}") time.sleep(2) # 重试前短暂等待,避免触发限流 print("多次重试失败,请稍后手动执行脚本") return None # 调用示例 market_data = fetch_tv_data("ETHUSDT", "BINANCE")
优化网络环境
切换到稳定性更高的网络,或调整tvDatafeed的请求超时参数(若库支持),降低连接中断概率。避开高峰请求时段
避免在TradingView服务器负载高峰(如全球交易时段峰值)发起大量连续请求,减少触发临时限流的可能。
内容的提问来源于stack exchange,提问作者Sunil
相关产品推荐
相关产品推荐

