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

大白编程教学:MQL5没有运算地址也无法使用goto语句

从今天开始,大白将每天分享与mql5编程有关的内容。鉴于许多用户没有代码基础,对于许多计算机语言的基本定义也不太了解,因此无法准确理解计算机编程的行业内容和具体用法。为此,大白决定开设一个mql5学习专题,从零开始连载更新。我们希望能够和大家一起从代码的角度去理解指标和EA,直到最后每个人都能够编写出自己的“圣杯”EA。

前言:从今天开始,大白将每天分享与mql5编程有关的内容。鉴于许多用户没有代码基础,对于许多计算机语言的基本定义也不太了解,因此无法准确理解计算机编程的行业内容和具体用法。为此,大白决定开设一个mql5学习专题,从零开始连载更新。我们希望能够和大家一起从代码的角度去理解指标和EA,直到最后每个人都能够编写出自己的“圣杯”EA。

大白MQL5编程教学2023.3.31 :MQL5和C++的主要区别在哪里?(上篇)

首先,很多群友会问:MQL5是什么?C++又是什么?

简单的回答:

MQL5是一种程序交易策略语言,主要用于开发基于MetaTrader 5平台的自动化交易系统,语法结构相对较简单,针对交易策略编写而设计,更侧重于交易领域的应用;

而C++是一种通用的高级编程语言,语法结构更加复杂,适用于开发各种类型的应用程序;

大白点睛:MQL5的语法与C++非常相似,但是加入了一些专门针对交易的内置函数、变量等,便于开发者编写交易策略。

所以,接下来我们主要聊聊MQL5和C++二者之间的主要区别。

不同点1——MQL5中没有运算地址

"运算地址":指的是对指针变量进行算术运算的操作。指针变量存储了一个变量的地址,而指针运算可以将指针变量加上或减去一个整数值,从而获取指向内存中相对于该地址的另一个变量的地址。

例如,在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的值

 

不同点2——MQL5中无法使用goto语句

什么是goto语句?

goto语句是一种在计算机程序中使用的控制流语句。它允许程序跳转到代码中的指定位置,通常用于无条件跳转,以便从一个代码块中立即跳转到另一个代码块。

MQL5采用了结构化编程的思想,禁止使用goto语句是为了保证程序的可读性和可维护性。使用goto语句可能会导致程序的逻辑复杂性增加,使得代码难以理解和维护。因此,MQL5中不允许使用goto语句。

示例1:

//C++代码

//MQL5代码

大白点睛:在这个例子中,C++使用了goto语句来跳转到程序的结尾。然而,在MQL5中,我们使用break语句来实现同样的功能,跳出循环并执行结尾的代码。

 

示例2:

//C++代码

//MQL5代码

大白点睛:在这个例子中,C++使用了goto语句来跳转到程序的结尾。然而,在MQL5中,我们无法使用goto语句来跳转,而是需要使用一个标志变量来记录程序执行的状态,然后在需要跳转的时候通过修改标志变量的值来实现跳转。

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

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

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