MQL5语法基础(三)

整型数据

在MQL5中整数有11个类型,如果逻辑程序需要,一些类型能与另一些类型一起使用,但是在此 种情况下,要记住类型转换规则。

下面列表中显示了每一类型的特性,此外,每一类型的最后一列均与C++程序类型相同。

类型 字节大小 最小值 最大值 C++类比
char 1 -128 127 char
uchar 1 0 255 unsigned char, BYTE
bool 1 0(false) 1(true) bool
short 2 -32768 32767 short,wchar_t
ushort 2 0 65635 unsigned short, WORD
int 4 -2147483648 2147483647 int
uint 4 0 4294967295 unsigned int,DWORD
color 4 -1 16777215 int,COLORREF
long 8 -9223372036854775807 9223372036854775807 _int64
ulong 8 0 18446744073709551615 unsigned_int64
datetime 8 0(1970.01.010:00:00) 32535244799 (3000.12.31 23:59:59) _time64_t

整型值也可视为数字常数,颜色值和,日期时间值,字符常量 和计数 。

字符型,短整型,整型和长整型

  • char
    字符型 在内存里存储1字节( 8位元组),允许二进制记录法2^8=256表达值。 字符型包括正值和负值,范围在-128-127之间。
  • uchar
    无字符型 和字符型一样,也占据1字节内存,但与之不同的是,它只有正值。最小值是0,最大值是255无字符 型的第一个字母u是unsigned的缩写。
  • short
    短型 数据2字节( 16位元组),所以它可以表达等于2的值和16: 2^16 = 65536,因此短型还是一个符号,包括正值和负值,范围在-32768到32767之间。
  • ushort
    无符短型是ushort,也占用2字节,最小值是0,最大值是65535。
  • int
    整型占用4字节内存( 32元组),最小值是-2147483648,最大值是2147483647。
  • uint
    无符号整型就是uint。它占用4字节内存,区间在0到4 294 967 295之间。
  • long
    长型占用8字节( 64元组),最小值是-9223372036854775808,最大值是9223372036854775807。
  • ulong
    无符长型也占用8字节,能存储从0到18446744073709551615之间的值。

示例:

 char ch=12;short sh =-5000;int in=2445777;

无符长型不代表短型的负值,建立负值会导致意外的结果,该脚本会无限循环:

//---无限循环
void OnStart()
{
uchar u_ch;
for(char ch= -128;ch<128;ch++)
{
u_ch+ch;
Print("ch=",ch,"u_ch=",u_ch);
}
}

正确的转化是:

void OnStart()
{
uchar  u_ch;for(char ch=-128;ch<=127;ch++)    {      u_ch=ch;     Print("ch = ",ch," u_ch = ",u_ch);     if(ch==127) break;  } }

结果:

 ch= -128  u_ch= 128 ch= -127  u_ch= 129ch= -126  u_ch= 130  ch= -124  u_ch= 132  ch= -123  u_ch= 133  ch= -121  u_ch= 135  ch= -119  u_ch= 137 ch= -117  u_ch= 139  ch= -115  u_ch= 141  ch= -113  u_ch= 143  ch= -111  u_ch= 145 ...

示例

//负值不能存储在无符类型中
uchar u_ch=-120;
ushort u_sh=-5000;
uint u_in=-401280;
十六进制:数字0-9,字母a-f,或A-F表示值10-15,从0x或0X开始。

示例

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

对于整型变量,值可以使用B前缀以二进制格式设置。例如,您可以编码交易时间的工作小时 为int类型变量并根据所需的算法使用他们的信息:

