1MQL4REFERENCEMQL4命令手册(本手册采用Office2007编写)2010年2月2目录一、Basics基础..............................................................................................................................6二、Standardconstants标准常数.............................................................................................40三、ProgramRun程序运行........................................................................................................70四、Accountinformation账户信息............................................................................................86五、Arrayfunctions数组函数.....................................................................................................91六、Checkup检查......................................................................................................................102七、Clientterminal客户端信息................................................................................................108八、Commonfunctions常规命令函数....................................................................................109九、Conversionfunctions格式转换函数................................................................................115十、Customindicators自定义指标..........................................................................................119十一、Date&Timefunctions日期时间函数...........................................................................131十二、Filefunctions文件函数..................................................................................................137十三、Globalvariables整体变量变量.....................................................................................152十四、Math&Trig数学和三角函数.........................................................................................157十五、Objectfunctions目标函数.............................................................................................167十六、Stringfunctions字符串函数..........................................................................................177十七、Technicalindicators技术指标.......................................................................................181十八、Timeseriesaccess时间序列图表数据.........................................................................204十九、Tradingfunctions交易函数...........................................................................................211二十、Windowfunctions窗口函数..........................................................................................230二十一、Obsoletefunctions过时的函数.................................................................................24034MetaQuotesLanguage4(MQL4)是一种新的内置型程序用来编写交易策略。这种语言可以创建你自己的智能交易,使自己的交易策略能够完全自动地执行。而且,MQL4还能自定义客户指标,脚本和数据库。内包含了大量可以分析当前及历史报价所必须的函数,以及一些基本的运算和逻辑操作。并内置了一些基本的指标和操作命令。MetaEditor4集合了编写MQL4程序代码的各种语句,它能帮助使用者方便地写出规范的代码。MetaQuotesLanguageDictionary是MQL4语言的帮助工具,它包含了我们在使用工程中所有可能用到的函数。MetaQuotesLanguage4可以编写不同作用的程序代码:■智能交易是一种连接到特定图表的自动交易系统。它能够根据设置的节点自动启动,当它开始运行后,它不会同时去处理另一个新的指令(也就是说必须等到当前程序完成)。这种交易系统能够在提醒用户可以交易的同时,将交易定单自动送到交易服务器。与大多数交易系统一样,它也能够用历史数据测试交易策略,并在图表上显示出来。智能交易存储在terminal_directory\experts。■自定义指标可用来编写新的技术指标,和内置的指标一样,它不能用来进行自动交易,只能作为分析数据的工具。自定义指标储存在terminal_directory\experts\indicators。■脚本是执行单一功能的一段程序,和智能交易不同,脚本不能单独执行,只能被调用。脚本存储在terminal_dictionary\experts\scripts。■数据库常被使用的自定义函数的集合。数据库不能单独运行。数据库建议存储在terminal_directory\experts\libraries。5■包含文件包含文件常被使用的程序块源代码,这些文件能够被包含在智能交易,脚本,客户指标和数据库的源代码中。使用包含文件比调用资料库更灵活快捷。包含文件交易储存在terminal_directory\experts\include。6一、Basics基础MetaQuotesLanguage4(MQL4)是一种新型的交易策略内置语言。用来编写交易策略的程序语言。这种语言可以创建你自己的智能交易,使自己的交易策略能够完全地自动执行。程序内包含了分析历史报价的必备函数,以及一些基本的运算法和逻辑操作和一些基本的指标和操作命令。而且,MQL4还能自定义自己的客户指标,脚本和数据库。Syntax语法MQL4的语法类似于C语言,除了以下这些特点:没有运算地址;没有do...while语句;没有goto...语句;没有[条件][表达式1]:[表达式2]语句;没有复合数据类型(结构);复合负值是不允许的,例如:val1=val2=0;arr[i++]=val;cond=(cnt=OrdersTotal)0;等等;逻辑表达式的计算完成前不可以提前终止。Comments注释多行注释使用/*作为开始到*/结束,在这之间不能够嵌套。单行注释使用//作为开始到新的一行结束,可以被嵌套到多行注释之中。示例:7//单独注解/*multi-line//嵌入单独注解comment*/Identifiers标识符标识符用来给变量、函数和数据类型进行命名,长度不能超过31个字节,你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。此外首字母不可以是数字,标识符不能和保留字冲突.示例:NAME1namelTotal_5PaperReservedwords保留字下面列出的是固定的保留字。不能使用以下任何保留字进行命名。数据类型储存类型操作符其他boolexternbreakfalsecolorstaticcasetruedatetimecontinuedoubledefaultintelsestringforvoidifreturnswitchwhile8Datatypes数据类型所有的程序都依靠数据来运作,数据因目的不同可以有不同的类型。比如,访问数组可以用整型数据,价格可以用双精度的浮点型数据。在MQL4中没有专门用来标记货币值的数据类型。不同的数据类型有不同的处理速度,整型数据是最快的。双精度的数据处理需要额外的处理器,所以处理浮点型数据比较复杂,比处理整型数据慢一些。字符串是处理速度最慢的,因为它要存取动态内存。主要的数据类型如下:整型数据(int)布尔数据(bool)字符数据(char)字符串数据(string)浮点型数据(double)颜色数据(color)日期时间数据(datetime)color和datetime可以使我们更清楚的区分图表中的内容,在expertadvisor和indicator中经常使用这些数据类型。颜色和日期时间数据用整数来表示。int和double都属于数值(数字)型。在表达式运算中使用强制的类型转换。Typecasting类型转换表达式中使用强制的数据转换,转换时类型的优先级如下:9int(bool,color,datetime);double;string;在运算完成之前(除了数据已被定义的),数据会根据优先级被转换。当定义数据的操作完成前,数据会转换成被定义的数据类型。示例:inti=1/2;//没有类型转换,结果为0inti=1/2.0;//表达式中有浮点型数据,但会转换成整型数据,结果为0doubled=1.0/2.0;//没有类型转换,结果为0.5doubled=1/2.0;//表达式计算的结果是浮点型数据,和定义的类型一样,结果为0.5doubled=1/2;//表达式是整型数据的计算,然后被定义为浮点型数据,结果为0.0类型转换不但运用在常量中,还被运用在相应的变量中。Integerconstants整数常量十进制:数字0-9,包括负数。示例:12,111,-9561007十六进制:数字0-9,字面a-f或者A-F代表10-15;以0x或者0X开头。示例:0x0A,0x12,0