English Русский Español Deutsch 日本語
preview
您应当知道的 MQL5 向导技术(第 53 部分):市场促进指数

您应当知道的 MQL5 向导技术(第 53 部分):市场促进指数

MetaTrader 5交易 |
502 5
Stephen Njuki
Stephen Njuki

概述

本文意在机器学习给定的序列,即在之前片段里已编排好的;不过,我坚持使用交易指标,因为下一个机器学习片段的素材还没准备好。希望很快会就绪。 

市场促进指数(MFI)反映了市场在设定时间帧内造成价格变动的能力。大概是为了更好地设定阶段,对比我们在上一篇文章中涵盖的另一个比尔·威廉姆斯指标 — 动量震荡指标(AO),它或许更实用。如果我们从关注点/目的出发,AO 通过比较 34-周期和 5-周期中位价格均值来追踪动量,主张更大量级的变化代表巨大的动量转移,反之亦然。另一方面,MFI 侧重于价格走势相对于成交量的效率,即搜寻以下问题的答案:如果交易量的量值为 x,价格将如何与之响应;如若量值为 y 那又如何。

AO 利用零轴上下关联来解释游戏中的动量类型。事实上,迄今为止所有涵盖的比尔·威廉姆斯指标均依赖零轴,不过 MFI 并非如此。它生成的绝对值基于价格区间和成交量,其需要直接比较 MFI 的变化。用例也略有不同,因为如前所述,MFI 适合理解市场效率与成交量动态,尤其是与其它指标结合、并寻求突破确认之时。而另一方面 AO 则非常适合趋势跟随策略,因为它有助于精准定位分形、或动量的转移。


其中:

  • High:选定时间周期的最高价格。
  • Low:选定时间周期内的最低价格。
  • Volume:该周期间的总交易量。

而 MFI 本身提供的指标值,其用途和意义源于追踪其在不同市场/波动条件下的变化。作为一个仅有正数值的直方图振荡器,它提供了许多值得一提的关键颜色。 

绿色代表:

蓝色:

棕色:

还有粉色:

我们在 MQL5 中确定或设定颜色如下:

   color             Color(int ind)
   {  //
      return(
               (Volume(ind) > Volume(ind + 1) && MFI(ind) > MFI(ind + 1)) ? clrGreen :
               ((Volume(ind) < Volume(ind + 1) && MFI(ind) < MFI(ind + 1)) ? clrBrown :
                ((Volume(ind) < Volume(ind + 1) && MFI(ind) > MFI(ind + 1)) ? clrBlue :
                 ((Volume(ind) > Volume(ind + 1) && MFI(ind) < MFI(ind + 1)) ? clrPink : clrNONE
                 ))));
   }

在判定成交量时,我们依赖的是即刻报价量,因为真实/合约成交量是难以获知的(尤其是在外汇市场)。如果交易证券,且这些信息可用,那么它应被替代。


即刻报价量与真实成交量

即刻报价量最简单的定义,其与 MFI 相关的是,在涵盖设定时间帧内发生的价格变动次数。这很简单,因为通常即刻报价代表的不仅仅是价格变化。它们往往包括所交易证券合约信息的任何变动,其中涉及掉期利率、止损价位、等等。而在外汇交易中,由于外汇市场的去中心化特性,许多经纪商无法获得真实成交量数据,故即刻报价量成为最佳替代。

实际成交量,在另一方面代表设定时间帧内实际交易的合约数量或手数,这在中心化的股票和期货市场中很常见,但在外汇中较为罕见。研究表明,即刻报价量与实际交易量之间存在强相关性,故在本文里我们用即刻报价量代表,与理想值相差不远。

此外,在系统开发中采用特定经纪商的即刻报价量,可令智能系统能兼容大多数经纪商,因大多数经纪商平台即刻报价量都可访问,若您已选定并签约了经纪商,这样做不会像实际交易量那样显著影响经纪商之间性能。其与市场活动的强正相关性、以及低使用成本,也是采用即刻报价量的另一个主要优势。

