mql4 的一些基础语法知识(初学者适用)

楼主  收藏   举报   帖子创建时间:  2019-05-05 05:41 回复:0 关注量:370
第一节      语法
  
  [Syntax] 代码格式 空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加代码的可读性。 注释 多行注释使用 结束,在这之间不能够嵌套。单行注释使用 // 作为开始到新的一行结束,可以被嵌套到多行注释之中。 示例: // 单行注释 标识符 标识符用来给量、函数和数据类型进行命名,长度不能超过31个字节 你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。此外首字母不可以是数字,标识符不能和保留字冲突. 示例: // NAME1 namel Total_5 Paper 保留字 下面列出的是固定的保留字。不能使用以下任何保留字进行命名。
  
  第二节 数据类型 [Data Types] 数据类型概述[table][tr][td]主要数据类型有:
               Integer (int)
               Boolean (bool)
            Literal (char)
               String (string)
               Floating-point number (double)
               Color (color)
               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, 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; boolc = 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 类型 字符串型是用来表示连续的ASCII码字符的使用连续的两个双引号来包括需要表示的内容如:"Character constant". 示例: "This is a character string" "Copyright symbol txA9" "this line with LF symbol  n" "A" "1234567890" "0" "$"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][table][tr][td]表达式 一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面
  。 示例: 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;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 y) Print("true"); n++; 位逻辑运算符 ~ 运算符对操作数执行按位求补操作。 b = ~n; >> 运算符对操作数执行向右位移操作。 x = x >> y; = Greater than or equals == Equals From left to right != Not equal & Bitwise AND operation From left to right ^ Bitwise exclusive OR From left to right | Bitwise OR operation From left to right && Logical AND From left to right || Logical OR From left to right = Assignment From right to left += Assignment addition -= Assignment subtraction *= Assignment multiplication /= Assignment division %= Assignment module >>= Assignment right shift 1) if(y==2) z=5; else z=6; if(x>l) { if(y==2) z=5; } else { z=6; } // 多项选择 if(x=='a') { y=1; } else if(x=='b') { y=2; z=3; } else if(x=='c') { y = 4; } else { Print("ERROR"); } 选择操作符 switch switch (expression) { case constant1: operators; break; case constant2: operators; break; ... default: operators; break; } 当表达式expression的值等于结果之一时,执行其结果下的操作。不管结果如何都将执行default中的操作。 示例: case 3+4: //正确的 case X+Y: //错误的 被选择的结果只可以是常数,不可为变量或表达式。 示例: switch(x) { case 'A': Print("CASE An"); break; case 'B': case 'C': Print("CASE B or Cn"); break; default: Print("NOT A, B or Cn"); break; } 循环操作符 while while (expression) operator; 只要表达式expression为真就执行操作operator 示例: while(k 循环操作符 for for (expression1; expression2; expression3) operator; 用表达式1(expression1)来定义初始变量,当表达式2(expression2)为真的时候执行操作operator,在每次循环结束后执行表达式3(expression3) 用while可以表示为这样: expression1; while (expression2) { operator; expression3; }; 示例: for(x=1;x
打赏