vnpy 限价单成交价的计算是 order.price 和 ***_best_price 作比较:
if long_cross:
trade_price = min(order.price, long_best_price)
pos_change = order.volume
else:
trade_price = max(order.price, short_best_price)
pos_change = -order.volume
这是否意味着每次都是把限价单当做 taker order来撮合的
假如这个 order 是上一根 K 线没有匹配上,那么这个 order 就会进入 orderbook 成为一个 maker order
那这里是不是就不用取 max/min 了,直接 trade_price = order.price
? 但是假如流动性好的话,我们可以认为 bar(T).open == bar(T-1).close
,所以其实影响不大?