它亦有局限性,这也如意料。其中首位是对价格变动、和证券信息变化的过度参照。如果某证券的价格在短时间内快速在任意两个价格之间振荡,每次这样的振荡都算作一次即刻报价,并因此也算一个交易量单位,尽管并未反映出实际价格。计次的论调是,它追踪了市场参与者的规模。然而,如果交易者 x 下了一笔很大交易量的大单,且价格变动跨越了若干点数,而该价格变化只会被记录为一次即刻报价。 

进而,尽管跨大多数经纪商平台,都广泛支持即刻报价访问,但因流动性提供者不同,同一时刻记录的数值会因经纪商而异,原则上需要在部署前实测目标经纪商的数据。此外,在低波动率市场、或平静市场中,微小的价格变动可能导致误导性的即刻报价量激增。

总之,尤其是在中心化市场交易股票或证券时,实际成交量比即刻报价量更优,因为它更好地捕捉市场参与度,也意味着它追踪如背离等关键形态更佳,且如上论调,更不易受价格波动的噪音影响。如前所述,在外汇中采用实际交易量的挑战在于其有限的可用性,因为很少有券商能提供,而少数提供的经纪商或许还需要贵宾级账户才能订阅这些交易量数据。而顶级原因在于市场的去中心化性质,所提供的数据在各经纪商之间似乎并不一致。


绝对值的重要性

MFI 还有一个怪癖。它的绝对值并不那么重要。如果参考其它振荡指标,如 RSI 甚至商品通道指数,它们的绝对值是关键阈值,可用于制定关键决策,例如 RSI 突破 30 阈值之时。

MFI 的绝对值并不那么重要。讽刺的是,在较短时间帧内它们数值更大,而在较长时间帧内则小得多!我猜,众多想避免噪音、并始终专注较大时间帧的交易者,能把这当作一条线索,即单靠 MFI 的绝对值并不那么重要。

此处偏重的事情是与相邻柱线的相对重要性;而非它们的数值。


绿色信号

我们的第一个形态是基本的绿色信号,我们看看把绿色直方图作为入场信号。正如你会注意到的,MFI需要与价格走势或其他指标配合,才能推断出多头或看跌的特定趋势。

故此,对于看涨信号,我们需要绿色直方图,如上所述,这意味着价格动作与成交量呈正相关,同时收盘价高于盛行移动平均线。我们正用的指标取 8-周期,未优化该值,但可由读者自行决定调整。该形态的 MQL5 实现如下:

//+------------------------------------------------------------------+
//| Check for Pattern 0.                                             |
//+------------------------------------------------------------------+
bool CSignalMFI::IsPattern_0(ENUM_POSITION_TYPE T)
{  if(Color(X()) == clrGreen)
   {  if(T == POSITION_TYPE_BUY && Close(X()) > MA(X()))
      {  return(true);
      }
      else if(T == POSITION_TYPE_SELL && Close(X()) < MA(X()))
      {  return(true);
      }
   }
   return(false);
}

该形态标签为0,作为第一个,正如我们在本系列中一贯所为,只需将输入参数 “Patterns Used Bitmap” 赋值为 1 即可测试。如果我们如此行事,并据 EUR JPY 货币对的 2023 年 12-分钟时间帧运行优化,我们得到以下较好输入设置的测试结果:

r0

由于我们正在测试由向导基于自定义信号类代码汇编的智能系统,典型情况下我们会优化开仓和平仓阈值、入场价格差值、挂单的超期时间,当然还有测试/选定形态的阈值。阈值范围从 0 到 100。对于新读者,这里这里有教您如何使用文章末尾附带的代码,并利用 MQL5 向导汇编智能系统的指导。

因此,我们的形态-0 最适合用于趋势确认,在于它极其适于趋势跟踪策略。


衰落形态

我们的下一个形态-1,指的是 MFI 在价格延续趋势的情况下动量减弱的情况。它通常代表买卖压力的损失,故此用于预测市场逆转或盘整。识别衰落形态的主要途径是通过背离,即在价格持续上涨时,出现粉色 MFI,或粉色 MFI 记号伴随价格下跌(即多头背离)。我们的 MQL5 实现如下:

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

