错误、漏洞、问题 - 页 1805

 
Alexey Kozitsyn:
@Slawa,请澄清一下,在OnCalculate()函数之外写入指标缓冲区是否有任何限制?在OnTimer()、OnBookEvent()、OnChartEvent()函数中写入缓冲区的情况下,是否总是能正确写入一切?

没有明确的限制。你可以试试。

但是,在添加新条形图的时候,你可能会遇到缓冲区重新分配的问题(重新分配是通过储备进行的,所以不是在每个新条形图上)。

所有的处理都在一个线程中,所以应该不会有碰撞。尝试
 
Slawa:
没有明显的限制。试试吧。

但在添加新条形图的时候,你可能会遇到缓冲区重新分配的问题(重新分配是有一定保留的,所以不是在每一个新条形图上都进行重新分配)。

在这里,请提供更多细节。什么是分配,应该如何处理?

只是写了这个问题,因为我注意到在一个新的酒吧里有 "打嗝 "现象。而这些小插曲重置了缓冲区数值=0(与我明确设置的空值--EMPTY_VALUE)。到目前为止,我还没能抓住这个时机。有时指标只是 "跳动",并立即恢复正常,有时它只是 "冻结"。当卡住时,值不会被写入文件,缓冲区也不会被绘制。缓冲区被写入OnBookEvent()。

同样的代码在OnCalculate()中可以正常工作,但OnCalculate()不允许收集所有未平仓合约和其他交易所参数的值。

只有通过TF切换才能解决这个问题。是的,5-7个相同的指标在同一时间运行,写出不同的数据。

已添加。

是的,今天在打开终端时也注意到完全相同的事情。所有的东西都挂了,所有的缓冲区,所有的值都是零,指标没有给出历史记录(写到文件里)。就是说,一切都只是挂了。市场仍在关闭。我改变了TF--历史记录回来了,但还是关于SESSION值需要时间戳的问题:终端关闭时的最后一个已知值被记录下来了!历史同步成功,没有错误。但TimeCurrent()返回了一个错误的值(大约21:03)。这个值的真实时间是23:49:59。总而言之,某种意义上的悲伤。

 
Alexey Kozitsyn:

在这里,请提供更多细节。什么是分配,应该如何处理?

只是写了这个问题,因为我注意到在一个新的酒吧里有 "打嗝 "现象。而这些打嗝的空缓冲值=0(由我明确设置的空值-EMPTY_VALUE)。到目前为止,我还没能抓住这个时机。有时指标只是 "跳动",并立即恢复正常,有时它只是 "冻结"。当卡住时,值不会被写入文件,缓冲区也不会被绘制。缓冲区被写入OnBookEvent()。

同样的代码在OnCalculate()中可以正常工作,但OnCalculate()不允许收集所有未平仓合约和其他交易所参数的值。

只有通过TF切换才能解决这个问题。是的,5-7个相同的指标同时运行,写入不同的数据。

这很容易。新栏的第一个刻度线来了。缓冲区被分配为1000条,并且完全满了。

我们把缓冲区重新分配到1250条,并从以前的缓冲区复制1000条到新的缓冲区。把新的缓冲区放在旧的缓冲区的位置,删除旧的缓冲区。我们增加了第1001条。

你说的 "如何处理 "是什么意思?

请记住,一个符号的所有指标都是在一个线程中一个接一个地按顺序计算的。如果一个指标变慢,整个线程的符号处理也会变慢
 
Slawa:
容易。新栏的第一个刻度线到了。缓冲区被分配为1000条,并且完全满了。我们重新分配缓冲区到1250条,并从旧缓冲区复制1000条到新缓冲区。把新的缓冲区放在旧的缓冲区的位置,删除旧的缓冲区。我们增加了第1001条。你说的 "如何处理 "是什么意思?请记住,一个符号的所有指标都是在一个线程中一个接一个地按顺序计算的。如果一个指标变慢了,整个符号处理的线程也会变慢





我很清楚这一点。而重新分配,据我所知,对OnBookEvent()的影响比对OnCalculate() 的影响更大?
 
Alexey Kozitsyn:
我知道单线程的事情。而重新分配,按照我的理解,对OnBookEvent()的影响比对OnCalculate()的影响更大?
当有新的蜱虫到来时,会进行重新分配。在一个新的刻度线到达后,OnCalculate会立即被调用。只有在这之后,才继续处理指标所收到的事件

但是,在指标(这个符号上的任何指标!)完成其计算(OnCalculate、OnTimer、OnChartEvent、OnBookEvent)之前,新的tick不会到达处理。
 
Slawa:
重新分配是在新的蜱虫到达时进行的。在一个新的tick从队列中到达后,OnCalculate被立即调用。只有在这之后,才会继续处理指标所收到的事件。

然而,在指标(这个符号上的任何指标!)完成其计算(OnCalculate、OnTimer、OnChartEvent、OnBookEvent)之前,新的tick不会到达被处理。

另外,据我所知,一个符号上的指标是按顺序计算的,也就是说,如果我在一行中抛出i1、i2、i3指标,那么它们将按相同的顺序计算?

我现在添加了一个标准的MAKD进行测试;它是列表中的最后一个。 我将看看当一个新的柱子形成时,它是否会放慢速度。

 
Alexey Kozitsyn:

另外,据我所知,一个符号上的指标是按顺序计算的,也就是说,如果我在一行中抛出i1、i2、i3指标,那么它们将按相同的顺序计算?

现在我添加了一个标准的MAKD用于测试,它是列表中的最后一个。 我将看看当一个新的条形图形成时它是否挂在上面。

在开始时,是的,计算的顺序是一样的。

但如果你将删除-添加不同的指标,重新计算的顺序可能会让你吃惊。因此,不要依赖序列
 
Slawa:
起初,是的,计算会按相同的顺序进行。

但如果你删除-添加不同的指标,重新计算的顺序可能会让你吃惊。所以不要依赖序列。
这是必要的,以检查,如果我的指标挂起,是否最后一个,标准MAKD,将被计算。我的都在MACD之前。
 
Slawa:

这就是我所说的。

在GOLD-3.17上形成了一个新的柱子,我所有的指标在OnBookEvent()中通过这个符号计算的所有当前值都被归零了。根据指标的逻辑,在形成一个新的条形图时,缓冲区不被清零,当前值被立即写入它们。MACD没有归零。日志是空的,这意味着没有不同步的情况,所有的值都应该是正确的。在这种情况下,故障持续了大约5秒钟。昨天,我每次都会遇到几分钟的故障。

所有其他角色都很好。同样,指标的逻辑并没有将数值重置为0!所以问题是:在重新分配新物品时,理论上应该包含垃圾。但在这里0.0和挂起...

是的,还有一件事:如果一个指标挂了,其他指标就应该保持它们的价值!但所有的人,一下子都归零了。是否有任何可能发生这种情况?
 

在BR-3.17上也出现了类似的挂起。

@Slawa 知道该往哪边挖吗?也许有一个更好的方法来收集交换数据并显示它?