金融, 统计

滚动平均绝对偏差mad

Rolling Mean Absolute Deviation

指标解读|滚动平均绝对偏差(Rolling Mean Absolute Deviation):衡量市场稳定性的实用工具 在量化交易和金融数据分析中,我们经常依赖标准差来衡量波动性。然而,标准差对于**极端值(outliers)**过于敏感,有时会高估波动风险。此时,**平均绝对偏差(Mean Absolute Deviation, 简称 MAD)**就成为一种更加稳健、抗干扰的波动性度量方式。 本文将深入介绍 pandas_ta 库中的 mad() 函数,中文命名为“滚动平均…

指标解读|滚动平均绝对偏差(Rolling Mean Absolute Deviation):衡量市场稳定性的实用工具


在量化交易和金融数据分析中,我们经常依赖标准差来衡量波动性。然而,标准差对于**极端值(outliers)**过于敏感,有时会高估波动风险。此时,**平均绝对偏差(Mean Absolute Deviation, 简称 MAD)**就成为一种更加稳健、抗干扰的波动性度量方式。

本文将深入介绍 pandas_ta 库中的 mad() 函数,中文命名为“滚动平均绝对偏差指标”,解析其工作原理、实际应用场景,并结合代码示例,帮助你把握这一低调但实用的金融分析工具。


一、滚动平均绝对偏差指标是什么?

平均绝对偏差(MAD)是衡量一组数据与其平均值之间偏离程度的统计量:

$$ \text{MAD} = \frac{1}{n} \sum_{i=1}^{n} |x_i - \bar{x}| $$

在时间序列中,“滚动 MAD”是指对每一个时间点使用固定窗口计算该窗口内的 MAD 值,持续滑动更新,从而得到一个新的时间序列。

相比标准差,MAD:

  • 稳定,不容易被异常价格拉高;
  • 平滑,适合低频交易或长期趋势分析;
  • 通俗,具有直观的波动范围解释力。

二、pandas_ta 中的 mad() 函数用法详解

📘 函数调用方式:

import pandas_ta as ta
df["MAD_30"] = ta.mad(df["close"], length=30)

🔧 参数说明:

参数名称 类型 描述 默认值
close Series 收盘价时间序列 必填
length int 计算窗口周期(单位:天) 30
offset int 时间偏移 0

🔁 返回结果:

  • 返回 Series,通常命名为 MAD_30,表示基于过去30个交易日的滚动 MAD 值。

三、实战演示:识别低波动区间与潜在爆发点

import pandas as pd
import pandas_ta as ta
import matplotlib.pyplot as plt

# 读取价格数据
df = pd.read_csv("stock_data.csv")
df["MAD_30"] = ta.mad(df["close"], length=30)

# 绘图对比
plt.figure(figsize=(12,6))
plt.subplot(2,1,1)
plt.plot(df["close"], label="收盘价", color="black")
plt.title("收盘价走势")
plt.legend()

plt.subplot(2,1,2)
plt.plot(df["MAD_30"], label="滚动MAD(30日)", color="blue")
plt.axhline(df["MAD_30"].mean(), linestyle="--", color="gray", label="历史均值")
plt.title("市场稳定性指标:滚动平均绝对偏差")
plt.legend()

plt.tight_layout()
plt.show()

四、如何解读 MAD 的变化趋势?

MAD 值变化 含义解读 策略启发
持续下降 市场波动减弱,进入稳定或震荡状态 适合布局趋势突破或收敛策略
持续上升 市场开始活跃,可能酝酿大行情 可转向动量交易或波动率策略
快速跳升 极端行情临近(如突发利空或放量突破) 建议结合风险控制机制或保护止损
MAD 接近 0 市场处于“死水期”,大概率无有效交易机会 忽略信号,静待变盘

五、滚动 MAD 与其他波动性指标对比

指标 稳健性 易理解性 是否抗异常值 是否反应敏感
标准差(Std)
波动率(Volatility)
平均绝对偏差(MAD) 适中

📌 结论:MAD 是一种适合“长期投资者”和“低频量化策略”使用的稳定波动指标。


六、结合策略建议:MAD 与布林带/均线的组合

  • 布林带缩口 + MAD新低:低波动蓄势阶段,关注后续突破;
  • 均线交叉 + MAD上升:趋势启动,量价共振,有效进场信号;
  • MAD背离价格走势:若价格上涨但 MAD 下降,提示行情虚弱;

七、总结:用 MAD 观察市场的“情绪温度计”

虽然滚动 MAD 是一个非常基础的统计工具,但它在交易中的实际应用却非常广泛。它像一把温度计,帮助你在纷繁复杂的市场中,感知那一份**“波动的真实情绪”**。

结合 pandas_ta 中的 mad() 函数,你可以轻松将 MAD 融入你的量化分析系统,提升对趋势稳定性和风险边界的掌握能力。