形态-1 同样由价格高点之后趋于横盘来标记。从上面的粉色公式可以所见,粉色形态主要是交易量减少的结果,而这反过来又降低了维持当前趋势的能力。在同一 EUR JPY 货币对的 12-分钟时间帧内测试,得到以下报告。  

r1

本次运行所用输入来自于上述参数优化,包括开仓和平仓阈值、入场价格缺口、挂单到期、和形态阈值。鉴于我们只测试形态-1,所用形态的输入位图采用 2,表示 2 次幂,得出 2。

除了可见的交易量下降外,这一形态的可能原因还包括来自交易者的获利了结,或动量耗尽。其含义也有点多样化。这可能是逆转的早期信号,意味着交易者应着手把当前持仓了结,或反向入场。或者,这也可能是盘整警告,尤其是当未观察到波动或背离情况下。

然而,当伴随价格背离时,这样的衰落作为信号更为可靠,因为此后逆转的概率很高。风险管理涉及采取更紧贴的停止,因为衰落形态会作为仓位调整的警示。还有,与布林带和移动平均线结合,能有助于标记回撤,并进一步确认信号。


假信号

形态-2,以蓝色 MFI 标记,也被称为假信号。“假”是因为图表上的价格动作没有交易量的佐证。它往往挖坑令交易者过早开仓,导致亏损。假突破和逆转盛行,在起伏或非波动市场中这很常见,我们的 MQl5 实现如下:

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

首先,我们会检查 MFI 直方图是否呈蓝色,正如上述分享公式所示,这意味着价格区间增加而交易量降低。一旦确认蓝色,看涨形态是指收盘价低于移动平均线,而看跌形态则是逆反,收盘价位于移动平均线上方。

隐藏在我们实现的中心观点,是当前价格动作并未反映底层趋势,因此修正即将到来。如上述两个形态,我们据 EUR JPY 货币对的 2023 年进行了优化,在 12-分钟时间帧内进行,并从该阶段获得有利的优化设置,结果如下:

r2

故此,形态-2 源于交易量低迷和流动性不足,这往往导致信号不可靠。如是规则,由于新闻事件或市场纵导致的某些交易量激增带来的短期噪声,会导致误导性的 MFI 信号。此外,在实例中,假形态仅出现在主要趋势的回调修正时,它可作为强劲趋势的延续信号。仅依赖 MFI 而没有支撑指标,结果不仅导致大量交易,还会亏损。故此,除了我们搭配移动平均线指标来判定 MFI 形态-2,备选指标像是价格通道也能过滤那些在强趋势中必定频繁出现的假形态。

除了像是布林带这样的通道指标外,还可用带有支撑/阻力位的蜡条形态。一如既往,对于这种低概率形态,等待确认,并用更高时间帧进行分析非常重要。


深蹲形态

我们的形态-3,即深蹲形态,发生在 MFI 大幅拉扯或横盘,尽管价格走势或波动可观。这是市场犹豫不决的迹象,买卖压力几乎持平,导致市场在突破或逆转前“下蹲”。

以棕色标记,我们的 MQL5 实现如下:

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

如我们在以上清单所见,该形态的首要前提是 MFI 的棕色直方图,如概述中公式定义,其标记为下 MFI 和降的交易量。因此,在这一重大不确定背景下,潜在的看涨形态将由首个 MFI 棕色直方图、以及价格从移动平均线下方上穿,且收盘于其上方所暗示。

另一面,看跌形态也需要 MFI 的棕色直方图,但价格将从移动平均线上方下穿,且收盘于下方。与上述形态-0~2 类似,如果我们仅优化该形态,将位图输入赋值为 2的 3 次 幂(8),我们得到以下一些有利输入设置的结果:

r3

形态-3是交易量压缩的结果,往往发生在交易量下降时期,这是市场缺乏信心的标志。深蹲形态典型情况下出现在显著的价格走势之前,在于市场正从盘整转向新趋势。进入深蹲形态的前奏通常是累积和派发阶段,交易者和机构或许在该期间积累或派发持仓,从而在买卖双方之间打造平衡。

