价格玻璃应该是什么样的? - 页 13

 
Реter Konow:

1.该方案是用两种语言编写的。基础语言是MQL5,在此基础上是我的标记语言。

2.以与发送相同的方式分发。我的意思是在正确的细胞中。这很难用语言来解释。我稍后会把代码发给你。当然,我必须付出汗水才能将数据输入正确的单元格,但这个问题已经解决了。

3.我将添加所有将被要求的、有意义和重要的东西。

mql5很好,因为在兼容性和代码的可读性方面不会有问题。
以及它们是如何被发送的,我们不知道你拿什么类型的数据作为依据。
流,投,Json。
如果分层是在for循环中完成的,我就会放弃循环。
任何循环都有处理时间,这就是延时。
滚筒中只有大约40个价格水平,向上和向下。
因此,对于每个级别,我都会用所需的值来写自己的变量,从而消除了循环。

 
Roman:

mql5是好的,在兼容性和代码的可读性方面不会有问题。
以及它们是如何被发送的,我们不知道你把什么类型的数据作为基础。
流,投,Json。
如果分层是在for循环中完成的,我就会放弃循环。
任何循环都有处理时间,这就是延时。
滚筒中只有大约40个价格水平,向上和向下。
因此,对于每个级别,我都会用所需的值来写自己的变量,从而消除了循环。

请看上一页的代码。

我将传入的数据相对于杯子的中心单元集中起来。最接近要价的价格被放在中间的单元格中,然后按升序向上排列其余的价格。投标价格和他们的出价也是如此。

 
Roman:

mql5是好的,代码的兼容性和可读性不会有问题。
以及它们是如何被映射的,我们不知道你有什么类型的数据。
流,投,Json。
如果分层是在for循环中完成的,我就会放弃循环。
任何循环都有处理时间,这就是延时。
滚筒中只有大约40个价格水平,向上和向下。
因此,对于每个级别,我都会用所需的值来写自己的变量,从而消除了循环。

我不知道如何解决没有周期地分配传入数据的问题。你能给我一个提示吗?

有时会有超过40个价位的人进来。有些人不适合在杯子里。因此,我做了一个由100个单元组成的接收器阵列。不可能在选取器中显示所有东西,但可以从引擎中请求。

 
Roman:

...
出于这个原因,我将为每个级别规定一个具有必要价值的变量,不包括周期。

数据以数组形式出现,从最高价格到最低价格依次排列。对数据量没有限制。可能有60个有出价的价格,每方30个,也可能有30个价格,所有价格都高于要价或低于出价。因此,如果没有一个循环,就没有办法解决问题。

 
Реter Konow:

数据以数组形式出现,从最高价格到最低价格依次排列。对数据量没有限制。可能有60个有出价的价格,每方30个,也可能有30个价格,所有价格都高于要价或低于出价。因此,没有一个周期是不可能解决问题的。

如果数组中传入元素的索引没有被破坏,我们可以不通过循环从数组中取出每个元素并将其分配给我们的变量。
并已将包含数值的每个变量分配到自己的单元格层。
或者,你可以一次将数组的 每个元素 分配给一个级别。
那么我们也要排除变量,但未初始化的数据并不是一个好的编码实践。

 

另一个想法出现了。
将收到的数组分为两个数组Bid和Ask
并思考如何使用CopyArray()函数。

在实施这两种方法后,我们可以测量处理的速度。
以及哪一个会有最好的结果,并留下它。
 
Roman:

如果数组中传入元素的索引没有被破坏,我们可以不通过循环从数组中取出每个元素并将其分配到我们的变量中。
而且已经把每一个包含数值的变量都分配到了单元格一级。
或者,你可以一次将数组的 每个元素 分配给一个级别。
那么我们也要排除变量,但未初始化的数据并不是一个好的编码实践。

唉,数组中没有有序的价格,它的索引也没有指向翻滚器中的特定单元。数据从一个较高的价格到一个较低的价格,但这是订单的终点。价格之间可能有一个点,也可能是10个或153个。滑块显示了它们所在的整个范围内最后变化的订单量。如果一个超过150点的价格从上升到改变了限价订单的数量,它将出现在数组中。因此,除了从大到小,数组中没有其他的顺序,而且除了在循环中,数据不能被重新排列。

 
Реter Konow:

唉,数组中没有索引。数据从一个较高的价格到一个较低的价格,但这是订单的终点。价格之间可能有一个点,也可能有10个或153个。堆栈显示他们所在的整个范围的最后变化的订单量。如果一个超过150点的价格从升水已经改变了限价订单的数量,它将出现在数组中。因此,除了从多到少之外,数组中没有任何顺序,而且除了在循环中,数据不能被排序。

在接收数组中,有按数组元素 进行的索引。
数据从高价到低价,它们总是按顺序排列的,不是吗?
因此,按索引从数组中选择任何必要的元素,但不需要循环。
而如果因为传入数据的大小变化,不可能捕捉到更好的Bid/Ask。
那么也许我们应该考虑一下CopyArray()。

 
Roman:

在接收数组中,有按数组元素 进行的索引。
数据从高价到低价,它们总是按顺序排列,不是吗?
因此,从接收数组中按索引选择任何想要的元素,但没有循环。

按顺序排列。但是。

  1. 更多的数据可以进来,而不是有杯子的单元。
  2. 价格之间没有明确的顺序。可能有一个价格高于要价,7个价格低于出价。
  3. 价格之间可能有不均匀的间隔。第一个和第二个之间可能有1点,第二个和第三个之间可能有18点或1008点。
这就是为什么你不会知道哪个价格最接近Ask,哪个价格最接近Bid,所以你不做循环就不会知道哪个价格应该在中间位置。
 
Реter Konow:

按顺序排列。但是。

  1. 更多的数据可以进来,而不是有杯子的单元。
  2. 价格之间没有明确的顺序。可能有一个价格高于要价,7个价格低于要价。
  3. 价格之间可能有不均匀的间隔。第一个和第二个之间可能有1点,第二个和第三个之间可能有18点或1008点。
因此,如果不做一个循环,就不可能知道哪个价格最接近要价,哪个最接近买价,因此哪个价格应该在杯子的中心。

你从哪里得到如此歪曲的数据?))

1) 定义一个明确的选择数据的范围,例如,20个向上,20个向下。
并只选择这个范围,其他的东西对我们来说都不重要。

2.你是说,价格从高到低,而且是按降序排列的。
因此,什么可能会更高或更低,这并不重要,看的不是价格,而是阵列中的索引。

2.如果你指的是按价格水平之间的距离排序,这根本不重要,我们在接收数组中设有索引。