English Русский Español Deutsch 日本語
preview
您应当知道的 MQL5 向导技术(第 46 部分):Ichimoku

您应当知道的 MQL5 向导技术(第 46 部分):Ichimoku

MetaTrader 5交易系统 |
67 0
Stephen Njuki
Stephen Njuki

概述

Ichimoku Kinko Hyo,常被称为 Ichimoku 云,是一个包容广泛的技术分析系统,设计提供市场趋势的整体视图;支撑和阻力位;以及动量。Ichimoku Kinko Hyo 开发于 1930 年代后期,并在随后的三十年中不断精雕细琢;其日语翻译为“一眼均衡图”、或“一目了然平衡图”,从其名称可知设计重点是提供单一、详尽的市场视角。

该指标作为一个系统,由五条线(或缓冲区)、和一个通常称为 Kumo(日语为云)的阴影区域组成。每个成分缓冲区都旨在捕捉价格行为的特定方面,它们是 Tenkan-sen(又名转折线,当作短期动量指标);Kijun-sen(又名基线,它充当中期趋势指标);Senkou Span A(或领先跨度 A);及 Senkou Span B(或领先跨度 B)共同形成一片云,预测未来的支撑和阻力位;最后,Chikou Span(或滞后跨度)绘制收盘价曲线 ,向后顺移,依据历史价格行为,提供相对于当前价位的展望。

以下是这 5 个缓冲区中每一种的公式:

其中:

  • H 9 是过去 9 个时期的最高价高点。
  • L 9 是过去 9 个时期的最低价低点。

通过求解过去 9 个时期的最高价高点和最低价低点的均值来反映短期趋势。

其中:

  • H 26 是过去 26 个时期的最高价高点。
  • L 26 是过去 26 个时期的最低价低点。

这代表的是中期趋势,使用 26 个时期的范围来平滑价格波动。

其中:

  • Tenkan-sen 是上述定义的转折线。
  • Kijun-sen 是上述定义的基线。

其中,该缓冲区计算为 Tenkan-sen 和 Kijun-sen 的平均值,并预测未来 26 个时期。

其中:

  • H 52 是过去 52 个时期的最高价高点。
  • L 52 是过去 52 个时期的最低价低点。

其中,这是 52 个周期内最高价高点和最低价低点的平均值,预计未来 52 个周期。这样就形成了云的上边界或下边界,具体取决于其相对于 Span A 的位置。

其中:

  • 收盘价 t−26 是当前收盘价向后顺移 26 个周期。

其中,通过绘制当前日期之后 26 个周期的当天收盘价来提供历史背景。

Kumo(或云)由 Senkou Span A 和 Senkou Span B 之间的区域形成,它是未来的支撑和阻力区域。通常,较厚的云层表示较强的支撑/阻力,而较薄的云层意味着它可能很容易被打破,其示意较弱的水平。云的颜色是 Ichimoku 的另一个关键特征,因为典型情况下,当 Senkou Span A 高于 Senkou Span B 时,云代表看涨(常为绿色阴影),而当 Senkou Span B 高于 Senkou Span A 时,云代表看跌(且常为红色阴影)。

现在我们遍历 Ichimoku 的各种形态,就如我们在这些文章中搭配其它指标所为。我们将遍历 Ichimoku 的 11 种形态,正如我们在过去的文章中所为,我们从每次考察一个形态开始,我们使用整数型输入 'Signal_Ichimoku_PatternsUsed' 来定义智能系统考察哪一组形态、及哪些形态被忽略。该整数型输入最初用来每次仅选择 11 种形态中之一,而一旦所有形态都经过独立测试,我们就能优化这些形态的理想组合,从而为我们提供最理想的结果。

鉴于我们有 11 个形态,故整数型输入不应当分配大于 211 减去 1(2047)的数值,因为该整数能够捕获所有可能的形态组合。我们正依据 GBPJPY 货币对 2022 年 H1 时间帧进行测试。此处提供的所有测试运行结果,仅是依据 GBPJPY 的 2022 年短期测试窗口优化智能系统获得的一些寻常结果。没有进行前向或交叉验证,所附的代码旨在利用 MQL5 向导汇编智能交易系统,此处此处为新读者提供了指南。


