问题描述
如:talib.MACD( )函数语法的使用方法,在哪里可以看到使用说明
或者 talib.这个库的使用说明
解决方案
在 QMT 平台中,TA_Lib(版本 0.4.17)是平台默认自带的第三方 Python 库。它是一个广泛用于程序化交易中进行金融市场数据技术分析的函数库,包含了如 MACD、RSI、布林带等多种指标的计算。
1. 在哪里看 talib 的使用说明?
由于 QMT 内置的 talib 就是标准的 Python TA-Lib 库,因此您可以直接参考 TA-Lib 的官方文档或开源社区的中文翻译:
- 官方英文文档:TA-Lib Python Wrapper Documentation
- MACD 函数官方说明:在官方文档的
Momentum Indicators(动量指标)章节下可以找到MACD的详细参数说明。
2. talib.MACD() 函数语法说明
talib.MACD() 的标准语法如下:
macd, macdsignal, macdhist = talib.MACD(real, fastperiod=12, slowperiod=26, signalperiod=9)
参数说明:
real:输入的数据序列,通常是收盘价(Close Price)的 Numpy Array(一维数组)。fastperiod:快线周期,默认值为 12。slowperiod:慢线周期,默认值为 26。signalperiod:信号线周期,默认值为 9。
返回值说明:
macd:DIF 线(快线与慢线的差值)。macdsignal:DEA 线(DIF 的 9 日 EMA)。macdhist:MACD 柱状图(DIF - DEA)。
3. 在 QMT 中的使用示例
在 QMT 策略中,您可以通过 ContextInfo.get_market_data 获取历史数据,然后传入 talib.MACD 进行计算:
#coding:gbk
import talib
import numpy as np
def init(ContextInfo):
# 设置股票池
ContextInfo.set_universe(['000001.SZ'])
def handlebar(ContextInfo):
# 获取过去 100 天的收盘价数据
df = ContextInfo.get_market_data(['close'], stock_code=ContextInfo.get_universe(), period='1d', count=100)
if df.empty:
return
# 提取收盘价并转换为 numpy 数组,注意需要处理 NaN 值
close_prices = df['close'].dropna().values
# 确保数据长度足够计算 MACD(通常需要至少 33 个数据点)
if len(close_prices) > 33:
# 计算 MACD
macd, macdsignal, macdhist = talib.MACD(close_prices, fastperiod=12, slowperiod=26, signalperiod=9)
# 打印最新一天的 MACD 值
print("最新 MACD (DIF):", macd[-1])
print("最新 Signal (DEA):", macdsignal[-1])
print("最新 Hist (柱子):", macdhist[-1])
总结:QMT 并没有单独为 talib 编写说明书,因为它使用的是行业标准的开源库。您只需在搜索引擎中搜索“Python TA-Lib 中文文档”即可找到大量详尽的教程和函数列表和通俗易懂的教程。