1评论

1收藏

MQL4基础:数据类型

avatar 老周 | 1983 人阅读 | 1 人评论 | 2016-08-05

任何程序都要依靠数据来运行,数据因日的不同可以有不同的类型。比如,数组可以存取整型数据,价格可以用浮点型双精度数表示。在MQL4中没有专门用来表示货币值的数据类型。

不同的数据类型有不同的处理速度,整型数据是最快的。处理双精度的数据需要使用特殊的协处理器,所以,处理浮点型数据比较复杂,它比处理整型数据要慢一些。字符串处理速度是最慢的,因为它要分配/重分配计算机动态内存。

主要的数据类型如下:

  • 整型数据 (int)
  • 布尔型数据 (bool)
  • 字符型数据 (char)
  • 字符串型数据 (string)
  • 浮点型数据 (double)
  • 颜色数据 (color)
  • 日期时间数据 (datetime)



""
还没有人打赏,支持一下

评论|共 1 个

老周

发表于 2016-8-5 17:21:37 | 显示全部楼层

color型和datetime型仅仅是为了让我们更清楚地区分图表内容和输入这些参数时才有意义,这些参数可在和能交易的属性标签和自定义指标“输入”标签中设置。color和datatime型数据用整数来表示。int和double型统称为数值型。


在表达式运算中使用了隐式类型转换(自动转换)。

类型转换

在MQL4表达式中使用了隐式类型转换。由低到高转换类型的优先级:

int  (bool,color,datetime);
double;
string;

在运算完成之前(除数据己被定义的),数据自动转换为高优先级类型。当赋值操作完成时,数据会转换成目标数据类型。

示例:

int    i = 1 / 2;     // 没有类型转换,结果为 0
int    i = 1 / 2.0;   // 表达式中有浮点型数据,但会转换成整型数据,结果为 0
double d = 1.0 / 2.0; // 没有类型转换,结果为 0.5
double d = 1 / 2.0;   // 表达式计算的结果是浮点型数据,和目标类型一样,结果为 0.5
double d = 1 / 2;     // 表达式是整型数据的计算,然后被定义为浮点型数据,结果为 0.0
string s = 1.0/8;     // 表达式转成双精度型,再转成字符串型,结果为"0.12500000"(含10个字符)
string s = NULL;      // 整型常量转成字符串型,结果为"0"(含1个字符)
string s = "Ticket #"+1234;//表达式转成字符串型,与目标类型相同,结果为"Ticket #12345"

类型转换不但运用在常量中,还被运用在相应的变量中。

整型常量

十进制: 数字 0 – 9 ,包括负数。

示例:

12, 111, -956 1007



                               
登录/注册后可看大图




十六进制: 数字 0 – 9 , 字符 a – f 或者 A – F 代表 10 – 15; 以 0x 或者 0X 开头。

示例:

0x0A, 0x12, 0X12, 0x2f, 0xA3, 0Xa3, 0X7C7

整型数据占用 4 字节的内存空间,其数值范围介于 -2147483648 ~ 2147483647 之间。如果超出这个范围,则视为无效。

字符常量

任何带单引号的单一字符或者类似 ‘\x10’ 形式的十六进制ASCII 码都是整型的字符常量。字符常量中包含一些

您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则