Tenkan-Sen 和 Kijun-Sen 交叉

这可说是 Ichimoku 形态中最常见、或最流行的信号。本质上,它几乎转化为一个简单的移动平均线交叉(即快线和慢线),且其平均周期输入参数的随机性,许多人发现它和该指标通常对于不断变化的市场条件不够敏感。无论如何,看涨信号是当 Tenkan-sen 上穿 Kijun-sen 时,看跌形态是相反的,即 Tenkan-sen 下穿 Kijun-sen。我们的 MQL5 实现如下:

//+------------------------------------------------------------------+
//| Check for Pattern 0.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_0(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Tankensen(X()+1) < Kijunsen(X()+1) && Tankensen(X()) > Kijunsen(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Tankensen(X()+1) > Kijunsen(X()+1) && Tankensen(X()) < Kijunsen(X()))
   {  return(true);
   }
   return(false);
}

依据 GBPJPY 的 2022 年 H1 时间帧测试运行为我们展示了以下结果:

r0

然而,这种交叉很容易受到市场噪音的影响,即交叉可能对微小波动反应强烈,尤其是在较低的时间帧内。这种过度敏感可能会导致假信号,即趋势没有显著变化的情况下发生交叉,导致在波动、或盘整的市场中持仓体验频繁拉扯。

这意味着形态-0 在区间波动市场中的有效性有限,因为交叉方法最适合趋势市场;在区间波动、或横盘整理的市场中,频繁的交叉可能会误导交易者,导致进出缺乏方向、或一致性。因此,如果没有明确的趋势,Tenkan-sen 和 Kijun-sen 之间的交叉或许会导致交易成本增加,并因无产出交易而造成潜在损失。


价格对比 Kijun-Sen(基线)信号

我们的形态-1 与形态-0 非常相似,如果我们将上面的形态-0 视为纯粹的移动平均线交叉,那么它也如价格和移动平均线的交叉。Kijun-sen 的周期比 Tenkan-sen 稍长,故其录得的任何价格交叉往往都很重要。对于看涨信号价格交叉,它从下方收于其上方,对于看跌信号,它从上方下穿收盘价。我们的 MQL5 实现如下:

//+------------------------------------------------------------------+
//| Check for Pattern 1.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_1(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Close(X()+1) < Kijunsen(X()+1) && Close(X()) > Kijunsen(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Close(X()+1) > Kijunsen(X()+1) && Close(X()) < Kijunsen(X()))
   {  return(true);
   }
   return(false);
}

运行短暂优化后,配以上述类似的设置运行测试,并将所用形态的输入赋值 2,为我们给出以下结果:

r1

尽管上面的测试运行展示出形态-1 有一些希望,但它存在一些交易者应当注意的陷阱。首先,Kijun-sen 反映的是 26 个周期的平均价格,但它未提供任何关于趋势动量、或趋势强度的指导。这通常意味着仅依赖该信号的交易者或许会错过动量减弱的指示,如果趋势恢复、或进入盘整,这可能会导致持仓亏损。

甚至,这种形态未提供有关离场信号、或更重要价格目标的线索。尽管 Kijun-sen 在标示主流趋势方面可以足智多谋,但它不仅在定义止盈、甚或止损水平方面无济于事,这对于选择仅依赖这种形态的交易者来说是一个问题。


Kumo(云)突破

就像我们研究形态-0 交叉一样,Kumo 云是 Ichimoku 中的主要指标和形态来源。它横跨两个 Senkou 跨度,其重要性主要源于它与支撑和阻力的关联。此处看涨信号被定义为当价格穿透、并能收于云层上方时的突破。看跌信号则是相反,即当价格跌下云层、且收盘后仍保持。我们在代码中展示如下:

//+------------------------------------------------------------------+
//| Check for Pattern 2.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_2(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && 
      ((Close(X()+1) < SenkouSpanA(X()+1) && Close(X()) > SenkouSpanA(X()) && SenkouSpanA(X()) > SenkouSpanB(X()))
      ||
      (Close(X()+1) < SenkouSpanB(X()+1) && Close(X()) > SenkouSpanB(X()) && SenkouSpanB(X()) > SenkouSpanA(X())))
      )
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL &&
      ((Close(X()+1) > SenkouSpanA(X()+1) && Close(X()) < SenkouSpanA(X()) && SenkouSpanA(X()) < SenkouSpanB(X()))
      ||
      (Close(X()+1) > SenkouSpanB(X()+1) && Close(X()) < SenkouSpanB(X()) && SenkouSpanB(X()) < SenkouSpanA(X())))
      )
   {  return(true);
   }
   return(false);
}

