6 MQL4运行程序

使MQL4程序运行,必须进行编写(“编写” 按钮或F5) 。编写过程中不允许出现任何错误。 本章主要是将程序运行时遇到的错误信息,学习程序时本章可跳过。

必须在terminal_dir\experts,terminal_dir\experts\indicators,

或 terminal_dir\experts\scripts, 有相同名称和引伸EX4的文件中创建。这样可以开启这个文件。
智能交易,客户指标和脚本的相应图表(Drag’n’Drop 技术)需要从客户端内的导航窗口打开. MQL4程序只有在客户端开启的基础上运行.

使智能交易停止运行,必须从图表使用的菜单中删除它。”智能交易开启”的状态栏将会直接影响智能交易的运行.

使客户指标停止运行,必须将它从图表中删除.

客户指标和智能交易在图表中的管理直到被删除.关于附属在客户指标和智能交易的信息将储存于客户端内. 脚本在完成执行一次任务后或者当前图表发生改变/关闭时,再或者客户端中断,脚本被自动删除.相应的附属信息不被保存.

在同一个图表内,智能交易,脚本和更多数量的指标可以同时运行.

6.1 MQL4程序框架以及运行流程

在老版的MQL4(build 600之前)中包含三个主要函数:

Init():初始化函数,程序运行时首先运行该函数里的语句。

Deinit():反初始化函数(注销函数),程序关闭时运行该函数里的语句。

Start():主函数,程序运行过程中,价格每变动一次,该函数运行一次。

在老版本的程序中,无论是指标,EA还是脚本 都是使用这三个函数。

程序在附加图表之后,它开始应用init()作用运行。在客户端开始和历史数据加载,图表周期改变,由MetaEditor编译程序, 智能和客户指标的输入数据设定后,附加到图表上的智能交易和客户指标将会运行。 在账户发生改变后交易将会初始化。

每一个附加到图表上的交易必须在deinit()的作用协助下工作。 deinit()作用运行在客户端内停止,在图表中关闭 在商品或图表周期改变之前,成功重新编译程序,改变输入数据或改变账户。 在deinit()函数执行中,您可以使用 UninitializeReason()函数查看原因.deinit()函数必须在2.5 秒内执行. 如果函数没有在指定的时间段内执行,它将强制完成.脚本除外,它的运行不取决于任何外界的命令. 如果脚本工作时间过长, 可以应用外部命令结束运行 (从图表的菜单中删除脚本,在原有的图表上添加新的脚本,改变图表的商品或图表周期).在这种情况下,deinit()函数限制在2.5秒内.

新报价格的输入,start()函数将会添加到智能交易和客户指标上执行.当新报价格进入时如果start()函数没有开启运行,新的报价格会被忽略. function launched at the preceding quote was running when a new quote came, 随后,只有当新报价格进入后start()函数才会运行. 对于客户指标,由于新报价格的输入当前图表商品或期限发生改变, start()函数将会开启重新计算.在交易属性窗口打开时start()函数 停止运行.迟些在交易执行中不会打开.
从图表中拆卸程序, 改变商品或图表周期,改变账户,关闭图表,客户端的改变将会中断程序的执行.如果start()函数在给出停止命令的时刻执行 , 时间限制在2.5 秒. 程序能够尝试关闭 IsStopped()函数并结束.

脚本的执行不取决于报价格的输入.在商品或图表周期发生改变时,脚本将停止运行并且中断从客户端上下载.
脚本和交易的运行在自己的界面.客户指标则是在主界面上运行. 如果客户指标中出现 iCustom() 函数, 这个指标的运行是在程序中显示的. 资料库函数在程序界面.

6.2 最新MQL4程序框架个更改与说明

新版本的MQL4程序完全兼容老版本的MQL4程序。但是大家最好是按照新版本的要求进行编程。

MQL4的程序都是事件触发型,不同事件触发程序中不同的函数。

在新版程序中 EA,指标,脚本三种程序锁使用的函数都不完全一样。另外还增加了几种程序,方便大家使用。具体请看下面的介绍。