//+------------------------------------------------------------------+
//| 脚本程序开始函数                                                |
//+------------------------------------------------------------------+
void OnStart()
{
//--- 设置 1 为工作小时和 0 为非工作小时   int AsianSession   =B'111111111'; // 亚洲时间从 0:00 到 9:00   int EuropeanSession=B'111111111000000000'; // 欧洲时间 9:00 - 18:00   int AmericanSession =B'111111110000000000000011'; // 美洲时间 16:00 - 02:00 //--- 派生时间数值   PrintFormat("Asian session hours as value =%d",AsianSession);  PrintFormat("European session hours as value is %d",EuropeanSession);  PrintFormat("American session hours as value is %d",AmericanSession); //--- 现在让我们展示时间工作小时的字符串表示   Print("Asian session ",GetHoursForSession(AsianSession));  Print("European session ",GetHoursForSession(EuropeanSession));  Print("American session ",GetHoursForSession(AmericanSession));  //--  }
//| 返回时间工作小时为字符串                                       |
//+------------------------------------------------------------------+
string GetHoursForSession(int session)
{
//--- 若要检查,使用AND比特操作并左移1比特<<=1
//--- 从最小比特开始检查
int bit=1;
string out="working hours: ";
//--- 从零开始检查全部24比特并最高到23
for(int i=0;i<24;i++)     {      //--- 总共接收的比特数      bool workinghour=(session&bit)==bit;      //--- 添加小时数到嘻嘻      if(workinghour )out=out+StringFormat("%d ",i);       //--- 左移1比特检查下一个的值      bit<<=1;     }  //--- 结果字符串    return out;   }

MQL5语法基础(三)相关推荐

  1. Python语法基础 三

    Python语法基础 一 Python语法基础 二 Python数据结构-列表 Python数据结构-字典 Python数据结构-元组 Python数据结构-集合 Python-函数 1.while循 ...

  2. [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. 语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符)

    语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符) (如有错误,欢迎指正,感谢!) 类 类是面向对象的程序设计中的概念,实现信息的封装 概念: 类就是拥有相等行为和相同的属性的 ...

  4. Java基础语法(三)——运算符

    文章目录 Java基础语法(三)--运算符 一.算术运算符 1.基本四则运算符 (1)练习 (2)注意事项 2.复合运算符 3.自增自减操作符 二.关系运算符 三.逻辑操作符 1.逻辑与&&a ...

  5. Golang 基础之基础语法梳理 (三)

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  6. 给Java初学者福利——Java语法基础

    Java代码基本格式 Java中所有程序代码都必须存在于一个类中,用class关键字定义类,在class之前可以有一些修饰符.格式如下: 修饰符 class 类名 { 程序代码 } 注: 1.Java ...

  7. python语法基础知识总结-python语法基础知识

    一.数字类型及操作 1.整数类型 可正可负,无取值范围限制pow(x,y):计算x^y 2.浮点数类型 存在不确定尾数round(x,d):对x四舍五入,d为小数截取位数e/E:a*10^b 3.复数 ...

  8. VRML语法基础跟简介

    VRML语法基础和简介 VRML简介和基础语法 -------------------------------------------- 一.VRML是什么 VRML是虚拟现实造型语言 (Virtua ...

  9. Web开发(一)·期末不挂之第四章·CSS语法基础(CSS选择器选择器优先级各类样式表的使用方法)

    CSS语法基础 一.单纯html控制样式的缺点 二. CSS✪✪✪ CSS概述 CSS基础语法 组成 选择器 标签选择器 类选择器 id选择器 通配选择器 后代选择器 插入样式表的三种方式 行内样式 ...

  10. [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了Go的编译运行 ...

最新文章

  1. mysql的in查询参数限制,多少数据量会造成性能下降?什么时候创建临时表合适?
  2. 图像sobel梯度详细计算过程_数字图像处理(第十章)
  3. 目录爆破工具 -- dirsearch
  4. [react] 怎样将多个组件嵌入到一个组件中?
  5. python剪切文件如何恢复_用python实现的可以拷贝或剪切一个文件列表中的所有文件...
  6. 第一个云原生步骤:自动化构建、测试和部署(二)
  7. python数据结构-图
  8. 设计模式之——动态代理模式
  9. Linux文件夹加密、解密
  10. 使用Word脚注、尾注给论文添加参考文献并将编号修改成[1]的方法
  11. linux ldap客户端工具,openldap(3)linux客户端 启用ldap、sssd 认证
  12. 嵌入式计算机的应用都有哪些,嵌入式系统的应用领域有哪些?
  13. 【眼镜片】绿膜和蓝膜有什么区别?
  14. C语言中getch()、getche()和getchar()
  15. Unbound classpath container: ‘JRE System Library’已解决
  16. 三明治创业者档案12:吴皓的零号线
  17. c#设计简单飞机行李托运计费系统
  18. 【GDOI 2016】第四题 疯狂动物城
  19. lqc_使用SNAT、DNAT策略实现网关应用
  20. web前端之sass简介

热门文章

  1. Openjudge 1.13 33:实数加法
  2. java resourcebundle_Java ResourceBundle.getBundle如何加载属性文件?
  3. firebug2.0.7 下载
  4. 高职高专院校人才培养工作水平评估工作感想
  5. Hybird A* 算法
  6. zemax准直透镜_基于ZEMAX的半导体激光器非球面准直透镜设计.PDF
  7. 浙江大学在Github开源了计算机课程,看完在家上个 985
  8. 成功烧写TMS320F2812经验
  9. Eclipse 官方简体中文语言包下载地址及安装方法
  10. spring boot小说网站系统 毕业设计源码论文+答辩PPT