EA故障排除

如果您不知道如何在计算机上运行 EA,或者您从未运行过 EA,我们建议从最基础的部分开始:帮助 - 我是新手。以下内容将通过选择最符合您情况的场景,帮助您找到 EA 问题的解决方案:

我没有收到任何订单。

首先应该检查是否有任何错误提示。如果您正在运行 Backtest,请打开 Strategy Tester 面板上的"Journal"选项卡。如果您在 Demo 账户上运行,请同时检查 Toolbox 面板上的"Journal"和"Experts"选项卡。如果面板不可见且您不知道如何打开,请前往"查看"并选择"Toolbox"(Demo/Live)或"Strategy Tester"(Backtest)。我们强烈建议先通过运行 Backtest 使 EA 正常工作,因为这样可以简化测试和问题排查,而且速度更快。

Errors visible on the Experts tab
Example of errors visible on the 'Journal' tab when backtesting the EA

如果您在浏览选项卡后发现了错误,但不知道错误是什么意思,请跳转到本故障排除页面中标有"我收到错误"的部分。

如果浏览选项卡后没有发现错误,则很可能是 EA 配置不正确。我们强烈建议通过选择一个模板或请我们的 AI 助手来创建一个简单的示例 EA。验证 EA 正常工作后,每次只添加一个模块或条件(Open Buy/Open Sell)。每次向 EA 添加新内容后,重新测试您的 EA。当您不再收到订单时,就能知道是哪里出了问题。如果您需要配置 EA 的帮助,请订阅并联系我们。如果您想先确认问题是否出在配置上,也可以先联系我们为您核实。

由于您在 Backtest 中可以收到订单,EA 的配置可能没有问题,但有某些因素阻止了 EA 在 Demo 账户(以及 Live 账户)上进行交易。首先确保您已等待足够长的时间,以确认 EA 确实没有交易且条件已满足。如果您看到错误提示,则无需等待。

接下来,检查是否有任何错误提示。请同时检查 Toolbox 面板上的"Journal"和"Experts"选项卡。如果面板不可见且您不知道如何打开,请前往"查看"并选择"Toolbox"。

Errors visible on the Experts tab
Example of errors visible on the 'Experts' tab when running the EA on a Demo account

如果您在浏览选项卡后发现了错误,但不知道错误是什么意思,请跳转到本故障排除页面中标有"我收到错误"的部分。

如果浏览选项卡后没有发现错误,但在 Backtest 时能收到订单,请确保您使用的是与 Backtest 时相同的交易品种和时间框架。在 Backtest 时,该品种的条件可能已满足,但您在 Demo 上交易的品种特性可能有所不同。我们强烈建议先对您的交易品种进行 Backtest。

如果您需要进一步的帮助,请联系我们并尽可能详细地描述问题。

我收到了订单,但是

务必观察图表上的 SL/TP 线,即水平绿线和红线。如果图表上看不到这些线,请参阅标题为图表上看不到 Stop Loss 和 Take Profit的部分。

但是,在 Toolbox 面板的交易选项卡中看不到 Stop Loss(SL)或 Take Profit(TP)是正常的,因为 EA 负责管理它们。这样做是为了防止经纪商将您的交易信息用于其他目的。此外,经纪商通常不支持追踪止损策略所需的频繁修改订单。因此,唯一可行的方案是在 EA 的内存中追踪 SL/TP,确保精度达到 0.1 点。

如果您在图表上找不到 Stop Loss(SL)或 Take Profit(TP)的显示,请考虑以下几点:

  1. 将 EA 附加到图表时是否出现任何错误?如果是,请跳转至"我收到错误"部分并选择您看到的错误。

Errors visible on the Experts tab
Example of errors visible on the 'Experts' tab when running the EA on a Demo account

  1. 订单是由 EA 开立的,还是手动下单的?如果您希望 EA 管理手动开立的交易,请确保在 MetaTrader 的 Expert Advisor 属性窗口(输入选项卡)中将 EA 的"Magic Number"设置为"0"。这样 EA 将继续管理您手动开立的订单,包括在配置了 SL/TP 的情况下进行设置。