使用与上述类似的设置进行测试,但重点关注形态-2,在形态输入中赋值 4,为我们给出以下结果:

r2

虽然形态-2 也提供了有趣的结果报告,如我们上面所见,但它对时间帧非常敏感。这一点尤为重要,因为在较短的时间帧内,突破更容易受到市场噪音、和时态价格波动的影响;这可能导致频繁的假信号。相较之,很不幸,在较大的时间帧内,突破信号往往滞后,并最终错过理想的入场点。

此外,形态-2 需要依赖趋势的上下文来确认。这是因为对于可靠的 Kumo 突破,它应当匹配其它 Ichimoku 分量(如滞后线、以及基线和转折线的相对位置)所示意的更广泛趋势。这导致了另一个弱点,即它或许会波及所有指标,但仍然值得一提。忽视市场基本面。仅依赖 Kumo 突破的交易者可能会错过关键的市场境况。


Kumo(云)扭曲

云扭曲是我们的形态-3,它源于云变色、或 Senkou 跨度 A 和 Senkou 跨度 B 交叉所在。这两个也是事实上的移动平均线,故可视其为另一种交叉,尽管具有滞后效应。因此,看涨信号是当 Senkou Span A(短期缓冲区)从下方穿过 Senkou Span B,并收于其上方时。已知这也当作看涨 Kumo 扭转,即预示潜在上行趋势的信号。同样,看跌信号是当它从上方下穿到收盘价下方时,这也称为看跌 Kumo 扭转。这就是我们如何在代码中实现它:

//+------------------------------------------------------------------+
//| Check for Pattern 3.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_3(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && SenkouSpanA(X()+1) < SenkouSpanB(X()+1) && SenkouSpanA(X()) > SenkouSpanB(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && SenkouSpanA(X()+1) > SenkouSpanB(X()+1) && SenkouSpanA(X()) < SenkouSpanB(X()))
   {  return(true);
   }
   return(false);
}

测试如上依据 GBPJPY 的 2022 全年 H1 时间帧,为我们呈现以下结果:

r3

不过,形态-3 亦有其陷阱,其中最主要的是对云层厚度的误解。对于众多交易者来说,云扭转往往与云层厚度有关,云层厚度意味着趋势更强。不过,对这种厚度的评估需要经验和相应的市场背景,因为云扭转往往很容易再逆转,尤其应对支离破碎的市场之时。

与我们如上所见,该形态几乎未提供趋势强度、或动量的指示。这令其很难判定逆转是否具有持久力。这又预埋了疲软或衰落交易的风险。再次强调根据更广泛的 Ichimoku 背景的要点,因为理想情况下,Kumo 扭转应当得到其它 Ichimoku 元素的确认,诸如 Tenkan-sen 和 Kijun-sen 交叉、或是 Chikou Span。在没有这些确认的情况下,仅依赖扭转可能会导致假信号。不考虑完整 Ichimoku 系统的交易者或许会误解扭转,这就是为什么我们不是单独展示这些形态,而是作为一个整体呈现,交易者可从中选择最适合他们设置的形态。


Chikou Span(滞后线)确认

Chikou Span 是一个滞后缓冲区,虽然手工交易中在图表上使用它可能很简单,但在代码中读取它时,需要确保运用其正确的索引偏移量。如果 Chikou Span 突破价格走势,我们将得到看涨信号,其确认看涨势头,为做多造势。在折面另一侧,如果 Chikou Span 跌破价格走势,则是看跌信号,从而表明看跌势头,及做空信号的确认。我们按如下方式编码:

//+------------------------------------------------------------------+
//| Check for Pattern 4.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_4(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && ChikouSpan(X()+1) <= Tankensen(X()+1) && ChikouSpan(X()) > Tankensen(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && ChikouSpan(X()+1) >= Tankensen(X()+1) && ChikouSpan(X()) < Tankensen(X()))
   {  return(true);
   }
   return(false);
}

