3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在编写量化交易策略时,控制台输出的日志(如买入、卖出信号)如果只显示 000001.SZ 或 600000.SH 等股票代码,往往不够直观。为了提高策略的可读性和调试效率,QMT 提供了 ContextInfo.get_stock_name() 接口,允许开发者直接获取股票代码对应的中文名称。
本文将详细介绍该接口的用法、注意事项,并提供完整的 Python 代码示例。
ContextInfo.get_stock_name(stockcode)stockcode (string):股票代码,格式为 代码.市场(例如 '000001.SZ' 或 '600000.SH')。'',默认获取当前主图品种的名称。string 类型的中文名称(GBK 编码)。以下是一个简单的 QMT 策略,展示了如何在 handlebar 中打印指定股票的中文名称:
#encoding:gbk
def init(ContextInfo):
# 初始化设置
pass
def handlebar(ContextInfo):
# 获取平安银行的中文名称
stock_code = '000001.SZ'
stock_name = ContextInfo.get_stock_name(stock_code)
# 打印输出
print(f"股票代码: {stock_code}, 中文名称: {stock_name}")
在实际交易中,结合中文名称输出日志,可以让交易信号一目了然:
#encoding:gbk
def init(ContextInfo):
# 设定股票池
ContextInfo.set_universe(['600000.SH', '000002.SZ'])
def handlebar(ContextInfo):
# 遍历股票池
for stock in ContextInfo.get_universe():
stock_name = ContextInfo.get_stock_name(stock)
# 模拟某种买入条件触发
if ContextInfo.is_last_bar():
print(f"【交易提示】 策略触发:拟买入 {stock_name} ({stock}) 100股")
编码格式设置:
QMT 平台默认使用 GBK 编码。在编写 Python 策略时,务必在代码第一行加上 #coding:gbk 或 #encoding:gbk,否则在打印中文时可能会出现乱码。
缺省参数:
如果不传入任何参数,即调用 ContextInfo.get_stock_name(),QMT 会默认返回当前运行主图的股票名称。这在单股策略中非常方便。
数据准备:
使用该接口前,请确保客户端已通过“数据管理”功能补充了相应市场的基本行情数据,否则可能无法正确获取名称。