品牌外汇智能交易MQL4语言教程(一) | 有效期至长期有效 | 最后更新2019-01-10 18:47 |
浏览次数844 |
外汇智能交易MQL4语言教程(一)
什么是智能交易系统?它是一个用特殊的metaQuotes 语言 4 (MQL 4)编写的自动交易系统(ATS),和特定的图表联系在一起。智能交易系统不仅能通知交易商交易机会,而且还能自动执行交易账户上的交易,直接发送到交易服务器。和许多的IT系统一样,智能交易系统系统支持历史数据战略测试,图表上表示的登入/登出点。而且,智能交易系统的可执行码分别存储于源文件和加密的执行文件中-这种安排保证了交易商所使用的逻辑隐藏(如有必要的话),而不会泄密。
metaTrader4 软件将智能交易系统在程序的根目录/Experts 子目录里保存为*.MQ4(source text) 和 *.EX4 (可执行码)文件。交易商可以无限量地保存智能交易系统数据,这些数据可以通过导航条窗口容易地加以管理。
创建自定义智能交易系统数据的程序以及将数据和交易终端连接在metaTrader4 用户指南里有详细的描述。 metaQuotes 4 语言是用来编写自定义智能交易系统软件,以便使交易程序管理自动化以及执行交易商自己的交易策略。metaQuotes 4 语言易学、易用、易创建。metaQuotes 4 语言包括相当数量的变量,用来控制当前和前期的报价、主要的算术和逻辑运算和特征,主要的内置指标和用来开启和控制头寸的命令。在语法上,该语言和由TradeStation 技术有限公司开发的简易语言相似,但是它有其自身的一些具体特征。 程序代码是用metaEditor4编辑器编写的,它能够用不同的色彩集中反映MQL 4语言的不同结构,因此,有助于用户熟悉专家系统的文本。 注解开始于//符号(双斜线)。注解也可以用 斜线-星号 - 星号-斜线 组合(, 就像在 C 编程语言一样)。 设定和控制操作战略,交易商保存一份日志文件,存储产生的信号信息、变量输出和已执行交易的结果。智能交易系统日志保存在metaTrader4 目录下/logs/YYYYMMDD.log 文件里。当前的日志可以从下方的 终端 窗口(日志标签)直接进入。 进入MQL 4语言的目录系统,要么按目录按钮或从工具菜单打开metaQuotes语言词典窗口操作。这个教程包含分类、运算、存储词语等功能,使得用户对该语言所用到的每个元素都有所了解。 1. 主要语言结构 像其他任何语言一样,MQL4有一套构成基本结构的主要组成元素。这些组成元素以一种特殊的方式组合排列的,以便代表适当的陈述和表达。 语言的主要对象就是数据,包括三种类型:数字、逻辑和排列。 所有的数值均采用双格式,逻辑数据可能包括真值和假值。排列就是用省略号标注的一系列字符。字符串也叫做文本串。数据可以包含在适当类型的变量之中,或直接由程序的源文本表现出来。 一个metaQuotes 语言陈述指一个完整的用法说明。陈述可以包括保留字、运算符号、数据、变量、表达式或标点符号,而且总是以分号结尾。 保留字指具有特定或特别意义的预先设定的词语。 运算符号指在数据、变量和(或)表达式中特定的具体运算符号。 变量是用来限制数字、排列或逻辑数据的。 表达式指保留字、变量、数据和运算符号的组合,因为它们具有语言的3中类型(保留字、变量、数据)中的任一价值。 标点符号用来代表表达式,界定参数,区分词语或重新排列计算顺序。 2. 标点符号分配符号 = (等号)是用来将具体数值(数字、排列或逻辑,视变量类型而定)分配到变量中。分配值可以是表达式的结果。比如:
变量: Counter(0);
...
Counter = Counter + 1;结果,反向变量取值为1。变量值也可以分配来对元素进行排列。 3.2. 字串符号 操作文本串,只有一个运算符可以用上: + (加号)。 它是用来连接两个字串的。比如: 变量: 字串(
...
字串 = some_ + text
结果,字串变量包含 some_text 这样的文本串,允许将字串与数字和逻辑值结合起来。在后面的这个例子里,数字及或逻辑值在结合前,应转化为字串类型。比如:
String = string + 1;
因此,字串变量将包含 string1 的文本串。
操作数不仅可以是数值,也可以是相应的含有这样数值类型的变量,以及表达式,经执行后,便产生这样的数值。 3.3. 数学符号 4种主要的数学运算:加法- + (加号)、减法- - (减号)、乘法- * (星号)、除法- / (斜线),都用在计算数值的数学表达式里。 数学表达式的例子:( Ask + Bid ) / 2 , High[1] + 20 * Point 3.4. 相关符号 相关符号用来对同种类型的两个数值进行比较。 第一个数值和第二个数值进行比较,产生逻辑值 真值 或 假值 , 小于 - (左小于号), 大于 - (右小于号); 等于 - = (等号); 不等于 - ; 小于或等于 - = ; 大于或等于 - = 。由相关表达式而取得的逻辑值用在metaQuotes II语言的控制结构里。比如: if FreeMargin 1000 then exit; 这个字串按词典顺序进行比较,即, aaa 字串被认为小于字串 zzz 。当逻辑值进行比较时,我们应该牢记: True 的逻辑值的数值为1,而 False 的逻辑值的数值为 0 。 3.5. 逻辑符号 逻辑符号使用户能够将逻辑值结合起来。逻辑OR - | (垂直线或竖杠);逻辑AND- ( 和 符号)。逻辑符号有相应的保留字OR, AND, NOT。 比如: If FreeMargin 100 and FreeMargin 1000 then print( Free margin is , FreeMargin );注意:当OR 和 AND运算符号是双值时,即它们有两个值进行运算,NOT运算符号是单值,即它之适用于单值。比如:
Variable: Condition1( True );
...
Condition1 = FreeMargin = 1000;
If not Condition1 then exit; 下面是逻辑运算符号的结果表: