MT4MT5之家-MT4MT5指标脚本EA,这里只有干货!
 
昨日:篇  今日:篇   总帖:篇   会员:

admin
创始人Lv14   
MT4MT5一些错误返回代码的含义以及解决方法     

描述

错误代码在MetaTrader中对于识别和解决平台操作中的问题至关重要。函数GetLastError()用于检索这些代码,这些错误的常量定义在stderror.mqh文件中。错误代码表明系统中出现了错误,了解这些错误可以帮助解决问题。了解这些错误的方法至关重要。

要输出描述性文本消息,可以使用位于stdlib.mqh中的ErrorDescription()函数。

错误可能来源于交易服务器或客户端终端。

作为MT4MT5顾问编程的专家,我经常收到关于这些错误的问题。

对此,我将解释交易者和专家顾问最常见的错误、其原因以及如何解决它们。

每个专家顾问的操作方式不同,但许多问题源自一组共同的问题。

让我们按照“电子工程错误指南”的风格,探讨典型错误及其解决方案。

这些错误的简明列表可以在错误代码参考中找到,以及在MetaTrader 4/MetaTrader 5终端中。我们将使用这些资源来有效地诊断和解决问题。

如果您的错误未列出或建议的解决方案无效,建议联系您的专家顾问的作者。

然而,在此之前,请务必查看日志文件以获取有关问题的更多详细信息。

常见错误及其解决方法

错误编号简要描述可能原因解决方法
图表不匹配错误DC服务器上的错误:传入的tick在所有时间框架中未被准确处理。1. DC服务器在不同的时间框架中不准确地处理传入的tick。1. 从存档加载后立即测试不会显示错误,因为只加载了分钟数据。当实时报价开始到达时,不匹配会积累。
常见错误及其解决方法 - Metatrader 和 MQL 以及 Forex 的错误代码。解决方案。错误 - Image 7
TestGenerator:数据不匹配错误报价存档数据中的错误1. 来自您的经纪商的不完整数据
2. 损坏的报价数据库
3. 使用过时的数据测试EA
4. 来自较旧时间框架的异步数据
数据不匹配未定义或不存在时,会发生错误。
错误 Error 0 or 1无错误或错误未知1. 之前未解决的来自持久请求的错误不要在专家顾问中处理错误0和1
错误Error 4, 146
(10022 在MT5中)
经纪商禁止使用订单过期日期1. 交易服务器忙碌

2. 您设置了错误的挂单过期类型(订单取消时间)
1. 重新启动终端
优化EA代码,使用更好的错误处理函数

2. StopOrderDayToExpiration:
– 0 – ORDER_TIME_GTC 订单将排队直到被移除;
– 1 – ORDER_TIME_DAY 订单仅在当前交易日内有效; 
– X – ORDER_TIME_SPECIFIED 订单将保持有效直到到期日期。 

或 StopOrderBarToExpiration
错误Error 8, 141
(10024 在MT5中)
请求过于频繁1. EA同时发送过多订单
2. EA在发送新订单前未等待服务器响应,导致服务器过载
1. 确保EA在发送额外订单前等待响应。

2. 专家顾问发送了过多请求。请稍等片刻,然后继续使用专家顾问。
错误Error 130, 145
(10016 在MT5中)
指定的止损级别不正确止损级别(止损,止盈)距离当前价格过近1. 与您的经纪商核实最低止损级别的开仓规则
2. 确保止损级别符合您的账户和经纪商的规定
3. 您可以使用我们的函数:
SetMinStops – 自动所有参数的专家顾问规范化为最低可接受的止损级别。 
4. 请设置更高的止损参数水平StopLossTakeProfitTrailingStop,订单距离….
错误Error 132
(10018 在MT5中)
市场已关闭市场已关闭,通常在周末尝试在市场重新开放后下单交易。
要在周末交易,您可以尝试我们的TesterPad
错误Error 133
(10017 在MT5中)
禁止交易1. 当前交易受到限制
2. 禁止所选货币对的交易
1. 等待交易恢复

