fix bug
This commit is contained in:
19
docs/ipo-submission-state.md
Normal file
19
docs/ipo-submission-state.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# IPO 提交与结果核对
|
||||
|
||||
当前实现使用文件记录,不增加数据库或后台任务。
|
||||
|
||||
- 路径:`qmt_data_dir/ipo/<账户 SHA-256>/<YYYYMMDD>/<证券>/<尝试序号>.json`。
|
||||
- 提交前用独占创建方式写入并落盘 `pending`;占位失败不提交。
|
||||
- HTTP 正常返回仍保留 `pending`,不代表最终申购成功。
|
||||
- 下次 IPO 任务先查询账户委托。查不到、状态未知、仍在处理或已有部分成交时,不重发。
|
||||
- 同一本地订单编号查到状态 56 后记录 `confirmed`,后续保持防重。
|
||||
- 同一编号查到状态 57 且成交量为 0,才记录 `rejected` 并原子占位下一次尝试。旧尝试的废单不能授权新尝试再次重发。
|
||||
- 不同账户、日期使用不同记录。每次尝试都有写入记录且传给 QMT 的本地订单编号。
|
||||
|
||||
状态码依据:[迅投官方委托核对示例](https://dict.thinktrader.net/innerApi/code_examples.html)。撤单、部撤等情况未自动视为可以再次申购。
|
||||
|
||||
旧版只有证券名的 `.lock` 文件不再作为新账户的申购记录,避免跨账户锁冲突;首次运行通过当天同证券买入委托防重。升级应在当前账户委托可查询的条件下进行,旧锁本身无法证明归属账户或最终结果。
|
||||
|
||||
损坏或无法读取的记录不会触发重新提交;记录写入失败也不会提交。若长期查不到回报,需要先人工核对柜台结果,不能直接删除待确认记录后重跑。
|
||||
|
||||
接口响应必须是列表,合法空列表表示无候选;非列表响应记录错误。候选要求完整代码及对应交易所、有限正价格、正整数数量。当前参与板块范围保持不变。
|
||||
Reference in New Issue
Block a user