您能用移动平均线做什么呢

3 五月 2022, 08:59
Oleh Fedorov
5
2 034

概述

我有若干个有效的交易系统。 一般来说,我不会在每次即时报价来临时都计算指标,而是用直线来替代。 但有时我会偶发一些想法,这些想法会改进我对价格图的看法,甚至完全改变我对交易的认知,尽管这需要一些计算。

本文介绍了一些与最流行、最容易理解的指标 — 移动平均线(МА)有关的思路。

在其最简单的版本中,指标值的计算采用众所周知的平均方程:

MA[i] = (Price[i]+Price[i+1]+...+Price[i+MAPeriod])/MAPeriod

此处,MA[i] 是顺序的下一个元素,曲线上的一个点。 Price[i] — 当前价格,MAPeriod — 参与均值计算的元素数量。

当然,我们可以自由地应用任何价格:开盘价、收盘价、最高价、最低价、加权平均值、等等。 标准指标允许选择所计算的价格和计算方法,包括比简单平均值更复杂的方法... 在提供示例的同时,我留下了选择计算方法的机会。 然而,这对于领会所研究方法背后的思路并不重要。 无论我们使用的是“简单”移动平均线(SMA)、指数移动平均线(EMA)、还是任何其它方法,所有示例都非常有效。 因此,默认情况下,所有屏幕截图选用 SMA,并采用默认指标设置。 如果未另行说明,所有指标均采用收盘价。 您可以随意地采用这些参数来改进它们。

当谈到单一曲线时,我通常会采用默认的周期值 10 根柱线。 如果在单个指标中用到多条具有不同周期的曲线,则应用的周期通常为 5 和 8。 我不会用到超过两条不同周期的曲线。

颜色如下:红色 — 快速;橙色 — 慢速... 如果我还用到了其它东西,我会在本中明确说明。


模板指标

我创建了若干个指标,为各种方式形成的曲线当作可视化信号触发器。 它们基于一个模板,与标准示例中的标准 MACD 非常相似。 我相信,在这里出示整个模板代码并无意义。

每个指标都用到一个或多个移动平均值,有时还会用到 ATR 来定义到箭头的距离,或绘制通道线。

有时,如果指标位于图表窗口中,则更容易把思路可视化;而有时则需要把指标置于单独的窗口中。 这是通过属性之一完成的。 以下属性可用于图表窗口内的指标:

#property indicator_chart_window

如果指标置于单独的窗口中,则应用以下属性:

#property indicator_separate_window

在这种情况下,我有时会用以下属性来设置窗口高度:

#property indicator_height 100

当然,属性值是可以更改的。

缓冲区名称的末尾有 “Buffer” 后缀。 例如,标准箭头缓冲区将被称为 ArrowDownBuffer 和 ArrowUpBuffer。 如果指标绘制线条,则根据线条函数来命名缓冲区。

我定义的所有全局变量都有 “ext” 前缀(如果它们不是缓冲区)。 例如,extATRData 是一个全局变量,包含 ATR 指标的源数据。

我在使用缓冲区时,不会切换到“序列”模式。

在初始化期间,我将所有空值设置为 0:

  PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);
  PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0);
  PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0);

因此,我们只需要显示箭头或线条来示意条件触发,即全部保留在主循环之中。

我试图避免指标重绘,因此在零号烛条上执行绘制,而用于计算的数据均基于已收盘的烛条


价格穿越指标线(趋势方向)

在最简单的情况下,只有“自然”形式的均线独演。 我确信,大家都在屏幕上看到过类似的画面:

"干净" MA

图例 1. 简单均线

在大多数情况下,交易者参考 MA 来跟踪趋势。 趋势可以定义为一组烛条均位于曲线的一侧。 例如,如果有两根以上的烛条收盘价在该曲线以下,则趋势为熊市,此刻应考虑做空交易了。 如果收盘价高于该曲线,趋势为牛市,此刻应考虑做多... 如果价格越越曲线,我们就见证到趋势的变化。

允许我们跟踪均线突破的条件可能如下所示:

