文章 "MQL5 编程基础: 终端中的全局变量"

 

新文章 MQL5 编程基础: 终端中的全局变量已发布:

终端中的全局变量为开发复杂而可靠的EA交易提供了一种方便的工具,如果您掌握了全局变量,您就会发现在使用MQL5开发EA交易的时候它们是必不可少的。

执行脚本并在终端中打开全局变量窗口,窗口中应该包含一个新的叫做"test"的变量,并且它的数值为 1.23 (图 4)。

 
图 4. 带有新的 "test" 变量的全局变量窗口片段

实例的代码可以在 sGVTestCreate 脚本中找到。

作者:Dmitry Fedoseev

 

这篇文章堪称典范!

Глобальные переменные терминала — незаменимое средство при разработке сложных и надежных экспертов. Освоив работу с глобальными переменными терминала, вы уже не сможете представить себе создание экспертов на MQL5 без их использования.

在某种程度上,我不需要全局 终端变量。没有什么任务需要用到它们。

 
fxsaber:

这篇文章堪称典范!

在某种程度上,我不需要全局 终端变量。没有什么任务需要用到它们。

好吧,这么说吧,有的时候没有它们是不行的,除了写入文件然后读取,但这对许多任务来说都是非常耗费资源的,这就是全局终端变量的用武之地。


Dmitry Fedoseev:
你不应该将全局终端变量与众所周知的全局程序变量(图 2)混为一谈,如果你熟悉全局终端变量,可以尝试在其他编程语言中找到与之类似 的变量。

当然,这里也有一些疑问,在 js 和 php 语言中,什么是不可替代的,在域内工作,然而,以及 glob.terminal 只在单个终端的环境中工作


 
Vitaly Muzichenko:

好吧,这么说吧,有些时候没有它们是不行的,除了写入文件然后读取,但这对许多任务来说都是非常耗费资源的,这就是全局终端的用武之地。

不,我指的是别的。TC 交互 - 没有这样的任务。

 
Vitaly Muzichenko:

...

这里肯定有一些疑问,在 js 和 php 语言中,有什么是不能替代的?

差不多吧,我还真没想到。很好,这很有道理(考虑到使用 cookie 时的一些麻烦,而使用全局变量 时则完全没有这些麻烦)。

 
fxsaber:

不,我不是这个意思。TC 的交互 - 没有这样的任务。

看,最简单的一个:有一个智能交易系统,我们需要及时做一些事情,比方说不能超过每三小时一次。如果我们不使用 glob.variable,那么在终端重启后,我们就会完全失去对时间的控制,不知道事件最后一次执行是在什么时候,但如果时间存储在全局变量 中,那么无论我们重启了多少次终端,我们都可以随时获得这个时间。

总之,全局变量的应用领域非常广泛,正如我前面所写的,并不是没有全局变量就万事大吉。

 
fxsaber:

这篇文章堪称典范!

在某种程度上,我不需要全局 终端变量。没有什么任务需要用到它们。

您将如何解决这样一个问题:止损反转策略 - 在止损处的市场订单中,有一个成交量增加的止损订单,因此执行反转,增加手数直至盈利。但是乘法系数是 1.4,这样的系数实际上并不是每次乘法都会增加手数(因为需要将手数正常化)。在这里,我们只能通过 MathPow() 进行计算,这意味着我们需要初始手数和订单指数。

您也可以查看历史记录,但仍必须以某种方式标注初始订单。

如果没有全局变量,该怎么做呢?

 

点击目录中的任何链接:

进入此类页面:


 
Dmitry Fedoseev:

您将如何解决这个问题:止损反转策略--在止损处的市场订单上有一个成交量增加的止损器,因此执行反转并增加手数,直到有利润为止。但乘法系数为 1.4,这样的系数实际上并不是每次乘法都会增加手数(因为需要将手数正常化)。在这里,我们只能通过 MathPow() 进行计算,这意味着我们需要初始手数和订单指数。

您也可以查看历史记录,但仍必须以某种方式标注初始订单。

如果没有全局变量,该怎么做呢?

魔术
 

我希望这篇文章能给我一个解释:

-- 全局变量 的存储方式和位置(内存、磁盘)

-- 这些全局变量的读取频率

-- 等等。

遗憾的是,我在文章中没有找到这些问题的答案。

 
Vitaly Muzichenko:

最简单的情况是:有一个智能交易系统,我们需要按时执行某些操作,比如每三个小时执行一次。如果我们不使用 glob.variable,那么在终端重启后,我们就会完全失去对时间的控制,不知道事件最后执行的时间,但如果时间存储在一个全局变量 中,那么无论我们重启了多少次终端,我们都可以随时获得这个时间。

总之,全局变量的应用领域非常广泛,正如我前面所写的,并不是没有全局变量就万事大吉。

是的,在这种情况下,全局变量是 理想的选择。只是在编写 TS 和指标时,我从未遇到过需要在终端层记忆一些东西的任务。

这就是为什么我对这样的说法感到有些惊讶

在开发复杂可靠的智能交易系统时, 全局终端变量是不可或缺的工具。一旦掌握了全局终端变量,您将无法想象在 MQL5 中创建智能交易系统时不使用 全局终端变量。

我对全局变量、图形对象和文件有一定的了解。但我从未用它们(或其他任何东西)记住过 TS 的任何东西。虽然,TC 是可靠的,而且相当重。