新版MQL4增加了许多内容,于是,自定义了一个错误代码函数,并重新翻译了错误代码的中文意思。
作为手册查看也是不错的。
string iGetErrorInfo(int myErrorNum)
{
string myLastErrorStr;
if(myErrorNum>0)
{
switch (myErrorNum)
{
case 0
:myLastErrorStr="交易报错码:0 没有错误返回";break;
case 1
:myLastErrorStr="交易报错码:1 没有错误返回,可能是反复同价修改";break;
case 2
:myLastErrorStr="交易报错码:2 一般错误";break;
case 3
:myLastErrorStr="交易报错码:3 交易参数出错";break;
case 4
:myLastErrorStr="交易报错码:4 交易服务器繁忙";break;
case 5
:myLastErrorStr="交易报错码:5 客户终端软件版本太旧";break;
case 6
:myLastErrorStr="交易报错码:6 没有连接交易服务器";break;
case 7
:myLastErrorStr="交易报错码:7 操作权限不够";break;
case 8
:myLastErrorStr="交易报错码:8 交易请求过于频繁";break;
case 9
:myLastErrorStr="交易报错码:9 交易操作故障";break;
case 64
:myLastErrorStr="交易报错码:64 账户被禁用";break;
case 65
:myLastErrorStr="交易报错码:65 无效账户";break;
case 128 :myLastErrorStr="交易报错码:128 交易超时";break;
case 129 :myLastErrorStr="交易报错码:129 无效报价";break;
case 130 :myLastErrorStr="交易报错码:130 止损错误";break;
case 131 :myLastErrorStr="交易报错码:131 交易量错误";break;
case 132 :myLastErrorStr="交易报错码:132 休市";break;
case 133 :myLastErrorStr="交易报错码:133 禁止交易";break;
case 134 :myLastErrorStr="交易报错码:134 资金不足";break;
case 135 :myLastErrorStr="交易报错码:135 报价发生改变";break;
case 136 :myLastErrorStr="交易报错码:136 建仓价过期";break;
case 137 :myLastErrorStr="交易报错码:137 经纪商很忙";break;
case 138 :myLastErrorStr="交易报错码:138 需要重新报价";break;
case 139 :myLastErrorStr="交易报错码:139 定单被锁定";break;
case 140 :myLastErrorStr="交易报错码:140 只允许做买入类型操作";break;
case 141 :myLastErrorStr="交易报错码:141 请求过多";break;
case 145 :myLastErrorStr="交易报错码:145 过于接近报价,禁止修改";break;
case 146 :myLastErrorStr="交易报错码:146 交易繁忙";break;
case 147 :myLastErrorStr="交易报错码:147 交易期限被经纪商取消";break;
case 148 :myLastErrorStr="交易报错码:148 持仓单数量超过经纪商的规定";break;
case 149 :myLastErrorStr="交易报错码:149 禁止对冲";break;
case 150 :myLastErrorStr="交易报错码:150 FIFO禁则";break;
case 4000:myLastErrorStr="运行报错码:4000 没有错误返回";break;
case 4001:myLastErrorStr="运行报错码:4001 函数指针错误";break;
case 4002:myLastErrorStr="运行报错码:4002 数组越界";break;
case 4003:myLastErrorStr="运行报错码:4003 调用栈导致内存不足";break;
case 4004:myLastErrorStr="运行报错码:4004 递归栈溢出";break;
case 4005:myLastErrorStr="运行报错码:4005 堆栈参数导致内存不足";break;
case 4006:myLastErrorStr="运行报错码:4006 字符串参数导致内存不足";break;
case 4007:myLastErrorStr="运行报错码:4007 临时字符串导致内存不足";break;
case 4008:myLastErrorStr="运行报错码:4008 字符串变量缺少初始化赋值";break;
case 4009:myLastErrorStr="运行报错码:4009 字符串数组缺少初始化赋值";break;
case 4010:myLastErrorStr="运行报错码:4010 字符串数组空间不够";break;
case 4011:myLastErrorStr="运行报错码:4011 字符串太长";break;
case 4012:myLastErrorStr="运行报错码:4012 因除数为零导致的错误";break;
case 4013:myLastErrorStr="运行报错码:4013 除数为零";break;
case 4014:myLastErrorStr="运行报错码:4014 错误的命令";break;
case 4015:myLastErrorStr="运行报错码:4015 错误的跳转";break;
case 4016:myLastErrorStr="运行报错码:4016 数组没有初始化";break;
case 4017:myLastErrorStr="运行报错码:4017 禁止调用DLL ";break;
case 4018:myLastErrorStr="运行报错码:4018 库文件无法调用";break;
case 4019:myLastErrorStr="运行报错码:4019 函数无法调用";break;
case 4020:myLastErrorStr="运行报错码:4020 禁止调用智EA函数";break;
case 4021:myLastErrorStr="运行报错码:4021 函数中临时字符串返回导致内存不够";break;
case 4022:myLastErrorStr="运行报错码:4022 系统繁忙";break;
case 4023:myLastErrorStr="运行报错码:4023 DLL函数调用错误";break;
case 4024:myLastErrorStr="运行报错码:4024 内部错误";break;
case 4025:myLastErrorStr="运行报错码:4025 内存不够";break;
case 4026:myLastErrorStr="运行报错码:4026 指针错误";break;
case 4027:myLastErrorStr="运行报错码:4027 过多的格式定义";break;
case 4028:myLastErrorStr="运行报错码:4028 参数计数器越界";break;
case 4029:myLastErrorStr="运行报错码:4029 数组错误";break;
case 4030:myLastErrorStr="运行报错码:4030 图表没有响应";break;
case 4050:myLastErrorStr="运行报错码:4050 参数无效";break;
case 4051:myLastErrorStr="运行报错码:4051 参数值无效";break;
case 4052:myLastErrorStr="运行报错码:4052 字符串函数内部错误";break;
case 4053:myLastErrorStr="运行报错码:4053 数组错误";break;
case 4054:myLastErrorStr="运行报错码:4054 数组使用不正确";break;
case 4055:myLastErrorStr="运行报错码:4055 自定义指标错误";break;
case 4056:myLastErrorStr="运行报错码:4056 数组不兼容";break;
case 4057:myLastErrorStr="运行报错码:4057 全局变量处理错误";break;
case 4058:myLastErrorStr="运行报错码:4058 没有发现全局变量";break;
case 4059:myLastErrorStr="运行报错码:4059 测试模式中函数被禁用";break;
case 4060:myLastErrorStr="运行报错码:4060 函数未确认";break;
case 4061:myLastErrorStr="运行报错码:4061 发送邮件错误";break;
case 4062:myLastErrorStr="运行报错码:4062 String参数错误";break;
case 4063:myLastErrorStr="运行报错码:4063 Integer参数错误";break;
case 4064:myLastErrorStr="运行报错码:4064 Double参数错误";break;
case 4065:myLastErrorStr="运行报错码:4065 数组参数错误";break;
case 4066:myLastErrorStr="运行报错码:4066 刷新历史数据错误";break;
case 4067:myLastErrorStr="运行报错码:4067 交易内部错误";break;
case 4068:myLastErrorStr="运行报错码:4068 没有发现资源文件";break;
case 4069:myLastErrorStr="运行报错码:4069 不支持资源文件";break;
case 4070:myLastErrorStr="运行报错码:4070 重复的资源文件";break;
case 4071:myLastErrorStr="运行报错码:4071 自定义指标没有初始化";break;
case 4099:myLastErrorStr="运行报错码:4099 文件末尾";break;
case 4100:myLastErrorStr="运行报错码:4100 文件错误";break;
case 4101:myLastErrorStr="运行报错码:4101 文件名称错误";break;
case 4102:myLastErrorStr="运行报错码:4102 打开文件过多";break;
case 4103:myLastErrorStr="运行报错码:4103 不能打开文件";break;
case 4104:myLastErrorStr="运行报错码:4104 不兼容的文件";break;
case 4105:myLastErrorStr="运行报错码:4105 没有选择定单";break;
case 4106:myLastErrorStr="运行报错码:4106 未知的商品名称";break;
case 4107:myLastErrorStr="运行报错码:4107 价格无效";break;
case 4108:myLastErrorStr="运行报错码:4108 报价无效";break;
case 4109:myLastErrorStr="运行报错码:4109 禁止交易,请尝试修改EA属性";break;
case 4110:myLastErrorStr="运行报错码:4110 禁止买入类型交易,请尝试修改EA属性";break;
case 4111:myLastErrorStr="运行报错码:4111 禁止卖出类型交易,请尝试修改EA属性";break;
case 4200:myLastErrorStr="运行报错码:4200 对象已经存在";break;
case 4201:myLastErrorStr="运行报错码:4201 未知的对象属性";break;
case 4202:myLastErrorStr="运行报错码:4202 对象不存在";break;
case 4203:myLastErrorStr="运行报错码:4203 未知的对象类型";break;
case 4204:myLastErrorStr="运行报错码:4204 对象没有命名";break;
case 4205:myLastErrorStr="运行报错码:4205 对象坐标错误";break;
case 4206:myLastErrorStr="运行报错码:4206 没有指定副图窗口";break;
case 4207:myLastErrorStr="运行报错码:4207 图形对象错误";break;
case 4210:myLastErrorStr="运行报错码:4210 未知的图表属性";break;
case 4211:myLastErrorStr="运行报错码:4211 没有发现主图";break;
case 4212:myLastErrorStr="运行报错码:4212 没有发现副图";break;
case 4213:myLastErrorStr="运行报错码:4210 图表中没有发现指标";break;
case 4220:myLastErrorStr="运行报错码:4220 商品选择错误";break;
case 4250:myLastErrorStr="运行报错码:4250 消息传递错误";break;
case 4251:myLastErrorStr="运行报错码:4251 消息参数错误";break;
case 4252:myLastErrorStr="运行报错码:4252 消息被禁用";break;
case 4253:myLastErrorStr="运行报错码:4253 消息发送过于频繁";break;
case 5001:myLastErrorStr="运行报错码:5001 文件打开过多";break;
case 5002:myLastErrorStr="运行报错码:5002 错误的文件名";break;
case 5003:myLastErrorStr="运行报错码:5003 文件名过长";break;
case 5004:myLastErrorStr="运行报错码:5004 无法打开文件";break;
case 5005:myLastErrorStr="运行报错码:5005 文本文件缓冲区分配错误";break;
case 5006:myLastErrorStr="运行报错码:5006 文无法删除文件";break;
case 5007:myLastErrorStr="运行报错码:5007 文件句柄无效";break;
case 5008:myLastErrorStr="运行报错码:5008 文件句柄错误";break;
case 5009:myLastErrorStr="运行报错码:5009 文件必须设置为FILE_WRITE";break;
case 5010:myLastErrorStr="运行报错码:5010 文件必须设置为FILE_READ";break;
case 5011:myLastErrorStr="运行报错码:5011 文件必须设置为FILE_BIN";break;
case 5012:myLastErrorStr="运行报错码:5012 文件必须设置为FILE_TXT";break;
case 5013:myLastErrorStr="运行报错码:5013 文件必须设置为FILE_TXT或FILE_CSV";break;
case 5014:myLastErrorStr="运行报错码:5014 文件必须设置为FILE_CSV";break;
case 5015:myLastErrorStr="运行报错码:5015 读文件错误";break;
case 5016:myLastErrorStr="运行报错码:5016 写文件错误";break;
case 5017:myLastErrorStr="运行报错码:5017 二进制文件必须指定字符串大小";break;
case 5018:myLastErrorStr="运行报错码:5018 文件不兼容";break;
case 5019:myLastErrorStr="运行报错码:5019 目录名非文件名";break;
case 5020:myLastErrorStr="运行报错码:5020 文件不存在";break;
case 5021:myLastErrorStr="运行报错码:5021 文件不能被重复写入";break;
case 5022:myLastErrorStr="运行报错码:5022 错误的目录名";break;
case 5023:myLastErrorStr="运行报错码:5023 目录名不存在";break;
case 5024:myLastErrorStr="运行报错码:5024 指定文件而不是目录";break;
case 5025:myLastErrorStr="运行报错码:5025 不能删除目录";break;
case 5026:myLastErrorStr="运行报错码:5026 不能清空目录";break;
case 5027:myLastErrorStr="运行报错码:5027 改变数组大小错误";break;
case 5028:myLastErrorStr="运行报错码:5028 改变字符串大小错误";break;
case 5029:myLastErrorStr="运行报错码:5029 结构体包含字符串或者动态数组";break;
}
}
return(myLastErrorStr);
}