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

 
Figar0:

事实上,有很多蛊惑人心的事情发生。

boolOrderSelect( int index, int select, int pool=MODE_TRADES)
该函数选择下一个要处理的订单。如果函数成功完成,返回TRUE。如果函数失败,返回FALSE。你 必须调用GetLastError()来获得有关错误的信息。

我们所需要知道的是,一个订单是否被选中。

我在题目的开头就解释过了,还不清楚吗?

我们有一些潜在的处理订单的函数,即它选择订单并进行分析。它可以从不同的代码片段中调用,包括那些已经选择了一个订单来工作的代码片段。如果这个单独的函数不保存已经选择的订单并恢复其选择,这将导致EA逻辑的错误,因为当我们从这个函数返回时,在它被调用之前选择的订单将是错误的。因此,为了避免这些错误,我们需要在每个自行处理订单的辅助函数中,从其调用的地方记住当前选择的订单,并在完成后返回其选择。如何在不产生错误的情况下轻松完成这一任务--这就是当前主题的问题。

// 这意味着通过OrderSelect选择了一个订单(或者有一个错误)。

为什么会出现错误?如果没有选择订单,这个动作就根本没有必要,但如果没有特殊的技巧,似乎不可能提前发现是否选择了订单。

// 那么,为什么要再次选择它呢?

这就是为什么从这个函数返回到代码的调用部分后,在调用函数之前在这部分代码中选择的顺序仍然被选中--这样,用当前选择的顺序进行的操作就不会导致错误。

 
FAQ:

不,他真的在罐子里。
他有这方面的许可吗?这不是一把枪!)
 
Ant_TL:

我在主题的开始就解释了一切,有这么不清楚吗?

我们有一些可能对订单工作的函数,即它选择它们并分析它们。它可以从不同的代码片段中调用,包括那些已经选择了一个订单来工作的代码片段。如果这个单独的函数不保存已经选择的订单并恢复其选择,这将导致EA逻辑的错误,因为当我们从这个函数返回时,在它被调用之前选择的订单将是错误的。因此,为了避免这些错误,我们需要在每个自行处理订单的辅助函数中,从其调用的地方记住当前选择的订单,并在完成后返回其选择。如何在不产生错误的情况下轻松完成这项任务,是本专题的问题。

1.传递给函数的是在它被调用前选择的订单编号。

2.当该功能完成后,再次选择相同的订单。

我怎么知道你想得到什么?你必须更具体地说明 :(

 
tara:

1.在函数被调用之前,发送所选订单的编号。

2.当该功能完成后,重新选择相同的顺序。

我怎么知道你想得到什么?你应该更清楚一些 :(

是的,我明白,但是,我想写一些信息性的函数,如总利润或未平仓的订单,这些函数可以被调用,而不用考虑它们会改变程序执行 逻辑中的一些东西。我认为这很有意义。

在调用函数中传递选定的顺序并不总是琐碎的,想象一下,调用的嵌套>1,我们是否应该向每个函数传递一张票,以便一些次要的信息函数可以使用它?

给OrderSelect和OrderTicket一个包装器会更合理,它可以从一个单独的变量中存储和获取当前所选订单的信息,但在这里我们最终会出现双重信息(终端已经知道订单是否被选中,但我们不能在不出现潜在错误的情况下传递这个信息)。因此,我们要么得到重复的信息,要么是函数的过度复杂化(我们还将选定的顺序从最上面传入每个参数),要么是强制产生程序执行错误。

 
Ant_TL:

是的,我明白,但我想写一些信息性的函数,比如总利润或未平仓订单的数量,可以在不考虑改变程序执行逻辑的情况下调用这些函数。我认为这很有意义。

这是有道理的,但在这种情况下,我们至少应该把功能分为 "白色 "和 "黑色"。在前者中选择的订单号被保存下来,当在后者中被违反时,它将被恢复。

这似乎就这么简单。

 
Ant_TL:

是的,我明白,但我想写一些信息性的函数,比如总利润或未平仓订单的数量,可以在不考虑改变程序执行逻辑的情况下调用这些函数。我认为这很符合逻辑。

在调用函数中传递一个选定的顺序并不总是琐碎的,想象一下,调用的嵌套是>1,难道不应该向每个函数传递一张票,以便一些小的信息函数可以使用它吗?

看一看Kim的函数库,看看每个函数都做了列举、选择和检查票据的工作,然后需要知道什么。你的 "逻辑 "不允许你学习编程的字母表规则。
 
borilunad:
看看Kim的函数库,你会发现每个函数都在枚举、选择和检查票据,然后你需要知道什么。你的 "逻辑 "不允许你学习编程的基本规则。

你有一个长辈在田里,还有一个叔叔在基辅。

 
borilunad:
看看Kim的函数库,看看每个函数都做了列举、选择和检查票据的工作,然后需要学习什么。你的 "逻辑 "不允许你学习编程的字母表规则。
鲍里斯,你不必如此。我说的是按字母顺序排列的规则。
 
Ant_TL:

一个花园里的小长者和一个基辅的叔叔。

正是如此!这也是关于你的:"那只狗有一只狗......"。
 
tara:
鲍里斯,这没有必要。我说的是ABC。
当然,如果他已经知道一切,那么为什么会有错误呢?他应该去创造他自己的语言,不要有错误,那么大家都会好起来的!那他之前在哪里?