tbpy订阅行情失败,求教

模拟股票ETF交易,程序报错“ tbpy订阅Tick失败: 159915,510500,510210,,162411 订阅深度行情失败”,不知道是哪方面的原因

订阅行情失败的问题
TBPY 行情快照是否有订阅
tbpy 行情严重延迟推送问题
订阅所有行情
TBQuant实时行情失败
关于行情订阅的问题
tbpy订阅tick数据自动中断
无法订阅行情 ,请老师指导
关于订阅行情
SubscribeBar-订阅bar行情

策略初始化完成,交易标的: ['510210.XSHG']

================================================================================

on_init: 策略初始化开始

================================================================================

成功加载关联规则,共 6 条

订阅Tick失败: 510210.XSHG 订阅深度行情失败


这个后缀难道不对吗?,在哪里查正确的

ETF代码后缀那里可以查到

就卡在这里啦,哎

我加上了后缀,根据代码前缀判断交易所,是这样吗:


- 5xxxx → 上海 (.XSHG)

- 1xxxx → 深圳 (.XSHE)


运行后显示

策略初始化完成,交易标的: ['510210.XSHG']

================================================================================

on_init: 策略初始化开始

================================================================================

成功加载关联规则,共 6 条

订阅Tick失败: 510210.XSHG 订阅深度行情失败

就是订阅行情失败,不知道啥原因

订阅账户已经在tbquant中登录,显示服务中

TB里对标的symbol的命名规则是合约名.交易所后缀

比如螺纹2610合约是rb2610.SHFE

之前是完全没了解过TB吗

# 订阅所有ETF标的的日线数据(用于计算因子特征)

       ret = context.subscribe_bar(symbol=SYMBOL_CODES, frequency='1d', sliding_window=20)

       if ret is not None:

           print(f"订阅Bar失败: {ret}")

           tbpy.exit()

           return

程序代码如下:

# 从ETFpool.csv读取交易标的

ETFpool_path = 'ETFpool.csv'

SYMBOLS = {}

SYMBOL_CODES = []

if os.path.exists(ETFpool_path):

   etf_df = pd.read_csv(ETFpool_path)

   for _, row in etf_df.iterrows():

       code = str(row['代码'])

       name = row['基金名称']

       SYMBOLS[code] = name  # 使用原始代码作为字典键

       SYMBOL_CODES.append(code)

   print(f"从ETFpool.csv读取了 {len(SYMBOLS)} 个交易标的")

   print(f"标的列表: {SYMBOL_CODES}")

else:

   SYMBOLS = {'510210': '上证指数ETF'}

   SYMBOL_CODES = ['510210']

   print("ETFpool.csv不存在,使用默认标的")