错误、漏洞、问题 - 页 2276

 

当我需要用一个单一的Z值来填充一个大数组的一部分时,我使用该结构。

ArrayInitialize(ar,Z);     // промежуточный массив размер массива ar = 1000 
ArrayCopy(arr,ar,5000);    // основной массив заполняется значением Z c 5000 по 5999 элемент


许多交易者会说,为什么这么复杂,可以更简单。

ArrayFill(arr,5000,1000,Z);

但由于某种未知的原因,使用中间阵列的第一个变体的运行速度明显比第二个变体快。

2018.09.04 11:01:17.222 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayFill = 338
2018.09.04 11:01:17.222 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayInitialize + ArrayCopy = 111
2018.09.04 11:01:18.563 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayFill = 301
2018.09.04 11:01:18.563 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayInitialize + ArrayCopy = 122
2018.09.04 11:01:19.717 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayFill = 334
2018.09.04 11:01:19.717 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayInitialize + ArrayCopy = 142
2018.09.04 11:01:21.095 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayFill = 364
2018.09.04 11:01:21.095 TestArrayFill (EURUSD,M4)       Время заполнения через ArrayInitialize + ArrayCopy = 156

几年前我已经就这个问题给CA写过信。我得到的答复是,我已经发现并解决了这个问题,在下一个版本中就可以了。

但问题依然存在。

我在MT4中也做了同样的测试。

2018.09.04 11:08:21.258 TestArrayFill EURUSD,H1: Время заполнения через ArrayInitialize + ArrayCopy = 113
2018.09.04 11:08:21.258 TestArrayFill EURUSD,H1: Время заполнения через ArrayFill = 78
附加的文件:
 
Nikolai Semko:

当我需要用一个单一的Z值来填充一个大数组的一部分时,我使用该结构。


许多交易者会说,为什么这么复杂,可以更简单。

但由于某种未知的原因,使用中间阵列的第一个变体的运行速度明显比第二个变体快。

几年前我已经就这个问题给CA写过信。我得到的答复是,我已经发现并解决了这个问题,在下一个版本中就可以了。

但问题依然存在。

我在MT4中也做了同样的测试。

也许这是一个很好的报到地点

 
Artyom Trishkin:

也许这是一个很好的报到地点

多么奇特和微妙啊!
在世界最快的算法交易语言中,处理数组的重要标准功能比过时的MQL4语言慢了4倍。
只有在这里。

这是一个明显的柏忌。
你能想象当它被修复时,有多少项目会失败?
 
Nikolai Semko:

多么奇特和微妙啊!
在世界最快的算法交易语言中,处理数组的重要标准功能比过时的MQL4语言慢了4倍。
只有在这里。

这是一个明显的柏忌。
你能想象当它被修复时,会有多少程序受到影响吗?

很好。

但作为目前的一个特点--这是件坏事吗?
 
Artyom Trishkin:

很好。

但作为目前的一个特点--这是件坏事吗?
是的,我可能错误地陈述了这个问题。这似乎是我在谈论它的解决方案。
当然不是。我正试图提出这个问题。中间数组选项根本不是解决问题的办法,因为它的执行时间比基于内存逻辑的时间要长,而且还导致额外的内存消耗。
 
Artyom Trishkin:

很好。

但作为目前的一个特点--这是件坏事吗?

轶事。

一个老人去看医生。他说。

- 医生,我的背很疼。

- 弯腰。疼吗?

- 这很伤人。

- 弯下更多的腰!

- 好了,感觉好多了...

- 在那里!这就是你的行走方式!

)))))

 
Nikolai Semko:

当我需要用一个Z值来填充一个大数组的一部分时,我使用一个结构。


很多人会说为什么这么复杂--它可以更简单。

但由于某些未知的原因,第一个使用中间数组的变体比第二个变体工作得快得多

我不明白!为什么你需要用一个Z值来填充一个大数组的一部分? 或者说,你给数组分配了什么数据,有什么用途? 收盘价、AVG、RSI值?但在指标加载 后,它们不是存在于MetaTrader的内存中吗?我在玩数组0和1,最后得到了SOS这个词,也就是说,我给S分配了0个值,给O分配了1个值。当然,我可以在第二个数组大小中输入Help来获得更好的结果。 然后检查每个阵列的大小的填充时间。然后把所有东西加起来,除以4。
 
Bob1Thec:
我无法理解!为什么你需要用一个Z值来填充一个大数组的一部分? 或者说,你给数组分配了什么数据,有什么用途?
一张图片的单色背景(包括透明度)就是这样完成的。
 
fxsaber:
一张图片的单色背景(包括透明度)就是这样完成的。

更确切地说,是一个渐变的背景

 
Nikolai Semko:

更确切地说,是一个渐变的背景

我不知道在这里用一个单一的值填充一个数组有什么作用。