按其它形态相同的设置进行测试,我们得到以下结果:

r4

潜在的过度依赖而忽略其它关键信号是形态-4 的一个陷阱。与上述其它形态一样,这值得再次提及,但正如形态标题所暗示的那样,Chikou span 理想情况下是一个确认信号,故与 Kumo 突破、或 Tenkan-sen 和 Kijun-sen 交叉等配对应当更合适。仅仅关注它可能会导致对市场动态的片面理解。这也倚靠曾提到的其它弱点,这些弱点在基本面驱动的市场中相关性有限,以及在研究更广泛的市场背景和因素时有失败的风险。


Kumo 作为支撑和阻力

除了充当突破阈值外,Kumo 还可以作为一种动态支撑或阻力的形式,其能定义为与上面形态-2 分离的形态,我们将其标记为形态-5。因此,交易策略将以看涨反弹为特色,如果价格回落至云层、但未能突破云层,则形成看涨反弹,云层充当支撑,可将其作为多头交易的入场点。如果价格反弹到云层、但未能突破云层,则看跌反弹将出现,而云层充当阻力,预示着潜在的做空机会。形态-5 的编码如下:

//+------------------------------------------------------------------+
//| Check for Pattern 5.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_5(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && 
      ((Close(X()+2) > SenkouSpanA(X()+2) && Close(X()+1) < SenkouSpanA(X()+1) && Close(X()) > SenkouSpanA(X()) && SenkouSpanA(X()) > SenkouSpanB(X()))
      ||
      (Close(X()+2) > SenkouSpanA(X()+2) && Close(X()+1) < SenkouSpanB(X()+1) && Close(X()) > SenkouSpanB(X()) && SenkouSpanB(X()) > SenkouSpanA(X())))
      )
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL &&
      ((Close(X()+2) < SenkouSpanA(X()+2) && Close(X()+1) > SenkouSpanA(X()+1) && Close(X()) < SenkouSpanA(X()) && SenkouSpanA(X()) < SenkouSpanB(X()))
      ||
      (Close(X()+2) < SenkouSpanA(X()+2) && Close(X()+1) > SenkouSpanB(X()+1) && Close(X()) < SenkouSpanB(X()) && SenkouSpanB(X()) < SenkouSpanA(X())))
      )
   {  return(true);
   }
   return(false);
}

测试运行时,所用形态的输入赋值 32,这确保我们只测试该形态,而无其它 10 个形态,这为我们给出以下结果:

r5

形态-5 中,Kumo 充当支撑/阻力,在识别趋势逆转时遭遇延迟。这是因为 Kumo 计算(26 个正向移动周期)而滞后于当前价格走势,与其它实时支撑/阻力指标相比,这会导致信号延迟。这些延迟可能导致交易者入场太晚,从而降低其作为支撑/阻力指标的有效性,尤其是在快节奏的市场中。

此外,形态-5 在精确识别其水平方面也带来了挑战。与传统的支撑线和阻力线不同,Kumo 云是一个区域、而非特定的价位。这稍微阻碍了识别精确入场和离场点的过程。这种模糊性可能会令交易管理变得困难,因为在云中设置准确的止损或止盈价为可能颇具挑战性。

最后,这种形态在趋势强劲的市场中可能不可靠,因为价格很容易突破 Kumo,毫不犹豫。这令它作为支撑或阻力指标的可靠性降低,而更多的是价格缓冲。如果交易者仅依赖它来制定交易决策,这可能会导致错失机会。


强交叉(Kumo 上穿或下穿)

我们的形态-6 通过添加一个过滤器来重新审视 Ichimoku 最重要的锚定形态-0,该过滤器参考了 Kumo 与 Tenkan-sen 和 Kijun-sen 交叉点的相对位置。这两个随时可以交叉;然而,有论调认为,将每个交叉与特定的 Kumo 定位配对会产生更强的信号。如果看涨的 Tenkan-sen/Kijun-sen 交叉发生在云层上方,则标示看涨信号,正如曾强调的那样,这代表强烈的买入信号。如果看跌的 Tenkan-sen/Kijun-sen 交叉发生在云下方,则代表强烈的看跌信号。该信号意味着,由于市场的犹豫不决,发生在云内部的任何交叉都不那么强烈。我们按如下方式编写该形态:

