本文将基于 miniQMT 量化终端与 xtquant 行情接口,通过 Python 实现均线簇算法,完成股票支撑位与压力位的量化定位,适合量化交易入门者、技术分析爱好者、QMT 平台使用者阅读学习。
一、前置环境与准备工作
本文所有代码均基于miniQMT终端的xtquant行情库开发,同时会用到 Python 数据分析与可视化的常用库,先完成环境配置与基础工具封装。
1.1 依赖库安装
执行以下 pip 命令完成所有依赖库的一键安装,避免运行时出现依赖缺失报错:
pip install pandas numpy matplotlib scipy scikit-learn xtquant
1.2 通用行情数据获取函数
基于 xtquant 封装标准化的股票历史行情获取函数,后续所有均线计算均基于该函数返回的行情 DataFrame 实现,函数兼容日线、周线、月线等多周期,支持多种复权方式,增量下载模式可大幅提升数据获取效率。
import pandas as pd
from xtquant import xtdata
def get_stock_hq(code, start_date='19900101', period='1d', dividend_type="front_ratio", count=-1):
"""
基于xtquant获取股票全量历史行情数据
:param code: 股票代码,格式为【代码.交易所】,例:600000.SH(沪市)、000001.SZ(深市)
:param start_date: 行情起始日期,格式YYYYMMDD
:param period: K线周期,支持1d(日线)/1w(周线)/1mon(月线),分钟线同理
:param dividend_type: 除权方式,可选值:none(不复权)/front(前复权)/back(后复权)/front_ratio(等比前复权)/back_ratio(等比后复权)
:param count: 获取K线数量,-1为获取起始日期以来的全部数据
:return: 包含OHLCV数据的DataFrame,索引为交易日期
"""
# 关闭控制台冗余日志
xtdata.enable_hello = False
# 增量下载历史行情数据,避免重复下载
xtdata.download_history_data(stock_code=code, period=period, incrementally=True)
# 拉取指定字段的行情数据
history_data = xtdata.get_market_data_ex(
field_list=['open', 'high', 'low', 'close', 'volume', 'amount', 'preclose'],
stock_list=[code],
period=period,
start_time=start_date,
count=count,
dividend_type=dividend_type
)
# 数据格式化处理
df = history_data[code]
df.index = pd.to_datetime(df.index)
df['date'] = df.index
return df
二、均线簇的由来与直观理解
在股票技术分析中,支撑位与压力位是核心分析要素,价格的上涨与下跌往往会在关键价位出现停滞、反转,而均线簇正是将这一主观概念进行量化的核心方法。
2.1 均线簇的核心定义
我们将多条不同周期的移动平均线同时绘制在 K 线图中,当这些均线在某一个价格区间高度聚集、差值极小时,就形成了均线簇;而均线簇的密集成交区间,往往就对应着个股的强压力位或强支撑位。
2.2 直观理解
我们可以把每一条均线想象成一根橡皮筋,多条均线聚集的区间,就相当于多根橡皮筋同时捆在价格的上方或下方:
- 当价格向上试图突破这个区间时,上方的均线簇就会形成极强的阻力,也就是压力位;
- 当价格向下试图跌破这个区间时,下方的均线簇就会形成极强的托举力,也就是支撑位。
本质上,均线簇是用不同周期的历史价格平均值,量化出市场的集体心理关口,反映了市场在该价位的多空均衡状态。
三、均线簇的数学定义与核心原理
3.1 基础指标:简单移动平均线 SMA
均线簇的计算基础是简单移动平均线(SMA),其计算公式如下:
![]()
其中:

3.2 均线簇的形成条件
均线簇的核心是「多周期均线高度聚集」,我们可以通过量化指标来精准判定均线簇是否形成,最常用的两个判定维度如下:



3.3 均线簇的核心原理
四、均线簇的常用实现算法
4.1 基础版:简单聚合均线算法
这是最易实现、最常用的均线簇判定算法,核心步骤如下:
4.2 进阶版:均线簇密度算法
基础版的固定阈值无法适配不同波动率的个股,进阶版通过动态阈值优化,提升均线簇判定的普适性,核心步骤如下:
4.3 支撑位与压力位的最终判定规则
完成均线簇的识别后,通过以下规则完成支撑 / 压力位的最终判定:
- 若均线簇密集区间位于当前股价上方,则该区间为个股的强压力位;
- 若均线簇密集区间位于当前股价下方,则该区间为个股的强支撑位。




