MT4编程语言MQL4入门(全接触) 联系客服

发布时间 : 星期六 文章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 页