香港:
  • 纽约:
  • 伦敦:
  • 东京:
  • 悉尼:
  • 香港:
  • 新加坡:
首页> 资讯> 最新 >正文

大白编程教学:什么是MQL5标识符,MQL5的保留字有哪些?

在MQL5中,有很多保留字,例如if、for、while等等。因此,在命名变量、函数或者对象时,需要避免使用这些保留字作为标识符,以免造成编译错误。

上文大白介绍了MQL5中如何使用单行/双行注释,本文大白MQL5编程教学将同大家一起学习标识符。

一、什么是MQL5标识符

MQL5标识符是用于表示变量、函数、对象、常量等程序元素的名称。它们在程序中起着非常重要的作用,可以帮助程序员更好地组织和管理代码。

在MQL5中,标识符的命名规则如下

  • 只能由字母、数字和下划线组成
  • 第一个字符必须是字母或下划线
  • 标识符长度不能超过63个字符
  • 区分大小写
  • 标识符不能和保留字冲突

二、MQL5标识符代码示例

以下示例中的标识符分别为 myVariable、MyFunction、MyClass.

// 定义一个整型变量
int myVariable = 0;

// 定义一个函数
void MyFunction(double parameter)
{
    // 函数体
};

// 定义一个对象
class MyClass
{
    // 类成员
};

三、MQL5标识符不能和保留字冲突

保留字是编程语言中具有特殊含义的关键字,不能用作标识符。如果标识符与保留字相同,则会导致编译错误。

例如,下面的代码中,使用了保留字作为标识符,导致编译错误:

double if = 1.0; // if是保留字,不能用作标识符

正确的做法是选择其他的标识符,例如:

double x = 1.0;

在MQL5中,有很多保留字,例如if、for、while等等。因此,在命名变量、函数或者对象时,需要避免使用这些保留字作为标识符,以免造成编译错误。

四、MQL5保留字有哪些

数据类型

MQL5中的数据类型指的是在代码中声明变量时所使用的类型,MQL5中有以下几种数据类型

整型(int):用于存储整数,包括正数、负数和零。例如:int variable_name;

双精度浮点型(double):用于存储浮点数,包括小数和整数。例如:double variable_name;

布尔型(bool):用于存储布尔值,即true或false。例如:bool variable_name;

字符串型(string):用于存储字符串,即一系列字符。例如:string variable_name;

颜色型(color):用于存储颜色,表示为RGB值。例如:color variable_name;

日期时间型(datetime):用于存储日期和时间。例如:datetime variable_name;

访问分类符

公共访问分类符(public)可以让变量或函数在整个程序中都可见和访问,在MQL5中,使用public关键字来定义公共成员

私有访问分类符(private)允许变量或函数只在类内部可见和访问。在MQL5中,使用private关键字来定义私有成员。

受保护访问分类符(protected)允许变量或函数在类内部和派生类中可见和访问。在MQL5中,使用protected关键字来定义受保护成员。

虚函数访问分类符(virtual)用于实现多态性。在MQL5中,使用virtual关键字来声明虚函数。

....

存储类型

extern用于声明变量并表示它是在外部定义的。在MQL5中,我们通常使用extern关键字来声明一些在主程序以外定义的变量,这些变量可以在主程序中被访问和使用。例如:

extern double Lots=0.01;

在上面的例子中,我们声明了一个名为Lots的变量,并将其初始化为0.01。由于我们使用了extern关键字,所以这个变量可以在主程序以外的其他文件中被访问和使用。

input用于声明一个参数,并表示它可以由用户在程序启动时输入。在MQL5中,我们通常使用input关键字来声明一些需要在程序运行时由用户输入的参数,例如:

input double StopLoss=50.0;

在上面的例子中,我们声明了一个名为StopLoss的参数,并将其初始化为50.0。由于我们使用了input关键字,所以这个参数可以在程序启动时由用户输入,而且用户可以通过修改这个参数的值来改变程序的行为。

static用于声明一个变量并表示它在程序执行期间保持不变。在MQL5中,我们通常使用static关键字来声明一些需要在程序执行期间保持不变的变量,例如:

static int Count=0;

在上面的例子中,我们声明了一个名为Count的变量,并将其初始化为0。由于我们使用了static关键字,所以这个变量在程序执行期间保持不变,即使它被声明在一个函数内部,在函数执行完毕后也不会被销毁。

操作符

break用于中断当前的循环语句(for、while或do-while)。在MQL5代码中,我们通常使用break关键字来在满足某个条件时提前退出循环,例如:

for(int i=0;i<10;i++){if(i==5){break;}Print(i);}

在上面的例子中,当变量i等于5时,break语句被执行,循环就会被中断,输出结果为0、1、2、3、4。

return用于从当前函数中返回一个值,并结束函数的执行。在MQL5代码中,我们通常使用return关键字来将某个值作为函数的返回值,例如:

int Add(int a,int b){return a+b;}

在上面的例子中,我们定义了一个名为Add的函数,它接受两个整数参数a和b,并将它们相加作为返回值。当我们调用这个函数时,它会返回a和b的和。

offsetof是一种宏,用于获取结构体中指定成员的偏移量。在MQL5代码中,我们通常使用offsetof宏来获取某个成员在结构体中的偏移量,例如:

struct Position{double price;int volume;datetime openTime;};int main(){int offset=offsetof(Position,volume);Print(offset);}

在上面的例子中,我们定义了一个名为Position的结构体,它包含了三个成员:price、volume和openTime。在main函数中,我们使用offsetof宏获取了成员volume在结构体中的偏移量,并将结果输出。在这个例子中,偏移量为8,表示成员volume在结构体中的地址相对于结构体地址的偏移量为8个字节。

其他

template用于定义通用的代码模板。在MQL5代码中,我们通常使用template来定义一些通用的函数或类,以便在多个地方复用。例如:

在上面的例子中,我们定义了一个名为Max的函数模板,它接受两个同类型的参数a和b,并返回其中的较大值。在main函数中,我们使用Max模板来获取a和b的最大值,并将结果输出。

namespace用于定义命名空间。在MQL5代码中,我们通常使用namespace来避免不同模块之间的命名冲突,例如:

在上面的例子中,我们定义了一个名为MyNamespace的命名空间,它包含了一个名为value的变量和一个名为PrintValue的函数。在main函数中,我们使用MyNamespace::PrintValue来调用这个函数,并输出变量value的值。

#property是一种预处理器指令,用于定义指定的属性。在MQL5代码中,我们通常使用#property来定义一些与EA相关的属性,例如:

#property strict;#property version;#property copyright;#property link;

在上面的例子中,我们使用#property指令来定义了四个属性:strict、version、copyright和link。这些属性可以在EA编译时被访问,并用于EA的相关功能。

【免责声明】123财经导航所发布的信息内容仅供交易投资者参考,并不构成投资建议“据此操作,风险自担”。网站上部分信息内容及图片来自于网络/注册作者/投稿人,版权归原作者所有,如有侵权,请您与我们联系关闭,邮箱:938123@qq.com。
第三方账号登录
第三方账号登录
第三方账号登录
  • *站点:
  • *网址:
  • 类型:
  • 联系方式:
  • 简介:

  • RRH123欢迎您的加入!如有问题请添加咨询管理员【微信号:938123】
  • *类型:
  • *问题:
  • 图片说明:
  • 联系方式:

  • RRH123感谢您的反馈!如有问题请添加咨询管理员【微信号:938123】