//--- main cycle
  for(i=start+3; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    if(
      ((close[i-1]<extMAData[i-1]
        && open[i-1]>extMAData[i-1]
       )
       ||(close[i-2]>extMAData[i-2]
          && open[i-2]>extMAData[i-2]
          && close[i-1]<extMAData[i-1]
          && open[i-1]<extMAData[i-1]
         )
      )

    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/5;
     }
    else
      if(
        ((close[i-1]>extMAData[i-1]
          && open[i-1]<extMAData[i-1]
         )
         ||(close[i-2]<extMAData[i-2]
            && open[i-2]<extMAData[i-2]
            && close[i-1]>extMAData[i-1]
            && open[i-1]>extMAData[i-1]
           )
        )
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/5;
       }
   } // main cycle

取代检查开盘价,我们也许更要关注当前和之前柱线的收盘价。 如果它们位于曲线的不同侧面,我们就会看到一次突破。

指示文件 是 MA-Breaking.mq5。 在图表上运行它会产生以下图像(如果标准曲线周期为 10 根柱线):

MA — 突破

图例 2. 均线突破

我相信,如果不经过额外的分拣,这种方法是没有用的。 看起来,即使在趋势区域,向上箭头的数量也几乎与向下箭头的数量相匹配。 当 МА 周期递增时,箭头的数量会减少,但这并无多大帮助,因为在趋势没有回滚的情况下出现急剧突破是非常罕见的。 在大多数情况下,剧烈走势之前会有一段横盘。 所以我们来寻找过滤器...


均线则作为支撑/阻力线

下一个相当明显的运用曲线的方式就是将其当作支撑线/阻力线。 如果价格触及该曲线,但尚未越过该曲线(在同一侧收盘),我们得到一个交易信号。 例如,在 2 月 17 日,我们可以看到 3 个向下移动点,如果没有额外的过滤器,则会产生一个向上移动点(在开始处)。

很自然,我们会依据这两个规则来开启第一笔交易,也可以在现有持仓的基础上加仓。

这一概念在 MA-Support.mq5 文件中得到了验证。

//--- main cycle
  for(i=start+3; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    if(
      (high[i-1]>=extMAData[i-1]
       && close[i-1]<extMAData[i-1]
       && open[i-1]<extMAData[i-1]
      )
    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/5;
     }

    else
      if(
        (low[i-1]<=extMAData[i-1]
         && close[i-1]>extMAData[i-1]
         && open[i-1]>extMAData[i-1]
        )
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/5;
       }
   } // Main cycle end

以下是代码操作结果:

均线则作为支撑/阻力线

图例 3. 使用均线作为支撑/阻力线

这看起来比之前的选项更好。 如果我们使用止盈价位,甚至能简单地依据箭头累积订单,然后依据反向箭头离场(显然,是使用逆转),交易获利的可能性极高。

均线的周期越高,角度越低,距价格越远。 因此,遇到突破和回滚信号的频率较低,但随着支撑/阻力价位的变化,价位变得更可靠。 我给您看一张 20 周期的图表来进行比较。 我们可以看出回滚的频率较低。 然而,信号可能更可靠,因此止损价位可以降低。

均线作为支撑/阻力(增加周期)

图例 4. 大周期的均线(20)

例如,凌晨 4 点钟。 2 月 17 日,红色曲线提供买入信号,橙色曲线提供卖出信号,因此我们出现亏损。 然而,在红线的情况下,我们可以依据上午 8 点、上午 10 点和下午 3 点的信号来加仓。

在均线周期较高的情况下,信号到达的时间较晚,这可能会导致损失部分潜在利润,尽管交易的频率也许会降低。


坡度

直线坡度越陡,价格波动越快,下一根烛条上延续这种趋势的可能性就越大。

衡量坡度的最简单方法是使用当前值和以前值间的差值。 如果差值为正,曲线上行;如果差值为负,曲线下行。

MA-Slope.mq5 中主回路的代码如下所示:

