问题描述
解决方案
在 JoinQuant 聚宽平台中,可以使用 normalize_code() 函数将各种形式的股票代码(如 '000001', '000001.sz', '600000' 等)转换为聚宽标准的后缀格式(如 '000001.XSHE', '600000.XSHG')。
该函数会自动识别股票所属的交易所(上海或深圳)并添加正确的后缀。
使用方法
1. 转换单个代码
传入字符串或数字,返回标准格式的字符串。
from jqdata import *
# 输入纯数字字符串
code1 = normalize_code('000001')
print(code1)
# 输出: '000001.XSHE'
# 输入带不规范后缀的字符串
code2 = normalize_code('600000.sh')
print(code2)
# 输出: '600000.XSHG'
# 输入数字(不推荐,建议用字符串以防前导0丢失)
code3 = normalize_code(600519)
print(code3)
# 输出: '600519.XSHG'
2. 转换多个代码
传入列表(list)或元组(tuple),返回包含标准格式代码的列表。
from jqdata import *
# 输入包含多种格式的列表
code_list = ['000001', 'SZ000002', '600000.sh', '000001.XSHE']
normalized_list = normalize_code(code_list)
print(normalized_list)
# 输出: ['000001.XSHE', '000002.XSHE', '600000.XSHG', '000001.XSHE']
注意事项
- 适用范围:主要适用于 A 股股票代码、期货代码以及场内基金代码。
- 前导零:如果传入的是整数(int)类型(如
1),函数会自动补全前导零(变成'000001.XSHE'),但为了避免歧义,建议始终使用字符串格式。 - 无法识别:如果传入的代码无法识别(例如不存在的代码或格式严重错误),函数可能会返回原始输入或报错,具体取决于输入的有效性。
Q&A
Q: 聚宽的标准代码后缀有哪些?
A: 主要后缀包括:
- 上海证券交易所:
.XSHG(如 600519.XSHG) - 深圳证券交易所:
.XSHE(如 000001.XSHE) - 中金所:
.CCFX - 大商所:
.XDCE - 上期所:
.XSGE - 郑商所:
.XZCE - 上海国际能源交易中心:
.XINE - 广州期货交易所:
.GFEX
Q: normalize_code 能判断股票是否退市吗?
A: 不能。normalize_code 仅进行格式转换,不校验股票的上市状态。如果需要查询股票是否上市或退市,请使用 get_security_info(code) 或 get_all_securities()。
Q: 如果传入的代码已经是标准格式,会有影响吗?
A: 没有影响。如果传入 '000001.XSHE',函数会直接返回 '000001.XSHE',不会重复添加后缀。