前言:从今天开始,大白将每天分享与mql5编程有关的内容。鉴于许多用户没有代码基础,对于许多计算机语言的基本定义也不太了解,因此无法准确理解计算机编程的行业内容和具体用法。为此,大白决定开设一个mql5学习专题,从零开始连载更新。我们希望能够和大家一起从代码的角度去理解指标和EA,直到最后每个人都能够编写出自己的“圣杯”EA。
首先,很多群友会问:MQL5是什么?C++又是什么?
简单的回答:
MQL5是一种程序交易策略语言,主要用于开发基于MetaTrader 5平台的自动化交易系统,语法结构相对较简单,针对交易策略编写而设计,更侧重于交易领域的应用;
而C++是一种通用的高级编程语言,语法结构更加复杂,适用于开发各种类型的应用程序;
大白点睛:MQL5的语法与C++非常相似,但是加入了一些专门针对交易的内置函数、变量等,便于开发者编写交易策略。
所以,接下来我们主要聊聊MQL5和C++二者之间的主要区别。
"运算地址":指的是对指针变量进行算术运算的操作。指针变量存储了一个变量的地址,而指针运算可以将指针变量加上或减去一个整数值,从而获取指向内存中相对于该地址的另一个变量的地址。
例如,在C++编程语言中,可以通过使用指针变量来操作变量的地址,例如取地址运算符"&"可以返回变量的地址,"*"运算符可以解引用指针并获取指针所指向的变量的值。而在MQL5中,这些运算符并不存在。
MQL5中没有运算地址的案例
例子1:
//C++代码
int a=10;
int*ptr=&a;//获取a的地址,并将其存储在指针变量ptr中
*ptr=20;//通过指针变量ptr修改变量a的值为20
//MQL5代码
int a=10;
//在MQL5中,不能像C++一样获取变量a的地址并存储在指针变量中
a=20;//只能直接修改变量a的值
例子2:
//C++代码
int a=10;
int*ptr=&a;
int*ptr2=ptr+1;//指针运算,将指针ptr加1得到一个新的指针ptr2
//MQL5代码
int a=10;
//在MQL5中,不能像C++一样对指针进行算术运算,因为MQL5没有指针类型
int b=a+1;//只能使用基本的算术运算符直接操作变量a的值
什么是goto语句?
goto语句是一种在计算机程序中使用的控制流语句。它允许程序跳转到代码中的指定位置,通常用于无条件跳转,以便从一个代码块中立即跳转到另一个代码块。
MQL5采用了结构化编程的思想,禁止使用goto语句是为了保证程序的可读性和可维护性。使用goto语句可能会导致程序的逻辑复杂性增加,使得代码难以理解和维护。因此,MQL5中不允许使用goto语句。
示例1:
//C++代码
//MQL5代码
大白点睛:在这个例子中,C++使用了goto语句来跳转到程序的结尾。然而,在MQL5中,我们使用break语句来实现同样的功能,跳出循环并执行结尾的代码。
示例2:
//C++代码
//MQL5代码
大白点睛:在这个例子中,C++使用了goto语句来跳转到程序的结尾。然而,在MQL5中,我们无法使用goto语句来跳转,而是需要使用一个标志变量来记录程序执行的状态,然后在需要跳转的时候通过修改标志变量的值来实现跳转。