//--- main cycle
  for(i=start+SlopeShift*2; i<rates_total && !IsStopped(); i++)
   {
    SlopeDownBuffer[i]=0;
    SlopeUpBuffer[i]=0;
    slopeIndex=(extMAData[i-1]-extMAData[i-1-SlopeShift]);

    //---

    if(
      slopeIndex<0

    )
     {
      SlopeDownBuffer[i]=slopeIndex;
     }
    else
      if(
        slopeIndex>0
      )
       {
        SlopeUpBuffer[i]=slopeIndex;
       }
   } // main cycle

此处 SlopeShift 指定需传递的距离当前价格的柱线数量。 默认值为一。 但是我们可以通过增加这个值得到非常有趣的结果,例如,采用距均线二或三根柱线的差值。

我相信,结果曲线能够以直方图显示。 结果如下所示:

МА — 坡度直方图

图例 5. 曲线坡度直方图

这张图片很有趣。

首先,很明显,我们可以很容易地跟踪和分拣随机走势波动。 事实上,如果曲线方向仅在一根、两根或三根柱线期间发生变化,那么谈论趋势变化可能还为时过早。 无论如何,我们都应该非常小心,不要错过它。

其次,比率的变化是立竿见影的。 正如我们所看到的,如果直方图柱线高度小于某个阈值,我们很可能就要面对一段横盘。 因此,顺着均线方向,若长于 2-3 根柱线的坡度很小,此时进行交易是不合理的。

第三,尽管趋势段上的曲线看起来几乎是单边上升或下降的,但真实的变化率在不同的柱线之间变化很大。 这意味着某种相对数值,这可能有助于揭示我们还看不到的东西。

尝试 (МА-Slope-Index-First.mq5)... 代码:

//--- main cycle
  for(i=start+SlopeShift*3; i<rates_total && !IsStopped(); i++)
   {
    SlopeDownBuffer[i]=0;
    SlopeUpBuffer[i]=0;
    slopeIndex=(extMAData[i-1]-extMAData[i-1-SlopeShift]+Point()/100)
               /(extMAData[i-2]-extMAData[i-2-SlopeShift]+Point()/100);
    //---

    if(
      slopeIndex<0
    )
     {
      SlopeDownBuffer[i]=slopeIndex;
     }
    else
      if(
        slopeIndex>0
      )
       {
        SlopeUpBuffer[i]=slopeIndex;
       }
   } // main cycle

往被除数和除数中添加一个小数值(Point()/100)不会对结果产生太大的改变,但它允许我们避免除零错误。

图片如下:

MA — 相对坡度

图例 6. 均线坡度的相对指数

在交叉处可以看到尖峰。 如果我们将图表向左移动几根柱线,差值会变得更加明显。

МА — 相对指数向左移动

图例 7. 均线坡度的相对指数 (向左移动)

图例 7 生动地展示了峰值是如何标记一段强劲走势的边界。 峰值与其余数据数组的差值相当大。 事实上,“峰值”在尺度上彼此如此不同,以及峰值和其余数据之间的差异也如此悬殊,这就导致了下一步。 由于方向变化如此显著,我并未看出分析相对坡度指数的直方图有什么意义。 取而代之,我们可以简单地将其二元化,令输出更粗略。 例如,像这样(МА-Slope-Index-Bin.mq5):

//--- main cycle
  for(i=start+SlopeShift*3; i<rates_total && !IsStopped(); i++)
   {
    SlopeDownBuffer[i]=0;
    SlopeUpBuffer[i]=0;
    slopeIndex=(extMAData[i-1]-extMAData[i-1-SlopeShift]+Point()/100)
               /(extMAData[i-2]-extMAData[i-2-SlopeShift]+Point()/100);
    //---

    if(
      slopeIndex<=-SlopeThreshold
    )
     {
      SlopeDownBuffer[i]=-1;
     }
    else
      if(
        slopeIndex>=SlopeThreshold
      )
       {
        SlopeUpBuffer[i]=1;
       }
   } // Main cycle


