盈透进阶订单怎么选?Adaptive与MidPrice的用法和区别

免责声明:仅用于教育目的,不用于投资建议。 你对自己的投资决策负责。

买股票时,你可能遇到过这样的情况:直接用市价单,担心买贵;挂限价单,又要不断盯着报价、手动改价。

盈透的Adaptive和MidPrice,可以帮你寻找成交机会,但做法不同:

  • Adaptive:你告诉它最高愿意出多少钱、有多急着买,由算法寻找成交机会。也可以不设限价,但成交价格就少了一层约束。
  • MidPrice:围绕当前买卖报价的中间价寻找成交;如果不想跟着行情一直提高出价,还要设置Price Cap。

它们都不能保证每次比普通订单买得便宜。真正需要弄清楚的是:报价变化后,订单会怎样处理?什么情况下会成交,什么情况下会继续等?

下面用同一组假设报价逐步说明。数字只用于解释机制,不代表真实行情,也不代表算法一定按例子中的顺序执行。所有金额暂不计佣金、交易所费用等成本。

一、先看懂报价:100美元与100.10美元之间,为什么还能成交?

假设你准备买入100股某只美股,目前报价为:

  • 最高买价Bid:100美元,当前买方最高愿意出这个价;
  • 最低卖价Ask:100.10美元,当前卖方最低愿意按这个价卖;
  • 买卖价差:0.10美元;
  • 中间价:100.05美元。

中间价的计算是:

(100+100.10)÷2=100.05美元。

这里采用的是NBBO,即全美最佳买卖报价,不只是某一家交易场所的报价。

如果你现在就愿意接受卖方的100.10美元报价,在报价不变、数量充足,而且没有其他订单抢先成交的假设下,可能直接买到。

如果只愿意出100美元,则可以挂限价买单,等待卖方接受。

那么,能不能在两者之间,以100.05美元成交?

可以有这样的机会,但需要另一方愿意以这个价格与你交易。一些买卖意愿并不显示在公开报价中,也可能在你下单后才出现。

中间价是算出来的参考价格,不代表那里已经有100股等着卖给你。

Adaptive和MidPrice会尝试寻找这些机会,但不能凭空创造愿意卖给你的人。

二、普通限价单能做什么,算法又多做了什么?

2.1 普通限价单:价格由你定,不会自动跟着中间价变化

你提交100股、限价100.05美元的买单,意思是:

100.05美元或更低可以买,更高就不买。

有人愿意卖,订单可能成交;没有人愿意卖,就继续等。

假设还没买到,报价变成:

  • Bid:100.10美元;
  • Ask:100.20美元;
  • 中间价:100.15美元。

你的限价仍然是100.05美元,不会自动提高到100.15美元。

如果你愿意提高出价,需要自己改单;如果不愿追价,保留原价就可以。

2.2 限价100.10美元,也不代表一定花100.10美元

把买入限价设为100.10美元,只是表示最高接受这个价格。如果有更好的成交机会,普通限价单也可能买得更低。

所以,不能简单地说:

普通限价单一定买在100.10美元,算法一定买在100.05美元。

两者的差别,在于怎样寻找和处理成交机会,而不是一个必然买贵、另一个必然买便宜。

接下来先看Adaptive怎样处理,再看MidPrice为什么会跟着中间价变化。

三、Adaptive:设好最高买价,再告诉算法有多急

盈透的Adaptive官方说明介绍,它结合SmartRouting与用户选择的执行优先级,尝试在买卖价差之间寻找成交机会,可以配合市价或限价使用。

SmartRouting可以理解为:根据可获得的报价和可成交数量,在不同交易场所寻找执行机会。

它处理的是“怎样买”,并不是预测这只股票接下来涨还是跌。

3.1 Adaptive Market:没有用户设定的固定最高买价

仍然使用100美元买价、100.10美元卖价,你准备买入100股。

如果使用Adaptive Market,算法会动态寻找成交价格,但你没有另外规定一个固定的最高买价。

它可能争取到低于100.10美元的成交,也可能在等待期间遇到报价上涨,最后买得比最初看到的价格更高。

选择Adaptive,不代表锁住了下单时的报价。

如果你不愿超过100.10美元买入,就需要明确设置限价。

3.2 Adaptive Limit:算法可以找机会,但不能突破你的限价

如果使用Adaptive Limit,并把买入限价设为100.10美元,算法可以在这个价格或更低价格寻找成交,但不能为了买齐100股而接受100.11美元。

盈透的TWS功能说明也解释了这个区别:Adaptive Market动态选择执行价格,Adaptive Limit则保留用户设置的限价。

可以这样记:

限价告诉算法最多愿意付多少;执行优先级告诉它有多急。

这两个设置各管一件事,不能互相替代。

3.3 Urgent、Normal与Patient,不是三个保证成交的价格

Adaptive提供三种执行优先级:

  • Urgent:更急着成交,寻找更好价格的时间较短。
  • Normal:默认设置,在寻找更好价格与尽快成交之间折中。
  • Patient:更愿意等待价格机会,但等待期间行情也可能变化。

盈透的Adaptive教学说明了这三种设置。

它们不代表固定等几秒,也不代表:

Patient一定买在100.05美元,Normal一定买在100.08美元,Urgent一定买在100.10美元。

具体成交价,要看当时有哪些卖方,以及寻找机会期间报价怎样变化。

也不要把Adaptive想成“从100.01美元开始,每隔几秒加一分钱”的固定程序。官方说明并没有把它定义成这样的改单步骤。

3.4 用两种结果,看懂多等一会儿的好处与代价

假设你使用Adaptive Limit,买入限价100.10美元。

第一种结果:等到了更好的价格。

假设100股最终全部以100.05美元成交,相对最初100.10美元的卖价,少付:

(100.10-100.05)×100=5美元。

这是相对最初报价少付的金额,还没有扣除费用,也不是算法承诺每次都能省下的钱。

第二种结果:还没买到,行情已经上涨。

报价变成100.10美元买价、100.20美元卖价。如果没有人愿意在100.10美元或以下卖给你,订单就可能继续等待。

这时,更有耐心并没有让你买得更便宜,反而可能错过原先可以买到的价格。

如果不设固定限价,后面可能买得更高;如果保留100.10美元限价,则可能一直买不到。

多等一会儿,是争取更好价格的机会,不是获得更好价格的保证。

四、MidPrice:跟着当前中间价找,但别忘了限制最高买价

MidPrice主要尝试在当前NBBO的中间价或更好价格成交。

最初报价为100美元买价、100.10美元卖价,因此它参考的中间价是100.05美元。对买方来说,“更好”是买得更低;对卖方来说,则是卖得更高。

4.1 MidPrice与100.05美元普通限价单,有什么不同?

普通限价单设为100.05美元后,这个数字不会自己改变。

MidPrice参考的是当前中间价。报价变化后,中间价也会变化。

按照盈透的MidPrice机制说明,算法会寻找适合的交易场所,采用挂钩中间价等订单机制争取成交;具体使用的路由和订单机制可能不同。

你不需要记住每一种交易场所的技术名称,但要理解它做的事情:

  1. 看当前最佳买卖报价,中间价是多少;
  2. 寻找愿意在中间价附近、符合订单规则的对手方;
  3. 报价变动后,继续参考新的中间价;
  4. 如果设置了Price Cap,成交还要遵守这个价格限制。

它不是把最初的100.05美元一直挂在那里,也不是看到中间价就一定能成交。

4.2 不设Price Cap,买到的中间价可能比最初卖价还高

假设提交MidPrice买单时,中间价为100.05美元,但没有成交。

随后报价上涨至:

  • Bid:100.10美元;
  • Ask:100.20美元;
  • 中间价:100.15美元。

如果没有用户设置的价格上限,后面又出现了符合条件的卖方,订单可能以100.15美元成交。

100.15美元比当时100.20美元的卖价低,却比你下单时看到的100.10美元卖价高。

因此,下面两句话可以同时成立:

  • 相对成交时的卖价,你买得更低;
  • 相对下单时的卖价,你反而买贵了。

MidPrice争取的是相对当前报价更好的成交,不是保证比下单时便宜。

4.3 Price Cap:买单最高愿意付多少,卖单最低愿意收多少

如果你不愿高于100.10美元买入,可以把买单的Price Cap设为100.10美元。

即使中间价后来升到100.15美元,订单也不能突破100.10美元买入。找不到符合价格要求的卖方,就可能买不到。

盈透的MidPrice教学将Price Cap解释为实质上的限价:买单不能在它上方买,卖单不能在它下方卖。

