《MT4编程语言MQL4入门(全接触)》由会员分享,可在线阅读,更多相关《MT4编程语言MQL4入门(全接触)(155页珍藏版)》请在金锄头文库上搜索。
1、MT4编程语言全接触语法 Syntax代码格式空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加代码的可读性。注释多行注释使用 /* 作为开始到 */ 结束,在这之间不能够嵌套。单行注释使用 / 作为开始到新的一行结束,可以被嵌套到多行注释之中。示例:/ 单行注释/* 多行 注释 / 嵌套的单行注释注释结束 */标识符标识符用来给变量、函数和数据类型进行命名,长度不能超过31个字节你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。此外首字母不可以是数字,标识符不能和保留字冲突.示例:/ NAME1 namel Total_5
2、 Paper保留字下面列出的是固定的保留字。不能使用以下任何保留字进行命名。数据类型存储类型操作符其它bool extern break false color static case true datetime continue double default int else string for void if return switch while 数据类型 Data types数据类型概述主要数据类型有: Integer (int) Boolean (bool) (char) String (string) Floating-point number (double) Color (c
3、olor) Datetime (datetime) 我们用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, 0X7C7Integer 变量的取值范围为-2147483648到2147483647。L
4、iteral 类型任意在单引号中的字符或十六进制的任意ASCII码例如x10都是被看作为一个字符,一些字符例如单引号(),双引号(),问号(?),反斜杠()和一些控制符都需要在之前加一个反斜杠()进行转意后表示出来:line feed NL (LF) nhorizontal tab HT tcarriage return CR rreverse slash single quote double quote hexadecimal ASCII-code hh xhh以上字符如果不经过反斜杠进行转意将不能被使用示例:int a = A;int b = $;int c = ; / code 0xA
5、9int 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.String
6、类型字符串型是用来表示连续的ASCII码字符的使用连续的两个双引号来包括需要表示的内容如:Character constant.示例:This is a character stringCopyright symbol txA9this line with LF symbol nA 1234567890 0 $Color 类型颜色类型可以使用以下示例里的几种方式进行定义。示例:/ symbol constantsC128,128,128 / grayC0x00,0x00,0xFF / blue/ named colorRedYellowBlack/ integer-valued represe
7、ntation0xFFFFFF / white16777215 / white0x008000 / green32768 / greenDatetime 类型时间类型使用年、月、日、时、分、秒来进行定义,你可以使用以下示例中的方式来定义变量。示例:D2004.01.01 00:00 / New YearD1980.07.19 12:30:27D19.07.1980 12:30:27D19.07.1980 12 /equal to D1980.07.19 12:00:00D01.01.2004 /equal to D01.01.2004 00:00:00D12:30:27 /equal to D
8、compilation date 12:30:27D /equal to Dcompilation date 00:00:00运算符和表达式 Operations & Expressions表达式一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。示例:a+; b = 10; x = (y*z)/w;注:分号(;)是表达式的结束符。算术运算符Sum of values i = j + 2;Difference of values i = j - 3;Changing the operation sign x = - x;Product of values z = 3 * x;Div
9、ision 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
10、;取y除以x后的余数 y %= x;y向右位移x位 y = x;y向左位移x位 y = x;得到逻辑AND的值 y &= x;得到逻辑OR的值 y |= x;得到逻辑非OR的值 y = x;注:一个表达式只能有一个赋值运算符.关系运算符用返回0(False)或1(True)来表示两个量之间的关系。a是否等于b a = b;a是否不等于b a != b;a是否小于b a b;a是否小于等于b a = b;真假运算符否定运算符(!),用来表示真假的反面的结果。/ 如果a不是真的if(!a)Print(not a);逻辑运算符或(|)用来表示两个表达式只要有一个成立即可。示例:if(xl)Print
11、(out of range);逻辑运算符和(&)用来表示两个表达式要同时成立才行。示例:if(p!=x & py)Print(true);n+;位逻辑运算符 运算符对操作数执行按位求补操作。b = n; 运算符对操作数执行向右位移操作。x = x y; 运算符对操作数执行向左位移操作。x = x y;一元 & 运算符返回操作数的地址为整型和 bool 类型预定义了二进制 & 运算符。对于整型,& 计算操作数的按位“与”。对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,其结果才为 true。b = (x & y) != 0);二进制 | 运算符
12、是为整型和 bool 类型预定义的。对于整型,| 对操作数进行按位“或”运算。对于 bool 操作数,| 对操作数进行逻辑“或”计算,也就是说,当且仅当两个操作数均为 false 时,其结果才为 false。b = x | y;为整型和 bool 类型预定义了 二进制操作数。对于整型, 计算操作数的按位“异或”。对于 bool 操作数, 计算操作数的逻辑“异或”;也就是说,当且仅当只有一个操作数为 true 时,其结果才为 true。b = x y;注:位逻辑运算符只作用于Integers类型其它运算符索引。定位在数组中i位置的值。array = 3;/将3负值到array数组第i位置上使用
13、x1,x2,.,xn 这样的方法将各种值传送到function中进行运算。示例:double SL=Ask-25*Point;double TP=Ask+25*Point;int ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,SL,TP,My comment,123,0,Red);优先级规则下面是从上到下的运算优先规则,优先级高的将先被运算。() Function call From left to right Array element selection! Negation From left to right Bitwise negation- Sig
14、n changing operation* Multiplication From left to right/ Division% Module division+ Addition From left to right- Subtraction Right shift Less than From left to right Greater than= Greater than or equals= Equals From left to right!= Not equal& Bitwise AND operation From left to right Bitwise exclusive OR From left to rig