此处,SlopeThreshold 是上一个示意图柱线高度的阈值,在该处触发信号。 在图像上,参数值等于 5。

相对均线坡度 (二元)

图例 8. 均线坡度的相对指数 (二元). SlopeThreshold=5.

下一张图像上,SlopeThreshold=15

相对坡度指数,SlopeThreshold=15

图例 9. 均线坡度的相对指数 (二元). SlopeThreshold=15.

这些条纹绝对值得仔细观察!

显然,这样的标记表明当前烛条的方向发生了变化,或于标记的烛条之后 2-3 根或更多根烛条之后出现变化。 在任何情况下,趋势都明显依赖于所标记的颜色、主力方向和实际烛条的组合。 当然,我们应该收集统计数据,例如,我在有关电子表格的文章中讲述的方式。 结合本文提供的其它方法,该指标看起来已经很有希望了...

当然,直方图上的二元条纹可以很容易地替换为箭头,与前面的指标类似。


基于单条移动平均线的通道

除上述方法外,我们还可以基于移动平均线建立通道,以便作为价格波动参考。 选项有很多。 我只研究这两个。

第一个非常简单,因为它只需要标准 MA 指标。 在图表上添加指标时,我们应该简单地加上级别。 唯一需要注意的是,每个时间帧都有自己的级别。 我将它们收集到一个“包”中,以避免每次切换时间帧时都要重新输入它们。 JPY 的图片如下所示:

简单通道 — MA

图例 10. 通道级别列表

H1 上的最终图像如下所示:

由级别组成的通道

图例 11. 级别外观(H1)

此处设置了回滚的级别。 故此,如果一根烛条触及某个级别,并从该级别上回滚(或非常接近该级别),那么就逆势入场。 例如,屏幕截图上的通道显示,2 月 22 日是做空的好时机。 我们可以在信号烛条的中段或结尾时下一笔订单(在此,如果我们在回滚后入场,订单可以设置在信号烛条的最低价位 - 115.100,而止损价位可以设置在 115.265)。 直接目标是触及平均值,而最终目标是触及同一通道的另一侧边界。

不过,在这种情况下,也可以在突破狭窄通道时进行交易。 例如,2 月 22 日,9 时的烛条在狭窄通道的边界之上收盘。 两根看涨烛条的收盘价高于平均水平,而两根看跌烛条之间的收盘价没有超出下边界。 均线坡度明显降低(如果我们查看图表上 MA-Slope 的设置,可以很清楚地看到这一点)。 所有这些都可以作为明确的做多信号。 停止价位可设置在 114.570,入场点可依据级别计算得出。 我们可以将其设定在 115.230。 备选,我们可以依据烛条或其它任何我们想要的方法来设定尾随停止。

请注意,在这段时间里只能看到两个通道:最内部的一个、和稍微大一点的一个。 如果我们切换到更高的时间帧,比如 D1,通道 +-50 几乎被隐藏;而 +-300 和 +-1500 可成为操作通道。 有时也可以看到月度通道。 它甚至可以提供信号,但最明显的通道会被当成主通道。

多通道 (D1)

图例 12. 级别外观 (D1)

周线/月线都可以看到类似的图像。 第四个通道最适合它,而第三个通道可以用作内部和辅助通道。

最内部的通道是为 М1-М15 设计的。

调整原则是显而易见的:我们切换到必要的时间帧,选择级别的大小,这样我们就有了最小数量的接触点,同时它们之间也有了最大可能的振幅。 最简单的方法是测量当前时间帧内基础调整的幅度,并将其除以 2。 下面的动画演示了这个过程。

测量通道大小

图例 13. 衡量通道波动性 (D1)

经过一些粗略评估后,我们可能需要更精确地调整大小,但这相当容易...


基于两条移动平均线的通道(ATR3x5)

上述通道很不错,但也有一些缺点。

首先,应该为每个时间帧和品种手工选择通道大小。 实现过程自动化似乎是一项艰巨的任务。

其次,这些级别不会存储在缓冲区当中,这意味着很难以编程方式取用它们。

