组织订单周期 - 页 6

 
Alexey Viktorov:

对更改订单列表进行检查

这样,重新索引就不会被计算在内。

很明显,如果他们被加入,他们或其他人将被错过。但如果它们被简单地删除了呢?我们将不能离开订货单?

因此,没有什么可担心的--在OrderSelect 期间我们会得到一个错误。

 
fxsaber:

这样,重新索引就不会被考虑在内了。

没关系--我们会在OrderSelect上得到一个错误。

1.索引/再索引是什么意思?在我看来,并将其标记在...手,因为我们将开始一个新的循环。或者你能想象情况会更复杂吗?你能想象,有可能同时打开一个订单和关闭另一个订单吗?

2.我同意。今天早上我还没有完全清醒...我还没有完全清醒...

 
Alexey Viktorov:

1.什么叫索引/再索引?在我看来,在她的旗帜下......。手,因为我们正在开始一个新的周期。或者你能想象情况会更复杂吗?你能想象,有可能一个订单被打开,另一个订单同时被关闭?

是的,这可能是其中一种情况。还有一个变体

在这个周期内,一些悬而未决的订单被执行

 
fxsaber:

如果在处理订单的任何周期中,在每个回合,我们检查OrdersTotal()和OrdersHistoryTotal()是否被改变,会怎么样?

并根据情况分析这些价值?

 
fxsaber:

是的,一种选择可以是这样。还有

某种钟摆在周期中得到满足


1.这种变体处于虚构的边缘。好吧,最终什么也不会发生,如果在下一次打勾时一切都恢复正常。

2.按照我的理解,挂单必须按照算法进行移动,止损将被移至市场订单。因此,无论执行时间 如何,订单类型都会被检查和执行。

 
Alexey Kozitsyn:

如果在处理订单的任何周期中,在每个回合,我们检查OrdersTotal()和OrdersHistoryTotal()是否被改变,会怎么样?

并根据情况分析得到的数值?

这里有一个类似的建议


关于交易、自动交易系统和策略测试的论坛

mql4的特殊性,技巧和窍门

Alexey Viktorov, 2017.09.15 07:24

首先,这种情况的提出是不标准的,很少有人已经解决了这种情况,如果有的话。

纯粹是理论上的。

对于OrderModify,没有必要组织反向循环,所以让它直接进行。

int i, total = OrdersTotal();
for(i = 0; i < total; i++)

然后,我们应该检查订单列表中的变化

if(total != OrdersTotal())
 {
  i = 0;
  total = OrdersTotal();
  continue;
 }

如果订单量发生了变化,让我们用新的订单量重新开始这个循环。

还有一个问题。

很明显,如果添加了订单,它们或其他人将被跳过。但如果它们被简单地删除了呢?我们不会超出订单清单?


只有在不检查OrdersHistoryTotal()的情况下才会出现。
 
Alexey Viktorov:

这里有一个类似的建议



只有在不检查OrdersHistoryTotal()的情况下才会出现。
是的,我看过了,只是还特意检查了历史订单,以备发生同时开仓+平仓的情况。
 
Alexey Kozitsyn:

如果在处理订单的任何周期中,在每个回合,我们检查OrdersTotal()和OrdersHistoryTotal()是否被改变,会怎么样?

并根据情况分析这些价值?

在重新索引期间,它可能不存在。
 
Alexey Viktorov:

1.这个选项即将成为一种幻想。好吧,到头来,如果一切都在下一次打勾时落到实处,什么也不会发生。

下一个刻度已经成为一个缺口。为什么要把今天可以做的事情推迟到明天?

2.按照我的理解,根据算法,挂单应该被移动,止损应该被移动到市场订单。因此,订单类型被检查并执行,而不考虑其执行的时间

那么,订单类型不能以任何方式帮助。

 
fxsaber:
重新索引时,它可能不在那里。

那么也许我们应该尝试尽快选择订单(只需选择它们!)并将它们写入一个数组,然后在一个单独的函数中,检查这些订单的可用性+必要的行动(关闭/删除/修改)?

虽然我不认为这个分支是讨论它的最好地方。这个分支是用于功能的。