发布时间 : 星期六 文章MT4编程语言MQL4入门(全接触)更新完毕开始阅读8ea8d98aad02de80d5d840b9
MT4编程语言全接触
语法 [Syntax]代码格式
空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加代码的可读性。 注释
多行注释使用 /* 作为开始到 */ 结束,在这之间不能够嵌套。单行注释使用 // 作为开始到新的一行结束,可以被嵌套到多行注释之中。 示例:
// 单行注释 /* 多行
注释 // 嵌套的单行注释 注释结束 */ 标识符
标识符用来给变量、函数和数据类型进行命名,长度不能超过31个字节
你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。此外首字母不可以是数字,标识符不能和保留字冲突. 示例:
// NAME1 namel Total_5 Paper 保留字
下面列出的是固定的保留字。不能使用以下任何保留字进行命名。 数据类型 bool color datetime double int string void
存储类型 extern static
操作符 break case continue default else for if return switch while
其它 false true
数据类型 [Data types]数据类型概述 主要数据类型有:
? ? ? ? ? ? ?
Integer (int) Boolean (bool) ?èò?eà?? (char) String (string)
Floating-point number (double) Color (color)
Datetime (datetime)
第 1 页 共 159 页
我们用Integer类型数据来作为DateTime和Color数据的存储。 使用以下方式可以进行类型站换: int (bool,color,datetime); double; string;
Integer 类型
十进制: 数字0-9;0不能作为第一个字母 示例:
12, 111, -956 1007
十六进制: 数字0-9;拉丁字母a-f或A-F用来表示10-15;使用0x或者0X作为开始。 示例:
0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7
Integer 变量的取值范围为-2147483648到2147483647。 Literal 类型
任意在单引号中的字符或十六进制的任意ASCII码例如'\\x10'都是被看作为一个字符,
一些字符例如单引号('),双引号(\问号(?),反斜杠(\\)和一些控制符都需要在之前加一个反斜杠(\\)进行转意后表示出来:
line feed NL (LF) \\n horizontal tab HT \\t carriage return CR \\r reverse slash \\ \\\\ single quote ' \\' double quote \
hexadecimal ASCII-code hh \\xhh
以上字符如果不经过反斜杠进行转意将不能被使用 示例:
int a = 'A'; int b = '$';
int c = '?'; // code 0xA9
int d = '\\xAE'; // symbol code ? Boolean 类型 Boolean 用来表示 是 和
否, 还可以用数字 1 和 0 进行表示。True和Flase可以忽略大小写。 示例:
bool a = true; bool b = false; bool c = 1;
Floating-point number 类型
浮点型变量在整数型后面加一个点(.)用来更精确的表示十进制数字。 示例:
double a = 12.111; double b = -956.1007; double c = 0.0001; double d = 16;
浮点型的取值范围从 2.2e-308 到 1.8e308.
第 2 页 共 159 页
String 类型
字符串型是用来表示连续的ASCII码字符的使用连续的两个双引号来包括需要表示的内容如:\constant\示例:
\\\\ Color 类型
颜色类型可以使用以下示例里的几种方式进行定义。 示例:
// symbol constants C'128,128,128' // gray C'0x00,0x00,0xFF' // blue // named color Red Yellow Black
// integer-valued representation 0xFFFFFF // white 16777215 // white 0x008000 // green 32768 // green Datetime 类型
时间类型使用年、月、日、时、分、秒来进行定义,你可以使用以下示例中的方式来定义变量。 示例:
D'2004.01.01 00:00' // New Year D'1980.07.19 12:30:27' D'19.07.1980 12:30:27'
D'19.07.1980 12' //equal to D'1980.07.19 12:00:00' D'01.01.2004' //equal to D'01.01.2004 00:00:00'
D'12:30:27' //equal to D'[compilation date] 12:30:27' D'' //equal to D'[compilation date] 00:00:00' 运算符和表达式 [Operations & Expressions] 表达式
一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。 示例:
a++; b = 10; x = (y*z)/w; 注:分号(;)是表达式的结束符。 算术运算符
第 3 页 共 159 页
Sum of values i = j + 2; Difference of values i = j - 3; Changing the operation sign x = - x; Product of values z = 3 * x; Division quotient i = j / 5;
Division remainder minutes = time % 60; Adding 1 to the variable value i++; Subtracting 1 from the variable value k--; 加减1的运算符不能被嵌套在表达式中 int a=3;
a++; // 可行的表达式
int b=(a++)*3; // 不可行的表达式 赋值运算符
注:将右侧的结果赋值给左侧的变量 将x的值赋值给y y = x; 将x的值加到y上面 y += x; 在y上面减去x的值 y -= x; 得到y的x倍的值 y *= x; 得到y除以x的值 y /= x; 取y除以x后的余数 y %= x; y向右位移x位 y >>= x; y向左位移x位 y <<= x; 得到逻辑AND的值 y &= x; 得到逻辑OR的值 y |= x; 得到逻辑非OR的值 y ^= x;
第 4 页 共 159 页