问题描述
只知道显示股票编号,但想要日志中打印出股票名,请问各位大神如何操作?
解决方案
在 JoinQuant(聚宽)平台上,如果你想在日志 (log.info) 中打印出股票的中文名称而不是仅仅显示股票代码,你可以使用聚宽提供的 get_security_info API。
核心 API:get_security_info
get_security_info(code) 函数可以获取单个标的(股票/基金/指数/期货等)的详细信息。它返回一个对象,该对象包含一个 display_name 属性,这个属性就是标的的中文名称。
操作步骤与代码示例
你可以通过以下方式获取并打印股票名称:
# 导入聚宽函数库
import jqdata
def initialize(context):
# 设定要操作的股票代码,例如平安银行
g.security = '000001.XSHE'
# 1. 获取股票信息对象
security_info = get_security_info(g.security)
# 2. 提取中文名称
stock_name = security_info.display_name
# 3. 使用 log.info 打印
log.info("准备交易的股票代码是: %s, 股票名称是: %s" % (g.security, stock_name))
def handle_data(context, data):
# 在盘中交易时也可以这样打印
security = g.security
stock_name = get_security_info(security).display_name
# 假设触发了买入条件
log.info("买入股票: %s (%s)" % (stock_name, security))
order(security, 100)
进阶用法:批量打印股票池名称
如果你有一个股票列表,想要打印出所有股票的名称,可以使用循环:
def initialize(context):
stock_list = ['000001.XSHE', '000002.XSHE', '600000.XSHG']
name_list = []
for code in stock_list:
name = get_security_info(code).display_name
name_list.append(name)
log.info("当前股票池包含: %s" % ", ".join(name_list))
总结
记住公式:get_security_info('股票代码').display_name 即可轻松获取任何标的的中文名称,配合 log.info 就能让你的回测日志更加直观易读!