//+------------------------------------------------------------------+
//| Check for Pattern 6.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_6(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY  && Tankensen(X()+1) < Kijunsen(X()+1) && Tankensen(X()) > Kijunsen(X()) &&
      ((Tankensen(X()) > SenkouSpanA(X()) && SenkouSpanA(X()) > SenkouSpanB(X()))
      ||
      (Tankensen(X()) > SenkouSpanB(X()) && SenkouSpanB(X()) > SenkouSpanA(X())))
      )
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Tankensen(X()+1) > Kijunsen(X()+1) && Tankensen(X()) < Kijunsen(X()) &&
      ((Tankensen(X()) < SenkouSpanA(X()) && SenkouSpanA(X()) < SenkouSpanB(X()))
      ||
      (Tankensen(X()) < SenkouSpanB(X()) && SenkouSpanB(X()) < SenkouSpanA(X())))
      )
   {  return(true);
   }
   return(false);
}

测试采用设置类似于上述策略测试器,并形态输入参数赋值 64,为我们给出以下结果:

r6

尽管我们上面有形态-6 报告,但 Kumo 交叉往往滞后很多。Kumo上穿或下穿的强烈交叉往往发生在趋势发生重大变化之后,这可能会导致入场或离场的潜在延迟。因此,仅依赖 Kumo 交叉入场的交易者可能会入场太晚,从而错过趋势中初期最可盈利的部分。

在波动的市场中也容易出现逆转。这是因为在高度波动、或消息驱动的市场中,强交叉会迅速逆转方向,从而困住仅根据该交叉入场的交易者。因此,这些突发的逆转可能会导致重大损失,尤其是如果交易者未配合其它指标确认趋势。

最后,这可当作 Ichimoku 的主题,区间弹跳市场中频繁价格走势拉扯,必然会产生很多虚假信号,在于价格未明确方向的情况下,会围绕 Kumo 振荡。


由云层厚度衡量趋势强度

Ichimoku 内可用于宣示买卖决策的另一种形态是云层厚度。其背后的前提是,较薄的云层表示较弱的支撑或阻力,这可能导致突破或逆转,而较厚的云层表示强大的支撑或阻力,能作为当前趋势延续的信号。为了应用这一点,我们将看涨信号定义为大约 26 根柱线的看涨趋势,该趋势也以云层厚度的增加为标识。相较之,看跌信号是看跌趋势覆盖类似跨度区间,其标识是该区间的云层增厚。我们的 MQL5 实现如下:

//+------------------------------------------------------------------+
//| Check for Pattern 7.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_7(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Close(X()) > Close(X()+26) && fabs(SenkouSpanB(X()) - SenkouSpanA(X())) > fabs(SenkouSpanB(X()+26) - SenkouSpanA(X()+26)))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Close(X()) < Close(X()+26) && fabs(SenkouSpanB(X()) - SenkouSpanA(X())) > fabs(SenkouSpanB(X()+26) - SenkouSpanA(X()+26)))
   {  return(true);
   }
   return(false);
}

将所用形态的输入赋值 128,测试运行为我们给出以下结果:

r7

在低波动性、或横盘市场中,云层厚度容易受到虚假信号的影响。这是因为尽管普遍存在疲软趋势,但因历史价格走势,云层或许仍然很厚。因此,这可能会导致虚假信号,因为云层厚度或许并不总是与趋势强度相关。对此的误解势必会导致不必要的交易。

还有,在趋势逆反期间延迟退出交易的风险尤盛,因其滞后性质,云层厚度可能会给人一种虚假的安全感。过度关注云层厚度可能会掩盖早期预警信号,特别是如果其它 Ichimoku 信号,像是 Chikou Span 走向与趋势相反,表明潜在的逆转。

最后,定义云层“厚”与“薄”的主观性,意味着交易者需要独立找到一种合适的方法来衡量这一点,即以自己良好的历史测试结果和高品质数据为后盾,且没必要依赖同行定义。这是关键,因为对云层厚度有不同定义的交易者可能会以相互矛盾的方式解释相同的市场状况,从而导致交易信号缺乏清晰度。


