手机版

MQL4基础:数据类型

阅读 :
外_汇_邦 WaiHuiBang.com

  • 类型转换
  • 整型常量
  • 字符常量
  • 布尔型常量
  • 浮点常量(双精度常量)
  • 字符串常量
  • 颜色常量
  • 时间日期常量

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

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

主要的数据类型如下:

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

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

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

类型转换

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

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

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

示例:

int    i = 1 / 2;     // 没有类型转换,结果为 0int    i = 1 / 2.0;   // 表达式中有浮点型数据,但会转换成整型数据,结果为 0double d = 1.0 / 2.0; // 没有类型转换,结果为 0.5double d = 1 / 2.0;   // 表达式计算的结果是浮点型数据,和目标类型一样,结果为 0.5double d = 1 / 2;     // 表达式是整型数据的计算,然后被定义为浮点型数据,结果为 0.0string 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 码都是整型的字符常量。字符常量中包含一些特殊字符,如单引号(‘)、双引号(“)、问号(?)、反斜线(/)和控制符,必须以反斜线开头(/)转义表示,如下表所示:

换行             NL (LF)  /n制表符           HT       /t回车             CR       /r反斜线           /        //单引号           '        /'双引号           "        /"十六进制ASCII    hh       /xhh

如果上述字符不使用反斜线,结果将不被定义:

int a = 'A';int b = '$';int c = '©';      // 代码0xA9int d = '/xAE';   // 符号 ® 代码

字符数据占用 4 字节的空间。其数值范围介于 0 ~ 255 之间。如果超出这个范围,则视为无效。

布尔型常量

布尔型(Boolean) 常量用来表示 真值(true) 和 假值(false), 还可以用数字 1 和 0 进行表示。True 和 TRUE,False 和 FALSE都可使用(字母不区分大小写)。

示例:

>bool a = true;bool b = false;bool c = 1;

布尔型常量占用长度为4字节的内存空间,它用0或1的值表示。

浮点常量(双精度常量)

浮点型数据由整数部分、小数点(.)和小数部分组成,其中整数部分和小数部分都是一组十进制数字。

示例:

double a = 12.111;double b = -956.1007;double c = 0.0001;double d = 16;

浮点型数据 (双精度)占用 8 字节的内存空间。其数值范围介于 -1.7e-308 ~ 1.7e308 之间。如果超出这个范围,则视为无效。

字符串常量

字符串数据是用双引号括起来的一连串 ASCII 字符,如:”Character constant”。

字符串数据是双引号里的一组字符,如果需要在字符串中插入一个双引号(“),在它前而必须使用反斜杠(/)。如果有前置反斜杠(/),任何特殊字符都能用在字符串中。字符串长度介于0到255个字符之问,如果超过这个长度,尾部多余的字符将被忽略,编译器也会有相应的提示。

示例:

"This is a character string""Copyright symbol /t/xA9""this line contains a line feed symbol /n""C://Program Files//MetaTrader 4""A" "1234567890" "0" "$"

字符串数据占用 8 个字节的空间。其中第一部分为长的整型,存储字符串缓冲区的长度。第二部分是32位的存储字符串缓冲区的地址。

颜色常量

颜色数据可以用三种方法表示: 用字符表示、用整数表示或者是颜色名(只能是已经命名的Web颜色)。

用字符表示的方法是用三个数字来表示三种主要颜色:红、绿、蓝的比例。 颜色数据以 C 开头,并用单引号括住。每种颜色的比例值在 0 ~ 255 之间。

整数表示的方法是使用十六进制或十进制数字。十六进制数字如 0x00BBGGRR, 其中 RR 是红色的比例,GG 是绿色的比例,BB 是蓝色的比例。十进制数不能直接体现红、蓝、绿的比例 ,而是十六进制数字的十进制表示方式。

特殊的颜色名可以参考Web颜色表。

示例:

// 用字符表示C'128,128,128'    // 灰色C'0x00,0x00,0xFF' // 蓝色// 用颜色名表示RedYellowBlack// 用整数表示0xFFFFFF          // 白色16777215          // 白色0x008000          // 绿色32768             // 绿色

颜色数据占用 4 字节的内存空间。第一个字节一般被忽略,后三个字节包含了红绿蓝的组成信息。

时间日期常量

时间日期常量可以当作一个文本行来表示,它由6个部分组成:年、月、日、时、分、秒,以D开头,并用单引号括起来,其中日期(年、月、日)、时

问(时、分、秒)、甚至两者都可以同时省略。日期时问型常量变化范围1970. 1.1一2037. 12.31。

示例:

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'

日期时间数据占用 4 字节空间长度的整型数值。其值从1970年1月1日00:00开始以秒的形式显示总秒数。

外_汇_邦 WaiHuiBang.com
本文标题:MQL4基础:数据类型 - MT4平台MQL4编程学习
本文地址:https://www.waihuibang.com/fxschool/autotrading/mql4/49068.html

相关文章

  • MT4平台简易使用教程
    MT4平台简易使用教程

    一般的外汇操作软件就是MT4,这里给大家提供一份MT4的使用教程。 MT4的优点我在这里就不废话了。这款目前最主流功能超级强大的外汇交易软件,提供各种优于炒股软件的功能。基本的包括,挂单、锁单、自动止损止赢。包括...

    MQL4编程学习
  • MT4新编:简单三线交叉EA
    MT4新编:简单三线交叉EA

    MT4编程入门教程目录MT4编程入门1:MT4自定义指标的基本操作MT4编程入门2:指标源码中的常用符号说明MT4编程入门3:自定义变量MT4编程入门4:自定义函数MT4编程入门5:自定义数组MT4编程入门6:市场数据取值MT4编程入门7:判断...

    MQL4编程学习
  • MT4平台常识

    一、 MetaTrader 4 安装使用指南 1、下载安装后首先设置您的软件为中文——在View项中有Languages,可选择Simplified Chinese(简体中文); 2、在文件一项中,找到创建新账号,点击“创建新账号”,就会弹出注册表...

    MQL4编程学习
  • MT4最新更新导致指标EA无法更新的解决办法
    MT4最新更新导致指标EA无法更新的解决办法

    MT4的这次更新导致软件根目录的文件结构发生了变化,所以会导致指标和EA无法更新和失效的问题。 A、老版本直接更新结果如图:仍然存在Experts文件夹,但是实质上已经失效。 B、删除软件重新安装结果如图:Experts文件夹...

    MQL4编程学习
  • 替代MetaEditor的第三方编辑器解决方案
    替代MetaEditor的第三方编辑器解决方案

    mt4升级后,采用了mt5的编辑器,当你的中文注释越来越多的时候,输入会越来越慢,老半天还不显示字符。鉴于此,我们很有必要选用第三方编辑器来解决问题了。用第三方编辑器我们必须解决三个问题,一是编译,二是关键字输入提示,...

    MQL4编程学习
你可能感兴趣