每个脚本和每个专家顾问都在各自的线程中运行。所有的指示符都在图形接口线程中工作。数据的处理和历史同步也在图形接口线程中执行。自定义指示器在主接口线程中工作。如果使用iCustom()函数调用了自定义指示器,那么该指示器在调用它的程序的线程中工作。库(导入)函数也在调用程序线程中工作。在运行Expert Advisor时,请确保它具有实际的交易环境,能够访问所需符号和周期的历史,并在终端和服务器之间同步数据。对于所有这些过程,终端提供的启动延迟不超过5秒,之后专家顾问将使用可用数据启动。因此,如果没有到服务器的连接,这可能会导致专家顾问启动的延迟。下表包含MQL4程序的简要摘要。

程序类型

运行时

注释

脚本 一个单独的线程,脚本的线程数等于脚本的数量 循环脚本不能中断其他程序的运行
EA 一个单独的线程,EA的线程数等于EA的个数 循环的EA不能中断其他程序的运行
指标 各指标共享终端图形接口线程资源 一个指示器中的无限循环将停止终端的工作

程序被附加到图表后,立即将其上载到客户端内存,并初始化全局变量。如果类类型的某个全局变量具有构造函数,则将在全局变量初始化期间调用该构造函数。

之后,程序等待来自客户机终端的事件。每个mql4程序应该至少有一个事件处理程序,否则加载的程序将不会执行。事件处理程序具有预定义的名称、参数和返回类型。

返回值类型

函数名

形式参数

使用它的程序

说明

int OnInit 脚本,EA,指标

初始化事件处理程序。它允许使用void返回类型。
void OnDeinit const int reason 脚本,EA,指标 注销事件处理程序
void OnStart 脚本 开始事件处理函数
int OnCalculate const int rates_total,

const int prev_calculated,

const datetime &Time[],

const double &Open[],

const double &High[],

const double &Low[],

const double &Close[],

const long &TickVolume[],

const long &Volume[],

const int &Spread[]

指标 计算所有价格的事件处理程序
void OnTick none EA NewTick事件处理程序。当处理新的tick收据事件时,不会收到其他此类事件。
void OnTimer none EA,指标 定时器处理程序
double OnTester none EA 测试处理程序
void OnChartEvent const int id,

const long &lparam,

const double &dparam,

const string &sparam

EA,指标 图表时间处理程序

程序只接收它所运行的图表中的事件。所有事件都按它们被接收的顺序依次处理。如果队列已经有一个NewTick事件,或者当前正在处理这个事件,那么新的NewTick事件就不会被放入MQL4程序的队列中。类似地,如果ChartEvent已经加入队列,或者正在处理此事件,则不会加入此类新事件。计时器事件的处理方式相同——如果计时器事件在队列中或正在处理中,则新计时器事件不会进入队列。
事件队列有一个有限但足够的大小。

6.3外部函数调用

输入函数在mql4 程序中执行,即所谓的约束应用。这就意味着,直到输入函数被应用,相应的模板(ex4 or dll)将不会加载。 MQL4和DLL 资料在模板的命令下被调用。

这里不推荐使用模板被加载的 全名Drive:\Directory\FileName.Ext 。 MQL4 资料是 从terminal_dir\experts\libraries 文件夹中下载。如果资料中未找到,将会接受来自 terminal_dir\experts 文件夹的下载。

资料系统(DLLs)按照以下规则运行。如果资料已经被下载 (从其他智能交易。例如,从其他相同时间开启的客户端下载),资料下在以满。会按照以下规则命令执行:
1. terminal_dir\experts\libraries目录 。
2. 从terminal_dir客户端被开启的目录。
3. 当前目录。
4.windows_dir\SYSTEM32 的目录系统 (或是对于windows_dir\SYSTEM for Win98)。
5. 在 windows_dir执行系统中安装的目录。
6. 录中列出的PATH 环境系统变量。

如果DLL 应用另一个DLL 运行,在后者省缺的情况下前者不会加载。