这些低波动区间也可能是市场等待催化剂的时期结果,诸如经济数据发布、或地缘政治事件。是故,这些棕色 MFI 区域可被视为过渡区,因为它们典型情况下发生、并帮助定义价格动作中的关键支撑/阻力区。其意义深远;首要它们是即将出现波动的迹象,因为蹲低往往被解读为市场正在盘踞、并准备突破。虽然突破方向本身并不能由下蹲预测,但结合其它指标、甚至价格动作,如我们上述 MQL5 实现所做的,有助于判定接下来的方向。

形态-3 也提供了在近期价格极值附近设置紧贴止损的良好机会,这有助于风险最小化。除了我们的实现外,还可基于它开发出替代入场策略,主要集中在过滤假信号。举例,在价格突破后,等待即刻报价量的上升,实际上依赖两个信号,而不仅仅是价格动作。


背离形态

我们的形态-4 基于背离,以及 MFI 与盛行价格动作之间的差异。既然我们已经确定 MFI 是衡量每单位交易量的价格走势,从而揭示市场如何吸收流动性的能力,在该背景下的走向会引发一些混淆。从我们的角度来看,价格趋势是二元的,意味着我们要么考虑看涨趋势,要么看跌,所以这部分直截了当。

然而,就 MFI 而言,量级的增加在这种实例中不能当作任何目的,因为它要么不会与看涨趋势背离(意味着价格上涨与 MFI 上升并行),要么即使出现看跌走势,其反映也相同。另一方面,如果我们看到 MFI 下降,就很容易看出市场中任何盛行趋势都会标志着与其背离。

如果更低的最低价出现在 MFI 下降阶段,这将标志着强劲空头趋势与温和的 MFI 之间的背离。相较之,如果更高的最高价出现,也标记 MFI 下降背离,因为这指出价格区间缩窄,但价格却仍略微上涨。因此,我们的 MQL5 实现如下:

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

从上面我们的清单,这次我们不寻找任何颜色代码,不过如上论调,我们仅寻找更低的最低价来标记看多信号,以及更高的最高价来标记看跌。正如前面提到的,MFI 在这两种情况下都应该在下降。随着一次优化,如之前的形态,我们从一些有利的优化输入中得到以下报告:

r4

MFI 的交易量成分似乎构成了这一形态的关键。这是因为伴随交易量降低的背离往往会增强逆转信号,纸面上这是合理的论调。然而,在我们的案例中,我们正在探索交易量上升或恒定交易量,但价格区间在 MFI 绝对值中有所下降。而这看似很新颖,我们上面的测试结果很有前景。无论如何,读者仍能修改附带的源代码,试验分别针对更高的最高价、和更低的最低价,调升看跌和看涨配置的 MFI。

往往也建议将该形态-4 与其它比尔·威廉姆斯指标(如动量振荡器或加速器振荡器)搭配使用。此外,当价格结构与支撑/阻力交汇时,该形态的可靠性大大增强。还需重点注意,在强劲的趋势市场中,背离往往导致修正,而非彻底逆转。另一方面,在区间反弹市场中,MFI 背离可能更为可靠。正如上面的论调,像止损设置这样的额外操作,也可依据该形态更好地管控。


突破信号

形态-5 类似于形态-1,前提是我们正在期待突破。因此直截了当,其 MQL5 的实现如下:

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

如上文所示,我们仅在定义这一形态时加入了 MA 交叉的检查。通过与上述形态类似的优化运行中选定输入设置进行测试,呈现出以下报告:

当价格突破关键级别(无论是支撑还是阻力),并伴随 MFI 绿色柱线,往往是有效突破的标记。关键支撑/阻力位的严格定义,在手工交易中往往比自动化策略更不言而喻。这就是为什么严格应用该形态,人们或可选择逐个证券基础上修改。尽管该设置的高概率性质,但仍可能缺乏交易量支撑,存在虚假走位的风险。

“缺乏交易量”源于本文开头讲述的 MFI 公式,其中我们展示了该公式的交易量分量是在分母中,因此 MFI 的上升虽然是一根绿色直方图,但交易量或许并未相应增长。因此,与布林带配对能够迈向更远里程,为可能导致假信号的交易量亏欠突破提供保障。

