Skip to content

掌握这5种专家级MA(移动平均线)技术,让您的交易如鱼得水

作者:老余捞鱼

原创不易,转载请标明出处及原作者。

写在前面的话:今天给大伙分享 5 种用移动平均线提升交易表现的方法,像移动平均线斜率、包络线这些高级技术,我还为此搭配了完整的Python代码。不管你是交易小白还是老手,都能从中学到新东西,赶紧来看看吧!

什么是移动平均线 ?

移动平均线(Moving Average,简称MA)是一种常用的技术分析工具,广泛应用于金融市场,尤其是在股票、外汇和期货交易中。

它通过计算一定时间段内的价格平均值,帮助交易者平滑价格波动,识别趋势方向,从而做出更明智的交易决策。

移动平均线在交易中的应用主要包括以下几个方面:

移动平均线应用广泛,很多人都靠着研究它开发出各种交易方法。我自己也用移动平均线构建了不少的交易系统,今天就给大家分享5种更高级的应用移动平均线交易系统。

一、移动平均线斜率(MAS)

移动平均线斜率(Moving Average Slope),简单来说,就是看移动平均线在一段时间里上升或下降的陡峭程度。以前咱们可能只关注它是涨还是跌,现在用斜率,能更准确判断趋势的强弱。

为什么它这么有用呢?当移动平均线斜率很陡,向上的话,说明市场上涨的劲头特别足;要是向下很陡,那就是市场下跌的力量很强。咱们交易者可以借助斜率,确认当前市场趋势是不是真的强,还能提前发现趋势可能反转的信号。

它的计算方法是算出移动平均线上两个点的价格差,再除以这两个点之间的时间间隔。角度越陡,趋势就越强。

上图是一张移动平均线斜率计算过程的示意图,横坐标为时间,纵坐标为价格,移动平均线明显的斜率展示了其变化。

下面是用 Python 代码计算移动平均线斜率的示例:

# 计算移动平均线斜率的函数
def calculate_ma_slope(df, period=50):
    ma = df['Close'].rolling(window=period).mean()
    first_derivative = ma.diff()
    second_derivative = first_derivative.diff()
    return first_derivative, second_derivative

我们将移动平均线斜率用于SPY(标普500)的实战交易策略,并使用了 vectorbt 进行回测。

策略的核心思想是在移动平均线斜率较强时入场,斜率较弱时出场。通过回测可以评估策略的表现,并绘制了资金曲线。

、移动平均线包络线(MAE)

移动平均线包络线(Moving Average Envelope)它就像是给移动平均线穿上了一件 “外套”。

在移动平均线的上方和下方,各有一条平行的线,这两条线和移动平均线之间的距离是固定比例的,形成了一个类似 “通道” 的东西,这个通道就叫 “包络线”。

它有啥用呢?当价格跑到包络线外面去了,就说明市场可能有点 “过头” 了,价格可能要往回走;要是价格在包络线附近晃悠,那就可能是市场在盘整

交易者还能自己调整包络线和移动平均线之间的距离比例。距离小,说明市场波动小;距离大,市场波动就大,价格变化更剧烈。

这是一张展示移动平均线包络线的 K 线图,K 线在包络线内波动,偶尔突破包络线,清晰展示包络线作为动态支撑和阻力位的作用。

Python 代码示例如下:

# 计算移动平均线包络线(上下边界)的函数
def calculate_ma_envelope(df, ma_period=20, envelope_pct=0.02):
    ma = df['Close'].rolling(window=ma_period).mean()  # 计算移动平均线
    upper_envelope = ma * (1 + envelope_pct)  # 上包络线(高于移动平均线的百分比)
    lower_envelope = ma * (1 - envelope_pct)  # 下包络线(低于移动平均线的百分比)
    return upper_envelope, lower_envelope

三、顾比复合移动平均线(GMMA)

顾比复合移动平均线(Guppy Multiple Moving Averages)是把好多条移动平均线组合在一起,帮助咱们交易者更好地了解短期和长期的市场趋势

它分成两组移动平均线,一组用来反映短期趋势(一般是 3 – 6 条指数移动平均线),另一组反映长期趋势(一般是 6 – 12 条指数移动平均线) 。

为啥要用 GMMA 呢?它能让我们全面地看清市场,通过观察短期和长期移动平均线之间的交叉情况,就能找到合适的买卖时机。要是短期的移动平均线跑到长期移动平均线上面去了,这就是市场要上涨的信号;反过来,就是市场要下跌的信号。

使用的时候,我们要留意短期和长期移动平均线是靠近还是远离。它们离得远,说明市场趋势很强;要是越来越近,那就可能市场要变盘了。

上图是 SPY 带有 GMMA 指标的 K 线图,清晰展示短期和长期移动平均线的交叉、收敛和发散情况,以及对应的价格走势变化。

Python 代码示例:

# 计算顾比复合移动平均线(GMMA)的函数
def calculate_gmma(df, short_periods=range(3, 16, 3), long_periods=range(30, 51, 5)):
    for period in short_periods:
        df[f'GMMA_Short_{period}'] = df['Close'].ewm(span=period).mean()
    for period in long_periods:
        df[f'GMMA_Long_{period}'] = df['Close'].ewm(span=period).mean()
    return df

我们还是将 GMMA 用于 SPY (标普500)的实战交易策略,并继续使用了 vectorbt 进行回测。

策略的核心是在短期 GMMA 均线压缩低于长期 GMMA 均线时入场,短期 GMMA 均线低于长期 GMMA 均线时出场。

、移位移动平均线(DMA)

移位移动平均线(Displaced Moving Average),简单讲就是把移动平均线在时间上往前或者往后挪一挪。这样做能让我们从不同的角度看市场趋势。

往前挪,能帮我们预判未来价格可能走到哪里;往后挪,可以看看历史趋势和未来价格之间有啥关系。

它的作用可不小,通过把移动平均线往前移,我们就能提前知道价格可能的走势,在趋势反转之前收到信号。

计算的时候,就是把移动平均线按照设定的时间往前或往后平移。

上图是英伟达股票(NVDA)移位移动平均线的示意图,展示了移动平均线移位前后的对比,以及对价格走势判断的影响。

Python 代码示例:

# 计算移位移动平均线(DMA)的函数
def calculate_dma(df, period, shift):
    return df['Close'].rolling(window=period).mean().shift(shift)

用英伟达股票(NVDA)实现基于 位移移动平均线(DMA) 的交易策略。

我们使用快速 DMA(50 日均线,位移 10 天)上穿慢速 DMA(200 日均线,位移 20 天)作为入场信号,下穿作为出场信号,并通过 vectorbt 进行回测。

、移动平均线汇聚区(MACZ)

移动平均线汇聚区(Moving Average Confluence Zones)指的是好多条不同周期的移动平均线在同一个价格位置汇聚到一起,这个汇聚的区域就有可能成为价格的支撑位或者阻力位。道理很简单,汇聚的移动平均线越多,这个价格位置的支撑或者阻力作用就越强。

对我们交易者来说,这个汇聚区可太重要了。当价格靠近或者碰到这个区域的时候,价格可能就会反弹(如果是支撑区),或者反转(如果是阻力区)

一般来说,我们会关注像 50 周期、100 周期、200 周期这些不同周期的移动平均线是不是汇聚在一起。一旦它们汇聚在某个价格点,就说明不同时间段的市场看法达成了一致,这个价格区域很关键,不管是决定什么时候买入、卖出,还是设置止损点,都能参考它。

这是一张展示meta股票的移动平均线汇聚区的 K 线图,标注出了不同周期移动平均线汇聚的位置,以及价格在汇聚区附近的反应。

Python 代码示例:

# 检测汇聚区的函数(可复用周期)
def detect_confluence(df, periods=None):
    if periods is None:
        periods = [20, 50, 100, 200]  # 如果没有提供周期,则使用默认周期
    ema_columns = [f'EMA_{period}' for period in periods]
    df['Confluence_Upper'] = df[ema_columns].max(axis=1)
    df['Confluence_Lower'] = df[ema_columns].min(axis=1)
    return df

其实,移动平均线的用法还有很多,像移动平均线挤压等。不过我还没基于它好好构建交易系统,所以今天就没详细讲。

而且移动平均线的类型特别多,像简单移动平均线(SMA)、赫尔移动平均线(HMA)、三角移动平均线(TMA)等等。大家可以根据今天讲的这些计算方法,自己动手构建适合自己的交易系统。

观点总结

本文主要分享了 5 种利用移动平均线提升交易表现的方法,无论是交易新手还是有经验的投资者,都能从中获取新的交易思路,有助于在交易市场中做出更明智的决策。

  1. 移动平均线斜率(MAS):通过计算斜率判断趋势强弱,斜率越陡,趋势越强。
  2. 移动平均线包络线(MAE):可识别市场超买超卖和盘整状态,通过调整包络线与均线距离判断市场波动性。
  3. 顾比复合移动平均线(GMMA):由短期和长期两组均线构成,通过观察交叉、收敛和发散判断买卖点和市场趋势。
  4. 移位移动平均线(DMA):将均线在时间上移位,提前预判价格走势,获得趋势反转信号。
  5. 移动平均线汇聚区(MACZ):多条均线汇聚形成支撑或阻力区,帮助确定交易的关键点位。

源代码下载

以上的源代码请在我的Google Colab中申请下载,内附中文构建说明。

如觉得对您有所帮助,请留言或者私信向我索要,同时请我喝杯咖啡就好。

感谢您阅读到最后,希望这篇文章为您带来了新的启发和实用的知识!如果觉得有帮助,请不吝点赞和分享,您的支持是我持续创作的动力。祝您投资顺利,收益长虹!如果对文中内容有任何疑问,欢迎留言,我会尽快回复!


本文内容仅限技术探讨和学习,不构成任何投资建议。

Published inAI&Invest专栏

Be First to Comment

    发表回复