欢迎来到MQL4课程的第三课。 回顾下上一课的内容: n 你可以使用什么格式来书写MQL4代码? n 怎样通过注释使你的程序更加完善? n 什么是标识符?选择他们有什么规则? n 什么是MQL4的保留字? 现在,让我们享受本课的乐趣“DATA TYPES”(数据类型) 数据类型是什么意思? 任何程序语言都有一套数据的内存表示的名称。 例如,如果内存保留一个-2147483648 到 2147483647之间的数,那么大多数的程序语言将命名这个数据为“整型数据”(Integer)。 变量? 变量是被提交到内存中的数据的名称。 你可以设想内存是连续的、大小不同的盒子。 l 为了使用一个盒子存储数据,这个盒子必须被赋予一个名称,这个过程被称为“声明”。 l 在“声明”过程,你用一个词告诉计算机你想使用的盒子类型和大小,这个词被称为“关键字”。 l 你还可以给这个盒子起一个好记的或者跟存储数据有关系的名字,这可以方便你以后找到这个数据。这个名字就叫“变量名”。 l 通过“赋值”,可以把数据放进盒子里。 l 我们可以在“声明”变量的同时就给它一个值,这个过程被称为“初始化”。 例如下面的这行代码: int MyVaraible=0; int ß 关键字 int ß 整型数据类型 int ß 声明 MyVaraible ß 变量名 =0 ß初始化 MQL4包括以下数据类型: ■整型数据 (int) 十进制: 数字 0 - 9 ,包括负数。 十六进制: 数字 0 - 9 , 字面 a - f 或者 A - F 代表 10 - 15; 以 0x 或者 0X 开头。 整型数据占用 4 字节的空间,其数值范围介于 -2147483648 ~ 2147483647 之间。如果超出这个范围,则视为无效。 例如: int intInteger = 0; int intAnotherIntger = -100; int intHexIntger=0x12; ■布尔数据 (bool) Boolean 用来表示 是 和 否, 还可以用数字 1 和 0 进行表示。True和Flase可以忽略大小写。 例如: bool I = true; bool bFlag = 1; bool bBool=FALSE; ■字符数据 (char) 任何带单引号的单一字符或者十六进制的 ASCII 码如 '\x10' 都是字符数据。 例如: 'a' , '$' , 'Z' 一些特殊的字符如单引号(')、双引号(")、问号(?)、反斜线(\)和控制符必须以反斜线开头(\), 组合表达原来的意思,如下表所示: 换行 NL (LF) \n 制表符 HT \t 回车 CR \r 反斜线 \ \\ 单引号 ' \' 双引号 " \" 十六进制ASCII hh \xhh 我们使用关键字INT创建字符类型。例如:
int chrA = 'A'; int chrB = '$'; int c = '©'; // 代码0xA9 int d = '\xAE'; //货币对代码 ■字符串数据 (string) 字符串数据是带有双引号的一连串 ASCII 字符 ,如: "Character constant"。 字符串可以容纳 0 到 255 个字符,如果超过这个长度,右边多余的字符将被忽略,编译器也会有相应的警示。 如果字符串中需要插入一个双引号(") 必须在它前面使用反斜线(\)。(参见字符数据部分) 我们使用关键字STRING来创建字符串数据,例如:
string str1 = "Hello world1, with you coders guru”; string str2 = "Copyright © 2005, \"Forex-tsd forum\"."; //注意双引号的使用. string str3 = "1234567890"; ■浮点型数据 (double) 浮点型数据由整数部分、小数点(.)和小数部分组成,其中整数部分和小数部分为一系列十进制数字。 浮点型数据 (双精度)占用 4 字节的空间。其数值范围介于 -1.7 * e-308 ~ 1.7 * e308 之间。如果超出这个范围,则视为无效。 我们使用关键字double来创建浮点型数据,例如:
double a = 12.111; double b = -956.1007; double c = 0.0001; double d = 16; double dblNumber3 = 1/4; ■颜色数据 (color) 颜色数据可以用三种方法表示: 字符数据、整型数据或者是颜色名(只能是 Web colors 中已命名的). 字符数据的表达方法是用三个数字来表示三种主要颜色:红、绿、蓝的比例。 以 C 开头,用单引号括住。数字的值在 0 ~ 255 之间按比例选取。 整数数据的表达方法使用十六进制或十进制数字。十六进制数字如 0x00BBGGRR, 其中 RR 是红色的比例,GG 是绿色的比例,BB 是蓝色的比例。十进制数不能直接体现红绿蓝的比例 ,而是十六进制数字的十进制表示方式。 特殊的颜色名可以参考Web colors set表。 示例: // 字符数据 C'128,128,128' // 灰色 C'0x00,0x00,0xFF' // 蓝色 // 颜色名 Red Yellow Black // 整型数据 0xFFFFFF // 白色 16777215 // 白色 0x008000 // 绿色 32768 // 绿色 颜色数据占用 4 字节的空间。第一个字节一般被忽略,后三个字节包含了红绿蓝的组成信息。 我们使用color关键字来创建颜色数据,例如:
color clr1= Red; color clr1= C'128,128,128' ; color clr1=32768; Web colors set表
■ 日期时间数据 (datetime) 日期时间数据由 6 个部分的字符组成:年、月、日、时、分、秒,以 D 开头, 用单引号括起。 日期(年、月、日)或者时间(时、分、秒)甚至两者一起都可以不用填写。 日期时间数据开始于 1. 1. 1970 截止到12.31. 2037 D'2004.01.01 00:00' // 新年 D'1980.07.19 12:30:27' D'19.07.1980 12:30:27' D'19.07.1980 12' //等于 D'1980.07.19 12:00:00' D'01.01.2004' //等于 D'01.01.2004 00:00:00' D'12:30:27' //等于 D'[编译日期] 12:30:27' D'' //等于 D'[编译日期] 00:00:00' 我们使用关键字datatime来创建日期时间数据,例如: datetime dtMyBirthDay= D'1972.10.19 12:00:00'; datetime dt1= D'2005.10.22 04:30:00';
|