基于移动平均线和 ATR 的通道则没有这样的缺点。 这个思路特简单。 我们采用 两条移动平均线指标,周期为 3。 其中一个应用最高价(high),另一个应用最低价(low)。 接下来,在相应方向上将所获曲线平移 5 周期 ATR的距离(向下的低点,向上的高点)。

通道准备就绪! 它完全适合任何品种,由于突破非常罕见,故它主要在回滚时工作。 我还添加了用于检测触及通道边界的箭头。

//--- main cycle
  for(i=start+3; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    MAUpBuffer[i]=extMAUpData[i]+extATRData[i]*DistanceCoefficient;
    MADownBuffer[i]=extMADownData[i]-extATRData[i]*DistanceCoefficient;

    if(
      (high[i-1]>=MAUpBuffer[i-1]
       && close[i-1]<MAUpBuffer[i-1])
      ||(
        close[i-2]>MAUpBuffer[i-2]
        && close[i-1]<MAUpBuffer[i-1]
      )
    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/5;
     }
    else
      if(
        (low[i-1]<=MADownBuffer[i-1]
         && close[i-1]>MADownBuffer[i-1])
        ||(
          close[i-2]<MADownBuffer[i-2]
          &&close[i-1]>MADownBuffer[i-1]
        )
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/5;
       }
   }// main cycle

此处的 DistanceCoefficient 是一个指标参数,允许我们根据特定条件调整指标,改变到通道边界的距离。 该参数可以采用任何分数值。 然而,设置的数值超过 2 没有多大意义,因为在这种情况下箭头几乎完全消失,这意味着不会执行任何成交。

ART3x5 通道

图例 14. ATR3x5 通道

当然,该指标可以与此处讲述(或未提到)的任何其它指标一起使用。

在查看图片时,关注价格如何与指标顶部和底部相互作用。 这也许会有帮助。


若干个不同周期的指标

到目前为止,我们已研究过用一条均线来接收入场买卖信号。 然而,许多交易员认为,若是添加另一个或若干个指标,可以大大提高入场的准确性。

故此,我们在创建图表时配合两条周期分别为 5 和 8 的曲线。 这些周期取自斐波那契级数。 其中一个周期描述的是“快速”线,而另一个描述的是“慢速”线。

并行显示两条均线

图例 15. 一张图表上两条均线

除了已经研究过的特征,我们现在能够看到曲线的相对位置及其“同向性”(或发散)。 均线之间的距离也会显现。

每个参数都有可能增强或减弱每条曲线所显示的某些走势属性,并提供独立的入场信号。


相对位置。 均线交叉

如果快速均线位于慢速均线之上,我们很可能见证一个看涨趋势,下一根烛条看涨的概率非常高。 还应参考其它参数,例如信号线坡度斜率,以及其它参数。

如果快速均线低于慢速均线,我们有一个“全域”(当前时间帧)看跌趋势,随后每根烛条看跌的概率都会大幅增加,直到达到峰值...

如果快速均线突破了慢速均线,我们就认可趋势发生了变化。

我们来尝试开发针对均线交叉做出反应的指标。 此外,我们还应考虑到横盘,从而减少假入场。 这可以通过参考快速均线的坡度大小来完成。 在这种情况下,我们可以接收下一段代码来搜索信号(MA2-Breaking):

//--- main cycle
  for(i=start+3+SlopeShift*2; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    if(
      extMAFastData[i-1]<extMASlowData[i-1]
      && extMAFastData[i-2]>=extMASlowData[i-2]
      && MASlope(extMAFastData,i-1)<-SlopeThreshold
      && MASlope(extMASlowData,i-1)<SlopeThreshold/SlowDelimiter
    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/3;
     }
    else
      if(
        extMAFastData[i-1]>extMASlowData[i-1]
        && extMAFastData[i-2]<=extMASlowData[i-2]
        && MASlope(extMAFastData,i-1)>SlopeThreshold
        && MASlope(extMASlowData,i-1)>-SlopeThreshold/SlowDelimiter
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/3;
       }
   } // main cycle

