金融, 重叠

线性回归均线linreg

Linear Regression Moving Average

线性回归均线:兼具趋势判断与预测能力的技术分析利器 在金融市场中,如何判断趋势方向并预测价格未来走势,一直是交易者关注的重点。传统的移动平均线如 SMA 或 EMA 虽然简单易用,却只能反映趋势而无法预测。而 线性回归均线(Linear Regression Moving Average,简称 LRMA) 则是一种兼具“当前趋势”和“未来倾向”的技术指标,成为量化交易中极具价值的趋势工具。 一、什么是线性回归均线? 线性回归均线是基于 线性回归统计模型 简化…

线性回归均线:兼具趋势判断与预测能力的技术分析利器

在金融市场中,如何判断趋势方向并预测价格未来走势,一直是交易者关注的重点。传统的移动平均线如 SMA 或 EMA 虽然简单易用,却只能反映趋势而无法预测。而 线性回归均线(Linear Regression Moving Average,简称 LRMA) 则是一种兼具“当前趋势”和“未来倾向”的技术指标,成为量化交易中极具价值的趋势工具。


一、什么是线性回归均线?

线性回归均线是基于 线性回归统计模型 简化而来的一种趋势跟踪指标。它不是简单地对价格取平均,而是使用回归分析方法,对一段价格序列拟合出一条“最佳拟合线”,用以捕捉该段区间内价格的整体走势。

区别于标准线性回归(可处理多个变量),该指标仅基于一个变量(价格),因此也称为 一变量滚动回归(Rolling Regression)

核心特点:

  • 趋势线拟合而非加权平均:更贴近实际价格变动路径;
  • 提供价格趋势方向的斜率信息
  • 可衍生出时间序列预测值(Time Series Forecast)
  • 可计算拟合优度(r值)、截距、角度等高级指标

二、pandas_ta 中的使用方法

pandas_ta 库中,lrma() 函数可快速调用线性回归均线。默认返回的就是回归线拟合出的价格序列,结合可选参数还能输出角度、斜率、拟合度等。

函数调用格式:

import pandas_ta as ta

# 仅输出拟合曲线
df["LRMA"] = ta.linreg(close=df["Close"], length=20)

参数说明:

参数名 类型 默认值 说明
close Series 必填 收盘价序列
length int 10 回归分析的时间窗口
angle bool False 若为 True,返回斜率角度(单位为弧度)
degrees bool False 若为 True,返回斜率角度(单位为度)
intercept bool False 若为 True,返回截距
r bool False 若为 True,返回 Pearson 相关系数
slope bool False 若为 True,返回斜率
tsf bool False 若为 True,返回时间序列预测值(未来一周期)

你可以一次性返回多个字段:

lr_df = ta.linreg(close=df["Close"], length=20, slope=True, intercept=True, r=True)

三、与传统均线的区别

指标名称 是否预测未来 是否考虑趋势角度 对震荡的反应 可衍生信息
SMA 敏感
EMA 更敏感
LRMA ✅ 是 ✅ 是 中性 ✅ 可输出斜率、角度、r、预测值

四、实战应用场景

1. 趋势强度判断

通过计算 r 值(皮尔逊相关系数),判断当前回归趋势的拟合程度:

  • r > 0.7:趋势强,适合顺势交易;
  • r < 0.3:趋势弱,可能震荡,不宜追单。

2. 趋势方向分析

斜率 slope 为正,趋势向上;为负,趋势向下;近似为 0,则价格横盘。

你也可以用 angle=Truedegrees=True 计算趋势角度:

df["TrendAngle"] = ta.linreg(close=df["Close"], length=20, degrees=True)

3. 构建预测模型

使用 tsf=True,你可以获取 Time Series Forecast 值,作为下一周期的价格预测:

df["LRMA_Predict"] = ta.linreg(close=df["Close"], length=20, tsf=True)

配合布林带、MACD 可形成趋势确认+未来价格预测的复合策略。


五、可视化与代码演示

import matplotlib.pyplot as plt

plt.figure(figsize=(12,6))
plt.plot(df["Close"], label="收盘价", alpha=0.5)
plt.plot(df["LRMA"], label="线性回归均线", linewidth=2)
plt.plot(df["LRMA_Predict"], label="下一周期预测", linestyle="--", alpha=0.7)
plt.title("线性回归均线示意图")
plt.legend()
plt.grid(True)
plt.show()

六、总结

线性回归均线(Linear Regression Moving Average) 是一种结合统计回归与技术分析的趋势跟踪指标。它不仅能展示趋势,更能定量分析趋势方向、强度与未来预测值,非常适合中短期趋势策略和量化建模。

无论你是使用 Python 进行量化策略开发,还是想在价格震荡中找到稳定方向,LRMA 都能为你提供更具解释力与预测力的技术支持。