🚀 AI 一键生成 qmt 策略代码
立即体验

如何在 QMT 平台使用 paint 函数绘制自定义副图技术指标?

qmt | 发布时间: 2026/8/7
以下内容由 EasyQuant 生成。

问题描述

qmt 策略可视化:利用 paint 函数绘制自定义副图指标
如何在 QMT 的副图上使用 paint 函数画出自定义的技术指标曲线?

解决方案

QMT 策略可视化:利用 paint 函数绘制自定义副图指标

在 QMT 量化交易平台上,策略的可视化对于回测分析和实盘监控非常重要。通过 ContextInfo.paint() 函数,用户可以将策略计算出的自定义指标(如均线、动量指标、自定义信号等)实时绘制在副图上。本文将详细介绍 paint 函数的用法,并给出一个完整的副图指标绘制示例。


1. ContextInfo.paint() 函数详解

ContextInfo.paint() 是 QMT 中用于在图表上画线或柱状图的核心函数。

函数原型

ContextInfo.paint(name, value, index, line_style, color = 'white', limit = '')

参数说明

  • name (string): 需显示的指标名称(如 'Close', 'MyIndicator')。
  • value (number): 当前 Bar 对应需要显示的数值。
  • index (number): 显示的索引位置,填 -1 表示按主图 K 线索引(当前 Bar 索引)自动对齐显示。
  • line_style (number): 线型。可选值:
    • 0: 曲线
    • 42: 柱状线
  • color (string): 颜色(不填默认为白色)。目前支持的颜色有:blue(蓝)、brown(棕)、cyan(蓝绿)、green(绿)、magenta(品红)、red(红)、white(白)、yellow(黄)。
  • limit (string): 画线控制。可选值:
    • 'noaxis': 不影响坐标画线
    • 'nodraw': 不画线

2. 完整策略源码示例:绘制收盘价与简单均线

以下是一个简单的 Python 策略示例。该策略获取当前 K 线的收盘价,并计算 5 日简单均线(MA5),然后使用 paint 函数将它们以不同颜色绘制在副图上。

#encoding:gbk
import numpy as np

def init(ContextInfo):
    # 设定基础股票池
    ContextInfo.set_universe([ContextInfo.stockcode])
    print("初始化完成,开始运行策略...")

def handlebar(ContextInfo):
    # 获取当前 K 线的索引位置
    bar_index = ContextInfo.barpos
    
    # 1. 获取当前 Bar 的收盘价
    close_data = ContextInfo.get_market_data(['close'], stock_code=[ContextInfo.stockcode], count=5)
    if close_data.empty:
        return
        
    current_close = close_data['close'].iloc[-1]
    
    # 2. 计算 5 日均线 (MA5)
    if len(close_data) >= 5:
        ma5 = np.mean(close_data['close'].values)
    else:
        ma5 = current_close # 数据不足时用当前收盘价代替

    # 3. 使用 paint 函数绘制指标
    # 绘制收盘价曲线(白色,曲线)
    ContextInfo.paint('ClosePrice', current_close, -1, 0, 'white', 'noaxis')
    
    # 绘制 MA5 均线(黄色,曲线)
    ContextInfo.paint('MA5', ma5, -1, 0, 'yellow', 'noaxis')

3. 如何在 QMT 界面中设置为“副图”显示

编写完上述代码后,为了让指标正确显示在副图上,您需要在 QMT 的【策略编辑器】中进行如下设置:

  1. 打开【策略编辑器】,找到右侧的 基本信息 面板。
  2. 找到 位置 参数,将其从默认的“主图”或“主图叠加”修改为 “副图”
  3. 设置完成后,点击 编译运行 策略。
  4. 此时,主图下方会自动弹出一个副图窗口,并以曲线形式动态展示您自定义的 ClosePrice(白色)和 MA5(黄色)指标。