与资料系统不同,客户资料(MQL4)加载是对于每个分开模板,独立地从模板上加载。举例来说,ex4 模板可以从lib1.ex4 和 lib2.ex4 资料中调用。反过来lib1.ex4 资料可以从lib2.ex4 资料中调用函数。在这种情况下,需要复制一份 lib1.ex4 资料和两分lib2.ex4资料,所有来自相同caller.ex4 模板的资料。

从DLL转入到mql4程序的输入函数必须提供接受Windows API函数。 提供这样公约,关键词 __stdcall对于微软(r)公司的编译器,在编写的C 或 C++ 语言中源代码中使用。上述公约有以下特点:
– 呼叫函数(这种情况下,是mql4 程序) 必须”参见”(来自DLL输入函数)适应参量;
– 呼叫函数(这种情况下,是mql4 程序) 在反向命令中放置参量等等,从左到右;它是在读输入函数参量通过的命令;
– 参量根据他们的价格值通过,除了一些直接的界限(存在一些界限);
– 参量通过,输入函数本身将会变大。

在描述输入函数 模型时,基本不使用参量默认值。因为所有的默认值必须直接通过输入函数。

如果调用输入函数失败(智能交易设置不允许DLL 输入,或相关的资料由于一些原因不能下载),智能交易会停止运行并在”停止运行”处提出相关信息。另外,智能交易只有在重新初始化之后才会开启。智能交易的初始化由于需要重新编译或开启属性可以按确定键

6.4运行时错误

如果是由于一个关键错误停止了程序的运行,这个错误代码可以在下次开启时使用 GetLastError () 函数。 在未开启之前,错误变量不会归零。 在客户终端执行子系统时,其发生在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 l错误
ERR_CANNOT_CALL_FUNCTION 4019 输入数据时, dll或 ex4 不包含调用功能
ERR_DLL_CALLS_NOT_ALLOWED 4017 输入数据时,dll 数据禁止
ERR_EXTERNAL_CALLS_NOT_ALLOWED 4020 输入数据时,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 不可能重新记忆字符


The 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 窗体函数内部错误

函数

错误代码

AccountFreeMarginCheck ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_UNKNOWN_SYMBOL (4106), ERR_NOT_ENOUGH_MONEY (134)
OrderSend ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_PRICE_PARAM (4107), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109), ERR_LONGS_NOT_ALLOWED (4110), ERR_SHORTS_NOT_ALLOWED (4111)
OrderClose ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_PRICE_PARAM (4107), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109)
OrderCloseBy ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109)
OrderDelete ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109)
OrderModify ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INVALID_PRICE_PARAM (4107), ERR_INVALID_TICKET (4108), ERR_UNKNOWN_SYMBOL (4106), ERR_TRADE_NOT_ALLOWED (4109)
GetLastError ERR_NO_ERROR (0)


last_error变量的一些功能的价格值改变只能产生一种错误。

函数

错误代码

