admin 发表于 2022-8-20 11:40:33

MQL4预定义标准常量(四)


[*]未初始化原因代码
[*]特殊常量
[*]错误代码
为了简化程序编写,使程序文本编辑使用起来更加简便,在MQL4中预定义了标准常量。标准常量类似于宏代换,并且是int(整数类型)。这些常量按用途进行分组。未初始化原因代码使用UninitializeReason() 函数返回未初始化原因代码。可以是以下任意值:
常数值描述
0脚本独立执行完成
REASON_REMOVE1从图表中删除智能交易。
REASON_RECOMPILE2重新编译智能交易。
REASON_CHARTCHANGE3改变了图表货币对和时间周期。
REASON_CHARTCLOSE4关闭图表
REASON_PARAMETERS5用户改变了输入参数
REASON_ACCOUNT6其他账户已激活
特殊常量特殊常量用于描述参数和变量状态。可以是以下任意值:
常数值描述
NULL0表明字符串为空值。
EMPTY-1表明参数为空值。
EMPTY_值0x7FFFFFFF默认自定义指标为空值。
CLR_NONE0xFFFFFFFF表明颜色为空值。
WHOLE_ARRAY0配合数组函数应用,表示数组所有元素将被处理。
错误代码GetLastError()函数返回出错代码,错误代码常量定义在stderror.mqh文件里。想要获取错误的文本信息,请调用在stdlib. mqh文件中定义的ErrorDescription()函数。#include <stderror.mqh>#include <stdlib.mqh>void SendMyMessage(string text){   int check;   SendMail("some subject", text);   check=GetLastError();   if(check!=ERR_NO_ERROR) Print("Cannot send message, error: ",Error描述(check));}从服务器返回的错误代码及描述说明
常数值描述
ERR_NO_ERROR0没有错误返回。
ERR_NO_RESULT1没有错误返回,但结果不明。
ERR_COMMON_ERROR2一般错误。
ERR_INVALID_TRADE_PARAMETERS3无效交易参数。
ERR_SERVER_BUSY4交易服务器繁忙。
ERR_OLD_VERSION5客户终端版本太旧。
ERR_NO_CONNECTION6没有连接服务器。
ERR_NOT_ENOUGH_RIGHTS7没有权限。
ERR_TOO_FREQUENT_REQUESTS8请求过于频繁。
ERR_MALFUNCTIONAL_TRADE9无效交易。
ERR_ACCOUNT_DISABLED64账户禁用。
ERR_INVALID_ACCOUNT65无效账户
ERR_TRADE_TIMEOUT128交易超时。
ERR_INVALID_PRICE129无效价格。
ERR_INVALID_STOPS130无效平仓。
ERR_INVALID_TRADE_VOLUME131无效交易量。
ERR_MARKET_CLOSED132市场关闭。
ERR_TRADE_DISABLED133交易被禁止。
ERR_NOT_ENOUGH_MONEY134资金不足。
ERR_PRICE_CHANGED135价格已变动。
ERR_OFF_QUOTES136无报价。
ERR_BROKER_BUSY137经纪繁忙。
ERR_REQUOTE138重新报价。
ERR_ORDER_LOCKED139定单被锁定。
ERR_LONG_POSITIONS_ONLY_ALLOWED140只允许多头头寸。
ERR_TOO_MANY_REQUESTS141请求过多。
ERR_TRADE_MODIFY_DENIED145因为订单过于接近市价,修改被拒绝。
ERR_TRADE_CONTEXT_BUSY146交易系统忙。
ERR_TRADE_EXPIRATION_DENIED147交易过期,被经纪商拒绝。
ERR_TRADE_TOO_MANY_ORDERS148开仓和挂单总数已经达到经纪商的限定。
ERR_TRADE_HEDGE_PROHIBITED149当对冲功能被关闭时,尝试开仓一个和现有仓位相反的订单。
ERR_TRADE_PROHIBITED_BY_FIFO150尝试关闭一个违反FIFO规则的订单。
MQL4 运行时错误代码
常数值描述
ERR_NO_MQLERROR4000没有错误。
ERR_WRONG_FUNCTION_POINTER4001错误函数指针。
ERR_ARRAY_INDEX_OUT_OF_RANGE4002数组索引(下标)超出范围。
ERR_NO_MEMORY_FOR_CALL_STACK4003没有足够内存开设函数调用堆栈。
ERR_RECURSIVE_STACK_OVERFLOW4004递归堆栈溢出。
ERR_NOT_ENOUGH_STACK_FOR_PARAM4005没有足够堆栈储存参数。
ERR_NO_MEMORY_FOR_PARAM_STRING4006没有足够内存储存字符串参数。
ERR_NO_MEMORY_FOR_TEMP_STRING4007没有足够内存保存临时字符串。
ERR_NOT_INITIALIZED_STRING4008没有初始化字符串。
ERR_NOT_INITIALIZED_ARRAYSTRING4009在数组中没有初始化字符串。
ERR_NO_MEMORY_FOR_ARRAYSTRING4010没有足够内存保存字符串数组。
ERR_TOO_LONG_STRING4011字符串过长。
ERR_REMAINDER_FROM_ZERO_DIVIDE4012余额除零。
ERR_ZERO_DIVIDE4013除零。
ERR_UNKNOWN_COMMAND4014不明命令。
ERR_WRONG_JUMP4015错误跳转(不产生错误)。
ERR_NOT_INITIALIZED_ARRAY4016没有初始化数组。
ERR_DLL_CALLS_NOT_ALLOWED4017禁止调用DLL 。
ERR_CANNOT_LOAD_LIBRARY4018不能加载库。
ERR_CANNOT_CALL_FUNCTION4019不能调用函数。
ERR_EXTERNAL_CALLS_NOT_ALLOWED4020禁止调用智能交易函数。
ERR_NO_MEMORY_FOR_RETURNED_STR4021没有足够内存保存函数返回的字符串。
ERR_SYSTEM_BUSY4022系统繁忙 (不产生错误)。
ERR_INVALID_FUNCTION_PARAMSCNT4050非法函数参数个数。
ERR_INVALID_FUNCTION_PARAM值4051非法函数参数值。
ERR_STRING_FUNCTION_INTERNAL4052字符串函数内部出错。
ERR_SOME_ARRAY_ERROR4053数组错误。
ERR_INCORRECT_SERIESARRAY_USING4054使用了错误的序列数组。
ERR_CUSTOM_INDICATOR_ERROR4055自定义指标错误。
ERR_INCOMPATIBLE_ARRAYS4056数组不兼容。
ERR_GLOBAL_VARIABLES_PROCESSING4057全局变量处理错误。
ERR_GLOBAL_VARIABLE_NOT_FOUND4058全局变量未找到。
ERR_FUNC_NOT_ALLOWED_IN_TESTING4059不许在测试模式使用函数。
ERR_FUNCTION_NOT_CONFIRMED4060函数不被允许
ERR_SEND_MAIL_ERROR4061发送邮件错误。
ERR_STRING_PARAMETER_EXPECTED4062要求字符串参数。
ERR_INTEGER_PARAMETER_EXPECTED4063要求整数参数。
ERR_DOUBLE_PARAMETER_EXPECTED4064要求双精度参数。
ERR_ARRAY_AS_PARAMETER_EXPECTED4065要求用数组作参数。
ERR_HISTORY_WILL_UPDATED4066正在更新历史数据。
ERR_TRADE_ERROR4067交易执行出错。
ERR_END_OF_FILE4099到了文件尾。
ERR_SOME_FILE_ERROR4100文件错误。
ERR_WRONG_FILE_NAME4101错误文件名称。
ERR_TOO_MANY_OPENED_FILES4102打开文件过多。
ERR_CANNOT_OPEN_FILE4103不能打开文件。
ERR_INCOMPATIBLE_FILEACCESS4104不兼容文件访问。
ERR_NO_ORDER_SELECTED4105没有选择定单。
ERR_UNKNOWN_SYMBOL4106未知货币对。
ERR_INVALID_PRICE_PARAM4107交易函数的价格参数无效。
ERR_INVALID_TICKET4108无效定单编号。
ERR_TRADE_NOT_ALLOWED4109不允许交易。在智能交易中勾选”Allow live trading(允许实时交易)”。
ERR_LONGS_NOT_ALLOWED4110不允许多头。检查智能交易属性。
ERR_SHORTS_NOT_ALLOWED4111不允许空头。检查智能交易属性。
ERR_OBJECT_ALREADY_EXISTS4200对象己经存在。
ERR_UNKNOWN_OBJECT_PROPERTY4201未知对象属性。
ERR_OBJECT_DOES_NOT_EXIST4202对象不存在。
ERR_UNKNOWN_OBJECT_TYPE4203未知对象类型。
ERR_NO_OBJECT_NAME4204缺少对象名称。
ERR_OBJECT_COORDINATES_ERROR4205对象坐标错误。
ERR_NO_SPECIFIED_SUBWINDOW4206没有找到子窗口。
ERR_SOME_OBJECT_ERROR4207对象函数错误。
页: [1]
查看完整版本: MQL4预定义标准常量(四)