ricequant / rqalpha

A extendable, replaceable Python algorithmic backtest && trading framework supporting multiple securities
http://rqalpha.io
Other
5.38k stars 1.61k forks source link

open_auction()中发出的买单经常会以低于开盘价成交,有时则不会。 #817

Closed BitbeyHub closed 11 months ago

BitbeyHub commented 1 year ago

提 ISSUE 须知

请先阅读文档 rqalpha文档

如果仍有问题的话请在 issue列表 中寻找是否有相关问题的解决方案

如果没有的话 麻烦开一个issue 描述以下问题:

1. RQAlpha的版本

5.3.0

2. Python的版本

3.8.18.final.0

3. 是Windows/Linux/MacOS or others?

Linux(Anaconda3 Docker)

4. 您出现问题对应的源码/或者能复现问题的简易代码 以及对应的配置

def open_auction(context, bar_dict):
    security0 = '600825.XSHG'
    security1 = '300344.XSHE'
    if context.now.strftime("%Y-%m-%d") == '2021-01-04':
        order_target_value(security0, 2000, price_or_style=4.46)  # 会以低于开盘价成交
        order_target_value(security1, 2000, price_or_style=4.35)  # 不会以低于开盘价成交

5. 您出现的错误堆栈日志信息

[2021-01-04 15:30:00.000000] WARN: user_system_log: Order Rejected: 300344.XSHE can not match. Market close.

Zhou-JiaJun commented 11 months ago

经测试,这个现象这个并不是bug。原因是当设置了价格时会按照限价单下单,限价单若无法立即成交的话,是不会撤单的,所以看似在集合竞价成交,其实是在handle_bar成交的