ArrayBsearch ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayCopy ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCOMPATIBLE_ARRAYS (4056), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayCopyRates ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCOMPATIBLE_ARRAYS (4056), ERR_STRING_PARAMETER_EXPECTED (4062),
ArrayCopySeries ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCORRECT_SERIESARRAY_USING (4054), ERR_INCOMPATIBLE_ARRAYS (4056), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_HISTORY_WILL_UPDATED (4066), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayDimension ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
ArrayGetAsSeries ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
ArrayInitialize ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayIsSeries ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
ArrayMaximum ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayMinimum ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayRange ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INTEGER_PARAMETER_EXPECTED (4063), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArrayResize ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
ArraySetAsSeries ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
ArraySize ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
ArraySort ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053), ERR_INCORRECT_SERIESARRAY_USING (4054), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileClose ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileDelete ERR_WRONG_FILE_NAME (4101), ERR_SOME_FILE_ERROR (4100)
FileFlush ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileIsEnding ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileIsLineEnding ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileOpen ERR_TOO_MANY_OPENED_FILES (4102), ERR_WRONG_FILE_NAME (4101), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_SOME_FILE_ERROR (4100), ERR_CANNOT_OPEN_FILE (4103)
FileOpenHistory ERR_TOO_MANY_OPENED_FILES (4102), ERR_WRONG_FILE_NAME (4101), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_SOME_FILE_ERROR (4100), ERR_CANNOT_OPEN_FILE (4103)
FileReadArray ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_ARRAY_ERROR (4053), ERR_SOME_FILE_ERROR (4100), ERR_END_OF_FILE (4099)
FileReadDouble ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_END_OF_FILE (4099)
FileReadInteger ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_END_OF_FILE (4099)
FileReadNumber ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100), ERR_END_OF_FILE (4099)
FileReadString ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100), ERR_TOO_LONG_STRING (4011), ERR_END_OF_FILE (4099)
FileSeek ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileSize ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileTell ERR_INVALID_FUNCTION_PARAMVALUE (4051)
FileWrite ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_SOME_FILE_ERROR (4100)
FileWriteDouble ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100)
FileWriteInteger ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100)
FileWriteString ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100), ERR_STRING_PARAMETER_EXPECTED (4062)
FileWriteArray ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCOMPATIBLE_FILEACCESS (4104), ERR_SOME_FILE_ERROR (4100),
GlobalVariableCheck ERR_STRING_PARAMETER_EXPECTED (4062)
GlobalVariableDel ERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLES_PROCESSING (4057)
GlobalVariableGet ERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLE_NOT_FOUND (4058)
GlobalVariablesDeleteAll ERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLES_PROCESSING (4057)
GlobalVariableSet ERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLES_PROCESSING (4057), ERR_GLOBAL_VARIABLE_NOT_FOUND (4058)
GlobalVariableSetOnCondition ERR_STRING_PARAMETER_EXPECTED (4062), ERR_GLOBAL_VARIABLE_NOT_FOUND (4058)
iCustom ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
technical indicators, series access functions ERR_HISTORY_WILL_UPDATED (4066)
technical indicators OnArray ERR_ARRAY_AS_PARAMETER_EXPECTED (4065), ERR_SOME_ARRAY_ERROR (4053)
IndicatorBuffers ERR_INVALID_FUNCTION_PARAMVALUE (4051)
IndicatorDigits ERR_INVALID_FUNCTION_PARAMVALUE (4051)
IndicatorShortName ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
MarketInfo ERR_STRING_PARAMETER_EXPECTED (4062), ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_UNKNOWN_SYMBOL (4106), ERR_INVALID_FUNCTION_PARAMVALUE (4051)
MathArccos ERR_INVALID_FUNCTION_PARAMVALUE (4051)
MathArcsin ERR_INVALID_FUNCTION_PARAMVALUE (4051)
MathMod ERR_ZERO_DIVIDE (4013)
MathSqrt ERR_INVALID_FUNCTION_PARAMVALUE (4051)
MessageBox ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_STRING_PARAMETER_EXPECTED (4062)
ObjectCreate ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_UNKNOWN_OBJECT_TYPE (4203), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_OBJECT_ALREADY_EXISTS (4200), ERR_NO_SPECIFIED_SUBWINDOW (4206)
ObjectDelete ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)
ObjectDescription ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)
ObjectFind ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204)
ObjectGet ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_PROPERTY (4201)
ObjectGetFiboDescription ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_TYPE (4203), ERR_UNKNOWN_OBJECT_PROPERTY (4201)
ObjectGetShiftByValue ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_OBJECT_COORDINATES_ERROR (4205)
ObjectGetValueByShift ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_OBJECT_COORDINATES_ERROR (4205)
ObjectMove ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_OBJECT_DOES_NOT_EXIST (4202)
ObjectName ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_ARRAY_INDEX_OUT_OF_RANGE (4002)
ObjectSet ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_PROPERTY (4201)
ObjectSetText ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)
ObjectSetFiboDescription ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_OBJECT_DOES_NOT_EXIST (4202), ERR_UNKNOWN_OBJECT_TYPE (4203), ERR_UNKNOWN_OBJECT_PROPERTY (4201)
ObjectType ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NO_OBJECT_NAME (4204), ERR_OBJECT_DOES_NOT_EXIST (4202)
OrderClosePrice ERR_NO_ORDER_SELECTED (4105)
OrderCloseTime ERR_NO_ORDER_SELECTED (4105)
OrderComment ERR_NO_ORDER_SELECTED (4105)
OrderCommission ERR_NO_ORDER_SELECTED (4105)
OrderExpiration ERR_NO_ORDER_SELECTED (4105)
OrderLots ERR_NO_ORDER_SELECTED (4105)
OrderMagicNumber ERR_NO_ORDER_SELECTED (4105)
OrderOpenPrice ERR_NO_ORDER_SELECTED (4105)
OrderOpenTime ERR_NO_ORDER_SELECTED (4105)
OrderPrint ERR_NO_ORDER_SELECTED (4105)
OrderProfit ERR_NO_ORDER_SELECTED (4105)
OrderStopLoss ERR_NO_ORDER_SELECTED (4105)
OrderSwap ERR_NO_ORDER_SELECTED (4105)
OrderSymbol ERR_NO_ORDER_SELECTED (4105)
OrderTakeProfit ERR_NO_ORDER_SELECTED (4105)
OrderTicket ERR_NO_ORDER_SELECTED (4105)
OrderType ERR_NO_ORDER_SELECTED (4105)
PlaySound ERR_WRONG_FILE_NAME (4101)
SendFTP ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_CUSTOM_INDICATOR_ERROR (4055), ERR_STRING_PARAMETER_EXPECTED (4062)
SendMail ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_FUNCTION_NOT_CONFIRMED (4060), ERR_SEND_MAIL_ERROR (4061)
SetIndexArrow ERR_INVALID_FUNCTION_PARAMVALUE (4051)
SetIndexBuffer ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_INCORRECT_SERIESARRAY_USING (4054), ERR_INCOMPATIBLE_ARRAYS (4056)
SetIndexDrawBegin ERR_INVALID_FUNCTION_PARAMVALUE (4051)
SetIndexEmptyValue ERR_INVALID_FUNCTION_PARAMVALUE (4051)
SetIndexLabel ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_STRING_PARAMETER_EXPECTED (4062)
SetIndexShift ERR_INVALID_FUNCTION_PARAMVALUE (4051)
SetIndexStyle ERR_INVALID_FUNCTION_PARAMVALUE (4051)
SetLevelValue ERR_INVALID_FUNCTION_PARAMVALUE (4051)
Sleep ERR_CUSTOM_INDICATOR_ERROR (4055)
StringFind ERR_STRING_PARAMETER_EXPECTED (4062)
StringGetChar ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NOT_INITIALIZED_STRING (4008), ERR_ARRAY_INDEX_OUT_OF_RANGE (4002)
StringLen ERR_STRING_PARAMETER_EXPECTED (4062)
StringSetChar ERR_STRING_PARAMETER_EXPECTED (4062), ERR_INVALID_FUNCTION_PARAMVALUE (4051), ERR_NOT_INITIALIZED_STRING (4008), ERR_TOO_LONG_STRING (4011), ERR_ARRAY_INDEX_OUT_OF_RANGE (4002)
StringSubstr ERR_STRING_PARAMETER_EXPECTED (4062), ERR_TOO_LONG_STRING (4011)
StringTrimLeft ERR_STRING_PARAMETER_EXPECTED (4062)
StringTrimRight ERR_STRING_PARAMETER_EXPECTED (4062)
WindowIsVisible ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059)
WindowFind ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NOT_INITIALIZED_STRING (4008)
WindowHandle ERR_FUNC_NOT_ALLOWED_IN_TESTING (4059), ERR_STRING_PARAMETER_EXPECTED (4062), ERR_NOT_INITIALIZED_STRING (4008)
WindowScreenShot ERR_WRONG_FILE_NAME (4101), ERR_INVALID_FUNCTION_PARAMVALUE (4051)