此外,使用分形或 RSI 可帮助验证动量与突破或交叉是否齐头并进。


趋势延续

我们的形态-6 是形态-5 的延伸,要求连续两根绿色 MFI 柱线,而非上述的仅限一根。这个两根柱线需求涵盖了看涨和看跌的配置。故此,我补充一点,看涨形态是指收盘价突破移动平均线,而看跌形态则是收盘价头朝对立方向。我们的 MQL5 实现如下:

//+------------------------------------------------------------------+
//| Check for Pattern 6.                                             |
//+------------------------------------------------------------------+
bool CSignalMFI::IsPattern_6(ENUM_POSITION_TYPE T)
{  if(Color(X()+1) == clrGreen && Color(X()) == clrGreen)
   {  if(T == POSITION_TYPE_BUY && Close(X()+1) > MA(X()+1) && Close(X()) > MA(X()))
      {  return(true);
      }
      else if(T == POSITION_TYPE_SELL && Close(X()+1) < MA(X()+1) && Close(X()) < MA(X()))
      {  return(true);
      }
   }
   return(false);
}

在上述形态设置下运行优化,给出以下报告:

作为形态-5 的简单扩展,其包含已涵盖的解释,和形态缺点。


区间交易设置

我们的第八个也是最后一个形态,形态-7,与 RSI 配对,寻求在棕色 MFI 盘整阶段投资。我们所称的区间交易是一种针对波动率突破的准备途径,如已在上面形态-3 中的论调。MQL5 实现如下:

//+------------------------------------------------------------------+
//| Check for Pattern 7.                                             |
//+------------------------------------------------------------------+
bool CSignalMFI::IsPattern_7(ENUM_POSITION_TYPE T)
{  if(Color(X()) == clrBrown)
   {  if(T == POSITION_TYPE_BUY && RSI(X()+1) <= 30.0 && RSI(X()) >= 30.0)
      {  return(true);
      }
      else if(T == POSITION_TYPE_SELL && RSI(X()+1) >= 70.0 && RSI(X()) <= 70.0)
      {  return(true);
      }
   }
   return(false);
}

基于一根棕色 MFI 柱线,我们考察如果 RSI 从 30 下方上穿至收盘,则是一个看涨形态。类似地,如果 RSI 从 70 上方下穿至收盘,则可解读为看跌形态。仅用该形态测试,位图输入需要 128(2^7),仅针对该形态运行优化,得到如下报告:

r7

我得出的论调是,交易者最好一次测试一种形态,然后只选择一个(或最多两个)进一步测试或部署。尝试测试所有形态可能会让结果更难向前推进,因为在该过程中,许多单独的形态会相互抵消,故每个形态的真实表现丧失。无论如何,仅处于信息目的,我们尝试优化所有形态的阈值,并发搜寻能最大化测试目标的形态位图。我们这样做了,以下是一些最佳设置的结果:

r_oll

c_oll



结束语

我们在形态基础上验证了另一款比尔·威廉姆斯指标 — 市场促进指数,就如我们曾在本系列文章中的做法。虽然它不是很常用的指标,而且其类型显然需要由其它指标生成信号,但它能为那些寻求跳出框架、摒除常见指标的交易者带来优势。

文件名 描述
SignalWZ_53.mqh 自定义信号类文件
wz_53.mq5 向导汇编的智能系统,头文件显示所用文件

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

附加的文件 |
SignalWZ_53.mqh (17.07 KB)
wz_53.mq5 (7.41 KB)
最近评论 | 前往讨论 (5)
Daniel Opoku
Daniel Opoku | 11 3月 2025 在 13:51

感谢您对 MFI 的见解。我会重新审视和测试。在测试这一策略时,您的风险回报率是多少?

.