价格从 Kijun-sen 反弹(基线)

形态-8 侧重于 Kijun-sen,即 26 周期平均值。超过 26 个周期,而非像 Tenkan-sen 那样的 9 个周期,会令任何涉及它的价格行为变得更加明显,因为给定的平均周期较长,它并不会经常发生。我们通过寻找反弹的价格走势来获得信号。看涨反弹是指价格从上方触及 Kijun-sen 并向上反弹,从而表明趋势仍然完好无损,呈现出潜在的做多入场点。另一方面,看跌反弹是指价格从下方触及 Kijun-sen 并向下反弹,表明下跌趋势延续,及潜在的做空机会。我们在自定义信号类中实现了这一点

//+------------------------------------------------------------------+
//| Check for Pattern 8.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_8(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Close(X()+2) >= Kijunsen(X()+1) && Close(X()+1) <= Kijunsen(X()+1) && Close(X()) > Kijunsen(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Close(X()+2) <= Kijunsen(X()+1) && Close(X()+1) >= Kijunsen(X()+1) && Close(X()) < Kijunsen(X()))
   {  return(true);
   }
   return(false);
}

如果我们将所用形态输入参数赋值 256, 对该特定形态运行测试,我们会得到以下结果:

r8

尽管上述形态-8 的报告略有希望,但交易者需要警惕其在突破时,在强劲趋势中的固有不足,在于这不会产生预期的反弹。此外,作为形态信号,它缺乏价格反弹的强度会构成主要趋势的确认,这就是为什么其与上面的形态-0 等交叉形态之一配对是个好主意。最后,依赖时间帧的上下文是 Ichimoku 形态的另一个常见主题,故交易者应确保不要从较小的时间帧大量读取这种形态,在于较大时间帧信号将具有更大的权重。


价格和 Chikou Span 认同

形态-9 是我们的第 10个形态,参考了价格走势和滞后的 Chikou Span。Chikou Span 滞后收盘价,除了原本价格之外,还需要另一个当前缓冲,以便产生有意义的信号。因此,我们取 Tenkan-sen 缓冲区来代表当前价格动作,并寻找它与 Chikou Span 的认同时刻,以便读取信号。看涨信号是价格和 Chikou Span 都高于云层,在于这被认为加强看涨趋势信号。相较之,如果价格和 Chikou Span 都低于云层,则是确认看跌信号。我们的 MQL5 实现如下:

//+------------------------------------------------------------------+
//| Check for Pattern 9.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_9(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY  && 
      ((Close(X()) > SenkouSpanA(X()) && ChikouSpan(X()) > SenkouSpanA(X()) && SenkouSpanA(X()) > SenkouSpanB(X()))
      ||
      (Close(X()) > SenkouSpanB(X()) && ChikouSpan(X()) > SenkouSpanB(X()) && SenkouSpanB(X()) > SenkouSpanA(X())))
      )
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL &&  
      ((Close(X()) < SenkouSpanA(X()) && ChikouSpan(X()) < SenkouSpanA(X()) && SenkouSpanA(X()) < SenkouSpanB(X()))
      ||
      (Close(X()) < SenkouSpanB(X()) && ChikouSpan(X()) < SenkouSpanB(X()) && SenkouSpanB(X()) < SenkouSpanA(X())))
      )
   {  return(true);
   }
   return(false);
}

据一些优化输入进行测试,且形态输入参数赋值 512,为我们给出以下报告:

r9

尽管上面我们的结果很乐观,但交易者需要警惕形态-9 在不同时间帧内的不一致,在运用该形态时不要忽视市场背景,以及趋势逆转的脆弱性。


基于 Tenkan-sen 和 Kijun-sen 的趋势再入

我们的第 11个形态-10 结合了我们在形态-0 中看到的交叉,作为滞后,以及 tenkan-sen 线的价格行为测试。我们的 MQL5 实现如下:

