[Robinhood] 关于为什么需要order queue顺序保证

这个问题上课讨论过 我理解是order queue 顺序保证很重要(不仅仅是因为展现给用户操作顺序)

我觉得如果无序会影响 预留能力/ 购买量

比如账户里有$200, 用户下了两单 order1: $100 ($10 per stock), order2: $100 ($11 per stock).

有顺序保证情况下(绝大多数情况)
order1 -> success -> order2 -> success (order1 first, and then order2)

没有顺序保证情况下(有可能order1会被后处理错过最佳交易时间,order2成功说明价格已经上涨了)
order2 -> success -> order1 -> fail (order2 first, and then order1)

最后只买到了$100股票(order2 successful). 预留能力还剩也是$100 (order1 failed). 但是期望的是买$200股票 (order1 and order2)。 所以我觉得没有order queue会对预留能力/购买量都受到影响

请问老师我这个理解对吗?

先明确一下课上讲的 requirement,我们讲的是 market order。Market Order 用户是不提供价格的。如果是 Limit Order 确实有你说的这个问题。

等下

market order我理解是一口价:

我个人的理解可能不对,一切的交易都是limit order(有ask 和bid), overlap就交易。 market order(简化小白的使用)这不过是把你的bid价格提高了, 确保你一定买到而已, 不一定是最好的bid price。

用户其实也是有当前的价格的 (只是这个价格比当前limit order的ask价格高一些,用来确保user一定可以买到),比如上图这个意思是我$6.81的价格作为bid, 但可能市场ask最低是$6.7. 极端条件下,如果这个request因为没有queue的保证很慢,其实当发给交易所也是会在交易所那边fail的因为最低的ask可能已经涨到$6.9了.

我觉得不是,这里的 Market Price 是当前的股价,不代表你买到的股票的股价,所以是 Estimated Cost。

对你说的对, robinhood market order指的是市场价. 然后他们可能会加 %5去转换成limit order 确保购买成功 Market Order | Robinhood

但是, 这个依然符合我说的那种情况,如果你这个
order2 -> success -> order1 -> fail (order2 first, and then order1)

因为order1延迟fail, 还是很会有可能发生在市场涨的很快的情况下而且概率会比没有queue增大很多。

如果是这里认为所有的 Robinhood market order 实际上都是 Limit order 的话, 那么你说的 Fail 的情况就是合理的,那么顺序会更重要。
从系统设计的角度上,我觉得你的理解是对的。但是对于需求,我之前所说的前提是 Market Order 就是严格意义上的 Market Order (market order is a buy or sell order to be executed immediately at the current market prices.),而不是某一个券商实现的 Market Order。Market Order 是不会失败的。

谢谢 我明白您的意思了 可能我一开始没注意到这个假设条件 哈哈 这应该就是您上课说的没跟着面试官走 给了指引(可以简化)没意识到的典型例子 这要是面试应该就挂了 多谢指点