ea magic number property
Magic number of an EA. You can change the value to 0 for manual orders.

  1. EA 是否在下单后被禁用了?检查图表右上角:EA 是否显示为活跃状态(笑脸)或非活跃状态(哭脸)?在 MetaTrader 5 中,活跃的 EA 显示为蓝色帽子(MT4 中为笑脸),非活跃的显示为灰色帽子(MT4 中为哭脸)。只有活跃的 EA 才能管理 SL/TP。要防止 EA 自动禁用,请参阅教程 - 运行第一个 EA 中"在 Backtest 中运行 EA"下的说明,并取消勾选"禁用"复选框。

ea magic number property
EA is running and not disabled.

  1. SL/TP 线可能位于图表可见区域之外。缩小图表并确认 SL/TP 线是否应该在可见范围内。
  2. 确保在图表上加载 EA 后,您在"Expert"选项卡中看到类似以下的消息:对于 EURUSD,显示"Pip (forex)/ Point (indices): 0.00010"。如果您交易的是其他品种,请确认显示的值与该品种 1 个点/点位的值相符。如果不符,请在 EA 属性的输入选项卡中手动调整"Manual pip point (0 = auto detection)"为正确的值。

ea pip point property
Pip/ point calculated automatically. Can be set to preferred value manually..

SL/TP 未显示在您预期位置的最可能原因是,您交易的品种每个点的价值与您预期的不同。例如,当您交易 EURUSD 时,EA 会自动将 1 个点计算为 0.00010 的价值。

那么如何知道一个点的价值呢?将 EA 附加到图表后,查看"Expert"选项卡,您会看到这行内容:Pip (forex)/ Point (indices): 0.00010。这会告诉您一个点的价值:0.00010。如果与您的预期不符,请打开 EA 属性并设置以下属性:Manual pip point (0 = auto detection),将其设置为您期望的 1 个点的值。

如果您交易的是美国道琼斯 30 指数,您可能希望点值为 1 美元,请将上述设置相应调整为 1。

ea pip point property
Pip/ point calculated automatically. Can be set to preferred value manually.

最常见的原因是您的开单信号仍然处于活跃状态。如果开单信号仍然活跃,EA 不会关闭订单,因为关闭后开单信号会立即在同一方向开立新订单。有几种方法可以确保您的开单信号仅在短时间内活跃:

  • 最常见的方法是在您的开单信号中使用交叉。这在 EA 时间框架较短或 SL/TP 较大时效果尤为好。使用交叉时,指标的值不仅要检查是否大于另一个值,而且只有在前一个值仍然较小的情况下才会激活。
  • 由于交叉在指标所用时间框架的周期内保持活跃,您也可以使用"订单间隔时间"模块作为替代方案。请确保启用"在平仓后应用"选项。

默认情况下,Indicator 运行在您的 EA 所附加的 chart 的 timeframe 上。因此,当您更改 chart 的 timeframe 时,您的 Indicator 会在新的 timeframe 上重新计算,依赖它们的 Buy 和 Sell 信号也会随之重新计算。这可能导致 EA 仅仅因为您更改了 chart 的 timeframe 就平仓(或开仓)。

为避免这种情况,请为每个 Indicator 设置固定的 timeframe,使 chart 不再影响您的 EA。有关如何设置固定的 Timeframe,请参阅 向 EA 添加 Indicator。

运行 EA 时出现错误

如消息所示,您需要在面板上查找错误。如果您正在运行 Backtest,请打开 Strategy Tester 面板上的"Journal"选项卡。如果您在 Demo 账户上运行,请同时检查 Toolbox 面板上的"Journal"和"Experts"选项卡。我们强烈建议先通过运行 Backtest 使 EA 正常工作,因为这样可以简化测试和问题排查。

Errors visible on the Experts tab
Example of errors visible on the 'Journal' tab when backtesting the EA

现在查找除您已看到的错误("开(所有)订单失败。请检查 EA [编号] 并查看 Journal 和 Expert 选项卡。")之外的任何其他错误。找到后,前往本页面中与该描述匹配的错误部分。

如果您看到的错误与本页面上的任何错误都不匹配,请联系我们并告知您看到的错误。

您的 EA 找不到您的指标。您的指标必须位于 MetaTrader 的"Indicators"文件夹中,而不能在任何子文件夹内。因此,"Indicators\Examples"、"Indicators\Market"或类似路径将不起作用。要从 MetaTrader 打开"Indicators"文件夹,请前往"文件",然后选择"打开数据文件夹"(CTRL + Shift + D)。然后在文件资源管理器中,点击"MQL4"和"Indicators"。

如果这没有解决此特定错误,请确认"ex4"文件是否在"Indicators"文件夹中,而不仅仅是"mq4"文件。如果"ex4"文件缺失,请在 MetaEditor 中打开您的"mq4"文件并点击"编译"按钮。

您的 EA 找不到您的指标。您的指标必须位于 MetaTrader 的"Indicators"文件夹中,而不能在任何子文件夹内。要从 MetaTrader 打开"Indicators"文件夹,请前往"文件",然后选择"打开数据文件夹"(CTRL + Shift + D)。然后在文件资源管理器中,点击"MQL5"和"Indicators"。

如果这没有解决此特定错误,请确认"ex5"文件是否在"Indicators"文件夹中,而不仅仅是"mq5"文件。如果"ex5"文件缺失,请在 MetaEditor 中打开您的"mq5"文件并点击"编译"按钮。

您的 EA 找不到您的指标。您的指标必须位于 MetaTrader 的"Indicators"文件夹中,而不能在任何子文件夹内。要从 MetaTrader 打开"Indicators"文件夹,请前往"文件",然后选择"打开数据文件夹"(CTRL + Shift + D)。然后在文件资源管理器中,点击"MQL5"和"Indicators"。

如果这没有解决此特定错误,请确认"ex5"文件是否在"Indicators"文件夹中,而不仅仅是"mq5"文件。如果"ex5"文件缺失,请在 MetaEditor 中打开您的"mq5"文件并点击"编译"按钮。

您的 EA 正在使用基于百分比的资金管理选项来计算 Lot Size,这需要 EA 计算开仓所需的保证金。但由于经纪商对该品种的配置有误,无法计算所需保证金。

请尝试使用固定 Lot Size,为该品种使用以下资金管理器之一:

  • 固定 Lot Size
  • 手动序列(确保不使用百分比选项)
  • Marginale(确保不使用百分比选项)

您的 EA 正在使用一个需要加载 DLL 才能运行的指标。如果您确定要运行此 EA 并信任该 EA 的发布者,请滚动至教程 - 运行您的第一个 EA 中"在 Backtest 中运行 EA"下的说明,并启用"允许 DLL 导入"。

您的 MetaTrader 配置很可能尚未正确设置以允许 EA 自动交易。请滚动至教程 - 运行您的第一个 EA 中"在 Backtest 中运行 EA"下的说明,并启用"允许自动交易"。

您正在尝试以经纪商不接受的交易量(Lot Size)开立订单。例如,当经纪商不接受纳米手(0.0001 手)时尝试使用该交易量就会发生此情况。

您的 Open Buy 和 Open Sell 信号在完全相同的时间同时满足,但您尚未允许 EA 进行对冲。

要解决此问题,请修正信号使 Open Buy 和 Open Sell 不会同时满足;或者如果这是您的本意,请在您的开单模块中启用对冲,以允许 EA 同时开立买入和卖出订单。

Error enable hedging
Enable hedging on your Open order module

请按照准备运行 EA的所有步骤操作。

如果仍然无效,还有以下几个可能导致此错误的原因:

  • 您正在参加资金挑战赛,您的经纪商不允许在挑战中使用交易机器人(请咨询您的经纪商)。
  • 经纪商不为您的账户类型提供该品种的交易,即使该品种在 Market Watch 中可见。请联系您的经纪商。
  • 您的经纪商不再提供(例如)GBPUSD 的交易,或正在停止相关服务。

请联系我们并告知您遇到的错误。我们将告诉您如何解决该错误,并将其添加到本页面。

将 EA 上传到 MT5 市场时出现错误

将您的 EA 上传到 MT5 市场时,EA 将接受合规测试。其中包括一项检查 EA 是否允许订单亏损过多的测试。您需要确保 EA 在达到最大亏损之前关闭订单,否则 EA 将被强制平仓。因此,您可以在现有的 Stop Loss 模块基础上再添加一个 Stop Loss 模块。例如:假设允许的最大 Stop Loss 为 5%,则将您的 Stop Loss 设置为 4.5%。请查阅 MT5 的规则和限制以了解具体要求。