2. 尝试交易不同的货币对或检查是否需要为您的货币对添加后缀
Error 134
(10019 在MT5中)
资金不足以完成交易1. 您尝试开的手数过大,导致保证金不足1. 检查您的自由保证金
2. 在开仓前计算所需资金以满足所需手数
3. 检查您的交易手数设置(LotAutolotDynamicLotMartin
Error 135–138
(10004, 10006, 10020 在MT5中)
价格已变动1. 发生了重新报价
2. 市场波动
3. 经纪商不允许在指定价格进行交易
1. 避免在市场波动期间交易
2. 增加滑点,但要注意,这可能导致交易在不同价格执行
3. 这是快速市场的标准错误。
Error 147ERR TRADE EXPIRATION DENIEDEA或用户尝试设置挂单过期日期在EA的OrderSend函数中将过期日期设置为0

经纪商禁止使用订单过期日期
Error 148
(10033 在MT5中)
已达到最大开仓或挂单数量已达到最大限制的开仓订单挂单位置检查您的经纪商的开仓订单限制并相应调整您的交易策略。
Error 4012, 4013除零错误

零除
1. EA在计算中尝试除以零
2. MarketInfo(Symbol(), MODE_SPREAD)可能返回零,适用于具有浮动点差的经纪商
检查EA代码以防止除零错误,并确保正确处理MarketInfo的响应。
Error 4017不允许调用DLL终端或杀毒软件禁止调用DLL1. 通过终端设置允许DLL调用
2. 在启用之前,使用杀毒软件确保DLL是安全的
常见错误及其解决方法 - Metatrader 和 MQL 以及 Forex 的错误代码。解决方案。错误 - Image 8
Error 4106未知符号符号未在市场观察中列出市场观察中启用符号或向您的经纪商请求。
Error 4108
(10036 在MT5中)
无效的票号订单的票号已不存在
订单可能已被手动关闭或由另一个EA关闭
避免在EA管理的订单中进行手动干预并禁用冲突的EA。

也许专家顾问正在尝试关闭或修改已被另一个专家顾问关闭的订单。
Error 4110, 4111
(10042,10043,10044 在MT5中)
不允许多头/空头头寸EA设置限制了某些交易类型

服务器限制了头寸类型
常规选项卡中调整设置以允许所需的交易类型(多头和空头仅多头仅空头仅适用于MT4)。

咨询您的经纪商
Error 10030TRADE RETCODE INVALID FILL订单填充不正确。在专家顾问设置中设置参数
TypeFilling
订单和头寸的填充类型。
它用于MT5终端。
在AUTO模式下,专家顾问尝试自动确定填充类型。
但在某些情况下,您需要自己设置填充类型。

交易错误代码

来自交易服务器的错误代码

代码标识符描述解决方法
10004TRADE_RETCODE_REQUOTE重新报价增加滑点水平或避免在高波动期间交易。

滑点
开仓和平仓时价格可能的最大偏差水平(以点计)。
10006TRADE_RETCODE_REJECT请求被拒绝检查交易条件和账户状态,稍后重试请求。
10007TRADE_RETCODE_CANCEL交易者取消请求确保没有手动取消发生或调整EA设置。
10008TRADE_RETCODE_PLACED订单已下达无需采取行动。这是确认消息。
10009TRADE_RETCODE_DONE申请已完成无需采取行动。请求已成功完成。
10010TRADE_RETCODE_DONE_PARTIAL申请部分完成检查剩余订单并在必要时手动完成。
10011TRADE_RETCODE_ERROR请求处理错误查看日志以识别错误,并在纠正后重试请求。
10012TRADE_RETCODE_TIMEOUT请求因超时被取消增加超时时间或在服务器负载较低期间重试。
10013TRADE_RETCODE_INVALID错误请求检查请求参数并使用正确的值重试。
10014TRADE_RETCODE_INVALID_VOLUME请求中的交易量不正确确保交易量在账户允许的范围内。
10015TRADE_RETCODE_INVALID_PRICE请求中的价格错误检查市场价格并使用正确的价格重试。
10016TRADE_RETCODE_INVALID_STOPS请求中的止损错误确保StopLossTakeProfit值符合经纪商规则。

SetMinStops
自动将专家顾问的所有参数规范化为最低可接受的止损级别。
10017TRADE_RETCODE_TRADE_DISABLED禁止交易检查账户上的交易条件和经纪商的限制。
10018TRADE_RETCODE_MARKET_CLOSED市场已关闭等待市场重新开放后再下单交易。

要在周末交易,您可以尝试我们的TesterPad
10019TRADE_RETCODE_NO_MONEY资金不足以完成请求确保账户中有足够的资金或减少交易规模。
10020TRADE_RETCODE_PRICE_CHANGED价格已变动使用更新后的价格重试请求或增加滑点允许。
10021TRADE_RETCODE_PRICE_OFF没有报价处理请求等待市场提供报价并重试请求。
10022TRADE_RETCODE_INVALID_EXPIRATION请求中的订单过期日期无效设置正确的过期日期或留空以进行即时订单。

StopOrderDay ToExpiration = 订单过期的天数。
10023TRADE_RETCODE_ORDER_CHANGED订单状态已更改更新订单状态并使用正确信息重试请求。
10024TRADE_RETCODE_TOO_MANY_REQUESTS请求过于频繁限制每秒的请求数量以避免服务器过载。
10025TRADE_RETCODE_NO_CHANGES请求中没有更改确保在重新提交请求前有实际更改。
10026TRADE_RETCODE_SERVER_DISABLES_AT咨询您的经纪商
10027TRADE_RETCODE_CLIENT_DISABLES_AT客户端终端禁止自动交易在终端设置中启用自动交易以继续交易。
来自交易服务器的错误代码 - Metatrader 和 MQL 以及 Forex 的错误代码。解决方案。错误 - Image 9

10028TRADE_RETCODE_LOCKED指定头寸已存在关闭订单。当在对冲系统中工作时,可能会发生这种情况

请求被阻止以进行处理
等待当前关闭订单处理完毕后再提交另一个。

检查是否存在锁定订单或系统限制并解决问题。
10029TRADE_RETCODE_FROZEN订单或头寸被冻结联系您的经纪商以了解头寸被冻结的原因。
10030TRADE_RETCODE_INVALID_FILL不支持的订单执行类型由余额指定确保为您的余额选择了正确的订单执行类型。
TypeFilling

订单和头寸的填充类型。
它用于MT5终端。
在AUTO模式下,专家顾问尝试自动确定填充类型。
但在某些情况下,您需要自己设置填充类型。
10031TRADE_RETCODE_CONNECTION激活挂单的请求被拒绝,订单本身被取消检查与服务器的连接并重试请求。
10032TRADE_RETCODE_ONLY_REAL该操作仅允许在真实账户上进行确保操作在真实账户上进行,而不是在模拟账户上。
10033TRADE_RETCODE_LIMIT_ORDERS已达到挂单数量限制减少挂单数量或联系经纪商进行调整。
10034TRADE_RETCODE_LIMIT_VOLUME该符号的订单和头寸量已达到限制减少交易量或联系经纪商进行调整。
10035TRADE_RETCODE_INVALID_ORDER无效或禁止的订单类型检查经纪商允许的订单类型,并使用有效类型重试。
10036TRADE_RETCODE_POSITION_CLOSED指定的POSITION_IDENTIFIER头寸已关闭无需采取行动。头寸已关闭。
10038TRADE_RETCODE_INVALID_CLOSE_VOLUME关闭量超过当前头寸量确保关闭量不超过当前头寸大小。
10039TRADE_RETCODE_CLOSE_ORDER_EXIST与交易服务器没有连接检查连接并在服务器可访问后重新尝试。
10040TRADE_RETCODE_LIMIT_POSITIONS请求被拒绝,因为符号设置了“您只能关闭现有头寸”的规则。在尝试新头寸前关闭现有头寸。
10041TRADE_RETCODE_REJECT_CANCEL请求被拒绝,因为符号设置了“您只能关闭现有头寸”的规则。调整交易以符合“仅关闭”规则。
10042TRADE_RETCODE_LONG_ONLY请求被拒绝,因为符号设置了“仅允许多头头寸”的规则。此符号仅允许多头头寸;避免提交空头交易。
10043TRADE_RETCODE_SHORT_ONLY请求被拒绝,因为符号设置了“仅允许空头头寸”的规则。此符号仅允许空头头寸;避免提交多头交易。
10044TRADE_RETCODE_CLOSE_ONLY请求被拒绝,因为符号设置了“您只能关闭现有头寸”的规则。遵守“仅关闭”规则,通过关闭头寸而不是开设新头寸。

其他错误

错误代码错误编号描述解决方法
ERR_SUCCESS0操作成功完成无需采取行动。
ERR_INTERNAL_ERROR4001意外的内部错误检查系统或程序冲突并重新启动终端。
ERR_WRONG_INTERNAL_PARAMETER4002结构包含无效对象,如字符串、动态数组或不支持的结构检查对象的结构并确保其正确定义。
ERR_INVALID_PARAMETER4003调用系统函数时参数错误验证函数的参数并确保它们符合所需格式。
ERR_NOT_ENOUGH_MEMORY4004执行系统函数时内存不足释放系统内存或优化程序以使用更少的内存。
ERR_STRUCT_WITHOBJECTS_ORCLASS4005重新分配字符串时内存不足检查内存泄漏并优化程序的内存使用。
ERR_INVALID_ARRAY4006错误类型、大小的数组或损坏的动态数组对象确保数组在使用前正确定义和初始化。
ERR_ARRAY_RESIZE_ERROR4007请求的数组大小超过2吉字节减少数组大小或更有效地管理内存分配。
ERR_STRING_RESIZE_ERROR4008请求的历史记录未找到确保所请求的历史记录可用或调整请求参数。
ERR_NOTINITIALIZED_STRING4009未初始化的字符串在尝试使用字符串进行操作前初始化字符串。
ERR_INVALID_DATETIME4010日期和/或时间值错误验证请求中的日期和时间格式并重试。
ERR_ARRAY_BAD_SIZE4011动态和静态资源不匹配确保数组大小兼容且正确定义。
ERR_INVALID_POINTER4012错误的指针检查指针值并确保其在使用前有效。
ERR_INVALID_POINTER_TYPE4013错误的指针类型确保指针类型正确并正确转换。
ERR_FUNCTION_NOT_ALLOWED4014不允许调用系统函数检查系统限制并确认函数可以执行。
ERR_RESOURCE_NAME_DUPLICATED4015资源名称重复使用唯一的资源名称以避免冲突。
ERR_RESOURCE_NOT_FOUND4016未找到指定名称的资源确保资源存在于正确的目录或文件中。
ERR_RESOURCE_UNSUPPOTED_TYPE4017不支持的资源类型或大小超过16MB使用支持的资源类型并确保大小在限制内。
ERR_RESOURCE_NAME_IS_TOO_LONG4018资源名称超过63个字符缩短资源名称以符合字符限制。
ERR_MATH_OVERFLOW4019数学函数评估时发生溢出检查函数输入并使用较小的值以防止溢出。
ERR_CHART_WRONG_ID4101错误的图表ID验证图表ID并确保其在使用前正确。
ERR_CHART_NO_REPLY4102图表未响应检查系统或连接问题,并在必要时重新启动终端。
ERR_CHART_NOT_FOUND4103未找到图表确保图表已打开且可访问后再尝试操作。
ERR_CHART_NO_EXPERT4104图表上没有可用的专家处理事件将必要的专家顾问(EA)附加到图表以处理事件。
ERR_CHART_CANNOT_OPEN4105图表打开错误检查系统错误并重试打开图表。
ERR_CHART_CANNOT_CHANGE4106更改图表上的符号或周期错误确保图表可访问且请求的符号或周期有效。
ERR_CHART_WRONG_PARAMETER4107图表函数的参数值错误验证传递给图表函数的参数并重试。
ERR_CHART_CANNOT_CREATE_TIMER4108创建图表计时器错误检查系统设置并确保终端允许创建计时器。
ERR_CHART_WRONG_PROPERTY4109错误的图表属性ID使用正确的属性ID进行图表操作。
ERR_CHART_SCREENSHOT_FAILED4110截图错误确保终端有足够的权限和存储空间来保存截图。
ERR_CHART_NAVIGATE_FAILED4111图表导航错误确保图表正确加载并且导航命令有效。
ERR_CHART_TEMPLATE_FAILED4112应用模板错误确保模板存在并且与图表兼容。
ERR_CHART_WINDOW_NOT_FOUND4113未找到包含指定指标的子窗口检查指标是否应用于正确的窗口。
ERR_CHART_INDICATOR_CANNOT_ADD4114向图表添加指标错误确保指标有效并且图表支持。
ERR_CHART_INDICATOR_CANNOT_DEL4115从图表删除指标错误确保指标已存在于图表中,然后再尝试删除。
ERR_CHART_INDICATOR_NOT_FOUND4116在指定图表上未找到指标验证图表和指标参数并重试。
ERR_OBJECT_ERROR4201终端设置限制请求的柱数量在终端设置中增加允许的柱数量。
ERR_OBJECT_NOT_FOUND4202未找到图形对象确保图形对象存在并正确定义。
ERR_OBJECT_WRONG_PROPERTY4203错误的图形对象属性标识符使用正确的属性标识符进行图形对象操作。
ERR_OBJECT_GETDATE_FAILED4204访问历史记录失败检查历史记录访问权限并重试请求。
ERR_OBJECT_GETVALUE_FAILED4205无法获取对应日期的值验证日期范围并确保历史数据可用。
ERR_MARKET_UNKNOWN_SYMBOL4301未知符号确保符号存在于市场观察中并拼写正确。
ERR_MARKET_NOT_SELECTED4302未在市场观察中选择符号在市场观察中选择符号并重试操作。
ERR_MARKET_WRONG_PROPERTY4303错误的符号属性标识符验证属性标识符并重试操作。
ERR_MARKET_LASTTIME_UNKNOWN4304最后一个tick的时间未知(没有tick)等待tick到达并重试请求。
ERR_MARKET_SELECT_ERROR4305添加或移除市场观察中的符号错误检查系统错误并重试添加或移除符号。
ERR_HISTORY_NOT_FOUND4401加载历史记录时发生许多错误检查历史记录数据是否损坏,并在必要时重新加载历史记录。
ERR_HISTORY_WRONG_PROPERTY4402历史记录属性标识符错误使用正确的属性标识符进行历史记录操作。
ERR_HISTORY_TIMEOUT4403请求历史记录时超时增加超时限制或在系统负载较低时重试。
ERR_GLOBALVARIABLE_NOT_FOUND4501客户端终端全局变量未找到确保全局变量存在后再尝试使用。
ERR_GLOBALVARIABLE_EXISTS4502全局变量已存在使用唯一的全局变量名称以避免冲突。
ERR_GLOBALVARIABLE_NOT_MODIFIED4503全局变量未进行修改确保在尝试更新前已修改全局变量。
ERR_GLOBALVARIABLE_CANNOTREAD4504无法读取全局变量值检查文件权限并确保全局变量可访问。
ERR_GLOBALVARIABLE_CANNOTWRITE4505无法写入全局变量值确保有足够的权限和存储空间来写入文件。
ERR_MAIL_SEND_FAILED4510发送电子邮件失败检查电子邮件服务器设置并确保电子邮件地址正确。
ERR_PLAY_SOUND_FAILED4511播放声音失败确保声音文件存在且系统可以访问它。
ERR_FTP_SEND_FAILED4514未指定FTP服务器确保正确输入FTP服务器详细信息并重试。
ERR_NOTIFICATION_SEND_FAILED4515发送通知失败验证通知设置并确保其配置正确。
ERR_BUFFERS_NO_MEMORY4601分配指标缓冲区时内存不足释放内存或优化程序中的缓冲区使用。
ERR_ACCOUNT_WRONG_PROPERTY4701错误的账户属性ID确保使用正确的账户属性ID。
ERR_TRADE_DISABLED4752禁止专家进行交易在终端中为专家顾问启用交易权限。
ERR_TRADE_POSITION_NOT_FOUND4753未找到头寸验证头寸详情并确保其存在后再尝试操作。
ERR_TRADE_ORDER_NOT_FOUND4754未找到订单验证订单ID并确保其存在后再尝试操作。

办理VIP会员联系QQ/微信:29996044 另代写MT4/MT5/通达信/同花顺/文华财经/大智慧等各种EA指标脚本

 0  已被阅读了128次  楼主 2024-12-14 13:48:04
回复列表

回复:MT4MT5一些错误返回代码的含义以及解决方法

您的IP:3.144.23.138,2024-12-22 09:55:51,Processed in 0.03125 second(s).
外汇实盘交易、外汇保证金交易、贵金属交易及其他金融投资产品均存在较高风险,并不适合每一位投资者。如有必要,请咨询专业的投资顾问或法律人士。因各国或地区监管规定 不同,本站所提供的广告信息或服务未必适用于所有国家或地区的投资者。投资者进行相关投资,可能不受所在地法律保护,敬请深入研究,审慎决策。本站登载的所有 内容仅出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不构成任何投资建议。投资者据此操作,需自行承担由此产生的任何风险。