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

JoinQuant平台如何获取和计算各种技术指标?

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

问题描述

关于各种技术指标的获得

请问是否有一个可以直接计算各种技术指标的库啊,或者可以根据price,volume的变化获取对应技术指标的函数库啊?

解决方案

在 JoinQuant(聚宽)平台上,有多种方式可以直接获取或计算各种技术指标。平台不仅内置了丰富的技术分析函数库和因子库,还支持量化界最常用的第三方技术指标库。以下是三种最常用的方法:

方法一:使用聚宽内置的 jqlib.technical_analysis

聚宽官方为了方便用户,基于通达信、东方财富、同花顺等的公式,封装了一个技术分析指标库。你可以直接导入并调用这些函数。

使用示例:

# 导入技术分析库
from jqlib.technical_analysis import *

# 定义股票池列表
security_list = ['000001.XSHE', '000002.XSHE']

# 计算并输出 GDX (济安线) 值
gdx_jax, gdx_ylx, gdx_zcx = GDX(security_list, check_date='2017-01-04', N=30, M=9)

for stock in security_list:
    print(f"{stock} 济安线: {gdx_jax[stock]}")

注:你可以通过在研究环境中输入 函数名?(例如 GDX?)来查看具体指标的计算公式和参数说明。

方法二:使用聚宽因子库 jqfactor 获取技术因子

聚宽的因子库中已经预先计算好了大量的技术指标因子(如 MACD、BOLL、EMA 等),你可以直接通过 get_factor_values 函数获取历史的指标数值,无需自己手动计算。

支持的常见技术因子包括:

  • MACDC:平滑异同移动平均线
  • boll_down / boll_up:布林线下轨/上轨
  • EMA5 / EMAC10 等:指数移动均线
  • MFI14:资金流量指标

使用示例:

from jqfactor import get_factor_values

# 获取平安银行 2023-01-01 到 2023-01-10 的 MACD 和 BOLL 上轨数据
factor_data = get_factor_values(
    securities=['000001.XSHE'], 
    factors=['MACDC', 'boll_up'], 
    start_date='2023-01-01', 
    end_date='2023-01-10'
)

# 查看 MACD 数据
print(factor_data['MACDC'])

方法三:使用第三方库 TA-Lib (推荐)

TA-Lib 是量化交易领域最著名、最广泛使用的技术分析库,包含了 150 多种技术指标(如 MACD, RSI, KDJ, ATR 等)。JoinQuant 环境中已经预装了该库。

使用思路:
先通过 get_priceattribute_history 获取股票的 close, high, low, volume 等基础数据,然后将其转换为 numpy.ndarray 传入 talib 函数中计算。

使用示例:

import jqdata
import talib
import numpy as np

def initialize(context):
    g.security = '000001.XSHE'
    run_daily(market_open, time='every_bar')

def market_open(context):
    # 获取过去 35 天的收盘价数据
    close_data = attribute_history(g.security, 35, '1d', ['close'])
    close_prices = close_data['close'].values
    
    # 确保数据足够计算指标(例如 MACD 默认需要 33 天以上数据)
    if len(close_prices) > 33:
        # 计算 MACD
        macd, macdsignal, macdhist = talib.MACD(close_prices, fastperiod=12, slowperiod=26, signalperiod=9)
        
        # 获取最新一天的 MACD 柱状值
        current_macdhist = macdhist[-1]
        print(f"当前 MACD 柱状值为: {current_macdhist}")
        
        # 计算 RSI (14日)
        rsi = talib.RSI(close_prices, timeperiod=14)
        print(f"当前 RSI 值为: {rsi[-1]}")

总结

  • 如果需要现成的因子数值用于选股或多因子模型,推荐使用 jqfactor
  • 如果需要国内炒股软件特有的指标(如济安线等),推荐使用 jqlib.technical_analysis
  • 如果需要在策略中灵活计算标准技术指标(如 MACD, KDJ, RSI),强烈推荐使用 TA-Lib