如何检查一个订单是否被选中 - 页 13

 
Ant_TL:

事实上,我遇到的情况是,错误是由一个通用函数引起的,这个函数在订单处理周期内外都可以使用,也就是在选择订单之前,引起错误。如果我们想制作对订单起作用的通用服务功能,并且在选择订单后和之前都可以使用,在有未结订单和没有订单时都可以使用,我们应该使用我在上一页提到的这种机制来避免这个错误。

我已经在这个主题的早些时候写了关于订单选择没有被传递到库模块和返回的事实。


安东,也祝你生日快乐!
 
grell:

让自己习惯于每个交易操作都有自己的订单选择,就不会有任何问题。而且,是的,你已经正确地写了,只能选择一个订单。其他一切都由数组来解决。

我说的不是函数B()试图拦截函数A()的订单选择,以便与之合作的情况。绕过订单选择。这一点是不同的。但它可能是有用的。

 
tara:

安东,也祝你节日快乐!

也祝你节日快乐!

 
FAQ:

你一直忘了,一次只能 选择一个订单。Exit = 在储蓄池(你的数组)中存储订单列表。一个全局变量lastorder是不够的。一个lastords[ticket][function]类型的变量会更好。

将所有订单保持在一个数组中,对于复杂的网格EA是合适的,但不是所有的EA。在我的情况下,这就像对着一只麻雀开炮。我没有忘记,只能选择一个订单。我只是指出,我们无法在没有任何错误的情况下找出它是否被选中(不是任何特定的订单,而是在这个tick上是否有任何任意的订单被选中,即是否成功调用了订单选择)。然而,一个lastorder类型的变量对于这个目的来说已经足够了。

 
Ant_TL:

我说的不是函数B()试图拦截函数A()的订单选择,以便与之合作的情况。绕过订单选择。这一点是不同的。尽管它可能是有用的。


好吧,给我一个情况的例子,以便我理解需要与多个订单合作。顺便说一句,节日快乐!
 
grell:

好吧,给我一个情况的例子,这样我就能理解与多个订单合作的必要性。顺便说一句,节日快乐!

也祝你节日快乐!-))

一旦想到有趣的事情,我就会把它提出来。没有这种机制就很难做到的情况。否则他们会立即给我 "正确 "的编程建议。))

 
Ant_TL:

将所有订单保持在一个数组中,对于复杂的网格EA是合适的,但不是所有的EA。在我的情况下,这就像对着一只麻雀开炮。


如果你喜欢把弹弓弯成适合每只麻雀的样子,并浪费时间调整它,这是你的选择。我更喜欢为任何投射物做一次大炮,并确信当有必要向麻雀射击时--那么我们就会装上弹丸,并一次性投入。)
 
Ant_TL:

也祝你节日快乐!-))

一旦想到有趣的事情,我就会把它提出来。没有这种机制就很难做到的情况。否则他们会立即给我 "正确 "的编程建议。))


如果你想证明这是一个日常的例行情况,有什么好找的。你可以处理一堆订单,仍然可以逐一选择,而不必担心失去对订单的关注。而如果是一个订单,在另一个函数中选择它的RETURNS,与在黑屋子里找一只黑猫相比不算什么。
 
grell:

如果你想证明这是一种正常的日常情况,那还有什么好找的呢。你可以处理大量的订单,而且还可以一个一个地处理,而不用担心会失去对订单的关注。如果是一个订单,在另一个功能中选择它,与在黑暗的房间里寻找一只黑猫相比,不算什么。

好吧,我在我的一个EA中遇到了这种情况,当我调用我的模板函数MyTotal()来获得所有订单的数量,为一个给定的符号-魔法打开。很明显,我在以前的一些EA中循环使用它,因此将保存和恢复当前订单选择 加入其中。然后我在没有循环的情况下使用了它,在orderselect之前,这就是我得到错误的原因。我希望我的模板函数是通用的,既可以在循环中使用,也可以在循环外使用,所以我将使用这个模板与MySelect/TickSelect包装器,因为我反正在所有循环中使用MySelect而不是OrderSelect来减少代码大小。

我想我们可以看到为什么在这种特殊情况下,我们需要一次处理1个以上的订单。我们在主循环中处理一些订单,然后我们调用MyTotal,它应该浏览所有的订单,以确定我们需要多少。

 
纠正你的错误,然后去睡觉,你明天有一个忙碌的一天 :)