English Русский Español Deutsch 日本語 Português
preview
三角波与锯齿波:交易者的分析利器

三角波与锯齿波:交易者的分析利器

MetaTrader 5指标 |
44 0
Aleksej Poljakov
Aleksej Poljakov

概述

提及波浪时,人们首先想到的往往是正弦波。正弦波可用于建模和描述各类自然或人为的振荡现象,包括市场周期。

提及波浪分析时,艾略特(Elliott)波浪理论往往会立刻浮现在脑海中。根据该理论,价格以周期性方式运动:首先是一波推动浪(上升波),随后是调整浪(下跌波)。这些波动构成分形结构——每一波较大的波动均由更小的波浪组成,而更小的波浪又由更细微的波动构成。

因此,正弦波与艾略特波浪是两个截然不同的概念,但均与周期性和过程重复的理念相关。乍看之下,波浪理论似乎已被研究透彻、验证充分,难有创新。但这只是错觉 —— 旧基础之上,总有新突破。而这正是我们接下来要做的。


三角波

我们早已习惯波浪呈现起伏的波形。但波浪的形态远不止于此。我最近读到一篇关于方波的文章,而三角波却是首次听闻。其实,MetaTrader终端早已内置三角波,只是MetaQuotes未予公开。

取周期为3的三个连续简单移动平均线(SMA)值,计算其平均值。结果就是采用MODE_SMMA(平滑移动平均线)法计算出的移动平均值。计算过程如下所示:

现在,现在,让我们换个角度审视这个三指标问题。任何线性指标本质上都是一组系数的集合。我们可以对这些系数进行任意算术运算。以三个SMA的叠加为例。我们首先分别列出每个指标的系数,之后将对应同一价格的系数相加。最终,我们将得到一个三角窗函数。

price[0] price[1]
price[2]
price[3]
price[4]
1 1 1


1 1 1


1 1 1
1 2 3 2 1

然而,三角窗函数的生成其实更简单。先设定指标周期。再利用以下公式计算系数:

现在,我们需对这些系数进行标准化处理。先计算所有系数的总和。再将每个系数除以该总和。此类指标可平滑价格数据,但其与SMMA的差异极小。

现在,我将提出一个更复杂且有趣的任务。利用三角窗函数的系数,构建一个能对特定价格变化做出反应的指标。

该指标由两部分组成。第一部分较为简单 —— 所有系数均设为1。第二部分稍显复杂。我们首先计算三角窗函数的系数。之后对其进行标准化处理,使其成为振荡器。为此,我们需要计算系数的总和:

我们根据以下公式重新计算每个系数:

现在,让我们探讨该指标的实际应用。假设指标周期为5。其将包含两组系数数组:

利用这些系数,我们需要找到两个权重:

这些权重各自代表一个独立的指标。W0 是众所周知的SMA,而W1是基于三角窗的振荡指标。利用这些权重,我们可以得出指标值。

在图表上,其显示结果可能如下:

首个阶段我们已经取得成功。现在,让我们尝试改进指标。例如,我们采用一个周期为24的指标。先前已经熟悉如何构建主要的三角波。然而,在此周期内可以容纳两个周期为12的波。此外,周期为8、6、4和3的波也会形成整数个周期。让我们尝试将这些波添加到指标中。我们所要做的只是稍微修改一下系数的计算方法。如果波周期PW能够整除指标周期(即波周期在指标周期内能完整出现整数次),那么系数值就可以通过以下公式求得:

系数标准化、权重计算以及指标计算方式保持不变。

当然,指标中包含的波越多,其对价格的平滑效果就越好。然而,周期较小的波对噪声更为敏感,因此,使用它们有时候并不合理。因此,我们增加一项功能,即能够选择指标中包含的波的数量。

该指标的主要优势在于对价格进行平滑处理。如果存在波动型价格走势,它还能检测并突出显示此类波状运动。

该指标的主要缺点恰恰也在于价格平滑这一特性。所有计算和指标构建均以其中心作为参照基准。因此,它可能存在滞后性。让我们尝试消除这一缺点。


锯齿波

当某一方向的价格走势强于另一方向时,便形成了趋势。例如,上涨的价格走势幅度更大、频率更高,超过下跌走势。也就是说,总是对称性地打破趋势。因此,为了分离出线性趋势,我们需要一种非对称且线性的工具。锯齿波恰好符合这些要求。

实际上,MetaTrader终端中已经存在锯齿波,但……我就不多赘述了。让我们以线性加权移动平均(LWMA)指标为例。其系数可按如下方式计算:

也就是说,LWMA指标不过是单齿的锯齿波。一齿不足,需更多齿。因此,我们将按以下方式计算周期为PW的锯齿波的系数:

所有其他计算与三角波的计算方式保持一致。

锯齿波将任何价格走势都解读为趋势。第一个波显示整体趋势。第二个波将趋势分为两个或三个部分(取决于指标的周期)。后续的波则进一步细分这些部分。可以说,该指标构建了趋势通道。通道线彼此之间越接近,趋势就越明显。

该指标有一个有趣的特性。如果波的数量为偶数,指标将平滑趋势,对其进行平均处理。如果波的数量为奇数,指标将力求尽可能准确地定位趋势。


追求完美永无止境

让我们回到三角波。假设指标周期为6。其包含2个周期为3的三角波。这些波的系数如下:

根据价格的排列方式,这些波将向上或向下。让我们对系数计算进行一些微调,使这两个波相互独立。我们将得到两个系数系统,而非一个:

也就是说,我们在时间上分离了两个波。现在,每个波的方向和权重都不依赖于另一个波。得益于这种分离,指标会变得更加灵活,并且能更准确地跟踪价格变化。

同样的分离方法也可以应用于锯齿波。在这种情况下,出现了一个有趣的特性:如果两个相邻的锯齿波方向相反,它们将形成一个三角波。

以窗口函数形式呈现的指标极为罕见。我们可以重新设计波指标,使其以线条形式显示。为此,我们只需计算指标的最后一个值。采用这种方法,交易者将无法评估哪些因素影响了指标,但他们将能够实时看到指标的走势。

波参数的计算是围绕平均值进行的振荡。如果我们舍弃这个平均值,就可以构建一个振荡器。该振荡器将汇总不同周期的波。所得总和将显示波在何种方向上以及以何种强度偏离平均价格值。结果,我们创建了两个新指标。

这些指标如今已经呈现出我们熟悉的形态。但它们已不再直接展示波本身。


交易策略

指标已构建完毕。接下来,我们需要验证其交易适用性。首先,我将采用一种简单的策略——指标与价格的交叉:

  • 如果价格从下方上穿指标线,智能交易系统(EA)将开立多头仓位,并平掉所有空头仓位;
  • 如果价格从上方下穿指标线,EA将开立空头仓位,并平掉所有多头仓位。

尽管这种方法简单,但该策略看起来相当可行。

让我们对该策略稍作修改。我们将使用另一个指标的读数,而非价格。其他所有规则保持不变。采用不同的波和趋势分离方法可能会影响结果。

对于下一个策略,我将利用窗口函数的一个特性:它们在收到新价格后会重写所有值。例如,完全有可能在上一根K线上存在两个窗口函数的交叉,但当新K线开盘时,这个交叉就消失了。同样,交叉可能并非出现在当前K线上,而是出现在更早的历史数据中。

EA将跟踪两个指标在其整个长度上的交叉,并生成开仓信号,无论交叉发生在哪个K线上。然而,这种方法可能会导致信号延迟。为了避免此类情况,我将添加一个过滤器。只有当开仓价格优于前一个价格时,才会视为信号有效。对于多头仓位,价格必须低于前一个价格;对于空头仓位,价格必须高于前一个价格。这听起来相当有挑战性,但值得一试。

该策略需要添加另一种平仓方法 —— 止损、止盈、追踪止损。这样一来,可能会产生更稳定的结果。

三角波和锯齿波能够分离出趋势。基于这一特性,我将构建一个交易策略,规则如下:

  • 如果当前指标值低于所有先前值,EA将开立多头仓位;
  • 反之,如果当前指标值高于所有先前值,则开立空头仓位。

该策略看起来简单,但具有潜力。

另一个策略基于振荡器构建。该策略规则将基于均值回归。开立多头仓位的条件:振荡器线已达到局部最低点,且这个局部最低点低于设定水平。开立空头仓位的条件:振荡器线已达到局部最高点,且这个最高点高于设定水平。

三角波和锯齿波是技术分析中的有效工具。既可作为策略基础,也可作为辅助过滤器。它们有助于识别潜在的市场进入和退出点。然而,它们应始终与其他分析方法以及健全的风险管理策略结合使用。


结论

至此,我们已经探讨了多种在交易中运用三角波和锯齿波的方法 —— 从简单的价格平滑处理,到构建能够识别波浪式波动和趋势的复杂组合。遗憾的是,一篇的篇幅无法穷尽这些波形的所有应用可能。这个主题太过广泛,但您随时可以进一步深入研究。研究这些波形的特性和应用前景相当乐观。即便基于这些波形的最简单策略也可能带来盈利,尽管它们需要精心优化。

撰写本文时使用了以下程序:

名称 类型 特征
波浪 指标
  • Type - 波形类型;
  • iPeriod - 指标周期;
  • NumWave - 用于指标计算的波的数量;
  • Shift - 指标线在K线上的偏移量。

三角波的最小周期为3,锯齿波的最小周期为2。波的数量允许仅保留信号中的低频成分。

波线 指标
仅显示波形的最后一个已知值。
波振荡器 指标
仅计算并累加波形的权重。
EA波1 EA 基于指标线与价格交叉的简单策略。
EA波2 EA
基于最后两根K线上两条指标线交叉的策略。
EA波3 EA
基于所有K线上两条指标线交叉的策略。
EA波4 EA
基于当前指标值达到最大值/最小值的策略。
EA波振荡器 EA
基于振荡器值的策略。

本文由MetaQuotes Ltd译自俄文
原文地址: https://www.mql5.com/ru/articles/17595

附加的文件 |
Wave.mq5 (5.87 KB)
Wave_Lin.mq5 (5.91 KB)
Wave_Osc.mq5 (5.83 KB)
EA_Wave.mq5 (3.48 KB)
EA_Wave_2.mq5 (3.73 KB)
EA_Wave_3.mq5 (4.17 KB)
EA_Wave_4.mq5 (3.67 KB)
EA_Wave_Osc.mq5 (3.51 KB)
交易策略 交易策略
各种交易策略的分类都是任意的,下面这种分类强调从交易的基本概念上分类。
MQL5 交易策略自动化(第 23 部分):带追踪止损与篮子交易的区间补仓系统 MQL5 交易策略自动化(第 23 部分):带追踪止损与篮子交易的区间补仓系统
在本文中,我们将通过引入追踪止损机制与多篮子交易功能,对原有区间补仓系统(Zone Recovery System)进行升级优化。我们将探索升级版架构如何借助动态追踪止损机制锁定已实现利润,以及通过篮子交易管理系统高效处理多维度交易信号。通过实现与回测,我们展示了一个更强大、更能适应市场变化表现的交易系统。
新手在交易中的10个基本错误 新手在交易中的10个基本错误
新手在交易中会犯的10个基本错误: 在市场刚开始时交易, 获利时不适当地仓促, 在损失的时候追加投资, 从最好的仓位开始平仓, 翻本心理, 最优越的仓位, 用永远买进的规则进行交易, 在第一天就平掉获利的仓位,当发出建一个相反的仓位警示时平仓, 犹豫。
从基础到中级:指标(一) 从基础到中级:指标(一)
在本文中,我们将创建第一个完全实用和功能齐全的指标。目标不是展示如何创建应用程序,而是帮助您了解如何开发自己的想法,并让您有机会以安全、简单和实用的方式应用它们。