MQL5语法基础(三)
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语法基础(三)相关推荐
- Python语法基础 三
Python语法基础 一 Python语法基础 二 Python数据结构-列表 Python数据结构-字典 Python数据结构-元组 Python数据结构-集合 Python-函数 1.while循 ...
- [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- 语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符)
语法基础(三. 类,属性,方法,方法重载,方法重写,构造方法,访问修饰符) (如有错误,欢迎指正,感谢!) 类 类是面向对象的程序设计中的概念,实现信息的封装 概念: 类就是拥有相等行为和相同的属性的 ...
- Java基础语法(三)——运算符
文章目录 Java基础语法(三)--运算符 一.算术运算符 1.基本四则运算符 (1)练习 (2)注意事项 2.复合运算符 3.自增自减操作符 二.关系运算符 三.逻辑操作符 1.逻辑与&&a ...
- Golang 基础之基础语法梳理 (三)
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 给Java初学者福利——Java语法基础
Java代码基本格式 Java中所有程序代码都必须存在于一个类中,用class关键字定义类,在class之前可以有一些修饰符.格式如下: 修饰符 class 类名 { 程序代码 } 注: 1.Java ...
- python语法基础知识总结-python语法基础知识
一.数字类型及操作 1.整数类型 可正可负,无取值范围限制pow(x,y):计算x^y 2.浮点数类型 存在不确定尾数round(x,d):对x四舍五入,d为小数截取位数e/E:a*10^b 3.复数 ...
- VRML语法基础跟简介
VRML语法基础和简介 VRML简介和基础语法 -------------------------------------------- 一.VRML是什么 VRML是虚拟现实造型语言 (Virtua ...
- Web开发(一)·期末不挂之第四章·CSS语法基础(CSS选择器选择器优先级各类样式表的使用方法)
CSS语法基础 一.单纯html控制样式的缺点 二. CSS✪✪✪ CSS概述 CSS基础语法 组成 选择器 标签选择器 类选择器 id选择器 通配选择器 后代选择器 插入样式表的三种方式 行内样式 ...
- [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题
作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了Go的编译运行 ...
最新文章
- mysql的in查询参数限制,多少数据量会造成性能下降?什么时候创建临时表合适?
- 图像sobel梯度详细计算过程_数字图像处理(第十章)
- 目录爆破工具 -- dirsearch
- [react] 怎样将多个组件嵌入到一个组件中?
- python剪切文件如何恢复_用python实现的可以拷贝或剪切一个文件列表中的所有文件...
- 第一个云原生步骤:自动化构建、测试和部署(二)
- python数据结构-图
- 设计模式之——动态代理模式
- Linux文件夹加密、解密
- 使用Word脚注、尾注给论文添加参考文献并将编号修改成[1]的方法
- linux ldap客户端工具,openldap(3)linux客户端 启用ldap、sssd 认证
- 嵌入式计算机的应用都有哪些,嵌入式系统的应用领域有哪些?
- 【眼镜片】绿膜和蓝膜有什么区别?
- C语言中getch()、getche()和getchar()
- Unbound classpath container: ‘JRE System Library’已解决
- 三明治创业者档案12:吴皓的零号线
- c#设计简单飞机行李托运计费系统
- 【GDOI 2016】第四题 疯狂动物城
- lqc_使用SNAT、DNAT策略实现网关应用
- web前端之sass简介
热门文章
- Openjudge 1.13 33:实数加法
- java resourcebundle_Java ResourceBundle.getBundle如何加载属性文件?
- firebug2.0.7 下载
- 高职高专院校人才培养工作水平评估工作感想
- Hybird A* 算法
- zemax准直透镜_基于ZEMAX的半导体激光器非球面准直透镜设计.PDF
- 浙江大学在Github开源了计算机课程,看完在家上个 985
- 成功烧写TMS320F2812经验
- Eclipse 官方简体中文语言包下载地址及安装方法
- spring boot小说网站系统 毕业设计源码论文+答辩PPT