此处的 MASlope 是一个计算均线坡度的函数,其计算方式与坡度部分中提供的示例类似。 它接受所需曲线和柱线索引的数据数组作为参数执行计算。

SlopeTreshold — 快速均线坡度示意图的阈值。 您可能还记得,如果在穿越的瞬间,快速均线的坡度太小,我们很可能是在应对一段横盘。 这段横盘通常会受到大量误报所困扰,最终导致亏损。

SlowDelimiter — 慢速均线坡度阈值分隔符。 有时,当快速均线已经向下倾斜了,我们也许会得到一个非常好的信号,而慢速均线尽管接近反转,但却尚未反转。 换句话说,入场

MASlope(extMASlowData,i-1)>-SlopeThreshold/SlowDelimiter

它含义如下:慢速均线坡度可以有一个小的负数值(向下,尽管稍微向下),等于零,或者是正数值的,但不是急剧的负数值。

如果我们采用指标的“干净”形式,则应分别针对每种金融产品和时间帧来选择阈值和分隔符。 以下是 SlopeTreshold=0.017 和 SlowDelimiter=5 的情况下获得的 USDJPY H1 的结果:

参考坡度的均线交叉信号

图例 16. 参考坡度的均线交叉信号

图像没有曲线,如此箭头就可以看得更清楚。 如果我们选择正确的止盈值(或按级别退出),我们可以通过设置亏损不多的止损级别,几乎能从每个箭头中获利。

下图显示的是同一张图表(放大)。

MA 交叉 (放大)

图例 17. 参考坡度的均线穿越(放大)

您可能还记得,信号零号烛条到达。 不过,分析是往前一个时间段。 所以,为了理解画箭头背后的原因,我们应该看看从绿线到左边的柱线之间的间隔。

为什么右边没有两个箭头? 坡度不超过慢速或快速均线的阈值,则指标认为该段为横盘。 然而,如果我依据这些信号在此区域进行交易,我很可能没有任何理由抱怨,因为若趋势进一步上升,则可能会生成更好的卖出价格。

MA 交叉 — 趋势延续

图例 18. 交叉信号:趋势延续。


结束语

关于这件事我还有一些话要说,但这要放在另一篇文章里。

在本文中,我研究了与均线相关的基本问题,并允许我们跟踪总体价格走势方向。

此外,我还以图形方式展示了指标代码,展示了如何运用主要均线参数制定交易决策。

我已展示了通过组合知名指标的属性,并将其组合到一起来使用,从而改进交易策略的方法。

在下一篇文章中,我希望能揭示我们如何根据移动平均线的数据,和从它衍生出的指标来计算每根烛条的位置。

本文不保证此处包含的信息会为您的交易提供帮助。

愿盈利与您同在!

本文译自 MetaQuotes Software Corp. 撰写的俄文原文
原文地址: https://www.mql5.com/ru/articles/10479

附加的文件 |
jx-Breaking.mq5 (5.56 KB)
h9-Support.mq5 (5.22 KB)
lw-Slope.mq5 (4.66 KB)
ATR3x5.mq5 (7.34 KB)
wr2-Crossing.mq5 (6.5 KB)
最近评论 | 前往讨论 (5)
Verner999
Verner999 | 28 3月 2022 在 21:35

我试着用你的指标MA-Slope-Index-Bin.mq5做实验。我注意到,即使在有明显下降趋势的地区,它产生的正值也比负值多得多。起初我以为问题在于我使用了大的MA值,由于这个原因,MA变成了很羊的,在一个小值的分子和分母上加上 Point()/100,你用的是小值,就开始引入 相当大的扭曲了。试图以这种方式来减少它。

    slopeIndex=(extMAData[i-1]-extMAData[i-1-SlopeShift]+Point()/100*MABars)
               /(extMAData[i-2]-extMAData[i-2-SlopeShift]+Point()/100*MABars);

这并没有帮助--指标继续给出的正值比负值多得多。然后我意识到一个显而易见的问题:用减法除以减法得到的是加法。我必须改变算法中的一些东西,使指标正确。我还不知道怎么做。

