3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT 量化交易平台中,为了直观地观察策略的买卖信号或特定指标状态,我们经常需要在 K 线图(主图或副图)上绘制自定义的文字内容。QMT 提供了丰富的绘图 API,其中 ContextInfo.draw_text() 就是专门用于在图形上显示文字的函数。
ContextInfo.draw_text(condition, position, text)
True 或非 0 值时,才会在当前 Bar 上绘制文字。如果想每根 K 线都绘制,可以直接传入 1 或 True。high、最低价 low 或收盘价 close。以下是一个完整的 QMT 策略示例。该策略在 handlebar 中获取当前 K 线的开盘价和收盘价,当**收盘价大于开盘价(阳线)时,在 K 线最高价上方绘制“阳线”字样;当收盘价小于开盘价(阴线)**时,在 K 线最低价下方绘制“阴线”字样。
#encoding:gbk
def init(ContextInfo):
# 初始化设置默认股票池
ContextInfo.set_universe(['600000.SH'])
def handlebar(ContextInfo):
# 获取当前主图的开盘价和收盘价
open_price = ContextInfo.get_market_data(['open'])
close_price = ContextInfo.get_market_data(['close'])
high_price = ContextInfo.get_market_data(['high'])
low_price = ContextInfo.get_market_data(['low'])
# 确保获取到了有效的数据
if open_price is None or close_price is None:
return
# 条件1:如果是阳线,在最高价位置绘制“阳线”
is_yang = close_price > open_price
ContextInfo.draw_text(is_yang, high_price, '阳线')
# 条件2:如果是阴线,在最低价位置绘制“阴线”
is_yin = close_price < open_price
ContextInfo.draw_text(is_yin, low_price, '阴线')
position 设置为 high_price 或 low_price,文字可能会与 K 线的实体或影线重合。建议在传入高度时进行微调,例如:
high_price * 1.01(在最高价上方 1% 处显示)low_price * 0.99(在最低价下方 1% 处显示)#coding:gbk 或 #encoding:gbk,否则代码中的中文文字可能会出现乱码。