//+------------------------------------------------------------------+
//| Check for Pattern 10.                                             |
//+------------------------------------------------------------------+
bool CSignalIchimoku::IsPattern_10(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Tankensen(X()+3) < Kijunsen(X()+3) && Tankensen(X()+2) > Kijunsen(X()+2) && Tankensen(X()+1) >= Close(X()+1) && Tankensen(X()) < Close(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && Tankensen(X()+3) > Kijunsen(X()+3) && Tankensen(X()+2) < Kijunsen(X()+2) && Tankensen(X()+1) <= Close(X()+1) && Tankensen(X()) > Close(X()))
   {  return(true);
   }
   return(false);
}

交易策略是,在看涨 Tenkan-sen/Kijun-sen 交叉后,价格可能会在下沿重新测试 Kijun-sen,然后反弹,并恢复上涨,为买家提供重新进入点。类似地,在 Tenkan-sen 低于 Kijun-sen 翻折交叉后,价格或许会从下方重新测试 Kijun-sen,触其并反弹,然后恢复下跌。我们通过形态输入参数赋值 1024 来测试该形态,这是有利优化运行之一,我们的报告如下:

r10

形态-10 具有潜力,但交易者需要留意横盘市场中的虚假信号,在执行交易时适当参考更广泛的市场和背景,并避免过度交易的风险,因为这种形态必然会产生许多弹跳信号。


组合所有形态

相对形态权重是根据自己对其相对重要性的理解来分配,这应当来自经验,如此跨越多个形态进行交易当然更好。当运用所有形态权重时,优化单个形态权重的危险在于它们往往会把彼此的交易平仓,故基于所分配权重推断每个形态权重的性能并不容易。无论如何,下面呈现的结果只是为了概括多个信号组合,与仅用单一形态所获性能的差异。

R11

C11


结束语

总之,虽然 Ichimoku Kinko Hyo 通过其多方面的组件和多样化的形态提供了全面的概览,但其实际应用仍然微妙,需要对市场动态有深入的了解。使用 Ichimoku 云的交易者必须警惕其局限性,包括潜在的滞后指标、对市场噪音的敏感性、以及依赖额外的确认信号,以避免误报。

甚至,该系统的多样化形态强调了将 Ichimoku 中的多个元素与互补分析技术相结合的必要性,从而提高决策准确性,并最大限度地降低风险。

如前所述,没有单一形态可确保成功;故此,稳健的方法涉及利用与更广泛的市场背景和基本面保持一致的形态组合。如此这般,交易者能更好地利用 Ichimoku Kinko Hyo 的力量,作为交易武器库中的平衡工具,战略性地驾驭市场趋势,从而达成明智、且严格的交易策略。

本文由MetaQuotes Ltd译自英文
原文地址: https://www.mql5.com/en/articles/16278

附加的文件 |
SignalWZ_46.mqh (23 KB)
wz_46.mq5 (7.99 KB)
股票交易中的非线性回归模型 股票交易中的非线性回归模型
股票交易中的非线性回归模型:能否预测金融市场?让我们考虑创建一个用于预测欧元兑美元(EURUSD)汇率的模型,并基于此模型制作两个交易机器人——分别使用Python和MQL5语言。
价格行为分析工具箱开发(第三部分):分析大师 —EA 价格行为分析工具箱开发(第三部分):分析大师 —EA
从一个简单的交易脚本升级到一个功能完备的智能交易系统(EA),可以极大地提升您的交易体验。想象一下,拥有一个能够自动监控您的图表、在后台执行关键计算,并每隔两小时提供定期更新的系统。这款EA将配备分析关键指标的功能,而这些指标对于做出明智的交易决策至关重要,从而确保您能获取最新信息,以有效地调整您的交易策略。
新手在交易中的10个基本错误 新手在交易中的10个基本错误
新手在交易中会犯的10个基本错误: 在市场刚开始时交易, 获利时不适当地仓促, 在损失的时候追加投资, 从最好的仓位开始平仓, 翻本心理, 最优越的仓位, 用永远买进的规则进行交易, 在第一天就平掉获利的仓位,当发出建一个相反的仓位警示时平仓, 犹豫。
从零开始在MQL5中实现移动平均线:简单明了 从零开始在MQL5中实现移动平均线:简单明了
我们将通过简单的示例,探究移动平均线的计算原理,同时了解优化指标计算(包括移动平均线计算)的方法。