MT4编程之MQL4编程语言介绍
2014/5/27 15:02:00
来源:外汇阁
浏览:2128
语言介绍
MetaQuotes Language 4 (MQL4) 是一种新的内置型程序用来编写交易策略。 这种语言可以创建你自己的智能交易,使自己的交易策略能够完全自动地执行。而且,MQL4 还能自定义客户指标,脚本和数据库。
内包含了大量可以分析当前及历史报价所必须的函数,以及一些基本的运算和逻辑操作。并内置了一些基本的指标和操作命令。
MetaEditor 4集合了编写 MQL4 程序代码的各种语句,它能帮助使用者方便地写出规范的代码。 MetaQuotes Language Dictionary 是 MQL4 语言的帮助工具,它包含了我们在使用工程中所有可能用到的函数。
编程特点
MetaQuotes Language 4(MQL4) 可以编写不同作用的程序代码:
-
智能交易 是一种连接到特定图表的自动交易系统。它能够根据设置的节点自动启动 ,当它开始运行后,它不会同时去处理另一个新的指令(也就是说必须等到当前程序完成)。 这种交易系统能够在提醒用户可以交易的同时,将交易定单自动送到交易服务器。与大多数交易系统一样, 它也能够用历史数据测试交易策略,并在图表上显示出来。
智能交易存储在 terminal_directory\experts。
-
自定义指标 可用来编写新的技术指标,和内置的指标一样,它不能用来进行自动交易, 只能作为分析数据的工具。
自定义指标储存在 terminal_directory\experts\indicators。
-
脚本 是执行单一功能的一段程序,和 智能交易不同,脚本不能单独执行,只能被调用。
脚本存储在 terminal_dictionary\experts\scripts。
-
数据库 常被使用的自定义函数的集合。数据库不能单独运行。
数据库建议存储在terminal_directory\experts\libraries。
-
包含文件 包含文件常被使用的程序块源代码,这些文件能够被包含在智能交易,脚本,客户指标和数据库 的源代码中。 使用包含文件比调用资料库更灵活快捷。
包含文件交易储存在 terminal_directory\experts\include。
语法简介
MetaQuotes Language 4(MQL4)的语法和C语言比较类似并且是一款面向过程语言。如果你C语言基础非常好很快就能上手。
除了以下这些特点和C语言不同:
-
没有运算地址;
-
没有 do ... while 语句;
-
没有 goto ... 语句;
-
没有 [条件][表达式 1]:[表达式 2] 语句;
-
没有复合数据类型 (结构);
-
复合负值是不允许的,例如:val1=val2=0; arr[i++]=val; cond=(cnt=OrdersTotal)>0; 等等;
-
逻辑表达式的计算完成前不可以提前终止。
主要的数据类型如下七个:
-
整型数据 (int)
-
布尔数据 (bool)
-
字符数据 (char)
-
字符串数据 (string)
-
浮点型数据 (double)
-
颜色数据 (color)
-
日期时间数据 (datetime)
主要的储存类型如下两个:
-
外部参数储存(extern)
-
静态变量储存(static)
主要的操作符类型如下十个:
-
终止操作符(break)
-
多重选择操作符(case)
-
继续操作符(continue)
-
多重选择操作符 (default)
-
条件操作符(else)
-
循环操作符(for)
-
条件操作符(if)
-
返回操作符(return)
-
多重选择操作符(switch)
-
循环操作符(while)
主要的其他如下两个:
主要的算术运算符如下八个:
-
+(加法运算符)
-
- (减法运算符)
-
-(改变运算符)
-
* (乘法运算符)
-
/ (除法运算符)
-
% (取摸运算符)
-
++(增量运算符)
-
-- (减量运算符)
主要的赋值运算符如下十一个:
-
= ( 值 )
-
+= (加法值)
-
-= (减法值)
-
*= ( 乘法值)
-
/= (除法值)
-
%= (百分比值)
-
>>= (右移值)
-
<<= (左移值)
-
&= (位逻辑运算符 AND值)
-
|= (位逻辑运算符OR值)
-
^= (位逻辑运算符 OR值)
主要的逻辑运算符如下十六个:
-
|| (逻辑或)
-
&& (逻辑并)
-
! (真假)
-
- (改变运算符)
-
~ (位逻辑运算符)
-
& (位逻辑运算符 AND )
-
| (位逻辑运算符 OR)
-
^ (位逻辑运算符 OR)
-
<< (左移)
-
>> (右移)
-
< (小于)
-
<= (小于等于)
-
> (大于)
-
>= (大于等于)
-
== (等于)
-
!= (不等于)
编程工具
MT4采用自带集成MetaEditor作为代码编译器。简单讲,编译器就是将“高级语言(MQL4)”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 → 预处理器 → 编译器 → 目标代码 → 链接器 → 可执行程序 (EA、指标、脚本)