外汇学院 发表于 2018-1-20 08:36:10

MQL4语言编程培训16:MQL4排错技巧

MQL4语言编程培训16:MQL4排错技巧
http://v.youku.com/v_show/id_XNDMwMTcyOTc2.html
MQL4语言编程培训16:MQL4排错技巧

本课程适合初期MT4编程爱好者学习。
全系列23课,深入浅出讲解MT4的编程和基础知识。
全课程不拘泥与一般的编程授课,采用图文并茂的方式,介绍了相当多的背景和技巧。是目前国内不可多得的MT4授课精品课程。
MT4(MetaTrader 4)是全球最流行的外汇,黄金,期货交易平台软件。全球有超过70%的经纪公司和来自全世界三十多个国家的银行选择了它。它最大的特点就是:全球唯一一款支持程序化智能交易的免费的软件。通过学习本课程,可以让外汇黄金期货交易员实现把自己的交易思路变成全自动的智能交易程序。让你实现躺着赚钱的梦想。

在客户端程序运行子系统时,执行一个MQL4程序发生了异外情况,其错误代码将被保存下来。对于每一个MQL4程序执行,存在一个特殊的last_error变量。在init()函数运行之前,last_error变量必须重置为零。如果在计算阶段或调用内置函数时发生错误,last_error变量会收到相应的错误代码。存储在这个变量中的值可以用GetLastError()函数访问,之后,last_error变量将重置为零。

这里罗列了直接导致程序立即停止运行的关键错误:

常数        值        描述
ERR_WRONG_FUNCTION_POINTER        4001        在调用内部函数时,发现错误的函数指针
ERR_NO_MEMORY_FOR_CALL_STACK        4003        在调用内部函数时,不能为函数调用堆栈再分配内存
ERR_RECURSIVE_STACK_OVERFLOW        4004        递归调用函数时,数据堆栈溢出
ERR_NO_MEMORY_FOR_PARAM_STRING        4006        在调用内部函数时,不能为作为函数参数的字符串分配内存
ERR_NO_MEMORY_FOR_TEMP_STRING        4007        不能为字符串操作分配临时缓冲区
ERR_NO_MEMORY_FOR_ARRAYSTRING        4010        赋值时,不能为数组中字符串重新分配内存
ERR_TOO_LONG_STRING        4011        赋值时,太长的字符串被送到服务缓冲区(不能再为服务缓冲区分配内存)
ERR_REMAINDER_FROM_ZERO_DIVIDE        4012        余数除0错误
ERR_ZERO_DIVIDE        4013        除0 错误
ERR_UNKNOWN_COMMAND        4014        无效指令
如果在产生致命错误时程序停止了工作,这些错误代码可能被下次启动的程序用GetLastError()函数读取,也可被非初始化函数读取。在程序或非初始化函数开始运行之前,last_error变量不会归零。

这里罗列了调用导入函数时发生的致命错误,这些错误会引起智能交易或自定义指标立即停止启动函数的执行,直到用户重新初始化为止。

常数        值        描述
ERR_CANNOT_LOAD_LIBRARY        4018        调用导入函数时,载入DLL或EX4库发生错误
ERR_CANNOT_CALL_FUNCTION        4019        调用导入函数时,发现DLL或EX4库不包含被调用函数
ERR_DLL_CALLS_NOT_ALLOWED        4017        调用导入DLL函数时,发现禁止DLL导入
ERR_EXTERNAL_CALLS_NOT_ALLOWED        4020        调用导入EX4函数时,发现禁止导入外部EX4
其他错误不中断程序执行。

常数        值        描述
ERR_ARRAY_INDEX_OUT_OF_RANGE        4002        超界访问数组
ERR_NOT_INITIALIZED_STRING        4008        未初始化字符串;没有值赋给在表达式中充当操作数的字符串
ERR_NOT_INITIALIZED_ARRAYSTRING        4009        未初始化字符串数组;没有值赋给在表达式中充当操作数的字符串
ERR_NO_MEMORY_FOR_RETURNED_STR        4021        不能为函数返回的字符串重新分配内存
从不产生ERR_NO_MQLERROR (4000)代码。

这里罗列了可能只是由于软件或硬件故障而产生的许多错误。如果下列描述的错误反复出现,应与开发商联络。

常数        值        描述
ERR_WRONG_FUNCTION_POINTER        4001        在调用内部函数时,发现错误的函数指针
ERR_UNKNOWN_COMMAND        4014        无效指令
ERR_NOT_INITIALIZED_ARRAY        4016        未初始化数组
ERR_INVALID_FUNCTION_PARAMSCNT        4050        函数参数个数不正确
ERR_STRING_FUNCTION_INTERNAL        4052        字符串函数内部出错
ERR_TRADE_ERROR        4067        交易函数执行出错
ERR_SOME_OBJECT_ERROR        4207        对象函数出错

518外汇网--是一家专门提供外汇交易免费学习的专业化外汇交易论坛、外汇开户、如何炒外汇,外汇培训,外汇学习,提供外汇交易教程,外汇视频教程,外汇基础知识,外汇交易策略.炒外汇工具,外汇技术指标分析,外汇赠金活动,十大外汇平台,外汇投资高手,外汇技术面分析技巧,外汇基本面分析技巧,黄金分析软件,主要是以公平公正的角度传达做外汇需要的心态 技巧,免费共享各种外汇交易投资策略,提供新鲜的外汇交易资讯和公平,透明的外汇交易平台。MQL4语言编程培训16:MQL4排错技巧。

澳门论坛 发表于 2019-3-21 15:35:14

看看吧,大家都会支持你

祭婷波淼 发表于 2019-6-23 18:50:55

好帖,有才!











static/image/common/sigline.gif
https://img.alicdn.com/imgextra/i3/871851027/O1CN01RP8M0x1JSPHMHwTVg_!!2-martrix_bbs.png

贵州论坛 发表于 2019-8-8 01:03:49

不错,说得好,大家鼓掌

大官丹酶 发表于 2019-9-12 10:06:27

挺好啊挺好











static/image/common/sigline.gif
https://img.alicdn.com/imgextra/i2/871851027/O1CN01xdz3hj1JSPHLvsrpt_!!2-martrix_bbs.png
页: [1]
查看完整版本: MQL4语言编程培训16:MQL4排错技巧