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

QMT量化平台中如何查看和使用talib.MACD()函数?

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

问题描述

如:talib.MACD( )函数语法的使用方法,在哪里可以看到说明

如:talib.MACD( )函数语法的使用方法,在哪里可以看到使用说明

或者 talib.这个库的使用说明

解决方案

在 QMT(迅投)量化交易平台中,TA_Lib(简称 talib)是平台默认内置的第三方技术分析库(当前内置版本一般为 0.4.17)。它包含了大量常用的技术指标(如 MACD, RSI, KDJ 等)和 K 线形态识别函数。

关于 talib.MACD() 函数以及整个 talib 库的使用说明,您可以通过以下几种途径查看和学习:

1. 官方文档与网络资源

TA-Lib 是一个非常标准的开源 Python 库,它的语法在所有 Python 环境中都是通用的。您可以直接访问其官方文档或中文翻译网站:

  • TA-Lib 英文官方文档: https://mrjbq7.github.io/ta-lib/
  • 国内量化社区: 在各大技术博客(如 CSDN、知乎)或量化社区搜索“Python talib 使用大全”,可以找到非常详尽的中文参数说明。

2. 在 QMT 编辑器中使用 Python 内置函数查看

您可以在 QMT 的策略编辑器中,利用 Python 的 help() 函数或打印 __doc__ 属性来直接在日志输出窗口查看函数说明。

#coding:gbk
import talib

def init(ContextInfo):
    # 打印 MACD 函数的官方英文使用说明
    print(talib.MACD.__doc__)
    
def handlebar(ContextInfo):
    pass

3. talib.MACD() 的标准语法与 QMT 结合示例

talib.MACD() 的标准语法如下:

macd, macdsignal, macdhist = talib.MACD(close_array, fastperiod=12, slowperiod=26, signalperiod=9)
  • close_array: 收盘价序列(必须是 numpy.ndarray 格式,且数据类型通常要求为 float64)。
  • fastperiod: 快线周期,默认 12。
  • slowperiod: 慢线周期,默认 26。
  • signalperiod: 信号线周期,默认 9。
  • 返回值: 返回三个数组,分别是 DIF(快线)、DEA(慢线/信号线)和 MACD柱(红绿柱)。

在 QMT 中的完整使用示例:

#coding:gbk
import talib
import numpy as np

def init(ContextInfo):
    # 设置股票池,例如平安银行
    ContextInfo.set_universe(['000001.SZ'])

def handlebar(ContextInfo):
    # 获取当前股票池
    stock_list = ContextInfo.get_universe()
    
    # 获取最近 100 天的收盘价数据
    # 返回的是 dict,key 为股票代码,value 为价格 list
    history_data = ContextInfo.get_history_data(100, '1d', 'close')
    
    for stock in stock_list:
        if stock in history_data:
            close_list = history_data[stock]
            
            # 确保数据长度足够计算 MACD(通常需要大于 slowperiod + signalperiod)
            if len(close_list) > 35:
                # 将 list 转换为 numpy 数组,并指定类型为 float
                close_array = np.array(close_list, dtype=float)
                
                # 调用 talib 计算 MACD
                macd, macdsignal, macdhist = talib.MACD(close_array, fastperiod=12, slowperiod=26, signalperiod=9)
                
                # 打印最新一天的 MACD 数据
                # 注意:talib 计算结果的前面部分会是 nan(因为周期不够),所以取最后一位 [-1]
                print(f"{stock} 最新 MACD 数据:")
                print(f"DIF (macd): {macd[-1]:.4f}")
                print(f"DEA (macdsignal): {macdsignal[-1]:.4f}")
                print(f"MACD柱 (macdhist): {macdhist[-1]:.4f}")

总结:
QMT 完美兼容标准的 talib 库。您只需要通过 ContextInfo.get_history_dataContextInfo.get_market_data 获取到历史价格数据,将其转换为 numpy.array,即可直接传入 talib.MACD() 中进行计算。