手机版

MQL4交易函数常见错误代码及处理意见

阅读 :
外_汇_邦 WaiHuiBang.com

任何交易相关操作(OrderSend(), OrderClose(), OrderCloseBy(), OrderDelete()和OrderModify()函数)都会因为些原因导致失败,返回负的订单号或FALSE,我们通过调用GetLastError()函数能找出失败的原因。每一个错误必须以不同的方式加以处理,最常见的错误和处理建议如下:

常数描述
ERR_NO_ERROR0交易成功。
ERR_NO_RESULT1OrderModify()试图用个同样的值替换原先已设定好的值。应该修改其中一个或多个值,再反复尝试修改。
ERR_COMMON_ERROR2常规错误。直到查清错误为止,所有交易必须停止运行。 如果需要客户端和交易系统必须重启。
ERR_INVALID_TRADE_参量3无效参量, 例如, 货币对错误,未知交易业务, 不存在订单号等等。程序逻辑必须修改。
ERR_SERVER_BUSY4交易服务器忙。稍后请重新尝试。
ERR_OLD_VERSION5客户端的旧版本。需要安装客户端的最新版本。
ERR_NO_CONNECTION6交易服务器没有连接。需要确认连接没有断开(例如,应用IsConnected函数) 过一段时间(5秒之后)重试。
ERR_TOO_FREQUENT_REQUESTS8交易请求过于频繁。过于频繁的交易请求必须减少,程序逻辑需要修改。
ERR_ACCOUNT_DISABLED64账户被禁用。所有运行交易必须停止。
ERR_INVALID_ACCOUNT65账号无效。所有运行交易必须停止。
ERR_TRADE_TIMEOUT128交易超时。在重试前(至少1分钟)必须确认交易业务确实没有成功(存在未修改或未删除的定单)
ERR_INVALID_PRICE129无效开价或报价格。稍后必须刷新数据,应用RefreshRates函数重试。 如果错误没有消失,尝试停止所有运行交易,修改程序逻辑。
ERR_INVALID_STOPS130止损止盈离现价太近或是价格计算错误。一般修改止损止盈距离。
ERR_INVALID_TRADE_VOLUME131无效交易量。 尝试停止所有运行交易,改变程序逻辑。
ERR_MARKET_CLOSED132市场关闭。稍后重新尝试。
ERR_TRADE_DISABLED133交易被禁止。所有运行交易必须停止。
ERR_NOT_ENOUGH_MONEY134资金不足无法交易。稍后用小额的资金重试,确定有足够的资金完成交易。
ERR_PRICE_CHANGED135价格已经改变,应用RefreshRates()函数重试。
ERR_OFF_QUOTES136没有报价没有报价。由于有多种原因,交易商不提供价格或拒绝提供价格(比方说,本场交易价格未启动,价格不确定,市场变化太快)。延时5秒后,有必要用RefreshRates函数更新数据,再重试。
ERR_REQUOTE138请求的报价已过时,或者买价和卖价混淆。延时5秒后,有必要使用RefreshRates()函数刷新数据再次重试。如果错误依然没有消失,尝试停止所有运行交易,修改程序。
ERR_ORDER_LOCKED139交易定单被锁住,正在处理中。尝试停止所有运行交易,修改程序逻辑。
ERR_LONG_POSITIONS_ONLY_ALLOWED140只允许买进。禁止卖出。
ERR_TOO_MANY_REQUESTS141请求过多。必须减少请求次数,程序逻辑需要修改。
 142定单按次序排列。它不是一个错误,而是客户端和交易服务器之间一个代码。在交易执行期间,碰巧连接断开或重新连接时,这种代码的出现次数非常少。此代码和错误代码128一样处理。
 143定单已经被执行交易商接受。它不是一个错误,而是客户端和交易服务器之间一个代码。它和代码142出现的原因一样,处理方法参照错误128。
 144在手动确认期间,定单已经被客户放弃。它不是一个错误,而是客户端和交易服务器之间一个代码。
ERR_TRADE_MODIFY_DENIED145由于定单太接近市价或被锁定,修改被否定。延时15秒后,用RefreshRates函数更新数据再次重试。
ERR_TRADE_CONTEXT_BUSY146交易线程忙。只有在IsTradeContextBusy()函数返回FALSE后重试。
ERR_TRADE_EXPIRATION_DENIED147交易商否定挂单过期使用。如果期限为零,交易可以重试。
ERR_TRADE_TOO_MANY_ORDERS148开仓和挂单交易总数已经达到经纪商设定的限度。只有在现有仓位平单或挂单删除之后才可以新开仓或挂单。
ERR_TRADE_HEDGE_PROHIBITED149当对冲功能被关闭时,尝试开仓一个和现有仓位相反的订单。首先必须平掉现有仓位,停止所有此类交易操作或者修改程序逻辑。
ERR_TRADE_PROHIBITED_BY_FIFO150尝试关闭一个违反FIFO规则的订单。 首先平掉之前的仓位,停止所有此类交易操作或者修改程序逻辑。
外_汇_邦 WaiHuiBang.com
本文标题:MQL4交易函数常见错误代码及处理意见 - MT4平台MQL4编程学习
本文地址:https://www.waihuibang.com/fxschool/autotrading/mql4/49023.html

相关文章

  • 有效控制EA亏损及爆仓的方法

    一、全自动or半自动很多投资者认为全自动的量化交易大大解放了人脑并节省了时间与精力,不需要打开盘面也能躺着赚钱,但事实却并非如此,没有哪一款EA是完全无风险的,也没有哪一款EA是能够适应所有行情的,因此全自动看...

    MQL4编程学习
  • EA编程教程第四讲 操作符与表达式

    简介:计算操作符有 +,-,*,/ 。%(求余),bool类型运算符(&&代表“与”,||代表“或”)。赋值运算符,=,+=,*=.1 表达式,例如:a++; b = 10;x = (y * z) /(w + 2) + 127;表达式必须以;号结尾。2 算术运算,例如:加法运算:i = j + 2;减法运...

    MQL4编程学习
  • 二十二款知名外汇EA测试笔记

    最近一个多月,又研究、测试了一些EA,这些EA有的很知名,有的名气小一些。我选择的条件有两个:一是可以开仓回测;二是原代码可读。那些用Ex4 TO MQ 破解的EA,原代码编程了一堆没有意义的代码,解读起来很难,我就暂时放到一边...

    MQL4编程学习
  • 怎样选择最适合的外汇VPS,使交易延迟降到最低?

    很多挂EA的选择离MT4服务器地址相近的国家线路的VPS才能更流畅的交易,比如你的交易商的MT4服务器在美国,那么购买美国的VPS,这样就在网络连通率和速度上比国内更快一步了。...

    MQL4编程学习
  • EA入门系列一:MT4自定义指标的结构
    EA入门系列一:MT4自定义指标的结构

    MT4自定义指标一般由四个部分构成: (1)文件头部 (2)参数、变量和数组的定义 (3)初始化函数init() (4)主函数start() 一、文件头部,也称为预处理程序 预处理程序以“#”开头,行尾无语句结束符“;” 常用的预处理程...

    MQL4编程学习
你可能感兴趣