所以,Price Cap不是要求算法:

先试100.05美元,没买到就一定按100.10美元买。

它只是规定最差接受什么价格,不保证这个范围内一定有足够股票可买。

五、怎样选?先把自己的要求说清楚

盈透买入订单选择流程图:坚持固定价格时选择普通限价单;希望跟随当前中间价寻找成交时考虑MidPrice并设置Price Cap;希望按紧迫程度寻找成交时考虑Adaptive Limit。
5.1 “我只愿意出100.05美元,不想跟着涨”

普通100.05美元限价单就能表达这个要求。

如果股价上涨后没有买到,这是你坚持价格的结果,不一定是订单出了问题。

这时没有必要仅仅为了减少手动操作,就允许算法跟随行情提高出价。

5.2 “我想参考最新中间价,但最多接受100.10美元”

可以考虑MidPrice,并设置100.10美元的Price Cap。

它会围绕变化中的中间价寻找机会,同时保留你不愿突破的最高买价。代价是可能只买到一部分,或者完全买不到。

5.3 “100.10美元以内都能接受,希望算法按我的紧迫程度找机会”

可以考虑Adaptive Limit,限价设为100.10美元,再选择Urgent、Normal或Patient。

如果没有特别赶时间,可以先从默认Normal理解它的表现。更在意尽快执行,再考虑Urgent;愿意多等一些价格机会,再考虑Patient。

但无论选哪一种,只要保留100.10美元限价,就不能要求算法在市场只剩100.20美元卖价、又没有其他合适卖方时,保证马上买齐。

想控制最高买价,就要接受可能买不到;愿意放宽价格,也不代表能够保证立即全部成交。

六、没成交会不会留到明天?先看有效期和交易时段

本文用的是常规交易时段内、整股买入美股的例子。

盈透的IBKR Desktop MidPrice教学说明,MidPrice不支持碎股。因此,不能因为普通订单可以买碎股,就认为MidPrice也能按同样方式使用。

有效期也直接影响订单第二天还在不在:

  • Adaptive不支持GTC(撤销前有效)。在本文的日间交易场景中,Day订单当日到期后,未成交部分不会自动留到第二个交易日。仍想买,就需要重新下单。
  • MidPrice可以选择Day或GTC。只想当天有效,可以选Day;想让未成交订单继续保留到之后的交易日,可以选GTC,但仍需留意券商的自动取消规则。

“保留到明天”与“今晚也能交易”,是两个不同设置。

盈透目前另有Adaptive Limit夜盘交易安排。如果准备在夜盘使用,需要按该安排选择订单与有效时段,不能直接照搬白天的设置,也不能推断Adaptive Market和MidPrice都能同样使用。

下单确认时,至少看清楚:

  • 买多少股;
  • 是普通订单、Adaptive还是MidPrice;
  • 最高买价有没有明确限制;
  • Adaptive选择了哪种执行优先级;
  • 订单什么时候到期,允许在哪些时段执行。

七、买得便宜几分钱,究竟有没有省到钱?

假设下单时仍是100美元买价、100.10美元卖价。

100股全部以100.05美元成交,相对100.10美元报价少付5美元。但如果只成交40股,这部分少付的金额只有:

(100.10-100.05)×40=2美元。

剩余60股还没买到,不能把它们也算进节省金额。

如果后来你提高出价,把剩余60股买在更高价格,就要把两部分成交放在一起,重新计算平均买价,再计入费用。

判断一次执行是否合适,可以记录四件事:

  1. 下单时的Bid与Ask;
  2. 设置的限价或Price Cap,以及执行优先级;
  3. 实际买到多少股、平均成交价和费用;
  4. 没买到的部分,最后是放弃、继续等,还是提高价格买入。

这样才能看清楚,算法究竟帮你少付了钱,还是为了等更好的价格,最后付得更多。

同样,买不到也不一定代表选择错误。如果100.10美元就是你愿意付的最高价,行情涨走后没有成交,订单只是遵守了你的要求。

先决定最多愿意付多少钱,再决定要不要跟着中间价变化,以及愿意等多久。这三个问题想清楚,才知道该用普通限价单、Adaptive,还是MidPrice。

📋 目录
💼 浩外大叔的工具箱
tradingview
Snowball
wise
panda