错误、漏洞、问题 - 页 2573

 

哦,是的,那么你就不必担心磁盘超载的问题。
令我惊讶的是,使用终端的全局变量(如果这就是他们的目的)来保存大数据集。
这是一个令人毛骨悚然的拐杖,不是吗?

好吧,变量本身,但还有它们的字符串名称,这也必须被存储,并且仍然做每次字符串搜索访问这个变量,更不用说唯一的类型double,这可以被存储。当然,你可以使用联盟,但使用联盟并不是免费的。

通过任何数据阵列的资源独立实现保存,并自动保存到磁盘或在发生deinit事件时进行保存,这要正确得多。

 
Nikolai Semko:

变量本身没有问题,但有字符串名称,也必须存储,而且每次访问这个变量时仍然要做字符串搜索,更不用说唯一可以存储的类型double。很明显,我们可以使用联盟,但其使用也不是免费的。

我有一个想法和愿望,想使用全局变量,但我决定用老办法把它们保存到磁盘上,特别是现在我开始正确地写代码了--数据被保存在结构中,你可以一键把结构转储到磁盘上--FileWriteStruct()。



所以,全局变量 "必须完全反过来使用"--数据应该存储在全局变量的名称中,而校验和是Base64的两倍--一切都在CryptEncode()中准备好了,最好是Base85(Ascii85)或在githab上看到的某处源代码Base128

如果我没记错的话,终端中的全局变量名是 256个字符? Base64的效率略高于60%(大小),其他编码方法的效率更高--你可以在一个全局变量中存储160-180字节。

虽然你必须使用前缀来确定数据,但一般来说,它可以工作--更因为全局变量很少被使用--所有的名字基本上都是自由的。

 
Igor Makanu:

我有一个想法,也想使用全局变量,但我决定用老办法把它们保存到磁盘上,特别是现在我已经开始尽可能正确地写代码了--我把数据存储在结构中,我可以一键把结构转储到磁盘上--FileWriteStruct()。



所以,全局变量 "必须完全反过来使用"--数据应该存储在全局变量的名称中,而校验和是Base64的两倍--一切都在CryptEncode()中准备好了,最好是Base85(Ascii85)或在githab上看到的某处源代码Base128

如果我没记错的话,终端中的全局变量名是 256个字符? Base64的效率略高于60%(大小),其他编码方法的效率更高--所以你可以在一个全局变量中存储160-180字节。

虽然你将不得不使用前缀来确定数据,但总的来说,这一切都会起作用--越是这样,全局变量就越是很少使用--所有的名字基本上都是自由的。

不过,为了获得一个变量,你必须通过校验和,直到找到正确的变量。如果有很多变数怎么办?
或者你可以跟踪变量的序列,并为它们分配索引。但这绝对是无用的,因为写一个保存数据的类会更容易些
 
Nikolai Semko:
编写一个数据保存类更容易

这门课的布置,包括例子。开发人员将引入新的功能,允许已经不需要在资源周围编写封装器来传输数据。

全局变量 用于标志。始终看到它们的数值也很方便 - F3。

 
fxsaber:

这门课的布置,包括例子。开发人员将引入新的功能,允许已经不需要在资源周围编写封装器来传输数据。

全局变量 用于标志。始终看到它们的数值也很方便 - F3。

是的,我做到了。这就是为什么我感到惊讶。
对于价值控制,我同意,那么就是合理的。
 
Georgiy Merts:

我发现在我的视觉测试模式中,SymbolInfoTick() 返回一个值,但Close[0]时间序列有一个不同的值。

这是我的错误吗?我是不是做错了什么?

看起来应该是相同的数值。

通常情况下,差异为1-2个点,但在急剧运动中,差异可能更大。

只有我是这样吗?

现在我把时间序列作为 "更正确的"。 如果事实证明SymbolInfoTick()给出的值与Close[0]不同,那么我就假定正确的值是Close[0],并且我留下一个价差,因为它是由SymbolInfoTick()返回的。

但是,了解哪个价格是正确的,哪个价格是由DC "看 "的--SymbolInfoTick()或Close[0],是很有趣的。

建造号是什么?

Build 2155现在应该已经修复了--这个错误在上周已经修复了

 
Slava:

建造编号是什么?

Build 2155现在应该已经修复了--他们在上周修复了这个错误。

是的。而我有2085个。

明白了,正在更新。

P.S. 是的,现在的价值观是一样的。
 
Slava:

建造号是什么?

Build 2155现在应该已经修复了--这个错误在上周已经修复了

你知道什么情况吗?
https://www.mql5.com/ru/forum/1111/page2571#comment_13285021
 
Aleksei Beliakov:
你知道什么情况吗?
https://www.mql5.com/ru/forum/1111/page2571#comment_13285021

你还没有给出任何细节来重现

 
Slava:

你没有提供任何细节来重现

如果你在ontick中打印这些函数的结果,它的时间是1970.01.01,价格是0。
它曾经是酒吧时间或价格时间。
所以现在是这样。
iHigh(NULL,PERIOD_W1,0) в журнале будет 0
iTime(NULL,PERIOD_W1,0) в журнале будет 1970.01.01
原因: