Repository navigation
Tags
Tags
v3.9.2 - 修复 database is locked 根因 v3.9.1 上线后实盘出现持续 database is locked,一天内两次发作 (41 分钟 / 63 分钟)。根因是 v3.9.1 自己引入的:成交流水改走 settlement_db.record_trade(conn=self.conn) 后没人履行提交责任 (该函数只在 owns_conn 时 commit),写事务永久悬在 data_manager 的进程级共享连接上持有 RESERVED 锁。 同时修复四处 SQLite 连接泄漏、网格落账嵌套事务被内层 commit 截断、 持仓同步重试上限失效(实盘刷了 1586 轮、线程 18->41)。 日志模块别名统一为三字母并补齐全部 18 个模块。 补录因该缺陷丢失的 1 笔网格买入流水(301085.SZ 2026-09-14 13:29:33)。 测试:36 组、148 模块、3166 用例、100% 通过。
v3.9.1
新增: 交割单数据管道 —— trade_records 扩展 17 列(交易所成交时间/手续费来源/
成交编号语义) + 新增 6 张表(position_snapshot 每日两次全量持仓、
account_equity_daily 每日净值、run_events
8000
、trade_records_sim、
broker_deals/broker_orders);成交写入收敛为单一入口;
券商对账单导入(三级匹配,实测 13/13)回填历史成交时间;
历史回填;导出脚本重写(只读、不依赖日志、缺快照报错退出)
新增: 总控制台分页菜单(首页只放日常运行,其余折叠为三个二级页,一屏装得下)
修复: deal 唯一键整改中自己引入的静默丢单(recorded_at 当成交属性 →
同秒不同成交撞键被丢弃,且冲突检测一并失效)
修复: 全零净值被当有效数据落库(恒等式 0==0+0+0 拦不住,每 30 分钟复发)
修复: 非交易日仍写收盘快照(降级判断未排除周末)
修复: 模拟成交被标成实盘且与实盘同表(现物理迁移到独立表)
修复: 导出在未迁移库上崩溃; --dry-run 实际写库; _rebuild_table 裸 DROP 生产表
变更: snapshot_type 收敛为 open/close;导出账号脱敏为 账户A(***5132);
CSV 追加 time_source/order_id/row_status 诊断列;
新增 changelog_since_last_export.txt
测试: 新增 7 个测试模块;完整回归 36 组 / 146 模块 / 3126 用例 / 100% 通过
v3.9.0
修复: 网格超时委托撤单能力全程失效(探测的 xtquant 接口早已不存在,
属 100% 死代码路径) —— 统一委托给 PositionManager._cancel_order
修复: 止损清仓后同股网格会话不联动暂停(与全仓止盈行为不一致)
修复: MACD 信号去重集合跨日不清理 + 开关关闭毒化当日信号 + 卖出口径不一致
变更: Web 界面手动买卖策略标签统一(手买/模买/手卖/模卖)
测试: 新增 executor_cancel_order / grid_pause_after_full_exit 两组;
完整回归 35 组 / 130 模块 / 2622 用例 / 100% 通过
注: 该 tag 于 v3.9.1 发布后补打,锚点为 v3.9.0 版本号同步收尾提交。
v3.8.6 - 重连状态一致性与信号可靠性 修复: - 重连后旧 callback 污染新连接状态(detach 机制) - 瞬时止盈信号在被消费前丢失(信号保活 + 执行前时效兜底) - 重连成功后持仓缓存未刷新 - QMT 自恢复后仍触发冗余重连(ping 探针) - 模拟模式补仓完全失效 / 不受冷却期约束 新增: - ENABLE_DYNAMIC_SIGNAL_KEEPALIVE / DYNAMIC_SIGNAL_KEEPALIVE_SECONDS / DYNAMIC_SIGNAL_MAX_AGE_SECONDS 三个配置开关 - 超时泄漏线程计数与周期告警(可观测) 测试:33 组 123 模块 2361 用例,100% 通过,耗时 1013.0 秒
PreviousNext