Too Chee Ng
Too Chee Ng | 18 3月 2025 在 23:22
好文章。非常感谢。
Too Chee Ng
Too Chee Ng | 11 4月 2025 在 11:22
关于以下内容:
//+------------------------------------------------------------------+
//| 检查模式 4。|
//+------------------------------------------------------------------+
bool CSignalMFI::IsPattern_4(ENUM_POSITION_TYPE T)
{  if(T == POSITION_TYPE_BUY && Low(X()+1) > Low(X()) && MFI(X()+1) > MFI(X()))
   {  return(true);
   }
   else if(T == POSITION_TYPE_SELL && High(X()+1) < High(X()) && MFI(X()+1) > MFI(X()))
   {  return(true);
   }
   return(false);
}
似乎突出显示的
MFI(X()+1) > MFI(X()

是有问题的(尤其是与其他模式的算法相比)!!

其中一个可能是

MFI(X()+1) < MFI(X()
Daniel Opoku
Daniel Opoku | 24 4月 2025 在 08:19
Too Chee Ng #:
关于以下内容:
似乎突出显示的

是有问题的(尤其是与其他模式的算法相比)!..!

其中一个可能是

MFI(X()+1) < MFI(X()

作者想说的是,要使条件有效,在两种情况下 先前的 MFI 都应大于当前的 MFI。

MFI(X()+1) > MFI(X()

在这种情况下,他正在测量

在看跌趋势中,MFI 强度下降,但低点上升

 MFI(X()+1) > MFI(X()  &&  Low(X()+1) > Low(X()) 

在看涨趋势中,MFI 强度下降,但高点增加

 MFI(X()+1) > MFI(X() &&  High(X()+1) < High(X()) 
希望对您有所帮助。
Too Chee Ng
Too Chee Ng | 29 4月 2025 在 09:18
Daniel Opoku #:

作者想说的是,要使条件有效,在两种情况下 以前的 MFI 都应大于现在的 MFI。

在这种情况下,他正在测量

在看跌趋势中,MFI 强度下降,但低点上升

在看涨趋势中,MFI 强度下降,但高点增加

希望对您有所帮助。

谢谢您的解释。

是的,有道理。

精通日志记录(第六部分):数据库日志存储方案 精通日志记录(第六部分):数据库日志存储方案
本文探讨如何利用数据库以结构化、可扩展的方式存储日志。内容涵盖基础概念、核心操作、MQL5中数据库处理器的配置与实现。最后验证结果,并阐述该方法在优化与高效监控方面的优势。
MQL5交易管理面板开发(第九部分):代码组织(4):交易管理面板类 MQL5交易管理面板开发(第九部分):代码组织(4):交易管理面板类
本文探讨我们在New_Admin_Panel智能交易系统(EA)中更新交易管理面板(TradeManagementPanel)。此次更新通过引入内置类组件,显著提升了面板的用户友好性,为交易者提供了直观的交易管理界面。其内置交易按钮,可一键开仓,并提供管理现有持仓与挂单的控制选项。核心亮点是集成的风险管理功能——可直接在界面内设置止损与止盈值。此次更新优化了大型程序的代码组织方式,并简化了对终端中常见繁杂订单管理工具的访问。
智能系统健壮性测试 智能系统健壮性测试
在策略开发中,有许多错综复杂的细节需要考虑,对于初学交易者其中许多都未予重视。如是结果,众多交易者,包括我自己,都不得不历经苦难来学习这些教训。本文基于我观察到的大多数初学交易者在 MQL5 上开发策略时常见的陷阱。它将提供一系列提示、技巧、和示例,帮助辨别不合格的 EA,并以一种易于实现的方式来测试我们自己 EA 的稳健性。目标是教导读者,帮助他们未来购买 EA 时避免遭遇骗局,以及预防他们自己开发策略时的错误。
风险管理(第一部分):建立风险管理类的基础知识 风险管理(第一部分):建立风险管理类的基础知识
在本文中,我们将介绍交易风险管理的基础知识,并学习如何创建第一个函数来计算交易的适当手数以及止损。此外,我们将详细介绍这些功能的工作原理,解释每个步骤。我们的目标是清楚地了解如何在自动交易中应用这些概念。最后,我们将通过创建一个包含文件的简单脚本来将所有内容付诸实践。