错误、漏洞、问题 - 页 3012

 
Andrei Trukhanovich:

帮助并不同意这种解释。

帮助是为mql写的,而mql是用ci写的))
了解了c的基础知识,就会清楚什么是什么。

 
Roman:
我认为这很简单--你没有理解帮助中所说的内容
 
Andrei Trukhanovich:
我认为这很简单--你没有理解帮助中所说的内容

总的来说,这是不正确的!

 
Roman:

总的来说,这是不正确的!

我不打算对此进行争论。

 
Roman:

帮助是为mql写的,而mql是用ci写的 ))
如果你知道C的基础知识,你会知道什么是什么。

在C语言中,数组 和字符串的大小 是事先未知的,而在MQL中,它们是已知的--这是一个重大的区别--因此,在MQL中,不需要重复的冗余参数。

 
A100:

在C语言中,数组 和字符串的大小 是事先未知的,而MQL是已知的--这是一个重大的区别--所以在MQL中,你不需要多余的参数来重复它们。

一个动态数组是动态的,这就是为什么它期望用户得到任何大小。
为了让动态数组理解他的要求,程序员应该告诉他:

-嘿,动态数组,我想给你发送数据。
,他回答:
-那你的数据是什么类型和大小?
你告诉他:
-看,char 100个元素
他回答:
-好,如果我是同一类型, 为这些元素分配100字节的内存然后发送。否则我将不接受。

;))

但你通过在参数中指定甚至是零,使生活变得更容易,过程自动化本身将计算出要传输的数据的大小。
所以说是对新人的额外保护。但最好是明确地传递大小来控制它,否则你以后调试起来会很麻烦。
 
Roman:

一个动态数组是动态的,因为它期望用户能得到任何大小。
为了让动态数组明白自己想要什么,程序员应该告诉它:

-嘿,动态数组,我想给你发送数据。
,它就会告诉你:
-你的数据有多大?
你告诉它:
-这里,100
它就会告诉你:
-好,给我分配100个元素的内存,然后发送。否则我不会接受。

;))

但你通过在参数中指定甚至是零来简化你的生活,过程自动化本身将计算出传输数据的大小。
所以说是对新人的额外保护。但最好是明确地传递大小来控制它,否则你以后调试起来会很麻烦。

坦率地说,在关键的情况下,这对一个阵列来说是很残酷的。我们看到的是动态阵列 的超限....。虽然在正常情况下,这很方便...

 
Valeriy Yastremskiy:

说实话,这在数组的关键情况下是一种发脾气。正如我们看到的超出动态数组 大小的退出形式....。虽然在正常情况下很方便...

阵列超限,那是程序员的水平))。

 
Roman:

在数组外输入是程序员的水平))。

这是一个常见的情况,当历史条没有完全加载时。经典的按窗口宽度加载历史的检查也不总是相关的。

而且,这不一定是算法师的水平,特别是如果情况是低频的。

 
Valeriy Yastremskiy:

这是一个常见的情况,当历史记录条没有完全加载时。经典的按窗口宽度加载历史记录的检查也不总是相关的。

而这并不总是算法师的水平,特别是如果情况是低频的。


难道没有帮助吗?
只是这是MT5平台的一个特殊性,而不是语言的基本原理。
如果这还没有帮助,那么你也许应该通知开发商。

Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Организация доступа к данным - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5