Oleh Fedorov
Verner999 引入 相当大的扭曲了。试图以这种方式来减少它。

这并没有帮助--指标继续给出的正值比负值多得多。然后我意识到了一个显而易见的问题:用减法除以减法得到加法。我需要改变算法中的一些东西,使指标正确。到目前为止,我还不明白是怎么回事。

在这种情况下,明显的(对我来说)应用如下:正值只是斜率的急剧增加(在同一方向),负值--方向的急剧改变。

如果你让它,这个指标,对自己的交易有用,你可以,例如,在显示箭头之前,检查之前的斜率和当前的斜率,如果它们重合,不显示箭头,如果它们不同--显示相应颜色的箭头。

由于我喜欢水平,我只是观察价格在急剧倾斜跳跃后的表现,例如,在默里或江恩水平(记住,区别是默里建议将重要的间隔除以8,而江恩建议减半或除以3,取决于其他传入的)。这是我的例子,中枢和纤维也很好...最主要的是--如果我看到水平面的斜率突然变化--我可以假设是反转。

Oleh Fedorov
应用二元斜率指标(+水平)。

我加一张图片来澄清之前的想法 :-)

丁香色的线是极值时间,通过它来建立沙拉水平(我简单地把间隔分成两半,并把两个间隔向上和两个向下(+-100%和+-200%)。

此外,2022年1月28日,出现了坡度急剧变化的信号。我们可以看到,斜率的主要方向是向上的(通过主要斜率指标[底部图表]或MA-box本身)...也就是说,价格已经上升到当天的水平对角线,事实上,已经从对角线上反弹了。价格在MA曲线之上。主要趋势是上升,但从对角线上的反弹表明会有修正。可能的交易选择。

  • 要么在下一根蜡烛的开盘时--下跌,止损在当前蜡烛的最大值,在曲线(MA)或水平(1/2)附近取出。
  • 或者等待曲线(和水平)被触及--然后--以低于24.01.2022(根据我的数据为113.469)的价格涨停。
下一个信号是2022年3月4日。在 "主要 "方向的斜率急剧增加,斜率仍然是向上的,我们可以看到价格已经在1/2-1的范围内很长时间了。同时,收盘价 从未突破1/2的水平。解决办法是在下一根蜡烛的开盘时进行交易。止损--低于1/2,拿下--要么在+1/2,要么不放,退出,比如说,通过拖网(我的最爱之一--通过分形)......
andy961125
andy961125 | 11 5月 2022 在 02:07
你好!能提供一个MA-ATR3*5的MT4版本嘛
Oleh Fedorov
andy961125 #:
你好!能提供一个MA-ATR3*5的MT4版本嘛
拿着。
在一张图表上的多个指标(第 02 部分):首次实验 在一张图表上的多个指标(第 02 部分):首次实验
在前一篇文章“在一张图表上的多个指标”中,我介绍了如何在一张图表上加载多个指标的概念和基本知识。 在本文中,我将提供源代码,并对其进行详解。
让图表更有趣:添加背景 让图表更有趣:添加背景
许多工作站包含一些代表性的图片用以显示用户的一些信息。 这些图片令工作环境更加优美和令人兴奋。 我们来看看如何通过添加背景令图表更有趣。
在一张图表上的多个指标(第 03 部分):为用户开发定义 在一张图表上的多个指标(第 03 部分):为用户开发定义
今天,我们将首次更新指标系统的功能。 在“一张图表上的多个指标”的前一篇文章中,我们研究了允许在图表子窗口中加载多个指标的基本代码。 但其所代表的只是一个更大系统的起点。
DirectX 教程(第一部分):绘制第一个三角形 DirectX 教程(第一部分):绘制第一个三角形
这是一篇关于 DirectX 的介绍性文章,介绍了使用 API 进行操作的细节。 它应有助于理解其组件的初始化顺序。 本文包含一个如何编写 MQL5 脚本的示例,该脚本使用 DirectX 渲染一个三角形。