From 4e28182b3fa50368544fefd9a451610aee5e8d51 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Sat, 29 Aug 2026 02:19:40 +0800 Subject: [PATCH] fix bug --- docs/RE_AUDIT_2026-08-29.md | 23 ----------------------- docs/todo.md | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/docs/RE_AUDIT_2026-08-29.md b/docs/RE_AUDIT_2026-08-29.md index 209bbc1..59d846b 100644 --- a/docs/RE_AUDIT_2026-08-29.md +++ b/docs/RE_AUDIT_2026-08-29.md @@ -16,29 +16,6 @@ ## 二、P0:可能造成重复下单或资金失控 -### 2.1 每次启动都会无条件执行新股申购 - -整改状态:已于 2026-08-29 按本节方案完成,新增 4 项专项测试。 - -位置: - -- `py-client/main.py:127-130` -- `py-client/strategy/ipo/boot.py:4-22` - -现状:`main()` 在启动趋势策略前固定调用 `AutoBuyIpo()`。该流程没有配置开关、交易日期校验、执行记录或订单对账,会对接口返回的每只新股直接按最大额度申购。程序同日重启时会再次提交;申购接口异常还会阻止趋势策略启动。函数创建的 HTTP Client 也没有关闭。 - -影响:同日重启可能重复申报;IPO 服务短暂失败可能导致主策略完全无法启动。 - -解决方案: - -1. 增加明确的 `enable_auto_ipo` 配置,默认关闭。 -2. 以 `账户 + 交易日 + 证券代码` 建立本地幂等记录。 -3. 提交前查询当日委托或成交,已有申购记录时跳过。 -4. 仅在交易日和申购允许时段执行。 -5. 单只申购失败不能中止其他标的,也不能阻止趋势策略启动。 -6. 使用上下文管理器或 `finally` 关闭 Client。 - -验收标准:同一账户同一交易日无论重启多少次,每只证券最多提交一次;IPO 接口失败时趋势策略仍可启动。 ### 2.2 重启对账会删除尚未形成持仓的待成交开仓状态 diff --git a/docs/todo.md b/docs/todo.md index 52a79c8..c3d2111 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -1,5 +1,29 @@ +### 2.1 每次启动都会无条件执行新股申购 + +整改状态:已于 2026-08-29 按本节方案完成,新增 4 项专项测试。 + +位置: + +- `py-client/main.py:127-130` +- `py-client/strategy/ipo/boot.py:4-22` + +现状:`main()` 在启动趋势策略前固定调用 `AutoBuyIpo()`。该流程没有配置开关、交易日期校验、执行记录或订单对账,会对接口返回的每只新股直接按最大额度申购。程序同日重启时会再次提交;申购接口异常还会阻止趋势策略启动。函数创建的 HTTP Client 也没有关闭。 + +影响:同日重启可能重复申报;IPO 服务短暂失败可能导致主策略完全无法启动。 + +解决方案: + +1. 增加明确的 `enable_auto_ipo` 配置,默认关闭。 +2. 以 `账户 + 交易日 + 证券代码` 建立本地幂等记录。 +3. 提交前查询当日委托或成交,已有申购记录时跳过。 +4. 仅在交易日和申购允许时段执行。 +5. 单只申购失败不能中止其他标的,也不能阻止趋势策略启动。 +6. 使用上下文管理器或 `finally` 关闭 Client。 + +验收标准:同一账户同一交易日无论重启多少次,每只证券最多提交一次;IPO 接口失败时趋势策略仍可启动。 + ### 2.4 开仓和补仓没有共享同一个本轮资金预算 位置: