[转帖][排版重发]mql4 的一些基础语法知识(初学者适用)

楼主  收藏   举报   帖子创建时间:  2019-05-05 15:33 回复:0 关注量:843
第一节 语法 [Syntax]
  代码格式
  空格建、Tab键、换行键和换页符都可以成为代码排版的分隔符,你能使用各种符号来增加代码的可读性。
  注释
  多行注释使用 结束,在这之间不能够嵌套。单行注释使用 // 作为开始到新的一行结束,可以被嵌套到多行注释之中。
  示例:
  // 单行注释
  
  
  
  标识符
  标识符用来给变量、函数和数据类型进行命名,长度不能超过31个字节
  你可以使用数字0-9、拉丁字母大写A-Z和小写a-z(大小写有区分的)还有下划线(_)。此外首字母不可以是数字,标识符不能和保留字冲突.
  示例:
  // NAME1 namel Total_5 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)
  * ?èò?eà?? (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;
  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 类型
  字符串型是用来表示连续的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]
  表达式
  一个表达式可以拥有多个字符和操作符,一个表达式可以写在几行里面。
  示例:
  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;
  roduct 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)
  rint("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
打赏